agentsmesh 0.6.0 → 0.7.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 +26 -4
- package/README.md +13 -20
- package/dist/canonical.d.ts +22 -5
- package/dist/canonical.js +12893 -56
- package/dist/canonical.js.map +1 -1
- package/dist/cli.js +146 -144
- package/dist/engine.d.ts +26 -17
- package/dist/engine.js +5752 -2893
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +5502 -2929
- package/dist/index.js.map +1 -1
- package/dist/{canonical-types-CZwrJoBX.d.ts → schema-B7ZSqkrS.d.ts} +110 -1
- package/dist/{target-descriptor-DjHhww11.d.ts → target-descriptor-COp3nil6.d.ts} +13 -132
- package/dist/targets.d.ts +3 -3
- package/dist/targets.js +4072 -2224
- package/dist/targets.js.map +1 -1
- package/package.json +2 -6
package/dist/cli.js
CHANGED
|
@@ -1,166 +1,166 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
`);},warn(t){process.stderr.write(Jo(Gn.yellow,"\u26A0 ")+t+`
|
|
4
|
-
`);},error(t){process.stderr.write(Jo(Gn.red,"\u2717 ")+t+`
|
|
5
|
-
`);},success(t){process.stdout.write(Jo(Gn.green,"\u2713 ")+t+`
|
|
6
|
-
`);},debug(t){process.env.AGENTSMESH_DEBUG==="1"&&process.stdout.write(Jo(Gn.cyan,"[debug] ")+t+`
|
|
7
|
-
`);},table(t){if(t.length===0)return;let e=t[0].length,r=[];for(let o=0;o<e;o++){let s=0;for(let a=0;a<t.length;a++){let l=[...t[a][o]].length;l>s&&(s=l);}r[o]=s;}let n="+"+r.map(o=>"-".repeat(o+2)).join("+")+"+";process.stdout.write(n+`
|
|
8
|
-
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>pC(l,r[c])).join(" | ")+" |";process.stdout.write(a+`
|
|
9
|
-
`);}process.stdout.write(n+`
|
|
10
|
-
`);}};var ap=[{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"}],lp=[{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)"},{name:"--yes",description:"Auto-import detected tool configs, then add example scaffold only under empty canonical paths"}]},{name:"generate",usage:"agentsmesh generate [flags]",description:"Generate target files from canonical sources",flags:[{name:"--global",description:"Generate user-level config from ~/.agentsmesh/ (e.g. claude-code, antigravity, codex-cli, gemini-cli; 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; cursor reads ~/.cursor/{rules,AGENTS.md,mcp.json,hooks.json,cursorignore,skills,agents,commands} and legacy ~/.agentsmesh-exports/cursor/user-rules.md)"}]},{name:"install",usage:"agentsmesh install <source> [flags]",description:"Install canonical resources from local/remote sources",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:"--force",description:"Non-interactive mode; include invalid resources and skip selection prompts"}]},{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)"}]}];function cp(t,e=18){return t.length===0?" (no command-specific flags)":t.map(r=>` ${r.name.padEnd(e)}${r.description}`).join(`
|
|
11
|
-
`)}i(cp,"formatFlags");function mp(){let t=lp.map(e=>`- ${e.name.padEnd(8)} ${e.description}
|
|
12
|
-
Usage: ${e.usage}
|
|
13
|
-
${cp(e.flags)}`).join(`
|
|
14
|
-
|
|
15
|
-
`);C.info(`agentsmesh <command> [flags]
|
|
16
|
-
|
|
17
|
-
Global flags:
|
|
18
|
-
${cp(ap)}
|
|
19
|
-
|
|
20
|
-
Commands:
|
|
21
|
-
${t}
|
|
22
|
-
|
|
23
|
-
Tip: run "agentsmesh <command> --help" for this same command reference.`);}i(mp,"printHelp");var hC=createRequire(import.meta.url),ol=dirname(fileURLToPath(import.meta.url)),yC=ol.endsWith("dist")?join(ol,"..","package.json"):join(ol,"..","..","package.json"),pp=hC(yC);function Yo(){return pp.version}i(Yo,"getVersion");function dp(){process.stdout.write(`agentsmesh v${pp.version}
|
|
24
|
-
`);}i(dp,"printVersion");function fp(t,e){e?.verbose&&t.stack?process.stderr.write(t.stack+`
|
|
25
|
-
`):C.error(t.message),process.exit(1);}i(fp,"handleError");var jn=class extends Error{static{i(this,"AgentsMeshError");}code;constructor(e,r,n){super(r,n),this.name="AgentsMeshError",this.code=e;}},Rr=class extends jn{static{i(this,"ConfigNotFoundError");}path;constructor(e,r){super("AM_CONFIG_NOT_FOUND",r?.message??`agentsmesh.yaml not found at ${e}. Run 'agentsmesh init' to create one.`,r),this.name="ConfigNotFoundError",this.path=e;}},ci=class extends jn{static{i(this,"ConfigValidationError");}issues;constructor(e,r,n){super("AM_CONFIG_INVALID",`Invalid config at ${e}: ${r.join("; ")}. Fix the YAML and try again.`,n),this.name="ConfigValidationError",this.issues=r;}};var mi=class extends jn{static{i(this,"LockAcquisitionError");}lockPath;holder;constructor(e,r,n){super("AM_LOCK_ACQUISITION_FAILED",`Could not acquire generate lock at ${e}: currently held by ${r}. Wait for the other process to finish, or remove ${e} manually if you are sure no agentsmesh process is running.`,n),this.name="LockAcquisitionError",this.lockPath=e,this.holder=r;}},He=class extends jn{static{i(this,"FileSystemError");}path;errnoCode;constructor(e,r,n){super("AM_FILESYSTEM",r,n),this.name="FileSystemError",this.path=e,this.errnoCode=n?.errnoCode;}};var hp="\uFEFF";async function h(t){try{let e=await readFile(t,"utf-8");return e.startsWith(hp)?e.slice(hp.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new He(t,`Failed to read ${t}: ${r.message}. Ensure the file exists and is readable.`,{cause:e,errnoCode:r.code})}}i(h,"readFileSafe");async function _(t,e){let r=dirname(t);await mkdir(r,{recursive:true});try{if((await lstat(t)).isDirectory())throw new He(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"})}catch(o){if(o instanceof He||o.code!=="ENOENT")throw o}let n=`${t}.tmp`;try{await writeFile(n,e,"utf-8"),await rename(n,t);}catch(o){await rm(n,{force:true}).catch(()=>{});let s=o;throw new He(t,`Failed to write ${t}: ${s.message}. Check permissions and disk space.`,{cause:o,errnoCode:s.code})}}i(_,"writeFileAtomic");async function T(t){try{return await access(t,constants.F_OK),!0}catch{return false}}i(T,"exists");async function R(t){await mkdir(t,{recursive:true});}i(R,"mkdirp");async function P(t,e){let r;try{r=await realpath(t);}catch(o){let s=o;if(s.code==="ENOENT"||s.code==="ENOTDIR"||s.code==="ELOOP")return [];throw new He(t,`Failed to read directory ${t}: ${s.message}. Check permissions.`,{cause:o,errnoCode:s.code})}let n=e??new Set;if(n.has(r))return [];n.add(r);try{let o=await readdir(t,{withFileTypes:!0}),s=[];for(let a of o){let l=join(t,a.name);a.isDirectory()||a.isSymbolicLink()&&await stat(l).then(m=>m.isDirectory(),()=>!1)?s.push(...await P(l,n)):s.push(l);}return s}catch(o){let s=o;if(s.code==="ENOENT"||s.code==="ENOTDIR"||s.code==="EACCES")return [];throw new He(t,`Failed to read directory ${t}: ${s.message}. Check permissions.`,{cause:o,errnoCode:s.code})}}i(P,"readDirRecursive");async function sl(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");}i(sl,"ensureCacheSymlink");var at=["claude-code","cursor","copilot","continue","junie","kiro","gemini-cli","cline","codex-cli","windsurf","antigravity","roo-code"],Xo="codex-cli";function Un(t){return at.includes(t)}i(Un,"isBuiltinTargetId");var Sp=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],$t=z.enum(at),Wn=z.enum(Sp),qo=z.object({skills:z.array(z.string()).optional(),commands:z.array(z.string()).optional(),rules:z.array(z.string()).optional(),agents:z.array(z.string()).optional()}).strict(),TC=z.object({name:z.string(),source:z.string(),version:z.string().optional(),target:$t.optional(),features:z.array(Wn),path:z.string().optional(),pick:qo.optional()}),LC=z.object({strategy:z.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z.array(z.string()).default([])}),Zo=z.union([z.boolean(),z.object({project:z.boolean().optional(),global:z.boolean().optional()}).strict()]),NC=z.object({commands_to_skills:z.object({"codex-cli":Zo.optional()}).passthrough().optional(),agents_to_skills:z.object({"gemini-cli":Zo.optional(),cline:Zo.optional(),"codex-cli":Zo.optional(),windsurf:Zo.optional()}).passthrough().optional()}).strict().optional(),DC=z.object({id:z.string().regex(/^[a-z][a-z0-9-]*$/),source:z.string(),version:z.string().optional()}).strict(),il=z.object({version:z.literal(1),targets:z.array($t).default([...at]),features:z.array(Wn).default([...Sp]),extends:z.array(TC).default([]),overrides:z.record(z.string(),z.record(z.string(),z.unknown())).default({}),collaboration:LC.default({strategy:"merge",lock_features:[]}),conversions:NC,plugins:z.array(DC).default([]),pluginTargets:z.array(z.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});var ll="agentsmesh.yaml",vC="agentsmesh.local.yaml";async function $C(t){let e=resolve(t);for(;;){let r=join(e,ll);if(await T(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}i($C,"findConfigPath");async function MC(t){let e=await h(t);if(e===null)throw new Rr(t);let r=parse(e),n=il.safeParse(r);if(!n.success){let o=n.error.issues.map(s=>s.message);throw new ci(t,o,{cause:n.error})}return n.data}i(MC,"loadConfig");function al(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null)continue;let s=r[n];typeof o=="object"&&!Array.isArray(o)&&o!==null&&typeof s=="object"&&s!==null&&!Array.isArray(s)?r[n]=al(s,o):r[n]=o;}return r}i(al,"deepMergeObjects");function GC(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=al(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=al(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}i(GC,"mergeLocalConfig");async function cl(t){let e=join(t,ll),r=await MC(e),n=join(t,vC),o=await h(n);if(o!==null){let s=parse(o);if(typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=GC(r,s),l=il.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");C.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:t}}i(cl,"loadConfigFromExactDir");async function kp(t){let e=await $C(t);if(e===null)throw new Rr(join(t,ll));return cl(dirname(e))}i(kp,"loadConfigFromDir");function Qo(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}}i(Qo,"resolveScopeContext");async function rt(t,e="project"){if(e==="project"){let{config:n,configDir:o}=await kp(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Qo(t,e);try{let{config:n}=await cl(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof Rr?new Rr(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}}i(rt,"loadScopedConfig");var zC=promisify(execFile),wp="repo";async function pi(t,e,r,n,o){let s="cloneUrl"in t?"gitlab":"git",a="cloneUrl"in t?`${t.namespace}/${t.project}`:t.url,l=t.ref??"HEAD",c=o(s,a,l),m=join(n,c),u=join(m,wp),p=`${m}.tmp`,d=join(p,wp);if(!r.refresh&&await Op(u))return dl(u);try{return await rm(p,{recursive:!0,force:!0}),await mkdir(p,{recursive:!0}),await JC(VC(t),d),t.ref&&await YC(d,t.ref),await rm(m,{recursive:!0,force:!0}),await rename(p,m),dl(u)}catch(f){if(await rm(p,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await Op(u))return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${f instanceof Error?f.message:String(f)}`),dl(u);throw f}}i(pi,"fetchGitRemoteExtend");async function dl(t){return {resolvedPath:t,version:await XC(t)}}i(dl,"readCachedRepo");async function Op(t){return T(t)}i(Op,"hasCachedRepo");function VC(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}i(VC,"resolveCloneUrl");async function JC(t,e){await fl(["clone",t,e]);}i(JC,"cloneRepo");async function YC(t,e){await fl(["checkout",e],t);}i(YC,"checkoutRef");async function XC(t){return fl(["rev-parse","HEAD"],t)}i(XC,"getHeadSha");async function fl(t,e){let{stdout:r}=await zC("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}i(fl,"runGit");async function Ap(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 s=await globalThis.fetch(n,{headers:o});if(!s.ok)throw new Error(`Failed to resolve latest release for ${t}/${e}: ${s.status} ${s.statusText}`);let a=await s.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}i(Ap,"resolveLatestTag");async function bp(t,e,r,n,o,s=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=t.tag;if(c==="latest")try{c=await Ap(t.org,t.repo,a);}catch(y){if(!s)throw y;return eR(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),u=join(n,m);if(!l&&await T(u)){let y=await gl(u);if(y)return {resolvedPath:join(u,y),version:c}}let p=`https://github.com/${t.org}/${t.repo}/tarball/${c}`,d={};a&&(d.Authorization=`Bearer ${a}`);let f;try{let y=await globalThis.fetch(p,{headers:d,redirect:"follow"});if(!y.ok)throw new Error(`HTTP ${y.status}: ${y.statusText}`);f=await y.arrayBuffer();}catch(y){if(r.allowOfflineFallback!==false&&await T(u)){let E=await gl(u);if(E)return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${y instanceof Error?y.message:String(y)}`),{resolvedPath:join(u,E),version:c}}throw y}await rm(u,{recursive:true,force:true}),await mkdir(u,{recursive:true});let g=join(u,"archive.tar.gz");await writeFile(g,new Uint8Array(f));try{await xp.extract({file:g,cwd:u,strict:!0,filter:i((y,k)=>!(tR(y)||k&&"type"in k&&(k.type==="Link"||k.type==="SymbolicLink")),"filter")});}finally{await rm(g,{force:true}).catch(()=>{});}let I=await gl(u);if(!I)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(u,I),version:c}}i(bp,"fetchGithubRemoteExtend");async function gl(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}i(gl,"findExtractTopDir");function Pp(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}i(Pp,"buildGithubCloneUrl");function tR(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}i(tR,"isZipSlipPath");async function eR(t,e,r,n,o,s){let a=s?[Pp(t.org,t.repo,s)]:[Pp(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 pi(m,e,r,n,o)}catch(u){l=u;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}i(eR,"fetchGithubDefaultBranch");function Tp(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 s=n.slice(0,o).trim(),a=n.slice(o+1).trim();return !s||!a?null:[s,a]}i(Tp,"splitSourceRef");function Lp(t){let e=Tp(t,"github:","latest");if(!e)return null;let[r,n]=e,o=r.indexOf("/");if(o<0)return null;let s=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !s||!a||!n?null:{org:s,repo:a,tag:n}}i(Lp,"parseGithubSource");function Np(t){let e=Tp(t,"gitlab:");if(!e)return null;let[r,n]=e,o=r.lastIndexOf("/");if(o<0)return null;let s=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !s||!a?null:{namespace:s,project:a,ref:n,cloneUrl:`https://gitlab.com/${s}/${a}.git`}}i(Np,"parseGitlabSource");function Dp(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 s;try{s=new URL(n);}catch{return null}return ["https:","http:","ssh:","file:"].includes(s.protocol)?{url:n,ref:o}:null}i(Dp,"parseGitSource");function zr(t){let e=Lp(t);if(e)return {kind:"github",...e};let r=Np(t);if(r)return {kind:"gitlab",...r};let n=Dp(t);return n?{kind:"git",...n}:null}i(zr,"parseRemoteSource");function hl(t){return zr(t)!==null}i(hl,"isSupportedRemoteSource");function sR(t){let e=zr(t);return e?e.kind==="github"?Bn("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?Bn("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):Bn("git",e.url,e.ref??"HEAD"):null}i(sR,"cacheKeyFromSource");async function $p(t,e){let r=sR(t);if(!r)return;let n=e??St(),o=join(n,r);await rm(o,{recursive:true,force:true});}i($p,"cleanInstallCache");async function Mp(t,e){let r=t??St(),n=e??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,o;try{o=await readdir(r);}catch{return}let s=Date.now();await Promise.all(o.map(async a=>{let l=join(r,a);try{let{mtimeMs:c}=await stat(l);s-c>n&&await rm(l,{recursive:!0,force:!0});}catch{}}));}i(Mp,"sweepStaleCache");function Bn(t,e,r){let n=i(o=>o.replace(/[^a-zA-Z0-9_-]/g,"_"),"safe");if(t==="github"){let[o,s]=e.split("/",2);if(o&&s)return `${n(o)}-${n(s)}-${n(r)}`}return `${n(t)}_${n(e)}_${n(r)}`}i(Bn,"buildCacheKey");function St(){let t=process.env.AGENTSMESH_CACHE;return t||join(homedir(),".agentsmesh","cache")}i(St,"getCacheDir");async function Kn(t,e,r={}){let n=zr(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??St();return Mp(o).catch(()=>{}),n.kind==="github"?bp(n,e,r,o,Bn,!t.includes("@")):pi(n,e,r,o,Bn)}i(Kn,"fetchRemoteExtend");function uR(t){return t.startsWith("http://")||t.startsWith("https://")}i(uR,"isOtherRemoteSource");async function Hn(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>hl(o.source))){let o=St();await rm(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(uR(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(hl(o.source)){let a=await Kn(o.source,o.name,{cacheDir:St(),refresh:r.refreshCache===true});n.push({name:o.name,resolvedPath:a.resolvedPath,features:[...o.features],target:o.target,version:a.version,path:o.path,pick:o.pick});continue}let s=resolve(e,o.source);if(!await T(s))throw new Error(`Extend "${o.name}": path does not exist: ${s}. Check extends.source in agentsmesh.yaml.`);n.push({name:o.name,resolvedPath:s,features:[...o.features],target:o.target,path:o.path,pick:o.pick});}return n}i(Hn,"resolveExtendPaths");function w(t){if(t.indexOf("---")!==0)return {frontmatter:{},body:t.trim()};let r=t.indexOf("---",3);if(r===-1)return {frontmatter:{},body:t.trim()};let n=t.slice(3,r).trim(),o=t.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}i(w,"parseFrontmatter");function L(t,e){return Object.keys(t).length===0?e:`---
|
|
2
|
+
import {access,mkdir,lstat,writeFile,rename,rm as rm$1,readlink,unlink,symlink,stat,readFile,readdir,realpath,mkdtemp,cp,copyFile}from'fs/promises';import {dirname,join,resolve,relative,basename,sep,win32,posix,isAbsolute,normalize,extname}from'path';import {realpathSync,constants,statSync,existsSync,rmSync}from'fs';import {parse,stringify}from'yaml';import {parse as parse$1}from'smol-toml';import {z as z$1}from'zod';import {Buffer}from'buffer';import {fileURLToPath,pathToFileURL,URL}from'url';import {createRequire}from'module';import {homedir,hostname,tmpdir}from'os';import {execFile}from'child_process';import {promisify}from'util';import*as Md from'tar';import {createHash}from'crypto';import {createTwoFilesPatch}from'diff';import UN from'chokidar';import*as uw from'readline';var gd=Object.defineProperty;var i=(t,e)=>gd(t,"name",{value:e,configurable:true});var g=(t,e)=>()=>(t&&(e=t(t=0)),e);var eO=(t,e)=>{for(var r in e)gd(t,r,{get:e[r],enumerable:true});};var _o,Yr,Xi,Zi,hr,Ls=g(()=>{_o=class extends Error{static{i(this,"AgentsMeshError");}code;constructor(e,r,n){super(r,n),this.name="AgentsMeshError",this.code=e;}},Yr=class extends _o{static{i(this,"ConfigNotFoundError");}path;constructor(e,r){super("AM_CONFIG_NOT_FOUND",r?.message??`agentsmesh.yaml not found at ${e}. Run 'agentsmesh init' to create one.`,r),this.name="ConfigNotFoundError",this.path=e;}},Xi=class extends _o{static{i(this,"ConfigValidationError");}issues;constructor(e,r,n){super("AM_CONFIG_INVALID",`Invalid config at ${e}: ${r.join("; ")}. Fix the YAML and try again.`,n),this.name="ConfigValidationError",this.issues=r;}},Zi=class extends _o{static{i(this,"LockAcquisitionError");}lockPath;holder;constructor(e,r,n){super("AM_LOCK_ACQUISITION_FAILED",`Could not acquire generate lock at ${e}: currently held by ${r}. Wait for the other process to finish, or remove ${e} manually if you are sure no agentsmesh process is running.`,n),this.name="LockAcquisitionError",this.lockPath=e,this.holder=r;}},hr=class extends _o{static{i(this,"FileSystemError");}path;errnoCode;constructor(e,r,n){super("AM_FILESYSTEM",r,n),this.name="FileSystemError",this.path=e,this.errnoCode=n?.errnoCode;}};});async function y(t){try{let e=await readFile(t,"utf-8");return e.startsWith(Ed)?e.slice(Ed.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new hr(t,`Failed to read ${t}: ${r.message}. Ensure the file exists and is readable.`,{cause:e,errnoCode:r.code})}}async function S(t,e){let r=dirname(t);await mkdir(r,{recursive:true});try{if((await lstat(t)).isDirectory())throw new hr(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"})}catch(o){if(o instanceof hr||o.code!=="ENOENT")throw o}let n=`${t}.tmp`;try{await writeFile(n,e,"utf-8"),await rename(n,t);}catch(o){await rm$1(n,{force:true}).catch(()=>{});let s=o;throw new hr(t,`Failed to write ${t}: ${s.message}. Check permissions and disk space.`,{cause:o,errnoCode:s.code})}}async function N(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function k(t){await mkdir(t,{recursive:true});}async function b(t,e){let r;try{r=await realpath(t);}catch(o){let s=o;if(s.code==="ENOENT"||s.code==="ENOTDIR"||s.code==="ELOOP")return [];throw new hr(t,`Failed to read directory ${t}: ${s.message}. Check permissions.`,{cause:o,errnoCode:s.code})}let n=e??new Set;if(n.has(r))return [];n.add(r);try{let o=await readdir(t,{withFileTypes:!0}),s=[];for(let a of o){let l=join(t,a.name);a.isDirectory()||a.isSymbolicLink()&&await stat(l).then(m=>m.isDirectory(),()=>!1)?s.push(...await b(l,n)):s.push(l);}return s}catch(o){let s=o;if(s.code==="ENOENT"||s.code==="ENOTDIR"||s.code==="EACCES")return [];throw new hr(t,`Failed to read directory ${t}: ${s.message}. Check permissions.`,{cause:o,errnoCode:s.code})}}async function ql(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 Ed,E=g(()=>{Ls();Ed="\uFEFF";i(y,"readFileSafe");i(S,"writeFileAtomic");i(N,"exists");i(k,"mkdirp");i(b,"readDirRecursive");i(ql,"ensureCacheSymlink");});function wn(t){return ht.includes(t)}var ht,Ns,yr=g(()=>{ht=["claude-code","cursor","copilot","continue","junie","kiro","gemini-cli","cline","codex-cli","windsurf","antigravity","roo-code"],Ns="codex-cli";i(wn,"isBuiltinTargetId");});function w(t){if(t.indexOf("---")!==0)return {frontmatter:{},body:t.trim()};let r=t.indexOf("---",3);if(r===-1)return {frontmatter:{},body:t.trim()};let n=t.slice(3,r).trim(),o=t.slice(r+3).trim();return {frontmatter:n===""?{}:parse(n)??{},body:o}}function D(t,e){return Object.keys(t).length===0?e:`---
|
|
26
3
|
${stringify(t,{lineWidth:0}).trimEnd()}
|
|
27
4
|
---
|
|
28
5
|
|
|
29
|
-
${e}`}i(L,"serializeFrontmatter");var fR=["always_on","model_decision","glob","manual"];function jp(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}i(jp,"toStrArray");async function Vr(t){let r=(await P(t)).filter(o=>{if(!o.endsWith(".md"))return false;let s=basename(o,".md");return s==="_root"||!s.startsWith("_")}),n=[];for(let o of r){let s=await h(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),m=basename(o,".md")==="_root",u=a.root===true,p=a.trigger,d=typeof p=="string"&&fR.includes(p)?p:void 0,f=a.codex_emit,g=f==="execution"?"execution":f==="advisory"?"advisory":void 0,S=a.codex_instruction==="override"?"override":void 0;n.push({source:o,root:m||u,targets:jp(a.targets),description:typeof a.description=="string"?a.description:"",globs:jp(a.globs),body:l,...d!==void 0&&{trigger:d},...g!==void 0&&{codexEmit:g},...S!==void 0&&{codexInstructionVariant:S}});}return n}i(Vr,"parseRules");function Wp(t){return t===true||t==="true"||t===1||t==="1"}i(Wp,"toBool");function Bp(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}i(Bp,"toToolsArray");async function Jr(t){let r=(await P(t)).filter(o=>o.endsWith(".md")&&!basename(o).startsWith("_")),n=[];for(let o of r){let s=await h(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),c=basename(o,".md"),m=Bp(a.allowedTools),u=Bp(a["allowed-tools"]),p=m.length>0?m:u;n.push({source:o,name:c,description:typeof a.description=="string"?a.description:"",allowedTools:p,outputStyle:Wp(a.outputStyle)||Wp(a["output-style"]),body:l});}return n}i(Jr,"parseCommands");function Yr(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}i(Yr,"toStrArray");function Hp(t){return t===true||t==="true"||t===1||t==="1"}i(Hp,"toBool");function zp(t){if(typeof t=="number"&&Number.isInteger(t)&&t>=0)return t;if(typeof t=="string"){let e=parseInt(t,10);return Number.isInteger(e)&&e>=0?e:0}return 0}i(zp,"toInt");function gR(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}i(gR,"toHooks");async function Xr(t){let r=(await P(t)).filter(o=>o.endsWith(".md")&&!basename(o).startsWith("_")),n=[];for(let o of r){let s=await h(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),c=basename(o,".md"),m=Yr(a.tools),u=Yr(a.tools),p=m.length>0?m:u,d=Yr(a.disallowedTools),f=Yr(a["disallowed-tools"]),g=d.length>0?d:f,I=Yr(a.mcpServers),S=Yr(a["mcp-servers"]),y=I.length>0?I:S,k=Yr(a.skills),E=zp(a.maxTurns),O=zp(a["max-turns"]),x=E>0?E:O>0?O:0;n.push({source:o,name:c,description:typeof a.description=="string"?a.description:"",tools:p,disallowedTools:g,model:typeof a.model=="string"?a.model:"",permissionMode:typeof a.permissionMode=="string"?a.permissionMode:typeof a["permission-mode"]=="string"?a["permission-mode"]:"",maxTurns:x,mcpServers:y,hooks:gR(a.hooks),skills:k,memory:typeof a.memory=="string"?a.memory:"",outputStyle:Hp(a.outputStyle)||Hp(a["output-style"]),body:l});}return n}i(Xr,"parseAgents");async function IR(t){return await h(t)??""}i(IR,"readContent");var di="SKILL.md",_R=[".git","node_modules"];function SR(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i(SR,"sanitizeSkillName");async function Vp(t){let e=await P(t),r=[];for(let n of e){let s=n.slice(t.length+1).replace(/\\/g,"/");if(s===di||s.endsWith(`/${di}`))continue;let a=s.split("/")[0];if(_R.some(c=>a===c)||s===".DS_Store"||s.endsWith("/.DS_Store"))continue;let l=await IR(n);r.push({relativePath:s,absolutePath:n,content:l});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}i(Vp,"listSupportingFiles");async function Jp(t){let e=join(t,di),r=await h(e);if(!r)return null;let{frontmatter:n,body:o}=w(r),s=await Vp(t),a=typeof n.name=="string"?SR(n.name):"";return {source:e,name:a||basename(t),description:typeof n.description=="string"?n.description:"",body:o,supportingFiles:s}}i(Jp,"parseSkillDirectory");async function zn(t){let e;try{e=await readdir(t,{withFileTypes:!0});}catch{return []}let r=[];for(let n of e){if(!n.isDirectory()||n.name.startsWith("_"))continue;let o=join(t,n.name),s=join(o,di),a=await h(s);if(!a)continue;let{frontmatter:l,body:c}=w(a),m=await Vp(o);r.push({source:s,name:n.name,description:typeof l.description=="string"?l.description:"",body:c,supportingFiles:m});}return r.sort((n,o)=>n.name.localeCompare(o.name))}i(zn,"parseSkills");function Yp(t){return t===null||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}i(Yp,"parseStringMap");function CR(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.type=="string"?e.type:"stdio",n=Yp(e.env),o=typeof e.description=="string"?e.description:void 0,s=typeof e.url=="string"?e.url:"";if(s)return {...o!==void 0&&{description:o},type:r,url:s,headers:Yp(e.headers),env:n};let a=typeof e.command=="string"?e.command:"";if(!a)return null;let l=Array.isArray(e.args)?e.args.filter(c=>typeof c=="string"):[];return {...o!==void 0&&{description:o},type:r,command:a,args:l,env:n}}i(CR,"parseServer");async function fi(t){let e=await h(t);if(!e)return null;let r;try{r=JSON.parse(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[s,a]of Object.entries(n)){let l=CR(a);l&&(o[s]=l);}return {mcpServers:o}}i(fi,"parseMcp");function Il(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}i(Il,"ensureStringArray");async function gi(t){let e=await h(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=Il(n.allow),s=Il(n.deny),a=Il(n.ask);return {allow:o,deny:s,ask:a}}i(gi,"parsePermissions");function Xp(t){return typeof t=="string"?t.trim():""}i(Xp,"trimString");function ot(t){return Xp(t.command)}i(ot,"getHookCommand");function ht(t){return Xp(t.prompt)}i(ht,"getHookPrompt");function _l(t){let e=ot(t),r=ht(t);return t.type==="prompt"?r||e:e||r}i(_l,"getHookText");function ze(t){return ot(t).length>0}i(ze,"hasHookCommand");function he(t){return _l(t).length>0}i(he,"hasHookText");var wR=["command","prompt"];function OR(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=_l(e);if(!n)return null;let o=typeof e.type=="string"&&wR.includes(e.type)?e.type:void 0,s=typeof e.timeout=="number"&&Number.isFinite(e.timeout)?e.timeout:void 0,a=ht(e)||void 0;return {matcher:r,command:n,...s!==void 0&&{timeout:s},...o&&{type:o},...a&&{prompt:a}}}i(OR,"toHookEntry");async function hi(t){let e=await h(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[s,a]of Object.entries(o)){if(!Array.isArray(a))continue;let l=[];for(let c of a){let m=OR(c);m&&l.push(m);}l.length>0&&(n[s]=l);}return n}i(hi,"parseHooks");async function yi(t){let e=await h(t);if(e===null||!e.trim())return [];let r=e.split(/\r?\n/),n=[];for(let o of r){let s=o.trim();s===""||s.startsWith("#")||n.push(s);}return n}i(yi,"parseIgnore");async function Zr(t){let e=join(t,".agentsmesh"),r=await T(e)?e:t,[n,o,s,a,l,c,m,u]=await Promise.all([Vr(join(r,"rules")),Jr(join(r,"commands")),Xr(join(r,"agents")),zn(join(r,"skills")),fi(join(r,"mcp.json")),gi(join(r,"permissions.yaml")),hi(join(r,"hooks.yaml")),yi(join(r,"ignore"))]);return {rules:n,commands:o,agents:s,skills:a,mcp:l,permissions:c,hooks:m,ignore:u}}i(Zr,"loadCanonicalFiles");function Zp(t){return basename(t.source,".md")}i(Zp,"ruleSlug");function Vn(t,e){let r=new Map(t.rules.map(u=>[Zp(u),u]));for(let u of e.rules)r.set(Zp(u),u);let n=new Map(t.commands.map(u=>[u.name,u]));for(let u of e.commands)n.set(u.name,u);let o=new Map(t.agents.map(u=>[u.name,u]));for(let u of e.agents)o.set(u.name,u);let s=new Map(t.skills.map(u=>[u.name,u]));for(let u of e.skills)s.set(u.name,u);let a=PR(t.mcp,e.mcp),l=xR(t.permissions,e.permissions),c=AR(t.hooks,e.hooks),m=bR(t.ignore,e.ignore);return {rules:Array.from(r.values()),commands:Array.from(n.values()),agents:Array.from(o.values()),skills:Array.from(s.values()),mcp:a,permissions:l,hooks:c,ignore:m}}i(Vn,"mergeCanonicalFiles");function PR(t,e){if(!t&&!e)return null;let r=t?.mcpServers??{},n=e?.mcpServers??{};return {mcpServers:{...r,...n}}}i(PR,"mergeMcp");function xR(t,e){if(!t&&!e)return null;let r=Sl(t?.allow??[],e?.allow??[]),n=Sl(t?.deny??[],e?.deny??[]),o=Sl(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}i(xR,"mergePermissions");function Sl(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}i(Sl,"mergeUniqueStrings");function AR(t,e){if(!t&&!e)return null;let r={},n=new Set([...Object.keys(t??{}),...Object.keys(e??{})]);for(let o of n){let s=e?.[o],a=t?.[o];r[o]=s!==void 0&&s.length>0?s:a??[];}return r}i(AR,"mergeHooks");function bR(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}i(bR,"mergeIgnore");var qp=[{target:"claude-code",paths:["CLAUDE.md",".claude/rules",".claude/commands",".claude/agents",".claude/skills",".claude/settings.json",".claudeignore"]},{target:"cursor",paths:[".cursorrules",".cursor/rules",".cursor",".cursor/mcp.json"]},{target:"copilot",paths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]},{target:"gemini-cli",paths:["GEMINI.md",".gemini",".gemini/settings.json"]},{target:"codex-cli",paths:[".codex",".codex/config.toml","AGENTS.md","codex.md"]},{target:"windsurf",paths:[".windsurfrules",".windsurf",".windsurf/workflows"]},{target:"cline",paths:[".clinerules",".cline"]},{target:"continue",paths:[".continue",".continuerc.json"]},{target:"junie",paths:[".junie",".junie/guidelines.md"]},{target:"kiro",paths:[".kiro",".kiro/steering",".kiro/settings/mcp.json"]}];async function Ii(t){let e=null,r=0;for(let n of qp){let o=0;for(let s of n.paths)await T(join(t,s))&&o++;o>r&&(r=o,e=n.target);}return r>0?e:null}i(Ii,"detectNativeFormat");var Qp=qp.map(t=>t.paths[0]).filter(t=>t!==void 0);var td={"codex-cli":true},ed={"gemini-cli":false,cline:true,"codex-cli":false,windsurf:true};function LR(t){return Object.prototype.hasOwnProperty.call(td,t)}i(LR,"usesCommandSkillProjection");function NR(t){return Object.prototype.hasOwnProperty.call(ed,t)}i(NR,"usesAgentSkillProjection");function rd(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}i(rd,"resolveConversionValue");function Jn(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],s=rd(o,n);return s!==void 0?s:LR(e)?td[e]:r??false}i(Jn,"shouldConvertCommandsToSkills");function Mt(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],s=rd(o,n);return s!==void 0?s:NR(e)?ed[e]:r??false}i(Mt,"shouldConvertAgentsToSkills");function Xt(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}i(Xt,"cap");function Je(t){return typeof t=="string"?{level:t}:t}i(Je,"normalizeCapabilityValue");function _i(t){return {rules:Je(t.rules),additionalRules:Je(t.additionalRules),commands:Je(t.commands),agents:Je(t.agents),skills:Je(t.skills),mcp:Je(t.mcp),hooks:Je(t.hooks),ignore:Je(t.ignore),permissions:Je(t.permissions)}}i(_i,"normalizeTargetCapabilities");var nd=new Map;var Cl;function DR(){return Cl||(Cl=new Map(At.map(t=>[t.id,t]))),Cl}i(DR,"builtinDescriptors");function od(t){nd.set(t.id,t);}i(od,"registerTargetDescriptor");function V(t){return nd.get(t)??DR().get(t)}i(V,"getDescriptor");function sd(t){for(let e of At)if(e.sharedArtifacts){for(let[r,n]of Object.entries(e.sharedArtifacts))if(n==="owner"&&t.startsWith(r))return e.id}return null}i(sd,"ownerTargetIdForSharedPath");function FR(t){let e=[];for(let n of t)if(n.sharedArtifacts)for(let[o,s]of Object.entries(n.sharedArtifacts))s==="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 s=e[n],a=e[o];s===void 0||a===void 0||(s.prefix===a.prefix||s.prefix.startsWith(a.prefix)||a.prefix.startsWith(s.prefix))&&r.push({a:s,b:a});}return r}i(FR,"findSharedArtifactOwnershipConflicts");function id(t){let e=FR(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.
|
|
6
|
+
${e}`}var F=g(()=>{i(w,"parseFrontmatter");i(D,"serializeFrontmatter");});function af(t){return typeof t=="string"?t.trim():""}function mt(t){return af(t.command)}function Ot(t){return af(t.prompt)}function pc(t){let e=mt(t),r=Ot(t);return t.type==="prompt"?r||e:e||r}function Ir(t){return mt(t).length>0}function $e(t){return pc(t).length>0}var fe=g(()=>{i(af,"trimString");i(mt,"getHookCommand");i(Ot,"getHookPrompt");i(pc,"getHookText");i(Ir,"hasHookCommand");i($e,"hasHookText");});function kE(t){return Object.prototype.hasOwnProperty.call(uf,t)}function wE(t){return Object.prototype.hasOwnProperty.call(pf,t)}function df(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}function Po(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],s=df(o,n);return s!==void 0?s:kE(e)?uf[e]:r??false}function te(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],s=df(o,n);return s!==void 0?s:wE(e)?pf[e]:r??false}var uf,pf,xo=g(()=>{uf={"codex-cli":true},pf={"gemini-cli":false,cline:true,"codex-cli":false,windsurf:true};i(kE,"usesCommandSkillProjection");i(wE,"usesAgentSkillProjection");i(df,"resolveConversionValue");i(Po,"shouldConvertCommandsToSkills");i(te,"shouldConvertAgentsToSkills");});function ge(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}function _r(t){return typeof t=="string"?{level:t}:t}function ff(t){return {rules:_r(t.rules),additionalRules:_r(t.additionalRules),commands:_r(t.commands),agents:_r(t.agents),skills:_r(t.skills),mcp:_r(t.mcp),hooks:_r(t.hooks),ignore:_r(t.ignore),permissions:_r(t.permissions)}}var bo=g(()=>{i(ge,"cap");i(_r,"normalizeCapabilityValue");i(ff,"normalizeTargetCapabilities");});function gf(t){for(let e of Tt)if(e.sharedArtifacts){for(let[r,n]of Object.entries(e.sharedArtifacts))if(n==="owner"&&t.startsWith(r))return e.id}return null}function OE(t){let e=[];for(let n of t)if(n.sharedArtifacts)for(let[o,s]of Object.entries(n.sharedArtifacts))s==="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 s=e[n],a=e[o];s===void 0||a===void 0||(s.prefix===a.prefix||s.prefix.startsWith(a.prefix)||a.prefix.startsWith(s.prefix))&&r.push({a:s,b:a});}return r}function hf(t){let e=OE(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.
|
|
30
7
|
`+r.join(`
|
|
31
8
|
`)+`
|
|
32
|
-
Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}i(
|
|
9
|
+
Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}var fc=g(()=>{ot();i(gf,"ownerTargetIdForSharedPath");i(OE,"findSharedArtifactOwnershipConflicts");i(hf,"assertSharedArtifactOwnersUnique");});var yf,Xr,If,ia,aa,la,Ms,Gs,Cr,gc,ca,Ao,js,Us,ma,ua,hc,Ws,yc,Tn,Ic,Me=g(()=>{yf="claude-code",Xr=".claude/CLAUDE.md",If="CLAUDE.md",ia=".claude/rules",aa=".claude/commands",la=".claude/agents",Ms=".claude/skills",Gs=".claude/settings.json",Cr=".claude/hooks.json",gc=".claude/output-styles",ca=".claudeignore",Ao=".mcp.json",js=".claude.json",Us=".agentsmesh/rules",ma=".agentsmesh/commands",ua=".agentsmesh/agents",hc=".agentsmesh/skills",Ws=".agentsmesh/mcp.json",yc=".agentsmesh/permissions.yaml",Tn=".agentsmesh/hooks.yaml",Ic=".agentsmesh/ignore";});function Sf(t){if(!t.hooks||Object.keys(t.hooks).length===0)return {};let e={};for(let[r,n]of Object.entries(t.hooks)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!$e(s))continue;let a=mt(s),l=Ot(s),c=s.type==="prompt"?l||a:a||l,m={type:s.type==="prompt"?"prompt":"command",[s.type==="prompt"?"prompt":"command"]:c};s.timeout!==void 0&&(m.timeout=s.timeout),o.push({matcher:s.matcher,hooks:[m]});}o.length>0&&(e[r]=o);}return e}var _f=g(()=>{fe();i(Sf,"buildClaudeHooksObjectFromCanonical");});function Cf(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Xr,content:r.body.trim()?r.body:""});let n=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("claude-code")));for(let o of n){let s=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()||"");e.push({path:`${ia}/${s}.md`,content:l});}return e}function Rf(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=D(r,e.body.trim()||"");return {path:`${aa}/${e.name}.md`,content:n}})}function kf(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,permissionMode:e.permissionMode||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,mcpServers:e.mcpServers.length>0?e.mcpServers:void 0,hooks:Object.keys(e.hooks).length>0?e.hooks:void 0,skills:e.skills.length>0?e.skills:void 0,memory:e.memory||void 0};Object.keys(r).forEach(a=>{r[a]===void 0&&delete r[a];});let n=e.body.trim()||"",o=/^##\s*Role\b/m.test(n)?n:`## Role
|
|
33
10
|
|
|
34
|
-
${n}`,s=
|
|
11
|
+
${n}`,s=D(r,o);return {path:`${la}/${e.name}.md`,content:s}})}function wf(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:Ao,content:e}]}function Of(t){let e=[];for(let r of t.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=r.body.trim()||"",s=!o||/^##\s*Purpose\b/m.test(o)?o:`## Purpose
|
|
35
12
|
|
|
36
|
-
${o}`,a=
|
|
37
|
-
`);return [{path:
|
|
13
|
+
${o}`,a=D(n,s);e.push({path:`${Ms}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");e.push({path:`${Ms}/${r.name}/${c}`,content:l.content});}}return e}function Ef(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions,n=t.permissions.ask??[];if(e.length===0&&r.length===0&&n.length===0)return [];let o=JSON.stringify({permissions:{allow:e,deny:r,ask:n}},null,2);return [{path:Gs,content:o}]}function Pf(t,e){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let r=Sf(t);if(Object.keys(r).length===0)return [];if(e?.scope==="global")return [{path:Cr,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:Gs,content:n}]}function xf(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
14
|
+
`);return [{path:ca,content:e}]}var bf=g(()=>{F();Me();_f();i(Cf,"generateRules");i(Rf,"generateCommands");i(kf,"generateAgents");i(wf,"generateMcp");i(Of,"generateSkills");i(Ef,"generatePermissions");i(Pf,"generateHooks");i(xf,"generateIgnore");});function Et(t,e,r){return t.startsWith(`${e}/`)&&!r.includes("codex-cli")?`.agents/skills/${t.slice(e.length+1)}`:null}var Zr=g(()=>{i(Et,"mirrorSkillsToAgents");});function xE(t){let e=t.description.trim();return e||(basename(t.source)||"rule").replace(/\.md$/i,"")||"Rule"}function Af(t){let e=t.rules.find(o=>o.root),r=(e?.body??"").trim();return r?`# Global Instructions
|
|
38
15
|
|
|
39
|
-
## ${e?
|
|
16
|
+
## ${e?xE(e):"Guidance"}
|
|
40
17
|
|
|
41
18
|
${r}
|
|
42
|
-
`:""}i(Id,"renderClaudeGlobalPrimaryInstructions");function Sd(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(Sd,"computeStatus");async function Cd(t,e,r,n){if(r!=="global")return [];let o=n.has("agents"),s=n.has("commands");if(!o&&!s)return [];let a=[];if(o)for(let l of t.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=L(c,l.body.trim()),u=`${Rl}/${l.name}.md`,p=await h(join(e,u));a.push({target:"claude-code",path:u,content:m,currentContent:p??void 0,status:Sd(p,m)});}if(s)for(let l of t.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=L(c,l.body.trim()),u=`${Rl}/${l.name}.md`,p=await h(join(e,u));a.push({target:"claude-code",path:u,content:m,currentContent:p??void 0,status:Sd(p,m)});}return a}i(Cd,"generateClaudeGlobalExtras");function $R(t,e){return kd(e).some(n=>MR(t,n))}i($R,"globMatch");function Rd(t,e){return t.filter(r=>$R(r,e))}i(Rd,"globFilter");function kd(t){let e=t.match(/^(.+)\{([^}]+)\}(.*)$/);if(!e)return [t];let[,r,n,o]=e;if(!n)return [t];let s=n.split(",").map(l=>l.trim()),a=[];for(let l of s)for(let c of kd(r+l+o))a.push(c);return a}i(kd,"expandBraces");function MR(t,e){return GR(e).test(t)}i(MR,"matchOne");function GR(t){let e=[],r=0;for(;r<t.length;){if(t.startsWith("**",r)){let s=t.slice(r+2);if(s.length===0&&e.length===0)e.push(".*");else if(e.push(s.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),s.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)}i(GR,"globToRegex");function nt(t,e,r,n={}){let o=[],{rules:s}=t;if(s.length===0)return [];if(s.some(l=>l.root)||o.push({level:"error",file:relative(e,s[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 s){if(l.globs.length===0)continue;let c=false;for(let m of l.globs)if(Rd(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}i(nt,"validateRules");function Od(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:ad}))}i(Od,"lintRules");var Xn="am-command-",is="ab-command-";function jR(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):[]}i(jR,"toStringArray");function Zn(t){return `${Xn}${t}`}i(Zn,"commandSkillDirName");function Ed(t){let e={name:Zn(t.name),description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],L(e,t.body.trim()||"")}i(Ed,"serializeCommandSkill");function Pd(t,e){if(t["x-agentsmesh-kind"]!=="command")return null;let r=typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"",n=e.startsWith(Xn)?e.slice(Xn.length):e.startsWith(is)?e.slice(is.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",allowedTools:jR(t["x-agentsmesh-allowed-tools"])}:null}i(Pd,"parseCommandSkillFrontmatter");function xd(t,e){return L({description:t.description,"allowed-tools":t.allowedTools},e.trim()||"")}i(xd,"serializeImportedCommand");var qn="am-agent-",as="ab-agent-";function Ei(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):[]}i(Ei,"toStringArray");function UR(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t))Array.isArray(n)&&(e[r]=n.filter(o=>o!==null&&typeof o=="object"&&typeof o.matcher=="string"&&typeof o.command=="string"));return e}i(UR,"toHooks");function Ct(t){return `${qn}${t}`}i(Ct,"projectedAgentSkillDirName");function Pi(t){let e={name:Ct(t.name),description:t.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":t.name,"x-agentsmesh-tools":t.tools.length>0?t.tools:void 0,"x-agentsmesh-disallowed-tools":t.disallowedTools.length>0?t.disallowedTools:void 0,"x-agentsmesh-model":t.model||void 0,"x-agentsmesh-permission-mode":t.permissionMode||void 0,"x-agentsmesh-max-turns":t.maxTurns>0?t.maxTurns:void 0,"x-agentsmesh-mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(t.hooks).length>0?t.hooks:void 0,"x-agentsmesh-skills":t.skills.length>0?t.skills:void 0,"x-agentsmesh-memory":t.memory||void 0};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),L(e,t.body.trim()||"")}i(Pi,"serializeProjectedAgentSkill");function wr(t,e){if(t["x-agentsmesh-kind"]!=="agent")return null;let r=typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"",n=e.startsWith(qn)?e.slice(qn.length):e.startsWith(as)?e.slice(as.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",tools:Ei(t["x-agentsmesh-tools"]),disallowedTools:Ei(t["x-agentsmesh-disallowed-tools"]),model:typeof t["x-agentsmesh-model"]=="string"?t["x-agentsmesh-model"]:"",permissionMode:typeof t["x-agentsmesh-permission-mode"]=="string"?t["x-agentsmesh-permission-mode"]:"",maxTurns:typeof t["x-agentsmesh-max-turns"]=="number"?t["x-agentsmesh-max-turns"]:Number(t["x-agentsmesh-max-turns"]??0),mcpServers:Ei(t["x-agentsmesh-mcp-servers"]),hooks:UR(t["x-agentsmesh-hooks"]),skills:Ei(t["x-agentsmesh-skills"]),memory:typeof t["x-agentsmesh-memory"]=="string"?t["x-agentsmesh-memory"]:""}:null}i(wr,"parseProjectedAgentSkillFrontmatter");function ye(t,e){let r={name:t.name,description:t.description,tools:t.tools,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),L(r,e.trim()||"")}i(ye,"serializeImportedAgent");var KR=".agentsmesh/rules",HR=".agentsmesh/commands",zR=".agentsmesh/agents",Ad=".agentsmesh/skills";function A(t,e){return relative(t,e).replace(/\\/g,"/")}i(A,"rel");async function b(t,e){return P(join(t,e)).catch(()=>[])}i(b,"listFiles");function bd(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(bd,"addDirectoryMapping");function VR(t,e,r,n){let o=dirname(e),s=dirname(r);for(;o!==n&&o!==".";)bd(t,o,s),o=dirname(o),s=dirname(s);}i(VR,"addAncestorMappings");function v(t,e,r,n){t.set(e,`${r}/${basename(e,n)}.md`);}i(v,"addSimpleFileMapping");function B(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 p=basename(n,".md");t.set(e,`${Ad}/${p}/SKILL.md`);return}let[o,...s]=n.split("/"),a=s.join("/");if(!o||!a)return;let l=o.startsWith(Xn)?Xn:o.startsWith(is)?is:null;if(l&&a==="SKILL.md"){t.set(e,`${HR}/${o.slice(l.length)}.md`);return}let c=o.startsWith(qn)?qn:o.startsWith(as)?as:null;if(c&&a==="SKILL.md"){t.set(e,`${zR}/${o.slice(c.length)}.md`);return}let m=`${Ad}/${o}`;a==="SKILL.md"&&bd(t,`${r}/${o}`,m);let u=`${m}/${a}`;t.set(e,u),a!=="SKILL.md"&&VR(t,e,u,`${r}/${o}`);}i(B,"addSkillLikeMapping");var JR=new Set([".agents",".claude",".clinerules",".cline",".codex",".continue",".cursor",".gemini",".github",".junie",".windsurf",".roo"]);async function xi(t,e){let r=await b(e,".");for(let n of r){let o=A(e,n),s=o.endsWith("/AGENTS.md")&&o!=="AGENTS.md"&&!o.endsWith("/AGENTS.override.md"),a=o.endsWith("/AGENTS.override.md")&&o!=="AGENTS.override.md";if(!s&&!a)continue;let l=dirname(o);if(JR.has(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${KR}/${c}.md`);}}i(xi,"addScopedAgentsMappings");var Ie="antigravity",Ai=".agents",Zt=`${Ai}/rules`,qt=`${Zt}/general.md`,cs=`${Zt}/_root.md`,Qr=`${Ai}/skills`,_e=`${Ai}/workflows`,ms=`${Ai}/antigravity/mcp_config.json`,Se=".gemini/antigravity/GEMINI.md",Xe=".gemini/antigravity/skills",Qn=".gemini/antigravity/workflows",tn=".gemini/antigravity/mcp_config.json",Pl=".agentsmesh/rules/_root.md",us=".agentsmesh/rules",xl=".agentsmesh/commands",Al=".agentsmesh/mcp.json";var N=".agentsmesh/rules",Y=".agentsmesh/commands",gt=".agentsmesh/agents";async function bl(t,e,r="project"){if(r==="global"){t.set(Se,`${N}/_root.md`);for(let n of await b(e,Xe))B(t,A(e,n),Xe);t.set(tn,".agentsmesh/mcp.json");return}t.set(qt,`${N}/_root.md`),t.set(cs,`${N}/_root.md`);for(let n of await b(e,Zt)){let o=A(e,n);o===qt||o===cs||v(t,o,N,".md");}for(let n of await b(e,_e))v(t,A(e,n),Y,".md");for(let n of await b(e,Qr))B(t,A(e,n),Qr);}i(bl,"buildAntigravityImportPaths");async function Tl(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${N}/_root.md`),t.set(Ye,qr),r==="project"&&t.set("CLAUDE.md",`${N}/_root.md`),r==="global")for(let n of await b(e,".agents/skills"))B(t,A(e,n),".agents/skills");for(let n of await b(e,".claude/rules"))v(t,A(e,n),N,".md");for(let n of await b(e,".claude/commands"))v(t,A(e,n),Y,".md");for(let n of await b(e,".claude/agents"))v(t,A(e,n),gt,".md");for(let n of await b(e,".claude/skills"))B(t,A(e,n),".claude/skills");}i(Tl,"buildClaudeCodeImportPaths");var Or="cline",Ze=".clinerules",en=".clineignore",qe=".cline/cline_mcp_settings.json",Td=".cline/mcp_settings.json",lt=".cline/skills",Ce=".clinerules/workflows",Er="AGENTS.md",rn=".clinerules/hooks",nn="Documents/Cline/Rules",on="Documents/Cline/Workflows",sn="Documents/Cline/Hooks",Ll=".agentsmesh/hooks.yaml",Pr=".agentsmesh/rules",bi=".agentsmesh/commands",Nl=".agentsmesh/ignore",Dl=".agentsmesh/mcp.json",Fl=".agentsmesh/agents",Ld=".agentsmesh/skills";async function vl(t,e,r="project"){if(r==="global"){for(let n of await b(e,nn))v(t,A(e,n),N,".md");for(let n of await b(e,on))v(t,A(e,n),Y,".md");for(let n of await b(e,lt))B(t,A(e,n),lt);t.set(qe,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${N}/_root.md`);for(let n of await b(e,".clinerules")){let o=A(e,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||v(t,o,N,".md");}for(let n of await b(e,".clinerules/workflows"))v(t,A(e,n),Y,".md");for(let n of await b(e,".cline/skills"))B(t,A(e,n),".cline/skills");}i(vl,"buildClineImportPaths");async function $l(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${N}/_root.md`),t.set(".codex/AGENTS.override.md",`${N}/_root.md`)):(t.set("AGENTS.md",`${N}/_root.md`),t.set("codex.md",`${N}/_root.md`),await xi(t,e)),r==="project")for(let n of await b(e,".codex/instructions"))v(t,A(e,n),N,".md");for(let n of await b(e,".codex/rules")){let o=A(e,n);o.endsWith(".rules")?v(t,o,N,".rules"):o.endsWith(".md")&&v(t,o,N,".md");}for(let n of await b(e,".codex/agents"))v(t,A(e,n),gt,".toml");for(let n of await b(e,".agents/skills"))B(t,A(e,n),".agents/skills");}i($l,"buildCodexCliImportPaths");function XR(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${N}/${basename(e,".instructions.md")}.md`);return}v(t,e,N,".md");}i(XR,"addCopilotInstructionMapping");async function Ml(t,e){t.set(".github/copilot-instructions.md",`${N}/_root.md`);for(let r of await b(e,".github/copilot"))t.set(A(e,r),`${N}/${basename(r,".instructions.md")}.md`);for(let r of await b(e,".github/instructions"))XR(t,A(e,r));for(let r of await b(e,".github/prompts"))t.set(A(e,r),`${Y}/${basename(r,".prompt.md")}.md`);for(let r of await b(e,".github/agents"))t.set(A(e,r),`${gt}/${basename(r,".agent.md")}.md`);for(let r of await b(e,".github/skills"))B(t,A(e,r),".github/skills");}i(Ml,"buildCopilotImportPaths");var ps="continue",Gt=".continue/rules",Qt=".continue/prompts",Gl=".continue/mcpServers",Li=`${Gl}/agentsmesh.json`,Qe=`${Gt}/general.md`,jl=`${Gt}/_root.md`,Re=".continue/skills",to=".continue/AGENTS.md",ds=".continue/config.yaml",Ul=".agentsmesh/rules",Ni=".agentsmesh/commands",Wl=".agentsmesh/mcp.json";async function Bl(t,e,r="project"){t.set(Qe,`${N}/_root.md`),t.set(jl,`${N}/_root.md`);for(let n of await b(e,".continue/rules")){let o=A(e,n);o===Qe||o===jl||v(t,o,N,".md");}for(let n of await b(e,".continue/prompts"))t.set(A(e,n),`${Y}/${basename(n,".md")}.md`);for(let n of await b(e,".continue/skills"))B(t,A(e,n),".continue/skills");if(r==="global")for(let n of await b(e,".agents/skills"))B(t,A(e,n),".agents/skills");}i(Bl,"buildContinueImportPaths");var Nd="cursor",xr="AGENTS.md",Dd=".cursorrules",jt=".cursor/rules",tr=`${jt}/general.mdc`,bt=".cursor/commands",an=".cursor/agents",ke=".cursor/skills",we=".cursor/mcp.json",Oe=".cursor/hooks.json",Di=".cursor/settings.json",te=".cursorignore",Kl=".cursorindexingignore",qR=".agentsmesh-exports/cursor",eo=`${qR}/user-rules.md`,ee=".cursor/AGENTS.md",fs=we,Ar=ke,br=an,Ee=".agentsmesh/rules",ro=".agentsmesh/commands",no=".agentsmesh/agents",Fd=".agentsmesh/skills",oo=".agentsmesh/mcp.json",Hl=".agentsmesh/permissions.yaml",gs=".agentsmesh/hooks.yaml",zl=".agentsmesh/ignore";async function Vl(t,e,r="project"){if(r==="global"){t.set(we,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${N}/_root.md`);for(let n of await b(e,".cursor/rules"))v(t,A(e,n),N,".mdc");for(let n of await b(e,".cursor/commands"))v(t,A(e,n),Y,".md");for(let n of await b(e,".cursor/agents"))v(t,A(e,n),gt,".md");for(let n of await b(e,".cursor/skills"))B(t,A(e,n),".cursor/skills");return}t.set("AGENTS.md",`${N}/_root.md`);for(let n of await b(e,".cursor/rules"))v(t,A(e,n),N,".mdc");for(let n of await b(e,".cursor/commands"))v(t,A(e,n),Y,".md");for(let n of await b(e,".cursor/agents"))v(t,A(e,n),gt,".md");for(let n of await b(e,".cursor/skills"))B(t,A(e,n),".cursor/skills");}i(Vl,"buildCursorImportPaths");async function Jl(t,e){for(let r of await b(e,".gemini/rules"))v(t,A(e,r),N,".md");for(let r of await b(e,".gemini/commands")){let n=A(e,r);if(!n.endsWith(".toml")&&!n.endsWith(".md"))continue;let o=n.replace(/\.(toml|md)$/i,""),s=".gemini/commands/",c=(o.startsWith(s)?o.slice(s.length):o).split("/").filter(Boolean).join(":");t.set(n,`${Y}/${c}.md`);}for(let r of await b(e,".gemini/agents"))v(t,A(e,r),gt,".md");for(let r of await b(e,".gemini/skills"))B(t,A(e,r),".gemini/skills");}i(Jl,"buildGeminiCliImportPaths");var Pe="junie",Tr=".junie",Fi=`${Tr}/guidelines.md`,vd=`${Tr}/ci-guidelines.md`,xe=`${Tr}/AGENTS.md`,$d="AGENTS.md",QR=`${Tr}/mcp`,so=`${QR}/mcp.json`,ln=`${Tr}/skills`,cn=`${Tr}/rules`,Lr=`${Tr}/commands`,Nr=`${Tr}/agents`,io=".aiignore",hs=".junie",ys=`${hs}/skills`,Is=`${hs}/agents`,_s=`${hs}/commands`,tk=`${hs}/mcp`,vi=`${tk}/mcp.json`,mn=`${hs}/AGENTS.md`,Md=".agents/skills",Yl=".agentsmesh/rules/_root.md",$i=".agentsmesh/rules",Xl=".agentsmesh/commands",Zl=".agentsmesh/agents",ql=".agentsmesh/mcp.json",Ql=".agentsmesh/ignore";async function tc(t,e){t.set(Fi,`${N}/_root.md`),t.set(xe,`${N}/_root.md`),t.set("AGENTS.md",`${N}/_root.md`);for(let r of await b(e,".junie/rules"))v(t,A(e,r),N,".md");for(let r of await b(e,".junie/commands"))v(t,A(e,r),Y,".md");for(let r of await b(e,".junie/agents"))v(t,A(e,r),gt,".md");for(let r of await b(e,".junie/skills"))B(t,A(e,r),".junie/skills");}i(tc,"buildJunieImportPaths");var ct="kiro",re="AGENTS.md",Ss=".kiro",ne=`${Ss}/steering`,Ut=`${Ss}/skills`,oe=`${Ss}/agents`,Dr=`${Ss}/hooks`,Gd=`${Ss}/settings`,un=`${Gd}/mcp.json`,pn=".kiroignore";var dn=".kiro/steering",se=".kiro/steering/AGENTS.md",Fr=".kiro/skills",fn=".kiro/agents";var ao=".kiro/settings/mcp.json";var lo=".kiro/settings/kiroignore";var jd=".agents/skills",ec=".agentsmesh/rules/_root.md",Mi=".agentsmesh/rules",rc=".agentsmesh/agents",nc=".agentsmesh/mcp.json",oc=".agentsmesh/hooks.yaml",sc=".agentsmesh/ignore";async function ic(t,e,r="project"){if(r==="global"){t.set(se,`${N}/_root.md`);for(let n of await b(e,dn)){let o=A(e,n);o!==se&&v(t,o,N,".md");}for(let n of await b(e,Fr))B(t,A(e,n),Fr);for(let n of await b(e,fn))v(t,A(e,n),gt,".md");return}t.set(re,`${N}/_root.md`);for(let n of await b(e,ne))v(t,A(e,n),N,".md");for(let n of await b(e,Ut))B(t,A(e,n),Ut);for(let n of await b(e,oe))v(t,A(e,n),gt,".md");}i(ic,"buildKiroImportPaths");var Rt="roo-code",gn=".roo",Wt=`${gn}/rules/00-root.md`,Cs=".roorules",Ae=`${gn}/rules`,be=`${gn}/commands`,Te=`${gn}/skills`,co=`${gn}/mcp.json`,mo=".rooignore",uo=".roomodes",Rs="settings/custom_modes.yaml",Gi=".roo",hn=`${Gi}/rules`,yn=`${Gi}/commands`,er=`${Gi}/skills`,vr="mcp_settings.json",ji=".rooignore",rr=`${Gi}/AGENTS.md`,Ud=".agents/skills",ac=".agentsmesh/rules/_root.md",ks=".agentsmesh/rules",lc=".agentsmesh/commands",cc=".agentsmesh/mcp.json",mc=".agentsmesh/ignore";async function uc(t,e,r="project"){if(r==="global"){t.set(rr,`${N}/_root.md`);for(let n of await b(e,hn))v(t,A(e,n),N,".md");for(let n of await b(e,yn))v(t,A(e,n),Y,".md");for(let n of await b(e,er))B(t,A(e,n),er);t.set(vr,".agentsmesh/mcp.json");return}t.set(Wt,`${N}/_root.md`),t.set(Cs,`${N}/_root.md`);for(let n of await b(e,Ae)){let o=A(e,n);o!==Wt&&v(t,o,N,".md");}for(let n of await b(e,".roo")){let o=A(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&v(t,o,N,".md");}for(let n of await b(e,be))v(t,A(e,n),Y,".md");for(let n of await b(e,Te))B(t,A(e,n),Te);}i(uc,"buildRooCodeImportPaths");async function pc(t,e){t.set("AGENTS.md",`${N}/_root.md`),t.set(".windsurfrules",`${N}/_root.md`),await xi(t,e);for(let r of await b(e,".windsurf/rules"))v(t,A(e,r),N,".md");for(let r of await b(e,".windsurf/workflows"))v(t,A(e,r),Y,".md");for(let r of await b(e,".windsurf/skills"))B(t,A(e,r),".windsurf/skills");}i(pc,"buildWindsurfImportPaths");var ek={name:"claude-code",primaryRootInstructionPath:kr,generateRules:md,generateCommands:ud,generateAgents:pd,generateSkills:fd,generateMcp:dd,generatePermissions:gd,generateHooks:hd,generateIgnore:yd,importFrom:Wi},Ui={rootInstructionPath:kr,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",".claudeignore",".mcp.json"]},paths:{rulePath(t,e){return `.claude/rules/${t}.md`},commandPath(t,e){return `.claude/commands/${t}.md`},agentPath(t,e){return `.claude/agents/${t}.md`}}},rk={rootInstructionPath:kr,skillDir:".claude/skills",renderPrimaryRootInstruction:Id,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",ns,Ye,".claudeignore"]},rewriteGeneratedPath(t){return t===Yn?ns:t},mirrorGlobalPath(t,e){return yt(t,".claude/skills",e)},paths:Ui.paths},nk={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},Wd={id:"claude-code",generators:ek,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:Od,project:Ui,globalSupport:{capabilities:nk,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:rk,scopeExtras:Cd},skillDir:Ui.skillDir,paths:Ui.paths,buildImportPaths:Tl,detectionPaths:["CLAUDE.md",".claude/rules",".claude/commands"]};var Os="<!-- agentsmesh:root-generation-contract:start -->",Es="<!-- agentsmesh:root-generation-contract:end -->",Bi="<!-- agentsmesh:embedded-rules:start -->",Ki="<!-- agentsmesh:embedded-rules:end -->",Kd="<!-- agentsmesh:embedded-rule:end -->",Hd="<!-- agentsmesh:embedded-rule:start ",zd=" -->";function ws(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(ws,"escapeRegExp");function dc(t,e){return new RegExp(`${ws(t)}[\\s\\S]*?${ws(e)}`,"g")}i(dc,"managedBlockPattern");function Vd(t,e,r,n){let o=dc(e,r);if(o.test(t))return t.replace(o,n).trim();let s=t.trim();return s?`${s}
|
|
19
|
+
`:""}var Tf=g(()=>{i(xE,"ruleSectionTitle");i(Af,"renderClaudeGlobalPrimaryInstructions");});function Nf(t,e){return t===null?"created":t!==e?"updated":"unchanged"}async function Df(t,e,r,n){if(r!=="global")return [];let o=n.has("agents"),s=n.has("commands");if(!o&&!s)return [];let a=[];if(o)for(let l of t.agents){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=D(c,l.body.trim()),u=`${gc}/${l.name}.md`,p=await y(join(e,u));a.push({target:"claude-code",path:u,content:m,currentContent:p??void 0,status:Nf(p,m)});}if(s)for(let l of t.commands){if(!l.outputStyle)continue;let c={name:l.name,description:l.description||void 0},m=D(c,l.body.trim()),u=`${gc}/${l.name}.md`,p=await y(join(e,u));a.push({target:"claude-code",path:u,content:m,currentContent:p??void 0,status:Nf(p,m)});}return a}var Ff=g(()=>{E();F();Me();i(Nf,"computeStatus");i(Df,"generateClaudeGlobalExtras");});function bE(t,e){return $f(e).some(n=>AE(t,n))}function vf(t,e){return t.filter(r=>bE(r,e))}function $f(t){let e=t.match(/^(.+)\{([^}]+)\}(.*)$/);if(!e)return [t];let[,r,n,o]=e;if(!n)return [t];let s=n.split(",").map(l=>l.trim()),a=[];for(let l of s)for(let c of $f(r+l+o))a.push(c);return a}function AE(t,e){return TE(e).test(t)}function TE(t){let e=[],r=0;for(;r<t.length;){if(t.startsWith("**",r)){let s=t.slice(r+2);if(s.length===0&&e.length===0)e.push(".*");else if(e.push(s.startsWith("/")?"(?:[^/]+/)*":"(?:/[^/]+)*?"),s.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 Mf=g(()=>{i(bE,"globMatch");i(vf,"globFilter");i($f,"expandBraces");i(AE,"matchOne");i(TE,"globToRegex");});function ct(t,e,r,n={}){let o=[],{rules:s}=t;if(s.length===0)return [];if(s.some(l=>l.root)||o.push({level:"error",file:relative(e,s[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 s){if(l.globs.length===0)continue;let c=false;for(let m of l.globs)if(vf(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 he=g(()=>{Mf();i(ct,"validateRules");});function jf(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:yf}))}var Uf=g(()=>{he();Me();i(jf,"lintRules");});function LE(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 Lo(t){return `${To}${t}`}function Wf(t){let e={name:Lo(t.name),description:t.description||void 0,"x-agentsmesh-kind":"command","x-agentsmesh-name":t.name,"x-agentsmesh-allowed-tools":t.allowedTools.length>0?t.allowedTools:void 0};return e.description===void 0&&delete e.description,e["x-agentsmesh-allowed-tools"]===void 0&&delete e["x-agentsmesh-allowed-tools"],D(e,t.body.trim()||"")}function Bf(t,e){if(t["x-agentsmesh-kind"]!=="command")return null;let r=typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"",n=e.startsWith(To)?e.slice(To.length):e.startsWith(Bs)?e.slice(Bs.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",allowedTools:LE(t["x-agentsmesh-allowed-tools"])}:null}function Kf(t,e){return D({description:t.description,"allowed-tools":t.allowedTools},e.trim()||"")}var To,Bs,Ks=g(()=>{F();To="am-command-",Bs="ab-command-";i(LE,"toStringArray");i(Lo,"commandSkillDirName");i(Wf,"serializeCommandSkill");i(Bf,"parseCommandSkillFrontmatter");i(Kf,"serializeImportedCommand");});function pa(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 NE(t){if(!t||typeof t!="object"||Array.isArray(t))return {};let e={};for(let[r,n]of Object.entries(t))Array.isArray(n)&&(e[r]=n.filter(o=>o!==null&&typeof o=="object"&&typeof o.matcher=="string"&&typeof o.command=="string"));return e}function Lt(t){return `${No}${t}`}function da(t){let e={name:Lt(t.name),description:t.description||void 0,"x-agentsmesh-kind":"agent","x-agentsmesh-name":t.name,"x-agentsmesh-tools":t.tools.length>0?t.tools:void 0,"x-agentsmesh-disallowed-tools":t.disallowedTools.length>0?t.disallowedTools:void 0,"x-agentsmesh-model":t.model||void 0,"x-agentsmesh-permission-mode":t.permissionMode||void 0,"x-agentsmesh-max-turns":t.maxTurns>0?t.maxTurns:void 0,"x-agentsmesh-mcp-servers":t.mcpServers.length>0?t.mcpServers:void 0,"x-agentsmesh-hooks":Object.keys(t.hooks).length>0?t.hooks:void 0,"x-agentsmesh-skills":t.skills.length>0?t.skills:void 0,"x-agentsmesh-memory":t.memory||void 0};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),D(e,t.body.trim()||"")}function qr(t,e){if(t["x-agentsmesh-kind"]!=="agent")return null;let r=typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"",n=e.startsWith(No)?e.slice(No.length):e.startsWith(Hs)?e.slice(Hs.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",tools:pa(t["x-agentsmesh-tools"]),disallowedTools:pa(t["x-agentsmesh-disallowed-tools"]),model:typeof t["x-agentsmesh-model"]=="string"?t["x-agentsmesh-model"]:"",permissionMode:typeof t["x-agentsmesh-permission-mode"]=="string"?t["x-agentsmesh-permission-mode"]:"",maxTurns:typeof t["x-agentsmesh-max-turns"]=="number"?t["x-agentsmesh-max-turns"]:Number(t["x-agentsmesh-max-turns"]??0),mcpServers:pa(t["x-agentsmesh-mcp-servers"]),hooks:NE(t["x-agentsmesh-hooks"]),skills:pa(t["x-agentsmesh-skills"]),memory:typeof t["x-agentsmesh-memory"]=="string"?t["x-agentsmesh-memory"]:""}:null}function Ge(t,e){let r={name:t.name,description:t.description,tools:t.tools,disallowedTools:t.disallowedTools.length>0?t.disallowedTools:void 0,model:t.model||void 0,permissionMode:t.permissionMode||void 0,maxTurns:t.maxTurns>0?t.maxTurns:void 0,mcpServers:t.mcpServers.length>0?t.mcpServers:void 0,hooks:Object.keys(t.hooks).length>0?t.hooks:void 0,skills:t.skills.length>0?t.skills:void 0,memory:t.memory||void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),D(r,e.trim()||"")}var No,Hs,ee=g(()=>{F();No="am-agent-",Hs="ab-agent-";i(pa,"toStringArray");i(NE,"toHooks");i(Lt,"projectedAgentSkillDirName");i(da,"serializeProjectedAgentSkill");i(qr,"parseProjectedAgentSkillFrontmatter");i(Ge,"serializeImportedAgent");});function T(t,e){return relative(t,e).replace(/\\/g,"/")}async function L(t,e){return b(join(t,e)).catch(()=>[])}function zf(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function jE(t,e,r,n){let o=dirname(e),s=dirname(r);for(;o!==n&&o!==".";)zf(t,o,s),o=dirname(o),s=dirname(s);}function G(t,e,r,n){t.set(e,`${r}/${basename(e,n)}.md`);}function z(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 p=basename(n,".md");t.set(e,`${Hf}/${p}/SKILL.md`);return}let[o,...s]=n.split("/"),a=s.join("/");if(!o||!a)return;let l=o.startsWith(To)?To:o.startsWith(Bs)?Bs:null;if(l&&a==="SKILL.md"){t.set(e,`${ME}/${o.slice(l.length)}.md`);return}let c=o.startsWith(No)?No:o.startsWith(Hs)?Hs:null;if(c&&a==="SKILL.md"){t.set(e,`${GE}/${o.slice(c.length)}.md`);return}let m=`${Hf}/${o}`;a==="SKILL.md"&&zf(t,`${r}/${o}`,m);let u=`${m}/${a}`;t.set(e,u),a!=="SKILL.md"&&jE(t,e,u,`${r}/${o}`);}function UE(t){return t.split("/").filter(Boolean)[0]??""}async function WE(){if(Sc!==void 0)return Sc;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(ot(),Vf)),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=UE(n);o.startsWith(".")&&e.add(o);}return Sc=e,e}function Cc(t){return t.split("/").some(e=>e.startsWith("."))}async function BE(t){let e=[],r=await WE();async function n(o){let s=join(t,o),a=await readdir(s,{withFileTypes:true}).catch(()=>[]);for(let l of a){let c=o?`${o}/${l.name}`:l.name;if(l.isDirectory()){if(r.has(l.name)||Cc(c))continue;await n(c);continue}if(l.isSymbolicLink()&&await stat(join(t,c)).then(m=>m.isDirectory(),()=>false)){if(r.has(l.name)||Cc(c))continue;await n(c);continue}(l.name==="AGENTS.md"||l.name==="AGENTS.override.md")&&e.push(join(t,c));}}return i(n,"walk"),await n(""),e}async function ga(t,e){let r=await BE(e);for(let n of r){let o=T(e,n),s=o.endsWith("/AGENTS.md")&&o!=="AGENTS.md"&&!o.endsWith("/AGENTS.override.md"),a=o.endsWith("/AGENTS.override.md")&&o!=="AGENTS.override.md";if(!s&&!a)continue;let l=dirname(o);if(Cc(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${$E}/${c}.md`);}}var $E,ME,GE,Hf,Sc,Wt=g(()=>{E();Ks();ee();$E=".agentsmesh/rules",ME=".agentsmesh/commands",GE=".agentsmesh/agents",Hf=".agentsmesh/skills";i(T,"rel");i(L,"listFiles");i(zf,"addDirectoryMapping");i(jE,"addAncestorMappings");i(G,"addSimpleFileMapping");i(z,"addSkillLikeMapping");i(UE,"firstPathSegment");i(WE,"targetRootSegments");i(Cc,"hasHiddenSegment");i(BE,"listScopedAgentsFiles");i(ga,"addScopedAgentsMappings");});var je,ha,ye,Ie,Vs,Ln,Ue,Js,We,Rr,Do,Nn,Rc,Ys,kc,wc,Fo=g(()=>{je="antigravity",ha=".agents",ye=`${ha}/rules`,Ie=`${ye}/general.md`,Vs=`${ye}/_root.md`,Ln=`${ha}/skills`,Ue=`${ha}/workflows`,Js=`${ha}/antigravity/mcp_config.json`,We=".gemini/antigravity/GEMINI.md",Rr=".gemini/antigravity/skills",Do=".gemini/antigravity/workflows",Nn=".gemini/antigravity/mcp_config.json",Rc=".agentsmesh/rules/_root.md",Ys=".agentsmesh/rules",kc=".agentsmesh/commands",wc=".agentsmesh/mcp.json";});var v,Q,kt,Bt=g(()=>{v=".agentsmesh/rules",Q=".agentsmesh/commands",kt=".agentsmesh/agents";});async function Oc(t,e,r="project"){if(r==="global"){t.set(We,`${v}/_root.md`);for(let n of await L(e,Rr))z(t,T(e,n),Rr);t.set(Nn,".agentsmesh/mcp.json");return}t.set(Ie,`${v}/_root.md`),t.set(Vs,`${v}/_root.md`);for(let n of await L(e,ye)){let o=T(e,n);o===Ie||o===Vs||G(t,o,v,".md");}for(let n of await L(e,Ue))G(t,T(e,n),Q,".md");for(let n of await L(e,Ln))z(t,T(e,n),Ln);}var Jf=g(()=>{Wt();Fo();Bt();i(Oc,"buildAntigravityImportPaths");});async function Ec(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${v}/_root.md`),t.set(Cr,Tn),r==="project"&&t.set("CLAUDE.md",`${v}/_root.md`),r==="global")for(let n of await L(e,".agents/skills"))z(t,T(e,n),".agents/skills");for(let n of await L(e,".claude/rules"))G(t,T(e,n),v,".md");for(let n of await L(e,".claude/commands"))G(t,T(e,n),Q,".md");for(let n of await L(e,".claude/agents"))G(t,T(e,n),kt,".md");for(let n of await L(e,".claude/skills"))z(t,T(e,n),".claude/skills");}var Yf=g(()=>{Wt();Me();Bt();i(Ec,"buildClaudeCodeImportPaths");});var Qr,kr,Dn,wr,Xf,yt,Be,tn,Fn,vn,$n,Mn,Pc,en,ya,xc,bc,Ac,Zf,re=g(()=>{Qr="cline",kr=".clinerules",Dn=".clineignore",wr=".cline/cline_mcp_settings.json",Xf=".cline/mcp_settings.json",yt=".cline/skills",Be=".clinerules/workflows",tn="AGENTS.md",Fn=".clinerules/hooks",vn="Documents/Cline/Rules",$n="Documents/Cline/Workflows",Mn="Documents/Cline/Hooks",Pc=".agentsmesh/hooks.yaml",en=".agentsmesh/rules",ya=".agentsmesh/commands",xc=".agentsmesh/ignore",bc=".agentsmesh/mcp.json",Ac=".agentsmesh/agents",Zf=".agentsmesh/skills";});async function Tc(t,e,r="project"){if(r==="global"){for(let n of await L(e,vn))G(t,T(e,n),v,".md");for(let n of await L(e,$n))G(t,T(e,n),Q,".md");for(let n of await L(e,yt))z(t,T(e,n),yt);t.set(wr,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${v}/_root.md`);for(let n of await L(e,".clinerules")){let o=T(e,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||G(t,o,v,".md");}for(let n of await L(e,".clinerules/workflows"))G(t,T(e,n),Q,".md");for(let n of await L(e,".cline/skills"))z(t,T(e,n),".cline/skills");}var qf=g(()=>{Wt();re();Bt();i(Tc,"buildClineImportPaths");});async function Lc(t,e,r="project"){if(r==="global"?(t.set(".codex/AGENTS.md",`${v}/_root.md`),t.set(".codex/AGENTS.override.md",`${v}/_root.md`)):(t.set("AGENTS.md",`${v}/_root.md`),t.set("codex.md",`${v}/_root.md`),await ga(t,e)),r==="project")for(let n of await L(e,".codex/instructions"))G(t,T(e,n),v,".md");for(let n of await L(e,".codex/rules")){let o=T(e,n);o.endsWith(".rules")?G(t,o,v,".rules"):o.endsWith(".md")&&G(t,o,v,".md");}for(let n of await L(e,".codex/agents"))G(t,T(e,n),kt,".toml");for(let n of await L(e,".agents/skills"))z(t,T(e,n),".agents/skills");}var Qf=g(()=>{Wt();Bt();i(Lc,"buildCodexCliImportPaths");});function HE(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${v}/${basename(e,".instructions.md")}.md`);return}G(t,e,v,".md");}async function Nc(t,e){t.set(".github/copilot-instructions.md",`${v}/_root.md`);for(let r of await L(e,".github/copilot"))t.set(T(e,r),`${v}/${basename(r,".instructions.md")}.md`);for(let r of await L(e,".github/instructions"))HE(t,T(e,r));for(let r of await L(e,".github/prompts"))t.set(T(e,r),`${Q}/${basename(r,".prompt.md")}.md`);for(let r of await L(e,".github/agents"))t.set(T(e,r),`${kt}/${basename(r,".agent.md")}.md`);for(let r of await L(e,".github/skills"))z(t,T(e,r),".github/skills");}var tg=g(()=>{Wt();Bt();i(HE,"addCopilotInstructionMapping");i(Nc,"buildCopilotImportPaths");});var Xs,ne,Se,Dc,Sa,Or,Fc,Ke,vo,Zs,vc,_a,$c,Er=g(()=>{Xs="continue",ne=".continue/rules",Se=".continue/prompts",Dc=".continue/mcpServers",Sa=`${Dc}/agentsmesh.json`,Or=`${ne}/general.md`,Fc=`${ne}/_root.md`,Ke=".continue/skills",vo=".continue/AGENTS.md",Zs=".continue/config.yaml",vc=".agentsmesh/rules",_a=".agentsmesh/commands",$c=".agentsmesh/mcp.json";});async function Mc(t,e,r="project"){t.set(Or,`${v}/_root.md`),t.set(Fc,`${v}/_root.md`);for(let n of await L(e,".continue/rules")){let o=T(e,n);o===Or||o===Fc||G(t,o,v,".md");}for(let n of await L(e,".continue/prompts"))t.set(T(e,n),`${Q}/${basename(n,".md")}.md`);for(let n of await L(e,".continue/skills"))z(t,T(e,n),".continue/skills");if(r==="global")for(let n of await L(e,".agents/skills"))z(t,T(e,n),".agents/skills");}var eg=g(()=>{Wt();Er();Bt();i(Mc,"buildContinueImportPaths");});var rg,rn,ng,oe,Pr,Kt,Gn,He,ze,Ve,Ca,_e,Gc,VE,$o,Ce,qs,nn,on,Je,Mo,Go,og,jo,jc,Qs,Uc,ut=g(()=>{rg="cursor",rn="AGENTS.md",ng=".cursorrules",oe=".cursor/rules",Pr=`${oe}/general.mdc`,Kt=".cursor/commands",Gn=".cursor/agents",He=".cursor/skills",ze=".cursor/mcp.json",Ve=".cursor/hooks.json",Ca=".cursor/settings.json",_e=".cursorignore",Gc=".cursorindexingignore",VE=".agentsmesh-exports/cursor",$o=`${VE}/user-rules.md`,Ce=".cursor/AGENTS.md",qs=ze,nn=He,on=Gn,Je=".agentsmesh/rules",Mo=".agentsmesh/commands",Go=".agentsmesh/agents",og=".agentsmesh/skills",jo=".agentsmesh/mcp.json",jc=".agentsmesh/permissions.yaml",Qs=".agentsmesh/hooks.yaml",Uc=".agentsmesh/ignore";});async function Wc(t,e,r="project"){if(r==="global"){t.set(ze,".agentsmesh/mcp.json"),t.set(".cursor/AGENTS.md",`${v}/_root.md`);for(let n of await L(e,".cursor/rules"))G(t,T(e,n),v,".mdc");for(let n of await L(e,".cursor/commands"))G(t,T(e,n),Q,".md");for(let n of await L(e,".cursor/agents"))G(t,T(e,n),kt,".md");for(let n of await L(e,".cursor/skills"))z(t,T(e,n),".cursor/skills");return}t.set("AGENTS.md",`${v}/_root.md`);for(let n of await L(e,".cursor/rules"))G(t,T(e,n),v,".mdc");for(let n of await L(e,".cursor/commands"))G(t,T(e,n),Q,".md");for(let n of await L(e,".cursor/agents"))G(t,T(e,n),kt,".md");for(let n of await L(e,".cursor/skills"))z(t,T(e,n),".cursor/skills");}var sg=g(()=>{Wt();ut();Bt();i(Wc,"buildCursorImportPaths");});async function Bc(t,e){for(let r of await L(e,".gemini/rules"))G(t,T(e,r),v,".md");for(let r of await L(e,".gemini/commands")){let n=T(e,r);if(!n.endsWith(".toml")&&!n.endsWith(".md"))continue;let o=n.replace(/\.(toml|md)$/i,""),s=".gemini/commands/",c=(o.startsWith(s)?o.slice(s.length):o).split("/").filter(Boolean).join(":");t.set(n,`${Q}/${c}.md`);}for(let r of await L(e,".gemini/agents"))G(t,T(e,r),kt,".md");for(let r of await L(e,".gemini/skills"))z(t,T(e,r),".gemini/skills");}var ig=g(()=>{Wt();Bt();i(Bc,"buildGeminiCliImportPaths");});var Ye,sn,Ra,ag,Xe,lg,JE,Uo,jn,Un,an,ln,Wo,ti,ei,ri,ni,YE,ka,Wn,cg,Kc,wa,Hc,zc,Vc,Jc,Bn=g(()=>{Ye="junie",sn=".junie",Ra=`${sn}/guidelines.md`,ag=`${sn}/ci-guidelines.md`,Xe=`${sn}/AGENTS.md`,lg="AGENTS.md",JE=`${sn}/mcp`,Uo=`${JE}/mcp.json`,jn=`${sn}/skills`,Un=`${sn}/rules`,an=`${sn}/commands`,ln=`${sn}/agents`,Wo=".aiignore",ti=".junie",ei=`${ti}/skills`,ri=`${ti}/agents`,ni=`${ti}/commands`,YE=`${ti}/mcp`,ka=`${YE}/mcp.json`,Wn=`${ti}/AGENTS.md`,cg=".agents/skills",Kc=".agentsmesh/rules/_root.md",wa=".agentsmesh/rules",Hc=".agentsmesh/commands",zc=".agentsmesh/agents",Vc=".agentsmesh/mcp.json",Jc=".agentsmesh/ignore";});async function Yc(t,e){t.set(Ra,`${v}/_root.md`),t.set(Xe,`${v}/_root.md`),t.set("AGENTS.md",`${v}/_root.md`);for(let r of await L(e,".junie/rules"))G(t,T(e,r),v,".md");for(let r of await L(e,".junie/commands"))G(t,T(e,r),Q,".md");for(let r of await L(e,".junie/agents"))G(t,T(e,r),kt,".md");for(let r of await L(e,".junie/skills"))z(t,T(e,r),".junie/skills");}var mg=g(()=>{Wt();Bn();Bt();i(Yc,"buildJunieImportPaths");});var It,Re,oi,ke,se,we,cn,ug,Kn,Hn,zn,Oe,mn,Vn,Bo,Ko,pg,Xc,Oa,Zc,qc,Qc,tm,Jn=g(()=>{It="kiro",Re="AGENTS.md",oi=".kiro",ke=`${oi}/steering`,se=`${oi}/skills`,we=`${oi}/agents`,cn=`${oi}/hooks`,ug=`${oi}/settings`,Kn=`${ug}/mcp.json`,Hn=".kiroignore",zn=".kiro/steering",Oe=".kiro/steering/AGENTS.md",mn=".kiro/skills",Vn=".kiro/agents",Bo=".kiro/settings/mcp.json",Ko=".kiro/settings/kiroignore",pg=".agents/skills",Xc=".agentsmesh/rules/_root.md",Oa=".agentsmesh/rules",Zc=".agentsmesh/agents",qc=".agentsmesh/mcp.json",Qc=".agentsmesh/hooks.yaml",tm=".agentsmesh/ignore";});async function em(t,e,r="project"){if(r==="global"){t.set(Oe,`${v}/_root.md`);for(let n of await L(e,zn)){let o=T(e,n);o!==Oe&&G(t,o,v,".md");}for(let n of await L(e,mn))z(t,T(e,n),mn);for(let n of await L(e,Vn))G(t,T(e,n),kt,".md");return}t.set(Re,`${v}/_root.md`);for(let n of await L(e,ke))G(t,T(e,n),v,".md");for(let n of await L(e,se))z(t,T(e,n),se);for(let n of await L(e,we))G(t,T(e,n),kt,".md");}var dg=g(()=>{Wt();Jn();Bt();i(em,"buildKiroImportPaths");});var Nt,Yn,ie,si,Ze,qe,Qe,Ho,zo,Vo,ii,Ea,Xn,Zn,xr,un,Pa,br,fg,rm,ai,nm,om,sm,qn=g(()=>{Nt="roo-code",Yn=".roo",ie=`${Yn}/rules/00-root.md`,si=".roorules",Ze=`${Yn}/rules`,qe=`${Yn}/commands`,Qe=`${Yn}/skills`,Ho=`${Yn}/mcp.json`,zo=".rooignore",Vo=".roomodes",ii="settings/custom_modes.yaml",Ea=".roo",Xn=`${Ea}/rules`,Zn=`${Ea}/commands`,xr=`${Ea}/skills`,un="mcp_settings.json",Pa=".rooignore",br=`${Ea}/AGENTS.md`,fg=".agents/skills",rm=".agentsmesh/rules/_root.md",ai=".agentsmesh/rules",nm=".agentsmesh/commands",om=".agentsmesh/mcp.json",sm=".agentsmesh/ignore";});async function im(t,e,r="project"){if(r==="global"){t.set(br,`${v}/_root.md`);for(let n of await L(e,Xn))G(t,T(e,n),v,".md");for(let n of await L(e,Zn))G(t,T(e,n),Q,".md");for(let n of await L(e,xr))z(t,T(e,n),xr);t.set(un,".agentsmesh/mcp.json");return}t.set(ie,`${v}/_root.md`),t.set(si,`${v}/_root.md`);for(let n of await L(e,Ze)){let o=T(e,n);o!==ie&&G(t,o,v,".md");}for(let n of await L(e,".roo")){let o=T(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&G(t,o,v,".md");}for(let n of await L(e,qe))G(t,T(e,n),Q,".md");for(let n of await L(e,Qe))z(t,T(e,n),Qe);}var gg=g(()=>{Wt();qn();Bt();i(im,"buildRooCodeImportPaths");});async function am(t,e){t.set("AGENTS.md",`${v}/_root.md`),t.set(".windsurfrules",`${v}/_root.md`),await ga(t,e);for(let r of await L(e,".windsurf/rules"))G(t,T(e,r),v,".md");for(let r of await L(e,".windsurf/workflows"))G(t,T(e,r),Q,".md");for(let r of await L(e,".windsurf/skills"))z(t,T(e,r),".windsurf/skills");}var hg=g(()=>{Wt();Bt();i(am,"buildWindsurfImportPaths");});var yg=g(()=>{Jf();Yf();qf();Qf();tg();eg();sg();ig();mg();dg();gg();hg();});var Ht=g(()=>{yg();});var XE,Ig,ZE,qE,Sg,_g=g(()=>{bf();Me();Zr();Tf();Ff();lm();Uf();Ht();XE={name:"claude-code",primaryRootInstructionPath:Xr,generateRules:Cf,generateCommands:Rf,generateAgents:kf,generateSkills:Of,generateMcp:wf,generatePermissions:Ef,generateHooks:Pf,generateIgnore:xf,importFrom:xa},Ig={rootInstructionPath:Xr,skillDir:".claude/skills",managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",".claudeignore",".mcp.json"]},paths:{rulePath(t,e){return `.claude/rules/${t}.md`},commandPath(t,e){return `.claude/commands/${t}.md`},agentPath(t,e){return `.claude/agents/${t}.md`}}},ZE={rootInstructionPath:Xr,skillDir:".claude/skills",renderPrimaryRootInstruction:Af,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",js,Cr,".claudeignore"]},rewriteGeneratedPath(t){return t===Ao?js:t},mirrorGlobalPath(t,e){return Et(t,".claude/skills",e)},paths:Ig.paths},qE={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},Sg={id:"claude-code",generators:XE,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:jf,project:Ig,globalSupport:{capabilities:qE,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:ZE,scopeExtras:Df},buildImportPaths:Ec,detectionPaths:["CLAUDE.md",".claude/rules",".claude/commands"]};});function li(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function cm(t,e){return new RegExp(`${li(t)}[\\s\\S]*?${li(e)}`,"g")}function Og(t,e,r,n){let o=cm(e,r);if(o.test(t))return t.replace(o,n).trim();let s=t.trim();return s?`${s}
|
|
43
20
|
|
|
44
|
-
${n}`:n}
|
|
45
|
-
`)}
|
|
46
|
-
`)}
|
|
21
|
+
${n}`:n}function mm(t,e,r){return t.replace(cm(e,r),"").trim()}function eP(t){let e=t.replace(/\\/g,"/"),r=e.lastIndexOf(".agentsmesh/");return r>=0?e.slice(r+12):e.startsWith("rules/")?e:join("rules",basename(e)).replace(/\\/g,"/")}function rP(t){return {source:eP(t.source),description:t.description,globs:t.globs,targets:t.targets}}function nP(t){return `${kg}${JSON.stringify(rP(t))}${wg}`}function oP(t){let e=[nP(t)];return t.description.trim()&&e.push(`## ${t.description.trim()}`,""),e.push(t.body.trim(),Rg),e.filter(r=>r.length>0).join(`
|
|
22
|
+
`)}function sP(t){return t.length===0?"":[ba,...t.map(oP),Aa].join(`
|
|
23
|
+
`)}function Ee(t,e){let r=sP(e),n=mm(t,ba,Aa);return r?n?`${n}
|
|
47
24
|
|
|
48
|
-
${r}`:r:n}
|
|
25
|
+
${r}`:r:n}function Cg(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function iP(t){try{let e=JSON.parse(t);if(!e||typeof e!="object"||Array.isArray(e))return null;let r=e;return typeof r.source!="string"||!r.source.startsWith("rules/")?null:{source:r.source,description:typeof r.description=="string"?r.description:"",globs:Cg(r.globs),targets:Cg(r.targets)}}catch{return null}}function aP(t,e){let r=t.trim();if(!e.trim())return r;let n=`## ${e.trim()}`;return r.startsWith(n)?r.slice(n.length).trim():r}function Eg(t){let e=[],r=cm(ba,Aa);return {rootContent:t.replace(r,o=>{let s=o.replace(ba,"").replace(Aa,"").trim(),a=new RegExp(`${li(kg)}([\\s\\S]*?)${li(wg)}([\\s\\S]*?)${li(Rg)}`,"g");for(let l of s.matchAll(a)){let c=l[1],m=l[2];if(c===void 0||m===void 0)continue;let u=iP(c);u&&e.push({...u,body:aP(m,u.description)});}return ""}).trim(),rules:e}}var ci,mi,ba,Aa,Rg,kg,wg,pn=g(()=>{ci="<!-- agentsmesh:root-generation-contract:start -->",mi="<!-- agentsmesh:root-generation-contract:end -->",ba="<!-- agentsmesh:embedded-rules:start -->",Aa="<!-- agentsmesh:embedded-rules:end -->",Rg="<!-- agentsmesh:embedded-rule:end -->",kg="<!-- agentsmesh:embedded-rule:start ",wg=" -->";i(li,"escapeRegExp");i(cm,"managedBlockPattern");i(Og,"replaceManagedBlock");i(mm,"stripManagedBlock");i(eP,"ruleSource");i(rP,"markerForRule");i(nP,"embeddedRuleStart");i(oP,"renderRule");i(sP,"renderEmbeddedRulesBlock");i(Ee,"appendEmbeddedRulesBlock");i(Cg,"toStringArray");i(iP,"parseMarker");i(aP,"stripGeneratedHeading");i(Eg,"extractEmbeddedRules");});function um(t){let e=[],r=t.rules.find(s=>s.root);if(r){let s=r.body.trim()?r.body:"";e.push({path:rn,content:s});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=D(a,s);e.push({path:Pr,content:l});}let n=t.rules.filter(s=>!s.root&&(s.targets.length===0||s.targets.includes("cursor")));for(let s of n){let a=basename(s.source,".md"),c={alwaysApply:s.trigger==="always_on"};s.description&&(c.description=s.description),s.globs.length>0&&(c.globs=s.globs);let m=D(c,s.body.trim()||"");e.push({path:`${oe}/${a}.mdc`,content:m});}let o=Pg(t);return o.trim()&&e.push({path:Ce,content:o}),e}function Pg(t){let e=t.rules.find(o=>o.root),r=t.rules.filter(o=>!o.root&&(o.targets.length===0||o.targets.includes("cursor"))),n=[];return e?.body.trim()?n.push(Ee(e.body,r)):r.length>0&&n.push(Ee("",r)),n.filter(Boolean).join(`
|
|
49
26
|
|
|
50
|
-
`)}i(
|
|
51
|
-
`);return [{path:
|
|
27
|
+
`)}var xg=g(()=>{F();pn();ut();i(um,"generateRules");i(Pg,"renderCursorGlobalUserRules");});function pm(t){return t.commands.map(e=>({path:`${Kt}/${e.name}.md`,content:e.body.trim()||""}))}var bg=g(()=>{ut();i(pm,"generateCommands");});function dm(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:ze,content:e}]}var Ag=g(()=>{ut();i(dm,"generateMcp");});function fm(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=D(n,r.body.trim()||"");e.push({path:`${He}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${He}/${r.name}/${a}`,content:s.content});}}return e}var Tg=g(()=>{F();ut();i(fm,"generateSkills");});function gm(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,permissionMode:e.permissionMode||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,mcpServers:e.mcpServers.length>0?e.mcpServers:void 0,hooks:Object.keys(e.hooks).length>0?e.hooks:void 0,skills:e.skills.length>0?e.skills:void 0,memory:e.memory||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,e.body.trim()||"");return {path:`${Gn}/${e.name}.md`,content:n}})}var Lg=g(()=>{F();ut();i(gm,"generateAgents");});function hm(t){return []}var Ng=g(()=>{i(hm,"generatePermissions");});function cP(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!$e(s))continue;let a=mt(s),l=Ot(s),c=s.type==="prompt"?l||a:a||l,m={type:s.type==="prompt"?"prompt":"command",[s.type==="prompt"?"prompt":"command"]:c};s.timeout!==void 0&&(m.timeout=s.timeout),o.push({matcher:s.matcher,hooks:[m]});}o.length>0&&(e[r]=o);}return e}function ym(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=cP(t.hooks);if(Object.keys(e).length===0)return [];let r=JSON.stringify({version:1,hooks:e},null,2);return [{path:Ve,content:r}]}var Dg=g(()=>{fe();ut();i(cP,"toCursorHooks");i(ym,"generateHooks");});function Im(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
28
|
+
`);return [{path:_e,content:e}]}var Fg=g(()=>{ut();i(Im,"generateIgnore");});var vg=g(()=>{xg();bg();Ag();Tg();Lg();Ng();Dg();Fg();});var $g=g(()=>{vg();});function pP(t,e){return e.some(r=>t.endsWith(r))}async function U(t){let r=(await b(t.srcDir)).filter(o=>pP(o,t.extensions)),n=[];for(let o of r){let s=await y(o);if(!s)continue;let a=relative(t.srcDir,o).replace(/\\/g,"/"),l=await t.mapEntry({srcPath:o,relativePath:a,content:s,normalizeTo:i((c,m=s)=>t.normalize(m,o,c),"normalizeTo")});l&&(await k(dirname(l.destPath)),await S(l.destPath,l.content),n.push({fromTool:t.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var pt=g(()=>{E();i(pP,"matchesExtension");i(U,"importFileDirectory");});function Sm(t){return t.replace(/\s+/g," ").trim()}function Gg(t){let e=t.trim();if(e.includes(ci)&&e.includes(mi))return Og(e,ci,mi,Jo);let r=Sm(e);if(r.includes(Sm(Jo)))return e;for(let n of Mg)if(r.includes(Sm(n)))return e.replace(n,Jo);return e?`${e}
|
|
52
29
|
|
|
53
|
-
${
|
|
30
|
+
${Jo}`:Jo}function jg(t){let e=mm(t,ci,mi);e=e.replace(`
|
|
54
31
|
|
|
55
|
-
${
|
|
32
|
+
${Jo}`,"");for(let r of Mg)e=e.replace(`
|
|
56
33
|
|
|
57
|
-
${
|
|
34
|
+
${r}`,"");return e.trim()}var _m,dP,fP,gP,hP,yP,IP,SP,_P,CP,RP,kP,wP,OP,EP,PP,xP,Jo,Mg,Cm=g(()=>{pn();_m="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.",dP="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.",fP="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.",gP="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.",hP="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`.",yP="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`.",IP="`.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`.",SP="`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.",_P=_m,CP=`## Project-Specific Rules
|
|
58
35
|
|
|
59
|
-
${
|
|
36
|
+
${_m}`,RP=`## AgentsMesh Generation Contract
|
|
60
37
|
|
|
61
|
-
${
|
|
38
|
+
${_m}`,kP=`## AgentsMesh Generation Contract
|
|
62
39
|
|
|
63
|
-
${
|
|
40
|
+
${dP}`,wP=`## AgentsMesh Generation Contract
|
|
64
41
|
|
|
65
|
-
${
|
|
42
|
+
${fP}`,OP=`## AgentsMesh Generation Contract
|
|
66
43
|
|
|
67
|
-
${
|
|
68
|
-
## AgentsMesh Generation Contract
|
|
44
|
+
${gP}`,EP=`## AgentsMesh Generation Contract
|
|
69
45
|
|
|
70
|
-
${
|
|
71
|
-
${Es}`;function kc(t){return t.replace(/\s+/g," ").trim()}i(kc,"normalizeWhitespace");var Xd=[Lk,Tk,bk,Ak,xk,Pk,Ek,Ok,wk];function Zd(t){let e=t.trim();if(e.includes(Os)&&e.includes(Es))return Vd(e,Os,Es,po);let r=kc(e);if(r.includes(kc(po)))return e;for(let n of Xd)if(r.includes(kc(n)))return e.replace(n,po);return e?`${e}
|
|
46
|
+
${hP}`,PP=`## AgentsMesh Generation Contract
|
|
72
47
|
|
|
73
|
-
${
|
|
48
|
+
${yP}`,xP=`## AgentsMesh Generation Contract
|
|
74
49
|
|
|
75
|
-
${
|
|
50
|
+
${IP}`,Jo=`${ci}
|
|
51
|
+
## AgentsMesh Generation Contract
|
|
76
52
|
|
|
77
|
-
${
|
|
53
|
+
${SP}
|
|
54
|
+
${mi}`;i(Sm,"normalizeWhitespace");Mg=[xP,PP,EP,OP,wP,kP,RP,CP,_P];i(Gg,"appendAgentsmeshRootInstructionParagraph");i(jg,"stripAgentsmeshRootInstructionParagraph");});function Pt(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}async function Yo(t){let e=await y(t);return e?w(e).frontmatter:{}}function St(t,e){return typeof t[e]=="string"?t[e]:void 0}function Rm(t){let e=t.hooks;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function bP(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function AP(t,e){let r=basename(t,".md")==="_root",n={...e};return delete n.root,{root:r,...n}}async function $(t,e,r){let n=await Yo(t),o=basename(t,".md")==="_root"?jg(r):r.trim(),s=AP(t,bP({...n,...e})),a={root:s.root===true,description:typeof s.description=="string"?s.description:""};a.root===false&&(a.globs=Pt(s.globs));for(let[l,c]of Object.entries(s))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return D(a,o||"")}var km=g(()=>{E();F();Cm();i(Pt,"toStringArray");i(Yo,"readExistingFrontmatter");i(St,"readString");i(Rm,"readHooks");i(bP,"pruneUndefined");i(AP,"serializeCanonicalRuleFrontmatter");i($,"serializeImportedRuleWithFallback");});async function st(t,e,r){let n=await Yo(t),o=(()=>{let l=Pt(n.allowedTools);return l.length>0?l:Pt(n["allowed-tools"])})(),s=e.hasDescription?e.description??"":typeof n.description=="string"?n.description:"",a=e.hasAllowedTools?e.allowedTools??[]:o;return D({description:s,"allowed-tools":a},r.trim()||"")}async function tr(t,e,r){let n=await Yo(t),o=basename(dirname(t)),s=St(e,"name")??St(n,"name")??o,a=St(e,"description")??St(n,"description")??"";return D({name:s,description:a},r.trim()||"")}async function zt(t,e,r){let n=await Yo(t),o=Object.prototype.hasOwnProperty.call(e,"tools")?Pt(e.tools):(()=>{let C=Pt(n.tools);return C.length>0?C:[]})(),s=Object.prototype.hasOwnProperty.call(e,"disallowedTools")?Pt(e.disallowedTools):Object.prototype.hasOwnProperty.call(e,"disallowed-tools")?Pt(e["disallowed-tools"]):Pt(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(e,"mcpServers")?Pt(e.mcpServers):Object.prototype.hasOwnProperty.call(e,"mcp-servers")?Pt(e["mcp-servers"]):Pt(n.mcpServers),l=Object.prototype.hasOwnProperty.call(e,"skills")?Pt(e.skills):Pt(n.skills),c=e.maxTurns??e["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),u=Rm(e)??Rm(n),p={name:St(e,"name")??St(n,"name")??basename(t,".md"),description:St(e,"description")??St(n,"description")??"",tools:o};s.length>0&&(p.disallowedTools=s);let d=St(e,"model")??St(n,"model");d&&(p.model=d);let f=St(e,"permissionMode")??St(e,"permission-mode")??St(n,"permissionMode")??St(n,"permission-mode");f&&(p.permissionMode=f),Number.isInteger(m)&&m>0&&(p.maxTurns=m),a.length>0&&(p.mcpServers=a),u&&Object.keys(u).length>0&&(p.hooks=u),l.length>0&&(p.skills=l);let h=St(e,"memory")??St(n,"memory");return h&&(p.memory=h),D(p,r.trim()||"")}var Bg=g(()=>{F();km();i(st,"serializeImportedCommandWithFallback");i(tr,"serializeImportedSkillWithFallback");i(zt,"serializeImportedAgentWithFallback");});var V=g(()=>{km();Bg();});function Ar(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function Tr(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}function Lr(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function Dt(t){return !t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}var Pe=g(()=>{i(Ar,"toGlobsArray");i(Tr,"toToolsArray");i(Lr,"toStringArray");i(Dt,"toStringRecord");});async function La(t,e,r,n){let o=t.replace(/\.mdc$/i,".md"),s=join(e,o),l=w(r(s)).frontmatter.alwaysApply===true,c=l?join(e,"_root.md"):s,{frontmatter:m,body:u}=w(r(c));l&&n();let p={...m,root:l};return delete p.alwaysApply,{destPath:c,toPath:`${Je}/${l?"_root.md":o}`,feature:"rules",content:await $(c,p,u)}}async function Na(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n)),a=Tr(o.allowedTools),l=a.length>0?a:Tr(o["allowed-tools"]);return {destPath:n,toPath:`${Mo}/${t}`,feature:"commands",content:await st(n,{description:typeof o.description=="string"?o.description:"",hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},s)}}async function Da(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n));return {destPath:n,toPath:`${Go}/${t}`,feature:"agents",content:await zt(n,o,s)}}var Fa=g(()=>{F();V();Pe();ut();i(La,"mapCursorRuleFile");i(Na,"mapCursorCommandFile");i(Da,"mapCursorAgentFile");});function LP(t){let e=t.replace(/\\/g,"/");return !e.startsWith("rules/")||e.endsWith("/")||!e.endsWith(".md")?null:e}async function er(t){let e=Eg(t.content),r=[];if(e.rules.length===0)return {rootContent:e.rootContent,results:r};await k(join(t.projectRoot,t.rulesDir));for(let n of e.rules){let o=LP(n.source);if(o===null||o==="rules/_root.md")continue;let s=join(t.projectRoot,".agentsmesh",o),a=t.normalize(n.body,t.sourcePath,s),{frontmatter:l,body:c}=w(a),m=await $(s,{...l,root:false,description:n.description||void 0,globs:n.globs.length>0?n.globs:void 0,targets:n.targets.length>0?n.targets:void 0},c);await S(s,m),r.push({fromTool:t.fromTool,fromPath:t.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:e.rootContent,results:r}}var Xo=g(()=>{E();F();pn();V();i(LP,"canonicalRulePath");i(er,"splitEmbeddedRulesToCanonical");});async function Zo(t){let e=join(t.projectRoot,Je);await k(e);let r=join(e,"_root.md"),n=await er({content:t.content,projectRoot:t.projectRoot,rulesDir:Je,sourcePath:t.sourcePath,fromTool:"cursor",normalize:t.normalize});t.results.push(...n.results);let o=t.normalize(n.rootContent,t.sourcePath,r);if(!o.trim()&&n.results.length>0)return true;let{frontmatter:s,body:a}=w(o),l=s.root===true?s:{...s,root:true},c=await $(r,l,a);return await S(r,c),t.results.push({fromTool:"cursor",fromPath:t.sourcePath,toPath:`${Je}/_root.md`,feature:"rules"}),true}var wm=g(()=>{E();F();Xo();V();ut();i(Zo,"importCursorRootFile");});async function zg(t,e,r){let n=join(t,Je),o=false,s=join(t,oe);if(e.push(...await U({srcDir:s,destDir:n,extensions:[".mdc"],fromTool:"cursor",normalize:r,mapEntry:i(async({srcPath:a,relativePath:l,normalizeTo:c})=>{if(o){let m=await y(a);if(m!==null){let{frontmatter:u}=w(m);if(u.alwaysApply===true)return null}}return La(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(t,rn),l=await y(a);l!==null&&(o=await Zo({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(t,ng),l=await y(a);l!==null&&await Zo({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r});}}var Vg=g(()=>{E();F();pt();Fa();wm();ut();i(zg,"importCursorRules");});function Jg(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!s||typeof s!="object")continue;let a=s,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let u=m.type==="prompt"?"prompt":"command";if(!$e({...m,type:u}))continue;let p=u==="prompt"?Ot(m)||mt(m):mt(m)||Ot(m),d={matcher:l,type:u,command:p};typeof m.timeout=="number"&&(d.timeout=m.timeout),o.push(d);}}o.length>0&&(e[r]=o);}return e}async function Ma(t,e){let r=false,n=join(t,Ve),o=await y(n);if(o)try{let u=JSON.parse(o);if(u.hooks&&typeof u.hooks=="object"){let p=Jg(u.hooks);if(Object.keys(p).length>0){let d=stringify(p),f=join(t,Qs);await k(dirname(f)),await S(f,d),e.push({fromTool:"cursor",fromPath:n,toPath:Qs,feature:"hooks"}),r=!0;}}}catch{}let s=join(t,Ca),a=await y(s);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 u=c,p=Array.isArray(u.allow)?u.allow.filter(f=>typeof f=="string"):[],d=Array.isArray(u.deny)?u.deny.filter(f=>typeof f=="string"):[];if(p.length>0||d.length>0){let f=stringify({allow:p,deny:d}),h=join(t,jc);await k(dirname(h)),await S(h,f),e.push({fromTool:"cursor",fromPath:s,toPath:jc,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let u=Jg(m);if(Object.keys(u).length>0){let p=stringify(u),d=join(t,Qs);await k(dirname(d)),await S(d,p),e.push({fromTool:"cursor",fromPath:s,toPath:Qs,feature:"hooks"});}}}async function Ga(t,e){let r=[{path:join(t,_e),label:_e},{path:join(t,Gc),label:Gc}],n=[],o=[];for(let a of r){let l=await y(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 s=join(t,Uc);await k(dirname(s)),await S(s,n.join(`
|
|
78
55
|
`)+`
|
|
79
|
-
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:zl,feature:"ignore"});}i(qi,"importIgnore");var $k=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];function sf(t){return $k.some(e=>e.test(t))}i(sf,"isReservedArtifactName");async function Gk(t){let e=await P(t).catch(()=>[]),r=[];for(let n of e){let o=relative(t,n).replace(/\\/g,"/"),s=basename(o);if(sf(s))continue;let a=await h(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}i(Gk,"readNativeSkill");async function De(t,e,r){let n=await Gk(e),o=join(r.projectRoot,r.destCanonicalSkillsDir,t);for(let s of n){let a=join(o,s.relativePath);await R(dirname(a));let l=r.normalize(s.content,s.absolutePath,a);if(s.relativePath==="SKILL.md"){let{frontmatter:c,body:m}=w(l),u=await Le(a,{...c,name:t},m);await _(a,u);}else await _(a,l);r.results.push({fromTool:r.targetName,fromPath:s.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${t}/${s.relativePath}`,feature:"skills"});}}i(De,"importDirectorySkill");async function lf(t,e,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,t);await R(o);let s=join(o,"SKILL.md"),a=n.normalize(r,e,s),{frontmatter:l,body:c}=w(a),m=await Le(s,{...l,name:t},c);await _(s,m),n.results.push({fromTool:n.targetName,fromPath:e,toPath:`${n.destCanonicalSkillsDir}/${t}/SKILL.md`,feature:"skills"});}i(lf,"importFlatSkill");async function $r(t){let e=new Map;try{let n=(await P(t)).filter(o=>basename(o)==="SKILL.md");for(let o of n){let s=dirname(o),a=basename(s);e.set(a,s);}}catch{}return e}i($r,"findDirectorySkills");async function ta(t,e,r,n=ke){let o=join(t,n),s=await $r(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:Fd,targetName:"cursor",normalize:r,results:e};for(let[u,p]of s)await De(u,p,a);let l=await P(o).catch(()=>[]),c=l.filter(u=>u.endsWith(".md")),m=new Set(Array.from(s.values()).flatMap(u=>l.filter(p=>p.startsWith(u))));for(let u of c){if(m.has(u))continue;let p=await h(u);if(!p)continue;let d=basename(u,".md");await lf(d,u,p,a);}}i(ta,"importSkills");var ho="cursor";async function cf(t){if(await T(join(t,jt)))return true;let e=[join(t,ee),join(t,eo),join(t,fs),join(t,Oe),join(t,te),join(t,Ar),join(t,br),join(t,bt)];for(let s of e){let a=await h(s);if(a!==null&&a.trim()!=="")return true}return !!((await P(join(t,Ar))).some(s=>s.endsWith(".md"))||(await P(join(t,br))).some(s=>s.endsWith(".md"))||(await P(join(t,bt))).some(s=>s.endsWith(".md")))}i(cf,"hasGlobalCursorArtifacts");async function mf(t,e,r){let n=join(t,Ee),o=false,s=join(t,jt),a=await M({srcDir:s,destDir:n,extensions:[".mdc"],fromTool:ho,normalize:r,mapEntry:i(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let u=await h(l);if(u!==null){let{frontmatter:p}=w(u);if(p.alwaysApply===true)return null}}return zi(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}i(mf,"importGlobalCursorRulesFromDir");async function uf(t,e,r){let n=join(t,eo),o=await h(n);return o===null||o.trim()===""?false:go({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}i(uf,"importGlobalUserRules");async function pf(t,e,r){let n=join(t,ee),o=await h(n);return o===null||o.trim()===""?false:go({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}i(pf,"importGlobalDotCursorAgents");async function df(t,e){let r=join(t,fs),n=await h(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 s=join(t,oo);await R(dirname(s)),await _(s,n),e.push({fromTool:ho,fromPath:r,toPath:oo,feature:"mcp"});}i(df,"importGlobalMcp");async function ff(t,e,r){let n=join(t,br),o=join(t,no);e.push(...await M({srcDir:n,destDir:o,extensions:[".md"],fromTool:ho,normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Ji(s,o,a),"mapEntry")}));}i(ff,"importGlobalAgents");async function gf(t,e,r){let n=join(t,bt),o=join(t,ro);e.push(...await M({srcDir:n,destDir:o,extensions:[".md"],fromTool:ho,normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Vi(s,o,a),"mapEntry")}));}i(gf,"importGlobalCommands");async function hf(t){if(!await cf(t))return [];let e=[],r=await K(ho,t,"global"),n=await mf(t,e,r);return n||(n=await uf(t,e,r)),n||await pf(t,e,r),await df(t,e),await ta(t,e,r,Ar),await ff(t,e,r),await gf(t,e,r),await Zi(t,e),await qi(t,e),e}i(hf,"importFromCursorGlobalExports");async function ea(t,e={}){if(e.scope==="global")return hf(t);let r=[],n=await K("cursor",t);return await nf(t,r,n),await Kk(t,r,n),await Hk(t,r,n),await ta(t,r,n),await zk(t,r),await Zi(t,r),await qi(t,r),r}i(ea,"importFromCursor");async function Kk(t,e,r){let n=join(t,ro),o=join(t,bt);e.push(...await M({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cursor",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Vi(s,n,a),"mapEntry")}));}i(Kk,"importCommands");async function Hk(t,e,r){let n=join(t,no),o=join(t,an);e.push(...await M({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cursor",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Ji(s,n,a),"mapEntry")}));}i(Hk,"importAgents");async function zk(t,e){let r=join(t,we),n=await h(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let s=join(t,oo);await R(dirname(s)),await _(s,n),e.push({fromTool:"cursor",fromPath:r,toPath:oo,feature:"mcp"});}i(zk,"importMcp");function yf(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:Nd}))}i(yf,"lintRules");function Q(t,e,r){return {level:"warning",file:t,target:e,message:r}}i(Q,"createWarning");function Vk(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]}`}i(Vk,"formatOxfordComma");function Io(t,e,r,n){let o=n?.unsupportedBy??e,s=Vk(r);return Q(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${s} are projected.`)}i(Io,"createUnsupportedHookWarning");function If(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>Q(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}i(If,"lintCommands");function _f(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,s="url"in n,a="headers"in n;(o||s||a)&&e.push(Q(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}i(_f,"lintMcp");function Sf(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?[Q(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}i(Sf,"lintPermissions");var Jk={name:"cursor",primaryRootInstructionPath:tr,generateRules:gc,generateCommands:hc,generateAgents:_c,generateSkills:Ic,generateMcp:yc,generatePermissions:Sc,generateHooks:Cc,generateIgnore:Rc,importFrom:ea},xc={rootInstructionPath:tr,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[xr,ee]}],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`}}},Yk={rootInstructionPath:tr,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[xr,ee]}],skillDir:Ar,managedOutputs:{dirs:[jt,bt,br,Ar],files:[tr,ee,fs,Oe,te,eo]},rewriteGeneratedPath(t){return t===xr?null:t===ee||t===tr||t.startsWith(`${jt}/`)||t.startsWith(`${bt}/`)||t.startsWith(`${an}/`)||t.startsWith(`${ke}/`)||t===we||t===Oe||t===te?t:t===Di?null:t},mirrorGlobalPath(t,e){return yt(t,ke,e)},paths:{rulePath(t,e){return `${jt}/${t}.mdc`},commandPath(t,e){return `${bt}/${t}.md`},agentPath(t,e){return `${br}/${t}.md`}}},Xk={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Cf={id:"cursor",generators:Jk,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:yf,lint:{commands:If,mcp:_f,permissions:Sf},project:xc,globalSupport:{capabilities:Xk,detectionPaths:[tr,ee,we,Oe,te,ke,br,bt,eo],layout:Yk},skillDir:xc.skillDir,paths:xc.paths,buildImportPaths:Vl,detectionPaths:[".cursor/rules",".cursor/mcp.json"]};var ae="copilot",Mr=".github/copilot-instructions.md",Rf=".github/copilot",In=".github/instructions",le=".github/prompts",Fe=".github/hooks",ve=".github/skills",$e=".github/agents",Ps=".agentsmesh/rules",Ac=".agentsmesh/commands",bc=".agentsmesh/agents",kf=".agentsmesh/skills",Tc=".agentsmesh/hooks.yaml",wf=".github/copilot-hooks";var ar=".copilot/copilot-instructions.md",_n=".copilot/agents",lr=".copilot/skills",Sn=".copilot/prompts",Cn=".copilot/AGENTS.md",Lc=".claude/skills",Nc=".agents/skills";function Of(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):[]}i(Of,"toStringArray");function ra(t){return `${le}/${t}.prompt.md`}i(ra,"commandPromptPath");function Ef(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"],L(e,t.body.trim()||"")}i(Ef,"serializeCommandPrompt");function Pf(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=Of(t["x-agentsmesh-allowed-tools"]),s=o.length>0?o:Of(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:s}}i(Pf,"parseCommandPromptFrontmatter");function na(t){return ze(t)}i(na,"hasHookCommand");function Qk(t){let e=basename(t,".md");return e==="_root"?"root":e}i(Qk,"ruleSlug");function tw(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}i(tw,"mapHookEvent");function xf(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 s=n.description?`## ${n.description}`:null;s?e.push(`${s}
|
|
56
|
+
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:Uc,feature:"ignore"});}var Em=g(()=>{fe();E();ut();i(Jg,"cursorHooksToCanonical");i(Ma,"importSettings");i(Ga,"importIgnore");});function Yg(t){return NP.some(e=>e.test(t))}var NP,Xg=g(()=>{NP=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];i(Yg,"isReservedArtifactName");});async function FP(t){let e=await b(t).catch(()=>[]),r=[];for(let n of e){let o=relative(t,n).replace(/\\/g,"/"),s=basename(o);if(Yg(s))continue;let a=await y(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function rr(t,e,r){let n=await FP(e),o=join(r.projectRoot,r.destCanonicalSkillsDir,t);for(let s of n){let a=join(o,s.relativePath);await k(dirname(a));let l=r.normalize(s.content,s.absolutePath,a);if(s.relativePath==="SKILL.md"){let{frontmatter:c,body:m}=w(l),u=await tr(a,{...c,name:t},m);await S(a,u);}else await S(a,l);r.results.push({fromTool:r.targetName,fromPath:s.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${t}/${s.relativePath}`,feature:"skills"});}}async function qg(t,e,r,n){let o=join(n.projectRoot,n.destCanonicalSkillsDir,t);await k(o);let s=join(o,"SKILL.md"),a=n.normalize(r,e,s),{frontmatter:l,body:c}=w(a),m=await tr(s,{...l,name:t},c);await S(s,m),n.results.push({fromTool:n.targetName,fromPath:e,toPath:`${n.destCanonicalSkillsDir}/${t}/SKILL.md`,feature:"skills"});}async function dn(t){let e=new Map;try{let n=(await b(t)).filter(o=>basename(o)==="SKILL.md");for(let o of n){let s=dirname(o),a=basename(s);e.set(a,s);}}catch{}return e}var qo=g(()=>{E();F();V();Xg();i(FP,"readNativeSkill");i(rr,"importDirectorySkill");i(qg,"importFlatSkill");i(dn,"findDirectorySkills");});async function Ua(t,e,r,n=He){let o=join(t,n),s=await dn(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:og,targetName:"cursor",normalize:r,results:e};for(let[u,p]of s)await rr(u,p,a);let l=await b(o).catch(()=>[]),c=l.filter(u=>u.endsWith(".md")),m=new Set(Array.from(s.values()).flatMap(u=>l.filter(p=>p.startsWith(u))));for(let u of c){if(m.has(u))continue;let p=await y(u);if(!p)continue;let d=basename(u,".md");await qg(d,u,p,a);}}var xm=g(()=>{E();qo();ut();i(Ua,"importSkills");});async function Qg(t){if(await N(join(t,oe)))return true;let e=[join(t,Ce),join(t,$o),join(t,qs),join(t,Ve),join(t,_e),join(t,nn),join(t,on),join(t,Kt)];for(let s of e){let a=await y(s);if(a!==null&&a.trim()!=="")return true}return !!((await b(join(t,nn))).some(s=>s.endsWith(".md"))||(await b(join(t,on))).some(s=>s.endsWith(".md"))||(await b(join(t,Kt))).some(s=>s.endsWith(".md")))}async function th(t,e,r){let n=join(t,Je),o=false,s=join(t,oe),a=await U({srcDir:s,destDir:n,extensions:[".mdc"],fromTool:Qo,normalize:r,mapEntry:i(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let u=await y(l);if(u!==null){let{frontmatter:p}=w(u);if(p.alwaysApply===true)return null}}return La(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function eh(t,e,r){let n=join(t,$o),o=await y(n);return o===null||o.trim()===""?false:Zo({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function rh(t,e,r){let n=join(t,Ce),o=await y(n);return o===null||o.trim()===""?false:Zo({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function nh(t,e){let r=join(t,qs),n=await y(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 s=join(t,jo);await k(dirname(s)),await S(s,n),e.push({fromTool:Qo,fromPath:r,toPath:jo,feature:"mcp"});}async function oh(t,e,r){let n=join(t,on),o=join(t,Go);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:Qo,normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Da(s,o,a),"mapEntry")}));}async function sh(t,e,r){let n=join(t,Kt),o=join(t,Mo);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:Qo,normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Na(s,o,a),"mapEntry")}));}var Qo,ih=g(()=>{E();F();pt();ut();wm();Fa();Qo="cursor";i(Qg,"hasGlobalCursorArtifacts");i(th,"importGlobalCursorRulesFromDir");i(eh,"importGlobalUserRules");i(rh,"importGlobalDotCursorAgents");i(nh,"importGlobalMcp");i(oh,"importGlobalAgents");i(sh,"importGlobalCommands");});async function ah(t){if(!await Qg(t))return [];let e=[],r=await J(Qo,t,"global"),n=await th(t,e,r);return n||(n=await eh(t,e,r)),n||await rh(t,e,r),await nh(t,e),await Ua(t,e,r,nn),await oh(t,e,r),await sh(t,e,r),await Ma(t,e),await Ga(t,e),e}var lh=g(()=>{Ft();ut();xm();Em();ih();i(ah,"importFromCursorGlobalExports");});async function Wa(t,e={}){if(e.scope==="global")return ah(t);let r=[],n=await J("cursor",t);return await zg(t,r,n),await jP(t,r,n),await UP(t,r,n),await Ua(t,r,n),await WP(t,r),await Ma(t,r),await Ga(t,r),r}async function jP(t,e,r){let n=join(t,Mo),o=join(t,Kt);e.push(...await U({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cursor",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Na(s,n,a),"mapEntry")}));}async function UP(t,e,r){let n=join(t,Go),o=join(t,Gn);e.push(...await U({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cursor",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>Da(s,n,a),"mapEntry")}));}async function WP(t,e){let r=join(t,ze),n=await y(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let s=join(t,jo);await k(dirname(s)),await S(s,n),e.push({fromTool:"cursor",fromPath:r,toPath:jo,feature:"mcp"});}var bm=g(()=>{Ft();E();pt();Fa();Vg();Em();xm();lh();ut();i(Wa,"importFromCursor");i(jP,"importCommands");i(UP,"importAgents");i(WP,"importMcp");});function ch(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:rg}))}var mh=g(()=>{he();ut();i(ch,"lintRules");});function tt(t,e,r){return {level:"warning",file:t,target:e,message:r}}function BP(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 es(t,e,r,n){let o=n?.unsupportedBy??e,s=BP(r);return tt(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${s} are projected.`)}var nr=g(()=>{i(tt,"createWarning");i(BP,"formatOxfordComma");i(es,"createUnsupportedHookWarning");});function uh(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>tt(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function ph(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,s="url"in n,a="headers"in n;(o||s||a)&&e.push(tt(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}function dh(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?[tt(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var fh=g(()=>{nr();i(uh,"lintCommands");i(ph,"lintMcp");i(dh,"lintPermissions");});var KP,HP,zP,VP,gh,hh=g(()=>{$g();ut();Zr();bm();mh();Ht();fh();KP={name:"cursor",primaryRootInstructionPath:Pr,generateRules:um,generateCommands:pm,generateAgents:gm,generateSkills:fm,generateMcp:dm,generatePermissions:hm,generateHooks:ym,generateIgnore:Im,importFrom:Wa},HP={rootInstructionPath:Pr,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[rn,Ce]}],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`}}},zP={rootInstructionPath:Pr,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[rn,Ce]}],skillDir:nn,managedOutputs:{dirs:[oe,Kt,on,nn],files:[Pr,Ce,qs,Ve,_e,$o]},rewriteGeneratedPath(t){return t===rn?null:t===Ce||t===Pr||t.startsWith(`${oe}/`)||t.startsWith(`${Kt}/`)||t.startsWith(`${Gn}/`)||t.startsWith(`${He}/`)||t===ze||t===Ve||t===_e?t:t===Ca?null:t},mirrorGlobalPath(t,e){return Et(t,He,e)},paths:{rulePath(t,e){return `${oe}/${t}.mdc`},commandPath(t,e){return `${Kt}/${t}.md`},agentPath(t,e){return `${on}/${t}.md`}}},VP={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},gh={id:"cursor",generators:KP,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:ch,lint:{commands:uh,mcp:ph,permissions:dh},project:HP,globalSupport:{capabilities:VP,detectionPaths:[Pr,Ce,ze,Ve,_e,He,on,Kt,$o],layout:zP},buildImportPaths:Wc,detectionPaths:[".cursor/rules",".cursor/mcp.json"]};});var xe,fn,yh,gn,be,or,sr,ir,ui,Am,Tm,Ih,Lm,Sh,Dr,Qn,Fr,to,eo,Nm,Dm,Vt=g(()=>{xe="copilot",fn=".github/copilot-instructions.md",yh=".github/copilot",gn=".github/instructions",be=".github/prompts",or=".github/hooks",sr=".github/skills",ir=".github/agents",ui=".agentsmesh/rules",Am=".agentsmesh/commands",Tm=".agentsmesh/agents",Ih=".agentsmesh/skills",Lm=".agentsmesh/hooks.yaml",Sh=".github/copilot-hooks",Dr=".copilot/copilot-instructions.md",Qn=".copilot/agents",Fr=".copilot/skills",to=".copilot/prompts",eo=".copilot/AGENTS.md",Nm=".claude/skills",Dm=".agents/skills";});function _h(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 Ba(t){return `${be}/${t}.prompt.md`}function Ch(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"],D(e,t.body.trim()||"")}function Rh(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=_h(t["x-agentsmesh-allowed-tools"]),s=o.length>0?o:_h(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:s}}var Ka=g(()=>{F();Vt();i(_h,"toStringArray");i(Ba,"commandPromptPath");i(Ch,"serializeCommandPrompt");i(Rh,"parseCommandPromptFrontmatter");});function Ha(t){return Ir(t)}var Fm=g(()=>{fe();i(Ha,"hasHookCommand");});function XP(t){let e=basename(t,".md");return e==="_root"?"root":e}function ZP(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function kh(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 s=n.description?`## ${n.description}`:null;s?e.push(`${s}
|
|
80
57
|
|
|
81
58
|
${o}`):e.push(o);}return e.join(`
|
|
82
59
|
|
|
83
|
-
`)}
|
|
84
|
-
`)}
|
|
60
|
+
`)}function wh(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:fn,content:e.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("copilot")||n.globs.length===0)continue;let o=XP(n.source),s={description:n.description||void 0,applyTo:n.globs.length===1?n.globs[0]:n.globs};Object.keys(s).forEach(l=>{s[l]===void 0&&delete s[l];});let a=D(s,n.body.trim()||"");r.push({path:`${gn}/${o}.instructions.md`,content:a});}return r}function Oh(t){return t.commands.map(e=>({path:Ba(e.name),content:Ch(e)}))}function Eh(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=D(n,r.body.trim()||"");e.push({path:`${sr}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${sr}/${r.name}/${a}`,content:s.content});}}return e}function Ph(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0,"mcp-servers":e.mcpServers.length>0?e.mcpServers:void 0,skills:e.skills.length>0?e.skills:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,e.body.trim()||"");return {path:`${ir}/${e.name}.agent.md`,content:n}})}function xh(t){if(!t.hooks)return [];let e=Object.fromEntries(Object.entries(t.hooks).flatMap(([r,n])=>{let o=ZP(r);if(!o||!Array.isArray(n))return [];let s=n.filter(a=>typeof a=="object"&&a!==null&&Ha(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 s.length>0?[[o,s]]:[]}));return Object.keys(e).length===0?[]:[{path:`${or}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:e},null,2)}]}var bh=g(()=>{F();Vt();Ka();Fm();i(XP,"ruleSlug");i(ZP,"mapHookEvent");i(kh,"renderCopilotGlobalInstructions");i(wh,"generateRules");i(Oh,"generateCommands");i(Eh,"generateSkills");i(Ph,"generateAgents");i(xh,"generateHooks");});function QP(t){switch(t){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function tx(t){return typeof t!="string"?"*":t.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function Lh(t){let e=t.match(/^# agentsmesh-command:\s*(.+)$/m);return e?.[1]?e[1].trim():t.replace(/^#!.*\n/,"").replace(/^#.*\n/gm,"").replace(/^HOOK_DIR=.*\n/gm,"").replace(/^set -e\n?/m,"").trim()}async function Nh(t,e){let r=join(t,or),o=(await b(r).catch(()=>[])).filter(u=>u.endsWith(".json")),s={};for(let u of o){let p=await y(u);if(!p)continue;let d;try{d=JSON.parse(p);}catch{continue}if(!(!d||typeof d.hooks!="object"||d.hooks===null))for(let[f,h]of Object.entries(d.hooks)){let C=QP(f);if(!(!C||!Array.isArray(h)))for(let R of h){if(!R||typeof R!="object")continue;let I=R,O=typeof I.bash=="string"?I.bash:"";if(!O)continue;let x=join(r,O.replace(/^\.\//,"")),P=await y(x);if(!P)continue;let A=Lh(P);A&&(s[C]||(s[C]=[]),s[C].push({matcher:tx(I.comment),command:A,type:"command"}));}}}let a=join(t,Sh),c=(await b(a).catch(()=>[])).filter(u=>dirname(u)===a&&/^[^-]+-\d+\.sh$/i.test(basename(u)));for(let u of c){let p=await y(u);if(!p)continue;let d=basename(u,".sh"),f=d.lastIndexOf("-"),h=f>0?d.slice(0,f):d;s[h]||(s[h]=[]),s[h].push({matcher:"*",command:Lh(p),type:"command"});}if(Object.keys(s).length===0)return;let m=join(t,Lm);await k(dirname(m)),await S(m,stringify(s)),e.push({fromTool:xe,fromPath:join(t,or),toPath:Lm,feature:"hooks"});}var Dh=g(()=>{E();Vt();i(QP,"mapCopilotHookEvent");i(tx,"extractMatcher");i(Lh,"extractWrapperCommand");i(Nh,"importHooks");});async function Fh(t,e,r,n=be){let o=join(t,n),s=join(t,Am);e.push(...await U({srcDir:o,destDir:s,extensions:[".prompt.md"],fromTool:"copilot",normalize:r,mapEntry:i(async({srcPath:a,relativePath:l,content:c})=>{let m=l.replace(/\.prompt\.md$/i,".md"),u=join(s,m),{frontmatter:p,body:d}=w(r(c,a,u)),f=Rh(p,a),h=m.includes("/")?m.slice(0,m.lastIndexOf("/")):"",C=`${f.name}.md`,R=h?`${h}/${C}`:C,I=join(s,R);return {destPath:I,toPath:`${Am}/${R}`,feature:"commands",content:await st(I,{description:f.description,hasDescription:Object.prototype.hasOwnProperty.call(p,"description"),allowedTools:f.allowedTools,hasAllowedTools:Object.prototype.hasOwnProperty.call(p,"tools")||Object.prototype.hasOwnProperty.call(p,"x-agentsmesh-allowed-tools")},d)}},"mapEntry")}));}var vh=g(()=>{F();V();pt();Vt();Ka();i(Fh,"importCopilotCommands");});async function $h(t,e,r,n=ir){let o=join(t,n),s;try{s=await b(o);}catch{return}let a=s.filter(c=>c.endsWith(".agent.md")),l=join(t,Tm);for(let c of a){let m=await y(c);if(!m)continue;let p=relative(o,c).replace(/\\/g,"/").replace(/\.agent\.md$/i,".md"),d=basename(p,".md"),f=join(l,p);await k(dirname(f));let{frontmatter:h,body:C}=w(r(m,c,f)),R=await zt(f,{...h,name:typeof h.name=="string"?h.name:d},C);await S(f,R),e.push({fromTool:xe,fromPath:c,toPath:`${Tm}/${p}`,feature:"agents"});}}var Mh=g(()=>{E();F();V();Vt();i($h,"importAgents");});async function Gh(t,e,r,n=sr){let o=join(t,n),s=await dn(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:Ih,targetName:xe,normalize:r,results:e};for(let[l,c]of s)await rr(l,c,a);}var jh=g(()=>{qo();Vt();i(Gh,"importSkills");});async function Va(t,e={}){let r=e.scope??"project",n=[],o=await J(xe,t,r),s=join(t,ui),l=join(t,r==="global"?Dr:fn),c=await y(l);if(c!==null){await k(s);let u=join(s,"_root.md"),{frontmatter:p,body:d}=w(o(c,l,u)),h=p.root===true?p:{...p,root:true},C=await $(u,h,d);await S(u,C),n.push({fromTool:"copilot",fromPath:l,toPath:`${ui}/_root.md`,feature:"rules"});}if(r==="project"){let u=join(t,yh);n.push(...await U({srcDir:u,destDir:s,extensions:[".instructions.md"],fromTool:"copilot",normalize:o,mapEntry:i(async({relativePath:d,normalizeTo:f})=>{let h=d.replace(/\.instructions\.md$/i,".md"),C=join(s,h),{frontmatter:R,body:I}=w(f(C)),O=Ar(R.globs),x={root:false,description:typeof R.description=="string"?R.description:void 0,globs:O.length>0?O:void 0};return Object.keys(x).forEach(P=>{x[P]===void 0&&delete x[P];}),{destPath:C,toPath:`${ui}/${h}`,feature:"rules",content:await $(C,x,I)}},"mapEntry")}));let p=join(t,gn);n.push(...await U({srcDir:p,destDir:s,extensions:[".instructions.md",".md"],fromTool:"copilot",normalize:o,mapEntry:i(async({relativePath:d,normalizeTo:f})=>{let h=d.endsWith(".instructions.md")?d.replace(/\.instructions\.md$/i,".md"):d,C=join(s,h),{frontmatter:R,body:I}=w(f(C)),O=Ar(R.applyTo!==void 0?R.applyTo:R.globs),x={root:false,description:typeof R.description=="string"?R.description:void 0,globs:O.length>0?O:void 0};return Object.keys(x).forEach(P=>{x[P]===void 0&&delete x[P];}),{destPath:C,toPath:`${ui}/${h}`,feature:"rules",content:await $(C,x,I)}},"mapEntry")}));}return await Fh(t,n,o,r==="global"?to:be),await $h(t,n,o,r==="global"?Qn:ir),await Gh(t,n,o,r==="global"?Fr:sr),r==="project"&&await Nh(t,n),n}var $m=g(()=>{Ft();E();F();V();pt();Pe();Vt();Dh();vh();Mh();jh();i(Va,"importFromCopilot");});function Uh(t,e,r,n){let s=ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:xe})),a=t.rules.filter(l=>!l.root&&l.globs.length===0);return [...s,...a.map(l=>({level:"warning",file:l.source,target:xe,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var Wh=g(()=>{he();Vt();i(Uh,"lintRules");});function Bh(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>tt(e.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function Kh(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","Notification","UserPromptSubmit"],r=new Set(e),n=Object.keys(t.hooks).filter(s=>!r.has(s)).map(s=>es(s,"copilot",e,{unsupportedBy:"Copilot hooks"}));return Object.values(t.hooks).some(s=>Array.isArray(s)&&s.length>0)&&n.push(tt(".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 Hh=g(()=>{nr();i(Bh,"lintCommands");i(Kh,"lintHooks");});function ax(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function lx(t,e){let r=relative(t,e).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function cx(t,e){let r=t.match(zh);if(!r?.groups)return t;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${e}"${o}`}async function mx(t,e){let n=e.match(zh)?.groups?.path;if(!n)return null;let o=join(t,n),s=await y(o);if(s===null)return null;let a=lx(t,o);return a?{assetPath:`${or}/scripts/${a}`,content:s,rewrittenCommand:cx(e,a)}:null}function ux(t,e){return `${or}/scripts/${ax(t)}-${e}.sh`}function px(t,e){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${e}`,`# agentsmesh-command: ${t}`,"set -e",t,""].join(`
|
|
61
|
+
`)}async function Vh(t,e,r){if(!e.hooks)return r;let n=[],o=new Map;for(let[s,a]of Object.entries(e.hooks)){if(!Array.isArray(a))continue;let l=0;for(let c of a){if(!Ha(c))continue;let m=ux(s,l),u=c.command,p=await mx(t,c.command);p&&(u=p.rewrittenCommand,o.has(p.assetPath)||o.set(p.assetPath,{path:p.assetPath,content:p.content}));let d=px(u,c.matcher).replace(`set -e
|
|
85
62
|
`,`set -e
|
|
86
63
|
HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
87
|
-
`);n.push({path:m,content:d}),l++;}}return [...r,...n,...o.values()]}i(Hf,"addHookScriptAssets");function yw(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(yw,"computeStatus");var zf=i(async(t,e,r,n)=>{if(r!=="global"||!n.has("rules"))return [];let o=t.rules.find(l=>l.root);if(!o)return [];let s=o.body.trim(),a=await h(join(e,Cn));return [{target:"copilot",path:Cn,content:s,currentContent:a??void 0,status:yw(a,s)}]},"generateCopilotGlobalExtras");var Iw={name:"copilot",primaryRootInstructionPath:Mr,generateRules:Af,generateCommands:bf,generateAgents:Lf,generateSkills:Tf,generateHooks:Nf,importFrom:sa},Fc={rootInstructionPath:Mr,outputFamilies:[{id:"instructions",kind:"additional",pathPrefix:".github/instructions/"}],skillDir:".github/skills",managedOutputs:{dirs:[".github/agents",".github/instructions",".github/prompts",".github/skills",".github/hooks/scripts"],files:[".github/copilot-instructions.md",".github/hooks/agentsmesh.json"]},paths:{rulePath(t,e){return `${In}/${t}.instructions.md`},commandPath(t,e){return ra(t)},agentPath(t,e){return `${$e}/${t}.agent.md`}}},_w={rootInstructionPath:ar,renderPrimaryRootInstruction:xf,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Cn]}],skillDir:lr,managedOutputs:{dirs:[_n,lr,Sn,Nc,Lc],files:[ar,Cn]},rewriteGeneratedPath(t){return t===Mr?ar:t.startsWith(`${In}/`)?ar:t.startsWith(`${le}/`)?t.replace(`${le}/`,`${Sn}/`):t.startsWith(`${$e}/`)?t.replace(`${$e}/`,`${_n}/`):t.startsWith(`${ve}/`)?t.replace(`${ve}/`,`${lr}/`):t.startsWith(`${Fe}/`)?null:t},mirrorGlobalPath(t,e){if(t.startsWith(`${lr}/`)&&!e.includes("codex-cli")){let r=t.slice(lr.length+1);return [`.agents/skills/${r}`,`${Lc}/${r}`]}return null},paths:{rulePath(t,e){return ar},commandPath(t,e){return `${Sn}/${t}.prompt.md`},agentPath(t,e){return `${_n}/${t}.agent.md`}}},Sw={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Vf={id:"copilot",generators:Iw,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:Uf,lint:{commands:Wf,hooks:Bf},postProcessHookOutputs:i(async(t,e,r)=>Hf(t,e,[...r]),"postProcessHookOutputs"),project:Fc,globalSupport:{capabilities:Sw,detectionPaths:[ar,Cn,_n,lr,Sn,Nc],layout:_w,scopeExtras:zf},skillDir:Fc.skillDir,paths:Fc.paths,buildImportPaths:Ml,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]};var vc=".agentsmesh/skills";function Me(t,e){let r=[];for(let n of t.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${e}/${n.name}/SKILL.md`,content:L(o,n.body.trim()||"")});for(let s of n.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");r.push({path:`${e}/${n.name}/${a}`,content:s.content});}}return r}i(Me,"generateEmbeddedSkills");async function Ge(t,e,r,n,o){let s=await readdir(join(t,e),{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(s!==null)for(let a of s){if(!a.isDirectory())continue;let l=join(t,e,a.name),c=join(l,"SKILL.md"),m=await h(c);if(m===null)continue;let u=join(t,vc,a.name),p=join(u,"SKILL.md"),{frontmatter:d,body:f}=w(o(m,c,p)),g=await Le(p,{...d,name:a.name},f);await R(u),await _(p,g),n.push({fromTool:r,fromPath:c,toPath:`${vc}/${a.name}/SKILL.md`,feature:"skills"});let I=await P(l);for(let S of I){if(S===c)continue;let y=relative(l,S).replace(/\\/g,"/"),k=await h(S);if(k===null)continue;let E=join(u,y);await R(dirname(E)),await _(E,o(k,S,E)),n.push({fromTool:r,fromPath:S,toPath:`${vc}/${a.name}/${y}`,feature:"skills"});}}}i(Ge,"importEmbeddedSkills");function Ow(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):[]}i(Ow,"toStringArray");function Jf(t){return `${Qt}/${t}.md`}i(Jf,"continueCommandRulePath");function Yf(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"],L(e,t.body.trim()||"")}i(Yf,"serializeCommandRule");function Xf(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:Ow(t["x-agentsmesh-allowed-tools"])}}i(Xf,"parseCommandRuleFrontmatter");function Zf(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"],L(r,e.trim()||"")}i(Zf,"serializeImportedCommand");function qf(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:Qe,content:L(n,r.body.trim()||"")});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("continue"))continue;let o=n.source.split("/").pop().replace(/\.md$/,""),s={};n.description&&(s.description=n.description),n.globs.length>0&&(s.globs=n.globs),e.push({path:`${Gt}/${o}.md`,content:L(s,n.body.trim()||"")});}return e}i(qf,"generateRules");function Qf(t){return t.commands.map(e=>({path:`${Qt}/${e.name}.md`,content:Yf(e)}))}i(Qf,"generateCommands");function tg(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Li,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}i(tg,"generateMcp");function eg(t){return Me(t,Re)}i(eg,"generateSkills");function ng(t){return t==="general.md"||t==="_root.md"}i(ng,"isContinueRootRuleRelativePath");function xw(t,e){let n=(e===".json"?JSON.parse(t):parse(t)??{}).mcpServers;if(n&&typeof n=="object"&&!Array.isArray(n)){let o={};for(let[s,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a;typeof l.command=="string"&&(o[s]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:sr(l.args),env:kt(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}return {}}i(xw,"readMcpServers");async function ia(t){let e=[],r=await K(ps,t);return await Aw(t,e,r),await bw(t,e,r),await Ge(t,Re,"continue",e,r),await Tw(t,e),e}i(ia,"importFromContinue");async function Aw(t,e,r){let n=(await P(join(t,Gt))).filter(s=>s.endsWith(".md")),o=join(t,Gt);for(let s of n){let a=await h(s);if(!a)continue;let l=relative(o,s).replace(/\\/g,"/"),c=ng(l)?"_root.md":l,m=join(t,Ul,c),{frontmatter:u,body:p}=w(r(a,s,m)),d={description:typeof u.description=="string"?u.description:void 0,globs:Array.isArray(u.globs)?u.globs:void 0,root:ng(l)};d.description===void 0&&delete d.description,d.globs===void 0&&delete d.globs;let f=await D(m,d,p);await _(m,f),e.push({fromTool:"continue",fromPath:s,toPath:`${Ul}/${c}`,feature:"rules"});}}i(Aw,"importRules");async function bw(t,e,r){let n=(await P(join(t,Qt))).filter(s=>s.endsWith(".md")),o=join(t,Qt);for(let s of n){let a=await h(s);if(!a)continue;let l=relative(o,s).replace(/\\/g,"/"),c=join(t,Ni,l),{frontmatter:m,body:u}=w(r(a,s,c)),p=Xf(m,s),d=p.name||basename(l,".md"),f=l.includes("/")?l.slice(0,l.lastIndexOf("/")):"",g=f?`${f}/${d}.md`:`${d}.md`,I=join(t,Ni,g),S=await q(I,{description:p.description,hasDescription:!!p.description,allowedTools:p.allowedTools,hasAllowedTools:p.allowedTools.length>0},w(Zf(p,u)).body);await _(I,S),e.push({fromTool:"continue",fromPath:s,toPath:`${Ni}/${g}`,feature:"commands"});}}i(bw,"importCommands");async function Tw(t,e){let r=(await P(join(t,Gl))).filter(a=>[".json",".yaml",".yml"].includes(extname(a))),n={},o=[];for(let a of r){let l=await h(a);l&&(Object.assign(n,xw(l,extname(a))),o.push(a));}if(Object.keys(n).length===0)return;let s=join(t,Wl);await _(s,JSON.stringify({mcpServers:n},null,2));for(let a of o)e.push({fromTool:ps,fromPath:a,toPath:Wl,feature:"mcp"});}i(Tw,"importMcp");function sg(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ps}))}i(sg,"lintRules");function ig(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>Q(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}i(ig,"lintCommands");function Fw(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(Fw,"computeStatus");var ag=i(async(t,e,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),s=n.has("commands"),a=n.has("mcp");if(!(o&&t.rules.length>0||s&&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(p=>({name:p.description||basename(p.source,".md"),rule:p.body.trim()}))),s&&t.commands.length>0&&(c.prompts=t.commands.map(p=>{let d={name:p.name};return p.description&&(d.description=p.description),d.prompt=p.body.trim(),d})),a&&t.mcp!==null){let p=Object.entries(t.mcp.mcpServers);p.length>0&&(c.mcpServers=p.map(([d,f])=>({name:d,...f})));}let m=stringify(c),u=await h(join(e,ds));return [{target:"continue",path:ds,content:m,currentContent:u??void 0,status:Fw(u,m)}]},"generateContinueGlobalConfig");function $w(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i($w,"computeStatus");var lg=i(async(t,e,r,n)=>{let o=await ag(t,e,r,n);if(r!=="global"||!n.has("rules"))return o;let s=t.rules.find(c=>c.root);if(!s)return o;let a=s.body.trim(),l=await h(join(e,to));return [...o,{target:"continue",path:to,content:a,currentContent:l??void 0,status:$w(l,a)}]},"generateContinueScopeExtras");var Mw={name:"continue",primaryRootInstructionPath:Qe,generateRules:qf,generateCommands:Qf,generateSkills:eg,generateMcp:tg,importFrom:ia},$c={rootInstructionPath:Qe,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${Gt}/${t}.md`},commandPath(t,e){return Jf(t)},agentPath(t,e){return null}}},Gw={rootInstructionPath:Qe,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[to]}],skillDir:Re,managedOutputs:{dirs:[Gt,Qt,Re,".agents/skills"],files:[Li,to,ds]},mirrorGlobalPath(t,e){return t.startsWith(`${Re}/`)?`.agents/skills/${t.slice(Re.length+1)}`:null},paths:{rulePath(t,e){return `${Gt}/${t}.md`},commandPath(t,e){return `${Qt}/${t}.md`},agentPath(t,e){return null}}},jw={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},cg={id:"continue",generators:Mw,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/*).",lintRules:sg,lint:{commands:ig},project:$c,globalSupport:{capabilities:jw,detectionPaths:[Gt,Qt,".continue/mcpServers",Re],layout:Gw,scopeExtras:lg},skillDir:$c.skillDir,paths:$c.paths,buildImportPaths:Bl,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"]};function aa(t){return "command"in t}i(aa,"isStdioMcpServer");function mg(t){return "url"in t}i(mg,"isUrlMcpServer");function ug(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:xe,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");e.push({path:`${cn}/${o}.md`,content:n.body.trim()||""});}return e}i(ug,"generateRules");function Ww(t){let e={};return t.description&&(e.description=t.description),t.type!=="stdio"&&(e.type=t.type),aa(t)?(e.command=t.command,e.args=t.args):(e.url=t.url,Object.keys(t.headers).length>0&&(e.headers=t.headers)),Object.keys(t.env).length>0&&(e.env=t.env),e}i(Ww,"toJunieMcpServer");function pg(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).map(([r,n])=>[r,Ww(n)]));return [{path:so,content:JSON.stringify({mcpServers:e},null,2)}]}i(pg,"generateMcp");function dg(t){return t.commands.map(e=>{let r={description:e.description||void 0};return r.description===void 0&&delete r.description,{path:`${Lr}/${e.name}.md`,content:L(r,e.body.trim()||"")}})}i(dg,"generateCommands");function fg(t){return t.agents.map(e=>{let r={name:e.name,description:e.description||void 0,tools:e.tools.length>0?e.tools:void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,skills:e.skills.length>0?e.skills:void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),{path:`${Nr}/${e.name}.md`,content:L(r,e.body.trim()||"")}})}i(fg,"generateAgents");function gg(t){return t.ignore.length===0?[]:[{path:io,content:t.ignore.join(`
|
|
88
|
-
`)}]}
|
|
89
|
-
`)}]}i(
|
|
64
|
+
`);n.push({path:m,content:d}),l++;}}return [...r,...n,...o.values()]}var zh,Jh=g(()=>{E();Vt();Fm();zh=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;i(ax,"safePhaseName");i(lx,"toRepoRelative");i(cx,"rewriteWrapperCommand");i(mx,"buildAssetOutput");i(ux,"wrapperPath");i(px,"buildWrapper");i(Vh,"addHookScriptAssets");});function fx(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var Yh,Xh=g(()=>{E();Vt();i(fx,"computeStatus");Yh=i(async(t,e,r,n)=>{if(r!=="global"||!n.has("rules"))return [];let o=t.rules.find(l=>l.root);if(!o)return [];let s=o.body.trim(),a=await y(join(e,eo));return [{target:"copilot",path:eo,content:s,currentContent:a??void 0,status:fx(a,s)}]},"generateCopilotGlobalExtras");});var hx,yx,Ix,Sx,Zh,qh=g(()=>{bh();Vt();$m();Wh();Ht();Ka();Hh();Jh();Xh();hx={name:"copilot",primaryRootInstructionPath:fn,generateRules:wh,generateCommands:Oh,generateAgents:Ph,generateSkills:Eh,generateHooks:xh,importFrom:Va},yx={rootInstructionPath:fn,outputFamilies:[{id:"instructions",kind:"additional",pathPrefix:".github/instructions/"}],extraRuleOutputPaths(t){if(t.root||t.globs.length===0)return [];let e=basename(t.source,".md");return [`${gn}/${e}.instructions.md`]},skillDir:".github/skills",managedOutputs:{dirs:[".github/agents",".github/instructions",".github/prompts",".github/skills",".github/hooks/scripts"],files:[".github/copilot-instructions.md",".github/hooks/agentsmesh.json"]},paths:{rulePath(t,e){return `${gn}/${t}.instructions.md`},commandPath(t,e){return Ba(t)},agentPath(t,e){return `${ir}/${t}.agent.md`}}},Ix={rootInstructionPath:Dr,renderPrimaryRootInstruction:kh,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[eo]}],skillDir:Fr,managedOutputs:{dirs:[Qn,Fr,to,Dm,Nm],files:[Dr,eo]},rewriteGeneratedPath(t){return t===fn?Dr:t.startsWith(`${gn}/`)?Dr:t.startsWith(`${be}/`)?t.replace(`${be}/`,`${to}/`):t.startsWith(`${ir}/`)?t.replace(`${ir}/`,`${Qn}/`):t.startsWith(`${sr}/`)?t.replace(`${sr}/`,`${Fr}/`):t.startsWith(`${or}/`)?null:t},mirrorGlobalPath(t,e){if(t.startsWith(`${Fr}/`)&&!e.includes("codex-cli")){let r=t.slice(Fr.length+1);return [`.agents/skills/${r}`,`${Nm}/${r}`]}return null},paths:{rulePath(t,e){return Dr},commandPath(t,e){return `${to}/${t}.prompt.md`},agentPath(t,e){return `${Qn}/${t}.agent.md`}}},Sx={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Zh={id:"copilot",generators:hx,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:Uh,lint:{commands:Bh,hooks:Kh},postProcessHookOutputs:i(async(t,e,r)=>Vh(t,e,[...r]),"postProcessHookOutputs"),project:yx,globalSupport:{capabilities:Sx,detectionPaths:[Dr,eo,Qn,Fr,to,Dm],layout:Ix,scopeExtras:Yh},buildImportPaths:Nc,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]};});function ar(t,e){let r=[];for(let n of t.skills){let o={name:n.name,description:n.description||void 0};o.description===void 0&&delete o.description,r.push({path:`${e}/${n.name}/SKILL.md`,content:D(o,n.body.trim()||"")});for(let s of n.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");r.push({path:`${e}/${n.name}/${a}`,content:s.content});}}return r}async function lr(t,e,r,n,o){let s=await readdir(join(t,e),{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(s!==null)for(let a of s){if(!a.isDirectory())continue;let l=join(t,e,a.name),c=join(l,"SKILL.md"),m=await y(c);if(m===null)continue;let u=join(t,Mm,a.name),p=join(u,"SKILL.md"),{frontmatter:d,body:f}=w(o(m,c,p)),h=await tr(p,{...d,name:a.name},f);await k(u),await S(p,h),n.push({fromTool:r,fromPath:c,toPath:`${Mm}/${a.name}/SKILL.md`,feature:"skills"});let C=await b(l);for(let R of C){if(R===c)continue;let I=relative(l,R).replace(/\\/g,"/"),O=await y(R);if(O===null)continue;let x=join(u,I);await k(dirname(x)),await S(x,o(O,R,x)),n.push({fromTool:r,fromPath:R,toPath:`${Mm}/${a.name}/${I}`,feature:"skills"});}}}var Mm,Ae=g(()=>{E();F();V();Mm=".agentsmesh/skills";i(ar,"generateEmbeddedSkills");i(lr,"importEmbeddedSkills");});function wx(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 Qh(t){return `${Se}/${t}.md`}function ty(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"],D(e,t.body.trim()||"")}function ey(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:wx(t["x-agentsmesh-allowed-tools"])}}function ry(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"],D(r,e.trim()||"")}var Ja=g(()=>{F();Er();i(wx,"toStringArray");i(Qh,"continueCommandRulePath");i(ty,"serializeCommandRule");i(ey,"parseCommandRuleFrontmatter");i(ry,"serializeImportedCommand");});function ny(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:Or,content:D(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"),s={};n.description&&(s.description=n.description),n.globs.length>0&&(s.globs=n.globs),e.push({path:`${ne}/${o}.md`,content:D(s,n.body.trim()||"")});}return e}function oy(t){return t.commands.map(e=>({path:`${Se}/${e.name}.md`,content:ty(e)}))}function sy(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Sa,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function iy(t){return ar(t,Ke)}var ay=g(()=>{Ae();F();Ja();Er();i(ny,"generateRules");i(oy,"generateCommands");i(sy,"generateMcp");i(iy,"generateSkills");});function cy(t){return t==="general.md"||t==="_root.md"}function xx(t,e){let n=(e===".json"?JSON.parse(t):parse(t)??{}).mcpServers;if(n&&typeof n=="object"&&!Array.isArray(n)){let o={};for(let[s,a]of Object.entries(n)){if(!a||typeof a!="object"||Array.isArray(a))continue;let l=a;typeof l.command=="string"&&(o[s]={type:typeof l.type=="string"?l.type:"stdio",command:l.command,args:Lr(l.args),env:Dt(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}return {}}async function Ya(t){let e=[],r=await J(Xs,t);return await bx(t,e,r),await Ax(t,e,r),await lr(t,Ke,"continue",e,r),await Tx(t,e),e}async function bx(t,e,r){let n=(await b(join(t,ne))).filter(s=>s.endsWith(".md")),o=join(t,ne);for(let s of n){let a=await y(s);if(!a)continue;let l=relative(o,s).replace(/\\/g,"/"),c=cy(l)?"_root.md":l,m=join(t,vc,c),{frontmatter:u,body:p}=w(r(a,s,m)),d={description:typeof u.description=="string"?u.description:void 0,globs:Array.isArray(u.globs)?u.globs:void 0,root:cy(l)};d.description===void 0&&delete d.description,d.globs===void 0&&delete d.globs;let f=await $(m,d,p);await S(m,f),e.push({fromTool:"continue",fromPath:s,toPath:`${vc}/${c}`,feature:"rules"});}}async function Ax(t,e,r){let n=(await b(join(t,Se))).filter(s=>s.endsWith(".md")),o=join(t,Se);for(let s of n){let a=await y(s);if(!a)continue;let l=relative(o,s).replace(/\\/g,"/"),c=join(t,_a,l),{frontmatter:m,body:u}=w(r(a,s,c)),p=ey(m,s),d=p.name||basename(l,".md"),f=l.includes("/")?l.slice(0,l.lastIndexOf("/")):"",h=f?`${f}/${d}.md`:`${d}.md`,C=join(t,_a,h),R=await st(C,{description:p.description,hasDescription:!!p.description,allowedTools:p.allowedTools,hasAllowedTools:p.allowedTools.length>0},w(ry(p,u)).body);await S(C,R),e.push({fromTool:"continue",fromPath:s,toPath:`${_a}/${h}`,feature:"commands"});}}async function Tx(t,e){let r=(await b(join(t,Dc))).filter(a=>[".json",".yaml",".yml"].includes(extname(a))),n={},o=[];for(let a of r){let l=await y(a);l&&(Object.assign(n,xx(l,extname(a))),o.push(a));}if(Object.keys(n).length===0)return;let s=join(t,$c);await S(s,JSON.stringify({mcpServers:n},null,2));for(let a of o)e.push({fromTool:Xs,fromPath:a,toPath:$c,feature:"mcp"});}var Gm=g(()=>{Ft();E();F();Ae();V();Pe();Ja();Er();i(cy,"isContinueRootRuleRelativePath");i(xx,"readMcpServers");i(Ya,"importFromContinue");i(bx,"importRules");i(Ax,"importCommands");i(Tx,"importMcp");});function uy(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Xs}))}var py=g(()=>{he();Er();i(uy,"lintRules");});function dy(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>tt(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var fy=g(()=>{nr();i(dy,"lintCommands");});function Fx(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var gy,hy=g(()=>{E();Er();i(Fx,"computeStatus");gy=i(async(t,e,r,n)=>{if(r!=="global")return [];let o=n.has("rules"),s=n.has("commands"),a=n.has("mcp");if(!(o&&t.rules.length>0||s&&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(p=>({name:p.description||basename(p.source,".md"),rule:p.body.trim()}))),s&&t.commands.length>0&&(c.prompts=t.commands.map(p=>{let d={name:p.name};return p.description&&(d.description=p.description),d.prompt=p.body.trim(),d})),a&&t.mcp!==null){let p=Object.entries(t.mcp.mcpServers);p.length>0&&(c.mcpServers=p.map(([d,f])=>({name:d,...f})));}let m=stringify(c),u=await y(join(e,Zs));return [{target:"continue",path:Zs,content:m,currentContent:u??void 0,status:Fx(u,m)}]},"generateContinueGlobalConfig");});function $x(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var yy,Iy=g(()=>{E();Er();hy();i($x,"computeStatus");yy=i(async(t,e,r,n)=>{let o=await gy(t,e,r,n);if(r!=="global"||!n.has("rules"))return o;let s=t.rules.find(c=>c.root);if(!s)return o;let a=s.body.trim(),l=await y(join(e,vo));return [...o,{target:"continue",path:vo,content:a,currentContent:l??void 0,status:$x(l,a)}]},"generateContinueScopeExtras");});var Mx,Gx,jx,Ux,Sy,_y=g(()=>{ay();Er();Gm();py();fy();Ja();Ht();Iy();Mx={name:"continue",primaryRootInstructionPath:Or,generateRules:ny,generateCommands:oy,generateSkills:iy,generateMcp:sy,importFrom:Ya},Gx={rootInstructionPath:Or,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${ne}/${t}.md`},commandPath(t,e){return Qh(t)},agentPath(t,e){return null}}},jx={rootInstructionPath:Or,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[vo]}],skillDir:Ke,managedOutputs:{dirs:[ne,Se,Ke,".agents/skills"],files:[Sa,vo,Zs]},mirrorGlobalPath(t,e){return t.startsWith(`${Ke}/`)?`.agents/skills/${t.slice(Ke.length+1)}`:null},paths:{rulePath(t,e){return `${ne}/${t}.md`},commandPath(t,e){return `${Se}/${t}.md`},agentPath(t,e){return null}}},Ux={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Sy={id:"continue",generators:Mx,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/*).",lintRules:uy,lint:{commands:dy},project:Gx,globalSupport:{capabilities:Ux,detectionPaths:[ne,Se,".continue/mcpServers",Ke],layout:jx,scopeExtras:yy},buildImportPaths:Mc,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"]};});function Xa(t){return "command"in t}function Cy(t){return "url"in t}var Za=g(()=>{i(Xa,"isStdioMcpServer");i(Cy,"isUrlMcpServer");});function Ry(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Xe,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");e.push({path:`${Un}/${o}.md`,content:n.body.trim()||""});}return e}function Bx(t){let e={};return t.description&&(e.description=t.description),t.type!=="stdio"&&(e.type=t.type),Xa(t)?(e.command=t.command,e.args=t.args):(e.url=t.url,Object.keys(t.headers).length>0&&(e.headers=t.headers)),Object.keys(t.env).length>0&&(e.env=t.env),e}function ky(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).map(([r,n])=>[r,Bx(n)]));return [{path:Uo,content:JSON.stringify({mcpServers:e},null,2)}]}function wy(t){return t.commands.map(e=>{let r={description:e.description||void 0};return r.description===void 0&&delete r.description,{path:`${an}/${e.name}.md`,content:D(r,e.body.trim()||"")}})}function Oy(t){return t.agents.map(e=>{let r={name:e.name,description:e.description||void 0,tools:e.tools.length>0?e.tools:void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0,model:e.model||void 0,skills:e.skills.length>0?e.skills:void 0};return Object.keys(r).forEach(n=>{r[n]===void 0&&delete r[n];}),{path:`${ln}/${e.name}.md`,content:D(r,e.body.trim()||"")}})}function Ey(t){return t.ignore.length===0?[]:[{path:Wo,content:t.ignore.join(`
|
|
65
|
+
`)}]}function Py(t){return ar(t,jn)}function xy(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("junie"));return Ee(e?.body.trim()??"",r)}var by=g(()=>{Za();Ae();pn();F();Bn();i(Ry,"generateRules");i(Bx,"toJunieMcpServer");i(ky,"generateMcp");i(wy,"generateCommands");i(Oy,"generateAgents");i(Ey,"generateIgnore");i(Py,"generateSkills");i(xy,"renderJunieGlobalInstructions");});function Kx(t){let r=JSON.parse(t).mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,s]of Object.entries(r)){if(!s||typeof s!="object"||Array.isArray(s))continue;let a=s;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:Lr(a.args),env:Dt(a.env),description:typeof a.description=="string"?a.description:void 0};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:Dt(a.headers),env:Dt(a.env),description:typeof a.description=="string"?a.description:void 0});}return n}async function Ay(t,e){let r=join(t,Uo),n=await y(r);if(n===null)return;let o=Kx(n);Object.keys(o).length!==0&&(await S(join(t,Vc),JSON.stringify({mcpServers:o},null,2)),e.push({fromTool:Ye,fromPath:r,toPath:Vc,feature:"mcp"}));}async function Ty(t,e,r){let n=join(t,an),o=join(t,Hc);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:"junie",normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{let l=join(o,s),{frontmatter:c,body:m}=w(a(l)),u=await st(l,{hasDescription:true,description:typeof c.description=="string"?c.description:void 0,hasAllowedTools:true,allowedTools:Lr(c["allowed-tools"])},m);return {destPath:l,toPath:`${Hc}/${s}`,feature:"commands",content:u}},"mapEntry")}));}async function Ly(t,e,r){let n=join(t,ln),o=join(t,zc);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:"junie",normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{let l=join(o,s),{frontmatter:c,body:m}=w(a(l));return {destPath:l,toPath:`${zc}/${s}`,feature:"agents",content:await zt(l,c,m)}},"mapEntry")}));}async function Ny(t,e){let r=join(t,Wo),n=await y(r);n!==null&&(await S(join(t,Jc),n.trimEnd()),e.push({fromTool:Ye,fromPath:r,toPath:Jc,feature:"ignore"}));}var Dy=g(()=>{E();F();V();pt();Pe();Bn();i(Kx,"readMcpServers");i(Ay,"importJunieMcp");i(Ty,"importJunieCommands");i(Ly,"importJunieAgents");i(Ny,"importJunieIgnore");});async function Hx(t,e,r){let n=[Xe,Ra,ag,lg],o=join(t,Kc);for(let s of n){let a=join(t,s),l=await y(a);if(l===null)continue;let c=await er({content:l,projectRoot:t,rulesDir:wa,sourcePath:a,fromTool:Ye,normalize:r});e.push(...c.results);let{frontmatter:m,body:u}=w(r(c.rootContent,a,o)),p=await $(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},u);await S(o,p),e.push({fromTool:Ye,fromPath:a,toPath:Kc,feature:"rules"});return}}async function zx(t,e,r){let n=join(t,Un),o=join(t,wa);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:"junie",normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{let l=join(o,s),{frontmatter:c,body:m}=w(a(l)),u=await $(l,{root:false,description:typeof c.description=="string"?c.description:void 0,globs:Array.isArray(c.globs)?c.globs:void 0},m);return {destPath:l,toPath:`${wa}/${s}`,feature:"rules",content:u}},"mapEntry")}));}async function qa(t){let e=[],r=await J(Ye,t);return await Hx(t,e,r),await zx(t,e,r),await Ty(t,e,r),await Ly(t,e,r),await lr(t,jn,Ye,e,r),await Ay(t,e),await Ny(t,e),e}var jm=g(()=>{Ft();E();F();Ae();Xo();V();pt();Bn();Dy();i(Hx,"importRules");i(zx,"importNonRootRules");i(qa,"importFromJunie");});function Fy(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Ye}))}var vy=g(()=>{he();Bn();i(Fy,"lintRules");});function $y(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))Cy(n)&&e.push(tt(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return e}var My=g(()=>{Za();nr();i($y,"lintMcp");});var Vx,Jx,Yx,Xx,Gy,jy=g(()=>{by();Bn();Zr();jm();vy();My();Ht();Vx={name:"junie",primaryRootInstructionPath:Xe,generateRules:Ry,generateCommands:wy,generateAgents:Oy,generateSkills:Py,generateMcp:ky,generateIgnore:Ey,importFrom:qa},Jx={rootInstructionPath:Xe,skillDir:".junie/skills",managedOutputs:{dirs:[".junie/agents",".junie/commands",".junie/rules",".junie/skills"],files:[".aiignore",".junie/AGENTS.md",".junie/mcp/mcp.json"]},paths:{rulePath(t,e){return `${Un}/${t}.md`},commandPath(t,e){return `${an}/${t}.md`},agentPath(t,e){return `${ln}/${t}.md`}}},Yx={rootInstructionPath:Wn,renderPrimaryRootInstruction:xy,skillDir:ei,managedOutputs:{dirs:[ei,ri,ni,cg],files:[Wn,ka]},rewriteGeneratedPath(t){return t===Xe?Wn:t.startsWith(`${Un}/`)?Wn:t.startsWith(`${jn}/`)?t.replace(`${jn}/`,`${ei}/`):t.startsWith(`${an}/`)?t.replace(`${an}/`,`${ni}/`):t.startsWith(`${ln}/`)?t.replace(`${ln}/`,`${ri}/`):t===Uo?ka:t===Wo?null:t},mirrorGlobalPath(t,e){return Et(t,".junie/skills",e)},paths:{rulePath(t,e){return Wn},commandPath(t,e){return `${ni}/${t}.md`},agentPath(t,e){return `${ri}/${t}.md`}}},Xx={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Gy={id:"junie",generators:Vx,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:Fy,lint:{mcp:$y},project:Jx,globalSupport:{capabilities:Xx,detectionPaths:[Wn,ei,ri,ni,ka],layout:Yx},buildImportPaths:Yc,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"]};});function Uy(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function Qx(t){return t.type==="prompt"?t.prompt:t.command}function tb(t,e){let r=Wy[t];return t==="PreToolUse"||t==="PostToolUse"?{type:r,tools:[e||"*"]}:{type:r}}function By(t){let e=[];for(let[r,n]of Object.entries(t)){let o=r;if(!(o in Wy)||!Array.isArray(n))continue;let s=1;for(let a of n){let l=Qx(a);if(!l)continue;let c={name:`${Uy(r)} ${s}`,version:"1",when:tb(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};e.push({name:`${Uy(r)}-${s}.kiro.hook`,content:JSON.stringify(c,null,2)}),s+=1;}}return e}function eb(t){let e=qx.get(t.when.type);if(!e)return null;let r=t.when.tools?.[0]??t.when.patterns?.[0]??"*";return t.then.type==="askAgent"&&typeof t.then.prompt=="string"?{event:e,entry:{matcher:r,command:t.then.prompt,prompt:t.then.prompt,type:"prompt"}}:t.then.type==="shellCommand"&&typeof t.then.command=="string"?{event:e,entry:{matcher:r,command:t.then.command,type:"command"}}:null}function Ky(t){let e;try{e=JSON.parse(t);}catch{return null}if(!e||typeof e!="object"||Array.isArray(e))return null;let r=e;return !r.when||!r.then||typeof r.when.type!="string"?null:eb(r)}function Hy(t){return stringify(t).trimEnd()}var Wy,qx,Um=g(()=>{Wy={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},qx=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);i(Uy,"toKebab");i(Qx,"hookText");i(tb,"toWhen");i(By,"generateKiroHooks");i(eb,"toCanonicalEntry");i(Ky,"parseKiroHookFile");i(Hy,"serializeCanonicalHooks");});function nb(t){let e={};return t.globs.length>0?(e.inclusion="fileMatch",e.fileMatchPattern=t.globs.length===1?t.globs[0]:t.globs):t.trigger==="manual"?e.inclusion="manual":t.trigger==="model_decision"?e.inclusion="auto":e.inclusion="always",t.description&&(e.description=t.description),e}function zy(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Re,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(It))continue;let o=basename(n.source,".md");e.push({path:`${ke}/${o}.md`,content:D(nb(n),n.body.trim()||"")});}return e}function Vy(t){return ar(t,se)}function Jy(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Kn,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function Yy(t){return !t.hooks||Object.keys(t.hooks).length===0?[]:By(t.hooks).map(e=>({path:`${cn}/${e.name}`,content:e.content}))}function Xy(t){return t.agents.map(e=>{let r={name:e.name,description:e.description,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,e.body.trim()||"");return {path:`${we}/${e.name}.md`,content:n}})}function Zy(t){return t.ignore.length===0?[]:[{path:Hn,content:t.ignore.join(`
|
|
66
|
+
`)}]}var qy=g(()=>{Ae();F();Um();Jn();i(nb,"steeringFrontmatter");i(zy,"generateRules");i(Vy,"generateSkills");i(Jy,"generateMcp");i(Yy,"generateHooks");i(Xy,"generateAgents");i(Zy,"generateIgnore");});function ob(t){let r=JSON.parse(t).mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,s]of Object.entries(r)){if(!s||typeof s!="object"||Array.isArray(s))continue;let a=s;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:Lr(a.args),env:Dt(a.env)};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:Dt(a.headers),env:Dt(a.env)});}return n}async function Qy(t,e,r){let n=join(t,we),o=join(t,Zc);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:It,normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{let l=join(o,s),{frontmatter:c,body:m}=w(a(l));return {destPath:l,toPath:`${Zc}/${s}`,feature:"agents",content:await zt(l,c,m)}},"mapEntry")}));}async function tI(t,e,r){let n=r==="global"?Bo:Kn,o=await y(join(t,n));if(o===null)return;let s=ob(o);Object.keys(s).length!==0&&(await S(join(t,qc),JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:It,fromPath:join(t,n),toPath:qc,feature:"mcp"}));}async function eI(t,e){let r={};for(let n of await b(join(t,cn))){if(!n.endsWith(".kiro.hook"))continue;let o=Ky(await y(n)??"");o&&(r[o.event]??=[],r[o.event].push(o.entry));}Object.keys(r).length!==0&&(await S(join(t,Qc),Hy(r)),e.push({fromTool:It,fromPath:join(t,cn),toPath:Qc,feature:"hooks"}));}async function rI(t,e,r){let n=r==="global"?Ko:Hn,o=await y(join(t,n));o!==null&&(await S(join(t,tm),o.trimEnd()),e.push({fromTool:It,fromPath:join(t,n),toPath:tm,feature:"ignore"}));}var nI=g(()=>{pt();V();Pe();E();F();Um();Jn();i(ob,"readMcpServers");i(Qy,"importKiroAgents");i(tI,"importKiroMcp");i(eI,"importKiroHooks");i(rI,"importKiroIgnore");});function ib(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:Ar(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function ab(t,e,r,n){let o=n==="global"?[Oe,Re]:[Re,Oe];for(let s of o){let a=join(t,s),l=await y(a);if(l===null)continue;let c=join(t,Xc),{frontmatter:m,body:u}=w(r(l,a,c));await S(c,await $(c,{...m,root:true},u)),e.push({fromTool:It,fromPath:a,toPath:Xc,feature:"rules"});return}}async function lb(t,e,r){e.push(...await U({srcDir:join(t,ke),destDir:join(t,Oa),extensions:[".md"],fromTool:It,normalize:r,mapEntry:i(async({relativePath:n,normalizeTo:o})=>{if(basename(n)==="AGENTS.md")return null;let s=join(t,Oa,n),{frontmatter:a,body:l}=w(o(s));return {destPath:s,toPath:`${Oa}/${n}`,feature:"rules",content:await $(s,ib(a),l)}},"mapEntry")}));}async function Qa(t,e={}){let r=e.scope??"project",n=[],o=await J(It,t,r);return await ab(t,n,o,r),await lb(t,n,o),await Qy(t,n,o),await lr(t,se,It,n,o),await tI(t,n,r),await eI(t,n),await rI(t,n,r),n}var Wm=g(()=>{Ft();Ae();pt();V();Pe();E();F();Jn();nI();i(ib,"canonicalRuleMeta");i(ab,"importRoot");i(lb,"importRules");i(Qa,"importFromKiro");});function oI(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:It}))}var sI=g(()=>{he();Jn();i(oI,"lintRules");});function iI(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=>es(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var aI=g(()=>{nr();i(iI,"lintHooks");});var cb,mb,ub,pb,lI,cI=g(()=>{qy();Zr();Wm();sI();aI();Ht();Jn();cb={name:It,primaryRootInstructionPath:Re,generateRules:zy,generateAgents:Xy,generateSkills:Vy,generateMcp:Jy,generateHooks:Yy,generateIgnore:Zy,importFrom:Qa},mb={rootInstructionPath:Re,skillDir:se,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${ke}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return `${we}/${t}.md`}}},ub={rootInstructionPath:Oe,skillDir:mn,managedOutputs:{dirs:[zn,mn,Vn,pg],files:[Oe,Bo,Ko]},rewriteGeneratedPath(t){return t===Re?Oe:t.startsWith(`${ke}/`)?t.replace(`${ke}/`,`${zn}/`):t.startsWith(`${se}/`)?t.replace(`${se}/`,`${mn}/`):t.startsWith(`${we}/`)?t.replace(`${we}/`,`${Vn}/`):t===Kn?Bo:t===Hn?Ko:t.startsWith(`${cn}/`)?null:t},mirrorGlobalPath(t,e){return Et(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${zn}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return `${Vn}/${t}.md`}}},pb={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},lI={id:It,generators:cb,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).",lintRules:oI,lint:{hooks:iI},project:mb,globalSupport:{capabilities:pb,detectionPaths:[zn,Oe,mn,Vn,Bo,Ko],layout:ub},buildImportPaths:em,detectionPaths:[ke,se,we,cn,Kn,Hn]};});var ns,le,mr,mI,uI,vt,tl,no,el,gi,hn,pI,dI,os,rl,hi,yi,Bm,Km,ss,Hm,is,as,nl,ls,oo,Ii,dt=g(()=>{ns="gemini-cli",le="GEMINI.md",mr="AGENTS.md",mI=".gemini/rules",uI=".gemini/GEMINI.md",vt=".gemini/commands",tl=".gemini/policies",no=".gemini/settings.json",el=".geminiignore",gi=".gemini/skills",hn=".gemini/agents",pI=".gemini/system.md",dI=`${tl}/permissions.toml`,os=".agentsmesh/rules",rl=".agentsmesh/commands",hi=".agentsmesh/agents",yi=".agentsmesh/skills",Bm=".agentsmesh/mcp.json",Km=".agentsmesh/hooks.yaml",ss=".agentsmesh/ignore",Hm=".agentsmesh/permissions.yaml",is=".gemini/GEMINI.md",as=".gemini/AGENTS.md",nl=".gemini/settings.json",ls=".gemini/commands",oo=".gemini/skills",Ii=".gemini/agents";});function zm(t){let e=t.rules.find(s=>s.root),r=t.rules.filter(s=>!(s.root||s.targets.length>0&&!s.targets.includes("gemini-cli")));if(!e&&r.length===0)return [];let n=Ee(e?.body.trim()??"",r),o=[{path:le,content:n}];if(e){let s=e.body.trim().replace(/\.agentsmesh\/skills\//g,".agents/skills/");o.push({path:mr,content:s});}return o}var fI=g(()=>{pn();dt();i(zm,"generateRules");});function gI(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var hI=g(()=>{i(gI,"canonicalCommandNameToGeminiTomlPath");});function db(t){let e=t.replace(/\r\n/g,`
|
|
90
67
|
`);return e.includes('"""')?JSON.stringify(e):`"""
|
|
91
68
|
${e}
|
|
92
|
-
"""`}
|
|
69
|
+
"""`}function fb(t){return [`description = ${JSON.stringify(t.description||t.name)}`,`prompt = ${db(t.body.trim()||"")}`].join(`
|
|
93
70
|
`)+`
|
|
94
|
-
`}
|
|
95
|
-
`)}]}i(
|
|
96
|
-
`)}
|
|
97
|
-
`)}]}i(
|
|
71
|
+
`}function Vm(t){return t.commands.map(e=>({path:gI(e.name,vt),content:fb(e)}))}var yI=g(()=>{dt();hI();i(db,"serializeTomlMultilineLiteral");i(fb,"serializeGeminiCommand");i(Vm,"generateCommands");});function Jm(t){return t.agents.map(e=>{let r={name:e.name,kind:"local",description:e.description||void 0,tools:e.tools.length>0?e.tools:void 0,model:e.model||void 0,maxTurns:e.maxTurns>0?e.maxTurns:void 0,permissionMode:e.permissionMode||void 0,disallowedTools:e.disallowedTools.length>0?e.disallowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=D(r,e.body.trim()||"");return {path:`${hn}/${e.name}.md`,content:n}})}var II=g(()=>{F();dt();i(Jm,"generateAgents");});function Ym(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=D(n,r.body.trim()||"");e.push({path:`${gi}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${gi}/${r.name}/${a}`,content:s.content});}}return e}var SI=g(()=>{F();dt();i(Ym,"generateSkills");});function gb(t){switch(t){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function Xm(t){let e={},r=false;if(t.mcp&&Object.keys(t.mcp.mcpServers).length>0&&(e.mcpServers=t.mcp.mcpServers,r=true),t.agents.length>0&&(e.experimental={enableAgents:true},r=true),t.hooks){let n=Object.entries(t.hooks).flatMap(([o,s])=>{let a=gb(o);if(!a||!Array.isArray(s))return [];let l=s.filter(c=>typeof c=="object"&&c!==null&&Ir(c)).map((c,m)=>({matcher:c.matcher,hooks:[{name:`${a}-${m+1}`,type:"command",command:mt(c),timeout:c.timeout}]}));return l.length>0?[[a,l]]:[]});n.length>0&&(e.hooks=Object.fromEntries(n),r=true);}return r&&(e.context={fileName:[le,mr]}),Object.keys(e).length===0?[]:[{path:no,content:JSON.stringify(e,null,2)}]}var Zm=g(()=>{fe();dt();i(gb,"mapHookEvent");i(Xm,"generateGeminiSettingsFiles");});function qm(t){return !t.ignore||t.ignore.length===0?[]:[{path:el,content:t.ignore.join(`
|
|
72
|
+
`)}]}var _I=g(()=>{dt();i(qm,"generateIgnore");});var CI=g(()=>{fI();yI();II();SI();Zm();_I();});var RI=g(()=>{CI();});function so(t){return JSON.stringify(t)}function hb(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yb(t){let e=t.match(/^Bash\((.*)\)$/);if(e&&typeof e[1]=="string")return {kind:"bash",prefix:e[1]};let r=t.match(/^Read\((.*)\)$/);return r&&typeof r[1]=="string"?{kind:"read",path:r[1]}:t==="Read"||t==="Grep"||t==="LS"||t==="WebFetch"?{kind:"tool",tool:t}:{kind:"unknown",raw:t}}function ol(t,e,r){return ["[[rule]]",`decision = ${so(t)}`,`priority = ${e}`,...r,""].join(`
|
|
73
|
+
`)}function kI(t,e,r){let n=yb(t),o={Read:"read_file",Grep:"grep_search",LS:"list_directory",WebFetch:"web_fetch",Bash:"run_shell_command"};if(n.kind==="tool"){let s=o[n.tool]??n.tool;return ol(e,r,[`toolName = ${so(s)}`])}if(n.kind==="bash"){let s=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return ol(e,r,[`toolName = ${so(o.Bash)}`,`commandPrefix = ${so(s)}`])}return n.kind==="read"?ol(e,r,[`toolName = ${so(o.Read)}`,`argsPattern = ${so(hb(n.path))}`]):ol(e,r,[`toolName = ${so(n.raw)}`])}function wI(t){if(!t.permissions)return [];let{allow:e,deny:r}=t.permissions;if(e.length+r.length===0)return [];let o=[];return e.forEach((s,a)=>{let l=kI(s,"allow",100+a);l&&o.push(l);}),r.forEach((s,a)=>{let l=kI(s,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:dI,content:o.join(`
|
|
74
|
+
`)}]}var OI=g(()=>{dt();i(so,"escapeTomlBasicString");i(hb,"escapeRegexLiteral");i(yb,"parsePermissionExpr");i(ol,"ruleForDecision");i(kI,"permissionExprToGeminiRule");i(wI,"generateGeminiPermissionsPolicies");});function Qm(t){switch(t){case "BeforeTool":case "preToolUse":return "PreToolUse";case "AfterTool":case "postToolUse":return "PostToolUse";case "Notification":case "notification":return "Notification";default:return null}}function sl(t){let e=t.indexOf("---"),r=t.indexOf("+++");if(e===0&&(r===-1||e<=r))return w(t);if(r===0){let n=t.indexOf("+++",3);if(n!==-1)try{let o=t.slice(3,n).trim(),s=t.slice(n+3).trim();return {frontmatter:o===""?{}:parse$1(o)??{},body:s}}catch{return {frontmatter:{},body:t.trim()}}}return {frontmatter:{},body:t.trim()}}var tu=g(()=>{F();i(Qm,"mapGeminiHookEvent");i(sl,"parseFlexibleFrontmatter");});async function eu(t,e){let r=join(t,no),n=await y(r);if(n===null)return;let o;try{o=JSON.parse(n);}catch{}if(!o)return;let s=o.mcpServers;if(s!==void 0&&typeof s=="object"&&s!==null&&Object.keys(s).length>0){let c=join(t,Bm);await k(join(t,".agentsmesh")),await S(c,JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Bm,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(t,ss);await k(join(t,".agentsmesh")),await S(c,a.join(`
|
|
98
75
|
`)+`
|
|
99
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
76
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:ss,feature:"ignore"});}let l=o.hooks;if(l!==void 0&&typeof l=="object"&&l!==null){let c=Object.entries(l).flatMap(([m,u])=>{let p=Qm(m);if(!p||!Array.isArray(u))return [];let d=u.filter(f=>f!==null&&typeof f=="object"&&typeof f.matcher=="string"&&Array.isArray(f.hooks)).flatMap(f=>f.hooks.filter(h=>h!==null&&typeof h=="object"&&Ir(h)).map(h=>({matcher:f.matcher,command:mt(h),type:"command",timeout:typeof h.timeout=="number"?h.timeout:void 0})));if(d.length===0){let f=u.filter(h=>h!==null&&typeof h=="object"&&typeof h.matcher=="string"&&Ir(h)).map(h=>({matcher:h.matcher,command:mt(h),type:"command"}));return f.length>0?[[p,f]]:[]}return d.length>0?[[p,d]]:[]});if(c.length>0){let m=Object.fromEntries(c),u=join(t,Km);await k(join(t,".agentsmesh")),await S(u,stringify(m,{lineWidth:0}).trimEnd()),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Km,feature:"hooks"});}}}var EI=g(()=>{fe();E();dt();tu();i(eu,"importGeminiSettings");});async function PI(t,e){let r=join(t,el),n=await y(r);if(n!==null&&n.trim()){let o=n.split(/\r?\n/).map(s=>s.trim()).filter(s=>s&&!s.startsWith("#"));if(o.length>0){await k(join(t,".agentsmesh"));let s=join(t,ss);await S(s,o.join(`
|
|
100
77
|
`)+`
|
|
101
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:
|
|
102
|
-
`),e.push({fromTool:
|
|
78
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:ss,feature:"ignore"});}}}var nu=g(()=>{E();dt();tu();EI();i(PI,"importGeminiIgnore");});async function bI(t,e,r){let n=t.replace(/\\/g,"/"),o=join(e,n),{frontmatter:s,body:a}=sl(r(o)),l=Ar(s.globs),c={root:false,description:typeof s.description=="string"?s.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:`${os}/${n}`,feature:"rules",content:await $(o,c,a)}}async function AI(t,e,r){let n=t.replace(/\.(toml|md)$/i,".md").replace(/\\/g,"/"),o=join(e,n),s=r(o),{frontmatter:a,body:l}=t.endsWith(".toml")?Cb(s):sl(s),c=Tr(a.allowedTools),m=Tr(a["allowed-tools"]),u=c.length>0?c:m;return {destPath:o,toPath:`${rl}/${n}`,feature:"commands",content:await st(o,{description:typeof a.description=="string"?a.description:"",hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:u,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"allowedTools")||Object.prototype.hasOwnProperty.call(a,"allowed-tools")},l)}}function Cb(t){try{let e=parse$1(t);return {frontmatter:e,body:typeof e.prompt=="string"?e.prompt:""}}catch{return {frontmatter:{},body:t.trim()}}}var TI=g(()=>{V();Pe();nu();dt();i(bI,"mapGeminiRuleFile");i(AI,"mapGeminiCommandFile");i(Cb,"parseTomlCommand");});function wb(t){return t.replace(/\\(.)/g,"$1")}function Ob(t){switch(t){case "read_file":return "Read";case "grep_search":return "Grep";case "list_directory":return "LS";case "web_fetch":return "WebFetch";case "run_shell_command":return "Bash";default:return null}}function Eb(t){return `Bash(${t}:*)`}function Pb(t){return `Read(${wb(t)})`}async function LI(t){let e=[],r=join(t,tl),n;try{n=await b(r);}catch{return e}let o=n.filter(p=>p.endsWith(".toml"));if(o.length===0)return e;let s=[],a=[],l=new Set,c=new Set;for(let p of o){let d=await y(p);if(!d)continue;let f;try{f=parse$1(d);}catch{continue}let h=f&&typeof f=="object"&&"rule"in f?f.rule:void 0;if(Array.isArray(h))for(let C of h){if(!C||typeof C!="object")continue;let R=C,I=typeof R.toolName=="string"?R.toolName:null,O=typeof R.decision=="string"?R.decision:null;if(!I||!O)continue;let x=Ob(I);if(!x)continue;let P=null;x==="Bash"?typeof R.commandPrefix=="string"&&R.commandPrefix.trim()&&(P=Eb(R.commandPrefix.trim())):x==="Read"?typeof R.argsPattern=="string"&&R.argsPattern.trim()?P=Pb(R.argsPattern.trim()):P="Read":P=x,P&&(O==="allow"?l.has(P)||(l.add(P),s.push(P)):O==="deny"&&(c.has(P)||(c.add(P),a.push(P))));}}if(s.length===0&&a.length===0)return e;await k(join(t,".agentsmesh"));let m=join(t,Hm),u=stringify({allow:s,deny:a});return await S(m,u.trimEnd()+`
|
|
79
|
+
`),e.push({fromTool:ns,fromPath:join(t,tl),toPath:Hm,feature:"permissions"}),e}var NI=g(()=>{E();dt();i(wb,"unescapeRegexLiteral");i(Ob,"toolNameToPermissionBase");i(Eb,"commandPrefixToBashExpr");i(Pb,"argsPatternToReadExpr");i(LI,"importGeminiPolicies");});function ou(t,e){let r=new Set([e,e.replace(/\\/g,"/"),e.replace(/\//g,"\\")]);try{r.add(realpathSync(e)),r.add(realpathSync.native(e));}catch{}return Array.from(r).reduce((o,s)=>{let a=s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return o.replace(new RegExp(`${a}[/\\\\]\\.agentsmesh[/\\\\]`,"g"),".agentsmesh/").replaceAll(`${s}/.agentsmesh`,".agentsmesh").replaceAll(`${s}\\.agentsmesh`,".agentsmesh")},t).replace(/(?:[A-Za-z]:)?[^\s"'`()<>]+[/\\]\.agentsmesh[/\\]/g,".agentsmesh/")}var FI=g(()=>{i(ou,"stripProjectRootCanonicalPrefix");});async function $I(t,e,r){let n=join(t,gi),s=(await b(n)).filter(l=>basename(l)==="SKILL.md");for(let l of s){let c=await y(l);if(!c)continue;let m=basename(l.slice(0,-9)),u=w(c),p=qr(u.frontmatter,m);if(p){let O=join(t,hi);await k(O);let x=join(O,`${p.name}.md`);await S(x,Ge(p,r(u.body,l,x))),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${hi}/${p.name}.md`,feature:"agents"});continue}let d=join(t,yi,m,"SKILL.md"),f=r(c,l,d),h=join(t,yi,m);await k(h);let{frontmatter:C,body:R}=w(f);await S(d,await tr(d,{...C,name:m},R)),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${yi}/${m}/SKILL.md`,feature:"skills"});let I=await b(dirname(l));for(let O of I){if(O===l)continue;let x=await y(O);if(x===null)continue;let P=relative(dirname(l),O).replace(/\\/g,"/"),A=join(h,P);await k(dirname(A)),await S(A,r(x,O,A)),e.push({fromTool:"gemini-cli",fromPath:O,toPath:`${yi}/${m}/${P}`,feature:"skills"});}}let a=join(t,hn);try{let c=(await b(a)).filter(m=>m.endsWith(".md"));for(let m of c){let u=await y(m);if(!u)continue;let{frontmatter:p,body:d}=w(u),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),C=join(t,hi);await k(C);let R=join(C,h),I=r(d,m,R);await S(R,await zt(R,{...p,name:typeof p.name=="string"?p.name:basename(h,".md"),maxTurns:p.maxTurns??p["max-turns"]??p.max_turns,permissionMode:p.permissionMode??p["permission-mode"]??p.permission_mode,disallowedTools:p.disallowedTools??p["disallowed-tools"]??p.disallowed_tools},I)),e.push({fromTool:"gemini-cli",fromPath:m,toPath:`${hi}/${h}`,feature:"agents"});}}catch{}}var MI=g(()=>{E();F();V();ee();dt();i($I,"importGeminiSkillsAndAgents");});async function al(t){let e=[],r=await J(ns,t),n=await J("codex-cli",t),o=join(t,os),s=join(t,rl),a=join(t,le),l=join(t,mr),c=join(t,uI),m=join(t,pI),u=await y(a),p=await y(l),d=await y(c),f=await y(m),h=[{path:l,content:p},{path:c,content:d},{path:a,content:u},{path:m,content:f}].find(x=>x.content!==null)??null,C=h?.path??m,R=h?.content??null;if(R!==null){await k(o);let x=join(o,"_root.md"),P=C===l||C===c?n(R,C,x):R,A=await er({content:P,projectRoot:t,rulesDir:os,sourcePath:C,fromTool:"gemini-cli",normalize:r});e.push(...A.results);let K=r(A.rootContent,C,x),M=ou(K.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),t),{frontmatter:B,body:Z}=w(M),q=B.root===true?B:{...B,root:true},Zt=ou(await $(x,q,Z),t);await S(x,Zt),e.push({fromTool:"gemini-cli",fromPath:C,toPath:`${os}/_root.md`,feature:"rules"});}let I=join(t,mI);e.push(...await U({srcDir:I,destDir:o,extensions:[".md"],fromTool:"gemini-cli",normalize:r,mapEntry:i(({relativePath:x,normalizeTo:P})=>bI(x,o,P),"mapEntry")}));let O=join(t,vt);return e.push(...await U({srcDir:O,destDir:s,extensions:[".md",".toml"],fromTool:"gemini-cli",normalize:r,mapEntry:i(({relativePath:x,normalizeTo:P})=>AI(x,s,P),"mapEntry")})),await $I(t,e,r),await eu(t,e),await PI(t,e),e.push(...await LI(t)),e}var au=g(()=>{Ft();E();F();V();Xo();pt();TI();dt();nu();NI();FI();MI();i(al,"importFromGemini");});function GI(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:ns}))}var jI=g(()=>{he();dt();i(GI,"lintRules");});function UI(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>tt(e.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function WI(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=["PreToolUse","PostToolUse","Notification"],r=new Set(e);return Object.keys(t.hooks).filter(n=>!r.has(n)).map(n=>es(n,"gemini-cli",e))}var BI=g(()=>{nr();i(UI,"lintCommands");i(WI,"lintHooks");});function KI(t,e){return e==="project"&&yn("gemini-cli",e)?.ignore.flavor!=="settings-embedded"?[]:Xm(t)}var HI=g(()=>{ot();Zm();i(KI,"emitScopedGeminiSettings");});function VI(t){try{let e=JSON.parse(t);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return {}}}function JI(t,e){let r=VI(t),n=xb.parse(JSON.parse(e)),o={...r};n.permissions!==void 0&&(o.permissions=n.permissions),n.hooks!==void 0&&(o.hooks=n.hooks);let s=o.permissions;return s&&typeof s=="object"&&!Array.isArray(s)&&!("ask"in s)&&(s.ask=[]),JSON.stringify(o,null,2)}function YI(t,e){let r=VI(t),n=bb.parse(JSON.parse(e)),o={...r};return n.mcpServers!==void 0&&(o.mcpServers=n.mcpServers),n.hooks!==void 0&&(o.hooks=n.hooks),n.experimental!==void 0&&(o.experimental=n.experimental),n.context!==void 0&&(o.context=n.context),JSON.stringify(o,null,2)}var zI,xb,bb,lu=g(()=>{zI=[".claude/settings.json",".gemini/settings.json"],xb=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(),bb=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();i(VI,"parseJsonObject");i(JI,"mergeSettingsJson");i(YI,"mergeGeminiSettingsJson");});var Ab,Tb,Lb,Nb,XI,ZI=g(()=>{RI();bo();OI();dt();au();jI();Ht();xo();ee();BI();HI();Zr();lu();Ab={name:"gemini-cli",primaryRootInstructionPath:le,generateRules:zm,generateCommands:Vm,generateAgents:Jm,generateSkills:Ym,generateIgnore:qm,generatePermissions:wI,importFrom:al},Tb={rootInstructionPath:le,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[mr]}],extraRuleOutputPaths(){return [mr]},skillDir:".gemini/skills",managedOutputs:{dirs:[".gemini/agents",".gemini/commands",".gemini/skills",".agents/skills"],files:["AGENTS.md","GEMINI.md",".gemini/settings.json",".gemini/policies/permissions.toml",".geminiignore"]},mirrorGlobalPath(t,e){return Et(t,".gemini/skills",e)},paths:{rulePath(t,e){return le},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${vt}/${r.join("/")}/${n}.toml`}return `${vt}/${t}.toml`},agentPath(t,e){return te(e,"gemini-cli")?`.gemini/skills/${Lt(t)}/SKILL.md`:`${hn}/${t}.md`}}},Lb={rootInstructionPath:is,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[as]}],extraRuleOutputPaths(){return [as]},skillDir:oo,managedOutputs:{dirs:[ls,oo,Ii],files:[is,as,nl]},rewriteGeneratedPath(t){return t===le?is:t===mr?as:t===no?nl:t.startsWith(`${vt}/`)?t.replace(`${vt}/`,`${ls}/`):t.startsWith(".gemini/skills/")?t.replace(".gemini/skills/",`${oo}/`):t.startsWith(`${hn}/`)?t.replace(`${hn}/`,`${Ii}/`):t.startsWith(".gemini/policies/")||t===".geminiignore"?null:t},mirrorGlobalPath(t,e){return Et(t,oo,e)},paths:{rulePath(t,e){return is},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${ls}/${r.join("/")}/${n}.toml`}return `${ls}/${t}.toml`},agentPath(t,e){return te(e,"gemini-cli")?`${oo}/${Lt(t)}/SKILL.md`:`${Ii}/${t}.md`}}},Nb={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},XI={id:"gemini-cli",generators:Ab,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:ge("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:GI,lint:{commands:UI,hooks:WI},emitScopedSettings:KI,mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===no?YI(o,r):null},project:Tb,globalSupport:{capabilities:Nb,detectionPaths:[is,as,nl,ls,oo,Ii],layout:Lb},buildImportPaths:Bc,detectionPaths:["GEMINI.md",".gemini"]};});function Fb(t){let e=basename(t,".md");return e==="_root"?"root":e}function qI(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";e.push({path:tn,content:n});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=Fb(n.source),s={description:n.description||void 0,paths:n.globs.length>0?n.globs:void 0};Object.keys(s).forEach(l=>{s[l]===void 0&&delete s[l];});let a=Object.keys(s).length>0?D(s,n.body.trim()||""):n.body.trim()||"";e.push({path:`${kr}/${o}.md`,content:a});}return e}function QI(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n?`${r}
|
|
103
80
|
|
|
104
|
-
${n}`:r||n;return {path:`${
|
|
105
|
-
`);return [{path:
|
|
106
|
-
`)}
|
|
81
|
+
${n}`:r||n;return {path:`${Be}/${e.name}.md`,content:o}})}function tS(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
82
|
+
`);return [{path:Dn,content:e}]}function eS(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:wr,content:e}]}function rS(t){return t.agents.map(e=>({path:`${yt}/${Lt(e.name)}/SKILL.md`,content:da(e)}))}function vb(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function $b(t,e,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${t}`,`# agentsmesh-matcher: ${r}`,`# agentsmesh-command: ${e}`,"set -e",e,""].join(`
|
|
83
|
+
`)}function nS(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.hooks)){if(!Array.isArray(n))continue;let o=0;for(let s of n)Ir(s)&&(e.push({path:`${Fn}/${vb(r)}-${o}.sh`,content:$b(r,s.command,s.matcher)}),o++);}return e}function oS(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=D(n,r.body.trim()||"");e.push({path:`${yt}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${yt}/${r.name}/${a}`,content:s.content});}}return e}var sS=g(()=>{fe();F();ee();re();i(Fb,"ruleSlug");i(qI,"generateRules");i(QI,"generateCommands");i(tS,"generateIgnore");i(eS,"generateMcp");i(rS,"generateAgents");i(vb,"safeEventName");i($b,"buildHookScript");i(nS,"generateHooks");i(oS,"generateSkills");});async function aS(t,e,r){if(t==="workflows"||t.startsWith("workflows/"))return null;let n=t.replace(/\\/g,"/");if(n==="_root.md")return null;let o=join(e,n),{frontmatter:s,body:a}=w(r(o)),l=Ar(s.paths??s.globs),c={root:false,description:typeof s.description=="string"?s.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:`${en}/${n}`,feature:"rules",content:await $(o,c,a)}}async function lS(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n)),a=Object.prototype.hasOwnProperty.call(o,"description"),l=a&&typeof o.description=="string"?o.description:"",c=a,m=s;if(!c){let u=s.indexOf(`
|
|
107
84
|
|
|
108
85
|
`);if(u>0){let p=s.slice(0,u).trim();p&&!p.includes(`
|
|
109
|
-
`)&&(l=p,c=true,m=s.slice(u+2));}}return {destPath:n,toPath:`${
|
|
110
|
-
`)),e.push({fromTool:"cline",fromPath:o,toPath:
|
|
86
|
+
`)&&(l=p,c=true,m=s.slice(u+2));}}return {destPath:n,toPath:`${ya}/${t}`,feature:"commands",content:await st(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var cu=g(()=>{F();V();Pe();re();i(aS,"mapClineRuleFile");i(lS,"mapClineWorkflowFile");});async function cS(t,e,r){let n=join(t,en),o=join(t,kr),s=join(t,kr),a=false;try{a=(await stat(s)).isFile();}catch{}if(a){let u=await y(s);if(u!==null){await k(n);let p=join(n,"_root.md"),{frontmatter:d,body:f}=w(r(u,s,p)),C=d.root===true?d:{...d,root:true},R=await $(p,C,f);await S(p,R),e.push({fromTool:"cline",fromPath:s,toPath:`${en}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await y(c);if(m===null){let u=join(t,tn),p=await y(u);if(p!==null){l=u,await k(n);let d=join(n,"_root.md"),{frontmatter:f,body:h}=w(r(p,u,d)),R=f.root===true?f:{...f,root:true},I=await $(d,R,h);await S(d,I),e.push({fromTool:"cline",fromPath:u,toPath:`${en}/_root.md`,feature:"rules"});}else {let h=(await b(o)).filter(C=>C.endsWith(".md")&&!C.includes("/workflows/")).sort()[0];if(h){let C=await y(h);if(C!==null){l=h,await k(n);let R=join(n,"_root.md"),{frontmatter:I,body:O}=w(r(C,h,R)),P=I.root===true?I:{...I,root:true},A=await $(R,P,O);await S(R,A),e.push({fromTool:"cline",fromPath:h,toPath:`${en}/_root.md`,feature:"rules"});}}}}else {l=c,await k(n);let u=join(n,"_root.md"),{frontmatter:p,body:d}=w(r(m,c,u)),h=p.root===true?p:{...p,root:true},C=await $(u,h,d);await S(u,C),e.push({fromTool:"cline",fromPath:c,toPath:`${en}/_root.md`,feature:"rules"});}return e.push(...await U({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:i(async({srcPath:u,relativePath:p,normalizeTo:d})=>u===l?null:aS(p,n,d),"mapEntry")})),a}var mS=g(()=>{E();F();V();pt();cu();re();i(cS,"importClineRules");});function Gb(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.command=="string"?e.command:"";if(!r)return null;let n=typeof e.type=="string"?e.type:typeof e.transportType=="string"?e.transportType:"stdio",o=Array.isArray(e.args)?e.args.filter(c=>typeof c=="string"):[],s=e.env,a=s!==null&&typeof s=="object"&&!Array.isArray(s)?Object.fromEntries(Object.entries(s).filter(c=>typeof c[1]=="string")):{},l=typeof e.description=="string"?e.description:void 0;return {...l!==void 0&&{description:l},type:n,command:r,args:o,env:a}}async function uS(t,e){let r=[wr,Xf].map(c=>join(t,c)),n=null,o=null;for(let c of r){let m=await y(c);if(m!==null){n=c,o=m;break}}if(o===null)return;let s=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,u]of Object.entries(l)){let p=Gb(u);p&&(c[m]=p);}Object.keys(c).length>0&&(await k(join(t,".agentsmesh")),await S(join(t,bc),JSON.stringify({mcpServers:c},null,2)),e.push({fromTool:Qr,fromPath:s,toPath:bc,feature:"mcp"}));}}var pS=g(()=>{E();re();i(Gb,"mapClineServerToCanonical");i(uS,"importClineMcp");});async function dS(t,e,r,n=yt){let o=join(t,n),s=await dn(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:Zf,targetName:"cline",normalize:r,results:e};for(let[l,c]of s){let m=join(c,"SKILL.md"),u=await y(m);if(!u)continue;let p=w(u),d=qr(p.frontmatter,l);if(d){let f=join(t,Ac);await k(f);let h=join(f,`${d.name}.md`);await S(h,Ge(d,r(p.body,m,h))),e.push({fromTool:"cline",fromPath:m,toPath:`${Ac}/${d.name}.md`,feature:"agents"});continue}await rr(l,c,a);}}var fS=g(()=>{E();F();ee();qo();re();i(dS,"importClineSkills");});function uu(t,e){return t.match(new RegExp(`^# agentsmesh-${e}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function gS(t,e){let n=(await b(t).catch(()=>[])).filter(o=>basename(o).endsWith(".sh")&&dirname(o)===t);for(let o of n){let s=await y(o);if(!s)continue;let a=uu(s,"event"),l=uu(s,"command");if(!a||!l)continue;let c=uu(s,"matcher")??"*";e[a]||(e[a]=[]),e[a].push({matcher:c,command:l});}}async function yS(t,e){let r={};if(await gS(join(t,Fn),r),await gS(join(t,Mn),r),Object.keys(r).length===0)return;let n=join(t,Pc);await k(dirname(n)),await S(n,stringify(r)),e.push({fromTool:Qr,fromPath:join(t,Mn),toPath:Pc,feature:"hooks"});}var IS=g(()=>{E();re();i(uu,"extractMeta");i(gS,"loadHooksFromDir");i(yS,"importClineHooks");});async function ml(t){let e=[],r=await J(Qr,t),n=await cS(t,e,r),o=join(t,Dn),s=await y(o);if(s!==null&&s.trim()){let l=s.split(/\r?\n/),c=[];for(let m of l){let u=m.trim();u&&!u.startsWith("#")&&c.push(u);}if(c.length>0){await k(join(t,".agentsmesh"));let m=join(t,xc);await S(m,c.join(`
|
|
87
|
+
`)),e.push({fromTool:"cline",fromPath:o,toPath:xc,feature:"ignore"});}}await uS(t,e);let a=join(t,ya);return n||e.push(...await U({srcDir:join(t,Be),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:i(({relativePath:l,normalizeTo:c})=>lS(l,a,c),"mapEntry")})),await dS(t,e,r),await yS(t,e),e}var pu=g(()=>{Ft();E();pt();cu();mS();re();pS();fS();IS();i(ml,"importFromCline");});function SS(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:Qr}))}var _S=g(()=>{he();re();i(SS,"lintRules");});function CS(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>tt(e.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function RS(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[tt(".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 kS=g(()=>{nr();i(CS,"lintCommands");i(RS,"lintHooks");});var Wb,Bb,Kb,Hb,wS,OS=g(()=>{sS();bo();re();pu();_S();kS();Ht();xo();ee();Wb={name:"cline",primaryRootInstructionPath:tn,generateRules:qI,generateCommands:QI,generateAgents:rS,generateSkills:oS,generateMcp:eS,generateHooks:nS,generateIgnore:tS,importFrom:ml},Bb={rootInstructionPath:tn,skillDir:".cline/skills",managedOutputs:{dirs:[".cline/skills",".clinerules",".clinerules/hooks",".clinerules/workflows"],files:["AGENTS.md",".cline/cline_mcp_settings.json",".clineignore",".clinerules/typescript.md"]},paths:{rulePath(t,e){return `${kr}/${t}.md`},commandPath(t,e){return `${Be}/${t}.md`},agentPath(t,e){return te(e,"cline")?`.cline/skills/${Lt(t)}/SKILL.md`:null}}},Kb={skillDir:yt,managedOutputs:{dirs:[vn,$n,Mn,yt,".agents/skills"],files:[wr,Dn]},rewriteGeneratedPath(t){return t===tn?null:t.startsWith(`${Fn}/`)?`${Mn}/${t.slice(Fn.length+1)}`:t.startsWith(`${Be}/`)?`${$n}/${t.slice(Be.length+1)}`:t.startsWith(`${kr}/`)?`${vn}/${t.slice(kr.length+1)}`:t},mirrorGlobalPath(t,e){return t.startsWith(`${yt}/`)?`.agents/skills/${t.slice(yt.length+1)}`:null},paths:{rulePath(t,e){return `${vn}/${t}.md`},commandPath(t,e){return `${$n}/${t}.md`},agentPath(t,e){return te(e,"cline")?`.cline/skills/${Lt(t)}/SKILL.md`:null}}},Hb={rules:"native",additionalRules:"native",commands:ge("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},wS={id:"cline",generators:Wb,capabilities:{rules:"native",additionalRules:"native",commands:ge("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:SS,lint:{commands:CS,hooks:RS},project:Bb,globalSupport:{capabilities:Hb,detectionPaths:[vn,$n,Mn,yt,wr,Dn],layout:Kb},buildImportPaths:Tc,detectionPaths:[".clinerules",".cline"]};});var _t,ES,jr,ao,PS,Te,xS,ul,lo,ur,co,Ur,du,cs,_i,fu,bS,gu,AS,TS,hu,yu,Iu,wt=g(()=>{_t="codex-cli",ES="codex.md",jr="AGENTS.md",ao=".codex/AGENTS.md",PS=".codex/AGENTS.override.md",Te=".agents/skills",xS=".codex/skills",ul=".codex/config.toml",lo=".codex/instructions",ur=".codex/rules",co=".codex/agents",Ur=".agentsmesh/rules",du=".agentsmesh/commands",cs=".agentsmesh/agents",_i=".agentsmesh/skills",fu=".agentsmesh/mcp.json",bS="am-codex-rule:v1",gu="# am-json: ",AS="# am-body-b64-begin",TS="# am-body-b64-end",hu="# am64:",yu="<!-- agentsmesh:codex-rule-index:start -->",Iu="<!-- agentsmesh:codex-rule-index:end -->";});function Su(t){return basename(t,".md")}function Ci(t){return `${lo}/${Su(t.source)}.md`}function LS(t){let e={root:t.root,description:t.description||void 0,globs:t.globs.length>0?t.globs:void 0,targets:t.targets.length>0?t.targets:void 0,codex_emit:t.codexEmit||void 0,codex_instruction:t.codexInstructionVariant&&t.codexInstructionVariant!=="default"?t.codexInstructionVariant:void 0};return Object.keys(e).forEach(r=>{e[r]===void 0&&delete e[r];}),D(e,t.body.trim()||"")}function Vb(t){let e=[];return t.root?e.push("Applies to the whole project."):t.globs.length>0?e.push(`Applies to ${t.globs.map(r=>`\`${r}\``).join(", ")}.`):e.push("General guidance with no file glob restriction."),t.codexInstructionVariant==="override"&&e.push("Override guidance when this rule conflicts with broader instructions."),t.codexEmit==="execution"&&e.push(`Enforced in \`${ur}/${Su(t.source)}.rules\`.`),t.targets.length>0&&e.push(`Targeted to ${t.targets.map(r=>`\`${r}\``).join(", ")}.`),e.join(" ")}function NS(t,e){let r=t.trim(),n=e.filter(a=>!a.root);if(n.length===0)return r;let o=n.map(a=>`- [${a.description||Su(a.source)}](${Ci(a)}): ${Vb(a)}`),s=[yu,"## Additional Rule Files",...o,Iu].join(`
|
|
111
88
|
`);return r?`${r}
|
|
112
89
|
|
|
113
|
-
${s}`:s}
|
|
114
|
-
`).trim()}i(
|
|
90
|
+
${s}`:s}function DS(t){let e=yu.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=Iu.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`\\n?${e}[\\s\\S]*?${r}\\n?`,"g"),`
|
|
91
|
+
`).trim()}var pl=g(()=>{F();wt();i(Su,"ruleSlug");i(Ci,"codexInstructionMirrorPath");i(LS,"serializeCodexInstructionMirror");i(Vb,"summarizeRule");i(NS,"appendCodexRuleIndex");i(DS,"stripCodexRuleIndex");});function Yb(t){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(t)}function Xb(t){return t.split(`
|
|
115
92
|
`).map(e=>e.length>0?`# ${e}`:"#").join(`
|
|
116
|
-
`)}
|
|
117
|
-
`:`${["# 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.","#",...
|
|
93
|
+
`)}function Zb(t){let e=t.trim();return e?Yb(e)?`${e}
|
|
94
|
+
`:`${["# 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.","#",...Xb(e).split(`
|
|
118
95
|
`),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
|
|
119
96
|
`)}
|
|
120
|
-
`:""}
|
|
97
|
+
`:""}function _u(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:jr,content:NS(e.body,t.rules)});for(let n of t.rules){if(n.root)continue;let o=basename(n.source,".md");n.targets.length>0&&!n.targets.includes("codex-cli")||(n.codexEmit==="execution"&&r.push({path:`${ur}/${o}.rules`,content:Zb(n.body)}),r.push({path:Ci(n),content:LS(n)}));}return r}function Cu(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root||n.codexEmit==="execution"?false:n.targets.length===0||n.targets.includes("codex-cli"));return Ee(e?.body.trim()??"",r)}var FS=g(()=>{pn();wt();pl();i(Yb,"looksLikeCodexRulesDsl");i(Xb,"toCodexRulesComments");i(Zb,"toSafeCodexRulesContent");i(_u,"generateRules");i(Cu,"renderCodexGlobalInstructions");});function Ru(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=D(n,r.body.trim()||"");e.push({path:`${Te}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${Te}/${r.name}/${a}`,content:s.content});}}return e}function qb(t){return {path:`${Te}/${Lo(t.name)}/SKILL.md`,content:Wf(t)}}function ku(t){return t.commands.map(qb)}var vS=g(()=>{F();wt();Ks();i(Ru,"generateSkills");i(qb,"commandToSkillOutput");i(ku,"generateCommands");});function wu(t){return t.agents.map(e=>({path:`${co}/${e.name}.toml`,content:Qb(e)}))}function Qb(t){let e=[];e.push(`name = ${JSON.stringify(t.name)}`),t.description&&e.push(`description = ${JSON.stringify(t.description)}`),t.model&&e.push(`model = ${JSON.stringify(t.model)}`),t.permissionMode==="read-only"||t.permissionMode==="deny"?e.push('sandbox_mode = "read-only"'):t.permissionMode==="allow"&&e.push('sandbox_mode = "workspace-write"');let r=t.body.trim()||"";if(r.includes("'''")){let n=r.replace(/\\/g,"\\\\").replace(/"/g,'\\"');e.push(`developer_instructions = """
|
|
121
98
|
${n}
|
|
122
99
|
"""`);}else e.push(`developer_instructions = '''
|
|
123
100
|
${r}
|
|
124
101
|
'''`);return e.join(`
|
|
125
102
|
`)+`
|
|
126
|
-
`}i(
|
|
103
|
+
`}var $S=g(()=>{wt();i(wu,"generateAgents");i(Qb,"serializeAgentToCodexToml");});function Ou(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).flatMap(([n,o])=>Xa(o)?[[n,o]]:[]));if(Object.keys(e).length===0)return [];let r=tA(e);return [{path:ul,content:r}]}function tA(t){let e=[];for(let[r,n]of Object.entries(t)){let o=MS(r)?`"${r}"`:r,s=[];s.push(`[mcp_servers.${o}]`),s.push(`command = ${JSON.stringify(n.command)}`);let a="["+n.args.map(c=>JSON.stringify(c)).join(", ")+"]";s.push(`args = ${a}`);let l=Object.entries(n.env);if(l.length>0){let c=l.map(([m,u])=>`${MS(m)?JSON.stringify(m):m} = ${JSON.stringify(u)}`).join(", ");s.push(`env = { ${c} }`);}e.push(s.join(`
|
|
127
104
|
`));}return e.join(`
|
|
128
105
|
|
|
129
106
|
`)+`
|
|
130
|
-
`}
|
|
131
|
-
`).find(c=>c.startsWith(
|
|
132
|
-
`)){let m=c.trimEnd();if(m===
|
|
133
|
-
`)}]}i(
|
|
134
|
-
`)),n.push({fromTool:"windsurf",fromPath:u,toPath:
|
|
135
|
-
|
|
136
|
-
${n}`:n||r;return {path:`${
|
|
137
|
-
`)}]}i(Ry,"generateIgnore");function ky(t){return Me(t,Te)}i(ky,"generateSkills");function wy(t){if(t.agents.length===0)return [];let e=t.agents.map(r=>{let o={slug:basename(r.source,".md"),name:r.name};return r.description&&(o.description=r.description),r.body.trim()&&(o.roleDefinition=r.body.trim()),o});return [{path:uo,content:stringify({customModes:e})}]}i(wy,"generateAgents");function TE(t){let r=JSON.parse(t).mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,s]of Object.entries(r)){if(!s||typeof s!="object"||Array.isArray(s))continue;let a=s;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:sr(a.args),env:kt(a.env),description:typeof a.description=="string"?a.description:void 0};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:kt(a.headers),env:kt(a.env),description:typeof a.description=="string"?a.description:void 0});}return n}i(TE,"readMcpServers");async function Oy(t,e,r){let n=join(t,be),o=join(t,lc);e.push(...await M({srcDir:n,destDir:o,extensions:[".md"],fromTool:Rt,normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{let l=join(o,s),{frontmatter:c,body:m}=w(a(l)),u=await q(l,{hasDescription:true,description:typeof c.description=="string"?c.description:void 0,hasAllowedTools:false,allowedTools:[]},m);return {destPath:l,toPath:`${lc}/${s}`,feature:"commands",content:u}},"mapEntry")}));}i(Oy,"importRooCommands");async function Ey(t,e,r){let n=r==="global"?join(t,vr):join(t,co),o=await h(n);if(o===null)return;let s=TE(o);Object.keys(s).length!==0&&(await _(join(t,cc),JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:Rt,fromPath:n,toPath:cc,feature:"mcp"}));}i(Ey,"importRooMcp");async function Py(t,e){let r=join(t,mo),n=await h(r);n!==null&&(await _(join(t,mc),n.trimEnd()),e.push({fromTool:Rt,fromPath:r,toPath:mc,feature:"ignore"}));}i(Py,"importRooIgnore");async function NE(t,e,r,n){let o=join(t,ac),s=n==="global"?[rr,Wt,Cs]:[Wt,Cs];for(let a of s){let l=join(t,a),c=await h(l);if(c===null)continue;let{frontmatter:m,body:u}=w(r(c,l,o)),p=await D(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},u);await _(o,p),e.push({fromTool:Rt,fromPath:l,toPath:ac,feature:"rules"});return}}i(NE,"importRootRule");async function DE(t,e,r){let n=join(t,Ae),o=join(t,ks),s="00-root.md";e.push(...await M({srcDir:n,destDir:o,extensions:[".md"],fromTool:Rt,normalize:r,mapEntry:i(async({relativePath:a,normalizeTo:l})=>{if(a===s)return null;let c=join(o,a),{frontmatter:m,body:u}=w(l(c)),p=await D(c,{root:false,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},u);return {destPath:c,toPath:`${ks}/${a}`,feature:"rules",content:p}},"mapEntry")}));}i(DE,"importNonRootRules");async function FE(t,e,r){let n=join(t,gn),o;try{o=await readdir(n,{withFileTypes:!0});}catch{return}let s=o.filter(a=>a.isDirectory()&&a.name.startsWith("rules-")).map(a=>a.name);for(let a of s){let l=join(n,a),c=join(t,ks);e.push(...await M({srcDir:l,destDir:c,extensions:[".md"],fromTool:Rt,normalize:r,mapEntry:i(async({relativePath:m,normalizeTo:u})=>{let p=join(c,m),{frontmatter:d,body:f}=w(u(p)),g=await D(p,{root:false,description:typeof d.description=="string"?d.description:void 0,globs:Array.isArray(d.globs)?d.globs:void 0},f);return {destPath:p,toPath:`${ks}/${m}`,feature:"rules",content:g}},"mapEntry")}));}}i(FE,"importPerModeRules");async function xy(t,e={}){let r=e.scope??"project",n=[],o=await K(Rt,t,r);return await NE(t,n,o,r),await DE(t,n,o),await FE(t,n,o),await Oy(t,n,o),await Ge(t,Te,Rt,n,o),await Ey(t,n,r),await Py(t,n),n}i(xy,"importFromRooCode");function Ay(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Rt}))}i(Ay,"lintRules");var GE={name:"roo-code",primaryRootInstructionPath:Wt,generateRules:_y,generateCommands:Sy,generateSkills:ky,generateMcp:Cy,generateIgnore:Ry,generateAgents:wy,importFrom:xy},Gm={rootInstructionPath:Wt,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",uo]},paths:{rulePath(t,e){return `${Ae}/${t}.md`},commandPath(t,e){return `${be}/${t}.md`},agentPath(t,e){return null}}};function jE(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(jE,"computeStatus");var UE=i(async(t,e,r,n)=>{if(r!=="global")return [];if(!n.has("agents")||t.agents.length===0)return [];let o=t.agents.map(l=>{let m={slug:basename(l.source,".md"),name:l.name};return l.description&&(m.description=l.description),l.body.trim()&&(m.roleDefinition=l.body.trim()),m}),s=stringify({customModes:o}),a=await h(join(e,Rs));return [{target:"roo-code",path:Rs,content:s,currentContent:a??void 0,status:jE(a,s)}]},"generateRooGlobalExtras"),WE={rootInstructionPath:rr,skillDir:er,managedOutputs:{dirs:[hn,yn,er,Ud],files:[rr,vr,ji,Rs]},rewriteGeneratedPath(t){return t===Wt?rr:t===uo?null:t.startsWith(`${Ae}/`)?t.replace(`${Ae}/`,`${hn}/`):t.startsWith(`${be}/`)?t.replace(`${be}/`,`${yn}/`):t.startsWith(`${Te}/`)?t.replace(`${Te}/`,`${er}/`):t===co?vr:t===mo?ji:t},mirrorGlobalPath(t,e){return yt(t,er,e)},paths:{rulePath(t,e){return `${hn}/${t}.md`},commandPath(t,e){return `${yn}/${t}.md`},agentPath(t,e){return null}}},BE={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},by={id:"roo-code",generators:GE,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:Ay,project:Gm,globalSupport:{capabilities:BE,detectionPaths:[hn,yn,er,vr,ji,rr,Rs],layout:WE,scopeExtras:UE},skillDir:Gm.skillDir,paths:Gm.paths,buildImportPaths:uc,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",uo]};var At=[Wd,Cf,Vf,cg,wg,Wg,lh,Ph,Yh,ly,yy,by],jm;function KE(){return jm||(id(At),jm=new Map(At.map(t=>[t.id,t]))),jm}i(KE,"builtinTargetsMap");function Et(t){return KE().get(t)}i(Et,"getBuiltinTargetDefinition");function En(t,e="project"){let r=Et(t)??V(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.globalCapabilities??r.capabilities:r.capabilities;return _i(n)}i(En,"getTargetCapabilities");function Ty(t,e="project"){let r=Et(t)??V(t);return r?e==="global"?r.globalSupport?.detectionPaths??r.globalDetectionPaths??[]:r.detectionPaths:[]}i(Ty,"getTargetDetectionPaths");function pt(t,e="project"){let r=Et(t)??V(t);if(r)return e==="global"?r.globalSupport?.layout??r.global:r.project}i(pt,"getTargetLayout");function Aa(t,e="project"){return pt(t,e)?.skillDir}i(Aa,"getTargetSkillDir");function Ly(t,e="project"){return pt(t,e)?.managedOutputs}i(Ly,"getTargetManagedOutputs");function Lo(t,e,r="project"){let n=pt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}i(Lo,"rewriteGeneratedOutputPath");function Um(t,e,r,n="project"){let o=En(t,n)?.[e]?.level??"none";if(o!=="embedded")return o;let s=Et(t)??V(t);return e==="commands"&&s?.supportsConversion?.commands?Jn(r,t,true,n)?"embedded":"none":e==="agents"&&s?.supportsConversion?.agents?Mt(r,t,true,n)?"embedded":"none":o}i(Um,"getEffectiveTargetSupportLevel");function Us(t,e,r,n="project"){let o=Et(t)??V(t),s=o?.generators;if(s)switch(e){case "rules":return s.generateRules;case "additionalRules":return;case "commands":return r&&o?.supportsConversion?.commands&&!Jn(r,t,true,n)?void 0:s.generateCommands;case "agents":return r&&o?.supportsConversion?.agents&&!Mt(r,t,true,n)?void 0:s.generateAgents;case "skills":return s.generateSkills;case "mcp":return s.generateMcp;case "permissions":return s.generatePermissions;case "hooks":return s.generateHooks;case "ignore":return s.generateIgnore}}i(Us,"resolveTargetFeatureGenerator");async function Ny(t,e,r="project"){let n=new Map,o=Et(t);return o&&await o.buildImportPaths(n,e,r),n}i(Ny,"buildImportReferenceMap");var de=/^[A-Za-z]:[\\/]/,zE=/[.!?:;]+$/;function st(t){return t.includes("\\")||de.test(t)?win32:posix}i(st,"pathApi");function H(t){return t.replace(/\\/g,"/")}i(H,"normalizeSeparators");function $(t,e){let r=st(t),n=r.normalize(r===win32?e.replace(/\//g,"\\"):H(e));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}i($,"normalizeForProject");function Fy(t,e){return st(t).isAbsolute(e)||de.test(e)}i(Fy,"isAbsoluteForProject");function No(t){let e=t,r="";for(;zE.test(e);)r=e.at(-1)+r,e=e.slice(0,-1);return {candidate:e,suffix:r}}i(No,"stripTrailingPunctuation");function vy(t,e){let r=st(e),n=t.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==t?$(e,r.join(e,n)):null}i(vy,"rootFallbackPath");var YE=[".agentsmesh/",".claude/",".cursor/",".github/",".continue/",".junie/",".kiro/",".gemini/",".clinerules/",".cline/",".codex/",".agents/",".windsurf/",".roo/"];function fe(t){let e=H(t);return YE.some(r=>e.startsWith(r))}i(fe,"isRootRelativePathToken");var XE=new Set(["skills","rules","commands","agents","packs"]);function ZE(t){let e=H(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||de.test(e)||/^[a-zA-Z]:/.test(e)||fe(e))return false;let r=e.split("/").filter(n=>n.length>0)[0];return r!==void 0&&XE.has(r)}i(ZE,"isMeshRootRelativePathToken");var qE=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),QE=[/\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],tP=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,eP=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,rP=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,Gy=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,Do=/(?::(\d+)){1,2}$/;function Ws(t,e,r){let n=st(e),o=$(e,e),s=$(e,r),a=H(t);if(de.test(t)){let l=$(e,t);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(isAbsolute(t)){let l=$(e,t);return l.startsWith(o)||existsSync(t)?[l]:[$(e,n.join(e,t))]}if(a.startsWith("./")||a.startsWith("../")){let l=$(e,n.join(n.dirname(s),a)),c=vy(a,o);return c&&c!==l?[l,c]:[l]}if(fe(a))return [$(e,n.join(o,a))];if(a.includes("/")){let l=$(e,n.join(o,".agentsmesh")),c=ZE(a)?$(e,n.join(l,a)):null,m=$(e,n.join(o,a)),u=$(e,n.join(n.dirname(s),a));return c!==null?[c,m,u]:[m,u]}return qE.has(a)?[]:a.includes(".")?[$(e,n.join(n.dirname(s),a))]:[]}i(Ws,"resolveProjectPath");function Bs(t,e){let r=[e];if(!Fy(t,e)||!existsSync(e))return r;try{let n=[realpathSync(e),realpathSync.native(e)];for(let o of n)o!==e&&!r.includes(o)&&r.unshift(o);}catch{}return r}i(Bs,"expandResolvedPaths");function jy(t,e,r){let n=e>0?t.at(e-1):"",o=r<t.length?t.at(r):"";return n==="*"||o==="*"}i(jy,"isGlobAdjacent");function ba(t){let e=[];for(let r of QE)for(let n of t.matchAll(r))e.push([n.index??0,(n.index??0)+n[0].length]);for(let r of t.matchAll(tP))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(eP))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(rP))e.push([r.index??0,(r.index??0)+r[0].length]);return e}i(ba,"protectedRanges");function oP(t){return t===void 0||t.role==="inline-code"||t.role==="bracketed"||t.role==="quoted"||t.role==="at-prefix"||t.role==="bracket-label"||t.role==="bare-prose"}i(oP,"isReadingContext");function Wm(t,e){let r=st(t),n=$(t,t),o=$(t,e);if(o===n)return true;let s=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(s)}i(Wm,"isUnderProjectRoot");function Uy(t){let e=st(t);return $(t,e.join(t,".agentsmesh"))}i(Uy,"agentsMeshRoot");function Ir(t,e){let r=st(t),n=Uy(t),o=$(t,e);if(o===n)return true;let s=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(s)}i(Ir,"isUnderAgentsMesh");function Wy(t,e,r){let n=st(t),o=Uy(t),s=$(t,e);if(!Ir(t,s))return null;let a=n.relative(o,s).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}i(Wy,"toAgentsMeshRootRelative");function Bm(t,e,r){let o=st(t).relative($(t,t),$(t,e)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let s=o.length>0?o:".";return r&&!s.endsWith("/")?`${s}/`:s}i(Bm,"toProjectRootRelative");function By(t,e,r){return !oP(r.tokenContext)||r.originalToken===void 0?false:H(r.originalToken).startsWith(".agentsmesh/")}i(By,"shouldPreserveAgentsMeshAnchor");function Fo(t,e,r){let n=Bm(t,e,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}i(Fo,"toProjectRootReference");function Km(t,e,r,n,o){let s=st(t),a=$(t,t),l=$(t,e),c=$(t,r);if(!Wm(t,c))return Fo(t,c,n)?.text??null;let m=$(t,dirname(l));if(!Wm(t,m)&&m!==a)return Fo(t,c,n)?.text??null;let u=s.relative(m,c).replace(/\\/g,"/");if(s.isAbsolute(u)||de.test(u))return Bm(t,c,n);let p=$(t,s.join(m,u));return Wm(t,p)?(u===""||u==="."?u=".":o.explicitCurrentDirLinks===true&&m!==a&&!u.startsWith("../")&&!u.startsWith("./")&&(u=`./${u}`),n&&!u.endsWith("/")?`${u}/`:u):Bm(t,c,n)}i(Km,"formatLinkPathForDestinationLegacy");function Ky(t,e,r,n,o={}){let s=o.scope??"project",a=$(t,r);if(By(t,e,o))return H(o.originalToken??"");if(o.forceRelative)return Km(t,e,r,n,o);if(s==="global"&&!Ir(t,e))return Fo(t,a,n)?.text??null;let l=(()=>{if(Ir(t,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&Ir(t,$(t,m))?$(t,m):null})();if(!l)return Fo(t,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=Wy(t,l,n);return m!==null?m:Fo(t,l,n)?.text??null}return Km(t,e,r,n,o)}i(Ky,"formatLinkPathForDestination");function Hy(t,e,r,n){let o=st(e),s=H(t);if(!fe(s))return null;let a=s.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=$(e,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let u=a.slice(m).join("/"),p=$(e,o.join(c,u));if(p!==l&&n(p))return p}return null}i(Hy,"resolveByDestinationSuffixStrip");function zy(t){let e=null,r=false,n=null,o=null,s=null;for(let c of Ws(t.candidate,t.projectRoot,t.sourceFile)){let m=null,u=null;for(let p of Bs(t.projectRoot,c)){let d=$(t.projectRoot,p),f=$(t.projectRoot,t.translatePath(d)),g=t.pathExists(d),I=t.pathExists(f);if(I&&f!==d){e=f,n=d,r=true;break}(g||I)&&m===null&&(m=f,u=d),e===null&&(e=f);}if(!r&&m!==null&&o===null&&(o=m,s=u),r)break}if(!r){let c=Hy(t.candidate,t.projectRoot,t.destinationFile,t.pathExists);c!==null&&(e=c,r=true);}!r&&o!==null&&(e=o,s!==null&&(n=s),r=true);let a=H(t.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&e!==null&&H(t.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:e,resolvedBeforeTranslate:n,matchedPath:r}}i(zy,"resolveLinkTarget");function Vy(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}i(Vy,"isTildeHomeRelativePathToken");function Jy(t,e,r){if(e<=0||t[e-1]!=="(")return false;let n=e+r.length,o=t[n];return o!==")"&&o!=="#"&&o!=="?"&&o!==" "&&o!==" "?false:t[e-2]==="]"}i(Jy,"isMarkdownLinkDestinationToken");function Yy(t){let e=H(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||de.test(e)||fe(e)?false:e.includes("/")}i(Yy,"isRelativePathToken");function sP(t,e,r){let n=e+r.length;if(t[n]!=="]"||t[n+1]!=="(")return false;let o=n+2,s="";for(;o<t.length;){let a=t[o];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
|
|
138
|
-
`)break;s+=a,o++;}return s===r}
|
|
107
|
+
`}function MS(t){return !/^[A-Za-z0-9_-]+$/.test(t)}var GS=g(()=>{Za();wt();i(Ou,"generateMcp");i(tA,"serializeMcpToToml");i(MS,"needsTomlQuoting");});var jS=g(()=>{FS();vS();$S();GS();});var US=g(()=>{jS();});function rA(t){if(!t||typeof t!="object"||Array.isArray(t))return null;let e=t,r=typeof e.command=="string"?e.command:"";if(!r)return null;let n=Array.isArray(e.args)?e.args.filter(a=>typeof a=="string"):[],o=e.env,s=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:s}}async function WS(t,e){let r=join(t,ul),n=await y(r);if(n===null)return;let o;try{o=parse$1(n);}catch{return}let s=o.mcp_servers;if(!s||typeof s!="object"||Array.isArray(s)||Object.keys(s).length===0)return;let a={};for(let[l,c]of Object.entries(s)){let m=rA(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await k(join(t,".agentsmesh")),await S(join(t,fu),JSON.stringify({mcpServers:a},null,2)),e.push({fromTool:_t,fromPath:r,toPath:fu,feature:"mcp"}));}var BS=g(()=>{E();wt();i(rA,"mapTomlServerToCanonical");i(WS,"importMcp");});function dl(t){let e=t.split("/").filter(Boolean);return e.length===0||e.some(n=>n.startsWith("."))?false:!e.join("/").startsWith("tests/e2e/fixtures/")}async function Wr(t){await rm$1(t,{recursive:true,force:true});}var Ri=g(()=>{i(dl,"shouldImportScopedAgentsRule");i(Wr,"removePathIfExists");});async function KS(t,e,r){let n={projectRoot:t,sourceSkillsDir:Te,destCanonicalSkillsDir:_i,targetName:_t,normalize:r,results:e};for(let o of [Te,xS]){let s=join(t,o),a=await readdir(s,{encoding:"utf8",withFileTypes:true}).catch(()=>null);if(a===null)continue;let l=false;for(let c of a){if(!c.isDirectory()&&!c.isSymbolicLink())continue;let m=join(s,c.name),u=join(m,"SKILL.md"),p=await y(u);if(!p)continue;l=true;let d=c.name,f=join(t,_i,d,"SKILL.md"),h=r(p,u,f),{frontmatter:C,body:R}=w(h),I=Bf(C,c.name);if(I){await Wr(join(t,_i,d));let x=join(t,du);await k(x);let P=join(x,`${I.name}.md`);await S(P,Kf(I,r(R,u,P))),e.push({fromTool:_t,fromPath:u,toPath:`${du}/${I.name}.md`,feature:"commands"});continue}let O=qr(C,c.name);if(O){await Wr(join(t,_i,d));let x=join(t,cs);await k(x);let P=join(x,`${O.name}.md`);await S(P,Ge(O,r(R,u,P))),e.push({fromTool:_t,fromPath:u,toPath:`${cs}/${O.name}.md`,feature:"agents"});continue}await rr(d,m,n);}if(l)return}}var HS=g(()=>{E();F();Ks();ee();Ri();qo();wt();i(KS,"importSkills");});async function zS(t,e,r){let n=join(t,co),o=join(t,cs);try{let a=(await b(n)).filter(l=>l.endsWith(".toml"));for(let l of a){let c=await y(l);if(!c)continue;let m=parse$1(c);if(!m||typeof m!="object")continue;let u=typeof m.name=="string"?m.name:basename(l,".toml"),p=typeof m.description=="string"?m.description:"",d=typeof m.developer_instructions=="string"?m.developer_instructions.trim():"",f=typeof m.model=="string"?m.model:"",h=typeof m.sandbox_mode=="string"?m.sandbox_mode:"",C=h==="read-only"?"read-only":h==="workspace-write"?"allow":"",R=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(A=>typeof A=="string"):[];await k(o);let I=join(o,`${u}.md`),O=r(d,l,I),P=Ge({name:u,description:p,tools:[],disallowedTools:[],model:f,permissionMode:C,maxTurns:0,mcpServers:R,hooks:{},skills:[],memory:""},O);await S(I,P),e.push({fromTool:_t,fromPath:l,toPath:`${cs}/${u}.md`,feature:"agents"});}}catch{}}var VS=g(()=>{E();ee();wt();i(zS,"importCodexAgentsFromToml");});function JS(t){if(!t.includes(bS))return null;let e=t.split(`
|
|
108
|
+
`).find(c=>c.startsWith(gu));if(!e)return null;let r;try{r=JSON.parse(e.slice(gu.length));}catch{return null}if(!r||typeof r!="object")return null;let n=r,o=typeof n.description=="string"?n.description:"",s=Array.isArray(n.globs)?n.globs.filter(c=>typeof c=="string"):[],a=[],l=false;for(let c of t.split(`
|
|
109
|
+
`)){let m=c.trimEnd();if(m===AS){l=true;continue}if(m===TS){l=false;continue}l&&m.startsWith(hu)&&a.push(m.slice(hu.length));}if(a.length===0)return null;try{let c=Buffer.from(a.join(""),"base64").toString("utf8");return {meta:{description:o,globs:s},body:c}}catch{return null}}var YS=g(()=>{wt();i(JS,"tryParseEmbeddedCanonicalFromCodexRules");});async function ZS(t,e,r){let n=[],o=join(t,ur);try{let s=await b(o),a=s.filter(c=>c.endsWith(".md"));for(let c of a){let m=await y(c);if(!m)continue;let u=relative(o,c).replace(/\\/g,"/"),p=join(e,u),{frontmatter:d,body:f}=w(r(m,c,p));await k(e);let h=d.root===!0?d:{...d,root:!1},C=await $(p,h,f);await S(p,C),n.push({fromTool:_t,fromPath:c,toPath:`${Ur}/${u}`,feature:"rules"});}let l=s.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await y(c);if(!m)continue;let u=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),p=join(e,u);await k(e);let d=JS(m);if(d){let f=await $(p,{description:d.meta.description,globs:d.meta.globs,root:!1},r(d.body,c,p));await S(p,f);}else {let f=await $(p,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,p));await S(p,f);}n.push({fromTool:_t,fromPath:c,toPath:`${Ur}/${u}`,feature:"rules"});}}catch{}return n}var qS=g(()=>{E();F();V();wt();YS();i(ZS,"importCodexNonRootRuleFiles");});async function t_(t,e,r,n,o){let s=join(t,ES),a=join(t,jr),l=join(t,PS),c=join(t,ao),m=o==="global"?await y(l):null,u=o==="global"?await y(c):null,p=o==="project"?await y(a):null,d=o==="project"?await y(s):null,f=m!==null?l:u!==null?c:p!==null?a:s,h=join(t,Ur),C=m??u??p??d;if(C!==null){await k(h);let R=join(h,"_root.md"),I=f===a||f===c||f===l?DS(C):C,O=await er({content:I,projectRoot:t,rulesDir:Ur,sourcePath:f,fromTool:"codex-cli",normalize:r});e.push(...O.results);let x=r(f===a||f===c||f===l?n(O.rootContent,f,R):O.rootContent,f,R),{frontmatter:P,body:A}=w(x),K=P.root===true?P:{...P,root:true},M=await $(R,K,A);await S(R,M),e.push({fromTool:"codex-cli",fromPath:f,toPath:`${Ur}/_root.md`,feature:"rules"});}await mA(t,h,e,r),e.push(...await ZS(t,h,r)),o!=="global"&&e.push(...await U({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:i(async({srcPath:R,normalizeTo:I})=>{let O=relative(t,dirname(R)).replace(/\\/g,"/"),x=basename(R),P=x==="AGENTS.override.md";if(!O||O==="."||!P&&x!=="AGENTS.md")return null;let A=O.replace(/\//g,"-");if(!dl(O))return await Wr(join(h,`${A}.md`)),null;let K=join(h,`${A}.md`),{frontmatter:M,body:B}=w(I(K));return {destPath:K,toPath:`${Ur}/${A}.md`,feature:"rules",content:await $(K,{...M,root:false,globs:[`${O}/**`],...P?{codex_instruction:"override"}:{}},B)}},"mapEntry")}));}async function mA(t,e,r,n){try{let s=(await b(join(t,lo))).filter(l=>l.endsWith(".md")),a=join(t,lo);for(let l of s){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await y(l);if(!m)continue;let u=join(e,c),{frontmatter:p,body:d}=w(n(m,l,u));await k(e);let f=p.root===!0?p:{...p,root:!1},h=await $(u,f,d);await S(u,h),r.push({fromTool:_t,fromPath:l,toPath:`${Ur}/${c}`,feature:"rules"});}}catch{}}var e_=g(()=>{E();F();V();Xo();pt();Ri();wt();qS();pl();i(t_,"importCodexRules");i(mA,"importInstructionMirrors");});async function fl(t,e){let r=e?.scope??"project",n=[],o=await J(_t,t,r),s=await J("windsurf",t,r);return await t_(t,n,o,s,r),await KS(t,n,o),await zS(t,n,o),await WS(t,n),n}var bu=g(()=>{Ft();wt();BS();HS();VS();e_();i(fl,"importFromCodex");});function r_(t,e,r){let{rules:n}=t;return n.length===0?[]:n.some(s=>s.root)?[]:[{level:"warning",file:relative(e,n[0].source),target:_t,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var n_=g(()=>{wt();i(r_,"lintRules");});function o_(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(tt(".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(tt(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return e}var s_=g(()=>{nr();i(o_,"lintMcp");});function i_(t){return Ci(t)}var a_=g(()=>{pl();i(i_,"codexAdvisoryInstructionPath");});var pA,dA,fA,gA,c_,m_=g(()=>{US();wt();bu();n_();s_();Ht();xo();a_();Ks();pA={name:"codex-cli",primaryRootInstructionPath:jr,generateRules:_u,generateCommands:ku,generateAgents:wu,generateSkills:Ru,generateMcp:Ou,importFrom:fl},dA={rootInstructionPath:jr,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${ur}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return i_(e)},commandPath(t,e){return Po(e,"codex-cli")?`${Te}/${Lo(t)}/SKILL.md`:null},agentPath(t,e){return `${co}/${t}.toml`}}},fA={rootInstructionPath:ao,renderPrimaryRootInstruction:Cu,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${ur}/${e}.rules`]},skillDir:Te,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[ao,".codex/config.toml"]},rewriteGeneratedPath(t){return t===jr?ao:t.startsWith(`${lo}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${ur}/${t}.rules`:ao},commandPath(t,e){return Po(e,"codex-cli")?`${Te}/${Lo(t)}/SKILL.md`:null},agentPath(t,e){return `${co}/${t}.toml`}}},gA={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},c_={id:"codex-cli",generators:pA,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:r_,lint:{mcp:o_},project:dA,globalSupport:{capabilities:gA,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:fA},buildImportPaths:Lc,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"]};});var dr,Au,In,u_,ms,fr,us,ps,p_,Sn,Ne,ds,Tu,Lu,Nu,Du,Fu,vu,fs,gs,ki,gl,hl,yl,d_,xt=g(()=>{dr="windsurf",Au=".windsurfrules",In=".windsurf/rules",u_=".windsurfignore",ms=".codeiumignore",fr="AGENTS.md",us=".windsurf/hooks.json",ps=".windsurf/mcp_config.example.json",p_=".windsurf/mcp_config.json",Sn=".windsurf/workflows",Ne=".windsurf/skills",ds=".agentsmesh/rules",Tu=".agentsmesh/commands",Lu=".agentsmesh/agents",Nu=".agentsmesh/skills",Du=".agentsmesh/ignore",Fu=".agentsmesh/hooks.yaml",vu=".agentsmesh/mcp.json",fs=".codeium/windsurf/memories/global_rules.md",gs=".codeium/windsurf/skills",ki=".codeium/windsurf/global_workflows",gl=".codeium/windsurf/hooks.json",hl=".codeium/windsurf/mcp_config.json",yl=".codeium/.codeiumignore",d_=".agents/skills";});function yA(t){let e=basename(t,".md");return e==="_root"?"root":e}function IA(t){if(t.length===0)return null;let e=t.map(r=>r.split("/")[0]??"").filter(r=>/^[A-Za-z0-9._-]+$/.test(r));return e.length!==t.length?null:e.every(r=>r===e[0])?e[0]:null}function $u(t){let e=[],r=t.rules.find(n=>n.root);if(!r)return [];e.push({path:fr,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=yA(n.source),s=n.trigger||(n.globs.length>0?"glob":void 0),a={description:n.description||void 0,trigger:s,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()||"";e.push({path:`${In}/${o}.md`,content:l});let c=IA(n.globs);c&&(c!==o&&e.push({path:`${In}/${c}.md`,content:l}),e.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return e}var f_=g(()=>{F();xt();i(yA,"ruleSlug");i(IA,"directoryScopedRuleDir");i($u,"generateRules");});function Mu(t){return !t.ignore||t.ignore.length===0?[]:[{path:ms,content:t.ignore.join(`
|
|
110
|
+
`)}]}var g_=g(()=>{xt();i(Mu,"generateIgnore");});function Gu(t){return t.commands.map(e=>{let r={description:e.description.trim()||void 0,allowedTools:e.allowedTools.length>0?e.allowedTools:void 0};Object.keys(r).forEach(o=>{r[o]===void 0&&delete r[o];});let n=Object.keys(r).length>0?D(r,e.body.trim()||""):e.body.trim();return {path:`${Sn}/${e.name}.md`,content:n}})}var h_=g(()=>{F();xt();i(Gu,"generateCommands");});function ju(t){return t.agents.map(e=>({path:`${Ne}/${Lt(e.name)}/SKILL.md`,content:da(e)}))}var y_=g(()=>{ee();xt();i(ju,"generateAgents");});function Uu(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:ps,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var I_=g(()=>{xt();i(Uu,"generateMcp");});function SA(t){let e={PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Notification:"notification",UserPromptSubmit:"user_prompt_submit",SubagentStart:"subagent_start",SubagentStop:"subagent_stop"};return e[t]?e[t]:t.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[-\s]+/g,"_").toLowerCase()}function _A(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!$e(s))continue;let a=mt(s),l=Ot(s),c=s.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(e[SA(r)]=o);}return e}function Wu(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=_A(t.hooks);return Object.keys(e).length===0?[]:[{path:us,content:JSON.stringify({hooks:e},null,2)}]}var S_=g(()=>{fe();xt();i(SA,"windsurfEventName");i(_A,"toWindsurfHooks");i(Wu,"generateHooks");});function Bu(t){let e=[];for(let r of t.skills){let n={name:r.name,description:r.description||void 0};n.description===void 0&&delete n.description;let o=Object.keys(n).length>0?D(n,r.body.trim()||""):r.body.trim()||"";e.push({path:`${Ne}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles)e.push({path:`${Ne}/${r.name}/${s.relativePath}`,content:s.content});}return e}var __=g(()=>{F();xt();i(Bu,"generateSkills");});var C_=g(()=>{f_();g_();h_();y_();I_();S_();__();});var R_=g(()=>{C_();});function k_(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}async function w_(t,e,r){let n=join(t,Sn),s=(await b(n)).filter(l=>l.endsWith(".md")),a=join(t,Tu);for(let l of s){let c=await y(l);if(!c)continue;let m=relative(n,l).replace(/\\/g,"/");await k(a);let u=join(a,m),p=r(c,l,u),{frontmatter:d,body:f}=w(p),h=await st(u,{description:typeof d.description=="string"?d.description:"",hasDescription:Object.prototype.hasOwnProperty.call(d,"description"),allowedTools:(()=>{let C=k_(d.allowedTools);return C.length>0?C:k_(d["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(d,"allowedTools")||Object.prototype.hasOwnProperty.call(d,"allowed-tools")},f);await S(u,h),e.push({fromTool:dr,fromPath:l,toPath:`${Tu}/${m}`,feature:"commands"});}}var O_=g(()=>{E();F();V();xt();i(k_,"toStringArray");i(w_,"importWorkflows");});async function E_(t,e,r,n=Ne){let o=join(t,n),s=await dn(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:Nu,targetName:"windsurf",normalize:r,results:e};for(let[l,c]of s){let m=join(c,"SKILL.md"),u=await y(m);if(!u)continue;let p=w(u),d=qr(p.frontmatter,l);if(d){await Wr(join(t,Nu,l));let f=join(t,Lu);await k(f);let h=join(f,`${d.name}.md`);await S(h,Ge(d,r(p.body,m,h))),e.push({fromTool:"windsurf",fromPath:m,toPath:`${Lu}/${d.name}.md`,feature:"agents"});continue}await rr(l,c,a);}}var P_=g(()=>{E();F();ee();Ri();qo();xt();i(E_,"importSkills");});async function b_(t,e){let r=join(t,us),n=await y(r);if(n)try{let o=JSON.parse(n);if(!o.hooks||typeof o.hooks!="object"||Array.isArray(o.hooks))return;let s=wA(o.hooks);if(Object.keys(s).length===0)return;let a=join(t,Fu);await k(dirname(a)),await S(a,stringify(s)),e.push({fromTool:dr,fromPath:r,toPath:Fu,feature:"hooks"});}catch{}}function kA(t){return {pre_tool_use:"PreToolUse",post_tool_use:"PostToolUse",notification:"Notification",user_prompt_submit:"UserPromptSubmit",subagent_start:"SubagentStart",subagent_stop:"SubagentStop"}[t]??t}function wA(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=kA(r),s=[];for(let a of n){if(!a||typeof a!="object")continue;let l=a;if(typeof l.command=="string"&&l.command.trim()){s.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 u of m){if(!u||typeof u!="object")continue;let p=u,d=typeof p.command=="string"?p.command:typeof p.prompt=="string"?p.prompt:"";if(!d.trim())continue;let f={matcher:c,type:p.type==="prompt"?"prompt":"command",command:d};typeof p.timeout=="number"&&(f.timeout=p.timeout),s.push(f);}}s.length>0&&(e[o]=s);}return e}async function A_(t,e){let r=[ps,p_];for(let n of r){let o=join(t,n),s=await y(o);if(s)try{let a=JSON.parse(s);if(!a.mcpServers||typeof a.mcpServers!="object")continue;let l=join(t,vu);await k(dirname(l)),await S(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),e.push({fromTool:dr,fromPath:o,toPath:vu,feature:"mcp"});return}catch{}}}var T_=g(()=>{E();xt();i(b_,"importWindsurfHooks");i(kA,"canonicalHookEventName");i(wA,"windsurfHooksToCanonical");i(A_,"importWindsurfMcp");});async function Sl(t,e){let r=e?.scope??"project",n=[],o=await J(dr,t),s=await J("codex-cli",t),a=join(t,ds),l=join(t,Au),c=await y(l);if(c!==null){await k(a);let d=join(a,"_root.md"),f=o(c,l,d).trim(),h=await $(d,{root:true},f);await S(d,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${ds}/_root.md`,feature:"rules"});}if(c===null){let d=join(t,fr),f=await y(d);if(f!==null){await k(a);let h=join(a,"_root.md"),C=o(s(f,d,h),d,h).trim(),R=await $(h,{root:true},C);await S(h,R),n.push({fromTool:"windsurf",fromPath:d,toPath:`${ds}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await U({srcDir:t,destDir:a,extensions:["AGENTS.md"],fromTool:"windsurf",normalize:o,mapEntry:i(async({srcPath:d,normalizeTo:f})=>{let h=relative(t,dirname(d)).replace(/\\/g,"/");if(!h||h==="."||basename(d)!=="AGENTS.md")return null;let C=h.replace(/\//g,"-");if(!dl(h))return await Wr(join(a,`${C}.md`)),null;let R=join(a,`${C}.md`);return {destPath:R,toPath:`${ds}/${C}.md`,feature:"rules",content:await $(R,{root:false,globs:[`${h}/**`]},f(R))}},"mapEntry")}));let m=join(t,In);n.push(...await U({srcDir:m,destDir:a,extensions:[".md"],fromTool:"windsurf",normalize:o,mapEntry:i(async({relativePath:d,normalizeTo:f})=>{if(d==="_root.md"&&c!==null)return null;let h=join(a,d),{frontmatter:C,body:R}=w(f(h)),I={...C};return typeof I.glob=="string"&&I.glob.trim()&&(I.globs=[I.glob],delete I.glob),{destPath:h,toPath:`${ds}/${d}`,feature:"rules",content:await $(h,{...I,root:false},R)}},"mapEntry")}));let u=join(t,u_),p=await y(u);if((p===null||!p.trim())&&(u=join(t,ms),p=await y(u)),p!==null&&p.trim()){let d=p.split(/\r?\n/),f=[];for(let h of d){let C=h.trim();C&&!C.startsWith("#")&&f.push(C);}if(f.length>0){await k(join(t,".agentsmesh"));let h=join(t,Du);await S(h,f.join(`
|
|
111
|
+
`)),n.push({fromTool:"windsurf",fromPath:u,toPath:Du,feature:"ignore"});}}return await w_(t,n,o),await E_(t,n,o),await b_(t,n),await A_(t,n),n}var Hu=g(()=>{Ft();E();F();V();pt();Ri();xt();O_();P_();T_();i(Sl,"importFromWindsurf");});function L_(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:dr,message:"Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule."}));let s=[];return t.permissions&&(t.permissions.allow.length>0||t.permissions.deny.length>0)&&s.push("permissions"),s.length>0&&n.push({level:"warning",file:".agentsmesh",target:dr,message:`Windsurf cannot project these features yet: ${s.join(", ")}.`}),n}var N_=g(()=>{xt();i(L_,"lintRules");});function D_(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>tt(e.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function F_(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[tt(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var v_=g(()=>{nr();i(D_,"lintCommands");i(F_,"lintMcp");});function bA(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 AA,TA,LA,NA,$_,M_=g(()=>{R_();bo();xt();Zr();Hu();N_();v_();Ht();xo();ee();i(bA,"directoryScopedRuleDir");AA={name:"windsurf",primaryRootInstructionPath:fr,generateRules:$u,generateCommands:Gu,generateAgents:ju,generateSkills:Bu,generateMcp:Uu,generateHooks:Wu,generateIgnore:Mu,importFrom:Sl},TA={rootInstructionPath:fr,extraRuleOutputPaths(t){if(t.root)return [fr];let e=bA(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:Ne,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 `${In}/${t}.md`},commandPath(t,e){return `${Sn}/${t}.md`},agentPath(t,e){return te(e,"windsurf")?`.windsurf/skills/${Lt(t)}/SKILL.md`:null}}},LA={rootInstructionPath:fs,skillDir:gs,managedOutputs:{dirs:[gs,ki,d_],files:[fs,gl,hl,yl]},rewriteGeneratedPath(t){return t===fr?fs:t.startsWith(`${In}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${Ne}/`)?t.replace(`${Ne}/`,`${gs}/`):t.startsWith(`${Sn}/`)?t.replace(`${Sn}/`,`${ki}/`):t===us?gl:t===ps?hl:t===ms?yl:t},mirrorGlobalPath(t,e){return Et(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return fs},commandPath(t,e){return `${ki}/${t}.md`},agentPath(t,e){return te(e,"windsurf")?`${gs}/${Lt(t)}/SKILL.md`:null}}},NA={rules:"native",additionalRules:"partial",commands:ge("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},$_={id:"windsurf",generators:AA,capabilities:{rules:"native",additionalRules:"native",commands:ge("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:L_,lint:{commands:D_,mcp:F_},project:TA,globalSupport:{capabilities:NA,detectionPaths:[fs,gs,ki,gl,hl,yl],layout:LA},buildImportPaths:am,detectionPaths:[".windsurfrules",".windsurf"]};});function G_(t){let e=t.rules.find(n=>n.root);if(!e)return [];let r=[{path:Ie,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:`${ye}/${o}.md`,content:n.body.trim()||""});}return r}function j_(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
112
|
+
|
|
113
|
+
${n}`:n||r;return {path:`${Ue}/${e.name}.md`,content:o}})}function U_(t){return ar(t,Ln)}function W_(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Js,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function B_(t){let e=t.rules.find(n=>n.root),r=t.rules.filter(n=>n.root?false:n.targets.length===0||n.targets.includes("antigravity"));return Ee(e?.body.trim()??"",r)}var K_=g(()=>{Ae();pn();Fo();i(G_,"generateRules");i(j_,"generateCommands");i(U_,"generateSkills");i(W_,"generateMcp");i(B_,"renderAntigravityGlobalInstructions");});async function FA(t,e,r,n){let o=n==="global"?join(t,We):join(t,Ie),s=join(t,Vs),a=o,l=await y(o);if(n==="project"&&l===null&&(a=s,l=await y(s)),l===null)return;let c=join(t,Rc),m=await er({content:l,projectRoot:t,rulesDir:Ys,sourcePath:a,fromTool:je,normalize:r});e.push(...m.results);let{body:u}=w(r(m.rootContent,a,c)),p=await $(c,{root:true},u);await k(join(t,Ys)),await S(c,p),e.push({fromTool:je,fromPath:a,toPath:Rc,feature:"rules"});}async function vA(t,e,r){let n=join(t,ye),o=join(t,Ys);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:je,normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{if(basename(s)==="general.md"||basename(s)==="_root.md")return null;let l=join(o,s),{frontmatter:c,body:m}=w(a(l)),u=await $(l,{root:false,description:typeof c.description=="string"?c.description:void 0,globs:Array.isArray(c.globs)?c.globs:void 0},m);return {destPath:l,toPath:`${Ys}/${s}`,feature:"rules",content:u}},"mapEntry")}));}async function $A(t,e,r,n){let s=join(t,n==="global"?Do:Ue),a=join(t,kc);e.push(...await U({srcDir:s,destDir:a,extensions:[".md"],fromTool:je,normalize:r,mapEntry:i(async({relativePath:l,normalizeTo:c})=>{let m=join(a,l),{frontmatter:u,body:p}=w(c(m)),d=await st(m,{hasDescription:typeof u.description=="string",description:typeof u.description=="string"?u.description:void 0,hasAllowedTools:false,allowedTools:[]},p);return {destPath:m,toPath:`${kc}/${l}`,feature:"commands",content:d}},"mapEntry")}));}async function MA(t,e){let r=join(t,Nn),n=await y(r);if(!n)return;let o;try{o=JSON.parse(n);}catch{return}if(!o||typeof o!="object"||!("mcpServers"in o))return;let s=join(t,wc);await k(join(t,".agentsmesh")),await S(s,n),e.push({fromTool:je,fromPath:r,toPath:wc,feature:"mcp"});}async function z_(t,e={}){let r=e.scope??"project",n=[],o=await J(je,t,r);return await FA(t,n,o,r),r==="project"?await vA(t,n,o):await MA(t,n),await $A(t,n,o,r),await lr(t,r==="global"?Rr:Ln,je,n,o),n}var V_=g(()=>{Ft();E();F();Ae();V();Xo();pt();Fo();i(FA,"importRootRule");i(vA,"importNonRootRules");i($A,"importWorkflows");i(MA,"importMcp");i(z_,"importFromAntigravity");});function J_(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:je}))}var Y_=g(()=>{he();Fo();i(J_,"lintRules");});var GA,jA,UA,WA,X_,Z_=g(()=>{bo();K_();Fo();V_();Y_();Ht();GA={name:"antigravity",primaryRootInstructionPath:Ie,generateRules:G_,generateCommands:j_,generateSkills:U_,generateMcp:W_,importFrom:z_},jA={rootInstructionPath:Ie,skillDir:".agents/skills",rewriteGeneratedPath(t){return t===Js?null:t},paths:{rulePath(t,e){return `${ye}/${t}.md`},commandPath(t,e){return `${Ue}/${t}.md`},agentPath(t,e){return null}}},UA={rootInstructionPath:We,renderPrimaryRootInstruction:B_,skillDir:Rr,managedOutputs:{dirs:[Rr,Do],files:[We,Nn]},rewriteGeneratedPath(t){return t===Ie?We:t.startsWith(`${ye}/`)?null:t.startsWith(".agents/skills/")?t.replace(".agents/skills",Rr):t.startsWith(`${Ue}/`)?t.replace(Ue,Do):t===Js?Nn:t},paths:{rulePath(t,e){return We},commandPath(t,e){return `${Do}/${t}.md`},agentPath(t,e){return null}}},WA={rules:"native",additionalRules:"embedded",commands:ge("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},X_={id:"antigravity",generators:GA,capabilities:{rules:"native",additionalRules:"native",commands:ge("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/).",lintRules:J_,project:jA,globalSupport:{capabilities:WA,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:UA},buildImportPaths:Oc,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"]};});function Q_(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:ie,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Nt))continue;let o=basename(n.source,".md");e.push({path:`${Ze}/${o}.md`,content:n.body.trim()||""});}return e}function tC(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${qe}/${e.name}.md`,content:D(r,e.body.trim()||"")}})}function eC(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Ho,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function rC(t){return t.ignore.length===0?[]:[{path:zo,content:t.ignore.join(`
|
|
114
|
+
`)}]}function nC(t){return ar(t,Qe)}function oC(t){if(t.agents.length===0)return [];let e=t.agents.map(r=>{let o={slug:basename(r.source,".md"),name:r.name};return r.description&&(o.description=r.description),r.body.trim()&&(o.roleDefinition=r.body.trim()),o});return [{path:Vo,content:stringify({customModes:e})}]}var sC=g(()=>{Ae();F();qn();i(Q_,"generateRules");i(tC,"generateCommands");i(eC,"generateMcp");i(rC,"generateIgnore");i(nC,"generateSkills");i(oC,"generateAgents");});function KA(t){let r=JSON.parse(t).mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,s]of Object.entries(r)){if(!s||typeof s!="object"||Array.isArray(s))continue;let a=s;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:Lr(a.args),env:Dt(a.env),description:typeof a.description=="string"?a.description:void 0};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:Dt(a.headers),env:Dt(a.env),description:typeof a.description=="string"?a.description:void 0});}return n}async function iC(t,e,r){let n=join(t,qe),o=join(t,nm);e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:Nt,normalize:r,mapEntry:i(async({relativePath:s,normalizeTo:a})=>{let l=join(o,s),{frontmatter:c,body:m}=w(a(l)),u=await st(l,{hasDescription:true,description:typeof c.description=="string"?c.description:void 0,hasAllowedTools:false,allowedTools:[]},m);return {destPath:l,toPath:`${nm}/${s}`,feature:"commands",content:u}},"mapEntry")}));}async function aC(t,e,r){let n=r==="global"?join(t,un):join(t,Ho),o=await y(n);if(o===null)return;let s=KA(o);Object.keys(s).length!==0&&(await S(join(t,om),JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:Nt,fromPath:n,toPath:om,feature:"mcp"}));}async function lC(t,e){let r=join(t,zo),n=await y(r);n!==null&&(await S(join(t,sm),n.trimEnd()),e.push({fromTool:Nt,fromPath:r,toPath:sm,feature:"ignore"}));}var cC=g(()=>{E();F();V();pt();Pe();qn();i(KA,"readMcpServers");i(iC,"importRooCommands");i(aC,"importRooMcp");i(lC,"importRooIgnore");});async function zA(t,e,r,n){let o=join(t,rm),s=n==="global"?[br,ie,si]:[ie,si];for(let a of s){let l=join(t,a),c=await y(l);if(c===null)continue;let{frontmatter:m,body:u}=w(r(c,l,o)),p=await $(o,{root:true,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},u);await S(o,p),e.push({fromTool:Nt,fromPath:l,toPath:rm,feature:"rules"});return}}async function VA(t,e,r){let n=join(t,Ze),o=join(t,ai),s="00-root.md";e.push(...await U({srcDir:n,destDir:o,extensions:[".md"],fromTool:Nt,normalize:r,mapEntry:i(async({relativePath:a,normalizeTo:l})=>{if(a===s)return null;let c=join(o,a),{frontmatter:m,body:u}=w(l(c)),p=await $(c,{root:false,description:typeof m.description=="string"?m.description:void 0,globs:Array.isArray(m.globs)?m.globs:void 0},u);return {destPath:c,toPath:`${ai}/${a}`,feature:"rules",content:p}},"mapEntry")}));}async function JA(t,e,r){let n=join(t,Yn),o;try{o=await readdir(n,{withFileTypes:!0});}catch{return}let s=o.filter(a=>a.isDirectory()&&a.name.startsWith("rules-")).map(a=>a.name);for(let a of s){let l=join(n,a),c=join(t,ai);e.push(...await U({srcDir:l,destDir:c,extensions:[".md"],fromTool:Nt,normalize:r,mapEntry:i(async({relativePath:m,normalizeTo:u})=>{let p=join(c,m),{frontmatter:d,body:f}=w(u(p)),h=await $(p,{root:false,description:typeof d.description=="string"?d.description:void 0,globs:Array.isArray(d.globs)?d.globs:void 0},f);return {destPath:p,toPath:`${ai}/${m}`,feature:"rules",content:h}},"mapEntry")}));}}async function mC(t,e={}){let r=e.scope??"project",n=[],o=await J(Nt,t,r);return await zA(t,n,o,r),await VA(t,n,o),await JA(t,n,o),await iC(t,n,o),await lr(t,Qe,Nt,n,o),await aC(t,n,r),await lC(t,n),n}var uC=g(()=>{Ft();E();F();Ae();V();pt();cC();qn();i(zA,"importRootRule");i(VA,"importNonRootRules");i(JA,"importPerModeRules");i(mC,"importFromRooCode");});function pC(t,e,r,n){return ct(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Nt}))}var dC=g(()=>{he();qn();i(pC,"lintRules");});function tT(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var qA,QA,eT,rT,nT,fC,gC=g(()=>{E();sC();qn();Zr();uC();dC();Ht();qA={name:"roo-code",primaryRootInstructionPath:ie,generateRules:Q_,generateCommands:tC,generateSkills:nC,generateMcp:eC,generateIgnore:rC,generateAgents:oC,importFrom:mC},QA={rootInstructionPath:ie,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",Vo]},paths:{rulePath(t,e){return `${Ze}/${t}.md`},commandPath(t,e){return `${qe}/${t}.md`},agentPath(t,e){return null}}};i(tT,"computeStatus");eT=i(async(t,e,r,n)=>{if(r!=="global")return [];if(!n.has("agents")||t.agents.length===0)return [];let o=t.agents.map(l=>{let m={slug:basename(l.source,".md"),name:l.name};return l.description&&(m.description=l.description),l.body.trim()&&(m.roleDefinition=l.body.trim()),m}),s=stringify({customModes:o}),a=await y(join(e,ii));return [{target:"roo-code",path:ii,content:s,currentContent:a??void 0,status:tT(a,s)}]},"generateRooGlobalExtras"),rT={rootInstructionPath:br,skillDir:xr,managedOutputs:{dirs:[Xn,Zn,xr,fg],files:[br,un,Pa,ii]},rewriteGeneratedPath(t){return t===ie?br:t===Vo?null:t.startsWith(`${Ze}/`)?t.replace(`${Ze}/`,`${Xn}/`):t.startsWith(`${qe}/`)?t.replace(`${qe}/`,`${Zn}/`):t.startsWith(`${Qe}/`)?t.replace(`${Qe}/`,`${xr}/`):t===Ho?un:t===zo?Pa:t},mirrorGlobalPath(t,e){return Et(t,xr,e)},paths:{rulePath(t,e){return `${Xn}/${t}.md`},commandPath(t,e){return `${Zn}/${t}.md`},agentPath(t,e){return null}}},nT={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},fC={id:"roo-code",generators:qA,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:pC,project:QA,globalSupport:{capabilities:nT,detectionPaths:[Xn,Zn,xr,un,Pa,br,ii],layout:rT,scopeExtras:eT},buildImportPaths:im,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",Vo]};});var Vf={};eO(Vf,{BUILTIN_TARGETS:()=>Tt,TARGET_IDS:()=>ht,getBuiltinTargetDefinition:()=>Mt,getEffectiveTargetSupportLevel:()=>_l,getTargetCapabilities:()=>yn,getTargetDetectionPaths:()=>Vu,getTargetLayout:()=>ft,getTargetManagedOutputs:()=>Ju,getTargetPrimaryRootInstructionPath:()=>sT,getTargetSkillDir:()=>Oi,isBuiltinTargetId:()=>wn,resolveTargetFeatureGenerator:()=>hs,rewriteGeneratedOutputPath:()=>Yu});function oT(){return zu||(hf(Tt),zu=new Map(Tt.map(t=>[t.id,t]))),zu}function Mt(t){return oT().get(t)}function yn(t,e="project"){let r=Mt(t)??et(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return ff(n)}function Vu(t,e="project"){let r=Mt(t)??et(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function ft(t,e="project"){let r=Mt(t)??et(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function sT(t,e="project"){return ft(t,e)?.rootInstructionPath}function Oi(t,e="project"){return ft(t,e)?.skillDir}function Ju(t,e="project"){return ft(t,e)?.managedOutputs}function Yu(t,e,r="project"){let n=ft(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function _l(t,e,r,n="project"){let o=yn(t,n)?.[e]?.level??"none";if(o!=="embedded")return o;let s=Mt(t)??et(t);return e==="commands"&&s?.supportsConversion?.commands?Po(r,t,true,n)?"embedded":"none":e==="agents"&&s?.supportsConversion?.agents?te(r,t,true,n)?"embedded":"none":o}function hs(t,e,r,n="project"){let o=Mt(t)??et(t),s=o?.generators;if(s)switch(e){case "rules":return s.generateRules;case "additionalRules":return;case "commands":return r&&o?.supportsConversion?.commands&&!Po(r,t,true,n)?void 0:s.generateCommands;case "agents":return r&&o?.supportsConversion?.agents&&!te(r,t,true,n)?void 0:s.generateAgents;case "skills":return s.generateSkills;case "mcp":return s.generateMcp;case "permissions":return s.generatePermissions;case "hooks":return s.generateHooks;case "ignore":return s.generateIgnore}}var Tt,zu,ot=g(()=>{xo();bo();Kr();fc();yr();_g();hh();qh();_y();jy();cI();ZI();OS();m_();M_();Z_();gC();Tt=[Sg,gh,Zh,Sy,Gy,lI,XI,wS,c_,$_,X_,fC];i(oT,"builtinTargetsMap");i(Mt,"getBuiltinTargetDefinition");i(yn,"getTargetCapabilities");i(Vu,"getTargetDetectionPaths");i(ft,"getTargetLayout");i(sT,"getTargetPrimaryRootInstructionPath");i(Oi,"getTargetSkillDir");i(Ju,"getTargetManagedOutputs");i(Yu,"rewriteGeneratedOutputPath");i(_l,"getEffectiveTargetSupportLevel");i(hs,"resolveTargetFeatureGenerator");});function pT(t){return typeof t=="string"?t:t.level}function hC(t){return uT.includes(t)}function yC(t,e,r,n){for(let o of mT){let s=pT(e[o.feature]);if(s==="none")continue;let a=typeof t.generators[o.generator]=="function",l=hC(o.feature)&&typeof t.emitScopedSettings=="function";a||l||r.addIssue({code:"custom",path:[...n,o.feature],message:`Capability "${o.feature}" is "${s}" but generators.${o.generator}`+(hC(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function Cl(t){return fT.parse(t)}var Hr,IC,iT,aT,SC,lT,cT,mT,uT,dT,fT,Xu=g(()=>{Hr=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()})]),IC=z$1.object({rules:Hr,additionalRules:Hr,commands:Hr,agents:Hr,skills:Hr,mcp:Hr,hooks:Hr,ignore:Hr,permissions:Hr}),iT=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(),aT=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),SC=z$1.object({paths:aT}).passthrough(),lT=z$1.object({capabilities:IC,detectionPaths:z$1.array(z$1.string()),layout:SC,scopeExtras:z$1.function().optional()}).passthrough(),cT=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],mT=[{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"}],uT=["mcp","hooks","ignore","permissions"];i(pT,"capabilityLevel");i(hC,"canUseScopedSettings");i(yC,"validateCapabilityImplementations");dT=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),generators:iT,capabilities:IC,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:SC,globalSupport:lT.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string())}).passthrough(),fT=dT.superRefine((t,e)=>{for(let r of cT)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});yC(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&yC(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});i(Cl,"validateDescriptor");});function gT(){return Zu||(Zu=new Map(Tt.map(t=>[t.id,t]))),Zu}function CC(t){let e=Cl(t);_C.set(e.id,e);}function et(t){return _C.get(t)??gT().get(t)}var _C,Zu,Kr=g(()=>{ot();Xu();_C=new Map;i(gT,"builtinDescriptors");i(CC,"registerTargetDescriptor");i(et,"getDescriptor");});async function RC(t,e,r="project"){let n=new Map,o=et(t);return o&&await o.buildImportPaths(n,e,r),n}var kC=g(()=>{Kr();i(RC,"buildImportReferenceMap");});function Y(t){return t.includes("\\")||De.test(t)?win32:posix}function X(t){return t.replace(/\\/g,"/")}function j(t,e){let r=Y(t),n=r.normalize(r===win32?e.replace(/\//g,"\\"):X(e));return n.endsWith(r.sep)&&n.length>1?n.slice(0,-1):n}function OC(t,e){return Y(t).isAbsolute(e)||De.test(e)}function ys(t){let e=t,r="";for(;yT.test(e);)r=e.at(-1)+r,e=e.slice(0,-1);return {candidate:e,suffix:r}}function EC(t,e){let r=Y(e),n=t.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==t?j(e,r.join(e,n)):null}var De,yT,Gt=g(()=>{De=/^[A-Za-z]:[\\/]/,yT=/[.!?:;]+$/;i(Y,"pathApi");i(X,"normalizeSeparators");i(j,"normalizeForProject");i(OC,"isAbsoluteForProject");i(ys,"stripTrailingPunctuation");i(EC,"rootFallbackPath");});function Fe(t){let e=X(t);return _T.some(r=>e.startsWith(r))}function RT(t){let e=X(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||De.test(e)||/^[a-zA-Z]:/.test(e)||Fe(e))return false;let r=e.split("/").filter(n=>n.length>0)[0];return r!==void 0&&CT.has(r)}function Ei(t,e,r){let n=Y(e),o=j(e,e),s=j(e,r),a=X(t);if(De.test(t)){let l=j(e,t);return n===win32||l.startsWith(`${o}${n.sep}`)?[l]:[l]}if(isAbsolute(t)){let l=j(e,t);return l.startsWith(o)||existsSync(t)?[l]:[j(e,n.join(e,t))]}if(a.startsWith("./")||a.startsWith("../")){let l=j(e,n.join(n.dirname(s),a)),c=EC(a,o);return c&&c!==l?[l,c]:[l]}if(Fe(a))return [j(e,n.join(o,a))];if(a.includes("/")){let l=j(e,n.join(o,".agentsmesh")),c=RT(a)?j(e,n.join(l,a)):null,m=j(e,n.join(o,a)),u=j(e,n.join(n.dirname(s),a));return c!==null?[c,m,u]:[m,u]}return kT.has(a)?[]:a.includes(".")?[j(e,n.join(n.dirname(s),a))]:[]}function Pi(t,e){let r=[e];if(!OC(t,e)||!existsSync(e))return r;try{let n=[realpathSync(e),realpathSync.native(e)];for(let o of n)o!==e&&!r.includes(o)&&r.push(o);}catch{}return r}function AC(t,e,r){let n=e>0?t.at(e-1):"",o=r<t.length?t.at(r):"";return n==="*"||o==="*"}function Rl(t){let e=[];for(let r of wT)for(let n of t.matchAll(r))e.push([n.index??0,(n.index??0)+n[0].length]);for(let r of t.matchAll(OT))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(ET))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(PT))e.push([r.index??0,(r.index??0)+r[0].length]);return e}var _T,CT,kT,wT,OT,ET,PT,bC,Is,Cn=g(()=>{Gt();_T=[".agentsmesh/",".claude/",".cursor/",".github/",".continue/",".junie/",".kiro/",".gemini/",".clinerules/",".cline/",".codex/",".agents/",".windsurf/",".roo/"];i(Fe,"isRootRelativePathToken");CT=new Set(["skills","rules","commands","agents","packs"]);i(RT,"isMeshRootRelativePathToken");kT=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),wT=[/\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],OT=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,ET=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,PT=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,bC=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,Is=/(?::(\d+)){1,2}$/;i(Ei,"resolveProjectPath");i(Pi,"expandResolvedPaths");i(AC,"isGlobAdjacent");i(Rl,"protectedRanges");});function bT(t){return t===void 0||t.role==="inline-code"||t.role==="bracketed"||t.role==="quoted"||t.role==="at-prefix"||t.role==="bracket-label"||t.role==="bare-prose"}function qu(t,e){let r=Y(t),n=j(t,t),o=j(t,e);if(o===n)return true;let s=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(s)}function TC(t){let e=Y(t);return j(t,e.join(t,".agentsmesh"))}function zr(t,e){let r=Y(t),n=TC(t),o=j(t,e);if(o===n)return true;let s=n.endsWith(r.sep)?n:`${n}${r.sep}`;return o.startsWith(s)}function LC(t,e,r){let n=Y(t),o=TC(t),s=j(t,e);if(!zr(t,s))return null;let a=n.relative(o,s).replace(/\\/g,"/");return a.startsWith("..")||a.length===0?null:r&&!a.endsWith("/")?`${a}/`:a}function Qu(t,e,r){let o=Y(t).relative(j(t,t),j(t,e)).replace(/\\/g,"/");if(o.startsWith(".."))return null;let s=o.length>0?o:".";return r&&!s.endsWith("/")?`${s}/`:s}function NC(t,e,r){return !bT(r.tokenContext)||r.originalToken===void 0?false:X(r.originalToken).startsWith(".agentsmesh/")}function Ss(t,e,r){let n=Qu(t,e,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function tp(t,e,r,n,o){let s=Y(t),a=j(t,t),l=j(t,e),c=j(t,r);if(!qu(t,c))return Ss(t,c,n)?.text??null;let m=j(t,dirname(l));if(!qu(t,m)&&m!==a)return Ss(t,c,n)?.text??null;let u=s.relative(m,c).replace(/\\/g,"/");if(s.isAbsolute(u)||De.test(u))return Qu(t,c,n);let p=j(t,s.join(m,u));return qu(t,p)?(u===""||u==="."?u=".":o.explicitCurrentDirLinks===true&&m!==a&&!u.startsWith("../")&&!u.startsWith("./")&&(u=`./${u}`),n&&!u.endsWith("/")?`${u}/`:u):Qu(t,c,n)}var ep=g(()=>{Gt();i(bT,"isReadingContext");i(qu,"isUnderProjectRoot");i(TC,"agentsMeshRoot");i(zr,"isUnderAgentsMesh");i(LC,"toAgentsMeshRootRelative");i(Qu,"toProjectRootRelative");i(NC,"shouldPreserveAgentsMeshAnchor");i(Ss,"toProjectRootReference");i(tp,"formatLinkPathForDestinationLegacy");});function DC(t,e,r,n,o={}){let s=o.scope??"project",a=j(t,r);if(NC(t,e,o))return X(o.originalToken??"");if(o.forceRelative)return tp(t,e,r,n,o);if(s==="global"&&!zr(t,e))return Ss(t,a,n)?.text??null;let l=(()=>{if(zr(t,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&zr(t,j(t,m))?j(t,m):null})();if(!l)return Ss(t,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=LC(t,l,n);return m!==null?m:Ss(t,l,n)?.text??null}return tp(t,e,r,n,o)}var FC=g(()=>{Cn();Gt();ep();ep();i(DC,"formatLinkPathForDestination");});function vC(t,e,r,n){let o=Y(e),s=X(t);if(!Fe(s))return null;let a=s.split("/").filter(m=>m.length>0);if(a.length<3)return null;let l=j(e,r),c=o.dirname(l);for(let m=1;m<=a.length-1;m++){let u=a.slice(m).join("/"),p=j(e,o.join(c,u));if(p!==l&&n(p))return p}return null}var $C=g(()=>{Gt();Cn();i(vC,"resolveByDestinationSuffixStrip");});function MC(t){let e=null,r=false,n=null,o=null,s=null;for(let c of Ei(t.candidate,t.projectRoot,t.sourceFile)){let m=null,u=null;for(let p of Pi(t.projectRoot,c)){let d=j(t.projectRoot,p),f=j(t.projectRoot,t.translatePath(d)),h=t.pathExists(d),C=t.pathExists(f);if(C&&f!==d){e=f,n=d,r=true;break}(h||C)&&m===null&&(m=f,u=d),e===null&&(e=f);}if(!r&&m!==null&&o===null&&(o=m,s=u),r)break}if(!r){let c=vC(t.candidate,t.projectRoot,t.destinationFile,t.pathExists);c!==null&&(e=c,r=true);}!r&&o!==null&&(e=o,s!==null&&(n=s),r=true);let a=X(t.destinationFile),l=a.includes("/.agentsmesh/")||a.startsWith(".agentsmesh/");return !r&&e!==null&&X(t.rawToken).startsWith(".agentsmesh/")&&l&&(r=true),{translatedPath:e,resolvedBeforeTranslate:n,matchedPath:r}}var GC=g(()=>{Gt();Cn();$C();i(MC,"resolveLinkTarget");});function jC(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}function UC(t,e,r){if(e<=0||t[e-1]!=="(")return false;let n=e+r.length,o=t[n];return o!==")"&&o!=="#"&&o!=="?"&&o!==" "&&o!==" "?false:t[e-2]==="]"}function WC(t){let e=X(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||De.test(e)||Fe(e)?false:e.includes("/")}var BC=g(()=>{Gt();Cn();i(jC,"isTildeHomeRelativePathToken");i(UC,"isMarkdownLinkDestinationToken");i(WC,"isRelativePathToken");});function AT(t,e,r){let n=e+r.length;if(t[n]!=="]"||t[n+1]!=="(")return false;let o=n+2,s="";for(;o<t.length;){let a=t[o];if(a===")"||a==="#"||a==="?"||a===" "||a===" "||a===`
|
|
115
|
+
`)break;s+=a,o++;}return s===r}function KC(t,e,r){let n=t.lastIndexOf(`
|
|
139
116
|
`,e-1)+1,o=t.slice(n,e);if(!/^\s*\[[^\]\n]+\]:\s*<?\s*$/.test(o))return false;let s=r<t.length?t[r]:"";return s===""||s===`
|
|
140
|
-
`||s==="\r"||s===">"||s===" "||s===" "||s==='"'||s==="'"||s===":"||s==="#"||s==="?"}i(Xy,"isMarkdownReferenceDefinitionDestination");function Zy(t,e,r){let n=e>0?t[e-1]:"",o=r<t.length?t[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:Xy(t,e,r)?{role:"markdown-link-dest"}:n==="<"&&o===">"?{role:"bracketed"}:n==="'"&&o==="'"||n==='"'&&o==='"'?{role:"quoted"}:n==="@"?{role:"at-prefix"}:n==="("&&t[e-2]==="]"?{role:"markdown-link-dest"}:n==="["&&o==="]"?{role:"bracket-label"}:{role:"bare-prose"}}i(Zy,"getTokenContext");function qy(t,e,r,n,o){if(e<0||r>t.length)return false;let{candidate:s}=No(n),a=s.replace(Do,""),l=H(a),c=e+a.length,m=t[e-1],u=t[r];return Xy(t,e,c)||m==="'"&&u==="'"||m==='"'&&u==='"'||m==="`"&&u==="`"||m==="<"&&u===">"?true:m==="["&&u==="]"?!(!o&&!fe(l)&&sP(t,e,n)):m==="@"?true:m==="("?u===")"||u==="#"||u==="?"||u===" "||u===" ":o?fe(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}i(qy,"shouldRewritePathToken");function Ta(t){let e=new Set,r=ba(t.content);return {content:t.content.replace(Gy,(o,s,a)=>{if(r.some(([it,xt])=>s>=it&&s<xt)||!qy(a,s,s+o.length,o,t.rewriteBarePathTokens===true)||Vy(a,s,o)||jy(a,s,s+o.length))return o;let{candidate:l,suffix:c}=No(o);if(!l)return o;let m=Do.exec(l),u=m?l.slice(0,m.index):l,p=m?m[0]:"";if(!u)return o;let d=Zy(a,s,s+u.length);if(d.role!=="markdown-link-dest"&&de.test(u))return o;let{translatedPath:f,resolvedBeforeTranslate:g,matchedPath:I}=zy({candidate:u,rawToken:l,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),S=g;if(!I||!f)return f&&e.add(f),o;let y=H(u),k=u.endsWith("/")||t.pathIsDirectory?.(f)===true;if(k&&!y.includes("/")&&!y.includes("\\"))return o;if(S===null){let it=H(l);if(it.startsWith("agentsmesh/")&&(it=`.${it}`),it.startsWith(".agentsmesh/")||it.includes("/.agentsmesh/")){let xt=st(t.projectRoot),li=$(t.projectRoot,t.projectRoot),vt=it.replace(/^\.\//,"");S=$(t.projectRoot,xt.join(li,vt));}}let E=st(t.projectRoot);if(t.scope==="global"){let it=H(l),xt=it.startsWith(".agentsmesh/")||it.includes("/.agentsmesh/"),li=fe(it)||Yy(it),vt=S!==null&&Ir(t.projectRoot,S),op=Ir(t.projectRoot,f);if(S===f&&!op&&!vt&&!xt){let sp=H(E.relative(t.projectRoot,$(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",cC=(S!==null?H(E.relative(t.projectRoot,S)):"").split("/").filter(Boolean)[0]??"";if(sp.length>0&&sp===cC)return o}if(!li&&!xt&&!vt&&!op)return o}let O=$(t.projectRoot,t.destinationFile),x=$(t.projectRoot,f),U=H(E.relative(t.projectRoot,O)),F=H(E.relative(t.projectRoot,x)),j=U.split("/").filter(Boolean)[0]??"",z=F.split("/").filter(Boolean)[0]??"",Ft=!H(u).startsWith(".agentsmesh/")&&!k&&j.length>0&&j===z&&j.startsWith(".")&&j!==".agentsmesh"||d.role==="markdown-link-dest"||Jy(a,s,u),et=Ky(t.projectRoot,t.destinationFile,f,u.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||Ft,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:k?null:S,forceRelative:Ft,tokenContext:d,originalToken:u});return et?`${et}${p}${c}`:o}),missing:[...e]}}i(Ta,"rewriteFileLinks");function tI(t){let e=[normalize(t)];if(!existsSync(t))return e;try{let r=[realpathSync(t),realpathSync.native(t)];for(let n of r){let o=normalize(n);e.includes(o)||e.push(o);}}catch{}return e}i(tI,"pathVariants");async function K(t,e,r="project"){let n=new Map,o=Array.from(new Set([t,...at]));for(let l of o){let c=await Ny(l,e,r);for(let[m,u]of c.entries())n.set(m,u);}let s=new Map;for(let[l,c]of n.entries()){let m=normalize(join(e,c));for(let u of tI(join(e,l)))s.set(u,m);}let a=new Set;for(let l of new Set(n.values())){let c=normalize(join(e,l));a.add(c);for(let m of tI(c))a.add(normalize(m));}return (l,c,m)=>Ta({content:l,projectRoot:e,sourceFile:c,destinationFile:m,translatePath:i(u=>s.get(u)??u,"translatePath"),pathExists:i(u=>{let p=normalize(u);return s.has(u)||s.has(p)||existsSync(u)||a.has(p)},"pathExists"),explicitCurrentDirLinks:false,rewriteBarePathTokens:true,scope:r,pathIsDirectory:i(u=>{try{return statSync(u).isDirectory()}catch{return false}},"pathIsDirectory")}).content}i(K,"createImportReferenceNormalizer");async function nI(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n));return {destPath:n,toPath:`${os}/${t}`,feature:"rules",content:await D(n,{...o,root:false},s)}}i(nI,"mapClaudeRuleFile");async function zm(t,e,r,n){let o=join(e,t),{frontmatter:s,body:a}=w(n(o));return {destPath:o,toPath:`${r==="commands"?wi:Oi}/${t}`,feature:r,content:r==="commands"?await q(o,{description:typeof s.description=="string"?s.description:void 0,hasDescription:Object.prototype.hasOwnProperty.call(s,"description"),allowedTools:(()=>{let c=or(s.allowedTools);return c.length>0?c:or(s["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(s,"allowedTools")||Object.prototype.hasOwnProperty.call(s,"allowed-tools")},a):await Tt(o,s,a)}}i(zm,"mapClaudeMarkdownFile");function oI(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!s||typeof s!="object")continue;let a=s,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let u=m.type==="prompt"?"prompt":"command";if(!he({...m,type:u}))continue;let p=u==="prompt"?ht(m)||ot(m):ot(m)||ht(m),d={matcher:l,type:u,command:p};typeof m.timeout=="number"&&(d.timeout=m.timeout),o.push(d);}}o.length>0&&(e[r]=o);}return e}i(oI,"claudeHooksToCanonical");async function sI(t,e){let r=join(t,Ye),n=await h(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 s=oI(o);if(Object.keys(s).length===0)return false;let a=stringify(s),l=join(t,qr);return await R(dirname(l)),await _(l,a),e.push({fromTool:"claude-code",fromPath:r,toPath:qr,feature:"hooks"}),true}i(sI,"importClaudeHooksJson");async function iI(t,e,r="project"){let n=join(t,r==="global"?ns:Yn),o=await h(n);if(o===null)return;let s;try{s=JSON.parse(o);}catch{return}if(s.mcpServers&&typeof s.mcpServers=="object"){let a=JSON.stringify({mcpServers:s.mcpServers},null,2),l=join(t,ss);await R(dirname(l)),await _(l,a),e.push({fromTool:"claude-code",fromPath:n,toPath:ss,feature:"mcp"});}}i(iI,"importMcpJson");async function aI(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(Ye)),n=join(t,rs),o=await h(n);if(!o)return;let s;try{s=JSON.parse(o);}catch{return}if(!e.some(m=>m.feature==="mcp")&&s.mcpServers&&typeof s.mcpServers=="object"){let m=JSON.stringify({mcpServers:s.mcpServers},null,2),u=join(t,ss);await R(dirname(u)),await _(u,m),e.push({fromTool:"claude-code",fromPath:n,toPath:ss,feature:"mcp"});}let l=s.permissions;if(l&&typeof l=="object"&&!Array.isArray(l)){let m=l,u=Array.isArray(m.allow)?m.allow.filter(f=>typeof f=="string"):[],p=Array.isArray(m.deny)?m.deny.filter(f=>typeof f=="string"):[],d=Array.isArray(m.ask)?m.ask.filter(f=>typeof f=="string"):[];if(u.length>0||p.length>0||d.length>0){let f=stringify({allow:u,deny:p,ask:d}),g=join(t,wl);await R(dirname(g)),await _(g,f),e.push({fromTool:"claude-code",fromPath:n,toPath:wl,feature:"permissions"});}}let c=s.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=oI(c);if(Object.keys(m).length>0){let u=stringify(m),p=join(t,qr);await R(dirname(p)),await _(p,u),e.push({fromTool:"claude-code",fromPath:n,toPath:qr,feature:"hooks"});}}}i(aI,"importSettings");async function cI(t,e,r){let n=join(t,es),o=join(t,kl),a=(await P(n)).filter(l=>l.endsWith("SKILL.md"));for(let l of a){let c=dirname(l),m=basename(c),u=join(o,m),p=await P(c);for(let d of p){let f=await h(d);if(f===null)continue;let g=relative(c,d),I=join(u,g);await R(dirname(I));let S=r(f,d,I),y=g==="SKILL.md"?w(S):null;await _(I,g==="SKILL.md"?await Le(I,y?.frontmatter??{},y?.body??""):S);let k=`${kl}/${m}/${g}`;e.push({fromTool:"claude-code",fromPath:d,toPath:k,feature:"skills"});}}}i(cI,"importClaudeSkills");async function Wi(t,e={}){let r=e.scope??"project",n=[],o=await K("claude-code",t,r);return await mP(t,n,o,r),await uP(t,n,o),await pP(t,n,o),await cI(t,n,o),await iI(t,n,r),await sI(t,n),await aI(t,n),await dP(t,n),n}i(Wi,"importFromClaudeCode");async function mP(t,e,r,n){let o=join(t,os),s=join(t,kr),a=await h(s),l=join(t,ld),c=n==="project"&&a===null?await h(l):null,m=a??c,u=a!==null?s:l;if(m!==null){await R(o);let d=join(o,"_root.md"),{frontmatter:f,body:g}=w(r(m,u,d)),S=f.root===true?f:{...f,root:true},y=await D(d,S,g);await _(d,y),e.push({fromTool:"claude-code",fromPath:u,toPath:`${os}/_root.md`,feature:"rules"});}let p=join(t,Si);e.push(...await M({srcDir:p,destDir:o,extensions:[".md"],fromTool:"claude-code",normalize:r,mapEntry:i(({relativePath:d,normalizeTo:f})=>nI(d,o,f),"mapEntry")}));}i(mP,"importRules");async function uP(t,e,r){let n=join(t,wi),o=join(t,Ci);e.push(...await M({srcDir:o,destDir:n,extensions:[".md"],fromTool:"claude-code",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>zm(s,n,"commands",a),"mapEntry")}));}i(uP,"importCommands");async function pP(t,e,r){let n=join(t,Oi),o=join(t,Ri);e.push(...await M({srcDir:o,destDir:n,extensions:[".md"],fromTool:"claude-code",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>zm(s,n,"agents",a),"mapEntry")}));}i(pP,"importAgents");async function dP(t,e){let r=join(t,ki),n=await h(r);if(n===null)return;let o=join(t,Ol);await R(dirname(o)),await _(o,n),e.push({fromTool:"claude-code",fromPath:r,toPath:Ol,feature:"ignore"});}i(dP,"importIgnore");var fP={"claude-code":Wi,cursor:ea,copilot:sa,"gemini-cli":ya,"codex-cli":ka,windsurf:xa,cline:Sa,continue:ia,junie:la,kiro:ca};async function Hs(t,e){let r=fP[e];if(!r)throw new Error(`No importer registered for native target: ${e}`);return r(t)}i(Hs,"importNativeToCanonical");var Ym="SKILL.md";async function bn(t){if(!await T(t))return false;if(await T(join(t,Ym)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await T(join(t,r.name,Ym)))return !0}catch{return false}return false}i(bn,"isSkillPackLayout");async function zs(t){if(!await T(t))return [];if(await T(join(t,Ym))){let e=await Jp(t);return e?[e]:[]}return zn(t)}i(zs,"loadSkillsAtExtendPath");function IP(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(IP,"emptyCanonical");function _P(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}i(_P,"isCanonicalSliceEmpty");async function Na(t){if(!await T(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),s=basename(t).replace(/\.md$/i,"");if(n==="rules")return {sliceRoot:r,implicitPick:{rules:[s]}};if(n==="commands")return {sliceRoot:r,implicitPick:{commands:[s]}};if(n==="agents")return {sliceRoot:r,implicitPick:{agents:[s]}};throw new Error(`Single-file install only supports .md files under rules/, commands/, or agents/. Got: ${t}`)}i(Na,"normalizeSlicePath");async function SP(t){if(basename(t)==="rules")return Vr(t);let r=join(t,"rules");return await T(r)?Vr(r):[]}i(SP,"parseRulesAt");async function CP(t){if(basename(t)==="commands")return Jr(t);let r=join(t,"commands");return await T(r)?Jr(r):[]}i(CP,"parseCommandsAt");async function RP(t){if(basename(t)==="agents")return Xr(t);let r=join(t,"agents");return await T(r)?Xr(r):[]}i(RP,"parseAgentsAt");async function kP(t){if(await bn(t))return zs(t);let e=join(t,"skills");return await bn(e)?zs(e):[]}i(kP,"loadSkillsForPartialSlice");async function Da(t){let e=join(t,".agentsmesh");if(await T(e))return Zr(t);let r=IP();if(r.rules=await SP(t),r.commands=await CP(t),r.agents=await RP(t),r.skills=await kP(t),_P(r))throw new Error(`No installable resources at ${t}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md).`);return r}i(Da,"loadCanonicalSliceAtPath");function wP(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(wP,"emptyCanonical");async function mI(t){let e=t.resolvedPath;if(!t.path){let o=join(e,".agentsmesh");if(!await T(o)){if(await bn(e)){let a=await zs(e);return {...wP(),skills:a}}let s=t.target??await Ii(e);if(!s)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
141
|
-
|
|
117
|
+
`||s==="\r"||s===">"||s===" "||s===" "||s==='"'||s==="'"||s===":"||s==="#"||s==="?"}function HC(t,e,r){let n=e>0?t[e-1]:"",o=r<t.length?t[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:KC(t,e,r)?{role:"markdown-link-dest"}:n==="<"&&o===">"?{role:"bracketed"}:n==="'"&&o==="'"||n==='"'&&o==='"'?{role:"quoted"}:n==="@"?{role:"at-prefix"}:n==="("&&t[e-2]==="]"?{role:"markdown-link-dest"}:n==="["&&o==="]"?{role:"bracket-label"}:{role:"bare-prose"}}function zC(t,e,r,n,o){if(e<0||r>t.length)return false;let{candidate:s}=ys(n),a=s.replace(Is,""),l=X(a),c=e+a.length,m=t[e-1],u=t[r];return KC(t,e,c)||m==="'"&&u==="'"||m==='"'&&u==='"'||m==="`"&&u==="`"||m==="<"&&u===">"?true:m==="["&&u==="]"?!(!o&&!Fe(l)&&AT(t,e,n)):m==="@"?true:m==="("?u===")"||u==="#"||u==="?"||u===" "||u===" ":o?Fe(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var VC=g(()=>{Gt();Cn();i(AT,"markdownBracketLabelDuplicatesDestination");i(KC,"isMarkdownReferenceDefinitionDestination");i(HC,"getTokenContext");i(zC,"shouldRewritePathToken");});function kl(t){let e=new Set,r=Rl(t.content);return {content:t.content.replace(bC,(o,s,a)=>{if(r.some(([gt,Ut])=>s>=gt&&s<Ut)||!zC(a,s,s+o.length,o,t.rewriteBarePathTokens===true)||jC(a,s,o)||AC(a,s,s+o.length))return o;let{candidate:l,suffix:c}=ys(o);if(!l)return o;let m=Is.exec(l),u=m?l.slice(0,m.index):l,p=m?m[0]:"";if(!u)return o;let d=HC(a,s,s+u.length);if(d.role!=="markdown-link-dest"&&De.test(u))return o;let{translatedPath:f,resolvedBeforeTranslate:h,matchedPath:C}=MC({candidate:u,rawToken:l,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),R=h;if(!C||!f)return f&&e.add(f),o;let I=X(u),O=u.endsWith("/")||t.pathIsDirectory?.(f)===true;if(O&&!I.includes("/")&&!I.includes("\\"))return o;if(R===null){let gt=X(l);if(gt.startsWith("agentsmesh/")&&(gt=`.${gt}`),gt.startsWith(".agentsmesh/")||gt.includes("/.agentsmesh/")){let Ut=Y(t.projectRoot),Yi=j(t.projectRoot,t.projectRoot),qt=gt.replace(/^\.\//,"");R=j(t.projectRoot,Ut.join(Yi,qt));}}let x=Y(t.projectRoot);if(t.scope==="global"){let gt=X(l),Ut=gt.startsWith(".agentsmesh/")||gt.includes("/.agentsmesh/"),Yi=Fe(gt)||WC(gt),qt=R!==null&&zr(t.projectRoot,R),dd=zr(t.projectRoot,f);if(R===f&&!dd&&!qt&&!Ut){let fd=X(x.relative(t.projectRoot,j(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",tO=(R!==null?X(x.relative(t.projectRoot,R)):"").split("/").filter(Boolean)[0]??"";if(fd.length>0&&fd===tO)return o}if(!Yi&&!Ut&&!qt&&!dd)return o}let P=j(t.projectRoot,t.destinationFile),A=j(t.projectRoot,f),K=X(x.relative(t.projectRoot,P)),M=X(x.relative(t.projectRoot,A)),B=K.split("/").filter(Boolean)[0]??"",Z=M.split("/").filter(Boolean)[0]??"",Zt=!X(u).startsWith(".agentsmesh/")&&!O&&B.length>0&&B===Z&&B.startsWith(".")&&B!==".agentsmesh"||d.role==="markdown-link-dest"||UC(a,s,u),at=DC(t.projectRoot,t.destinationFile,f,u.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||Zt,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:O?null:R,forceRelative:Zt,tokenContext:d,originalToken:u});return at?`${at}${p}${c}`:o}),missing:[...e]}}var rp=g(()=>{Gt();Cn();FC();GC();BC();VC();i(kl,"rewriteFileLinks");});function YC(t){let e=[normalize(t)];if(!existsSync(t))return e;try{let r=[realpathSync(t),realpathSync.native(t)];for(let n of r){let o=normalize(n);e.includes(o)||e.push(o);}}catch{}return e}async function J(t,e,r="project"){let n=new Map,o=Array.from(new Set([t,...ht]));for(let l of o){let c=await RC(l,e,r);for(let[m,u]of c.entries())n.set(m,u);}let s=new Map;for(let[l,c]of n.entries()){let m=normalize(join(e,c));for(let u of YC(join(e,l)))s.set(u,m);}let a=new Set;for(let l of new Set(n.values())){let c=normalize(join(e,l));a.add(c);for(let m of YC(c))a.add(normalize(m));}return (l,c,m)=>kl({content:l,projectRoot:e,sourceFile:c,destinationFile:m,translatePath:i(u=>s.get(u)??u,"translatePath"),pathExists:i(u=>{let p=normalize(u);return s.has(u)||s.has(p)||existsSync(u)||a.has(p)},"pathExists"),explicitCurrentDirLinks:false,rewriteBarePathTokens:true,scope:r,pathIsDirectory:i(u=>{try{return statSync(u).isDirectory()}catch{return false}},"pathIsDirectory")}).content}var Ft=g(()=>{kC();rp();yr();i(YC,"pathVariants");i(J,"createImportReferenceNormalizer");});async function qC(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n));return {destPath:n,toPath:`${Us}/${t}`,feature:"rules",content:await $(n,{...o,root:false},s)}}async function op(t,e,r,n){let o=join(e,t),{frontmatter:s,body:a}=w(n(o));return {destPath:o,toPath:`${r==="commands"?ma:ua}/${t}`,feature:r,content:r==="commands"?await st(o,{description:typeof s.description=="string"?s.description:void 0,hasDescription:Object.prototype.hasOwnProperty.call(s,"description"),allowedTools:(()=>{let c=Tr(s.allowedTools);return c.length>0?c:Tr(s["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(s,"allowedTools")||Object.prototype.hasOwnProperty.call(s,"allowed-tools")},a):await zt(o,s,a)}}var QC=g(()=>{F();V();Pe();Me();i(qC,"mapClaudeRuleFile");i(op,"mapClaudeMarkdownFile");});function tR(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!s||typeof s!="object")continue;let a=s,l=typeof a.matcher=="string"?a.matcher:"";if(!l)continue;let c=Array.isArray(a.hooks)?a.hooks:[];for(let m of c){let u=m.type==="prompt"?"prompt":"command";if(!$e({...m,type:u}))continue;let p=u==="prompt"?Ot(m)||mt(m):mt(m)||Ot(m),d={matcher:l,type:u,command:p};typeof m.timeout=="number"&&(d.timeout=m.timeout),o.push(d);}}o.length>0&&(e[r]=o);}return e}async function eR(t,e){let r=join(t,Cr),n=await y(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 s=tR(o);if(Object.keys(s).length===0)return false;let a=stringify(s),l=join(t,Tn);return await k(dirname(l)),await S(l,a),e.push({fromTool:"claude-code",fromPath:r,toPath:Tn,feature:"hooks"}),true}async function rR(t,e,r="project"){let n=join(t,r==="global"?js:Ao),o=await y(n);if(o===null)return;let s;try{s=JSON.parse(o);}catch{return}if(s.mcpServers&&typeof s.mcpServers=="object"){let a=JSON.stringify({mcpServers:s.mcpServers},null,2),l=join(t,Ws);await k(dirname(l)),await S(l,a),e.push({fromTool:"claude-code",fromPath:n,toPath:Ws,feature:"mcp"});}}async function nR(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(Cr)),n=join(t,Gs),o=await y(n);if(!o)return;let s;try{s=JSON.parse(o);}catch{return}if(!e.some(m=>m.feature==="mcp")&&s.mcpServers&&typeof s.mcpServers=="object"){let m=JSON.stringify({mcpServers:s.mcpServers},null,2),u=join(t,Ws);await k(dirname(u)),await S(u,m),e.push({fromTool:"claude-code",fromPath:n,toPath:Ws,feature:"mcp"});}let l=s.permissions;if(l&&typeof l=="object"&&!Array.isArray(l)){let m=l,u=Array.isArray(m.allow)?m.allow.filter(f=>typeof f=="string"):[],p=Array.isArray(m.deny)?m.deny.filter(f=>typeof f=="string"):[],d=Array.isArray(m.ask)?m.ask.filter(f=>typeof f=="string"):[];if(u.length>0||p.length>0||d.length>0){let f=stringify({allow:u,deny:p,ask:d}),h=join(t,yc);await k(dirname(h)),await S(h,f),e.push({fromTool:"claude-code",fromPath:n,toPath:yc,feature:"permissions"});}}let c=s.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=tR(c);if(Object.keys(m).length>0){let u=stringify(m),p=join(t,Tn);await k(dirname(p)),await S(p,u),e.push({fromTool:"claude-code",fromPath:n,toPath:Tn,feature:"hooks"});}}}var oR=g(()=>{fe();E();Me();i(tR,"claudeHooksToCanonical");i(eR,"importClaudeHooksJson");i(rR,"importMcpJson");i(nR,"importSettings");});async function iR(t,e,r){let n=join(t,Ms),o=join(t,hc),a=(await b(n)).filter(l=>l.endsWith("SKILL.md"));for(let l of a){let c=dirname(l),m=basename(c),u=join(o,m),p=await b(c);for(let d of p){let f=await y(d);if(f===null)continue;let h=relative(c,d),C=join(u,h);await k(dirname(C));let R=r(f,d,C),I=h==="SKILL.md"?w(R):null;await S(C,h==="SKILL.md"?await tr(C,I?.frontmatter??{},I?.body??""):R);let O=`${hc}/${m}/${h}`;e.push({fromTool:"claude-code",fromPath:d,toPath:O,feature:"skills"});}}}var aR=g(()=>{E();F();V();Me();i(iR,"importClaudeSkills");});async function xa(t,e={}){let r=e.scope??"project",n=[],o=await J("claude-code",t,r);return await FT(t,n,o,r),await vT(t,n,o),await $T(t,n,o),await iR(t,n,o),await rR(t,n,r),await eR(t,n),await nR(t,n),await MT(t,n),n}async function FT(t,e,r,n){let o=join(t,Us),s=join(t,Xr),a=await y(s),l=join(t,If),c=n==="project"&&a===null?await y(l):null,m=a??c,u=a!==null?s:l;if(m!==null){await k(o);let d=join(o,"_root.md"),{frontmatter:f,body:h}=w(r(m,u,d)),R=f.root===true?f:{...f,root:true},I=await $(d,R,h);await S(d,I),e.push({fromTool:"claude-code",fromPath:u,toPath:`${Us}/_root.md`,feature:"rules"});}let p=join(t,ia);e.push(...await U({srcDir:p,destDir:o,extensions:[".md"],fromTool:"claude-code",normalize:r,mapEntry:i(({relativePath:d,normalizeTo:f})=>qC(d,o,f),"mapEntry")}));}async function vT(t,e,r){let n=join(t,ma),o=join(t,aa);e.push(...await U({srcDir:o,destDir:n,extensions:[".md"],fromTool:"claude-code",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>op(s,n,"commands",a),"mapEntry")}));}async function $T(t,e,r){let n=join(t,ua),o=join(t,la);e.push(...await U({srcDir:o,destDir:n,extensions:[".md"],fromTool:"claude-code",normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>op(s,n,"agents",a),"mapEntry")}));}async function MT(t,e){let r=join(t,ca),n=await y(r);if(n===null)return;let o=join(t,Ic);await k(dirname(o)),await S(o,n),e.push({fromTool:"claude-code",fromPath:r,toPath:Ic,feature:"ignore"});}var lm=g(()=>{Ft();E();F();V();pt();QC();oR();Me();aR();i(xa,"importFromClaudeCode");i(FT,"importRules");i(vT,"importCommands");i($T,"importAgents");i(MT,"importIgnore");});function hd(t){let e=Object.keys(t);return {async route(r,n,o){let s=t[r];if(s){await s(n,o);return}throw new Error(`Unknown command "${r}". Available: ${e.join(", ")}`)},commands:i(()=>[...e],"commands")}}i(hd,"createRouter");var So={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"};function rO(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}i(rO,"noColor");function As(t,e){return rO()?e:`${t}${e}${So.reset}`}i(As,"c");function nO(t,e){let r=[...t].length;return t+" ".repeat(Math.max(0,e-r))}i(nO,"pad");var _={info(t){process.stdout.write(As(So.cyan,t)+`
|
|
118
|
+
`);},warn(t){process.stderr.write(As(So.yellow,"\u26A0 ")+t+`
|
|
119
|
+
`);},error(t){process.stderr.write(As(So.red,"\u2717 ")+t+`
|
|
120
|
+
`);},success(t){process.stdout.write(As(So.green,"\u2713 ")+t+`
|
|
121
|
+
`);},debug(t){process.env.AGENTSMESH_DEBUG==="1"&&process.stdout.write(As(So.cyan,"[debug] ")+t+`
|
|
122
|
+
`);},table(t){if(t.length===0)return;let e=t[0].length,r=[];for(let o=0;o<e;o++){let s=0;for(let a=0;a<t.length;a++){let l=[...t[a][o]].length;l>s&&(s=l);}r[o]=s;}let n="+"+r.map(o=>"-".repeat(o+2)).join("+")+"+";process.stdout.write(n+`
|
|
123
|
+
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>nO(l,r[c])).join(" | ")+" |";process.stdout.write(a+`
|
|
124
|
+
`);}process.stdout.write(n+`
|
|
125
|
+
`);}};var yd=[{name:"--help",description:"Show this help output and exit"},{name:"--version",description:"Print CLI version and exit"},{name:"--verbose",description:"Show full error details on failure"}],Id=[{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)"},{name:"--yes",description:"Auto-import detected tool configs, then add example scaffold only under empty canonical paths"}]},{name:"generate",usage:"agentsmesh generate [flags]",description:"Generate target files from canonical sources",flags:[{name:"--global",description:"Generate user-level config from ~/.agentsmesh/ (e.g. claude-code, antigravity, codex-cli, gemini-cli; 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; cursor reads ~/.cursor/{rules,AGENTS.md,mcp.json,hooks.json,cursorignore,skills,agents,commands} and legacy ~/.agentsmesh-exports/cursor/user-rules.md)"}]},{name:"install",usage:"agentsmesh install <source> [flags]",description:"Install canonical resources from local/remote sources",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:"--force",description:"Non-interactive mode; include invalid resources and skip selection prompts"}]},{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)"}]}];function Sd(t,e=18){return t.length===0?" (no command-specific flags)":t.map(r=>` ${r.name.padEnd(e)}${r.description}`).join(`
|
|
126
|
+
`)}i(Sd,"formatFlags");function _d(){let t=Id.map(e=>`- ${e.name.padEnd(8)} ${e.description}
|
|
127
|
+
Usage: ${e.usage}
|
|
128
|
+
${Sd(e.flags)}`).join(`
|
|
129
|
+
|
|
130
|
+
`);_.info(`agentsmesh <command> [flags]
|
|
131
|
+
|
|
132
|
+
Global flags:
|
|
133
|
+
${Sd(yd)}
|
|
134
|
+
|
|
135
|
+
Commands:
|
|
136
|
+
${t}
|
|
137
|
+
|
|
138
|
+
Tip: run "agentsmesh <command> --help" for this same command reference.`);}i(_d,"printHelp");var aO=createRequire(import.meta.url),Zl=dirname(fileURLToPath(import.meta.url)),lO=Zl.endsWith("dist")?join(Zl,"..","package.json"):join(Zl,"..","..","package.json"),Rd=aO(lO);function Ts(){return Rd.version}i(Ts,"getVersion");function kd(){process.stdout.write(`agentsmesh v${Rd.version}
|
|
139
|
+
`);}i(kd,"printVersion");function wd(t,e){e?.verbose&&t.stack?process.stderr.write(t.stack+`
|
|
140
|
+
`):_.error(t.message),process.exit(1);}i(wd,"handleError");E();Ls();yr();var Ad=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],Qt=z$1.enum(ht),Co=z$1.enum(Ad),Fs=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(),RO=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:Qt.optional(),features:z$1.array(Co),path:z$1.string().optional(),pick:Fs.optional()}),kO=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),Ds=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),wO=z$1.object({commands_to_skills:z$1.object({"codex-cli":Ds.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":Ds.optional(),cline:Ds.optional(),"codex-cli":Ds.optional(),windsurf:Ds.optional()}).passthrough().optional()}).strict().optional(),OO=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/),source:z$1.string(),version:z$1.string().optional()}).strict(),Ql=z$1.object({version:z$1.literal(1),targets:z$1.array(Qt).default([...ht]),features:z$1.array(Co).default([...Ad]),extends:z$1.array(RO).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:kO.default({strategy:"merge",lock_features:[]}),conversions:wO,plugins:z$1.array(OO).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});var ec="agentsmesh.yaml",PO="agentsmesh.local.yaml";async function xO(t){let e=resolve(t);for(;;){let r=join(e,ec);if(await N(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}i(xO,"findConfigPath");async function bO(t){let e=await y(t);if(e===null)throw new Yr(t);let r=parse(e),n=Ql.safeParse(r);if(!n.success){let o=n.error.issues.map(s=>s.message);throw new Xi(t,o,{cause:n.error})}return n.data}i(bO,"loadConfig");function tc(t,e){let r={...t};for(let[n,o]of Object.entries(e)){if(o==null)continue;let s=r[n];typeof o=="object"&&!Array.isArray(o)&&o!==null&&typeof s=="object"&&s!==null&&!Array.isArray(s)?r[n]=tc(s,o):r[n]=o;}return r}i(tc,"deepMergeObjects");function AO(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=tc(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=tc(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}i(AO,"mergeLocalConfig");async function rc(t){let e=join(t,ec),r=await bO(e),n=join(t,PO),o=await y(n);if(o!==null){let s=parse(o);if(typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=AO(r,s),l=Ql.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");_.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:t}}i(rc,"loadConfigFromExactDir");async function Nd(t){let e=await xO(t);if(e===null)throw new Yr(join(t,ec));return rc(dirname(e))}i(Nd,"loadConfigFromDir");Ls();function vs(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}}i(vs,"resolveScopeContext");async function lt(t,e="project"){if(e==="project"){let{config:n,configDir:o}=await Nd(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=vs(t,e);try{let{config:n}=await rc(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof Yr?new Yr(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}}i(lt,"loadScopedConfig");E();E();var $O=promisify(execFile),Dd="repo";async function Qi(t,e,r,n,o){let s="cloneUrl"in t?"gitlab":"git",a="cloneUrl"in t?`${t.namespace}/${t.project}`:t.url,l=t.ref??"HEAD",c=o(s,a,l),m=join(n,c),u=join(m,Dd),p=`${m}.tmp`,d=join(p,Dd);if(!r.refresh&&await Fd(u))return ic(u);try{return await rm$1(p,{recursive:!0,force:!0}),await mkdir(p,{recursive:!0}),await GO(MO(t),d),t.ref&&await jO(d,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(p,m),ic(u)}catch(f){if(await rm$1(p,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await Fd(u))return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${f instanceof Error?f.message:String(f)}`),ic(u);throw f}}i(Qi,"fetchGitRemoteExtend");async function ic(t){return {resolvedPath:t,version:await UO(t)}}i(ic,"readCachedRepo");async function Fd(t){return N(t)}i(Fd,"hasCachedRepo");function MO(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}i(MO,"resolveCloneUrl");async function GO(t,e){await ac(["clone",t,e]);}i(GO,"cloneRepo");async function jO(t,e){await ac(["checkout",e],t);}i(jO,"checkoutRef");async function UO(t){return ac(["rev-parse","HEAD"],t)}i(UO,"getHeadSha");async function ac(t,e){let{stdout:r}=await $O("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}i(ac,"runGit");E();async function Gd(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 s=await globalThis.fetch(n,{headers:o});if(!s.ok)throw new Error(`Failed to resolve latest release for ${t}/${e}: ${s.status} ${s.statusText}`);let a=await s.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}i(Gd,"resolveLatestTag");async function jd(t,e,r,n,o,s=false){let a=r.token??process.env.AGENTSMESH_GITHUB_TOKEN,l=r.refresh===true,c=t.tag;if(c==="latest")try{c=await Gd(t.org,t.repo,a);}catch(I){if(!s)throw I;return zO(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),u=join(n,m);if(!l&&await N(u)){let I=await lc(u);if(I)return {resolvedPath:join(u,I),version:c}}let p=`https://github.com/${t.org}/${t.repo}/tarball/${c}`,d={};a&&(d.Authorization=`Bearer ${a}`);let f;try{let I=await globalThis.fetch(p,{headers:d,redirect:"follow"});if(!I.ok)throw new Error(`HTTP ${I.status}: ${I.statusText}`);f=await I.arrayBuffer();}catch(I){if(r.allowOfflineFallback!==false&&await N(u)){let x=await lc(u);if(x)return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${I instanceof Error?I.message:String(I)}`),{resolvedPath:join(u,x),version:c}}throw I}await rm$1(u,{recursive:true,force:true}),await mkdir(u,{recursive:true});let h=join(u,"archive.tar.gz");await writeFile(h,new Uint8Array(f));try{await Md.extract({file:h,cwd:u,strict:!0,filter:i((I,O)=>!(HO(I)||O&&"type"in O&&(O.type==="Link"||O.type==="SymbolicLink")),"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let C=await lc(u);if(!C)throw new Error(`Extend "${e}": archive has no top-level directory. Expected a single top-level directory inside the archive.`);return {resolvedPath:join(u,C),version:c}}i(jd,"fetchGithubRemoteExtend");async function lc(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}i(lc,"findExtractTopDir");function $d(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}i($d,"buildGithubCloneUrl");function HO(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}i(HO,"isZipSlipPath");async function zO(t,e,r,n,o,s){let a=s?[$d(t.org,t.repo,s)]:[$d(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 Qi(m,e,r,n,o)}catch(u){l=u;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}i(zO,"fetchGithubDefaultBranch");function Ud(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 s=n.slice(0,o).trim(),a=n.slice(o+1).trim();return !s||!a?null:[s,a]}i(Ud,"splitSourceRef");function Wd(t){let e=Ud(t,"github:","latest");if(!e)return null;let[r,n]=e,o=r.indexOf("/");if(o<0)return null;let s=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !s||!a||!n?null:{org:s,repo:a,tag:n}}i(Wd,"parseGithubSource");function Bd(t){let e=Ud(t,"gitlab:");if(!e)return null;let[r,n]=e,o=r.lastIndexOf("/");if(o<0)return null;let s=r.slice(0,o).trim(),a=r.slice(o+1).trim();return !s||!a?null:{namespace:s,project:a,ref:n,cloneUrl:`https://gitlab.com/${s}/${a}.git`}}i(Bd,"parseGitlabSource");function Kd(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 s;try{s=new URL(n);}catch{return null}return ["https:","http:","ssh:","file:"].includes(s.protocol)?{url:n,ref:o}:null}i(Kd,"parseGitSource");function On(t){let e=Wd(t);if(e)return {kind:"github",...e};let r=Bd(t);if(r)return {kind:"gitlab",...r};let n=Kd(t);return n?{kind:"git",...n}:null}i(On,"parseRemoteSource");function cc(t){return On(t)!==null}i(cc,"isSupportedRemoteSource");function XO(t){let e=On(t);return e?e.kind==="github"?Ro("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?Ro("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):Ro("git",e.url,e.ref??"HEAD"):null}i(XO,"cacheKeyFromSource");async function Vd(t,e){let r=XO(t);if(!r)return;let n=e??At(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}i(Vd,"cleanInstallCache");async function Jd(t,e){let r=t??At(),n=e??Number(process.env.AGENTSMESH_CACHE_MAX_AGE_DAYS??30)*864e5,o;try{o=await readdir(r);}catch{return}let s=Date.now();await Promise.all(o.map(async a=>{let l=join(r,a);try{let{mtimeMs:c}=await stat(l);s-c>n&&await rm$1(l,{recursive:!0,force:!0});}catch{}}));}i(Jd,"sweepStaleCache");function Ro(t,e,r){let n=i(o=>o.replace(/[^a-zA-Z0-9_-]/g,"_"),"safe");if(t==="github"){let[o,s]=e.split("/",2);if(o&&s)return `${n(o)}-${n(s)}-${n(r)}`}return `${n(t)}_${n(e)}_${n(r)}`}i(Ro,"buildCacheKey");function At(){let t=process.env.AGENTSMESH_CACHE;return t||join(homedir(),".agentsmesh","cache")}i(At,"getCacheDir");async function ko(t,e,r={}){let n=On(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??At();return Jd(o).catch(()=>{}),n.kind==="github"?jd(n,e,r,o,Ro,!t.includes("@")):Qi(n,e,r,o,Ro)}i(ko,"fetchRemoteExtend");function rE(t){return t.startsWith("http://")||t.startsWith("https://")}i(rE,"isOtherRemoteSource");async function wo(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>cc(o.source))){let o=At();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(rE(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(cc(o.source)){let a=await ko(o.source,o.name,{cacheDir:At(),refresh:r.refreshCache===true});n.push({name:o.name,resolvedPath:a.resolvedPath,features:[...o.features],target:o.target,version:a.version,path:o.path,pick:o.pick});continue}let s=resolve(e,o.source);if(!await N(s))throw new Error(`Extend "${o.name}": path does not exist: ${s}. Check extends.source in agentsmesh.yaml.`);n.push({name:o.name,resolvedPath:s,features:[...o.features],target:o.target,path:o.path,pick:o.pick});}return n}i(wo,"resolveExtendPaths");E();F();var sE=["always_on","model_decision","glob","manual"];function Xd(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}i(Xd,"toStrArray");async function En(t){let r=(await b(t)).filter(o=>{if(!o.endsWith(".md"))return false;let s=basename(o,".md");return s==="_root"||!s.startsWith("_")}),n=[];for(let o of r){let s=await y(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),m=basename(o,".md")==="_root",u=a.root===true,p=a.trigger,d=typeof p=="string"&&sE.includes(p)?p:void 0,f=a.codex_emit,h=f==="execution"?"execution":f==="advisory"?"advisory":void 0,R=a.codex_instruction==="override"?"override":void 0;n.push({source:o,root:m||u,targets:Xd(a.targets),description:typeof a.description=="string"?a.description:"",globs:Xd(a.globs),body:l,...d!==void 0&&{trigger:d},...h!==void 0&&{codexEmit:h},...R!==void 0&&{codexInstructionVariant:R}});}return n}i(En,"parseRules");E();F();function qd(t){return t===true||t==="true"||t===1||t==="1"}i(qd,"toBool");function Qd(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}i(Qd,"toToolsArray");async function Pn(t){let r=(await b(t)).filter(o=>o.endsWith(".md")&&!basename(o).startsWith("_")),n=[];for(let o of r){let s=await y(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),c=basename(o,".md"),m=Qd(a.allowedTools),u=Qd(a["allowed-tools"]),p=m.length>0?m:u;n.push({source:o,name:c,description:typeof a.description=="string"?a.description:"",allowedTools:p,outputStyle:qd(a.outputStyle)||qd(a["output-style"]),body:l});}return n}i(Pn,"parseCommands");E();F();function xn(t){return Array.isArray(t)?t.filter(e=>typeof e=="string").map(e=>e.trim()).filter(Boolean):typeof t=="string"?t.split(",").map(e=>e.trim()).filter(Boolean):[]}i(xn,"toStrArray");function ef(t){return t===true||t==="true"||t===1||t==="1"}i(ef,"toBool");function rf(t){if(typeof t=="number"&&Number.isInteger(t)&&t>=0)return t;if(typeof t=="string"){let e=parseInt(t,10);return Number.isInteger(e)&&e>=0?e:0}return 0}i(rf,"toInt");function iE(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}i(iE,"toHooks");async function bn(t){let r=(await b(t)).filter(o=>o.endsWith(".md")&&!basename(o).startsWith("_")),n=[];for(let o of r){let s=await y(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),c=basename(o,".md"),m=xn(a.tools),u=xn(a.tools),p=m.length>0?m:u,d=xn(a.disallowedTools),f=xn(a["disallowed-tools"]),h=d.length>0?d:f,C=xn(a.mcpServers),R=xn(a["mcp-servers"]),I=C.length>0?C:R,O=xn(a.skills),x=rf(a.maxTurns),P=rf(a["max-turns"]),A=x>0?x:P>0?P:0;n.push({source:o,name:c,description:typeof a.description=="string"?a.description:"",tools:p,disallowedTools:h,model:typeof a.model=="string"?a.model:"",permissionMode:typeof a.permissionMode=="string"?a.permissionMode:typeof a["permission-mode"]=="string"?a["permission-mode"]:"",maxTurns:A,mcpServers:I,hooks:iE(a.hooks),skills:O,memory:typeof a.memory=="string"?a.memory:"",outputStyle:ef(a.outputStyle)||ef(a["output-style"]),body:l});}return n}i(bn,"parseAgents");E();F();async function cE(t){return await y(t)??""}i(cE,"readContent");var ta="SKILL.md",mE=[".git","node_modules"];function uE(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i(uE,"sanitizeSkillName");async function nf(t){let e=await b(t),r=[];for(let n of e){let s=n.slice(t.length+1).replace(/\\/g,"/");if(s===ta||s.endsWith(`/${ta}`))continue;let a=s.split("/")[0];if(mE.some(c=>a===c)||s===".DS_Store"||s.endsWith("/.DS_Store"))continue;let l=await cE(n);r.push({relativePath:s,absolutePath:n,content:l});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}i(nf,"listSupportingFiles");async function of(t){let e=join(t,ta),r=await y(e);if(!r)return null;let{frontmatter:n,body:o}=w(r),s=await nf(t),a=typeof n.name=="string"?uE(n.name):"";return {source:e,name:a||basename(t),description:typeof n.description=="string"?n.description:"",body:o,supportingFiles:s}}i(of,"parseSkillDirectory");async function Oo(t){let e;try{e=await readdir(t,{withFileTypes:!0});}catch{return []}let r=[];for(let n of e){if(!n.isDirectory()||n.name.startsWith("_"))continue;let o=join(t,n.name),s=join(o,ta),a=await y(s);if(!a)continue;let{frontmatter:l,body:c}=w(a),m=await nf(o);r.push({source:s,name:n.name,description:typeof l.description=="string"?l.description:"",body:c,supportingFiles:m});}return r.sort((n,o)=>n.name.localeCompare(o.name))}i(Oo,"parseSkills");E();function sf(t){return t===null||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}i(sf,"parseStringMap");function pE(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.type=="string"?e.type:"stdio",n=sf(e.env),o=typeof e.description=="string"?e.description:void 0,s=typeof e.url=="string"?e.url:"";if(s)return {...o!==void 0&&{description:o},type:r,url:s,headers:sf(e.headers),env:n};let a=typeof e.command=="string"?e.command:"";if(!a)return null;let l=Array.isArray(e.args)?e.args.filter(c=>typeof c=="string"):[];return {...o!==void 0&&{description:o},type:r,command:a,args:l,env:n}}i(pE,"parseServer");async function ea(t){let e=await y(t);if(!e)return null;let r;try{r=JSON.parse(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[s,a]of Object.entries(n)){let l=pE(a);l&&(o[s]=l);}return {mcpServers:o}}i(ea,"parseMcp");E();function uc(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}i(uc,"ensureStringArray");async function ra(t){let e=await y(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=uc(n.allow),s=uc(n.deny),a=uc(n.ask);return {allow:o,deny:s,ask:a}}i(ra,"parsePermissions");E();fe();var gE=["command","prompt"];function hE(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=pc(e);if(!n)return null;let o=typeof e.type=="string"&&gE.includes(e.type)?e.type:void 0,s=typeof e.timeout=="number"&&Number.isFinite(e.timeout)?e.timeout:void 0,a=Ot(e)||void 0;return {matcher:r,command:n,...s!==void 0&&{timeout:s},...o&&{type:o},...a&&{prompt:a}}}i(hE,"toHookEntry");async function na(t){let e=await y(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[s,a]of Object.entries(o)){if(!Array.isArray(a))continue;let l=[];for(let c of a){let m=hE(c);m&&l.push(m);}l.length>0&&(n[s]=l);}return n}i(na,"parseHooks");E();async function oa(t){let e=await y(t);if(e===null||!e.trim())return [];let r=e.split(/\r?\n/),n=[];for(let o of r){let s=o.trim();s===""||s.startsWith("#")||n.push(s);}return n}i(oa,"parseIgnore");E();async function An(t){let e=join(t,".agentsmesh"),r=await N(e)?e:t,[n,o,s,a,l,c,m,u]=await Promise.all([En(join(r,"rules")),Pn(join(r,"commands")),bn(join(r,"agents")),Oo(join(r,"skills")),ea(join(r,"mcp.json")),ra(join(r,"permissions.yaml")),na(join(r,"hooks.yaml")),oa(join(r,"ignore"))]);return {rules:n,commands:o,agents:s,skills:a,mcp:l,permissions:c,hooks:m,ignore:u}}i(An,"loadCanonicalFiles");function lf(t){return basename(t.source,".md")}i(lf,"ruleSlug");function Eo(t,e){let r=new Map(t.rules.map(u=>[lf(u),u]));for(let u of e.rules)r.set(lf(u),u);let n=new Map(t.commands.map(u=>[u.name,u]));for(let u of e.commands)n.set(u.name,u);let o=new Map(t.agents.map(u=>[u.name,u]));for(let u of e.agents)o.set(u.name,u);let s=new Map(t.skills.map(u=>[u.name,u]));for(let u of e.skills)s.set(u.name,u);let a=IE(t.mcp,e.mcp),l=SE(t.permissions,e.permissions),c=_E(t.hooks,e.hooks),m=CE(t.ignore,e.ignore);return {rules:Array.from(r.values()),commands:Array.from(n.values()),agents:Array.from(o.values()),skills:Array.from(s.values()),mcp:a,permissions:l,hooks:c,ignore:m}}i(Eo,"mergeCanonicalFiles");function IE(t,e){if(!t&&!e)return null;let r=t?.mcpServers??{},n=e?.mcpServers??{};return {mcpServers:{...r,...n}}}i(IE,"mergeMcp");function SE(t,e){if(!t&&!e)return null;let r=dc(t?.allow??[],e?.allow??[]),n=dc(t?.deny??[],e?.deny??[]),o=dc(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}i(SE,"mergePermissions");function dc(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}i(dc,"mergeUniqueStrings");function _E(t,e){if(!t&&!e)return null;let r={},n=new Set([...Object.keys(t??{}),...Object.keys(e??{})]);for(let o of n){let s=e?.[o],a=t?.[o];r[o]=s!==void 0&&s.length>0?s:a??[];}return r}i(_E,"mergeHooks");function CE(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}i(CE,"mergeIgnore");E();var cf=[{target:"claude-code",paths:["CLAUDE.md",".claude/rules",".claude/commands",".claude/agents",".claude/skills",".claude/settings.json",".claudeignore"]},{target:"cursor",paths:[".cursorrules",".cursor/rules",".cursor",".cursor/mcp.json"]},{target:"copilot",paths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]},{target:"gemini-cli",paths:["GEMINI.md",".gemini",".gemini/settings.json"]},{target:"codex-cli",paths:[".codex",".codex/config.toml","AGENTS.md","codex.md"]},{target:"windsurf",paths:[".windsurfrules",".windsurf",".windsurf/workflows"]},{target:"cline",paths:[".clinerules",".cline"]},{target:"continue",paths:[".continue",".continuerc.json"]},{target:"junie",paths:[".junie",".junie/guidelines.md"]},{target:"kiro",paths:[".kiro",".kiro/steering",".kiro/settings/mcp.json"]}];async function sa(t){let e=null,r=0;for(let n of cf){let o=0;for(let s of n.paths)await N(join(t,s))&&o++;o>r&&(r=o,e=n.target);}return r>0?e:null}i(sa,"detectNativeFormat");var mf=cf.map(t=>t.paths[0]).filter(t=>t!==void 0);E();lm();bm();$m();au();bu();Hu();pu();Gm();jm();Wm();var GT={"claude-code":xa,cursor:Wa,copilot:Va,"gemini-cli":al,"codex-cli":fl,windsurf:Sl,cline:ml,continue:Ya,junie:qa,kiro:Qa};async function bi(t,e){let r=GT[e];if(!r)throw new Error(`No importer registered for native target: ${e}`);return r(t)}i(bi,"importNativeToCanonical");E();var ap="SKILL.md";async function mo(t){if(!await N(t))return false;if(await N(join(t,ap)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await N(join(t,r.name,ap)))return !0}catch{return false}return false}i(mo,"isSkillPackLayout");async function Ai(t){if(!await N(t))return [];if(await N(join(t,ap))){let e=await of(t);return e?[e]:[]}return Oo(t)}i(Ai,"loadSkillsAtExtendPath");E();function BT(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(BT,"emptyCanonical");function KT(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}i(KT,"isCanonicalSliceEmpty");async function Ol(t){if(!await N(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),s=basename(t).replace(/\.md$/i,"");if(n==="rules")return {sliceRoot:r,implicitPick:{rules:[s]}};if(n==="commands")return {sliceRoot:r,implicitPick:{commands:[s]}};if(n==="agents")return {sliceRoot:r,implicitPick:{agents:[s]}};throw new Error(`Single-file install only supports .md files under rules/, commands/, or agents/. Got: ${t}`)}i(Ol,"normalizeSlicePath");async function HT(t){if(basename(t)==="rules")return En(t);let r=join(t,"rules");return await N(r)?En(r):[]}i(HT,"parseRulesAt");async function zT(t){if(basename(t)==="commands")return Pn(t);let r=join(t,"commands");return await N(r)?Pn(r):[]}i(zT,"parseCommandsAt");async function VT(t){if(basename(t)==="agents")return bn(t);let r=join(t,"agents");return await N(r)?bn(r):[]}i(VT,"parseAgentsAt");async function JT(t){if(await mo(t))return Ai(t);let e=join(t,"skills");return await mo(e)?Ai(e):[]}i(JT,"loadSkillsForPartialSlice");async function El(t){let e=join(t,".agentsmesh");if(await N(e))return An(t);let r=BT();if(r.rules=await HT(t),r.commands=await zT(t),r.agents=await VT(t),r.skills=await JT(t),KT(r))throw new Error(`No installable resources at ${t}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md).`);return r}i(El,"loadCanonicalSliceAtPath");function YT(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(YT,"emptyCanonical");async function lR(t){let e=t.resolvedPath;if(!t.path){let o=join(e,".agentsmesh");if(!await N(o)){if(await mo(e)){let a=await Ai(e);return {...YT(),skills:a}}let s=t.target??await sa(e);if(!s)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
141
|
+
Expected one of: .agentsmesh/, ${mf.join(", ")}.`);_.info(`[agentsmesh] Extend "${t.name}": ${t.target?"specified":"detected"} ${s} format, importing to .agentsmesh/...`),await bi(e,s);}return An(e)}let r=join(e,t.path);if(!await N(r))throw new Error(`Extend "${t.name}": path does not exist: ${r}`);if(t.target){let o=join(e,".agentsmesh");return await N(o)||(_.info(`[agentsmesh] Extend "${t.name}": path "${t.path}" with target "${t.target}" \u2014 importing at extend root, then loading canonical.`),await bi(e,t.target)),An(e)}let{sliceRoot:n}=await Ol(r);try{return await El(n)}catch(o){let s=o instanceof Error?o.message:String(o),a=new Error(`Extend "${t.name}": ${s}`);throw o instanceof Error&&(a.cause=o),a}}i(lR,"loadCanonicalForExtend");function Pl(t,e,r,n){if(!r)return t;let o={...t};if(r.skills?.length&&e.includes("skills")){let s=new Set(r.skills),a=o.skills;o={...o,skills:a.filter(l=>s.has(l.name))};for(let l of r.skills)a.some(c=>c.name===l)||_.warn(`[agentsmesh] pick name "${l}" not found in skills from extend "${n}".`);}if(r.commands?.length&&e.includes("commands")){let s=new Set(r.commands),a=o.commands;o={...o,commands:a.filter(l=>s.has(l.name))};for(let l of r.commands)a.some(c=>c.name===l)||_.warn(`[agentsmesh] pick name "${l}" not found in commands from extend "${n}".`);}if(r.agents?.length&&e.includes("agents")){let s=new Set(r.agents),a=o.agents;o={...o,agents:a.filter(l=>s.has(l.name))};for(let l of r.agents)a.some(c=>c.name===l)||_.warn(`[agentsmesh] pick name "${l}" not found in agents from extend "${n}".`);}if(r.rules?.length&&e.includes("rules")){let s=new Set(r.rules),a=o.rules,l=i(c=>basename(c).replace(/\.md$/i,""),"stem");o={...o,rules:a.filter(c=>s.has(l(c.source)))};for(let c of r.rules)a.some(m=>l(m.source)===c)||_.warn(`[agentsmesh] pick name "${c}" not found in rules from extend "${n}".`);}return o}i(Pl,"applyExtendPick");E();var qT=["rules","commands","agents","skills"],Cs=z$1.enum(qT);var QT=z$1.enum(["github","gitlab","git","local"]),cR=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:QT,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(Co).min(1),pick:Fs.optional(),target:Qt.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Cs.optional(),content_hash:z$1.string()});function mR(t){let e=On(t);return e?e.kind==="github"?`github:${e.org}/${e.repo}`:e.kind==="gitlab"?`gitlab:${e.namespace}/${e.project}`:`git+${e.url}`:t.trim()}i(mR,"sourceIdentity");function eL(t,e){return e?t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n]):true}i(eL,"sameFeatures");async function xl(t){let e=join(t,"pack.yaml"),r=await y(e);if(r===null)return null;try{let n=parse(r);return cR.parse(n)}catch{return null}}i(xl,"readPackMetadata");async function pR(t,e,r){if(!await N(t))return null;let n=mR(e),o;try{o=await readdir(t,{withFileTypes:!0});}catch{return null}for(let s of o){if(!s.isDirectory())continue;let a=join(t,s.name),l=await xl(a);if(l&&mR(l.source)===n&&l.target===r.target&&l.as===r.as&&eL(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}i(pR,"findExistingPack");async function bl(t){if(!await N(t))return [];let e;try{e=await readdir(t,{withFileTypes:!0});}catch{return []}let r=[];for(let n of e){if(!n.isDirectory())continue;let o=join(t,n.name),s=await xl(o);s&&r.push({meta:s,packDir:o,name:s.name});}return r}i(bl,"listPacks");function dR(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(dR,"emptyCanonical");async function rL(t){let[e,r,n,o,s,a,l,c]=await Promise.all([En(join(t,"rules")),Pn(join(t,"commands")),bn(join(t,"agents")),Oo(join(t,"skills")),ea(join(t,"mcp.json")),ra(join(t,"permissions.yaml")),na(join(t,"hooks.yaml")),oa(join(t,"ignore"))]);return {...dR(),rules:e,commands:r,agents:n,skills:o,mcp:s,permissions:a,hooks:l,ignore:c}}i(rL,"loadPackCanonical");async function fR(t){let e=join(t,"packs"),r=await bl(e),n=dR();for(let{meta:o,packDir:s}of r){let a=await rL(s),l=mp(a,o.features),c=Pl(l,o.features,o.pick,o.name);n=Eo(n,c);}return n}i(fR,"loadPacksCanonical");var oL={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};function mp(t,e){if(e.length===0)return gR();let r=new Set(e.flatMap(n=>oL[n]??[]));return {rules:r.has("rules")?t.rules:[],commands:r.has("commands")?t.commands:[],agents:r.has("agents")?t.agents:[],skills:r.has("skills")?t.skills:[],mcp:r.has("mcp")?t.mcp:null,permissions:r.has("permissions")?t.permissions:null,hooks:r.has("hooks")?t.hooks:null,ignore:r.has("ignore")?t.ignore:[]}}i(mp,"filterCanonicalByFeatures");function gR(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(gR,"emptyCanonical");async function me(t,e,r={},n=join(e,".agentsmesh")){let o=await wo(t,e,{refreshCache:r.refreshRemoteCache===true}),s=gR();for(let c of o){let m=await lR(c),u=mp(m,c.features),p=Pl(u,c.features,c.pick,c.name);s=Eo(s,p);}let a=await fR(n);s=Eo(s,a);let l=await An(n);return s=Eo(s,l),{canonical:s,resolvedExtends:o}}i(me,"loadCanonicalWithExtends");E();function Ni(t){return createHash("sha256").update(t,"utf8").digest("hex")}i(Ni,"hashContent");async function Al(t){try{let e=await readFile(t,"utf8");return Ni(e)}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return null;throw e}}i(Al,"hashFile");var pp=".lock",mL=[t=>t.startsWith("rules/")&&t.endsWith(".md"),t=>t.startsWith("commands/")&&t.endsWith(".md"),t=>t.startsWith("agents/")&&t.endsWith(".md"),t=>t.match(/^skills\/[^/]+\/.+$/)!==null,t=>t==="mcp.json",t=>t==="permissions.yaml",t=>t==="hooks.yaml",t=>t==="ignore"];function uL(t){return t.startsWith("packs/")?false:mL.some(e=>e(t))}i(uL,"isCanonical");var pL={rules:i(t=>t.startsWith("rules/"),"rules"),commands:i(t=>t.startsWith("commands/"),"commands"),agents:i(t=>t.startsWith("agents/"),"agents"),skills:i(t=>/^skills\/[^/]+\/.+$/.test(t),"skills"),mcp:i(t=>t==="mcp.json","mcp"),permissions:i(t=>t==="permissions.yaml","permissions"),hooks:i(t=>t==="hooks.yaml","hooks"),ignore:i(t=>t==="ignore","ignore")};async function Tl(t){let e=join(t,pp),r=await y(e);if(r===null)return null;try{let n=parse(r);return !n||typeof n!="object"?null:{generatedAt:String(n.generated_at??""),generatedBy:String(n.generated_by??""),libVersion:String(n.lib_version??""),checksums:n.checksums&&typeof n.checksums=="object"?n.checksums:{},extends:n.extends&&typeof n.extends=="object"?n.extends:{},packs:n.packs&&typeof n.packs=="object"?n.packs:{}}}catch{return null}}i(Tl,"readLock");async function Di(t,e){let r=join(t,pp),n={generated_at:e.generatedAt,generated_by:e.generatedBy,lib_version:e.libVersion,checksums:e.checksums,extends:e.extends,packs:e.packs},o=`# Auto-generated. DO NOT EDIT MANUALLY.
|
|
142
142
|
# Tracks the state of all config files for team conflict resolution.
|
|
143
143
|
|
|
144
|
-
`+stringify(n);await
|
|
145
|
-
`),a=Ys(s),l=a.startsWith("sha256:")?a:`sha256:${a}`;e[r.name]=`local:${l}`;}return e}i(Tn,"buildExtendChecksums");function WP(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(WP,"addDirectoryMapping");function II(t,e,r){let n=posix.dirname(e),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)WP(t,n,o),n=posix.dirname(n),o=posix.dirname(o);}i(II,"addSkillDirectoryMappings");function _I(t,e,r="project"){let n=pt(t,r);if(!n)return null;if(e.root)return n.rootInstructionPath??null;if(e.targets.length>0&&!e.targets.includes(t))return null;let o=basename(e.source,".md");return n.paths.rulePath(o,e)}i(_I,"ruleTargetPath");function SI(t,e,r,n="project"){let o=pt(t,n);return o?o.paths.commandPath(e,r):null}i(SI,"commandTargetPath");function CI(t,e,r,n="project"){let o=pt(t,n);return o?o.paths.agentPath(e,r):null}i(CI,"agentTargetPath");function HP(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(HP,"addDirectoryMapping");function qs(t,e,r,n="project"){let o=new Map;for(let a of e.rules){let l=_I(t,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of e.commands){let l=SI(t,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of e.agents){let l=CI(t,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let s=Aa(t,n);if(!s)return o;for(let a of e.skills){HP(o,`.agentsmesh/skills/${a.name}`,`${s}/${a.name}`),o.set(`.agentsmesh/skills/${a.name}/SKILL.md`,`${s}/${a.name}/SKILL.md`);for(let l of a.supportingFiles){let c=l.relativePath.replace(/\\/g,"/"),m=`.agentsmesh/skills/${a.name}/${c}`,u=`${s}/${a.name}/${c}`;o.set(m,u),II(o,m,u);}}return o}i(qs,"buildReferenceMap");var Ln="AGENTS.md";function zP(t){return t.target===Xo&&t.path.endsWith(Ln)}i(zP,"isCodexAgents");function RI(t){return t.target==="windsurf"&&t.path.endsWith(Ln)}i(RI,"isWindsurfAgents");function kI(t){return t.target==="cline"&&t.path.endsWith(Ln)}i(kI,"isClineAgents");function eu(t){return t.target==="cursor"&&t.path.endsWith(Ln)}i(eu,"isCursorAgents");function ru(t){return t.target==="gemini-cli"&&t.path.endsWith(Ln)}i(ru,"isGeminiAgents");function VP(t){return t.target==="kiro"&&t.path.endsWith(Ln)}i(VP,"isKiroAgents");function JP(t){return eu(t)||ru(t)}i(JP,"isCompatibilityAgents");function Wa(t,e,r,n){let o=n.get(t);if(o)return o;let s=new Map;for(let[a,l]of qs(t,e,r))s.has(l)||s.set(l,a);return n.set(t,s),s}i(Wa,"reverseReferenceMap");function Ba(t,e){let r=[...e.entries()].sort(([o],[s])=>s.length-o.length),n=t;for(let[o,s]of r)n=n.split(o).join(s);return n}i(Ba,"normalizeContent");function YP(t,e,r,n,o){let s=Wa(t.target,r,n,o),a=Wa(e.target,r,n,o);return Ba(t.content,s)===Ba(e.content,a)}i(YP,"hasEquivalentCanonicalContent");function XP(t,e,r,n,o){let s=Wa(t.target,r,n,o),a=Wa(e.target,r,n,o),l=Ba(t.content,s).trim(),c=Ba(e.content,a).trim();return l.length>c.length&&l.includes(c)}i(XP,"hasCanonicalSupersetContent");function wI(t,e,r){let n=new Map;for(let a of t){if(!a.path.endsWith(Ln))continue;let l=n.get(a.path)??new Set;l.add(a.target),n.set(a.path,l);}let o=new Map;for(let a of t)zP(a)&&o.set(a.path,a);let s=new Map;return t.filter(a=>{if(eu(a)){let c=n.get(a.path);if(c&&[...c].some(m=>m!=="cursor"))return false}if(ru(a)){let c=n.get(a.path);if(c&&[...c].some(m=>m!=="cursor"&&m!=="gemini-cli"))return false}if(!RI(a)&&!kI(a)&&!eu(a)&&!ru(a)&&!VP(a))return true;let l=o.get(a.path);return l?JP(a)||RI(a)||kI(a)?false:!(YP(l,a,e,r,s)||XP(l,a,e,r,s)):true})}i(wI,"preferEquivalentCodexAgents");function OI(t,e,r){let n=normalize(e),o=normalize(r);t.set(n,o),t.set(`${n}/`,`${o}/`);}i(OI,"addPackAbsoluteDirMapping");function ZP(t){let e=new Set;for(let{relativePath:r}of t){let n=r.replace(/\\/g,"/"),o=dirname(n);for(;o!=="."&&o.length>0;){e.add(o);let s=dirname(o);if(s===o)break;o=s;}}return [...e]}i(ZP,"skillSupportingDirPrefixes");function EI(t,e,r,n,o){let s=Aa(e,o);if(!s)return;let a=join(n,".agentsmesh","packs");for(let l of r.skills){let c=dirname(l.source);if(!c.startsWith(a))continue;let m=normalize(join(n,s,l.name));OI(t,c,m),t.set(normalize(l.source),normalize(join(m,"SKILL.md")));for(let u of l.supportingFiles){let p=normalize(join(m,u.relativePath));t.set(normalize(u.absolutePath),p);}for(let u of ZP(l.supportingFiles))OI(t,join(c,u),join(m,u));}}i(EI,"addPackSkillArtifactMappings");function qP(t){return `.agentsmesh/rules/${t.source.split("/").pop()}`}i(qP,"canonicalRulePath");function QP(t){return `.github/instructions/${t.source.split("/").pop().replace(/\.md$/,"")}.instructions.md`}i(QP,"copilotInstructionsPath");function AI(t,e,r,n,o){if(!(t!=="copilot"||!n?.startsWith(".github/instructions/")))for(let s of o.rules)s.root||s.globs.length===0||e.set(normalize(join(r,qP(s))),normalize(join(r,QP(s))));}i(AI,"applyCopilotInstructionArtifactRefs");function Ka(t){return t?t.outputFamilies?.length?t.outputFamilies.filter(e=>e.kind==="additional").flatMap(e=>[...e.explicitPaths??[]]):[...t.additionalRootDecorationPaths??[]]:[]}i(Ka,"getAdditionalRootDecorationPaths");function bI(t,e){for(let r of t?.outputFamilies??[])if(r.pathPrefix!==void 0&&e.startsWith(r.pathPrefix)||r.explicitPaths?.includes(e))return r.id;return "default"}i(bI,"resolveRewriteFamilyId");function tx(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}i(tx,"directoryScopedRuleDir");function ex(t){return `.github/instructions/${t.source.split("/").pop().replace(/\.md$/,"")}.instructions.md`}i(ex,"copilotInstructionsPath");function Hr(t,e){e&&!t.includes(e)&&t.push(e);}i(Hr,"pushUnique");function TI(t,e,r,n){let o=[],s=r.get(`.agentsmesh/rules/${e.source.split("/").pop()}`);if(Hr(o,s),e.root){let a=pt(t,n);for(let l of Ka(a))Hr(o,l);}if(t==="copilot"&&!e.root&&e.globs.length>0&&Hr(o,ex(e)),(t==="cline"||t==="cursor")&&e.root&&n==="project"&&Hr(o,"AGENTS.md"),t==="windsurf"&&n==="project")if(e.root)Hr(o,"AGENTS.md");else {let a=tx(e.globs);a&&Hr(o,`${a}/AGENTS.md`);}if(t==="gemini-cli"&&Hr(o,ce),t==="codex-cli"&&!e.root&&e.codexEmit==="execution"){let a=e.source.split("/").pop().replace(/\.md$/,"");Hr(o,`${Ue}/${a}.rules`);}return o}i(TI,"extraRuleOutputPaths");function DI(t,e,r,n,o,s){if(e!=="global")return;let a=pt(t,e);if(!a?.mirrorGlobalPath)return;let l=a.mirrorGlobalPath(r,s??[]),c=l===null?[]:Array.isArray(l)?l:[l];for(let m of c)m!==r&&o.set(m,n);}i(DI,"addGlobalSkillMirrorSourceEntry");function rx(t){return `.agentsmesh/commands/${t.name}.md`}i(rx,"canonicalCommandPath");function nx(t){return `.agentsmesh/agents/${t.name}.md`}i(nx,"canonicalAgentPath");function ox(t){return `.agentsmesh/skills/${t.name}/SKILL.md`}i(ox,"canonicalSkillPath");function FI(t,e,r,n,o,s){let a=s?.scope??"project",l=new Map([...qs(t,e,r,a)].map(([c,m])=>[normalize(join(n,c)),normalize(join(n,m))]));return AI(t,l,n,o,e),EI(l,t,e,n,a),l}i(FI,"buildArtifactPathMap");function vI(t,e,r,n="project",o){let s=qs(t,e,r,n),a=new Map;for(let l of e.rules)for(let c of TI(t,l,s,n))a.set(c,l.source);for(let l of e.commands){let c=s.get(rx(l));c&&a.set(c,l.source);}for(let l of e.agents){let c=s.get(nx(l));c&&a.set(c,l.source);}for(let l of e.skills){let c=s.get(ox(l));c&&(a.set(c,l.source),DI(t,n,c,l.source,a,o));for(let m of l.supportingFiles){let u=`.agentsmesh/skills/${l.name}/${m.relativePath.replace(/\\/g,"/")}`,p=s.get(u);p&&(a.set(p,m.absolutePath),DI(t,n,p,m.absolutePath,a,o));}}return a}i(vI,"buildOutputSourceMap");function ax(t,e){if(!e)return null;for(let r of e){let n=Et(r);if(n?.sharedArtifacts){for(let[o,s]of Object.entries(n.sharedArtifacts))if(s==="owner"&&t.startsWith(o))return r}}return null}i(ax,"findSharedArtifactOwner");function GI(t,e,r){if(e==="global"){let n=ax(t.path,r);if(n)return n;let o=sd(t.path);if(o)return o}return t.target}i(GI,"artifactMapTargetForResult");function lx(t,e){return `${t}\0${(e??[]).join(",")}`}i(lx,"sourceMapCacheKey");function ou(t,e){let r=new Set;for(let n of e){let o=join(t,n.path);r.add(o);let s=dirname(o);for(;s.startsWith(t)&&!r.has(s)&&(r.add(s),s!==t);)s=dirname(s);}return r}i(ou,"collectPlannedPaths");function cx(t,e,r){let n=pt(t.target,e),o=bI(n,t.path);if(o!=="default")return `${t.target}:${o}`;let s=GI(t,e,r);return s===t.target?t.target:`${t.target}~via~${s}`}i(cx,"artifactCacheKey");function jI(t,e,r,n,o="project",s){let a=ou(n,t),l=new Map,c=new Map;return t.map(m=>{let u=lx(m.target,s),d=(c.get(u)??(()=>{let y=vI(m.target,e,r,o,s);return c.set(u,y),y})()).get(m.path);if(!d)return m;let f=GI(m,o,s),g=cx(m,o,s),I=l.get(g)??(()=>{let y=FI(f,e,r,n,m.path,{scope:o});return l.set(g,y),y})(),S=Ta({content:m.content,projectRoot:n,sourceFile:d,destinationFile:join(n,m.path),translatePath:i(y=>I.get(y)??y,"translatePath"),pathExists:i(y=>a.has(y)||existsSync(y),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:i(y=>{try{return statSync(y).isDirectory()}catch{return false}},"pathIsDirectory")});return S.content===m.content?m:{...m,content:S.content}})}i(jI,"rewriteGeneratedReferences");var px=/!?\[[^\]]*\]\(([^)]+)\)/g,dx=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function fx(t){return t.endsWith(".md")||t.endsWith(".mdc")}i(fx,"isMarkdownLikeOutput");function gx(t,e){return e.some(([r,n])=>t>=r&&t<n)}i(gx,"isOffsetInRanges");function hx(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}i(hx,"parseMarkdownLinkDestination");function yx(t){let e=t.trim();return !e||e.startsWith("#")||/^https?:\/\//i.test(e)||/^mailto:/i.test(e)||/^data:/i.test(e)||/^javascript:/i.test(e)||/^ftp:/i.test(e)?true:/^[a-zA-Z]:[\\/]/.test(e)?false:!!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)}i(yx,"shouldSkipLocalValidation");function Ix(t,e){if(e.has(t))return true;try{let r=statSync(t);return r.isFile()||r.isDirectory()}catch{return false}}i(Ix,"pathExistsForGenerate");function _x(t,e,r){let o=hx(t).split("#")[0]??"",{candidate:s}=No(o),a=s,l=Do.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(yx(c))return [];let m=Ws(c,e,r);if(m.length===0){let p=st(e),d=$(e,r);m=[$(e,p.join(p.dirname(d),c)),$(e,p.join(e,c))];}let u=[];for(let p of m)for(let d of Bs(e,p)){let f=$(e,d);u.includes(f)||u.push(f);}return u}i(_x,"resolveMarkdownLinkTargets");function Sx(t,e){let r=ou(e,t),n=[];for(let o of t){if(!fx(o.path))continue;let s=$(e,join(e,o.path)),a=ba(o.content),l=i((c,m)=>{if(gx(m,a))return;let u=_x(c,e,s);u.length!==0&&(u.some(p=>Ix(p,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:u}));},"visitDestination");for(let c of o.content.matchAll(px)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(dx)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}i(Sx,"findBrokenMarkdownLinks");function UI(t,e){let r=Sx(t,e);if(r.length===0)return;let n=r.map(o=>` ${o.generatePath} (${o.target}): "${o.rawLink}" \u2192 not found (tried: ${o.checkedPaths.join(", ")})`);throw new Error(`Generated markdown contains broken local links:
|
|
144
|
+
`+stringify(n);await S(r,o);}i(Di,"writeLock");async function Jr(t){if(!await N(t))return {};let e=await b(t),r={};for(let n of e){let o=relative(t,n).replace(/\\/g,"/");if(o===pp||!uL(o))continue;let s=await Al(n);s!==null&&(r[o]=s.startsWith("sha256:")?s:`sha256:${s}`);}return r}i(Jr,"buildChecksums");function Ll(t,e,r){if(r.length===0)return [];let n=r.map(a=>pL[a]).filter(a=>a!==void 0);if(n.length===0)return [];let o=new Set([...Object.keys(t),...Object.keys(e)]),s=[];for(let a of o)n.some(l=>l(a))&&t[a]!==e[a]&&s.push(a);return s}i(Ll,"detectLockedFeatureViolations");async function Fi(t){let e=await bl(t),r={};for(let{meta:n}of e)r[n.name]=n.content_hash;return r}i(Fi,"buildPackChecksums");async function uo(t){let e={};for(let r of t){if(r.version!==void 0){e[r.name]=r.version;continue}let n=join(r.resolvedPath,".agentsmesh"),o=await Jr(n),s=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
|
|
145
|
+
`),a=Ni(s),l=a.startsWith("sha256:")?a:`sha256:${a}`;e[r.name]=`local:${l}`;}return e}i(uo,"buildExtendChecksums");ot();Kr();function dL(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(dL,"addDirectoryMapping");function hR(t,e,r){let n=posix.dirname(e),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)dL(t,n,o),n=posix.dirname(n),o=posix.dirname(o);}i(hR,"addSkillDirectoryMappings");ot();function yR(t,e,r="project"){let n=ft(t,r);if(!n)return null;if(e.root)return n.rootInstructionPath??null;if(e.targets.length>0&&!e.targets.includes(t))return null;let o=basename(e.source,".md");return n.paths.rulePath(o,e)}i(yR,"ruleTargetPath");function IR(t,e,r,n="project"){let o=ft(t,n);return o?o.paths.commandPath(e,r):null}i(IR,"commandTargetPath");function SR(t,e,r,n="project"){let o=ft(t,n);return o?o.paths.agentPath(e,r):null}i(SR,"agentTargetPath");wt();dt();xt();ot();function hL(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(hL,"addDirectoryMapping");function vi(t,e,r,n="project"){let o=new Map;for(let a of e.rules){let l=yR(t,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of e.commands){let l=IR(t,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of e.agents){let l=SR(t,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let s=Oi(t,n);if(!s)return o;for(let a of e.skills){hL(o,`.agentsmesh/skills/${a.name}`,`${s}/${a.name}`),o.set(`.agentsmesh/skills/${a.name}/SKILL.md`,`${s}/${a.name}/SKILL.md`);for(let l of a.supportingFiles){let c=l.relativePath.replace(/\\/g,"/"),m=`.agentsmesh/skills/${a.name}/${c}`,u=`${s}/${a.name}/${c}`;o.set(m,u),hR(o,m,u);}}return o}i(vi,"buildReferenceMap");yr();var po="AGENTS.md";function yL(t){return t.target===Ns&&t.path.endsWith(po)}i(yL,"isCodexAgents");function _R(t){return t.target==="windsurf"&&t.path.endsWith(po)}i(_R,"isWindsurfAgents");function CR(t){return t.target==="cline"&&t.path.endsWith(po)}i(CR,"isClineAgents");function dp(t){return t.target==="cursor"&&t.path.endsWith(po)}i(dp,"isCursorAgents");function fp(t){return t.target==="gemini-cli"&&t.path.endsWith(po)}i(fp,"isGeminiAgents");function IL(t){return t.target==="kiro"&&t.path.endsWith(po)}i(IL,"isKiroAgents");function SL(t){return dp(t)||fp(t)}i(SL,"isCompatibilityAgents");function Dl(t,e,r,n){let o=n.get(t);if(o)return o;let s=new Map;for(let[a,l]of vi(t,e,r))s.has(l)||s.set(l,a);return n.set(t,s),s}i(Dl,"reverseReferenceMap");function Fl(t,e){let r=[...e.entries()].sort(([o],[s])=>s.length-o.length),n=t;for(let[o,s]of r)n=n.split(o).join(s);return n}i(Fl,"normalizeContent");function _L(t,e,r,n,o){let s=Dl(t.target,r,n,o),a=Dl(e.target,r,n,o);return Fl(t.content,s)===Fl(e.content,a)}i(_L,"hasEquivalentCanonicalContent");function CL(t,e,r,n,o){let s=Dl(t.target,r,n,o),a=Dl(e.target,r,n,o),l=Fl(t.content,s).trim(),c=Fl(e.content,a).trim();return l.length>c.length&&l.includes(c)}i(CL,"hasCanonicalSupersetContent");function RR(t,e,r){let n=new Map;for(let a of t){if(!a.path.endsWith(po))continue;let l=n.get(a.path)??new Set;l.add(a.target),n.set(a.path,l);}let o=new Map;for(let a of t)yL(a)&&o.set(a.path,a);let s=new Map;return t.filter(a=>{if(dp(a)){let c=n.get(a.path);if(c&&[...c].some(m=>m!=="cursor"))return false}if(fp(a)){let c=n.get(a.path);if(c&&[...c].some(m=>m!=="cursor"&&m!=="gemini-cli"))return false}if(!_R(a)&&!CR(a)&&!dp(a)&&!fp(a)&&!IL(a))return true;let l=o.get(a.path);return l?SL(a)||_R(a)||CR(a)?false:!(_L(l,a,e,r,s)||CL(l,a,e,r,s)):true})}i(RR,"preferEquivalentCodexAgents");Gt();rp();Gt();Gt();ot();function kR(t,e,r,n){let o=n.normalize(e),s=n.normalize(r);t.set(o,s),t.set(`${o}/`,`${s}/`);}i(kR,"addPackAbsoluteDirMapping");function RL(t){let e=new Set;for(let{relativePath:r}of t){let n=r.replace(/\\/g,"/"),o=dirname(n);for(;o!=="."&&o.length>0;){e.add(o);let s=dirname(o);if(s===o)break;o=s;}}return [...e]}i(RL,"skillSupportingDirPrefixes");function wR(t,e,r,n,o){let s=Oi(e,o);if(!s)return;let a=Y(n),l=a.join(n,".agentsmesh","packs");for(let c of r.skills){let m=dirname(c.source);if(!m.startsWith(l))continue;let u=a.normalize(a.join(n,s,c.name));kR(t,m,u,a),t.set(a.normalize(c.source),a.normalize(a.join(u,"SKILL.md")));for(let p of c.supportingFiles){let d=a.normalize(a.join(u,p.relativePath));t.set(a.normalize(p.absolutePath),d);}for(let p of RL(c.supportingFiles))kR(t,a.join(m,p),a.join(u,p),a);}}i(wR,"addPackSkillArtifactMappings");Gt();function kL(t){return `.agentsmesh/rules/${basename(t.source)}`}i(kL,"canonicalRulePath");function wL(t){return `.github/instructions/${basename(t.source,".md")}.instructions.md`}i(wL,"copilotInstructionsPath");function ER(t,e,r,n,o){if(t!=="copilot"||!n?.startsWith(".github/instructions/"))return;let s=Y(r);for(let a of o.rules)a.root||a.globs.length===0||e.set(s.normalize(s.join(r,kL(a))),s.normalize(s.join(r,wL(a))));}i(ER,"applyCopilotInstructionArtifactRefs");ot();function vl(t){return t?(t.outputFamilies??[]).filter(e=>e.kind==="additional").flatMap(e=>[...e.explicitPaths??[]]):[]}i(vl,"getAdditionalRootDecorationPaths");function PR(t,e){for(let r of t?.outputFamilies??[])if(r.pathPrefix!==void 0&&e.startsWith(r.pathPrefix)||r.explicitPaths?.includes(e))return r.id;return "default"}i(PR,"resolveRewriteFamilyId");function hp(t,e){e!==void 0&&e.length>0&&!t.includes(e)&&t.push(e);}i(hp,"pushUnique");function xR(t,e,r,n){let o=[],s=r.get(`.agentsmesh/rules/${basename(e.source)}`);hp(o,s);let a=ft(t,n);if(e.root)for(let l of vl(a))hp(o,l);for(let l of a?.extraRuleOutputPaths?.(e,{refs:r,scope:n})??[])hp(o,l);return o}i(xR,"extraRuleOutputPaths");ot();function bR(t,e,r,n,o,s){if(e!=="global")return;let a=ft(t,e);if(!a?.mirrorGlobalPath)return;let l=a.mirrorGlobalPath(r,s??[]),c=l===null?[]:Array.isArray(l)?l:[l];for(let m of c)m!==r&&o.set(m,n);}i(bR,"addGlobalSkillMirrorSourceEntry");function EL(t){return `.agentsmesh/commands/${t.name}.md`}i(EL,"canonicalCommandPath");function PL(t){return `.agentsmesh/agents/${t.name}.md`}i(PL,"canonicalAgentPath");function xL(t){return `.agentsmesh/skills/${t.name}/SKILL.md`}i(xL,"canonicalSkillPath");function AR(t,e,r,n,o,s){let a=s?.scope??"project",l=Y(n),c=new Map([...vi(t,e,r,a)].map(([m,u])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,u))]));return ER(t,c,n,o,e),wR(c,t,e,n,a),c}i(AR,"buildArtifactPathMap");function TR(t,e,r,n="project",o){let s=vi(t,e,r,n),a=new Map;for(let l of e.rules)for(let c of xR(t,l,s,n))a.set(c,l.source);for(let l of e.commands){let c=s.get(EL(l));c&&a.set(c,l.source);}for(let l of e.agents){let c=s.get(PL(l));c&&a.set(c,l.source);}for(let l of e.skills){let c=s.get(xL(l));c&&(a.set(c,l.source),bR(t,n,c,l.source,a,o));for(let m of l.supportingFiles){let u=`.agentsmesh/skills/${l.name}/${m.relativePath.replace(/\\/g,"/")}`,p=s.get(u);p&&(a.set(p,m.absolutePath),bR(t,n,p,m.absolutePath,a,o));}}return a}i(TR,"buildOutputSourceMap");ot();fc();function TL(t,e){if(!e)return null;for(let r of e){let n=Mt(r);if(n?.sharedArtifacts){for(let[o,s]of Object.entries(n.sharedArtifacts))if(s==="owner"&&t.startsWith(o))return r}}return null}i(TL,"findSharedArtifactOwner");function LR(t,e,r){if(e==="global"){let n=TL(t.path,r);if(n)return n;let o=gf(t.path);if(o)return o}return t.target}i(LR,"artifactMapTargetForResult");function LL(t,e){return `${t}\0${(e??[]).join(",")}`}i(LL,"sourceMapCacheKey");function yp(t,e){let r=Y(t),n=new Set;for(let o of e){let s=r.join(t,o.path);n.add(s);let a=r.dirname(s);for(;a.startsWith(t)&&!n.has(a)&&(n.add(a),a!==t);)a=r.dirname(a);}return n}i(yp,"collectPlannedPaths");function NL(t,e,r){let n=ft(t.target,e),o=PR(n,t.path);if(o!=="default")return `${t.target}:${o}`;let s=LR(t,e,r);return s===t.target?t.target:`${t.target}~via~${s}`}i(NL,"artifactCacheKey");function NR(t,e,r,n,o="project",s){let a=yp(n,t),l=new Map,c=new Map;return t.map(m=>{let u=LL(m.target,s),d=(c.get(u)??(()=>{let I=TR(m.target,e,r,o,s);return c.set(u,I),I})()).get(m.path);if(!d)return m;let f=LR(m,o,s),h=NL(m,o,s),C=l.get(h)??(()=>{let I=AR(f,e,r,n,m.path,{scope:o});return l.set(h,I),I})(),R=kl({content:m.content,projectRoot:n,sourceFile:d,destinationFile:Y(n).join(n,m.path),translatePath:i(I=>C.get(I)??I,"translatePath"),pathExists:i(I=>a.has(I)||existsSync(I),"pathExists"),explicitCurrentDirLinks:true,rewriteBarePathTokens:true,scope:o,pathIsDirectory:i(I=>{try{return statSync(I).isDirectory()}catch{return false}},"pathIsDirectory")});return R.content===m.content?m:{...m,content:R.content}})}i(NR,"rewriteGeneratedReferences");Gt();Cn();var FL=/!?\[[^\]]*\]\(([^)]+)\)/g,vL=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function $L(t){return t.endsWith(".md")||t.endsWith(".mdc")}i($L,"isMarkdownLikeOutput");function ML(t,e){return e.some(([r,n])=>t>=r&&t<n)}i(ML,"isOffsetInRanges");function GL(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}i(GL,"parseMarkdownLinkDestination");function jL(t){let e=t.trim();return !e||e.startsWith("#")||/^https?:\/\//i.test(e)||/^mailto:/i.test(e)||/^data:/i.test(e)||/^javascript:/i.test(e)||/^ftp:/i.test(e)?true:/^[a-zA-Z]:[\\/]/.test(e)?false:!!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(e)}i(jL,"shouldSkipLocalValidation");function UL(t,e){if(e.has(t))return true;try{let r=statSync(t);return r.isFile()||r.isDirectory()}catch{return false}}i(UL,"pathExistsForGenerate");function WL(t,e,r){let o=GL(t).split("#")[0]??"",{candidate:s}=ys(o),a=s,l=Is.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(jL(c))return [];let m=Ei(c,e,r);if(m.length===0){let p=Y(e),d=j(e,r);m=[j(e,p.join(p.dirname(d),c)),j(e,p.join(e,c))];}let u=[];for(let p of m)for(let d of Pi(e,p)){let f=j(e,d);u.includes(f)||u.push(f);}return u}i(WL,"resolveMarkdownLinkTargets");function BL(t,e){let r=yp(e,t),n=[];for(let o of t){if(!$L(o.path))continue;let s=j(e,Y(e).join(e,o.path)),a=Rl(o.content),l=i((c,m)=>{if(ML(m,a))return;let u=WL(c,e,s);u.length!==0&&(u.some(p=>UL(p,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:u}));},"visitDestination");for(let c of o.content.matchAll(FL)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(vL)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}i(BL,"findBrokenMarkdownLinks");function DR(t,e){let r=BL(t,e);if(r.length===0)return;let n=r.map(o=>` ${o.generatePath} (${o.target}): "${o.rawLink}" \u2192 not found (tried: ${o.checkedPaths.join(", ")})`);throw new Error(`Generated markdown contains broken local links:
|
|
146
146
|
${n.join(`
|
|
147
147
|
`)}
|
|
148
|
-
Fix canonical sources or generators so every local link targets an existing file or folder.`)}i(UI,"validateGeneratedMarkdownLinks");var BI="AGENTS.md";function WI(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}i(WI,"statusRank");function Cx(t,e){return WI(e.status)<=WI(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}i(Cx,"mergeDuplicateMetadata");function Ha(t){return t.trim()}i(Ha,"trimmedContent");function Rx(t,e){if(!t.path.endsWith(BI)||t.path!==e.path)return null;let r=Ha(t.content),n=Ha(e.content);if(!r||!n)return null;let o=r.includes(n),s=n.includes(r);return o===s?null:o?t:e}i(Rx,"richerAgentsResult");function kx(t,e){if(!t.path.endsWith(BI)||t.path!==e.path)return null;let r=t.target===Xo?t:e.target===Xo?e:null,n=r===t?e:t;return r&&Ha(r.content).length>Ha(n.content).length?r:null}i(kx,"richerCodexAgentsResult");function KI(t){let e=[];for(let r of t){let n=e.findIndex(s=>s.path===r.path);if(n===-1){e.push(r);continue}let o=e[n];if(o.content!==r.content){let s=Rx(o,r);if(s){e[n]=s;continue}let a=kx(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]=Cx(o,r);}return e}i(KI,"resolveOutputCollisions");function HI(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}i(HI,"refreshResultStatus");function Go(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(Go,"computeStatus");function su(t,e,r){let n=En(t,r);if(!n){let o=V(t);if(o){let s=r==="global"?o.globalSupport?.capabilities??o.globalCapabilities??o.capabilities:o.capabilities;n=_i(s);}}return {capability:n?.[e]??{level:"none"},scope:r}}i(su,"featureContext");async function Dn(t,e,r,n,o,s,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let u=su(c,a,s);for(let p of m(r,u)){let d=Lo(c,p.path,s);if(d===null){let I=V(c);if(!I)continue;let S=s==="global"?I.globalSupport?.layout??I.global??I.project:I.project;if(d=S.rewriteGeneratedPath?S.rewriteGeneratedPath(p.path):p.path,d===null)continue}let f=await h(join(n,d));t.push({target:c,path:d,content:p.content,currentContent:f??void 0,status:Go(f,p.content)});let g=pt(c,s);if(!g){let I=V(c);g=I!==void 0?s==="global"?I.globalSupport?.layout??I.global??I.project:I.project:void 0;}if(g?.mirrorGlobalPath){let I=g.mirrorGlobalPath(d,e),S=I===null?[]:Array.isArray(I)?I:[I];for(let y of S){let k=await h(join(n,y));t.push({target:c,path:y,content:p.content,currentContent:k??void 0,status:Go(k,p.content)});}}}}}i(Dn,"generateFeature");function wx(t){return t?.rootInstructionPath?[t.rootInstructionPath,...Ka(t)]:[]}i(wx,"rootDecorationPaths");function VI(t,e,r="project"){return t.map(n=>{let o=pt(n.target,r);if(!o)return n;let s=wx(o);if(s.length===0||!s.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(e):n.content,c=Zd(l);return c===n.content?n:{...n,content:c}})}i(VI,"decoratePrimaryRootInstructions");var iu=[".claude/settings.json",".gemini/settings.json"],Ox=z.object({permissions:z.object({allow:z.array(z.string()).optional(),deny:z.array(z.string()).optional()}).passthrough().optional(),hooks:z.record(z.string(),z.unknown()).optional()}).passthrough(),Ex=z.object({mcpServers:z.record(z.string(),z.unknown()).optional(),hooks:z.record(z.string(),z.unknown()).optional(),experimental:z.record(z.string(),z.unknown()).optional(),context:z.record(z.string(),z.unknown()).optional()}).passthrough();function JI(t){try{let e=JSON.parse(t);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return {}}}i(JI,"parseJsonObject");function au(t,e){let r=JI(t),n=Ox.parse(JSON.parse(e)),o={...r};n.permissions!==void 0&&(o.permissions=n.permissions),n.hooks!==void 0&&(o.hooks=n.hooks);let s=o.permissions;return s&&typeof s=="object"&&!Array.isArray(s)&&!("ask"in s)&&(s.ask=[]),JSON.stringify(o,null,2)}i(au,"mergeSettingsJson");function YI(t,e){let r=JI(t),n=Ex.parse(JSON.parse(e)),o={...r};return n.mcpServers!==void 0&&(o.mcpServers=n.mcpServers),n.hooks!==void 0&&(o.hooks=n.hooks),n.experimental!==void 0&&(o.experimental=n.experimental),n.context!==void 0&&(o.context=n.context),JSON.stringify(o,null,2)}i(YI,"mergeGeminiSettingsJson");async function XI(t,e,r,n,o){for(let s of e){let a=Us(s,"permissions",void 0,o)??V(s)?.generators.generatePermissions;if(a)for(let l of a(r)){let c=Lo(s,l.path,o);if(c===null){let p=V(s);if(!p)continue;let d=o==="global"?p.globalSupport?.layout??p.global??p.project:p.project;if(c=d.rewriteGeneratedPath?d.rewriteGeneratedPath(l.path):l.path,c===null)continue}let m=await h(join(n,c)),u=m!==null&&iu.includes(c)?au(m,l.content):l.content;t.push({target:s,path:c,content:u,currentContent:m??void 0,status:Go(m,u)});}}}i(XI,"generatePermissionsFeature");async function ZI(t,e,r,n,o,s){for(let a of e){let l=Us(a,"hooks",s,o)??V(a)?.generators.generateHooks;if(!l)continue;let c=su(a,"hooks",o),m=[...l(r,c)],p=(Et(a)??V(a))?.postProcessHookOutputs;p&&(m=[...await p(n,r,m)]);for(let d of m){let f=Lo(a,d.path,o);if(f===null){let S=V(a);if(!S)continue;let y=o==="global"?S.globalSupport?.layout??S.global??S.project:S.project;if(f=y.rewriteGeneratedPath?y.rewriteGeneratedPath(d.path):d.path,f===null)continue}let g=await h(join(n,f)),I=d.content;if(iu.includes(f)){let S=t.findIndex(E=>E.path===f&&E.target===a),k=(S>=0?t[S]:void 0)?.content??g;k!==null&&(I=au(k,d.content)),S>=0&&t.splice(S,1);}t.push({target:a,path:f,content:I,currentContent:g??void 0,status:Go(g,I)});}}}i(ZI,"generateHooksFeature");async function qI(t,e,r,n,o){for(let s of e){let l=(Et(s)??V(s))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c){let u=Lo(s,m.path,o);if(u===null){let f=V(s);if(!f)continue;let g=o==="global"?f.globalSupport?.layout??f.global??f.project:f.project;if(u=g.rewriteGeneratedPath?g.rewriteGeneratedPath(m.path):m.path,u===null)continue}let p=await h(join(n,u)),d=p!==null&&u===Gr?YI(p,m.content):m.content;t.push({target:s,path:u,content:d,currentContent:p??void 0,status:Go(p,d)});}}}i(qI,"generateScopedSettingsFeature");async function za(t){let{config:e,canonical:r,projectRoot:n,scope:o="project",targetFilter:s}=t,a=[...e.targets,...e.pluginTargets??[]],l=s?a.filter(x=>s.includes(x)):a;function c(x,U){return Us(x,U,e,o)}i(c,"resolveGen");let m=e.features.includes("rules"),u=e.features.includes("commands"),p=e.features.includes("agents"),d=e.features.includes("skills"),f=e.features.includes("mcp"),g=e.features.includes("permissions"),I=e.features.includes("hooks"),S=e.features.includes("ignore"),y=[];await Dn(y,l,r,n,m,o,"rules",x=>c(x,"rules")),await Dn(y,l,r,n,u,o,"commands",x=>c(x,"commands")),await Dn(y,l,r,n,p,o,"agents",x=>c(x,"agents")),await Dn(y,l,r,n,d,o,"skills",x=>c(x,"skills")),await Dn(y,l,r,n,f,o,"mcp",x=>c(x,"mcp")),g&&await XI(y,l,r,n,o),I&&await ZI(y,l,r,n,o,e),await Dn(y,l,r,n,S,o,"ignore",x=>c(x,"ignore"));let k=new Set(e.features);for(let x of l){let U=Et(x)??V(x),F=U?.globalSupport?.scopeExtras??U?.generateScopeExtras;if(F){let j=await F(r,n,o,k);y.push(...j);}}(f||S||I||p||g)&&await qI(y,l,r,n,o);let E=VI(y,r,o),O=jI(E,r,e,n,o,l);return UI(O,n),KI(wI(O.map(HI),r,e))}i(za,"generate");async function QI(t,e=t){let r=await readdir(t,{withFileTypes:true}),n=[];for(let o of r){let s=join(t,o.name);if(o.isDirectory()){n.push(...await QI(s,e));continue}n.push(relative(e,s).replace(/\\/g,"/"));}return n}i(QI,"listFiles");async function bx(t,e,r){if(r.has(e))return;let n=join(t,e);await T(n)&&await rm(n,{recursive:true,force:true});}i(bx,"removeIfStale");async function t_(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let s=Ly(o,n);if(s){for(let a of s.files)r.add(a);for(let a of s.dirs){let l=join(t.projectRoot,a);if(await T(l))for(let c of await QI(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await bx(t.projectRoot,o,e);}i(t_,"cleanupStaleGeneratedOutputs");var vx=6e4,$x=30,Mx=200;async function mu(t,e={}){let r=e.retries??$x,n=e.retryDelayMs??Mx,o=e.staleMs??vx;await mkdir(dirname(t),{recursive:true});let s=0;for(;;){let a=await Gx(t);if(a)return a;let l=await jx(t);if(Ux(l,o)){await rm(t,{recursive:true,force:true}).catch(()=>{});continue}if(s>=r)throw new mi(t,Bx(l));s++,await Hx(n);}}i(mu,"acquireProcessLock");async function Gx(t){try{await mkdir(t,{recursive:!1});}catch(s){if(s.code==="EEXIST")return null;throw s}let e=join(t,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:o_()};await writeFile(e,JSON.stringify(r),"utf-8");let n=false,o=i(()=>{if(!n){n=true;try{rmSync(t,{recursive:!0,force:!0});}catch{}}},"signalHandler");return process.once("SIGINT",o),process.once("SIGTERM",o),process.once("exit",o),async()=>{n||(n=true,process.off("SIGINT",o),process.off("SIGTERM",o),process.off("exit",o),await rm(t,{recursive:true,force:true}).catch(()=>{}));}}i(Gx,"tryAcquire");async function jx(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return Kx(r)?r:null}catch{return null}}i(jx,"inspectLock");function Ux(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==o_()?false:!Wx(t.pid)}i(Ux,"isStale");function Wx(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}i(Wx,"isProcessAlive");function Bx(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}i(Bx,"describeHolder");function Kx(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}i(Kx,"isLockMetadata");function o_(){return hostname()}i(o_,"getHostname");function Hx(t){return new Promise(e=>setTimeout(e,t))}i(Hx,"sleep");var Cr=z.union([z.enum(["native","embedded","partial","none"]),z.object({level:z.enum(["native","embedded","partial","none"]),flavor:z.string().optional()})]),zx=z.object({rules:Cr,additionalRules:Cr,commands:Cr,agents:Cr,skills:Cr,mcp:Cr,hooks:Cr,ignore:Cr,permissions:Cr}),Vx=z.object({name:z.string(),generateRules:z.function(),importFrom:z.function(),generateCommands:z.function().optional(),generateAgents:z.function().optional(),generateSkills:z.function().optional(),generateMcp:z.function().optional(),generatePermissions:z.function().optional(),generateHooks:z.function().optional(),generateIgnore:z.function().optional(),lint:z.function().optional()}).passthrough(),Jx=z.object({rulePath:z.function(),commandPath:z.function(),agentPath:z.function()}),Yx=z.object({paths:Jx}).passthrough(),Xx=z.object({id:z.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),generators:Vx,capabilities:zx,emptyImportMessage:z.string(),lintRules:z.union([z.function(),z.null()]),project:Yx,buildImportPaths:z.function(),detectionPaths:z.array(z.string())}).passthrough();function s_(t){return Xx.parse(t)}i(s_,"validateDescriptor");async function tA(t,e){let{source:r}=t,n;if(r.startsWith("file:")||r.startsWith("./")||r.startsWith("../")||r.startsWith("/")){let s=r.startsWith("file:")?fileURLToPath(r):resolve(e,r);n=pathToFileURL(s).href;}else n=r;return await import(n)}i(tA,"importPluginModule");function eA(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}i(eA,"extractDescriptors");async function Va(t,e){let r;try{r=await tA(t,e);}catch(s){throw new Error(`Plugin '${t.source}' failed to import: ${s instanceof Error?s.message:String(s)}`,{cause:s})}let n=eA(r),o=[];for(let s of n)try{let a=s_(s);od(a),o.push(a);}catch(a){throw new Error(`Plugin '${t.source}' exported an invalid descriptor: ${a instanceof Error?a.message:String(a)}`,{cause:a})}return {entry:t,descriptors:o}}i(Va,"loadPlugin");async function i_(t,e){let r=[];return await Promise.all(t.map(async n=>{try{let o=await Va(n,e);r.push(o);}catch(o){C.warn(`Plugin '${n.source}' failed to load: ${o instanceof Error?o.message:String(o)}`);}})),r}i(i_,"loadAllPlugins");async function Vt(t,e){t.plugins.length!==0&&await i_(t.plugins,e);}i(Vt,"bootstrapPlugins");function uu(t,e,r="project"){let n=[],o=[...t.targets,...t.pluginTargets??[]];for(let s of t.features){let a,l;switch(s){case "rules":l=e.rules.length,a="rules";break;case "commands":l=e.commands.length,a=l>0?`commands (${l})`:"commands";break;case "agents":l=e.agents.length,a=l>0?`agents (${l})`:"agents";break;case "skills":l=e.skills.length,a=l>0?`skills (${l})`:"skills";break;case "mcp":l=e.mcp?Object.keys(e.mcp.mcpServers).length:0,a=l>0?`mcp (${l} servers)`:"mcp";break;case "hooks":l=rA(e.hooks),a=l>0?`hooks (${l})`:"hooks";break;case "ignore":l=e.ignore.length>0?1:0,a="ignore";break;case "permissions":l=e.permissions&&(e.permissions.allow.length>0||e.permissions.deny.length>0)?1:0,a="permissions";break;default:continue}let c={};for(let m of o)c[m]=Um(m,s,t,r);if(n.push({feature:a,count:l,support:c}),s==="rules"){let m=e.rules.filter(u=>!u.root);if(m.length>0){let u={};for(let p of o)u[p]=Um(p,"additionalRules",t,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:u});}}}return n}i(uu,"buildCompatibilityMatrix");function rA(t){if(!t)return 0;let e=0;for(let r of Object.values(t))Array.isArray(r)&&(e+=r.length);return e}i(rA,"countHooks");var nA={"claude-code":"Claude"};function a_(t){return nA[t]??t}i(a_,"matrixColumnLabel");var oA=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];function l_(t){return Object.fromEntries(oA.map(e=>[e,Object.fromEntries(at.map(r=>{let o=En(r,t)?.[e];return [r,o??{level:"none"}]}))]))}i(l_,"buildSupportMatrix");l_("project");l_("global");var pu={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},Qs={green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",dim:"\x1B[2m",reset:"\x1B[0m"};function sA(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}i(sA,"noColor");function iA(t,e){return sA()?e:`${t}${e}${Qs.reset}`}i(iA,"colorize");var aA={native:Qs.green,embedded:Qs.blue,partial:Qs.yellow,none:Qs.dim};function c_(t){let e=pu[t];return iA(aA[t],e)}i(c_,"coloredSymbol");function du(t,e){let r=process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!=="",n={cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",dim:"\x1B[2m",green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",reset:"\x1B[0m"},o=i((F,j)=>r?j:`${F}${j}${n.reset}`,"c"),s=i(F=>F.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=i((F,j)=>{let z=s(F),tt=Math.max(0,j-z);return F+" ".repeat(tt)},"padWithColor"),l=Math.max(12,...e.map(F=>F.length)),c=e.map(F=>a_(F)),m=Math.max(8,l),u=Math.max(12,...t.map(F=>F.feature.length)),p=i(F=>o(n.dim,"\u250C"+F.map(j=>"\u2500".repeat(j)).join("\u252C")+"\u2510"),"border"),d=i(F=>o(n.dim,"\u251C"+F.map(j=>"\u2500".repeat(j)).join("\u253C")+"\u2524"),"sep"),f=i(F=>o(n.dim,"\u2514"+F.map(j=>"\u2500".repeat(j)).join("\u2534")+"\u2518"),"bottom"),g=[u,...e.map(()=>m)],I=p(g),S=[a(o(n.bold+n.cyan,"Feature"),u),...c.map(F=>a(o(n.bold+n.magenta,F),m))],y=o(n.dim,"\u2502")+S.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),k=d(g),E=t.map(F=>{let j=[a(o(n.cyan,F.feature),u)];for(let z of e){let tt=F.support[z]??"none",J=r?pu[tt]:c_(tt);j.push(a(` ${J} `,m));}return o(n.dim,"\u2502")+j.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),O=f(g),x=[I,y,k,...E,O];x.push("");let U=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return x.push(o(n.bold,"Legend: ")+U.join(" ")),x.join(`
|
|
149
|
-
`)}i(
|
|
148
|
+
Fix canonical sources or generators so every local link targets an existing file or folder.`)}i(DR,"validateGeneratedMarkdownLinks");yr();var vR="AGENTS.md";function FR(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}i(FR,"statusRank");function KL(t,e){return FR(e.status)<=FR(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}i(KL,"mergeDuplicateMetadata");function $l(t){return t.trim()}i($l,"trimmedContent");function HL(t,e){if(!t.path.endsWith(vR)||t.path!==e.path)return null;let r=$l(t.content),n=$l(e.content);if(!r||!n)return null;let o=r.includes(n),s=n.includes(r);return o===s?null:o?t:e}i(HL,"richerAgentsResult");function zL(t,e){if(!t.path.endsWith(vR)||t.path!==e.path)return null;let r=t.target===Ns?t:e.target===Ns?e:null,n=r===t?e:t;return r&&$l(r.content).length>$l(n.content).length?r:null}i(zL,"richerCodexAgentsResult");function $R(t){let e=[];for(let r of t){let n=e.findIndex(s=>s.path===r.path);if(n===-1){e.push(r);continue}let o=e[n];if(o.content!==r.content){let s=HL(o,r);if(s){e[n]=s;continue}let a=zL(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]=KL(o,r);}return e}i($R,"resolveOutputCollisions");function MR(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}i(MR,"refreshResultStatus");E();ot();Kr();function jR(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(jR,"computeStatus");function VL(t,e,r){let n=Yu(t,e,r);if(n!==null)return n;let o=et(t);if(!o)return null;let s=r==="global"?o.globalSupport?.layout:o.project;return s?(n=s.rewriteGeneratedPath?s.rewriteGeneratedPath(e):e,n):null}i(VL,"resolveGeneratedOutputPath");async function $i(t,e,r,n,o,s){let a=VL(e,r.path,o);if(a===null)return null;let l=await y(join(n,a)),c=t.findIndex(p=>p.path===a&&p.target===e),m=c>=0?t[c]:void 0,u=s?.mergeContent?.(l,m,r.content,a)??r.content;return c>=0&&t.splice(c,1),t.push({target:e,path:a,content:u,currentContent:l??void 0,status:jR(l,u)}),a}i($i,"emitGeneratedOutput");function Ip(t,e,r){return {capability:yn(t,r)?.[e]??{level:"none"},scope:r}}i(Ip,"featureContext");async function fo(t,e,r,n,o,s,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let u=Ip(c,a,s);for(let p of m(r,u)){let d=await $i(t,c,p,n,s);if(d===null)continue;let f=ft(c,s);if(f?.mirrorGlobalPath){let h=f.mirrorGlobalPath(d,e),C=h===null?[]:Array.isArray(h)?h:[h];for(let R of C){let I=await y(join(n,R));t.push({target:c,path:R,content:p.content,currentContent:I??void 0,status:jR(I,p.content)});}}}}}i(fo,"generateFeature");Cm();ot();function JL(t){return t?.rootInstructionPath?[t.rootInstructionPath,...vl(t)]:[]}i(JL,"rootDecorationPaths");function UR(t,e,r="project"){return t.map(n=>{let o=ft(n.target,r);if(!o)return n;let s=JL(o);if(s.length===0||!s.includes(n.path))return n;let l=n.path===o.rootInstructionPath&&o.renderPrimaryRootInstruction?o.renderPrimaryRootInstruction(e):n.content,c=Gg(l);return c===n.content?n:{...n,content:c}})}i(UR,"decoratePrimaryRootInstructions");ot();Kr();lu();function Sp(t,e,r,n,o){let a=(Mt(t)??et(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&zI.includes(o)?JI(l,n):n}i(Sp,"mergeOutputContent");async function WR(t,e,r,n,o){for(let s of e){let a=hs(s,"permissions",void 0,o)??et(s)?.generators.generatePermissions;if(a)for(let l of a(r))await $i(t,s,l,n,o,{mergeContent:i((c,m,u,p)=>Sp(s,c,m,u,p),"mergeContent")});}}i(WR,"generatePermissionsFeature");async function BR(t,e,r,n,o,s){for(let a of e){let l=hs(a,"hooks",s,o)??et(a)?.generators.generateHooks;if(!l)continue;let c=Ip(a,"hooks",o),m=[...l(r,c)],p=(Mt(a)??et(a))?.postProcessHookOutputs;p&&(m=[...await p(n,r,m)]);for(let d of m)await $i(t,a,d,n,o,{mergeContent:i((f,h,C,R)=>Sp(a,f,h,C,R),"mergeContent")});}}i(BR,"generateHooksFeature");async function KR(t,e,r,n,o){for(let s of e){let l=(Mt(s)??et(s))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await $i(t,s,m,n,o,{mergeContent:i((u,p,d,f)=>Sp(s,u,p,d,f),"mergeContent")});}}i(KR,"generateScopedSettingsFeature");async function Ml(t){let{config:e,canonical:r,projectRoot:n,scope:o="project",targetFilter:s}=t,a=[...e.targets,...e.pluginTargets??[]],l=s?a.filter(A=>s.includes(A)):a;function c(A,K){return hs(A,K,e,o)}i(c,"resolveGen");let m=e.features.includes("rules"),u=e.features.includes("commands"),p=e.features.includes("agents"),d=e.features.includes("skills"),f=e.features.includes("mcp"),h=e.features.includes("permissions"),C=e.features.includes("hooks"),R=e.features.includes("ignore"),I=[];await fo(I,l,r,n,m,o,"rules",A=>c(A,"rules")),await fo(I,l,r,n,u,o,"commands",A=>c(A,"commands")),await fo(I,l,r,n,p,o,"agents",A=>c(A,"agents")),await fo(I,l,r,n,d,o,"skills",A=>c(A,"skills")),await fo(I,l,r,n,f,o,"mcp",A=>c(A,"mcp")),h&&await WR(I,l,r,n,o),C&&await BR(I,l,r,n,o,e),await fo(I,l,r,n,R,o,"ignore",A=>c(A,"ignore"));let O=new Set(e.features);for(let A of l){let M=(Mt(A)??et(A))?.globalSupport?.scopeExtras;if(M){let B=await M(r,n,o,O);I.push(...B);}}(f||R||C||p||h)&&await KR(I,l,r,n,o);let x=UR(I,r,o),P=NR(x,r,e,n,o,l);return DR(P,n),$R(RR(P.map(MR),r,e))}i(Ml,"generate");E();ot();async function HR(t,e=t){let r=await readdir(t,{withFileTypes:true}),n=[];for(let o of r){let s=join(t,o.name);if(o.isDirectory()){n.push(...await HR(s,e));continue}n.push(relative(e,s).replace(/\\/g,"/"));}return n}i(HR,"listFiles");async function qL(t,e,r){if(r.has(e))return;let n=join(t,e);await N(n)&&await rm$1(n,{recursive:true,force:true});}i(qL,"removeIfStale");async function zR(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let s=Ju(o,n);if(s){for(let a of s.files)r.add(a);for(let a of s.dirs){let l=join(t.projectRoot,a);if(await N(l))for(let c of await HR(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await qL(t.projectRoot,o,e);}i(zR,"cleanupStaleGeneratedOutputs");E();Ls();var sN=6e4,iN=30,aN=200,lN=2e3;async function Cp(t,e={}){let r=e.retries??iN,n=e.retryDelayMs??aN,o=e.staleMs??sN;await mkdir(dirname(t),{recursive:true});let s=0;for(;;){let a=await cN(t);if(a)return a;let l=await mN(t);if(l!=="young"&&uN(l,o)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(s>=r){let c=l==="young"?null:l;throw new Zi(t,dN(c))}s++,await gN(n);}}i(Cp,"acquireProcessLock");async function cN(t){try{await mkdir(t,{recursive:!1});}catch(s){if(s.code==="EEXIST")return null;throw s}let e=join(t,"holder.json"),r={pid:process.pid,started:Date.now(),hostname:XR()};await writeFile(e,JSON.stringify(r),"utf-8");let n=false,o=i(()=>{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(()=>{}));}}i(cN,"tryAcquire");async function mN(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return fN(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<lN)return "young"}catch{}return null}}i(mN,"inspectLock");function uN(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==XR()?false:!pN(t.pid)}i(uN,"isStale");function pN(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}i(pN,"isProcessAlive");function dN(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}i(dN,"describeHolder");function fN(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}i(fN,"isLockMetadata");function XR(){return hostname()}i(XR,"getHostname");function gN(t){return new Promise(e=>setTimeout(e,t))}i(gN,"sleep");Xu();Kr();async function SN(t,e){let{source:r}=t,n;if(r.startsWith("file:")||r.startsWith("./")||r.startsWith("../")||r.startsWith("/")){let s=r.startsWith("file:")?fileURLToPath(r):resolve(e,r);n=pathToFileURL(s).href;}else n=r;return await import(n)}i(SN,"importPluginModule");function _N(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}i(_N,"extractDescriptors");async function Gl(t,e){let r;try{r=await SN(t,e);}catch(s){throw new Error(`Plugin '${t.source}' failed to import: ${s instanceof Error?s.message:String(s)}`,{cause:s})}let n=_N(r),o=[];for(let s of n)try{let a=Cl(s);CC(a),o.push(a);}catch(a){throw new Error(`Plugin '${t.source}' exported an invalid descriptor: ${a instanceof Error?a.message:String(a)}`,{cause:a})}return {entry:t,descriptors:o}}i(Gl,"loadPlugin");async function ZR(t,e){let r=[];return await Promise.all(t.map(async n=>{try{let o=await Gl(n,e);r.push(o);}catch(o){_.warn(`Plugin '${n.source}' failed to load: ${o instanceof Error?o.message:String(o)}`);}})),r}i(ZR,"loadAllPlugins");async function ue(t,e){t.plugins.length!==0&&await ZR(t.plugins,e);}i(ue,"bootstrapPlugins");ot();function Rp(t,e,r="project"){let n=[],o=[...t.targets,...t.pluginTargets??[]];for(let s of t.features){let a,l;switch(s){case "rules":l=e.rules.length,a="rules";break;case "commands":l=e.commands.length,a=l>0?`commands (${l})`:"commands";break;case "agents":l=e.agents.length,a=l>0?`agents (${l})`:"agents";break;case "skills":l=e.skills.length,a=l>0?`skills (${l})`:"skills";break;case "mcp":l=e.mcp?Object.keys(e.mcp.mcpServers).length:0,a=l>0?`mcp (${l} servers)`:"mcp";break;case "hooks":l=CN(e.hooks),a=l>0?`hooks (${l})`:"hooks";break;case "ignore":l=e.ignore.length>0?1:0,a="ignore";break;case "permissions":l=e.permissions&&(e.permissions.allow.length>0||e.permissions.deny.length>0)?1:0,a="permissions";break;default:continue}let c={};for(let m of o)c[m]=_l(m,s,t,r);if(n.push({feature:a,count:l,support:c}),s==="rules"){let m=e.rules.filter(u=>!u.root);if(m.length>0){let u={};for(let p of o)u[p]=_l(p,"additionalRules",t,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:u});}}}return n}i(Rp,"buildCompatibilityMatrix");function CN(t){if(!t)return 0;let e=0;for(let r of Object.values(t))Array.isArray(r)&&(e+=r.length);return e}i(CN,"countHooks");var RN={"claude-code":"Claude"};function qR(t){return RN[t]??t}i(qR,"matrixColumnLabel");yr();ot();var kN=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];function QR(t){return Object.fromEntries(kN.map(e=>[e,Object.fromEntries(ht.map(r=>{let o=yn(r,t)?.[e];return [r,o??{level:"none"}]}))]))}i(QR,"buildSupportMatrix");QR("project");QR("global");var kp={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},Mi={green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",dim:"\x1B[2m",reset:"\x1B[0m"};function wN(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}i(wN,"noColor");function ON(t,e){return wN()?e:`${t}${e}${Mi.reset}`}i(ON,"colorize");var EN={native:Mi.green,embedded:Mi.blue,partial:Mi.yellow,none:Mi.dim};function tk(t){let e=kp[t];return ON(EN[t],e)}i(tk,"coloredSymbol");function wp(t,e){let r=process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!=="",n={cyan:"\x1B[36m",magenta:"\x1B[35m",bold:"\x1B[1m",dim:"\x1B[2m",green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",reset:"\x1B[0m"},o=i((M,B)=>r?B:`${M}${B}${n.reset}`,"c"),s=i(M=>M.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=i((M,B)=>{let Z=s(M),it=Math.max(0,B-Z);return M+" ".repeat(it)},"padWithColor"),l=Math.max(12,...e.map(M=>M.length)),c=e.map(M=>qR(M)),m=Math.max(8,l),u=Math.max(12,...t.map(M=>M.feature.length)),p=i(M=>o(n.dim,"\u250C"+M.map(B=>"\u2500".repeat(B)).join("\u252C")+"\u2510"),"border"),d=i(M=>o(n.dim,"\u251C"+M.map(B=>"\u2500".repeat(B)).join("\u253C")+"\u2524"),"sep"),f=i(M=>o(n.dim,"\u2514"+M.map(B=>"\u2500".repeat(B)).join("\u2534")+"\u2518"),"bottom"),h=[u,...e.map(()=>m)],C=p(h),R=[a(o(n.bold+n.cyan,"Feature"),u),...c.map(M=>a(o(n.bold+n.magenta,M),m))],I=o(n.dim,"\u2502")+R.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),O=d(h),x=t.map(M=>{let B=[a(o(n.cyan,M.feature),u)];for(let Z of e){let it=M.support[Z]??"none",q=r?kp[it]:tk(it);B.push(a(` ${q} `,m));}return o(n.dim,"\u2502")+B.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),P=f(h),A=[C,I,O,...x,P];A.push("");let K=[o(n.green,"\u2713")+" = native",o(n.blue,"\u25C6")+" = embedded",o(n.yellow,"\u25D0")+" = partial",o(n.dim,"\u2013")+" = not supported"];return A.push(o(n.bold,"Legend: ")+K.join(" ")),A.join(`
|
|
149
|
+
`)}i(wp,"formatMatrix");function Ep(t){let e=[];if(t.rules.length>0&&e.push(`rules: ${t.rules.map(r=>basename(r.source)).join(", ")}`),t.commands.length>0&&e.push(`commands: ${t.commands.map(r=>basename(r.source)).join(", ")}`),t.agents.length>0&&e.push(`agents: ${t.agents.map(r=>basename(r.source)).join(", ")}`),t.skills.length>0&&e.push(`skills: ${t.skills.map(r=>r.name).join(", ")}`),t.mcp&&Object.keys(t.mcp.mcpServers).length>0&&e.push(`mcp: ${Object.keys(t.mcp.mcpServers).join(", ")}`),t.hooks){let r=Object.values(t.hooks).reduce((n,o)=>n+(Array.isArray(o)?o.length:0),0);r>0&&e.push(`hooks: ${r} entries in hooks.yaml`);}return t.ignore.length>0&&e.push("ignore: .agentsmesh/ignore"),t.permissions&&t.permissions.allow.length+t.permissions.deny.length>0&&e.push("permissions: .agentsmesh/permissions.yaml"),e.length===0?"":`
|
|
150
150
|
Per-file details:
|
|
151
151
|
`+e.join(`
|
|
152
152
|
`)+`
|
|
153
|
-
`}i(
|
|
154
|
-
`),t.verbose===true){let d=
|
|
155
|
-
`));}}i(
|
|
156
|
-
`),n=
|
|
153
|
+
`}i(Ep,"formatVerboseDetails");async function go(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,s=typeof o=="string"&&o?o.split(",").map(d=>d.trim()).filter(Boolean):void 0,{config:a,context:l}=await lt(r,n);await ue(a,r);let{canonical:c}=await me(a,l.configDir,{},l.canonicalDir),m=s??[...a.targets,...a.pluginTargets??[]],u=Rp(a,c,n);if(u.length===0){_.info("No features enabled. Enable features in agentsmesh.yaml.");return}let p=wp(u,m);if(process.stdout.write(p),process.stdout.write(`
|
|
154
|
+
`),t.verbose===true){let d=Ep(c);d&&(process.stdout.write(d),process.stdout.write(`
|
|
155
|
+
`));}}i(go,"runMatrix");function rk(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}`)}i(rk,"ensurePathInsideRoot");function Pp(t,e){return t==="global"?`~/${e}`:e}i(Pp,"formatDisplayPath");async function ks(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,s=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,u=typeof m=="string"&&m?m.split(",").map(P=>P.trim()).filter(Boolean):void 0,{config:p,context:d}=await lt(n,l);await ue(p,n);let f=p.collaboration?.lock_features??[];if(p.collaboration?.strategy==="lock"&&!a&&f.length>0){let P=await Tl(d.canonicalDir);if(P!==null){let A=await Jr(d.canonicalDir),K=Ll(P.checksums,A,f);if(K.length>0){_.error("Locked feature violation (strategy: lock). Modified files:");for(let M of K)_.error(` ${M}`);throw _.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:h,resolvedExtends:C}=await me(p,d.configDir,{refreshRemoteCache:c},d.canonicalDir),R=[...p.targets,...p.pluginTargets??[]],I=u?R.filter(P=>u.includes(P)):R,O=await Ml({config:p,canonical:h,projectRoot:d.rootBase,scope:l,targetFilter:u});if(O.length===0){if(_.info("No files to generate (no root rule or rules feature disabled)."),o)return _.success("Generated files are in sync."),0;if(!s){let P=await Cp(join(d.canonicalDir,".generate.lock"));try{let A=await Jr(d.canonicalDir),K=C.length>0?await uo(C):{},M=await Fi(join(d.canonicalDir,"packs")),B=process.env.USER??process.env.USERNAME??"unknown";await Di(d.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:B,libVersion:Ts(),checksums:A,extends:K,packs:M});try{await ql(At(),join(d.configDir,".agentsmeshcache"));}catch(Z){_.warn(`Could not create .agentsmeshcache symlink: ${Z instanceof Error?Z.message:String(Z)}`);}}finally{await P();}}return r.printMatrix!==false&&await go(t,n),0}if(o){let P=O.filter(A=>A.status!=="unchanged");if(P.length===0)return _.success("Generated files are in sync."),0;for(let A of P)_.error(`[check] ${A.status} ${Pp(l,A.path)} (${A.target})`);return _.error("Generated files are out of sync. Run 'agentsmesh generate' to update them."),1}let x=s?null:await Cp(join(d.canonicalDir,".generate.lock"));try{for(let P of O)if(s)_.info(`[dry-run] ${P.status} ${Pp(l,P.path)} (${P.target})`);else if(P.status==="created"||P.status==="updated"){let A=rk(d.rootBase,P.path,P.target);await S(A,P.content),_.success(`${P.status} ${Pp(l,P.path)}`);}if(!s){let P=O.filter(q=>q.status==="created").length,A=O.filter(q=>q.status==="updated").length,K=O.filter(q=>q.status==="unchanged").length;await zR({projectRoot:d.rootBase,targets:I,expectedPaths:O.map(q=>q.path),scope:l}),P>0||A>0?_.info(`Generated: ${P} created, ${A} updated, ${K} unchanged`):_.info(`Nothing changed. (${K} unchanged)`);let M=await Jr(d.canonicalDir),B=C.length>0?await uo(C):{},Z=await Fi(join(d.canonicalDir,"packs")),it=process.env.USER??process.env.USERNAME??"unknown";await Di(d.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:it,libVersion:Ts(),checksums:M,extends:B,packs:Z});try{await ql(At(),join(d.configDir,".agentsmeshcache"));}catch(q){_.warn(`Could not create .agentsmeshcache symlink: ${q instanceof Error?q.message:String(q)}`);}}}finally{x&&await x();}return r.printMatrix!==false&&await go(t,n),0}i(ks,"runGenerate");E();ot();yr();var xN=["codex-cli"];function nk(){return ht.filter(t=>!xN.includes(t))}i(nk,"starterInitTargetIds");var bN=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],AN=nk();function jl(t,e=AN){let r=(t.length>0?t:e).map(o=>` - ${o}`).join(`
|
|
156
|
+
`),n=bN.map(o=>` - ${o}`).join(`
|
|
157
157
|
`);return `# yaml-language-server: $schema=https://unpkg.com/agentsmesh/schemas/agentsmesh.json
|
|
158
158
|
version: 1
|
|
159
159
|
targets:
|
|
160
160
|
${r}
|
|
161
161
|
features:
|
|
162
162
|
${n}
|
|
163
|
-
`}i(
|
|
163
|
+
`}i(jl,"buildConfig");var Ul=`---
|
|
164
164
|
root: true
|
|
165
165
|
description: "Project rules"
|
|
166
166
|
---
|
|
@@ -169,7 +169,7 @@ description: "Project rules"
|
|
|
169
169
|
|
|
170
170
|
Add your project-wide instructions here.
|
|
171
171
|
This file is always included in AI tool context and synced to all configured tools.
|
|
172
|
-
`,
|
|
172
|
+
`,xp=`---
|
|
173
173
|
description: "Example contextual rule \u2014 rename and customize"
|
|
174
174
|
# targets: [claude-code, cursor] # limit to specific tools (optional)
|
|
175
175
|
# globs: ["src/**/*.ts"] # activate only for matching files (optional)
|
|
@@ -178,14 +178,14 @@ description: "Example contextual rule \u2014 rename and customize"
|
|
|
178
178
|
# Example Rule
|
|
179
179
|
|
|
180
180
|
Replace this with your coding standards, conventions, or domain-specific guidelines.
|
|
181
|
-
`,
|
|
181
|
+
`,bp=`---
|
|
182
182
|
description: "Example command \u2014 rename and customize"
|
|
183
183
|
# allowed-tools: [Read, Grep, Glob, Bash]
|
|
184
184
|
---
|
|
185
185
|
|
|
186
186
|
Describe the task for this command here.
|
|
187
187
|
Commands are invoked on-demand (e.g. /example) with a focused tool set.
|
|
188
|
-
`,
|
|
188
|
+
`,Ap=`---
|
|
189
189
|
name: example-agent
|
|
190
190
|
description: "Example subagent \u2014 rename and customize"
|
|
191
191
|
# tools: [Read, Grep, Glob]
|
|
@@ -196,7 +196,7 @@ description: "Example subagent \u2014 rename and customize"
|
|
|
196
196
|
|
|
197
197
|
Describe this agent's role and instructions here.
|
|
198
198
|
Agents are specialized subagents with restricted tools and a specific purpose.
|
|
199
|
-
`,
|
|
199
|
+
`,Tp=`---
|
|
200
200
|
name: example-skill
|
|
201
201
|
description: "Example skill \u2014 rename and customize"
|
|
202
202
|
---
|
|
@@ -205,7 +205,7 @@ description: "Example skill \u2014 rename and customize"
|
|
|
205
205
|
|
|
206
206
|
Describe the skill procedure here.
|
|
207
207
|
Skills are reusable multi-step procedures that commands and agents can reference.
|
|
208
|
-
`,
|
|
208
|
+
`,Lp=`{
|
|
209
209
|
"mcpServers": {
|
|
210
210
|
// "github": {
|
|
211
211
|
// "type": "stdio",
|
|
@@ -220,7 +220,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
220
220
|
// }
|
|
221
221
|
}
|
|
222
222
|
}
|
|
223
|
-
`,
|
|
223
|
+
`,Np=`# Lifecycle hooks \u2014 run shell commands before/after AI tool use
|
|
224
224
|
# Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
|
|
225
225
|
# Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
|
|
226
226
|
#
|
|
@@ -233,7 +233,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
233
233
|
# - matcher: Edit|Write
|
|
234
234
|
# type: command
|
|
235
235
|
# command: npm test --passWithNoTests
|
|
236
|
-
`,
|
|
236
|
+
`,Dp=`# Tool permission allow/deny lists
|
|
237
237
|
#
|
|
238
238
|
# allow:
|
|
239
239
|
# - Bash(npm run:*)
|
|
@@ -249,14 +249,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
249
249
|
allow: []
|
|
250
250
|
deny: []
|
|
251
251
|
ask: []
|
|
252
|
-
`,
|
|
252
|
+
`,Fp=`# Patterns ignored by all configured AI tools (gitignore syntax)
|
|
253
253
|
#
|
|
254
254
|
# node_modules/
|
|
255
255
|
# dist/
|
|
256
256
|
# .env*
|
|
257
257
|
# *.log
|
|
258
258
|
# coverage/
|
|
259
|
-
`,
|
|
259
|
+
`,ok=`# yaml-language-server: $schema=https://unpkg.com/agentsmesh/schemas/agentsmesh.json
|
|
260
260
|
# Personal overrides \u2014 NOT committed to git
|
|
261
261
|
# Uncomment and customize for your local setup:
|
|
262
262
|
|
|
@@ -275,25 +275,25 @@ ask: []
|
|
|
275
275
|
# overrides:
|
|
276
276
|
# claude-code:
|
|
277
277
|
# model: opus
|
|
278
|
-
`;function
|
|
279
|
-
`).map(a=>a.trim())),o=
|
|
278
|
+
`;E();ot();function sk(t){let e=[];for(let r of Tt)for(let n of Vu(r.id,t))e.push({target:r.id,path:n});return e}i(sk,"collectDetectionPaths");function ik(t){let e=new Map;for(let{target:r,path:n}of sk(t)){let o=e.get(r)??[];o.push(n),e.set(r,o);}return [...e.entries()].map(([r,n])=>({id:r,paths:n}))}i(ik,"toolIndicators");ik("project");async function ak(t,e="project"){let r=[];for(let{id:n,paths:o}of ik(e))for(let s of o){let a=join(t,s);if(await N(a)){r.push(n);break}}return [...new Set(r)]}i(ak,"detectExistingConfigs");E();function Ct(t,e){return join(t,e)}i(Ct,"ab");async function vp(t){return await N(t)?(await readdir(t,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}i(vp,"countMdFiles");async function LN(t){let e=Ct(t,"skills");if(!await N(e))return false;let r=await readdir(e,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await N(join(e,n.name,"SKILL.md")))return true;return false}i(LN,"hasAnyImportedSkill");async function $p(t){let e=Ct(t,"rules");await k(e),await S(join(e,"_root.md"),Ul),_.success("Created .agentsmesh/rules/_root.md"),await S(join(e,"_example.md"),xp),_.success("Created .agentsmesh/rules/_example.md");let r=Ct(t,"commands");await k(r),await S(join(r,"_example.md"),bp),_.success("Created .agentsmesh/commands/_example.md");let n=Ct(t,"agents");await k(n),await S(join(n,"_example.md"),Ap),_.success("Created .agentsmesh/agents/_example.md");let o=Ct(t,join("skills","_example"));await k(o),await S(join(o,"SKILL.md"),Tp),_.success("Created .agentsmesh/skills/_example/SKILL.md"),await S(Ct(t,"mcp.json"),Lp),_.success("Created .agentsmesh/mcp.json"),await S(Ct(t,"hooks.yaml"),Np),_.success("Created .agentsmesh/hooks.yaml"),await S(Ct(t,"permissions.yaml"),Dp),_.success("Created .agentsmesh/permissions.yaml"),await S(Ct(t,"ignore"),Fp),_.success("Created .agentsmesh/ignore");}i($p,"writeScaffoldFull");async function ck(t){let e=Ct(t,"rules"),r=await vp(e),n=join(e,"_root.md"),o=await N(n);await k(e),r===0?(await S(n,Ul),_.success("Created .agentsmesh/rules/_root.md"),await S(join(e,"_example.md"),xp),_.success("Created .agentsmesh/rules/_example.md")):o||(await S(n,Ul),_.success("Created .agentsmesh/rules/_root.md"));let s=Ct(t,"commands");await vp(s)===0&&(await k(s),await S(join(s,"_example.md"),bp),_.success("Created .agentsmesh/commands/_example.md"));let a=Ct(t,"agents");if(await vp(a)===0&&(await k(a),await S(join(a,"_example.md"),Ap),_.success("Created .agentsmesh/agents/_example.md")),!await LN(t)){let p=Ct(t,join("skills","_example"));await k(p),await S(join(p,"SKILL.md"),Tp),_.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=Ct(t,"mcp.json");await N(l)||(await S(l,Lp),_.success("Created .agentsmesh/mcp.json"));let c=Ct(t,"hooks.yaml");await N(c)||(await S(c,Np),_.success("Created .agentsmesh/hooks.yaml"));let m=Ct(t,"permissions.yaml");await N(m)||(await S(m,Dp),_.success("Created .agentsmesh/permissions.yaml"));let u=Ct(t,"ignore");await N(u)||(await S(u,Fp),_.success("Created .agentsmesh/ignore"));}i(ck,"writeScaffoldGapFill");var Gi="agentsmesh.yaml",mk="agentsmesh.local.yaml",NN=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp"],DN=Object.fromEntries(Tt.map(t=>[t.id,(e,r)=>t.generators.importFrom(e,{scope:r})])),uk=Tt.filter(t=>t.globalSupport!==void 0).map(t=>t.id);async function FN(t){let e=join(t,".gitignore"),r=await y(e)??"",n=new Set(r.split(`
|
|
279
|
+
`).map(a=>a.trim())),o=NN.filter(a=>!n.has(a));if(o.length===0)return;let s=r.endsWith(`
|
|
280
280
|
`)||r===""?"":`
|
|
281
|
-
`;await
|
|
281
|
+
`;await S(e,r+s+o.join(`
|
|
282
282
|
`)+`
|
|
283
|
-
`);}i(hA,"appendToGitignore");async function C_(t,e={}){let r=e.global===true?"global":"project",n=Qo(t,r),o=join(n.configDir,ti);if(await T(o))throw new Error(`Already initialized. ${ti} exists. Remove it first to re-init.`);let s=await h_(n.rootBase,r),a=r==="global"?s.filter(m=>S_.includes(m)):s,l=r==="global"?S_:void 0;if(a.length>0)if(C.info(`Found existing configurations: ${a.join(", ")}`),e.yes){C.info("Auto-importing existing configurations (--yes)...");let m=0;for(let u of a){let p=gA[u];if(!p)continue;let d=await p(n.rootBase,r);for(let f of d)C.success(` ${f.fromPath.replace(n.rootBase+"/","")} \u2192 ${f.toPath}`);m+=d.length;}m>0&&C.info(`Imported ${m} file(s) from ${a.length} tool(s).`),await I_(n.canonicalDir),await _(o,Ja(a,l)),C.success(`Created ${ti} (targets: ${a.join(", ")})`);}else C.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),await Eu(n.canonicalDir),await _(o,Ja([],l)),C.success(`Created ${ti}`);else await Eu(n.canonicalDir),await _(o,Ja([],l)),C.success(`Created ${ti}`);let c=join(n.configDir,__);await _(c,d_),C.success(`Created ${__}`),r==="project"&&(await hA(t),C.success("Updated .gitignore"));}i(C_,"runInit");var yA=Object.fromEntries(At.map(t=>[t.id,{importFrom:t.generators.importFrom,emptyImportMessage:t.emptyImportMessage,lintRules:t.lintRules,lint:t.lint,capabilities:t.capabilities}]));function Xa(t){let e=yA[t];if(!e)throw new Error(`Unknown target: ${t}`);return e}i(Xa,"getTargetCatalogEntry");function R_(t,e,r){for(let n of t){let o=relative(e,n.fromPath);C.success(`${o} \u2192 ${n.toPath}`);}C.info(`Imported ${t.length} file(s). Run 'agentsmesh generate${r==="global"?" --global":""}' to sync to other tools.`);}i(R_,"formatImportResults");async function k_(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(),s=t.global===true?"global":"project";if(Un(o)){let u=Qo(r,s),p=Xa(o),d=await p.importFrom(u.rootBase,{scope:s});if(d.length===0){C.info(p.emptyImportMessage);return}R_(d,u.rootBase,s);return}let a,l;try{({config:a,context:l}=await rt(r,s));}catch{throw new Error(`Unknown --from "${n}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${at.join(", ")}.`)}await Vt(a,r);let c=V(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...at,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:s});if(m.length===0){C.info(c.emptyImportMessage);return}R_(m,l.rootBase,s);}i(k_,"runImport");function O_(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}}i(O_,"computeDiff");function E_(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}i(E_,"formatDiffSummary");async function P_(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,s=typeof o=="string"&&o?o.split(",").map(d=>d.trim()).filter(Boolean):void 0,{config:a,context:l}=await rt(r,n);await Vt(a,r);let{canonical:c}=await zt(a,l.configDir,{},l.canonicalDir),m=await za({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:s});if(m.length===0){C.info("No files to generate (no root rule or rules feature disabled).");return}let{diffs:u,summary:p}=O_(m);for(let d of u)process.stdout.write(d.patch);C.info(E_(p));}i(P_,"runDiff");var _A=["node_modules",".git","dist","coverage",".agentsmesh"];async function SA(t){return (await P(t)).filter(n=>{let o=relative(t,n);return !_A.some(s=>o.includes(`/${s}/`)||o.startsWith(`${s}/`))}).map(n=>relative(t,n))}i(SA,"getProjectFiles");async function A_(t,e,r,n,o={}){let s=o.scope??"project",a=[...t.targets,...t.pluginTargets??[]],l=n?a.filter(S=>n.includes(S)):a,c=t.features.includes("rules"),m=t.features.includes("commands"),u=t.features.includes("mcp"),p=t.features.includes("permissions"),d=t.features.includes("hooks"),f=[],g=s==="global"?[]:await SA(r);for(let S of l){let y=Un(S)?Xa(S):V(S);c&&y?.lintRules&&f.push(...y.lintRules(e,r,g,{scope:s}));let k=V(S);k?.generators.lint&&f.push(...k.generators.lint(e));let E={scope:s};m&&y?.lint?.commands&&f.push(...y.lint.commands(e,E)),u&&y?.lint?.mcp&&f.push(...y.lint.mcp(e,E)),p&&y?.lint?.permissions&&f.push(...y.lint.permissions(e,E)),d&&y?.lint?.hooks&&f.push(...y.lint.hooks(e,E));}let I=f.some(S=>S.level==="error");return {diagnostics:f,hasErrors:I}}i(A_,"runLint");async function b_(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,s=typeof o=="string"&&o?o.split(",").map(I=>I.trim()).filter(Boolean):void 0,{config:a,context:l}=await rt(r,n);await Vt(a,r);let{canonical:c}=await zt(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:u}=await A_(a,c,l.configDir,s,{scope:n});if(m.length===0)return C.success("All checks passed."),0;let p=m.filter(I=>I.level==="error"),d=m.filter(I=>I.level==="warning");if(p.length>0)for(let I of p)C.error(`${I.file} (${I.target}): ${I.message}`);if(d.length>0)for(let I of d)C.warn(`${I.file} (${I.target}): ${I.message}`);let f=p.length,g=d.length;return C.info(`${f} error${f!==1?"s":""}, ${g} warning${g!==1?"s":""}`),u?1:0}i(b_,"runLintCmd");var kA=300;function wA(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}i(wA,"normalizeWatchPath");function OA(t,e,r){let n=wA(relative(t,e));return n===".lock"||n===".lock.tmp"||n===".generate.lock"||n.endsWith("/.lock")||n.endsWith("/.lock.tmp")||n.endsWith("/.generate.lock")||n.includes("/.generate.lock/")||n.startsWith(".generate.lock/")}i(OA,"shouldIgnoreWatchPath");function EA(t,e,r,n,o,s,a,l,c){return JSON.stringify({features:t,rulesCount:e,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:s,permissionsCount:a,hooksCount:l,ignoreCount:c})}i(EA,"featureFingerprint");async function L_(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{context:o}=await rt(r,n),s=[o.canonicalDir,join(o.configDir,"agentsmesh.yaml"),join(o.configDir,"agentsmesh.local.yaml")],a=null,l=null,c=false,m=null,p=i(async()=>{if(c)return;a=null;let{config:I,context:S}=await rt(r,n),{canonical:y}=await zt(I,S.configDir,{},S.canonicalDir),k=y.mcp?Object.keys(y.mcp.mcpServers).length:0,E=y.permissions?y.permissions.allow.length+y.permissions.deny.length:0,O=y.hooks?Object.values(y.hooks).reduce((j,z)=>j+(Array.isArray(z)?z.length:0),0):0,x=y.ignore.length,U=EA(I.features,y.rules.length,y.commands.length,y.agents.length,y.skills.length,k,E,O,x),F=l!==null&&l!==U;l=U,!c&&(await Uo(t,r,{printMatrix:false}),!c&&(F?await Fn(t,r):C.info("Regenerated.")));},"run"),d=i(()=>{let I=p().catch(S=>{if(!c){let y=S instanceof Error?S.message:String(S);C.error(y);}}).finally(()=>{m===I&&(m=null);});m=I;},"scheduleRun"),f=i(()=>{c||(a&&clearTimeout(a),a=setTimeout(d,kA));},"schedule"),g=RA.watch(s,{ignoreInitial:true});return g.on("all",(I,S)=>{OA(o.canonicalDir,S)||f();}),await new Promise((I,S)=>{g.once("ready",I),g.once("error",S);}),C.info(n==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),m=p(),await m,m=null,{stop:i(async()=>{c=true,a&&(clearTimeout(a),a=null),await g.close(),m&&await m;},"stop")}}i(L_,"runWatch");async function N_(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await Ga(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let s=await Sr(n),a=await Hn(e,r),l=a.length>0?await Tn(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(s)),u=[],p=[],d=[];for(let y of c){let k=s[y];k===void 0?d.push(y):k!==o.checksums[y]&&u.push(y);}for(let y of m)c.has(y)||p.push(y);let f=new Set([...Object.keys(o.extends),...Object.keys(l)]),g=[];for(let y of f)l[y]!==o.extends[y]&&g.push(y);let I=ja(o.checksums,s,e.collaboration?.lock_features??[]);return {inSync:u.length===0&&p.length===0&&d.length===0&&g.length===0,hasLock:true,modified:u,added:p,removed:d,extendsModified:g,lockedViolations:I}}i(N_,"checkLockSync");async function D_(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:s}=await rt(r,n);await Vt(o,r);let a=await N_({config:o,configDir:s.configDir,canonicalDir:s.canonicalDir});if(!a.hasLock)return C.error("Not initialized for collaboration. Run 'agentsmesh generate' first."),1;if(a.inSync)return C.success("Lock file is in sync."),0;let l=new Set(a.lockedViolations);C.error("Conflict detected:");for(let c of a.extendsModified)C.error(` extend "${c}" was modified`);for(let c of a.modified){let m=l.has(c)?" [LOCKED]":"";C.error(` ${c} was modified${m}`);}for(let c of a.added){let m=l.has(c)?" [LOCKED]":"";C.error(` ${c} was added${m}`);}for(let c of a.removed){let m=l.has(c)?" [LOCKED]":"";C.error(` ${c} was removed${m}`);}return C.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state."),1}i(D_,"runCheck");var xA=".lock",AA="<<<<<<<";async function xu(t){let e=join(t,xA),r=await h(e);return r===null?false:r.includes(AA)}i(xu,"hasLockConflict");async function v_(t,e,r){if(!await xu(t))throw new Error("No conflict to resolve.");let o=await Sr(t),s=dirname(t),a=r?await Hn(r,s):[],l=a.length>0?await Tn(a):{},c=await Zs(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Xs(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}i(v_,"resolveLockConflict");async function $_(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:s}=await rt(r,n),a=s.canonicalDir;if(!await xu(a)){C.info("No conflicts to resolve.");return}await v_(a,Yo(),o),C.success("Lock file conflict resolved.");}i($_,"runMerge");var LA=promisify(execFile);async function Au(t){let{stdout:e}=await LA("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}i(Au,"runGit");async function M_(){try{return await Au(["--version"]),!0}catch{return false}}i(M_,"isGitAvailable");async function NA(t,e){let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await Au(["ls-remote",t,o])).split(`
|
|
284
|
-
`).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(s){n=s;}throw new Error(`Could not resolve ref "${e}" for ${t}: ${n instanceof Error?n.message:String(n)}`)}i(
|
|
285
|
-
`).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${e}`);let s=o.split(/\s+/)[0];if(!s||!/^[0-9a-f]{40}$/i.test(s))throw new Error(`Invalid ls-remote HEAD line for ${e}`);return s.toLowerCase()}return NA(e,r)}i(G_,"resolveRemoteRefForInstall");async function j_(t){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};let e=t.gitRemoteUrl;if(!e)throw new Error("Internal error: missing git remote URL");let r=await G_(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await Kn(l,"install",{cacheDir:St(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(t.kind==="gitlab"){let l=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await Kn(l,"install",{cacheDir:St(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,s=`git+${(t.gitPlusBase??e).split("#")[0]}#${n}`;return {resolvedPath:(await Kn(s,"install",{cacheDir:St(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:s,version:r}}i(j_,"fetchInstallSource");async function U_(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await j_(t);return {resolvedPath:r.resolvedPath,sourceForYaml:r.sourceForYaml,version:r.version}}catch(r){let n=r instanceof Error?r.message:String(r),o=new Error(`Failed to fetch from ${e}: ${n}. Check your network connection and try again.`);throw r instanceof Error&&(o.cause=r),o}}i(U_,"resolveInstallResolvedPath");function bu(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],s=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!s||!a?null:{org:o,repo:s,ref:a,path:l||""}}catch{return null}}i(bu,"parseGithubTreeUrl");function Tu(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],s=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!s||!a||!l?null:{org:o,repo:s,ref:a,path:l}}catch{return null}}i(Tu,"parseGithubBlobUrl");function Lu(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 s=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||!s?null:{namespace:m,project:c,ref:s,path:a||""}}catch{return null}}i(Lu,"parseGitlabTreeUrl");function Nu(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 s=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||!s||!a?null:{namespace:m,project:c,ref:s,path:a}}catch{return null}}i(Nu,"parseGitlabBlobUrl");var DA=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Du(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean).map(s=>s.replace(/\.git$/i,""));if(r.length<2||r.length>2||DA.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}i(Du,"parseGithubRepoUrl");function Fu(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean).map(s=>s.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}}i(Fu,"parseGitlabRepoUrl");function vu(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}i(vu,"parseGitSshGithub");function $u(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}}i($u,"parseGitSshGitlab");function Mu(t){return t.split(sep).join("/")}i(Mu,"toPosix");function B_(t,e,r){let n=`${sep}.agentsmesh${sep}`,o=t.indexOf(n);if(o>=0){let a=t.slice(0,o),l=t.slice(o+n.length),c=Mu(l.replace(/\\/g,"/")).replace(/^\/+/,""),m=Mu(relative(e,a))||".";return {kind:"local",rawRef:"",pathInRepo:r||c.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:a,localSourceForYaml:m.startsWith("..")?m:`./${m}`.replace(/^\.\/\./,".")}}let s=Mu(relative(e,t))||".";return {kind:"local",rawRef:"",pathInRepo:r,localRoot:t,localSourceForYaml:s.startsWith("..")?s:`./${s}`.replace(/^\.\/\./,".")}}i(B_,"localParsedFromAbsPath");async function ju(t,e,r){let n=t.trim(),o=r?.trim().replace(/\\/g,"/")??"";if(n.startsWith("git+")){let c=n.lastIndexOf("#"),m=c<0?n:n.slice(0,c),u=c<0?"HEAD":n.slice(c+1),p=m.slice(4);return {kind:"git",rawRef:u,gitPlusBase:p,gitRemoteUrl:p,pathInRepo:o}}if(n.startsWith("https://")||n.startsWith("http://")){let c=bu(n)??Tu(n);if(c)return {kind:"github",rawRef:c.ref,org:c.org,repo:c.repo,gitRemoteUrl:`https://github.com/${c.org}/${c.repo}.git`,pathInRepo:o||c.path};let m=Du(n);if(m)return {kind:"github",rawRef:"HEAD",org:m.org,repo:m.repo,gitRemoteUrl:`https://github.com/${m.org}/${m.repo}.git`,pathInRepo:o};let u=Lu(n)??Nu(n);if(u)return {kind:"gitlab",rawRef:u.ref,org:u.namespace,repo:u.project,gitRemoteUrl:`https://gitlab.com/${u.namespace}/${u.project}.git`,pathInRepo:o||u.path};let p=Fu(n);if(p)return {kind:"gitlab",rawRef:"HEAD",org:p.namespace,repo:p.project,gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:o}}if(n.startsWith("git@github.com:")){let c=vu(n);if(!c)throw new Error(`Invalid GitHub SSH URL: ${n}`);return {kind:"github",rawRef:"HEAD",org:c.org,repo:c.repo,gitRemoteUrl:`https://github.com/${c.org}/${c.repo}.git`,pathInRepo:o}}if(n.startsWith("git@gitlab.com:")){let c=$u(n);if(!c)throw new Error(`Invalid GitLab SSH URL: ${n}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,pathInRepo:o}}if(n.startsWith("git@")){let c=n.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!c)throw new Error(`Invalid SSH git URL: ${n}`);let m=c[1],u=c[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${m}/${u}.git`,pathInRepo:o}}let s=n.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(s){let c=s[1],m=s[2];return {kind:"github",rawRef:s[3],org:c,repo:m,gitRemoteUrl:`https://github.com/${c}/${m}.git`,pathInRepo:o}}let a=n.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(a){let c=a[1],m=a[2];return {kind:"gitlab",rawRef:a[3],org:c,repo:m,gitRemoteUrl:`https://gitlab.com/${c}/${m}.git`,pathInRepo:o}}let l=resolve(e,n);if(!await T(l))throw new Error(`Path does not exist: ${l}`);return B_(l,e,o)}i(ju,"parseInstallSource");var K_=z.object({name:z.string().min(1),source:z.string().min(1),version:z.string().optional(),source_kind:z.enum(["github","gitlab","git","local"]),features:z.array(Wn).min(1),pick:qo.optional(),target:$t.optional(),path:z.string().optional(),paths:z.array(z.string().min(1)).min(1).optional(),as:$o.optional()}),GA=z.object({version:z.literal(1),installs:z.array(K_).default([])});function jA(t,e){return t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n])}i(jA,"sameFeatures");function UA(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&jA(t.features,e.features)}i(UA,"sameInstallIdentity");function H_(t){return join(t,"installs.yaml")}i(H_,"manifestPath");async function Uu(t){let e=await h(H_(t));if(e===null)return [];try{return GA.parse(parse(e)).installs}catch{return []}}i(Uu,"readInstallManifest");async function z_(t,e){let n=(await Uu(t)).filter(o=>o.name!==e.name&&!UA(o,e));n.push(e),await _(H_(t),stringify({version:1,installs:n.sort((o,s)=>o.name.localeCompare(s.name))}));}i(z_,"upsertInstallManifestEntry");function V_(t){return K_.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})}i(V_,"buildInstallManifestEntry");async function BA(t){let e=await Uu(t.canonicalDir);if(e.length===0){C.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let n of e){let o=join(t.canonicalDir,"packs",n.name);await T(o)||r.push(n);}if(r.length===0){C.info("All recorded packs are already installed.");return}for(let n of r)await t.reinstall(n);C.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}i(BA,"syncInstalledPacks");async function J_(t){return t.sync?(await BA({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}i(J_,"maybeRunInstallSync");function Y_(t){return {sync:t.sync===true,dryRun:t["dry-run"]===true,force:t.force===true,useExtends:t.extends===true,explicitPath:typeof t.path=="string"?t.path:void 0,explicitTarget:typeof t.target=="string"?t.target.trim():void 0,explicitAs:typeof t.as=="string"?$o.parse(t.as.trim()):void 0,nameOverride:typeof t.name=="string"?t.name.trim():""}}i(Y_,"readInstallFlags");function vn(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}i(vn,"featuresFromCanonical");async function Za(t){let{sliceRoot:e,implicitPick:r}=await Na(t),n=await Da(e);return {canonical:n,features:vn(n),implicitPick:r}}i(Za,"discoverFromContentRoot");function X_(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}i(X_,"validateSkill");function Z_(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}i(Z_,"validateRule");function q_(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}i(q_,"validateCommand");function Q_(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}i(Q_,"validateAgent");function Yt(t){return basename(t.source).replace(/\.md$/i,"")}i(Yt,"ruleSlug");function HA(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}i(HA,"featuresFromImplicitPick");function Bo(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??HA(r);if(!r&&!n)return t;let o=new Set(n??[]),s={...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);s={...s,skills:r.skills.length===0?[]:s.skills.filter(l=>a.has(l.name))};}else n&&!o.has("skills")&&(s={...s,skills:[]});if(r?.rules!==void 0){let a=new Set(r.rules);s={...s,rules:r.rules.length===0?[]:s.rules.filter(l=>a.has(Yt(l)))};}else n&&!o.has("rules")&&(s={...s,rules:[]});if(r?.commands!==void 0){let a=new Set(r.commands);s={...s,commands:r.commands.length===0?[]:s.commands.filter(l=>a.has(l.name))};}else n&&!o.has("commands")&&(s={...s,commands:[]});if(r?.agents!==void 0){let a=new Set(r.agents);s={...s,agents:r.agents.length===0?[]:s.agents.filter(l=>a.has(l.name))};}else n&&!o.has("agents")&&(s={...s,agents:[]});return s}i(Bo,"narrowDiscoveredForInstallScope");var JA=new Set(["README.md","README.rst","README.txt","README","LICENSE","LICENSE.md","LICENSE.txt","LICENSE-MIT","LICENSE-APACHE","CONTRIBUTING.md","CHANGELOG.md","CODE_OF_CONDUCT.md","package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]),YA=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]);async function qa(t){let e=await h(t);if(!e)return "";let{frontmatter:r}=w(e);return typeof r.name!="string"?"":r.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i(qa,"readSkillFrontmatterName");async function tS(t,e){await cp$1(t,e,{recursive:true,filter:i(r=>{let n=relative(t,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(YA.has(o)||!n.includes("/")&&JA.has(n))},"filter")});}i(tS,"cpFilteredSkill");async function tb(){let t=await mkdtemp(join(tmpdir(),"am-install-manual-")),e=join(t,"repo");return await R(join(e,".agentsmesh")),{discoveryRoot:e,cleanup:i(async()=>{await rm(t,{recursive:true,force:true});},"cleanup")}}i(tb,"createStageRoot");async function eb(t,e){if((await stat(t)).isFile()){if(!t.toLowerCase().endsWith(".md"))throw new Error(`Manual install only supports .md files for this collection: ${t}`);await R(e),await cp$1(t,join(e,basename(t)));return}let n=(await P(t)).filter(s=>s.toLowerCase().endsWith(".md"));if(n.length===0)throw new Error(`No .md files found under ${t} for manual install.`);let o=new Map;await R(e);for(let s of n){let a=basename(s),l=o.get(a);if(l)throw new Error(`Manual install found duplicate file name "${a}" under ${t} (${l} and ${s}).`);o.set(a,s),await cp$1(s,join(e,a));}}i(eb,"stageMarkdownCollection");async function eS(t,e,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let s of await P(t)){if(!s.endsWith("/SKILL.md")&&!s.endsWith("\\SKILL.md"))continue;let a=dirname(s),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 R(e);for(let s of r)await cp$1(o.get(s),join(e,s),{recursive:true});return true}i(eS,"stagePreferredSkills");async function rb(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)),s=join(e,o);await R(s),await cp$1(dirname(t),s,{recursive:true});return}if(await bn(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await eS(t,e,r.preferredSkillNames??[]))return;let l=await qa(join(t,"SKILL.md"))||basename(t),c=join(e,l);await R(e),await tS(t,c);return}if(await eS(t,e,r.preferredSkillNames??[]))return;await R(e);let o=await P(t),s=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))s.add(relative(t,dirname(a)).split(/[\\/]/)[0]);for(let a of s)await cp$1(join(t,a),join(e,a),{recursive:true});return}throw new Error(`Manual skill install expects a skill directory or skills collection at ${t}.`)}i(rb,"stageSkills");async function rS(t,e,r={}){let n=await tb();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await rb(t,o,r):await eb(t,o),n}catch(o){throw await n.cleanup(),o}}i(rS,"stageManualInstallScope");async function nS(t,e,r,n){let o=await rS(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:s}=await Za(o.discoveryRoot),a=Bo(s,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:o.cleanup},narrowed:a,discoveredFeatures:vn(a)}}i(nS,"resolveManualDiscoveredForInstall");var nb=[{prefix:".gemini/commands",target:"gemini-cli"},{prefix:".github/instructions",target:"copilot"},{prefix:".github/copilot-instructions.md",target:"copilot"},{prefix:".github/copilot",target:"copilot"},{prefix:".github/prompts",target:"copilot"},{prefix:".github/skills",target:"copilot"},{prefix:".github/agents",target:"copilot"},{prefix:".github/hooks",target:"copilot"},{prefix:".claude/commands",target:"claude-code"},{prefix:".claude/rules",target:"claude-code"},{prefix:".claude/skills",target:"claude-code"},{prefix:".claude/agents",target:"claude-code"},{prefix:".cursor/commands",target:"cursor"},{prefix:".cursor/rules",target:"cursor"},{prefix:".cursor/agents",target:"cursor"},{prefix:".cursor/skills",target:"cursor"},{prefix:".continue/prompts",target:"continue"},{prefix:".continue/rules",target:"continue"},{prefix:".continue/skills",target:"continue"},{prefix:".junie/commands",target:"junie"},{prefix:".junie/rules",target:"junie"},{prefix:".junie/agents",target:"junie"},{prefix:".junie/skills",target:"junie"},{prefix:".kiro/steering",target:"kiro"},{prefix:".kiro/skills",target:"kiro"},{prefix:".cline/skills",target:"cline"},{prefix:".clinerules/workflows",target:"cline"},{prefix:".windsurf/rules",target:"windsurf"},{prefix:".codex",target:"codex-cli"}];function ob(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}i(ob,"norm");function tl(t){let e=ob(t),r=[...nb].sort((n,o)=>o.prefix.length-n.prefix.length);for(let{prefix:n,target:o}of r)if(e===n||e.startsWith(`${n}/`))return o}i(tl,"targetHintFromNativePath");function Bu(t,e){return tl(t)===e}i(Bu,"pathSupportsNativePick");function oS(t,e){if(!t||!e)return;let r=tl(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.`)}i(oS,"validateTargetMatchesPath");function sS(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}i(sS,"extendPickHasArrays");async function aS(t,e){let r=join(t,...wt.split("/")),n=join(t,...e.split("/")),o=await P(n),s=[];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&&s.push(m);}return [...new Set(s)].sort()}i(aS,"inferGeminiCommandNamesFromFiles");async function $n(t){let e=await P(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()}i($n,"skillNamesFromNativeSkillDir");async function lS(t,e){let r=join(t,...e.split("/"));if(e.startsWith(le)){let n=await P(r),o=[...new Set(n.filter(s=>s.toLowerCase().endsWith(".prompt.md")).map(s=>basename(s,".prompt.md")))].sort();return o.length?{commands:o}:{}}if(e.startsWith(".github/copilot")&&!e.includes("copilot-instructions.md")){let n=await P(r),o=[...new Set(n.filter(s=>s.includes(".instructions.md")).map(s=>basename(s).replace(/\.instructions\.md$/i,"")))].sort();return o.length?{rules:o}:{}}if(e.startsWith(".github/instructions")){let n=await P(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 s=[...o].sort();return s.length?{rules:s}:{}}if(e.startsWith(".github/skills")){let n=await $n(r);return n.length?{skills:n}:{}}if(e.startsWith(".github/agents")){let n=await P(r),o=[...new Set(n.filter(s=>s.toLowerCase().endsWith(".agent.md")).map(s=>basename(s,".agent.md")))].sort();return o.length?{agents:o}:{}}return {}}i(lS,"inferCopilotPickFromPath");async function Dt(t,e){let r=await P(t),n=e.toLowerCase();return [...new Set(r.filter(o=>o.toLowerCase().endsWith(n)).map(o=>basename(o,e)))].sort()}i(Dt,"mdNames");async function mS(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===wt||n.startsWith(`${wt}/`)){let s=await aS(t,n);return s.length?{commands:s}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let s=await Dt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".claude/rules")){let s=await Dt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".claude/agents")){let s=await Dt(o,".md");return s.length?{agents:s}:{}}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 s=await Dt(o,".mdc");return s.length?{rules:s}:{}}if(n.startsWith(".cursor/commands")){let s=await Dt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".cursor/agents")){let s=await Dt(o,".md");return s.length?{agents:s}:{}}if(n.startsWith(".cursor/skills")){let s=await $n(o);return s.length?{skills:s}:{}}return {}}if(r==="copilot")return lS(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let s=await Dt(o,".md");return s.length?{rules:s}:{}}if(r==="cline"){if(n.startsWith(lt)){let s=await $n(o);return s.length?{skills:s}:{}}if(n.startsWith(Ce)){let s=await Dt(o,".md");return s.length?{commands:s}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let s=await Dt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".continue/prompts")){let s=await Dt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".continue/skills")){let s=await $n(o);return s.length?{skills:s}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let s=await Dt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".junie/rules")){let s=await Dt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".junie/agents")){let s=await Dt(o,".md");return s.length?{agents:s}:{}}if(n.startsWith(".junie/skills")){let s=await $n(o);return s.length?{skills:s}:{}}return {}}if(r==="codex-cli"&&n.startsWith(".codex")){let s=await P(o),a=[...new Set(s.filter(l=>l.toLowerCase().endsWith(".md")).map(l=>basename(l,".md")))].sort();return a.length?{rules:a}:{}}return {}}i(mS,"inferImplicitPickFromNativePath");function uS(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}i(uS,"isImplicitPickEmpty");function ni(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}i(ni,"normalizePath");function fb(t,e){let r=ni(t),n=ni(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}i(fb,"overlapsPath");function el(t,e){let r=t??[];return r.includes(e)||r.push(e),r}i(el,"addUnique");async function gb(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),n=i(async()=>{await rm(e,{recursive:true,force:true});},"cleanup");try{return await cp$1(t,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}i(gb,"makeStageRoot");function hb(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:el(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let s=ni(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:el(r?.commands,s.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:el(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=ni(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:el(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}i(hb,"buildPickFromResults");function yb(t,e,r,n){let o=join(e,...ni(t).split("/")),s=r.filter(a=>fb(o,a.fromPath));if(s.length===0)throw new Error(`No installable native resources found under "${t}" for target "${n}".`);return {features:[...new Set(s.map(a=>a.feature))],pick:hb(s,e)}}i(yb,"scopeImportedResults");async function Hu(t,e){let{stageRoot:r,cleanup:n}=await gb(t);try{let o=await Hs(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}i(Hu,"stageImportedNativeRepo");async function zu(t,e,r){let n=await Hu(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...yb(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}i(zu,"stageNativeInstallScope");async function gS(t,e,r,n){let o=n.explicitTarget?.trim();o&&$t.parse(o);let s=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");oS(o,s);let a=join(t,".agentsmesh"),l=await T(a),c=s?tl(s):void 0,m=!l&&!o?await Ii(t)??void 0:void 0;if(!o&&c&&m&&c!==m)throw new Error(`Install path suggests native layout "${c}" but auto-detect imported "${m}". Use --target ${c} for this path, or install from the repo root without a conflicting subtree path.`);let u=o??c??m,p=!!s&&!!u&&!s.startsWith(".agentsmesh");if(!l&&u){if(p){let k=await zu(t,s,u);return {discoveryRoot:k.stageRoot,implicitPick:k.pick,scopedFeatures:k.features,yamlTarget:u,importHappened:true,cleanup:k.cleanup}}let y=await Hu(t,u);return {discoveryRoot:s?join(y.stageRoot,s):y.stageRoot,yamlTarget:u,importHappened:true,cleanup:y.cleanup}}let d;l?s?u&&Bu(s,u)?d=t:d=e:d=t:d=e;let f,g,I;if(p&&u){let y=await zu(t,s,u);d=y.stageRoot,f=y.pick,g=y.features,I=y.cleanup;}else if(d===t&&s&&u&&Bu(s,u)&&(f=await mS(t,s,u),uS(f)))throw new Error(`No installable native resources found under "${s}" for target "${u}".`);let S;return o?S=o:u&&(f&&sS(f)||(g?.length??0)>0)&&(S=u),{discoveryRoot:d,implicitPick:f,scopedFeatures:g,yamlTarget:S,importHappened:I!==void 0,cleanup:I}}i(gS,"prepareInstallDiscovery");async function hS(t,e,r,n){let o=await gS(t,e,r,{explicitTarget:n}),{canonical:s,implicitPick:a}=await Za(o.discoveryRoot),l=a??o.implicitPick,c=Bo(s,{implicitPick:l,scopedFeatures:o.scopedFeatures}),m=vn(c);return {prep:o,discovered:s,implicitPick:l,narrowed:c,discoveredFeatures:m}}i(hS,"resolveDiscoveredForInstall");async function yS(t){return t.explicitAs?{implicitPick:void 0,...await nS(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick)}:hS(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget)}i(yS,"resolveInstallDiscovery");function Ho(t){return t==="."||t===""?void 0:t}i(Ho,"trimDot");function _b(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}i(_b,"markdownPick");async function _S(t){if(!t.as)return {pathInRepo:Ho(t.pathInRepo)};let e=t.pathInRepo.replace(/^\/+|\/+$/g,""),r=await stat(t.contentRoot);if(t.as!=="skills"&&r.isFile()&&t.contentRoot.toLowerCase().endsWith(".md"))return {pathInRepo:Ho(dirname(e)),pick:_b(t.as,e||t.contentRoot)};if(t.as==="skills"){if(r.isFile()&&basename(t.contentRoot)==="SKILL.md"){let n=e?dirname(e):dirname(t.contentRoot);return {pathInRepo:Ho(dirname(n)),pick:{skills:[basename(n)]}}}if(r.isDirectory()){let n=e||basename(t.contentRoot),o=join(t.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(o)).isFile()){let a=await qa(o);return {pathInRepo:Ho(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:Ho(e)}}}}return {pathInRepo:Ho(e)}}i(_S,"resolveManualInstallPersistence");async function Ke(t){return process.stdin.isTTY?new Promise(e=>{let r=SS.createInterface({input:process.stdin,output:process.stdout});r.question(`${t} (y/n) `,n=>{r.close();let o=n.trim().toLowerCase();e(o==="y"||o==="yes");});}):false}i(Ke,"confirm");function Sb(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}i(Sb,"hasArrayResources");function CS(t){return Sb(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}i(CS,"hasInstallableResources");async function RS(t,e,r,n){let o=t.skills.map(l=>X_(l)),s=o.filter(l=>l.ok).map(l=>l.skill),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await Ke(`Include invalid skill "${l.skill.name}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.skill);else e&&(s=o.map(l=>l.skill));return r&&(s=o.filter(l=>l.ok).map(l=>l.skill)),s}i(RS,"resolveSkillPool");async function kS(t,e,r,n){let o=t.rules.map(l=>Z_(l)),s=o.filter(l=>l.ok).map(l=>l.rule),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await Ke(`Include invalid rule "${Yt(l.rule)}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.rule);else e&&(s=o.map(l=>l.rule));return r&&(s=o.filter(l=>l.ok).map(l=>l.rule)),s}i(kS,"resolveRulePool");async function wS(t,e,r,n){let o=t.commands.map(l=>q_(l)),s=o.filter(l=>l.ok).map(l=>l.command),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await Ke(`Include invalid command "${l.command.name}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.command);else e&&(s=o.map(l=>l.command));return r&&(s=o.filter(l=>l.ok).map(l=>l.command)),s}i(wS,"resolveCommandPool");async function OS(t,e,r,n){let o=t.agents.map(l=>Q_(l)),s=o.filter(l=>l.ok).map(l=>l.agent),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await Ke(`Include invalid agent "${l.agent.name}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.agent);else e&&(s=o.map(l=>l.agent));return r&&(s=o.filter(l=>l.ok).map(l=>l.agent)),s}i(OS,"resolveAgentPool");async function ES(t,e){let r=e.skills.map(a=>a.name),n=e.rules.map(a=>Yt(a)),o=e.commands.map(a=>a.name),s=e.agents.map(a=>a.name);for(let a of e.skills)t.skills.some(l=>l.name===a.name)&&(await Ke(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(c=>c!==a.name)));for(let a of e.rules){let l=Yt(a);t.rules.some(c=>Yt(c)===l)&&(await Ke(`Rule "${l}" already exists in merged config. Add extend anyway?`)||(n=n.filter(m=>m!==l)));}for(let a of e.commands)t.commands.some(l=>l.name===a.name)&&(await Ke(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(o=o.filter(c=>c!==a.name)));for(let a of e.agents)t.agents.some(l=>l.name===a.name)&&(await Ke(`Agent "${a.name}" already exists in merged config. Add extend anyway?`)||(s=s.filter(c=>c!==a.name)));return {skillNames:r,ruleSlugs:n,commandNames:o,agentNames:s}}i(ES,"resolveInstallConflicts");function PS(t,e){if(!t)return;let r={},n=t.skills?.filter(l=>e.skillNames.includes(l)),o=t.rules?.filter(l=>e.ruleSlugs.includes(l)),s=t.commands?.filter(l=>e.commandNames.includes(l)),a=t.agents?.filter(l=>e.agentNames.includes(l));return n&&n.length>0&&(r.skills=n),o&&o.length>0&&(r.rules=o),s&&s.length>0&&(r.commands=s),a&&a.length>0&&(r.agents=a),Object.keys(r).length>0?r:void 0}i(PS,"pickForSelectedResources");function Cb(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}i(Cb,"pathEndsWithName");function rl(t,e,r){return r!==1||e.length!==1?false:Cb(t,e[0])}i(rl,"inferSingleNamePick");function xS(t){let{pathInRepo:e,implicitPick:r,preConflictCounts:n,selected:o}=t,s={},a=o.skillNames.length>0&&(!!r?.skills?.length||o.skillNames.length<n.skills||rl(e,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||rl(e,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||rl(e,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||rl(e,o.agentNames,n.agents));return a&&(s.skills=[...o.skillNames]),l&&(s.rules=[...o.ruleSlugs]),c&&(s.commands=[...o.commandNames]),m&&(s.agents=[...o.agentNames]),Object.keys(s).length?s:void 0}i(xS,"buildInstallPick");function AS(t,e){let r=new Set(t);return e.skillNames.length===0&&r.delete("skills"),e.ruleSlugs.length===0&&r.delete("rules"),e.commandNames.length===0&&r.delete("commands"),e.agentNames.length===0&&r.delete("agents"),[...r]}i(AS,"deriveInstallFeatures");function Rb(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}i(Rb,"isEmptyInstallSelection");function bS(t){let{selected:e,discoveredFeatures:r,preConflict:n}=t,o=i(l=>r.includes(l),"had"),s=o("skills")&&e.skillNames.length===0&&n.skills>0&&"skills"||o("rules")&&e.ruleSlugs.length===0&&n.rules>0&&"rules"||o("commands")&&e.commandNames.length===0&&n.commands>0&&"commands"||o("agents")&&e.agentNames.length===0&&n.agents>0&&"agents";if(s)throw new Error(`No ${s} selected to install.`);let a=r.some(l=>["mcp","permissions","hooks","ignore"].includes(l));if(Rb(e)&&!a)throw new Error("No resources selected to install.")}i(bS,"ensureInstallSelection");function TS(t,e){if(t.find(n=>n.name===e.name&&n.source!==e.source))throw new Error(`Extends entry "${e.name}" already exists with a different source. Use --name to provide a different name.`)}i(TS,"assertExtendNameAvailable");function kb(t,e,r){if(r===void 0){if(!t)return;let o={...t};for(let s of ["skills","commands","rules","agents"])e.includes(s)&&delete o[s];return Object.keys(o).length?o:void 0}let n={...t};for(let o of ["skills","commands","rules","agents"]){if(!(o in r))continue;let s=r[o];if(s===void 0||s.length===0){delete n[o];continue}n[o]=[...new Set([...t?.[o]??[],...s])];}return Object.keys(n).length?n:void 0}i(kb,"mergePick");function LS(t,e){let r=t.findIndex(a=>a.source===e.source);if(r<0)return [...t,{name:e.name,source:e.source,version:e.version,features:e.features,path:e.path,pick:e.pick,target:e.target}];let n=t[r],o=[...new Set([...n.features,...e.features])],s=kb(n.pick,e.features,e.pick);return t.map((a,l)=>l===r?{name:e.name,source:e.source,version:e.version??n.version,features:o,path:e.path!==void 0?e.path:n.path,pick:s,target:e.target??n.target}:a)}i(LS,"mergeExtendList");async function NS(t,e,r){let n=await h(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),s=LS(e.extends,r);o.extends=s;let a=stringify(o,{indent:2,lineWidth:0});await _(t,a.endsWith(`
|
|
283
|
+
`);}i(FN,"appendToGitignore");async function pk(t,e={}){let r=e.global===true?"global":"project",n=vs(t,r),o=join(n.configDir,Gi);if(await N(o))throw new Error(`Already initialized. ${Gi} exists. Remove it first to re-init.`);let s=await ak(n.rootBase,r),a=r==="global"?s.filter(m=>uk.includes(m)):s,l=r==="global"?uk:void 0;if(a.length>0)if(_.info(`Found existing configurations: ${a.join(", ")}`),e.yes){_.info("Auto-importing existing configurations (--yes)...");let m=0;for(let u of a){let p=DN[u];if(!p)continue;let d=await p(n.rootBase,r);for(let f of d)_.success(` ${f.fromPath.replace(n.rootBase+"/","")} \u2192 ${f.toPath}`);m+=d.length;}m>0&&_.info(`Imported ${m} file(s) from ${a.length} tool(s).`),await ck(n.canonicalDir),await S(o,jl(a,l)),_.success(`Created ${Gi} (targets: ${a.join(", ")})`);}else _.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),await $p(n.canonicalDir),await S(o,jl([],l)),_.success(`Created ${Gi}`);else await $p(n.canonicalDir),await S(o,jl([],l)),_.success(`Created ${Gi}`);let c=join(n.configDir,mk);await S(c,ok),_.success(`Created ${mk}`),r==="project"&&(await FN(t),_.success("Updated .gitignore"));}i(pk,"runInit");ot();var vN=Object.fromEntries(Tt.map(t=>[t.id,{importFrom:t.generators.importFrom,emptyImportMessage:t.emptyImportMessage,lintRules:t.lintRules,lint:t.lint,capabilities:t.capabilities}]));function Wl(t){let e=vN[t];if(!e)throw new Error(`Unknown target: ${t}`);return e}i(Wl,"getTargetCatalogEntry");Kr();function dk(t,e,r){for(let n of t){let o=relative(e,n.fromPath);_.success(`${o} \u2192 ${n.toPath}`);}_.info(`Imported ${t.length} file(s). Run 'agentsmesh generate${r==="global"?" --global":""}' to sync to other tools.`);}i(dk,"formatImportResults");async function fk(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(),s=t.global===true?"global":"project";if(wn(o)){let u=vs(r,s),p=Wl(o),d=await p.importFrom(u.rootBase,{scope:s});if(d.length===0){_.info(p.emptyImportMessage);return}dk(d,u.rootBase,s);return}let a,l;try{({config:a,context:l}=await lt(r,s));}catch{throw new Error(`Unknown --from "${n}" and no agentsmesh.yaml found. Run 'agentsmesh init' to enable plugin targets, or use a builtin: ${ht.join(", ")}.`)}await ue(a,r);let c=et(o);if(!c)throw new Error(`Unknown --from "${n}". Supported: ${[...ht,...a.pluginTargets??[]].join(", ")}.`);let m=await c.generators.importFrom(l.rootBase,{scope:s});if(m.length===0){_.info(c.emptyImportMessage);return}dk(m,l.rootBase,s);}i(fk,"runImport");function hk(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}}i(hk,"computeDiff");function yk(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}i(yk,"formatDiffSummary");async function Ik(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,s=typeof o=="string"&&o?o.split(",").map(d=>d.trim()).filter(Boolean):void 0,{config:a,context:l}=await lt(r,n);await ue(a,r);let{canonical:c}=await me(a,l.configDir,{},l.canonicalDir),m=await Ml({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:s});if(m.length===0){_.info("No files to generate (no root rule or rules feature disabled).");return}let{diffs:u,summary:p}=hk(m);for(let d of u)process.stdout.write(d.patch);_.info(yk(p));}i(Ik,"runDiff");E();Kr();var MN=["node_modules",".git","dist","coverage",".agentsmesh"];async function GN(t){return (await b(t)).filter(n=>{let o=relative(t,n);return !MN.some(s=>o.includes(`/${s}/`)||o.startsWith(`${s}/`))}).map(n=>relative(t,n))}i(GN,"getProjectFiles");async function _k(t,e,r,n,o={}){let s=o.scope??"project",a=[...t.targets,...t.pluginTargets??[]],l=n?a.filter(R=>n.includes(R)):a,c=t.features.includes("rules"),m=t.features.includes("commands"),u=t.features.includes("mcp"),p=t.features.includes("permissions"),d=t.features.includes("hooks"),f=[],h=s==="global"?[]:await GN(r);for(let R of l){let I=wn(R)?Wl(R):et(R);c&&I?.lintRules&&f.push(...I.lintRules(e,r,h,{scope:s}));let O=et(R);O?.generators.lint&&f.push(...O.generators.lint(e));let x={scope:s};m&&I?.lint?.commands&&f.push(...I.lint.commands(e,x)),u&&I?.lint?.mcp&&f.push(...I.lint.mcp(e,x)),p&&I?.lint?.permissions&&f.push(...I.lint.permissions(e,x)),d&&I?.lint?.hooks&&f.push(...I.lint.hooks(e,x));}let C=f.some(R=>R.level==="error");return {diagnostics:f,hasErrors:C}}i(_k,"runLint");async function Ck(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",o=t.targets,s=typeof o=="string"&&o?o.split(",").map(C=>C.trim()).filter(Boolean):void 0,{config:a,context:l}=await lt(r,n);await ue(a,r);let{canonical:c}=await me(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:u}=await _k(a,c,l.configDir,s,{scope:n});if(m.length===0)return _.success("All checks passed."),0;let p=m.filter(C=>C.level==="error"),d=m.filter(C=>C.level==="warning");if(p.length>0)for(let C of p)_.error(`${C.file} (${C.target}): ${C.message}`);if(d.length>0)for(let C of d)_.warn(`${C.file} (${C.target}): ${C.message}`);let f=p.length,h=d.length;return _.info(`${f} error${f!==1?"s":""}, ${h} warning${h!==1?"s":""}`),u?1:0}i(Ck,"runLintCmd");var WN=300;function BN(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}i(BN,"normalizeWatchPath");function KN(t,e,r){let n=BN(relative(t,e));return n===".lock"||n===".lock.tmp"||n===".generate.lock"||n.endsWith("/.lock")||n.endsWith("/.lock.tmp")||n.endsWith("/.generate.lock")||n.includes("/.generate.lock/")||n.startsWith(".generate.lock/")}i(KN,"shouldIgnoreWatchPath");function HN(t,e,r,n,o,s,a,l,c){return JSON.stringify({features:t,rulesCount:e,commandsCount:r,agentsCount:n,skillsCount:o,mcpServerCount:s,permissionsCount:a,hooksCount:l,ignoreCount:c})}i(HN,"featureFingerprint");async function kk(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{context:o}=await lt(r,n),s=[o.canonicalDir,join(o.configDir,"agentsmesh.yaml"),join(o.configDir,"agentsmesh.local.yaml")],a=null,l=null,c=false,m=null,p=i(async()=>{if(c)return;a=null;let{config:C,context:R}=await lt(r,n),{canonical:I}=await me(C,R.configDir,{},R.canonicalDir),O=I.mcp?Object.keys(I.mcp.mcpServers).length:0,x=I.permissions?I.permissions.allow.length+I.permissions.deny.length:0,P=I.hooks?Object.values(I.hooks).reduce((B,Z)=>B+(Array.isArray(Z)?Z.length:0),0):0,A=I.ignore.length,K=HN(C.features,I.rules.length,I.commands.length,I.agents.length,I.skills.length,O,x,P,A),M=l!==null&&l!==K;l=K,!c&&(await ks(t,r,{printMatrix:false}),!c&&(M?await go(t,r):_.info("Regenerated.")));},"run"),d=i(()=>{let C=p().catch(R=>{if(!c){let I=R instanceof Error?R.message:String(R);_.error(I);}}).finally(()=>{m===C&&(m=null);});m=C;},"scheduleRun"),f=i(()=>{c||(a&&clearTimeout(a),a=setTimeout(d,WN));},"schedule"),h=UN.watch(s,{ignoreInitial:true,usePolling:process.platform==="win32"});return h.on("all",(C,R)=>{KN(o.canonicalDir,R)||f();}),await new Promise((C,R)=>{h.once("ready",C),h.once("error",R);}),_.info(n==="global"?"Watching ~/.agentsmesh/ and agentsmesh.yaml...":"Watching .agentsmesh/ and agentsmesh.yaml..."),m=p(),await m,m=null,{stop:i(async()=>{c=true,a&&(clearTimeout(a),a=null),await h.close(),m&&await m;},"stop")}}i(kk,"runWatch");async function wk(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await Tl(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let s=await Jr(n),a=await wo(e,r),l=a.length>0?await uo(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(s)),u=[],p=[],d=[];for(let I of c){let O=s[I];O===void 0?d.push(I):O!==o.checksums[I]&&u.push(I);}for(let I of m)c.has(I)||p.push(I);let f=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let I of f)l[I]!==o.extends[I]&&h.push(I);let C=Ll(o.checksums,s,e.collaboration?.lock_features??[]);return {inSync:u.length===0&&p.length===0&&d.length===0&&h.length===0,hasLock:true,modified:u,added:p,removed:d,extendsModified:h,lockedViolations:C}}i(wk,"checkLockSync");async function Ok(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:s}=await lt(r,n);await ue(o,r);let a=await wk({config:o,configDir:s.configDir,canonicalDir:s.canonicalDir});if(!a.hasLock)return _.error("Not initialized for collaboration. Run 'agentsmesh generate' first."),1;if(a.inSync)return _.success("Lock file is in sync."),0;let l=new Set(a.lockedViolations);_.error("Conflict detected:");for(let c of a.extendsModified)_.error(` extend "${c}" was modified`);for(let c of a.modified){let m=l.has(c)?" [LOCKED]":"";_.error(` ${c} was modified${m}`);}for(let c of a.added){let m=l.has(c)?" [LOCKED]":"";_.error(` ${c} was added${m}`);}for(let c of a.removed){let m=l.has(c)?" [LOCKED]":"";_.error(` ${c} was removed${m}`);}return _.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state."),1}i(Ok,"runCheck");E();var VN=".lock",JN="<<<<<<<";async function Gp(t){let e=join(t,VN),r=await y(e);return r===null?false:r.includes(JN)}i(Gp,"hasLockConflict");async function Pk(t,e,r){if(!await Gp(t))throw new Error("No conflict to resolve.");let o=await Jr(t),s=dirname(t),a=r?await wo(r,s):[],l=a.length>0?await uo(a):{},c=await Fi(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Di(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}i(Pk,"resolveLockConflict");async function xk(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:s}=await lt(r,n),a=s.canonicalDir;if(!await Gp(a)){_.info("No conflicts to resolve.");return}await Pk(a,Ts(),o),_.success("Lock file conflict resolved.");}i(xk,"runMerge");E();var ZN=promisify(execFile);async function jp(t){let{stdout:e}=await ZN("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}i(jp,"runGit");async function bk(){try{return await jp(["--version"]),!0}catch{return false}}i(bk,"isGitAvailable");async function qN(t,e){let r=[e,`refs/heads/${e}`,`refs/tags/${e}`],n;for(let o of r)try{let a=(await jp(["ls-remote",t,o])).split(`
|
|
284
|
+
`).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(s){n=s;}throw new Error(`Could not resolve ref "${e}" for ${t}: ${n instanceof Error?n.message:String(n)}`)}i(qN,"gitLsRemoteResolve");async function Ak(t,e){let r=t===""?"HEAD":t;if(/^[0-9a-f]{40}$/i.test(r))return r.toLowerCase();if(r==="HEAD"){let o=(await jp(["ls-remote",e,"HEAD"])).split(`
|
|
285
|
+
`).find(a=>a.trim().length>0);if(!o)throw new Error(`Could not resolve HEAD for ${e}`);let s=o.split(/\s+/)[0];if(!s||!/^[0-9a-f]{40}$/i.test(s))throw new Error(`Invalid ls-remote HEAD line for ${e}`);return s.toLowerCase()}return qN(e,r)}i(Ak,"resolveRemoteRefForInstall");async function Tk(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 Ak(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await ko(l,"install",{cacheDir:At(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(t.kind==="gitlab"){let l=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await ko(l,"install",{cacheDir:At(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,s=`git+${(t.gitPlusBase??e).split("#")[0]}#${n}`;return {resolvedPath:(await ko(s,"install",{cacheDir:At(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:s,version:r}}i(Tk,"fetchInstallSource");async function Lk(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await Tk(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}}i(Lk,"resolveInstallResolvedPath");function Up(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],s=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!s||!a?null:{org:o,repo:s,ref:a,path:l||""}}catch{return null}}i(Up,"parseGithubTreeUrl");function Wp(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],s=r[1],a=r[n+1],l=r.slice(n+2).join("/");return !o||!s||!a||!l?null:{org:o,repo:s,ref:a,path:l}}catch{return null}}i(Wp,"parseGithubBlobUrl");function Bp(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 s=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||!s?null:{namespace:m,project:c,ref:s,path:a||""}}catch{return null}}i(Bp,"parseGitlabTreeUrl");function Kp(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 s=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||!s||!a?null:{namespace:m,project:c,ref:s,path:a}}catch{return null}}i(Kp,"parseGitlabBlobUrl");var QN=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Hp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean).map(s=>s.replace(/\.git$/i,""));if(r.length<2||r.length>2||QN.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}i(Hp,"parseGithubRepoUrl");function zp(t){try{let e=new URL(t);if(e.hostname!=="gitlab.com")return null;let r=e.pathname.split("/").filter(Boolean).map(s=>s.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}}i(zp,"parseGitlabRepoUrl");function Vp(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}i(Vp,"parseGitSshGithub");function Jp(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}}i(Jp,"parseGitSshGitlab");E();var rD=/^[A-Za-z]:[\\/]/,nD=/^[A-Za-z]:\//;function Nk(...t){return t.some(e=>e.includes("\\")||rD.test(e))?win32:posix}i(Nk,"pathApiFor");function Ui(t){return t.replace(/\\/g,"/")}i(Ui,"toPosixPath");function ji(t){return Ui(t).replace(/^\/+|\/+$/g,"")}i(ji,"normalizeInstallPathField");function Bl(t){let e=Ui(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||nD.test(e)?e:`./${e}`}i(Bl,"normalizeLocalSourceForYaml");function kn(t){return {...t,source:t.source_kind==="local"?Bl(t.source):t.source,...t.path!==void 0?{path:ji(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>ji(e))}:{}}}i(kn,"normalizePersistedInstallPaths");function Dk(t,e,r){let n=Nk(t,e),o=n.normalize(t),s=n.normalize(e),a=ji(r),l=`${n.sep}.agentsmesh${n.sep}`,c=o.indexOf(l);if(c>=0){let u=o.slice(0,c),p=o.slice(c+l.length),d=ji(p),f=Ui(n.relative(s,u))||".";return {kind:"local",rawRef:"",pathInRepo:a||d.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:u,localSourceForYaml:Bl(f)}}let m=Ui(n.relative(s,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Bl(m)}}i(Dk,"localParsedFromAbsPath");async function Yp(t,e,r){let n=t.trim(),o=r?.trim().replace(/\\/g,"/")??"";if(n.startsWith("git+")){let c=n.lastIndexOf("#"),m=c<0?n:n.slice(0,c),u=c<0?"HEAD":n.slice(c+1),p=m.slice(4);return {kind:"git",rawRef:u,gitPlusBase:p,gitRemoteUrl:p,pathInRepo:o}}if(n.startsWith("https://")||n.startsWith("http://")){let c=Up(n)??Wp(n);if(c)return {kind:"github",rawRef:c.ref,org:c.org,repo:c.repo,gitRemoteUrl:`https://github.com/${c.org}/${c.repo}.git`,pathInRepo:o||c.path};let m=Hp(n);if(m)return {kind:"github",rawRef:"HEAD",org:m.org,repo:m.repo,gitRemoteUrl:`https://github.com/${m.org}/${m.repo}.git`,pathInRepo:o};let u=Bp(n)??Kp(n);if(u)return {kind:"gitlab",rawRef:u.ref,org:u.namespace,repo:u.project,gitRemoteUrl:`https://gitlab.com/${u.namespace}/${u.project}.git`,pathInRepo:o||u.path};let p=zp(n);if(p)return {kind:"gitlab",rawRef:"HEAD",org:p.namespace,repo:p.project,gitRemoteUrl:`https://gitlab.com/${p.namespace}/${p.project}.git`,pathInRepo:o}}if(n.startsWith("git@github.com:")){let c=Vp(n);if(!c)throw new Error(`Invalid GitHub SSH URL: ${n}`);return {kind:"github",rawRef:"HEAD",org:c.org,repo:c.repo,gitRemoteUrl:`https://github.com/${c.org}/${c.repo}.git`,pathInRepo:o}}if(n.startsWith("git@gitlab.com:")){let c=Jp(n);if(!c)throw new Error(`Invalid GitLab SSH URL: ${n}`);return {kind:"gitlab",rawRef:"HEAD",gitRemoteUrl:`https://gitlab.com/${c.namespace}/${c.project}.git`,pathInRepo:o}}if(n.startsWith("git@")){let c=n.match(/^git@([^:]+):(.+?)(?:\.git)?$/);if(!c)throw new Error(`Invalid SSH git URL: ${n}`);let m=c[1],u=c[2].replace(/\.git$/i,"");return {kind:"git",rawRef:"HEAD",gitRemoteUrl:`ssh://git@${m}/${u}.git`,pathInRepo:o}}let s=n.match(/^github:([^/]+)\/(.+?)@([^/@]+)$/);if(s){let c=s[1],m=s[2];return {kind:"github",rawRef:s[3],org:c,repo:m,gitRemoteUrl:`https://github.com/${c}/${m}.git`,pathInRepo:o}}let a=n.match(/^gitlab:(.+)\/([^/@]+)@([^/@]+)$/);if(a){let c=a[1],m=a[2];return {kind:"gitlab",rawRef:a[3],org:c,repo:m,gitRemoteUrl:`https://gitlab.com/${c}/${m}.git`,pathInRepo:o}}let l=resolve(e,n);if(!await N(l))throw new Error(`Path does not exist: ${l}`);return Dk(l,e,o)}i(Yp,"parseInstallSource");E();E();var Fk=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:z$1.enum(["github","gitlab","git","local"]),features:z$1.array(Co).min(1),pick:Fs.optional(),target:Qt.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:Cs.optional()}),lD=z$1.object({version:z$1.literal(1),installs:z$1.array(Fk).default([])});function cD(t,e){return t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n])}i(cD,"sameFeatures");function mD(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&cD(t.features,e.features)}i(mD,"sameInstallIdentity");function vk(t){return join(t,"installs.yaml")}i(vk,"manifestPath");async function Xp(t){let e=await y(vk(t));if(e===null)return [];try{return lD.parse(parse(e)).installs.map(r=>kn(r))}catch{return []}}i(Xp,"readInstallManifest");async function $k(t,e){let r=kn(e),o=(await Xp(t)).filter(s=>s.name!==r.name&&!mD(s,r));o.push(r),await S(vk(t),stringify({version:1,installs:o.sort((s,a)=>s.name.localeCompare(a.name))}));}i($k,"upsertInstallManifestEntry");function Mk(t){return kn(Fk.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}))}i(Mk,"buildInstallManifestEntry");async function pD(t){let e=await Xp(t.canonicalDir);if(e.length===0){_.info("No recorded installs found in .agentsmesh/installs.yaml.");return}let r=[];for(let n of e){let o=join(t.canonicalDir,"packs",n.name);await N(o)||r.push(n);}if(r.length===0){_.info("All recorded packs are already installed.");return}for(let n of r)await t.reinstall(n);_.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}i(pD,"syncInstalledPacks");async function Gk(t){return t.sync?(await pD({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}i(Gk,"maybeRunInstallSync");function jk(t){return {sync:t.sync===true,dryRun:t["dry-run"]===true,force:t.force===true,useExtends:t.extends===true,explicitPath:typeof t.path=="string"?t.path:void 0,explicitTarget:typeof t.target=="string"?t.target.trim():void 0,explicitAs:typeof t.as=="string"?Cs.parse(t.as.trim()):void 0,nameOverride:typeof t.name=="string"?t.name.trim():""}}i(jk,"readInstallFlags");function ho(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}i(ho,"featuresFromCanonical");async function Kl(t){let{sliceRoot:e,implicitPick:r}=await Ol(t),n=await El(e);return {canonical:n,features:ho(n),implicitPick:r}}i(Kl,"discoverFromContentRoot");function Uk(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}i(Uk,"validateSkill");function Wk(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}i(Wk,"validateRule");function Bk(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}i(Bk,"validateCommand");function Kk(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}i(Kk,"validateAgent");function de(t){return basename(t.source).replace(/\.md$/i,"")}i(de,"ruleSlug");function fD(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}i(fD,"featuresFromImplicitPick");function Os(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??fD(r);if(!r&&!n)return t;let o=new Set(n??[]),s={...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);s={...s,skills:r.skills.length===0?[]:s.skills.filter(l=>a.has(l.name))};}else n&&!o.has("skills")&&(s={...s,skills:[]});if(r?.rules!==void 0){let a=new Set(r.rules);s={...s,rules:r.rules.length===0?[]:s.rules.filter(l=>a.has(de(l)))};}else n&&!o.has("rules")&&(s={...s,rules:[]});if(r?.commands!==void 0){let a=new Set(r.commands);s={...s,commands:r.commands.length===0?[]:s.commands.filter(l=>a.has(l.name))};}else n&&!o.has("commands")&&(s={...s,commands:[]});if(r?.agents!==void 0){let a=new Set(r.agents);s={...s,agents:r.agents.length===0?[]:s.agents.filter(l=>a.has(l.name))};}else n&&!o.has("agents")&&(s={...s,agents:[]});return s}i(Os,"narrowDiscoveredForInstallScope");E();E();F();var yD=new Set(["README.md","README.rst","README.txt","README","LICENSE","LICENSE.md","LICENSE.txt","LICENSE-MIT","LICENSE-APACHE","CONTRIBUTING.md","CHANGELOG.md","CODE_OF_CONDUCT.md","package.json","package-lock.json","pnpm-lock.yaml","yarn.lock",".gitignore",".gitattributes",".editorconfig",".DS_Store"]),ID=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]);async function Hl(t){let e=await y(t);if(!e)return "";let{frontmatter:r}=w(e);return typeof r.name!="string"?"":r.name.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i(Hl,"readSkillFrontmatterName");async function Hk(t,e){await cp(t,e,{recursive:true,filter:i(r=>{let n=relative(t,r).replace(/\\/g,"/");if(n==="")return true;let o=n.split("/")[0];return !(ID.has(o)||!n.includes("/")&&yD.has(n))},"filter")});}i(Hk,"cpFilteredSkill");async function kD(){let t=await mkdtemp(join(tmpdir(),"am-install-manual-")),e=join(t,"repo");return await k(join(e,".agentsmesh")),{discoveryRoot:e,cleanup:i(async()=>{await rm$1(t,{recursive:true,force:true});},"cleanup")}}i(kD,"createStageRoot");async function wD(t,e){if((await stat(t)).isFile()){if(!t.toLowerCase().endsWith(".md"))throw new Error(`Manual install only supports .md files for this collection: ${t}`);await k(e),await cp(t,join(e,basename(t)));return}let n=(await b(t)).filter(s=>s.toLowerCase().endsWith(".md"));if(n.length===0)throw new Error(`No .md files found under ${t} for manual install.`);let o=new Map;await k(e);for(let s of n){let a=basename(s),l=o.get(a);if(l)throw new Error(`Manual install found duplicate file name "${a}" under ${t} (${l} and ${s}).`);o.set(a,s),await cp(s,join(e,a));}}i(wD,"stageMarkdownCollection");async function zk(t,e,r){if(r.length===0)return false;let n=new Set(r),o=new Map;for(let s of await b(t)){if(!s.endsWith("/SKILL.md")&&!s.endsWith("\\SKILL.md"))continue;let a=dirname(s),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 k(e);for(let s of r)await cp(o.get(s),join(e,s),{recursive:true});return true}i(zk,"stagePreferredSkills");async function OD(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)),s=join(e,o);await k(s),await cp(dirname(t),s,{recursive:true});return}if(await mo(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await zk(t,e,r.preferredSkillNames??[]))return;let l=await Hl(join(t,"SKILL.md"))||basename(t),c=join(e,l);await k(e),await Hk(t,c);return}if(await zk(t,e,r.preferredSkillNames??[]))return;await k(e);let o=await b(t),s=new Set;for(let a of o.filter(l=>l.endsWith("/SKILL.md")||l.endsWith("\\SKILL.md")))s.add(relative(t,dirname(a)).split(/[\\/]/)[0]);for(let a of s)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}.`)}i(OD,"stageSkills");async function Vk(t,e,r={}){let n=await kD();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await OD(t,o,r):await wD(t,o),n}catch(o){throw await n.cleanup(),o}}i(Vk,"stageManualInstallScope");async function Jk(t,e,r,n){let o=await Vk(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:s}=await Kl(o.discoveryRoot),a=Os(s,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:o.cleanup},narrowed:a,discoveredFeatures:ho(a)}}i(Jk,"resolveManualDiscoveredForInstall");E();var ED=[{prefix:".gemini/commands",target:"gemini-cli"},{prefix:".github/instructions",target:"copilot"},{prefix:".github/copilot-instructions.md",target:"copilot"},{prefix:".github/copilot",target:"copilot"},{prefix:".github/prompts",target:"copilot"},{prefix:".github/skills",target:"copilot"},{prefix:".github/agents",target:"copilot"},{prefix:".github/hooks",target:"copilot"},{prefix:".claude/commands",target:"claude-code"},{prefix:".claude/rules",target:"claude-code"},{prefix:".claude/skills",target:"claude-code"},{prefix:".claude/agents",target:"claude-code"},{prefix:".cursor/commands",target:"cursor"},{prefix:".cursor/rules",target:"cursor"},{prefix:".cursor/agents",target:"cursor"},{prefix:".cursor/skills",target:"cursor"},{prefix:".continue/prompts",target:"continue"},{prefix:".continue/rules",target:"continue"},{prefix:".continue/skills",target:"continue"},{prefix:".junie/commands",target:"junie"},{prefix:".junie/rules",target:"junie"},{prefix:".junie/agents",target:"junie"},{prefix:".junie/skills",target:"junie"},{prefix:".kiro/steering",target:"kiro"},{prefix:".kiro/skills",target:"kiro"},{prefix:".cline/skills",target:"cline"},{prefix:".clinerules/workflows",target:"cline"},{prefix:".windsurf/rules",target:"windsurf"},{prefix:".codex",target:"codex-cli"}];function PD(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}i(PD,"norm");function Vl(t){let e=PD(t),r=[...ED].sort((n,o)=>o.prefix.length-n.prefix.length);for(let{prefix:n,target:o}of r)if(e===n||e.startsWith(`${n}/`))return o}i(Vl,"targetHintFromNativePath");function qp(t,e){return Vl(t)===e}i(qp,"pathSupportsNativePick");function Yk(t,e){if(!t||!e)return;let r=Vl(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.`)}i(Yk,"validateTargetMatchesPath");function Xk(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}i(Xk,"extendPickHasArrays");E();E();dt();async function qk(t,e){let r=join(t,...vt.split("/")),n=join(t,...e.split("/")),o=await b(n),s=[];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&&s.push(m);}return [...new Set(s)].sort()}i(qk,"inferGeminiCommandNamesFromFiles");dt();re();E();async function yo(t){let e=await b(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()}i(yo,"skillNamesFromNativeSkillDir");E();Vt();async function Qk(t,e){let r=join(t,...e.split("/"));if(e.startsWith(be)){let n=await b(r),o=[...new Set(n.filter(s=>s.toLowerCase().endsWith(".prompt.md")).map(s=>basename(s,".prompt.md")))].sort();return o.length?{commands:o}:{}}if(e.startsWith(".github/copilot")&&!e.includes("copilot-instructions.md")){let n=await b(r),o=[...new Set(n.filter(s=>s.includes(".instructions.md")).map(s=>basename(s).replace(/\.instructions\.md$/i,"")))].sort();return o.length?{rules:o}:{}}if(e.startsWith(".github/instructions")){let n=await b(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 s=[...o].sort();return s.length?{rules:s}:{}}if(e.startsWith(".github/skills")){let n=await yo(r);return n.length?{skills:n}:{}}if(e.startsWith(".github/agents")){let n=await b(r),o=[...new Set(n.filter(s=>s.toLowerCase().endsWith(".agent.md")).map(s=>basename(s,".agent.md")))].sort();return o.length?{agents:o}:{}}return {}}i(Qk,"inferCopilotPickFromPath");async function Xt(t,e){let r=await b(t),n=e.toLowerCase();return [...new Set(r.filter(o=>o.toLowerCase().endsWith(n)).map(o=>basename(o,e)))].sort()}i(Xt,"mdNames");async function ew(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===vt||n.startsWith(`${vt}/`)){let s=await qk(t,n);return s.length?{commands:s}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let s=await Xt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".claude/rules")){let s=await Xt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".claude/agents")){let s=await Xt(o,".md");return s.length?{agents:s}:{}}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 s=await Xt(o,".mdc");return s.length?{rules:s}:{}}if(n.startsWith(".cursor/commands")){let s=await Xt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".cursor/agents")){let s=await Xt(o,".md");return s.length?{agents:s}:{}}if(n.startsWith(".cursor/skills")){let s=await yo(o);return s.length?{skills:s}:{}}return {}}if(r==="copilot")return Qk(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let s=await Xt(o,".md");return s.length?{rules:s}:{}}if(r==="cline"){if(n.startsWith(yt)){let s=await yo(o);return s.length?{skills:s}:{}}if(n.startsWith(Be)){let s=await Xt(o,".md");return s.length?{commands:s}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let s=await Xt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".continue/prompts")){let s=await Xt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".continue/skills")){let s=await yo(o);return s.length?{skills:s}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let s=await Xt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".junie/rules")){let s=await Xt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".junie/agents")){let s=await Xt(o,".md");return s.length?{agents:s}:{}}if(n.startsWith(".junie/skills")){let s=await yo(o);return s.length?{skills:s}:{}}return {}}if(r==="codex-cli"&&n.startsWith(".codex")){let s=await b(o),a=[...new Set(s.filter(l=>l.toLowerCase().endsWith(".md")).map(l=>basename(l,".md")))].sort();return a.length?{rules:a}:{}}return {}}i(ew,"inferImplicitPickFromNativePath");function rw(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}i(rw,"isImplicitPickEmpty");function Ki(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}i(Ki,"normalizePath");function $D(t,e){let r=Ki(t),n=Ki(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}i($D,"overlapsPath");function Jl(t,e){let r=t??[];return r.includes(e)||r.push(e),r}i(Jl,"addUnique");async function MD(t){let e=await mkdtemp(join(tmpdir(),"am-install-native-")),r=join(e,"repo"),n=i(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}}i(MD,"makeStageRoot");function GD(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Jl(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let s=Ki(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:Jl(r?.commands,s.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Jl(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Ki(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:Jl(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}i(GD,"buildPickFromResults");function jD(t,e,r,n){let o=join(e,...Ki(t).split("/")),s=r.filter(a=>$D(o,a.fromPath));if(s.length===0)throw new Error(`No installable native resources found under "${t}" for target "${n}".`);return {features:[...new Set(s.map(a=>a.feature))],pick:GD(s,e)}}i(jD,"scopeImportedResults");async function td(t,e){let{stageRoot:r,cleanup:n}=await MD(t);try{let o=await bi(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}i(td,"stageImportedNativeRepo");async function ed(t,e,r){let n=await td(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...jD(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}i(ed,"stageNativeInstallScope");async function iw(t,e,r,n){let o=n.explicitTarget?.trim();o&&Qt.parse(o);let s=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");Yk(o,s);let a=join(t,".agentsmesh"),l=await N(a),c=s?Vl(s):void 0,m=!l&&!o?await sa(t)??void 0:void 0;if(!o&&c&&m&&c!==m)throw new Error(`Install path suggests native layout "${c}" but auto-detect imported "${m}". Use --target ${c} for this path, or install from the repo root without a conflicting subtree path.`);let u=o??c??m,p=!!s&&!!u&&!s.startsWith(".agentsmesh");if(!l&&u){if(p){let O=await ed(t,s,u);return {discoveryRoot:O.stageRoot,implicitPick:O.pick,scopedFeatures:O.features,yamlTarget:u,importHappened:true,cleanup:O.cleanup}}let I=await td(t,u);return {discoveryRoot:s?join(I.stageRoot,s):I.stageRoot,yamlTarget:u,importHappened:true,cleanup:I.cleanup}}let d;l?s?u&&qp(s,u)?d=t:d=e:d=t:d=e;let f,h,C;if(p&&u){let I=await ed(t,s,u);d=I.stageRoot,f=I.pick,h=I.features,C=I.cleanup;}else if(d===t&&s&&u&&qp(s,u)&&(f=await ew(t,s,u),rw(f)))throw new Error(`No installable native resources found under "${s}" for target "${u}".`);let R;return o?R=o:u&&(f&&Xk(f)||(h?.length??0)>0)&&(R=u),{discoveryRoot:d,implicitPick:f,scopedFeatures:h,yamlTarget:R,importHappened:C!==void 0,cleanup:C}}i(iw,"prepareInstallDiscovery");async function aw(t,e,r,n){let o=await iw(t,e,r,{explicitTarget:n}),{canonical:s,implicitPick:a}=await Kl(o.discoveryRoot),l=a??o.implicitPick,c=Os(s,{implicitPick:l,scopedFeatures:o.scopedFeatures}),m=ho(c);return {prep:o,discovered:s,implicitPick:l,narrowed:c,discoveredFeatures:m}}i(aw,"resolveDiscoveredForInstall");async function lw(t){return t.explicitAs?{implicitPick:void 0,...await Jk(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick)}:aw(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget)}i(lw,"resolveInstallDiscovery");function Ps(t){return t==="."||t===""?void 0:t}i(Ps,"trimDot");function WD(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}i(WD,"markdownPick");async function mw(t){if(!t.as)return {pathInRepo:Ps(t.pathInRepo)};let e=t.pathInRepo.replace(/^\/+|\/+$/g,""),r=await stat(t.contentRoot);if(t.as!=="skills"&&r.isFile()&&t.contentRoot.toLowerCase().endsWith(".md"))return {pathInRepo:Ps(dirname(e)),pick:WD(t.as,e||t.contentRoot)};if(t.as==="skills"){if(r.isFile()&&basename(t.contentRoot)==="SKILL.md"){let n=e?dirname(e):dirname(t.contentRoot);return {pathInRepo:Ps(dirname(n)),pick:{skills:[basename(n)]}}}if(r.isDirectory()){let n=e||basename(t.contentRoot),o=join(t.contentRoot.replace(/\/+$/g,""),"SKILL.md");try{if((await stat(o)).isFile()){let a=await Hl(o);return {pathInRepo:Ps(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:Ps(e)}}}}return {pathInRepo:Ps(e)}}i(mw,"resolveManualInstallPersistence");async function gr(t){return process.stdin.isTTY?new Promise(e=>{let r=uw.createInterface({input:process.stdin,output:process.stdout});r.question(`${t} (y/n) `,n=>{r.close();let o=n.trim().toLowerCase();e(o==="y"||o==="yes");});}):false}i(gr,"confirm");function BD(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}i(BD,"hasArrayResources");function pw(t){return BD(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}i(pw,"hasInstallableResources");async function dw(t,e,r,n){let o=t.skills.map(l=>Uk(l)),s=o.filter(l=>l.ok).map(l=>l.skill),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await gr(`Include invalid skill "${l.skill.name}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.skill);else e&&(s=o.map(l=>l.skill));return r&&(s=o.filter(l=>l.ok).map(l=>l.skill)),s}i(dw,"resolveSkillPool");async function fw(t,e,r,n){let o=t.rules.map(l=>Wk(l)),s=o.filter(l=>l.ok).map(l=>l.rule),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await gr(`Include invalid rule "${de(l.rule)}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.rule);else e&&(s=o.map(l=>l.rule));return r&&(s=o.filter(l=>l.ok).map(l=>l.rule)),s}i(fw,"resolveRulePool");async function gw(t,e,r,n){let o=t.commands.map(l=>Bk(l)),s=o.filter(l=>l.ok).map(l=>l.command),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await gr(`Include invalid command "${l.command.name}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.command);else e&&(s=o.map(l=>l.command));return r&&(s=o.filter(l=>l.ok).map(l=>l.command)),s}i(gw,"resolveCommandPool");async function hw(t,e,r,n){let o=t.agents.map(l=>Kk(l)),s=o.filter(l=>l.ok).map(l=>l.agent),a=o.filter(l=>!l.ok);if(!e&&!r&&n)for(let l of a)await gr(`Include invalid agent "${l.agent.name}" anyway? (${l.reason}). You can fix it later.`)&&s.push(l.agent);else e&&(s=o.map(l=>l.agent));return r&&(s=o.filter(l=>l.ok).map(l=>l.agent)),s}i(hw,"resolveAgentPool");async function yw(t,e){let r=e.skills.map(a=>a.name),n=e.rules.map(a=>de(a)),o=e.commands.map(a=>a.name),s=e.agents.map(a=>a.name);for(let a of e.skills)t.skills.some(l=>l.name===a.name)&&(await gr(`Skill "${a.name}" already exists in merged config. Add extend anyway?`)||(r=r.filter(c=>c!==a.name)));for(let a of e.rules){let l=de(a);t.rules.some(c=>de(c)===l)&&(await gr(`Rule "${l}" already exists in merged config. Add extend anyway?`)||(n=n.filter(m=>m!==l)));}for(let a of e.commands)t.commands.some(l=>l.name===a.name)&&(await gr(`Command "${a.name}" already exists in merged config. Add extend anyway?`)||(o=o.filter(c=>c!==a.name)));for(let a of e.agents)t.agents.some(l=>l.name===a.name)&&(await gr(`Agent "${a.name}" already exists in merged config. Add extend anyway?`)||(s=s.filter(c=>c!==a.name)));return {skillNames:r,ruleSlugs:n,commandNames:o,agentNames:s}}i(yw,"resolveInstallConflicts");function Iw(t,e){if(!t)return;let r={},n=t.skills?.filter(l=>e.skillNames.includes(l)),o=t.rules?.filter(l=>e.ruleSlugs.includes(l)),s=t.commands?.filter(l=>e.commandNames.includes(l)),a=t.agents?.filter(l=>e.agentNames.includes(l));return n&&n.length>0&&(r.skills=n),o&&o.length>0&&(r.rules=o),s&&s.length>0&&(r.commands=s),a&&a.length>0&&(r.agents=a),Object.keys(r).length>0?r:void 0}i(Iw,"pickForSelectedResources");function KD(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}i(KD,"pathEndsWithName");function Yl(t,e,r){return r!==1||e.length!==1?false:KD(t,e[0])}i(Yl,"inferSingleNamePick");function Sw(t){let{pathInRepo:e,implicitPick:r,preConflictCounts:n,selected:o}=t,s={},a=o.skillNames.length>0&&(!!r?.skills?.length||o.skillNames.length<n.skills||Yl(e,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||Yl(e,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||Yl(e,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||Yl(e,o.agentNames,n.agents));return a&&(s.skills=[...o.skillNames]),l&&(s.rules=[...o.ruleSlugs]),c&&(s.commands=[...o.commandNames]),m&&(s.agents=[...o.agentNames]),Object.keys(s).length?s:void 0}i(Sw,"buildInstallPick");function _w(t,e){let r=new Set(t);return e.skillNames.length===0&&r.delete("skills"),e.ruleSlugs.length===0&&r.delete("rules"),e.commandNames.length===0&&r.delete("commands"),e.agentNames.length===0&&r.delete("agents"),[...r]}i(_w,"deriveInstallFeatures");function HD(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}i(HD,"isEmptyInstallSelection");function Cw(t){let{selected:e,discoveredFeatures:r,preConflict:n}=t,o=i(l=>r.includes(l),"had"),s=o("skills")&&e.skillNames.length===0&&n.skills>0&&"skills"||o("rules")&&e.ruleSlugs.length===0&&n.rules>0&&"rules"||o("commands")&&e.commandNames.length===0&&n.commands>0&&"commands"||o("agents")&&e.agentNames.length===0&&n.agents>0&&"agents";if(s)throw new Error(`No ${s} selected to install.`);let a=r.some(l=>["mcp","permissions","hooks","ignore"].includes(l));if(HD(e)&&!a)throw new Error("No resources selected to install.")}i(Cw,"ensureInstallSelection");function Rw(t,e){if(t.find(n=>n.name===e.name&&n.source!==e.source))throw new Error(`Extends entry "${e.name}" already exists with a different source. Use --name to provide a different name.`)}i(Rw,"assertExtendNameAvailable");function zD(t,e,r){if(r===void 0){if(!t)return;let o={...t};for(let s of ["skills","commands","rules","agents"])e.includes(s)&&delete o[s];return Object.keys(o).length?o:void 0}let n={...t};for(let o of ["skills","commands","rules","agents"]){if(!(o in r))continue;let s=r[o];if(s===void 0||s.length===0){delete n[o];continue}n[o]=[...new Set([...t?.[o]??[],...s])];}return Object.keys(n).length?n:void 0}i(zD,"mergePick");function kw(t,e){let r=t.findIndex(a=>a.source===e.source);if(r<0)return [...t,{name:e.name,source:e.source,version:e.version,features:e.features,path:e.path,pick:e.pick,target:e.target}];let n=t[r],o=[...new Set([...n.features,...e.features])],s=zD(n.pick,e.features,e.pick);return t.map((a,l)=>l===r?{name:e.name,source:e.source,version:e.version??n.version,features:o,path:e.path!==void 0?e.path:n.path,pick:s,target:e.target??n.target}:a)}i(kw,"mergeExtendList");E();async function ww(t,e,r){let n=await y(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),s=kw(e.extends,r);o.extends=s;let a=stringify(o,{indent:2,lineWidth:0});await S(t,a.endsWith(`
|
|
286
286
|
`)?a:`${a}
|
|
287
|
-
`);}i(
|
|
288
|
-
${JSON.stringify(s,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await
|
|
289
|
-
`);return `sha256:${
|
|
290
|
-
`),t.permissions!==null&&await
|
|
287
|
+
`);}i(ww,"writeAgentsmeshWithNewExtend");async function Ow(t){let{configDir:e,config:r,entryArgs:n,dryRun:o}=t,s=XD(n);if(Rw(r.extends,s),o){_.info(`[dry-run] Would add extend:
|
|
288
|
+
${JSON.stringify(s,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await ww(a,r,s),_.success(`Wrote extends entry "${s.name}" to agentsmesh.yaml.`);}i(Ow,"writeInstallAsExtend");function XD(t){return {name:t.name,source:t.source,version:t.version,features:t.features,path:t.path,pick:t.pick,target:t.yamlTarget!==void 0?Qt.parse(t.yamlTarget):void 0}}i(XD,"toNewExtendEntry");E();E();var qD="pack.yaml";async function Xl(t){let e=await b(t),r=[];for(let s of e.sort()){let a=relative(t,s).replace(/\\/g,"/");if(a===qD)continue;let l=await Al(s);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
|
|
289
|
+
`);return `sha256:${Ni(n)}`}i(Xl,"hashPackContent");async function rF(t,e){if(t.rules.length===0)return;let r=join(e,"rules");await k(r);for(let n of t.rules){let o=join(r,basename(n.source));await copyFile(n.source,o);}}i(rF,"writeRules");async function nF(t,e){if(t.commands.length===0)return;let r=join(e,"commands");await k(r);for(let n of t.commands){let o=join(r,basename(n.source));await copyFile(n.source,o);}}i(nF,"writeCommands");async function oF(t,e){if(t.agents.length===0)return;let r=join(e,"agents");await k(r);for(let n of t.agents){let o=join(r,basename(n.source));await copyFile(n.source,o);}}i(oF,"writeAgents");async function sF(t,e){if(t.skills.length===0)return;let r=join(e,"skills");await k(r);for(let n of t.skills){let o=join(r,n.name);await k(o),await copyFile(n.source,join(o,"SKILL.md"));for(let s of n.supportingFiles){let a=join(o,s.relativePath);await k(dirname(a)),await copyFile(s.absolutePath,a);}}}i(sF,"writeSkills");async function iF(t,e){t.mcp!==null&&await S(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
290
|
+
`),t.permissions!==null&&await S(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await S(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await S(join(e,"ignore"),`${t.ignore.join(`
|
|
291
291
|
`)}
|
|
292
|
-
`);}i(
|
|
293
|
-
`),t.permissions!==null&&await
|
|
292
|
+
`);}i(iF,"writeSettings");async function Pw(t,e,r,n){let o=join(t,`${e}.tmp`),s=join(t,e);await N(o)&&await rm$1(o,{recursive:true,force:true}),await k(o),await rF(r,o),await nF(r,o),await oF(r,o),await sF(r,o),await iF(r,o);let a=await Xl(o),l=kn({...n,content_hash:a});return await S(join(o,"pack.yaml"),stringify(l)),await N(s)&&await rm$1(s,{recursive:true,force:true}),await mkdir(t,{recursive:true}),await rename(o,s),l}i(Pw,"materializePack");E();function id(t,e){return [...new Set([...t,...e])]}i(id,"union");function lF(t,e){if(t.path===void 0&&t.paths===void 0||e===void 0)return {path:void 0,paths:void 0};let n=id(t.paths??(t.path?[t.path]:[]),[e]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}i(lF,"mergePathScope");function cF(t,e,r){let n={...t};for(let s of e)r&&r[s]!==void 0?n[s]=id(n[s]??[],r[s]):delete n[s];return (n.skills?.length??0)>0||(n.rules?.length??0)>0||(n.commands?.length??0)>0||(n.agents?.length??0)>0?n:void 0}i(cF,"mergePick");async function mF(t,e){if(t.rules.length===0)return;let r=join(e,"rules");await k(r);for(let n of t.rules)await copyFile(n.source,join(r,basename(n.source)));}i(mF,"mergeRules");async function uF(t,e){if(t.commands.length===0)return;let r=join(e,"commands");await k(r);for(let n of t.commands)await copyFile(n.source,join(r,basename(n.source)));}i(uF,"mergeCommands");async function pF(t,e){if(t.agents.length===0)return;let r=join(e,"agents");await k(r);for(let n of t.agents)await copyFile(n.source,join(r,basename(n.source)));}i(pF,"mergeAgents");async function dF(t,e){if(t.skills.length===0)return;let r=join(e,"skills");await k(r);for(let n of t.skills){let o=join(r,n.name);await k(o),await copyFile(n.source,join(o,"SKILL.md"));for(let s of n.supportingFiles){let a=join(o,s.relativePath);await k(dirname(a)),await copyFile(s.absolutePath,a);}}}i(dF,"mergeSkills");async function fF(t,e){t.mcp!==null&&await S(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
293
|
+
`),t.permissions!==null&&await S(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await S(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await S(join(e,"ignore"),`${t.ignore.join(`
|
|
294
294
|
`)}
|
|
295
|
-
`);}i(
|
|
296
|
-
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===e.id))return;let s={id:e.id,source:e.source};e.version!==void 0&&(s.version=e.version),o.plugins.push(s),await
|
|
295
|
+
`);}i(fF,"mergeSettings");async function xw(t,e,r,n,o,s){await mF(r,t),await uF(r,t),await pF(r,t),await dF(r,t),await fF(r,t);let a=id(e.features,n),l=cF(e.pick,n,o),c=lF(e,s?.path),m=await Xl(t),u=new Date().toISOString(),p=kn({...e,source:s?.source??e.source,...s?.version!==void 0?{version:s.version}:e.version!==void 0?{version:e.version}:{},features:a,pick:l,...s?.target!==void 0?{target:s.target}:e.target!==void 0?{target:e.target}:{},...c,...s?.as!==void 0?{as:s.as}:e.as!==void 0?{as:e.as}:{},updated_at:u,content_hash:m});return await S(join(t,"pack.yaml"),stringify(p)),p}i(xw,"mergeIntoPack");E();function hF(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}i(hF,"pathScope");function yF(t,e){let r=new Set(e.skillNames),n=new Set(e.ruleSlugs),o=new Set(e.commandNames),s=new Set(e.agentNames);return {...t,skills:t.skills.filter(a=>r.has(a.name)),rules:t.rules.filter(a=>n.has(de(a))),commands:t.commands.filter(a=>o.has(a.name)),agents:t.agents.filter(a=>s.has(a.name))}}i(yF,"applySelection");async function bw(t){let{canonicalDir:e,packName:r,narrowed:n,selected:o,sourceForYaml:s,version:a,sourceKind:l,entryFeatures:c,pick:m,yamlTarget:u,pathInRepo:p,manualAs:d,renameExistingPack:f}=t,h=join(e,"packs"),C=yF(n,o),R=new Date().toISOString(),I=u!==void 0?Qt.parse(u):void 0,O=await pR(h,s,{target:I,as:d,features:c}),x=r,P=c,A=m,K=p,M;if(O){let B=O.packDir,Z=O.meta;if(f&&O.name!==r){let q=join(h,r);if(await N(q))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await rename(O.packDir,q),B=q,Z={...O.meta,name:r};}let it=await xw(B,Z,C,c,m,{source:s,...a!==void 0?{version:a}:{},...I!==void 0?{target:I}:{},...p?{path:p}:{},...d!==void 0?{as:d}:{}});x=it.name,P=it.features,A=it.pick,K=it.path,M=it.paths,_.success(`Updated pack "${it.name}" in .agentsmesh/packs/.`);}else {if(await xl(join(h,r)))throw new Error(`Auto-generated pack name "${r}" collides with an existing incompatible pack. Use --name to choose a different pack name.`);await Pw(h,r,C,{name:r,source:s,...a!==void 0&&{version:a},source_kind:l,installed_at:R,updated_at:R,features:c,...m!==void 0&&{pick:m},...I!==void 0&&{target:I},...hF(p),...d!==void 0&&{as:d}}),_.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await $k(e,Mk({name:x,source:s,version:a,sourceKind:l,features:P,pick:A,target:I,path:K,paths:M,as:d})),l!=="local"&&await Vd(s);}i(bw,"installAsPack");function SF(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i(SF,"sanitize");function _F(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"}}i(_F,"gitUrlLastSegments");function Aw(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=_F(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=SF(n)||"extend";if(!r.has(o))return o;let s=2;for(;r.has(`${o}-${s}`);)s++;return `${o}-${s}`}i(Aw,"suggestExtendName");function Tw(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,s=new Set(e.extends.map(a=>a.name));return o||Aw(r,{featureHint:n.length===1?n[0]:void 0},s)}i(Tw,"selectInstallEntryName");function Lw(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=Os(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:ho(n)}}i(Lw,"applyReplayInstallScope");async function Nw(t){let{scope:e,force:r,dryRun:n,tty:o,useExtends:s,nameOverride:a,explicitAs:l,config:c,context:m,parsed:u,sourceForYaml:p,version:d,pathInRepo:f,persisted:h,replay:C,prep:R,implicitPick:I,narrowed:O,discoveredFeatures:x}=t,{narrowed:P,discoveredFeatures:A}=Lw(O,x,C);if(!pw(P))throw new Error(I||R.scopedFeatures?"No resources match the install path or implicit selection (check pick names exist at that path).":"No supported resources found to install (skills, rules, commands, agents).");let K=await dw(P,r,n,o),M=await fw(P,r,n,o),B=await gw(P,r,n,o),Z=await hw(P,r,n,o),it={skills:K.length,rules:M.length,commands:B.length,agents:Z.length},{canonical:q}=await me(c,m.configDir,{},m.canonicalDir),Zt=!r&&!n&&o?await yw(q,{skills:K,rules:M,commands:B,agents:Z}):{skillNames:K.map(qt=>qt.name),ruleSlugs:M.map(qt=>de(qt)),commandNames:B.map(qt=>qt.name),agentNames:Z.map(qt=>qt.name)};Cw({selected:Zt,discoveredFeatures:A,preConflict:it});let at=C?.features??_w(A,Zt);if(at.length===0)throw new Error("No features left to install after selection.");let gt=Iw(C?.pick,Zt)??h.pick??Sw({pathInRepo:h.pathInRepo??f,implicitPick:I,preConflictCounts:it,selected:Zt}),Ut=Tw({config:c,parsed:u,entryFeatures:at,nameOverride:a});if(s){if(await Ow({configDir:m.configDir,config:c,entryArgs:{name:Ut,source:p,version:d,features:at,path:h.pathInRepo,pick:gt,yamlTarget:R.yamlTarget},dryRun:n}),n)return}else {if(n){_.info(`[dry-run] Would install pack "${Ut}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`);return}await bw({canonicalDir:m.canonicalDir,packName:Ut,narrowed:P,selected:Zt,sourceForYaml:p,version:d,sourceKind:u.kind,entryFeatures:at,pick:gt,yamlTarget:R.yamlTarget,pathInRepo:h.pathInRepo,manualAs:l,renameExistingPack:a===""});}await ks(e==="global"?{global:true}:{},m.rootBase)!==0&&_.warn(`Generate failed after install. Fix the issue and run agentsmesh generate${e==="global"?" --global":""}.`);}i(Nw,"executeRunInstallPoolsAndWrite");async function ld(t,e,r,n){let{sync:o,dryRun:s,force:a,useExtends:l,explicitPath:c,explicitTarget:m,explicitAs:u,nameOverride:p}=jk(t),d=t.global===true?"global":"project",f=e[0]?.trim();if(o){let{context:Zt}=await lt(r,d);if(await Gk({sync:o,canonicalDir:Zt.canonicalDir,reinstall:i(async at=>{let gt=at.paths&&at.paths.length>0?at.paths:[at.path];for(let Ut of gt)await ld({...a?{force:true}:{},...s?{"dry-run":true}:{},...d==="global"?{global:true}:{},name:at.name,...at.target?{target:at.target}:{},...Ut?{path:Ut}:{},...at.as?{as:at.as}:{}},[at.source],r,{features:at.features,pick:at.pick});},"reinstall")}))return}if(!f)throw new Error("Missing source. Usage: agentsmesh install <source> [--path ...] [--target ...]");let h=process.stdin.isTTY;if(!h&&!a&&!s)throw new Error("Non-interactive terminal: use --force or --dry-run for agentsmesh install.");let{config:C,context:R}=await lt(r,d),I=await Yp(f,R.configDir,c);if(I.kind!=="local"&&!await bk())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:O,sourceForYaml:x,version:P}=await Lk(I,f),A=I.pathInRepo.replace(/^\/+|\/+$/g,""),K=A?join(O,A):O;if(!await N(K))throw new Error(`Install path does not exist: ${K}`);let M=await mw({as:u,contentRoot:K,pathInRepo:A}),{prep:B,implicitPick:Z,narrowed:it,discoveredFeatures:q}=await lw({resolvedPath:O,contentRoot:K,pathInRepo:A,explicitTarget:m,explicitAs:u,replayPick:n?.pick});try{await Nw({scope:d,force:a,dryRun:s,tty:h,useExtends:l,nameOverride:p,explicitAs:u,config:C,context:R,parsed:I,sourceForYaml:x,version:P,pathInRepo:A,persisted:M,replay:n,prep:B,implicitPick:Z,narrowed:it,discoveredFeatures:q});}finally{B.cleanup&&await B.cleanup();}}i(ld,"runInstall");async function Dw(t,e,r){await ld(t,e,r);}i(Dw,"runInstall");E();var ud="agentsmesh.yaml";async function pd(t){let e=join(t,ud),r=await y(e);return r===null?{}:parse(r)??{}}i(pd,"readScopedConfigRaw");async function vw(t,e){let r=join(t,ud),n=await y(r)??`version: 1
|
|
296
|
+
`,o=parse(n)??{};if(o.plugins||(o.plugins=[]),o.plugins.some(a=>a.id===e.id))return;let s={id:e.id,source:e.source};e.version!==void 0&&(s.version=e.version),o.plugins.push(s),await S(r,stringify(o));}i(vw,"writePluginEntry");async function $w(t,e){let r=join(t,ud),n=await y(r);if(n===null)return false;let o=parse(n)??{},s=(o.plugins??[]).length;o.plugins=(o.plugins??[]).filter(l=>l.id!==e),o.pluginTargets&&(o.pluginTargets=o.pluginTargets.filter(l=>l!==e));let a=o.plugins.length<s;return a&&await S(r,stringify(o)),a}i($w,"removePluginEntry");async function Gw(t,e,r){let n=e[0];if(n===void 0||n==="")return Mw(),0;switch(n){case "add":return RF(t,e.slice(1),r);case "list":return kF(r);case "remove":return wF(e.slice(1),r);case "info":return OF(e.slice(1),r);default:return _.error(`Unknown plugin subcommand: ${n}`),Mw(),2}}i(Gw,"runPlugin");async function RF(t,e,r){let n=e[0];if(!n)return _.error("Usage: agentsmesh plugin add <source> [--version <v>] [--id <id>]"),2;let o=typeof t.version=="string"?t.version:void 0,a=(typeof t.id=="string"?t.id:void 0)??EF(n);try{await vw(r,{id:a,source:n,version:o});}catch(l){return _.error(`Failed to update config: ${l instanceof Error?l.message:String(l)}`),1}return _.success(`Plugin '${a}' added to agentsmesh.yaml`),_.info(`Next: npm install ${n}${o!==void 0?`@${o}`:"@latest"}`),_.info(`Then add '${a}' to pluginTargets in agentsmesh.yaml to enable it.`),0}i(RF,"runPluginAdd");async function kF(t){let e;try{e=await pd(t);}catch(n){return _.error(`Failed to read config: ${n instanceof Error?n.message:String(n)}`),1}let r=e.plugins??[];if(r.length===0)return _.info("No plugins configured. Use: agentsmesh plugin add <source>"),0;_.info("Configured plugins:");for(let n of r){let o="\u2717",s="";try{let l=await Gl(n,t);o=l.descriptors.length>0?"\u2713":"\u2713 (0 descriptors)",s=l.descriptors.map(c=>c.id).join(", ");}catch{}let a=n.version!==void 0?`@${n.version}`:"";_.info(` ${n.id} | ${n.source}${a} | ${o} | ${s}`);}return 0}i(kF,"runPluginList");async function wF(t,e){let r=t[0];if(!r)return _.error("Usage: agentsmesh plugin remove <id>"),2;try{await $w(e,r)?_.success(`Plugin '${r}' removed from agentsmesh.yaml`):_.warn(`Plugin '${r}' was not found in agentsmesh.yaml`);}catch(n){return _.error(`Failed to update config: ${n instanceof Error?n.message:String(n)}`),1}return 0}i(wF,"runPluginRemove");async function OF(t,e){let r=t[0];if(!r)return _.error("Usage: agentsmesh plugin info <id>"),2;let n;try{n=await pd(e);}catch(a){return _.error(`Failed to read config: ${a instanceof Error?a.message:String(a)}`),1}let o=(n.plugins??[]).find(a=>a.id===r);if(!o)return _.error(`Plugin '${r}' not found in agentsmesh.yaml. Use: agentsmesh plugin add`),1;let s;try{s=await Gl(o,e);}catch(a){return _.error(`Failed to load plugin '${r}': ${a instanceof Error?a.message:String(a)}`),1}_.info(`Plugin: ${o.id}`),_.info(`Source: ${o.source}${o.version!==void 0?`@${o.version}`:""}`),_.info(`Descriptors: ${s.descriptors.length}`);for(let a of s.descriptors)_.info(` - ${a.id}: ${a.emptyImportMessage}`);return 0}i(OF,"runPluginInfo");function EF(t){let e=t;if(e.startsWith("@")){let n=e.indexOf("/");n!==-1&&(e=e.slice(n+1));}e.startsWith("agentsmesh-target-")&&(e=e.slice(18)),e.startsWith("file:")&&(e=e.slice(5));let r=e.replace(/\\/g,"/").split("/");return e=r[r.length-1]??e,e=e.replace(/\.(js|ts)$/,""),e=e.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,""),e||"plugin"}i(EF,"derivePluginId");function Mw(){_.info("Usage: agentsmesh plugin <subcommand> [args] [flags]"),_.info(""),_.info("Subcommands:"),_.info(" add <source> Register a plugin package in agentsmesh.yaml"),_.info(" list Show all configured plugins and load status"),_.info(" remove <id> Remove a plugin from agentsmesh.yaml"),_.info(" info <id> Show descriptor details for a configured plugin"),_.info(""),_.info("Flags (add):"),_.info(" --version <v> Pin plugin version"),_.info(" --id <id> Override derived plugin id");}i(Mw,"printPluginHelp");E();yr();function bs(t){return t.toUpperCase().replace(/-/g,"_")}i(bs,"toPrefix");function xs(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}i(xs,"toPascal");function jw(t){let e=bs(t.id);return `export const ${e}_TARGET = '${t.id}';
|
|
297
297
|
|
|
298
298
|
// Project-level paths
|
|
299
299
|
export const ${e}_DIR = '.${t.id}';
|
|
@@ -306,7 +306,7 @@ export const ${e}_GLOBAL_RULES_DIR = '~/.${t.id}/rules';
|
|
|
306
306
|
// Canonical paths
|
|
307
307
|
export const ${e}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
|
|
308
308
|
export const ${e}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
|
|
309
|
-
`}i(
|
|
309
|
+
`}i(jw,"TEMPLATE_CONSTANTS");function Uw(t){let e=bs(t.id),r=xs(t.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
|
|
310
310
|
import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
|
|
311
311
|
import { generateRules } from './generator.js';
|
|
312
312
|
import { importFrom${r} } from './importer.js';
|
|
@@ -377,17 +377,6 @@ export const descriptor = {
|
|
|
377
377
|
ignore: 'none',
|
|
378
378
|
permissions: 'none',
|
|
379
379
|
},
|
|
380
|
-
globalCapabilities: {
|
|
381
|
-
rules: 'native',
|
|
382
|
-
additionalRules: 'none',
|
|
383
|
-
commands: 'none',
|
|
384
|
-
agents: 'none',
|
|
385
|
-
skills: 'none',
|
|
386
|
-
mcp: 'none',
|
|
387
|
-
hooks: 'none',
|
|
388
|
-
ignore: 'none',
|
|
389
|
-
permissions: 'none',
|
|
390
|
-
},
|
|
391
380
|
supportsConversion: { commands: true, agents: true },
|
|
392
381
|
lint: {
|
|
393
382
|
hooks: lintHooks,
|
|
@@ -396,26 +385,39 @@ export const descriptor = {
|
|
|
396
385
|
'No ${t.displayName} config found (${e}_DIR).',
|
|
397
386
|
lintRules,
|
|
398
387
|
project,
|
|
399
|
-
|
|
400
|
-
|
|
388
|
+
globalSupport: {
|
|
389
|
+
capabilities: {
|
|
390
|
+
rules: 'native',
|
|
391
|
+
additionalRules: 'none',
|
|
392
|
+
commands: 'none',
|
|
393
|
+
agents: 'none',
|
|
394
|
+
skills: 'none',
|
|
395
|
+
mcp: 'none',
|
|
396
|
+
hooks: 'none',
|
|
397
|
+
ignore: 'none',
|
|
398
|
+
permissions: 'none',
|
|
399
|
+
},
|
|
400
|
+
detectionPaths: [${e}_GLOBAL_DIR],
|
|
401
|
+
layout: global,
|
|
402
|
+
},
|
|
401
403
|
buildImportPaths: build${r}ImportPaths,
|
|
402
404
|
detectionPaths: [${e}_DIR],
|
|
403
405
|
} satisfies TargetDescriptor;
|
|
404
|
-
`}i(
|
|
406
|
+
`}i(Uw,"TEMPLATE_INDEX");function Ww(t){let e=bs(t.id);return `import type { CanonicalFiles } from '../../core/types.js';
|
|
405
407
|
import { ${e}_TARGET, ${e}_DIR } from './constants.js';
|
|
406
408
|
|
|
407
|
-
export interface ${
|
|
409
|
+
export interface ${xs(t.id)}Output {
|
|
408
410
|
path: string;
|
|
409
411
|
content: string;
|
|
410
412
|
}
|
|
411
413
|
|
|
412
|
-
export function generateRules(_canonical: CanonicalFiles): ${
|
|
414
|
+
export function generateRules(_canonical: CanonicalFiles): ${xs(t.id)}Output[] {
|
|
413
415
|
// TODO(agentsmesh-scaffold): implement generateRules for ${t.displayName}
|
|
414
416
|
void ${e}_TARGET;
|
|
415
417
|
void ${e}_DIR;
|
|
416
418
|
return [];
|
|
417
419
|
}
|
|
418
|
-
`}i(
|
|
420
|
+
`}i(Ww,"TEMPLATE_GENERATOR");function Bw(t){let e=xs(t.id),r=bs(t.id);return `import type { ImportResult } from '../../core/types.js';
|
|
419
421
|
import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
|
|
420
422
|
import { ${r}_TARGET } from './constants.js';
|
|
421
423
|
|
|
@@ -427,7 +429,7 @@ export async function importFrom${e}(
|
|
|
427
429
|
void ${r}_TARGET;
|
|
428
430
|
return [];
|
|
429
431
|
}
|
|
430
|
-
`}i(
|
|
432
|
+
`}i(Bw,"TEMPLATE_IMPORTER");function Kw(t){let e=bs(t.id);return `/** Lint rules for the ${t.id} target. */
|
|
431
433
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
432
434
|
import { validateRules } from '../../core/lint/validate-rules.js';
|
|
433
435
|
import { ${e}_TARGET } from './constants.js';
|
|
@@ -445,7 +447,7 @@ export function lintRules(
|
|
|
445
447
|
target: ${e}_TARGET,
|
|
446
448
|
}));
|
|
447
449
|
}
|
|
448
|
-
`}i(
|
|
450
|
+
`}i(Kw,"TEMPLATE_LINTER");function Hw(t){return `/**
|
|
449
451
|
* ${t.displayName}-specific lint hooks.
|
|
450
452
|
*/
|
|
451
453
|
|
|
@@ -455,7 +457,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
|
|
|
455
457
|
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${t.displayName}
|
|
456
458
|
return [];
|
|
457
459
|
}
|
|
458
|
-
`}i(
|
|
460
|
+
`}i(Hw,"TEMPLATE_LINT_HOOKS");function zw(t){let e=xs(t.id),r=bs(t.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
|
|
459
461
|
import { ${r}_DIR } from '../../../targets/${t.id}/constants.js';
|
|
460
462
|
|
|
461
463
|
export async function build${e}ImportPaths(
|
|
@@ -467,7 +469,7 @@ export async function build${e}ImportPaths(
|
|
|
467
469
|
// Reference: src/core/reference/import-maps/kiro.ts for a full example
|
|
468
470
|
void ${r}_DIR;
|
|
469
471
|
}
|
|
470
|
-
`}i(
|
|
472
|
+
`}i(zw,"TEMPLATE_IMPORT_MAP");function Vw(t){return `import { describe, it, expect } from 'vitest';
|
|
471
473
|
import type { CanonicalFiles } from '../../../../src/core/types.js';
|
|
472
474
|
import { generateRules } from '../../../../src/targets/${t.id}/generator.js';
|
|
473
475
|
|
|
@@ -496,7 +498,7 @@ describe('generateRules (${t.id})', () => {
|
|
|
496
498
|
expect(result).toHaveLength(0);
|
|
497
499
|
});
|
|
498
500
|
});
|
|
499
|
-
`}i(
|
|
501
|
+
`}i(Vw,"TEMPLATE_GENERATOR_TEST");function Jw(t){let e=xs(t.id);return `import { describe, it, expect } from 'vitest';
|
|
500
502
|
import { importFrom${e} } from '../../../../src/targets/${t.id}/importer.js';
|
|
501
503
|
|
|
502
504
|
describe('importFrom${e} (${t.id})', () => {
|
|
@@ -510,7 +512,7 @@ describe('importFrom${e} (${t.id})', () => {
|
|
|
510
512
|
expect(result).toHaveLength(0);
|
|
511
513
|
});
|
|
512
514
|
});
|
|
513
|
-
`}i(
|
|
515
|
+
`}i(Jw,"TEMPLATE_IMPORTER_TEST");function Yw(t){return `# ${t.displayName} Workspace
|
|
514
516
|
|
|
515
517
|
Follow the ${t.displayName} configuration files and keep changes small.
|
|
516
|
-
`}i(
|
|
518
|
+
`}i(Yw,"TEMPLATE_FIXTURE_ROOT_MD");var xF=/^[a-z][a-z0-9-]*$/;async function Xw(t){let{id:e,projectRoot:r,force:n=false}=t,o=t.displayName??e,s={id:e,displayName:o};if(!xF.test(e))throw new Error(`Invalid target id "${e}". Must match /^[a-z][a-z0-9-]*$/ (lowercase letters, digits, hyphens; start with a letter).`);if(ht.includes(e))throw new Error(`Target "${e}" already exists as a built-in target. Choose a different id.`);let a=[{rel:`src/targets/${e}/constants.ts`,content:jw(s)},{rel:`src/targets/${e}/index.ts`,content:Uw(s)},{rel:`src/targets/${e}/generator.ts`,content:Ww(s)},{rel:`src/targets/${e}/importer.ts`,content:Bw(s)},{rel:`src/targets/${e}/linter.ts`,content:Kw(s)},{rel:`src/targets/${e}/lint.ts`,content:Hw(s)},{rel:`src/core/reference/import-maps/${e}.ts`,content:zw(s)},{rel:`tests/unit/targets/${e}/generator.test.ts`,content:Vw(s)},{rel:`tests/unit/targets/${e}/importer.test.ts`,content:Jw(s)},{rel:`tests/e2e/fixtures/${e}-project/AGENTS.md`,content:Yw(s)}],l=[],c=[];for(let u of a){let p=join(r,u.rel);if(!n&&await N(p)){c.push(p);continue}await S(p,u.content),l.push(p);}let m=[`1. Add '${e}' to TARGET_IDS in src/targets/catalog/target-ids.ts`,"2. Add descriptor import + entry to src/targets/catalog/builtin-targets.ts","3. Add export to src/core/reference/import-maps/index.ts",`4. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${e}`,"5. Run: pnpm schemas:generate && pnpm matrix:generate",`6. Fill in TODO(agentsmesh-scaffold) markers in src/targets/${e}/`];return {written:l,skipped:c,postSteps:m}}i(Xw,"writeTargetScaffold");async function qw(t,e,r){let n=e[0];return n===void 0||n===""?(Zw(),0):n==="scaffold"?bF(t,e.slice(1),r):(_.error(`Unknown target subcommand: ${n}`),Zw(),2)}i(qw,"runTarget");async function bF(t,e,r){let n=e[0];if(!n)return _.error("Usage: agentsmesh target scaffold <id> [--name <displayName>] [--force]"),2;let o=typeof t.name=="string"?t.name:void 0,s=t.force===true,a;try{a=await Xw({id:n,displayName:o,projectRoot:r,force:s});}catch(l){return _.error(l instanceof Error?l.message:String(l)),1}if(a.written.length>0)for(let l of a.written){let c=l.startsWith(r)?l.slice(r.length+1):l;_.success(`created ${c}`);}if(a.skipped.length>0)for(let l of a.skipped){let c=l.startsWith(r)?l.slice(r.length+1):l;_.warn(`skipped ${c} (already exists \u2014 use --force to overwrite)`);}if(a.written.length>0){_.info(""),_.info("Next steps:");for(let l of a.postSteps)_.info(` ${l}`);}return 0}i(bF,"runScaffold");function Zw(){_.info("Usage: agentsmesh target <subcommand> [args] [flags]"),_.info(""),_.info("Subcommands:"),_.info(" scaffold <id> Generate a new target skeleton (files, tests, fixture)"),_.info(""),_.info("Flags (scaffold):"),_.info(" --name <displayName> Human-readable name (defaults to id)"),_.info(" --force Overwrite existing files");}i(Zw,"printTargetHelp");function LF(t){let e={},r=[],n="help";for(let o=0;o<t.length;o++){let s=t[o];if(n==="help"&&s==="--version")return {command:"version",flags:{},args:[]};if(n==="help"&&s==="--help")return {command:"help",flags:{},args:[]};if(s.startsWith("--")){let a=s.slice(2),l=t[o+1];l===void 0||l.startsWith("--")?e[a]=true:(e[a]=l,o++);continue}n==="help"?n=s:r.push(s);}return {command:n,flags:e,args:r}}i(LF,"parseArgs");var NF=["init","generate","import","diff","lint","watch","check","merge","matrix","install","plugin","target"];function DF(t){return async(e,r)=>{_.info(`Not implemented yet: ${t}`);}}i(DF,"stub");var FF={...Object.fromEntries(NF.map(t=>[t,DF(t)])),generate:i(async(t,e)=>{let r=await ks(t);r!==0&&process.exit(r);},"generate"),init:i(async(t,e)=>{await pk(process.cwd(),{yes:t.yes===true,global:t.global===true});},"init"),import:i((t,e)=>fk(t),"import"),diff:i((t,e)=>Ik(t),"diff"),lint:i(async(t,e)=>{let r=await Ck(t);r!==0&&process.exit(r);},"lint"),check:i(async(t,e)=>{let r=await Ok(t);r!==0&&process.exit(r);},"check"),merge:i((t,e)=>xk(t),"merge"),matrix:i((t,e)=>go(t),"matrix"),watch:i(async(t,e)=>{let r=await kk(t),n=i(()=>{r.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",n),process.on("SIGTERM",n);},"watch"),install:i((t,e)=>Dw(t,e,process.cwd()),"install"),plugin:i(async(t,e)=>{let r=await Gw(t,e,process.cwd());r!==0&&process.exit(r);},"plugin"),target:i(async(t,e)=>{let r=await qw(t,e,process.cwd());r!==0&&process.exit(r);},"target")},vF=hd(FF);async function $F(t){let{command:e,flags:r,args:n}=t;if(e==="help"){_d();return}if(e==="version"){kd();return}await vF.route(e,r,n);}i($F,"main");function MF(){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")}}i(MF,"isMainModule");if(MF()){let t=LF(process.argv.slice(2));$F(t).catch(e=>wd(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true}));}export{LF as parseArgs};
|