agentsmesh 0.6.0 → 0.8.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 +45 -4
- package/README.md +91 -57
- package/dist/canonical.d.ts +22 -5
- package/dist/canonical.js +13018 -56
- package/dist/canonical.js.map +1 -1
- package/dist/cli.js +159 -156
- package/dist/engine.d.ts +26 -17
- package/dist/engine.js +12477 -9317
- package/dist/engine.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.js +12542 -9668
- package/dist/index.js.map +1 -1
- package/dist/{canonical-types-CZwrJoBX.d.ts → schema-BeGiBqbB.d.ts} +110 -1
- package/dist/{target-descriptor-DjHhww11.d.ts → target-descriptor-Cb9PXaxr.d.ts} +113 -130
- package/dist/targets.d.ts +3 -3
- package/dist/targets.js +10178 -8205
- package/dist/targets.js.map +1 -1
- package/package.json +6 -7
- package/schemas/agentsmesh.json +24 -24
- package/schemas/pack.json +8 -8
package/dist/cli.js
CHANGED
|
@@ -1,166 +1,167 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
`);},
|
|
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 as cp$1,copyFile}from'fs/promises';import {dirname,join,resolve,relative,basename,sep,extname,win32,posix,isAbsolute,normalize}from'path';import {realpathSync,constants,statSync,existsSync,rmSync}from'fs';import {parse,stringify}from'yaml';import {parse as parse$1}from'smol-toml';import {Buffer}from'buffer';import {z as z$1}from'zod';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 Vd from'tar';import {createHash}from'crypto';import {createTwoFilesPatch}from'diff';import dD from'chokidar';import*as Tw from'readline';var kd=Object.defineProperty;var i=(t,e)=>kd(t,"name",{value:e,configurable:true});var f=(t,e)=>()=>(t&&(e=t(t=0)),e);var _O=(t,e)=>{for(var r in e)kd(t,r,{get:e[r],enumerable:true});};var co,$r,Ji,Yi,ir,Cs=f(()=>{co=class extends Error{static{i(this,"AgentsMeshError");}code;constructor(e,r,n){super(r,n),this.name="AgentsMeshError",this.code=e;}},$r=class extends co{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;}},Ji=class extends co{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;}},Yi=class extends co{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;}},ir=class extends co{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;}};});function zO(t){let e=extname(t).toLowerCase();if(e.length>0)return KO.has(e);let r=basename(t).toLowerCase();return HO.has(r)}function VO(t){return t.replace(/\r\n?/g,`
|
|
3
|
+
`)}async function S(t){try{let e=await readFile(t,"utf-8");return e.startsWith(Dd)?e.slice(Dd.length):e}catch(e){let r=e;if(r.code==="ENOENT")return null;throw new ir(t,`Failed to read ${t}: ${r.message}. Ensure the file exists and is readable.`,{cause:e,errnoCode:r.code})}}async function R(t,e){let r=dirname(t);await mkdir(r,{recursive:true});try{if((await lstat(t)).isDirectory())throw new ir(t,`Failed to write ${t}: target exists and is a directory. Remove it or choose a different path.`,{errnoCode:"EISDIR"})}catch(s){if(s instanceof ir||s.code!=="ENOENT")throw s}let n=`${t}.tmp`,o=zO(t)?VO(e):e;try{await writeFile(n,o,"utf-8"),await rename(n,t);}catch(s){await rm$1(n,{force:true}).catch(()=>{});let a=s;throw new ir(t,`Failed to write ${t}: ${a.message}. Check permissions and disk space.`,{cause:s,errnoCode:a.code})}}async function L(t){try{return await access(t,constants.F_OK),!0}catch{return false}}async function k(t){await mkdir(t,{recursive:true});}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 ir(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 ir(t,`Failed to read directory ${t}: ${s.message}. Check permissions.`,{cause:o,errnoCode:s.code})}}async function nc(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 Dd,KO,HO,b=f(()=>{Cs();Dd="\uFEFF",KO=new Set([".md",".mdc",".mdx",".markdown",".txt",".json",".jsonc",".yaml",".yml",".toml",".ini",".sh",".bash",".zsh",".ps1",".js",".mjs",".cjs",".ts",".tsx",".html",".css"]),HO=new Set([".gitignore",".cursorignore",".cursorindexingignore",".aiignore",".agentignore",".clineignore",".geminiignore",".codeiumignore",".continueignore",".copilotignore",".windsurfignore",".junieignore",".kiroignore",".rooignore",".antigravityignore"]);i(zO,"shouldNormalizeLineEndings");i(VO,"normalizeLineEndings");i(S,"readFileSafe");i(R,"writeFileAtomic");i(L,"exists");i(k,"mkdirp");i(P,"readDirRecursive");i(nc,"ensureCacheSymlink");});function Mr(t){return oc.includes(t)}var oc,Md=f(()=>{oc=["antigravity","claude-code","cline","codex-cli","continue","copilot","cursor","gemini-cli","junie","kiro","roo-code","windsurf"];i(Mr,"isBuiltinTargetId");});var ht,ks,ar=f(()=>{Md();ht=oc,ks="codex-cli";});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 N(t,e){return Object.keys(t).length===0?e:`---
|
|
26
4
|
${stringify(t,{lineWidth:0}).trimEnd()}
|
|
27
5
|
---
|
|
28
6
|
|
|
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.
|
|
7
|
+
${e}`}var F=f(()=>{i(w,"parseFrontmatter");i(N,"serializeFrontmatter");});function hf(t){return typeof t=="string"?t.trim():""}function ut(t){return hf(t.command)}function Ot(t){return hf(t.prompt)}function Ic(t){let e=ut(t),r=Ot(t);return t.type==="prompt"?r||e:e||r}function lr(t){return ut(t).length>0}function Te(t){return Ic(t).length>0}var le=f(()=>{i(hf,"trimString");i(ut,"getHookCommand");i(Ot,"getHookPrompt");i(Ic,"getHookText");i(lr,"hasHookCommand");i(Te,"hasHookText");});function YE(t){return Object.prototype.hasOwnProperty.call(Rf,t)}function XE(t){return Object.prototype.hasOwnProperty.call(_f,t)}function Cf(t,e){if(t!==void 0)return typeof t=="boolean"?t:t[e]}function xs(t,e,r,n="project"){let o=t.conversions?.commands_to_skills?.[e],s=Cf(o,n);return s!==void 0?s:YE(e)?Rf[e]:r??false}function ce(t,e,r,n="project"){let o=t.conversions?.agents_to_skills?.[e],s=Cf(o,n);return s!==void 0?s:XE(e)?_f[e]:r??false}var Rf,_f,yo=f(()=>{Rf={"codex-cli":true},_f={"gemini-cli":false,cline:true,"codex-cli":false,windsurf:true};i(YE,"usesCommandSkillProjection");i(XE,"usesAgentSkillProjection");i(Cf,"resolveConversionValue");i(xs,"shouldConvertCommandsToSkills");i(ce,"shouldConvertAgentsToSkills");});function ue(t,e){return e!==void 0?{level:t,flavor:e}:{level:t}}function me(t){return typeof t=="string"?{level:t}:t}function kf(t){return {rules:me(t.rules),additionalRules:me(t.additionalRules),commands:me(t.commands),agents:me(t.agents),skills:me(t.skills),mcp:me(t.mcp),hooks:me(t.hooks),ignore:me(t.ignore),permissions:me(t.permissions)}}var Cn=f(()=>{i(ue,"cap");i(me,"normalizeCapabilityValue");i(kf,"normalizeTargetCapabilities");});function wf(t){for(let e of Ct)if(e.sharedArtifacts){for(let[r,n]of Object.entries(e.sharedArtifacts))if(n==="owner"&&t.startsWith(r))return e.id}return null}function ZE(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 Of(t){let e=ZE(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
8
|
`+r.join(`
|
|
31
9
|
`)+`
|
|
32
|
-
Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}
|
|
10
|
+
Resolve by changing one target's role to 'consumer' or by namespacing its prefix.`)}var Rc=f(()=>{rt();i(wf,"ownerTargetIdForSharedPath");i(ZE,"findSharedArtifactOwnershipConflicts");i(Of,"assertSharedArtifactOwnersUnique");});function Ps(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function _c(t,e){return new RegExp(`${Ps(t)}[\\s\\S]*?${Ps(e)}`,"g")}function Af(t,e,r,n){let o=_c(e,r);if(o.test(t))return t.replace(o,n).trim();let s=t.trim();return s?`${s}
|
|
33
11
|
|
|
34
|
-
${n}
|
|
12
|
+
${n}`:n}function Cc(t,e,r){return t.replace(_c(e,r),"").trim()}function tb(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 eb(t){return {source:tb(t.source),description:t.description,globs:t.globs,targets:t.targets}}function rb(t){return `${xf}${JSON.stringify(eb(t))}${Pf}`}function nb(t){let e=[rb(t)];return t.description.trim()&&e.push(`## ${t.description.trim()}`,""),e.push(t.body.trim(),bf),e.filter(r=>r.length>0).join(`
|
|
13
|
+
`)}function ob(t){return t.length===0?"":[oa,...t.map(nb),sa].join(`
|
|
14
|
+
`)}function pe(t,e){let r=ob(e),n=Cc(t,oa,sa);return r?n?`${n}
|
|
35
15
|
|
|
36
|
-
${
|
|
37
|
-
`);return [{path:ki,content:e}]}i(yd,"generateIgnore");function yt(t,e,r){return t.startsWith(`${e}/`)&&!r.includes("codex-cli")?`.agents/skills/${t.slice(e.length+1)}`:null}i(yt,"mirrorSkillsToAgents");function vR(t){let e=t.description.trim();return e||(t.source.split("/").pop()??"rule").replace(/\.md$/i,"")||"Rule"}i(vR,"ruleSectionTitle");function Id(t){let e=t.rules.find(o=>o.root),r=(e?.body??"").trim();return r?`# Global Instructions
|
|
16
|
+
${r}`:r:n}function Ef(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function sb(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:Ef(r.globs),targets:Ef(r.targets)}}catch{return null}}function ib(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 Tf(t){let e=[],r=_c(oa,sa);return {rootContent:t.replace(r,o=>{let s=o.replace(oa,"").replace(sa,"").trim(),a=new RegExp(`${Ps(xf)}([\\s\\S]*?)${Ps(Pf)}([\\s\\S]*?)${Ps(bf)}`,"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=sb(c);u&&e.push({...u,body:ib(m,u.description)});}return ""}).trim(),rules:e}}var As,Ts,oa,sa,bf,xf,Pf,Gr=f(()=>{As="<!-- agentsmesh:root-generation-contract:start -->",Ts="<!-- agentsmesh:root-generation-contract:end -->",oa="<!-- agentsmesh:embedded-rules:start -->",sa="<!-- agentsmesh:embedded-rules:end -->",bf="<!-- agentsmesh:embedded-rule:end -->",xf="<!-- agentsmesh:embedded-rule:start ",Pf=" -->";i(Ps,"escapeRegExp");i(_c,"managedBlockPattern");i(Af,"replaceManagedBlock");i(Cc,"stripManagedBlock");i(tb,"ruleSource");i(eb,"markerForRule");i(rb,"embeddedRuleStart");i(nb,"renderRule");i(ob,"renderEmbeddedRulesBlock");i(pe,"appendEmbeddedRulesBlock");i(Ef,"toStringArray");i(sb,"parseMarker");i(ib,"stripGeneratedHeading");i(Tf,"extractEmbeddedRules");});function kc(t){return t.replace(/\s+/g," ").trim()}function Nf(t){let e=t.trim();if(e.includes(As)&&e.includes(Ts))return Af(e,As,Ts,Io);let r=kc(e);if(r.includes(kc(Io)))return e;for(let n of Lf)if(r.includes(kc(n)))return e.replace(n,Io);return e?`${e}
|
|
38
17
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
${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}
|
|
18
|
+
${Io}`:Io}function Df(t){let e=Cc(t,As,Ts);e=e.replace(`
|
|
43
19
|
|
|
44
|
-
${
|
|
45
|
-
`)}i(ck,"renderRule");function mk(t){return t.length===0?"":[Bi,...t.map(ck),Ki].join(`
|
|
46
|
-
`)}i(mk,"renderEmbeddedRulesBlock");function ie(t,e){let r=mk(e),n=fc(t,Bi,Ki);return r?n?`${n}
|
|
20
|
+
${Io}`,"");for(let r of Lf)e=e.replace(`
|
|
47
21
|
|
|
48
|
-
${r}
|
|
22
|
+
${r}`,"");return e.trim()}var wc,ab,lb,cb,mb,ub,pb,db,fb,gb,hb,yb,Ib,Sb,Rb,_b,Cb,Io,Lf,Oc=f(()=>{Gr();wc="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.",ab="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.",lb="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.",cb="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.",mb="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`.",ub="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`.",pb="`.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`.",db="`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.",fb=wc,gb=`## Project-Specific Rules
|
|
49
23
|
|
|
50
|
-
|
|
51
|
-
`);return [{path:te,content:e}]}i(Rc,"generateIgnore");function hk(t,e){return e.some(r=>t.endsWith(r))}i(hk,"matchesExtension");async function M(t){let r=(await P(t.srcDir)).filter(o=>hk(o,t.extensions)),n=[];for(let o of r){let s=await h(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 R(dirname(l.destPath)),await _(l.destPath,l.content),n.push({fromTool:t.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}i(M,"importFileDirectory");var wc="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.",yk="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.",Ik="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.",_k="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.",Sk="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`.",Ck="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`.",Rk="`.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`.",kk="`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.",wk=wc,Ok=`## Project-Specific Rules
|
|
24
|
+
${wc}`,hb=`## AgentsMesh Generation Contract
|
|
52
25
|
|
|
53
|
-
${wc}`,
|
|
26
|
+
${wc}`,yb=`## AgentsMesh Generation Contract
|
|
54
27
|
|
|
55
|
-
${
|
|
28
|
+
${ab}`,Ib=`## AgentsMesh Generation Contract
|
|
56
29
|
|
|
57
|
-
${
|
|
30
|
+
${lb}`,Sb=`## AgentsMesh Generation Contract
|
|
58
31
|
|
|
59
|
-
${
|
|
32
|
+
${cb}`,Rb=`## AgentsMesh Generation Contract
|
|
60
33
|
|
|
61
|
-
${
|
|
34
|
+
${mb}`,_b=`## AgentsMesh Generation Contract
|
|
62
35
|
|
|
63
|
-
${
|
|
36
|
+
${ub}`,Cb=`## AgentsMesh Generation Contract
|
|
64
37
|
|
|
65
|
-
${
|
|
66
|
-
|
|
67
|
-
${Rk}`,po=`${Os}
|
|
38
|
+
${pb}`,Io=`${As}
|
|
68
39
|
## AgentsMesh Generation Contract
|
|
69
40
|
|
|
70
|
-
${
|
|
71
|
-
${
|
|
41
|
+
${db}
|
|
42
|
+
${Ts}`;i(kc,"normalizeWhitespace");Lf=[Cb,_b,Rb,Sb,Ib,yb,hb,gb,fb];i(Nf,"appendAgentsmeshRootInstructionParagraph");i(Df,"stripAgentsmeshRootInstructionParagraph");});function Et(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 So(t){let e=await S(t);return e?w(e).frontmatter:{}}function yt(t,e){return typeof t[e]=="string"?t[e]:void 0}function Ec(t){let e=t.hooks;return e&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function kb(t){return Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0))}function wb(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 So(t),o=basename(t,".md")==="_root"?Df(r):r.trim(),s=wb(t,kb({...n,...e})),a={root:s.root===true,description:typeof s.description=="string"?s.description:""};a.root===false&&(a.globs=Et(s.globs));for(let[l,c]of Object.entries(s))l==="root"||l==="description"||l==="globs"||c===void 0||(a[l]=c);return N(a,o||"")}var bc=f(()=>{b();F();Oc();i(Et,"toStringArray");i(So,"readExistingFrontmatter");i(yt,"readString");i(Ec,"readHooks");i(kb,"pruneUndefined");i(wb,"serializeCanonicalRuleFrontmatter");i($,"serializeImportedRuleWithFallback");});async function Q(t,e,r){let n=await So(t),o=(()=>{let l=Et(n.allowedTools);return l.length>0?l:Et(n["allowed-tools"])})(),s=e.hasDescription?e.description??"":typeof n.description=="string"?n.description:"",a=e.hasAllowedTools?e.allowedTools??[]:o;return N({description:s,"allowed-tools":a},r.trim()||"")}async function Le(t,e,r){let n=await So(t),o=basename(dirname(t)),s=yt(e,"name")??yt(n,"name")??o,a=yt(e,"description")??yt(n,"description")??"";return N({name:s,description:a},r.trim()||"")}async function $t(t,e,r){let n=await So(t),o=Object.prototype.hasOwnProperty.call(e,"tools")?Et(e.tools):(()=>{let C=Et(n.tools);return C.length>0?C:[]})(),s=Object.prototype.hasOwnProperty.call(e,"disallowedTools")?Et(e.disallowedTools):Object.prototype.hasOwnProperty.call(e,"disallowed-tools")?Et(e["disallowed-tools"]):Et(n.disallowedTools),a=Object.prototype.hasOwnProperty.call(e,"mcpServers")?Et(e.mcpServers):Object.prototype.hasOwnProperty.call(e,"mcp-servers")?Et(e["mcp-servers"]):Et(n.mcpServers),l=Object.prototype.hasOwnProperty.call(e,"skills")?Et(e.skills):Et(n.skills),c=e.maxTurns??e["max-turns"]??n.maxTurns,m=typeof c=="number"?c:Number(c??0),u=Ec(e)??Ec(n),p={name:yt(e,"name")??yt(n,"name")??basename(t,".md"),description:yt(e,"description")??yt(n,"description")??"",tools:o};s.length>0&&(p.disallowedTools=s);let d=yt(e,"model")??yt(n,"model");d&&(p.model=d);let g=yt(e,"permissionMode")??yt(e,"permission-mode")??yt(n,"permissionMode")??yt(n,"permission-mode");g&&(p.permissionMode=g),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=yt(e,"memory")??yt(n,"memory");return h&&(p.memory=h),N(p,r.trim()||"")}var $f=f(()=>{F();bc();i(Q,"serializeImportedCommandWithFallback");i(Le,"serializeImportedSkillWithFallback");i($t,"serializeImportedAgentWithFallback");});var Y=f(()=>{bc();$f();});function Ne(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:N(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 De(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 S(c);if(m===null)continue;let u=join(t,xc,a.name),p=join(u,"SKILL.md"),{frontmatter:d,body:g}=w(o(m,c,p)),h=await Le(p,{...d,name:a.name},g);await k(u),await R(p,h),n.push({fromTool:r,fromPath:c,toPath:`${xc}/${a.name}/SKILL.md`,feature:"skills"});let C=await P(l);for(let _ of C){if(_===c)continue;let y=relative(l,_).replace(/\\/g,"/"),O=await S(_);if(O===null)continue;let D=join(u,y);await k(dirname(D)),await R(D,o(O,_,D)),n.push({fromTool:r,fromPath:_,toPath:`${xc}/${a.name}/${y}`,feature:"skills"});}}}var xc,de=f(()=>{b();F();Y();xc=".agentsmesh/skills";i(Ne,"generateEmbeddedSkills");i(De,"importEmbeddedSkills");});var kn,ia,Fe,fe,Ls,wn,mr,Ns,ve,ur,Ds,_o,Pc,On,aa,Mf,En=f(()=>{kn="antigravity",ia=".agents",Fe=`${ia}/rules`,fe=`${Fe}/general.md`,Ls=`${Fe}/_root.md`,wn=`${ia}/skills`,mr=`${ia}/workflows`,Ns=`${ia}/antigravity/mcp_config.json`,ve=".gemini/antigravity/GEMINI.md",ur=".gemini/antigravity/skills",Ds=".gemini/antigravity/workflows",_o=".gemini/antigravity/mcp_config.json",Pc=".agentsmesh/rules/_root.md",On=".agentsmesh/rules",aa=".agentsmesh/commands",Mf=".agentsmesh/mcp.json";});function Gf(t){let e=t.rules.find(n=>n.root);if(!e)return [];let r=[{path:fe,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:`${Fe}/${o}.md`,content:n.body.trim()||""});}return r}function jf(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n&&!n.startsWith(r)?`${r}
|
|
72
43
|
|
|
73
|
-
${po}`:po}i(Zd,"appendAgentsmeshRootInstructionParagraph");function qd(t){let e=fc(t,Os,Es);e=e.replace(`
|
|
44
|
+
${n}`:n||r;return {path:`${mr}/${e.name}.md`,content:o}})}function Uf(t){return Ne(t,wn)}function Wf(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:Ns,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function Bf(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 pe(e?.body.trim()??"",r)}var Kf=f(()=>{de();Gr();En();i(Gf,"generateRules");i(jf,"generateCommands");i(Uf,"generateSkills");i(Wf,"generateMcp");i(Bf,"renderAntigravityGlobalInstructions");});function pr(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}function Yt(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 Co(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}function ko(t){return !t||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}var ge=f(()=>{i(pr,"toGlobsArray");i(Yt,"toToolsArray");i(Co,"toStringArray");i(ko,"toStringRecord");});function Lb(t,e){return e.some(r=>t.endsWith(r))}async function st(t){let r=(await P(t.srcDir)).filter(o=>Lb(o,t.extensions)),n=[];for(let o of r){let s=await S(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 R(l.destPath,l.content),n.push({fromTool:t.fromTool,fromPath:o,toPath:l.toPath,feature:l.feature}));}return n}var $e=f(()=>{b();i(Lb,"matchesExtension");i(st,"importFileDirectory");});function Hf(t){return typeof t=="string"?t:void 0}function Nb(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}function Tc(t,e){return e?e(t):t}function Db(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=w(e.normalizeTo(r)),s=Tc(n,t.frontmatterRemap),a=Nb({root:false,description:Hf(s.description),globs:Array.isArray(s.globs)?s.globs:void 0,...s});return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await $(r,a,o)}}}function Fb(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=w(e.normalizeTo(r)),s=Tc(n,t.frontmatterRemap),a=await Q(r,{hasDescription:true,description:Hf(s.description),hasAllowedTools:true,allowedTools:Co(s["allowed-tools"])},o);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:a}}}function vb(t){return async e=>{let r=join(e.destDir,e.relativePath),{frontmatter:n,body:o}=w(e.normalizeTo(r)),s=Tc(n,t.frontmatterRemap);return {destPath:r,toPath:`${t.canonicalDir}/${e.relativePath}`,content:await $t(r,s,o)}}}function zf(t){if(t.map)return t.map;switch(t.preset){case "rule":return Db(t);case "command":return Fb(t);case "agent":return vb(t);default:throw new Error(`ImportFeatureSpec for ${t.feature} (mode: ${t.mode}) needs a \`preset\` or \`map\``)}}var Vf=f(()=>{F();Y();ge();i(Hf,"pickString");i(Nb,"pruneUndefined");i(Tc,"applyRemap");i(Db,"ruleMapper");i(Fb,"commandMapper");i(vb,"agentMapper");i(zf,"resolveMapper");});function Lc(t,e){return t?t[e]??[]:[]}var Jf,Yf=f(()=>{Jf=["rules","commands","agents","skills","mcp","hooks","permissions","ignore"];i(Lc,"resolveScopedSources");});async function $b(t,e,r,n,o){if(!t.canonicalRootFilename)throw new Error(`singleFile spec for ${t.feature} must set canonicalRootFilename`);let s=join(r,t.canonicalDir);for(let a of e){let l=join(r,a),c=await S(l);if(c===null)continue;await k(s);let m=join(s,t.canonicalRootFilename),u=i(_=>o(c,l,_),"normalizeTo");if(t.map){let _=await t.map({absolutePath:l,relativePath:a,content:c,destDir:s,normalizeTo:u});if(!_)continue;return await R(_.destPath,_.content),[{fromTool:n,fromPath:l,toPath:_.toPath,feature:t.feature}]}let{frontmatter:p,body:d}=w(u(m)),g=t.frontmatterRemap?t.frontmatterRemap(p):p,h=t.markAsRoot?{...g,root:true}:g,C=await $(m,h,d);return await R(m,C),[{fromTool:n,fromPath:l,toPath:`${t.canonicalDir}/${t.canonicalRootFilename}`,feature:t.feature}]}return []}async function Mb(t,e,r,n,o){let s=zf(t),a=join(r,t.canonicalDir),l=[];for(let c of e){let m=join(r,c),u=await st({srcDir:m,destDir:a,extensions:[...t.extensions??[".md"]],fromTool:n,normalize:o,mapEntry:i(async({srcPath:p,relativePath:d,content:g,normalizeTo:h})=>{let C=await s({absolutePath:p,relativePath:d,content:g,destDir:a,normalizeTo:i(_=>h(_),"normalizeTo")});return C?{destPath:C.destPath,toPath:C.toPath,feature:t.feature,content:C.content}:null},"mapEntry")});l.push(...u);}return l}async function Gb(t,e,r,n){if(!t.canonicalFilename)throw new Error(`flatFile spec for ${t.feature} must set canonicalFilename`);for(let o of e){let s=join(r,o),a=await S(s);if(a===null)continue;let l=join(r,t.canonicalFilename);return await k(dirname(l)),await R(l,a.trimEnd()),[{fromTool:n,fromPath:s,toPath:t.canonicalFilename,feature:t.feature}]}return []}function jb(t){let e;try{e=JSON.parse(t);}catch{return {}}if(!e||typeof e!="object")return {};let r=e.mcpServers;if(!r||typeof r!="object"||Array.isArray(r))return {};let n={};for(let[o,s]of Object.entries(r)){if(!s||typeof s!="object"||Array.isArray(s))continue;let a=s,l=typeof a.description=="string"?a.description:void 0;if(typeof a.command=="string"){n[o]={type:typeof a.type=="string"?a.type:"stdio",command:a.command,args:Co(a.args),env:ko(a.env),description:l};continue}typeof a.url=="string"&&(n[o]={type:typeof a.type=="string"?a.type:"http",url:a.url,headers:ko(a.headers),env:ko(a.env),description:l});}return n}async function Ub(t,e,r,n){if(!t.canonicalFilename)throw new Error(`mcpJson spec for ${t.feature} must set canonicalFilename`);for(let o of e){let s=join(r,o),a=await S(s);if(a===null)continue;let l=jb(a);if(Object.keys(l).length===0)return [];let c=join(r,t.canonicalFilename);return await k(dirname(c)),await R(c,JSON.stringify({mcpServers:l},null,2)),[{fromTool:n,fromPath:s,toPath:t.canonicalFilename,feature:t.feature}]}return []}async function Wb(t,e,r,n,o){let s=Lc(t.source,e),a=Lc(t.fallbacks,e),l=s.length>0?s:a;if(l.length===0)return [];switch(t.mode){case "singleFile":return $b(t,l,r,n,o);case "directory":return Mb(t,l,r,n,o);case "flatFile":return Gb(t,l,r,n);case "mcpJson":return Ub(t,l,r,n)}}function Bb(t,e){let r=t[e];return r?Array.isArray(r)?r:[r]:[]}async function gt(t,e,r,n){let o=t.importer;if(!o)return [];let s=n?.normalize??await H(t.id,e,r),a=[];for(let l of Jf)for(let c of Bb(o,l))a.push(...await Wb(c,r,e,t.id,s));return a}var Me=f(()=>{bt();b();F();ge();Y();$e();Vf();Yf();i($b,"runSingleFile");i(Mb,"runDirectory");i(Gb,"runFlatFile");i(jb,"parseMcpJson");i(Ub,"runMcpJson");i(Wb,"runSpec");i(Bb,"specsForFeature");i(gt,"runDescriptorImport");});function Kb(t){let e=t.replace(/\\/g,"/");return !e.startsWith("rules/")||e.endsWith("/")||!e.endsWith(".md")?null:e}async function Ge(t){let e=Tf(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=Kb(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 R(s,m),r.push({fromTool:t.fromTool,fromPath:t.sourcePath,toPath:`.agentsmesh/${o}`,feature:"rules"});}return {rootContent:e.rootContent,results:r}}var wo=f(()=>{b();F();Gr();Y();i(Kb,"canonicalRulePath");i(Ge,"splitEmbeddedRulesToCanonical");});async function Hb(t,e,r,n){let o=n==="global"?ve:fe,s=n==="project"?[o,Ls]:[o];for(let a of s){let l=join(t,a),c=await S(l);if(c===null)continue;let m=join(t,Pc),u=await Ge({content:c,projectRoot:t,rulesDir:On,sourcePath:l,fromTool:kn,normalize:r});e.push(...u.results);let{body:p}=w(r(u.rootContent,l,m)),d=await $(m,{root:true},p);await k(join(t,On)),await R(m,d),e.push({fromTool:kn,fromPath:l,toPath:Pc,feature:"rules"});return}}async function qf(t,e={}){let r=e.scope??"project",n=[],o=await H(kn,t,r);return await Hb(t,n,o,r),n.push(...await gt(la,t,r,{normalize:o})),await De(t,r==="global"?ur:wn,kn,n,o),n}var Qf=f(()=>{bt();b();F();de();Me();Y();wo();En();Dc();i(Hb,"importRootRule");i(qf,"importFromAntigravity");});var rg,ng,og=f(()=>{F();Y();En();rg=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(basename(t)==="general.md"||basename(t)==="_root.md")return null;let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${On}/${t}`,content:await $(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},s)}},"nonRootRuleMapper"),ng=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${aa}/${t}`,content:await Q(n,{hasDescription:typeof o.description=="string",description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},s)}},"workflowMapper");});function zb(t,e){return ig(e).some(n=>Vb(t,n))}function sg(t,e){return t.filter(r=>zb(r,e))}function ig(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 ig(r+l+o))a.push(c);return a}function Vb(t,e){return Jb(e).test(t)}function Jb(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 ag=f(()=>{i(zb,"globMatch");i(sg,"globFilter");i(ig,"expandBraces");i(Vb,"matchOne");i(Jb,"globToRegex");});function lt(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(sg(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=f(()=>{ag();i(lt,"validateRules");});function cg(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:kn}))}var mg=f(()=>{he();En();i(cg,"lintRules");});function Yb(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 Eo(t){return `${Oo}${t}`}function ug(t){let e={name:Eo(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"],N(e,t.body.trim()||"")}function pg(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(Oo)?e.slice(Oo.length):e.startsWith(Fs)?e.slice(Fs.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",allowedTools:Yb(t["x-agentsmesh-allowed-tools"])}:null}function dg(t,e){return N({description:t.description,"allowed-tools":t.allowedTools},e.trim()||"")}var Oo,Fs,vs=f(()=>{F();Oo="am-command-",Fs="ab-command-";i(Yb,"toStringArray");i(Eo,"commandSkillDirName");i(ug,"serializeCommandSkill");i(pg,"parseCommandSkillFrontmatter");i(dg,"serializeImportedCommand");});function ca(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 Xb(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 `${bo}${t}`}function ma(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];}),N(e,t.body.trim()||"")}function jr(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(bo)?e.slice(bo.length):e.startsWith($s)?e.slice($s.length):"",o=(r||n).trim();return o?{name:o,description:typeof t.description=="string"?t.description:"",tools:ca(t["x-agentsmesh-tools"]),disallowedTools:ca(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:ca(t["x-agentsmesh-mcp-servers"]),hooks:Xb(t["x-agentsmesh-hooks"]),skills:ca(t["x-agentsmesh-skills"]),memory:typeof t["x-agentsmesh-memory"]=="string"?t["x-agentsmesh-memory"]:""}:null}function je(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];}),N(r,e.trim()||"")}var bo,$s,Xt=f(()=>{F();bo="am-agent-",$s="ab-agent-";i(ca,"toStringArray");i(Xb,"toHooks");i(Lt,"projectedAgentSkillDirName");i(ma,"serializeProjectedAgentSkill");i(jr,"parseProjectedAgentSkillFrontmatter");i(je,"serializeImportedAgent");});function A(t,e){return relative(t,e).replace(/\\/g,"/")}async function T(t,e){return P(join(t,e)).catch(()=>[])}function gg(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}function nx(t,e,r,n){let o=dirname(e),s=dirname(r);for(;o!==n&&o!==".";)gg(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,`${fg}/${p}/SKILL.md`);return}let[o,...s]=n.split("/"),a=s.join("/");if(!o||!a)return;let l=o.startsWith(Oo)?Oo:o.startsWith(Fs)?Fs:null;if(l&&a==="SKILL.md"){t.set(e,`${ex}/${o.slice(l.length)}.md`);return}let c=o.startsWith(bo)?bo:o.startsWith($s)?$s:null;if(c&&a==="SKILL.md"){t.set(e,`${rx}/${o.slice(c.length)}.md`);return}let m=`${fg}/${o}`;a==="SKILL.md"&&gg(t,`${r}/${o}`,m);let u=`${m}/${a}`;t.set(e,u),a!=="SKILL.md"&&nx(t,e,u,`${r}/${o}`);}function ox(t){return t.split("/").filter(Boolean)[0]??""}async function sx(){if(Fc!==void 0)return Fc;let{BUILTIN_TARGETS:t}=await Promise.resolve().then(()=>(rt(),hg)),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=ox(n);o.startsWith(".")&&e.add(o);}return Fc=e,e}function $c(t){return t.split("/").some(e=>e.startsWith("."))}async function ix(t){let e=[],r=await sx();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)||$c(c))continue;await n(c);continue}if(l.isSymbolicLink()&&await stat(join(t,c)).then(m=>m.isDirectory(),()=>false)){if(r.has(l.name)||$c(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 pa(t,e){let r=await ix(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($c(l))continue;let c=l.replace(/\//g,"-");t.set(o,`${tx}/${c}.md`);}}var tx,ex,rx,fg,Fc,Mt=f(()=>{b();vs();Xt();tx=".agentsmesh/rules",ex=".agentsmesh/commands",rx=".agentsmesh/agents",fg=".agentsmesh/skills";i(A,"rel");i(T,"listFiles");i(gg,"addDirectoryMapping");i(nx,"addAncestorMappings");i(G,"addSimpleFileMapping");i(z,"addSkillLikeMapping");i(ox,"firstPathSegment");i(sx,"targetRootSegments");i($c,"hasHiddenSegment");i(ix,"listScopedAgentsFiles");i(pa,"addScopedAgentsMappings");});var v,tt,kt,Gt=f(()=>{v=".agentsmesh/rules",tt=".agentsmesh/commands",kt=".agentsmesh/agents";});async function Mc(t,e,r="project"){if(r==="global"){t.set(ve,`${v}/_root.md`);for(let n of await T(e,ur))z(t,A(e,n),ur);t.set(_o,".agentsmesh/mcp.json");return}t.set(fe,`${v}/_root.md`),t.set(Ls,`${v}/_root.md`);for(let n of await T(e,Fe)){let o=A(e,n);o===fe||o===Ls||G(t,o,v,".md");}for(let n of await T(e,mr))G(t,A(e,n),tt,".md");for(let n of await T(e,wn))z(t,A(e,n),wn);}var yg=f(()=>{Mt();En();Gt();i(Mc,"buildAntigravityImportPaths");});var Ig,Ur,Sg,Gs,js,Us,Ws,Bs,fr,Gc,Ks,xo,Hs,zs,da,fa,jc,Vs,Uc,bn,Rg,gr=f(()=>{Ig="claude-code",Ur=".claude/CLAUDE.md",Sg="CLAUDE.md",Gs=".claude/rules",js=".claude/commands",Us=".claude/agents",Ws=".claude/skills",Bs=".claude/settings.json",fr=".claude/hooks.json",Gc=".claude/output-styles",Ks=".claudeignore",xo=".mcp.json",Hs=".claude.json",zs=".agentsmesh/rules",da=".agentsmesh/commands",fa=".agentsmesh/agents",jc=".agentsmesh/skills",Vs=".agentsmesh/mcp.json",Uc=".agentsmesh/permissions.yaml",bn=".agentsmesh/hooks.yaml",Rg=".agentsmesh/ignore";});async function Wc(t,e,r="project"){if(t.set(".claude/CLAUDE.md",`${v}/_root.md`),t.set(fr,bn),r==="project"&&t.set("CLAUDE.md",`${v}/_root.md`),r==="global")for(let n of await T(e,".agents/skills"))z(t,A(e,n),".agents/skills");for(let n of await T(e,".claude/rules"))G(t,A(e,n),v,".md");for(let n of await T(e,".claude/commands"))G(t,A(e,n),tt,".md");for(let n of await T(e,".claude/agents"))G(t,A(e,n),kt,".md");for(let n of await T(e,".claude/skills"))z(t,A(e,n),".claude/skills");}var _g=f(()=>{Mt();gr();Gt();i(Wc,"buildClaudeCodeImportPaths");});var Wr,hr,xn,yr,Cg,It,Ue,Br,Pn,An,Tn,Ln,Bc,Kr,ga,Kc,Hc,zc,kg,Zt=f(()=>{Wr="cline",hr=".clinerules",xn=".clineignore",yr=".cline/cline_mcp_settings.json",Cg=".cline/mcp_settings.json",It=".cline/skills",Ue=".clinerules/workflows",Br="AGENTS.md",Pn=".clinerules/hooks",An="Documents/Cline/Rules",Tn="Documents/Cline/Workflows",Ln="Documents/Cline/Hooks",Bc=".agentsmesh/hooks.yaml",Kr=".agentsmesh/rules",ga=".agentsmesh/commands",Kc=".agentsmesh/ignore",Hc=".agentsmesh/mcp.json",zc=".agentsmesh/agents",kg=".agentsmesh/skills";});async function Vc(t,e,r="project"){if(r==="global"){for(let n of await T(e,An))G(t,A(e,n),v,".md");for(let n of await T(e,Tn))G(t,A(e,n),tt,".md");for(let n of await T(e,It))z(t,A(e,n),It);t.set(yr,".agentsmesh/mcp.json");return}t.set(".clinerules/_root.md",`${v}/_root.md`);for(let n of await T(e,".clinerules")){let o=A(e,n);!o.endsWith(".md")||o.includes("/workflows/")||basename(o)==="_root.md"||G(t,o,v,".md");}for(let n of await T(e,".clinerules/workflows"))G(t,A(e,n),tt,".md");for(let n of await T(e,".cline/skills"))z(t,A(e,n),".cline/skills");}var wg=f(()=>{Mt();Zt();Gt();i(Vc,"buildClineImportPaths");});async function Jc(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 pa(t,e)),r==="project")for(let n of await T(e,".codex/instructions"))G(t,A(e,n),v,".md");for(let n of await T(e,".codex/rules")){let o=A(e,n);o.endsWith(".rules")?G(t,o,v,".rules"):o.endsWith(".md")&&G(t,o,v,".md");}for(let n of await T(e,".codex/agents"))G(t,A(e,n),kt,".toml");for(let n of await T(e,".agents/skills"))z(t,A(e,n),".agents/skills");}var Og=f(()=>{Mt();Gt();i(Jc,"buildCodexCliImportPaths");});var Po,ye,We,Yc,ha,Ir,Xc,Be,Ao,Js,ya,Ia,Zc,Ke=f(()=>{Po="continue",ye=".continue/rules",We=".continue/prompts",Yc=".continue/mcpServers",ha=`${Yc}/agentsmesh.json`,Ir=`${ye}/general.md`,Xc=`${ye}/_root.md`,Be=".continue/skills",Ao=".continue/AGENTS.md",Js=".continue/config.yaml",ya=".agentsmesh/rules",Ia=".agentsmesh/commands",Zc=".agentsmesh/mcp.json";});async function qc(t,e,r="project"){t.set(Ir,`${v}/_root.md`),t.set(Xc,`${v}/_root.md`);for(let n of await T(e,".continue/rules")){let o=A(e,n);o===Ir||o===Xc||G(t,o,v,".md");}for(let n of await T(e,".continue/prompts"))t.set(A(e,n),`${tt}/${basename(n,".md")}.md`);for(let n of await T(e,".continue/skills"))z(t,A(e,n),".continue/skills");if(r==="global")for(let n of await T(e,".agents/skills"))z(t,A(e,n),".agents/skills");}var Eg=f(()=>{Mt();Ke();Gt();i(qc,"buildContinueImportPaths");});function cx(t,e){if(e.endsWith(".instructions.md")){t.set(e,`${v}/${basename(e,".instructions.md")}.md`);return}G(t,e,v,".md");}async function Qc(t,e){t.set(".github/copilot-instructions.md",`${v}/_root.md`);for(let r of await T(e,".github/copilot"))t.set(A(e,r),`${v}/${basename(r,".instructions.md")}.md`);for(let r of await T(e,".github/instructions"))cx(t,A(e,r));for(let r of await T(e,".github/prompts"))t.set(A(e,r),`${tt}/${basename(r,".prompt.md")}.md`);for(let r of await T(e,".github/agents"))t.set(A(e,r),`${kt}/${basename(r,".agent.md")}.md`);for(let r of await T(e,".github/skills"))z(t,A(e,r),".github/skills");}var bg=f(()=>{Mt();Gt();i(cx,"addCopilotInstructionMapping");i(Qc,"buildCopilotImportPaths");});var xg,Hr,Pg,qt,Sr,Qt,To,He,ze,Ve,Ra,Ie,tm,mx,Lo,Se,Ys,zr,Vr,Je,Jr,Yr,Ag,No,em,Xs,rm,ct=f(()=>{xg="cursor",Hr="AGENTS.md",Pg=".cursorrules",qt=".cursor/rules",Sr=`${qt}/general.mdc`,Qt=".cursor/commands",To=".cursor/agents",He=".cursor/skills",ze=".cursor/mcp.json",Ve=".cursor/hooks.json",Ra=".cursor/settings.json",Ie=".cursorignore",tm=".cursorindexingignore",mx=".agentsmesh-exports/cursor",Lo=`${mx}/user-rules.md`,Se=".cursor/AGENTS.md",Ys=ze,zr=He,Vr=To,Je=".agentsmesh/rules",Jr=".agentsmesh/commands",Yr=".agentsmesh/agents",Ag=".agentsmesh/skills",No=".agentsmesh/mcp.json",em=".agentsmesh/permissions.yaml",Xs=".agentsmesh/hooks.yaml",rm=".agentsmesh/ignore";});async function nm(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 T(e,".cursor/rules"))G(t,A(e,n),v,".mdc");for(let n of await T(e,".cursor/commands"))G(t,A(e,n),tt,".md");for(let n of await T(e,".cursor/agents"))G(t,A(e,n),kt,".md");for(let n of await T(e,".cursor/skills"))z(t,A(e,n),".cursor/skills");return}t.set("AGENTS.md",`${v}/_root.md`);for(let n of await T(e,".cursor/rules"))G(t,A(e,n),v,".mdc");for(let n of await T(e,".cursor/commands"))G(t,A(e,n),tt,".md");for(let n of await T(e,".cursor/agents"))G(t,A(e,n),kt,".md");for(let n of await T(e,".cursor/skills"))z(t,A(e,n),".cursor/skills");}var Tg=f(()=>{Mt();ct();Gt();i(nm,"buildCursorImportPaths");});async function om(t,e){for(let r of await T(e,".gemini/rules"))G(t,A(e,r),v,".md");for(let r of await T(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,`${tt}/${c}.md`);}for(let r of await T(e,".gemini/agents"))G(t,A(e,r),kt,".md");for(let r of await T(e,".gemini/skills"))z(t,A(e,r),".gemini/skills");}var Lg=f(()=>{Mt();Gt();i(om,"buildGeminiCliImportPaths");});var Nn,Xr,_a,Ng,Ye,Dg,ux,Zs,Dn,qs,Do,Fo,Qs,ti,ei,ri,ni,px,Ca,Fn,Fg,sm,ka,vg,$g,Mg,Gg,vo=f(()=>{Nn="junie",Xr=".junie",_a=`${Xr}/guidelines.md`,Ng=`${Xr}/ci-guidelines.md`,Ye=`${Xr}/AGENTS.md`,Dg="AGENTS.md",ux=`${Xr}/mcp`,Zs=`${ux}/mcp.json`,Dn=`${Xr}/skills`,qs=`${Xr}/rules`,Do=`${Xr}/commands`,Fo=`${Xr}/agents`,Qs=".aiignore",ti=".junie",ei=`${ti}/skills`,ri=`${ti}/agents`,ni=`${ti}/commands`,px=`${ti}/mcp`,Ca=`${px}/mcp.json`,Fn=`${ti}/AGENTS.md`,Fg=".agents/skills",sm=".agentsmesh/rules/_root.md",ka=".agentsmesh/rules",vg=".agentsmesh/commands",$g=".agentsmesh/agents",Mg=".agentsmesh/mcp.json",Gg=".agentsmesh/ignore";});async function im(t,e){t.set(_a,`${v}/_root.md`),t.set(Ye,`${v}/_root.md`),t.set("AGENTS.md",`${v}/_root.md`);for(let r of await T(e,".junie/rules"))G(t,A(e,r),v,".md");for(let r of await T(e,".junie/commands"))G(t,A(e,r),tt,".md");for(let r of await T(e,".junie/agents"))G(t,A(e,r),kt,".md");for(let r of await T(e,".junie/skills"))z(t,A(e,r),".junie/skills");}var jg=f(()=>{Mt();vo();Gt();i(im,"buildJunieImportPaths");});var jt,Re,oi,_e,te,Ce,Zr,Ug,$o,Mo,vn,ke,qr,$n,si,ii,Wg,am,lm,Bg,Kg,cm,Hg,Go=f(()=>{jt="kiro",Re="AGENTS.md",oi=".kiro",_e=`${oi}/steering`,te=`${oi}/skills`,Ce=`${oi}/agents`,Zr=`${oi}/hooks`,Ug=`${oi}/settings`,$o=`${Ug}/mcp.json`,Mo=".kiroignore",vn=".kiro/steering",ke=".kiro/steering/AGENTS.md",qr=".kiro/skills",$n=".kiro/agents",si=".kiro/settings/mcp.json",ii=".kiro/settings/kiroignore",Wg=".agents/skills",am=".agentsmesh/rules/_root.md",lm=".agentsmesh/rules",Bg=".agentsmesh/agents",Kg=".agentsmesh/mcp.json",cm=".agentsmesh/hooks.yaml",Hg=".agentsmesh/ignore";});async function mm(t,e,r="project"){if(r==="global"){t.set(ke,`${v}/_root.md`);for(let n of await T(e,vn)){let o=A(e,n);o!==ke&&G(t,o,v,".md");}for(let n of await T(e,qr))z(t,A(e,n),qr);for(let n of await T(e,$n))G(t,A(e,n),kt,".md");return}t.set(Re,`${v}/_root.md`);for(let n of await T(e,_e))G(t,A(e,n),v,".md");for(let n of await T(e,te))z(t,A(e,n),te);for(let n of await T(e,Ce))G(t,A(e,n),kt,".md");}var zg=f(()=>{Mt();Go();Gt();i(mm,"buildKiroImportPaths");});var Qr,Mn,we,ai,Rr,_r,Xe,li,ci,jo,mi,wa,tn,en,Cr,Gn,ui,rn,Vg,jn,Oa,Jg,Yg,Un=f(()=>{Qr="roo-code",Mn=".roo",we=`${Mn}/rules/00-root.md`,ai=".roorules",Rr=`${Mn}/rules`,_r=`${Mn}/commands`,Xe=`${Mn}/skills`,li=`${Mn}/mcp.json`,ci=".rooignore",jo=".roomodes",mi="settings/custom_modes.yaml",wa=".roo",tn=`${wa}/rules`,en=`${wa}/commands`,Cr=`${wa}/skills`,Gn="mcp_settings.json",ui=".rooignore",rn=`${wa}/AGENTS.md`,Vg=".agents/skills",jn=".agentsmesh/rules",Oa=".agentsmesh/commands",Jg=".agentsmesh/mcp.json",Yg=".agentsmesh/ignore";});async function um(t,e,r="project"){if(r==="global"){t.set(rn,`${v}/_root.md`);for(let n of await T(e,tn))G(t,A(e,n),v,".md");for(let n of await T(e,en))G(t,A(e,n),tt,".md");for(let n of await T(e,Cr))z(t,A(e,n),Cr);t.set(Gn,".agentsmesh/mcp.json");return}t.set(we,`${v}/_root.md`),t.set(ai,`${v}/_root.md`);for(let n of await T(e,Rr)){let o=A(e,n);o!==we&&G(t,o,v,".md");}for(let n of await T(e,".roo")){let o=A(e,n);/^\.roo\/rules-[^/]+\/.+\.md$/.test(o)&&G(t,o,v,".md");}for(let n of await T(e,_r))G(t,A(e,n),tt,".md");for(let n of await T(e,Xe))z(t,A(e,n),Xe);}var Xg=f(()=>{Mt();Un();Gt();i(um,"buildRooCodeImportPaths");});async function pm(t,e){t.set("AGENTS.md",`${v}/_root.md`),t.set(".windsurfrules",`${v}/_root.md`),await pa(t,e);for(let r of await T(e,".windsurf/rules"))G(t,A(e,r),v,".md");for(let r of await T(e,".windsurf/workflows"))G(t,A(e,r),tt,".md");for(let r of await T(e,".windsurf/skills"))z(t,A(e,r),".windsurf/skills");}var Zg=f(()=>{Mt();Gt();i(pm,"buildWindsurfImportPaths");});var qg=f(()=>{yg();_g();wg();Og();Eg();bg();Tg();Lg();jg();zg();Xg();Zg();});var Ut=f(()=>{qg();});var dx,fx,gx,hx,la,Dc=f(()=>{Cn();Kf();En();Qf();og();mg();Ut();dx={name:"antigravity",primaryRootInstructionPath:fe,generateRules:Gf,generateCommands:jf,generateSkills:Uf,generateMcp:Wf,importFrom:qf},fx={rootInstructionPath:fe,skillDir:".agents/skills",rewriteGeneratedPath(t){return t===Ns?null:t},paths:{rulePath(t,e){return `${Fe}/${t}.md`},commandPath(t,e){return `${mr}/${t}.md`},agentPath(t,e){return null}}},gx={rootInstructionPath:ve,renderPrimaryRootInstruction:Bf,skillDir:ur,managedOutputs:{dirs:[ur,Ds],files:[ve,_o]},rewriteGeneratedPath(t){return t===fe?ve:t.startsWith(`${Fe}/`)?null:t.startsWith(".agents/skills/")?t.replace(".agents/skills",ur):t.startsWith(`${mr}/`)?t.replace(mr,Ds):t===Ns?_o:t},paths:{rulePath(t,e){return ve},commandPath(t,e){return `${Ds}/${t}.md`},agentPath(t,e){return null}}},hx={rules:"native",additionalRules:"embedded",commands:ue("partial","workflows"),agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},la={id:"antigravity",generators:dx,capabilities:{rules:"native",additionalRules:"native",commands:ue("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:cg,project:fx,globalSupport:{capabilities:hx,detectionPaths:[".gemini/antigravity/GEMINI.md",".gemini/antigravity/skills",".gemini/antigravity/workflows",".gemini/antigravity/mcp_config.json"],layout:gx},importer:{rules:{feature:"rules",mode:"directory",source:{project:[Fe]},canonicalDir:On,extensions:[".md"],map:rg},commands:{feature:"commands",mode:"directory",source:{project:[mr],global:[Ds]},canonicalDir:aa,extensions:[".md"],map:ng},mcp:{feature:"mcp",mode:"flatFile",source:{global:[_o]},canonicalDir:".agentsmesh",canonicalFilename:Mf}},buildImportPaths:Mc,detectionPaths:[".agents/rules/general.md",".agents/rules/",".agents/skills/",".agents/workflows/"]};});function Qg(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(!Te(s))continue;let a=ut(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 th=f(()=>{le();i(Qg,"buildClaudeHooksObjectFromCanonical");});function eh(t){let e=[],r=t.rules.find(o=>o.root);r&&e.push({path:Ur,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=N(a,o.body.trim()||"");e.push({path:`${Gs}/${s}.md`,content:l});}return e}function rh(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=N(r,e.body.trim()||"");return {path:`${js}/${e.name}.md`,content:n}})}function nh(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
|
|
74
45
|
|
|
75
|
-
${
|
|
46
|
+
${n}`,s=N(r,o);return {path:`${Us}/${e.name}.md`,content:s}})}function oh(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:xo,content:e}]}function sh(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
|
|
76
47
|
|
|
77
|
-
${
|
|
78
|
-
`)
|
|
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}
|
|
48
|
+
${o}`,a=N(n,s);e.push({path:`${Ws}/${r.name}/SKILL.md`,content:a});for(let l of r.supportingFiles){let c=l.relativePath.replace(/\\/g,"/");e.push({path:`${Ws}/${r.name}/${c}`,content:l.content});}}return e}function ih(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:Bs,content:o}]}function ah(t,e){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let r=Qg(t);if(Object.keys(r).length===0)return [];if(e?.scope==="global")return [{path:fr,content:JSON.stringify(r,null,2)}];let n=JSON.stringify({hooks:r},null,2);return [{path:Bs,content:n}]}function lh(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
49
|
+
`);return [{path:Ks,content:e}]}var ch=f(()=>{F();gr();th();i(eh,"generateRules");i(rh,"generateCommands");i(nh,"generateAgents");i(oh,"generateMcp");i(sh,"generateSkills");i(ih,"generatePermissions");i(ah,"generateHooks");i(lh,"generateIgnore");});function xt(t,e,r){return t.startsWith(`${e}/`)&&!r.includes("codex-cli")?`.agents/skills/${t.slice(e.length+1)}`:null}var nn=f(()=>{i(xt,"mirrorSkillsToAgents");});function Sx(t){let e=t.description.trim();return e||(basename(t.source)||"rule").replace(/\.md$/i,"")||"Rule"}function mh(t){let e=t.rules.find(o=>o.root),r=(e?.body??"").trim();return r?`# Global Instructions
|
|
80
50
|
|
|
81
|
-
${
|
|
51
|
+
## ${e?Sx(e):"Guidance"}
|
|
82
52
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
`,`set -e
|
|
86
|
-
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
|
-
`)}]}i(gg,"generateIgnore");function hg(t){return Me(t,ln)}i(hg,"generateSkills");function yg(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 ie(e?.body.trim()??"",r)}i(yg,"renderJunieGlobalInstructions");function Bw(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(Bw,"readMcpServers");async function Ig(t,e){let r=join(t,so),n=await h(r);if(n===null)return;let o=Bw(n);Object.keys(o).length!==0&&(await _(join(t,ql),JSON.stringify({mcpServers:o},null,2)),e.push({fromTool:Pe,fromPath:r,toPath:ql,feature:"mcp"}));}i(Ig,"importJunieMcp");async function _g(t,e,r){let n=join(t,Lr),o=join(t,Xl);e.push(...await M({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 q(l,{hasDescription:true,description:typeof c.description=="string"?c.description:void 0,hasAllowedTools:true,allowedTools:sr(c["allowed-tools"])},m);return {destPath:l,toPath:`${Xl}/${s}`,feature:"commands",content:u}},"mapEntry")}));}i(_g,"importJunieCommands");async function Sg(t,e,r){let n=join(t,Nr),o=join(t,Zl);e.push(...await M({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:`${Zl}/${s}`,feature:"agents",content:await Tt(l,c,m)}},"mapEntry")}));}i(Sg,"importJunieAgents");async function Cg(t,e){let r=join(t,io),n=await h(r);n!==null&&(await _(join(t,Ql),n.trimEnd()),e.push({fromTool:Pe,fromPath:r,toPath:Ql,feature:"ignore"}));}i(Cg,"importJunieIgnore");async function Kw(t,e,r){let n=[xe,Fi,vd,$d],o=join(t,Yl);for(let s of n){let a=join(t,s),l=await h(a);if(l===null)continue;let c=await Ne({content:l,projectRoot:t,rulesDir:$i,sourcePath:a,fromTool:Pe,normalize:r});e.push(...c.results);let{frontmatter:m,body:u}=w(r(c.rootContent,a,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:Pe,fromPath:a,toPath:Yl,feature:"rules"});return}}i(Kw,"importRules");async function Hw(t,e,r){let n=join(t,cn),o=join(t,$i);e.push(...await M({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 D(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:`${$i}/${s}`,feature:"rules",content:u}},"mapEntry")}));}i(Hw,"importNonRootRules");async function la(t){let e=[],r=await K(Pe,t);return await Kw(t,e,r),await Hw(t,e,r),await _g(t,e,r),await Sg(t,e,r),await Ge(t,ln,Pe,e,r),await Ig(t,e),await Cg(t,e),e}i(la,"importFromJunie");function Rg(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Pe}))}i(Rg,"lintRules");function kg(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))mg(n)&&e.push(Q(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return e}i(kg,"lintMcp");var zw={name:"junie",primaryRootInstructionPath:xe,generateRules:ug,generateCommands:dg,generateAgents:fg,generateSkills:hg,generateMcp:pg,generateIgnore:gg,importFrom:la},Mc={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 `${cn}/${t}.md`},commandPath(t,e){return `${Lr}/${t}.md`},agentPath(t,e){return `${Nr}/${t}.md`}}},Vw={rootInstructionPath:mn,renderPrimaryRootInstruction:yg,skillDir:ys,managedOutputs:{dirs:[ys,Is,_s,Md],files:[mn,vi]},rewriteGeneratedPath(t){return t===xe?mn:t.startsWith(`${cn}/`)?mn:t.startsWith(`${ln}/`)?t.replace(`${ln}/`,`${ys}/`):t.startsWith(`${Lr}/`)?t.replace(`${Lr}/`,`${_s}/`):t.startsWith(`${Nr}/`)?t.replace(`${Nr}/`,`${Is}/`):t===so?vi:t===io?null:t},mirrorGlobalPath(t,e){return yt(t,".junie/skills",e)},paths:{rulePath(t,e){return mn},commandPath(t,e){return `${_s}/${t}.md`},agentPath(t,e){return `${Is}/${t}.md`}}},Jw={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},wg={id:"junie",generators:zw,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:Rg,lint:{mcp:kg},project:Mc,globalSupport:{capabilities:Jw,detectionPaths:[mn,ys,Is,_s,vi],layout:Vw},skillDir:Mc.skillDir,paths:Mc.paths,buildImportPaths:tc,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"]};var Eg={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},Xw=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);function Og(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}i(Og,"toKebab");function Zw(t){return t.type==="prompt"?t.prompt:t.command}i(Zw,"hookText");function qw(t,e){let r=Eg[t];return t==="PreToolUse"||t==="PostToolUse"?{type:r,tools:[e||"*"]}:{type:r}}i(qw,"toWhen");function Pg(t){let e=[];for(let[r,n]of Object.entries(t)){let o=r;if(!(o in Eg)||!Array.isArray(n))continue;let s=1;for(let a of n){let l=Zw(a);if(!l)continue;let c={name:`${Og(r)} ${s}`,version:"1",when:qw(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};e.push({name:`${Og(r)}-${s}.kiro.hook`,content:JSON.stringify(c,null,2)}),s+=1;}}return e}i(Pg,"generateKiroHooks");function Qw(t){let e=Xw.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}i(Qw,"toCanonicalEntry");function xg(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:Qw(r)}i(xg,"parseKiroHookFile");function Ag(t){return stringify(t).trimEnd()}i(Ag,"serializeCanonicalHooks");function eO(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}i(eO,"steeringFrontmatter");function bg(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(ct))continue;let o=basename(n.source,".md");e.push({path:`${ne}/${o}.md`,content:L(eO(n),n.body.trim()||"")});}return e}i(bg,"generateRules");function Tg(t){return Me(t,Ut)}i(Tg,"generateSkills");function Lg(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:un,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}i(Lg,"generateMcp");function Ng(t){return !t.hooks||Object.keys(t.hooks).length===0?[]:Pg(t.hooks).map(e=>({path:`${Dr}/${e.name}`,content:e.content}))}i(Ng,"generateHooks");function Dg(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=L(r,e.body.trim()||"");return {path:`${oe}/${e.name}.md`,content:n}})}i(Dg,"generateAgents");function Fg(t){return t.ignore.length===0?[]:[{path:pn,content:t.ignore.join(`
|
|
89
|
-
`)}]}i(Fg,"generateIgnore");function rO(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)};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)});}return n}i(rO,"readMcpServers");async function vg(t,e,r){let n=join(t,oe),o=join(t,rc);e.push(...await M({srcDir:n,destDir:o,extensions:[".md"],fromTool:ct,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:`${rc}/${s}`,feature:"agents",content:await Tt(l,c,m)}},"mapEntry")}));}i(vg,"importKiroAgents");async function $g(t,e,r){let n=r==="global"?ao:un,o=await h(join(t,n));if(o===null)return;let s=rO(o);Object.keys(s).length!==0&&(await _(join(t,nc),JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:ct,fromPath:join(t,n),toPath:nc,feature:"mcp"}));}i($g,"importKiroMcp");async function Mg(t,e){let r={};for(let n of await P(join(t,Dr))){if(!n.endsWith(".kiro.hook"))continue;let o=xg(await h(n)??"");o&&(r[o.event]??=[],r[o.event].push(o.entry));}Object.keys(r).length!==0&&(await _(join(t,oc),Ag(r)),e.push({fromTool:ct,fromPath:join(t,Dr),toPath:oc,feature:"hooks"}));}i(Mg,"importKiroHooks");async function Gg(t,e,r){let n=r==="global"?lo:pn,o=await h(join(t,n));o!==null&&(await _(join(t,sc),o.trimEnd()),e.push({fromTool:ct,fromPath:join(t,n),toPath:sc,feature:"ignore"}));}i(Gg,"importKiroIgnore");function oO(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:nr(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}i(oO,"canonicalRuleMeta");async function sO(t,e,r,n){let o=n==="global"?[se,re]:[re,se];for(let s of o){let a=join(t,s),l=await h(a);if(l===null)continue;let c=join(t,ec),{frontmatter:m,body:u}=w(r(l,a,c));await _(c,await D(c,{...m,root:true},u)),e.push({fromTool:ct,fromPath:a,toPath:ec,feature:"rules"});return}}i(sO,"importRoot");async function iO(t,e,r){e.push(...await M({srcDir:join(t,ne),destDir:join(t,Mi),extensions:[".md"],fromTool:ct,normalize:r,mapEntry:i(async({relativePath:n,normalizeTo:o})=>{if(basename(n)==="AGENTS.md")return null;let s=join(t,Mi,n),{frontmatter:a,body:l}=w(o(s));return {destPath:s,toPath:`${Mi}/${n}`,feature:"rules",content:await D(s,oO(a),l)}},"mapEntry")}));}i(iO,"importRules");async function ca(t,e={}){let r=e.scope??"project",n=[],o=await K(ct,t,r);return await sO(t,n,o,r),await iO(t,n,o),await vg(t,n,o),await Ge(t,Ut,ct,n,o),await $g(t,n,r),await Mg(t,n),await Gg(t,n,r),n}i(ca,"importFromKiro");function jg(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:ct}))}i(jg,"lintRules");function Ug(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=>Io(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}i(Ug,"lintHooks");var aO={name:ct,primaryRootInstructionPath:re,generateRules:bg,generateAgents:Dg,generateSkills:Tg,generateMcp:Lg,generateHooks:Ng,generateIgnore:Fg,importFrom:ca},Gc={rootInstructionPath:re,skillDir:Ut,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${ne}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return `${oe}/${t}.md`}}},lO={rootInstructionPath:se,skillDir:Fr,managedOutputs:{dirs:[dn,Fr,fn,jd],files:[se,ao,lo]},rewriteGeneratedPath(t){return t===re?se:t.startsWith(`${ne}/`)?t.replace(`${ne}/`,`${dn}/`):t.startsWith(`${Ut}/`)?t.replace(`${Ut}/`,`${Fr}/`):t.startsWith(`${oe}/`)?t.replace(`${oe}/`,`${fn}/`):t===un?ao:t===pn?lo:t.startsWith(`${Dr}/`)?null:t},mirrorGlobalPath(t,e){return yt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${dn}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return `${fn}/${t}.md`}}},cO={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},Wg={id:ct,generators:aO,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:jg,lint:{hooks:Ug},project:Gc,globalSupport:{capabilities:cO,detectionPaths:[dn,se,Fr,fn,ao,lo],layout:lO},skillDir:Gc.skillDir,paths:Gc.paths,buildImportPaths:ic,detectionPaths:[ne,Ut,oe,Dr,un,pn]};var So="gemini-cli",Kt="GEMINI.md",ce="AGENTS.md",Bg=".gemini/rules",Kg=".gemini/GEMINI.md",wt=".gemini/commands",ma=".gemini/policies",Gr=".gemini/settings.json",ua=".geminiignore",Ts=".gemini/skills",jr=".gemini/agents",Hg=".gemini/system.md",zg=`${ma}/permissions.toml`,Co=".agentsmesh/rules",pa=".agentsmesh/commands",Ls=".agentsmesh/agents",Ns=".agentsmesh/skills",jc=".agentsmesh/mcp.json",Uc=".agentsmesh/hooks.yaml",Ro=".agentsmesh/ignore",Wc=".agentsmesh/permissions.yaml",ko=".gemini/GEMINI.md",Ds=".gemini/AGENTS.md",da=".gemini/settings.json",wo=".gemini/commands",kn=".gemini/skills",Fs=".gemini/agents";function Bc(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=ie(e?.body.trim()??"",r),o=[{path:Kt,content:n}];if(e){let s=e.body.trim().replace(/\.agentsmesh\/skills\//g,".agents/skills/");o.push({path:ce,content:s});}return o}i(Bc,"generateRules");function Vg(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}i(Vg,"canonicalCommandNameToGeminiTomlPath");function mO(t){let e=t.replace(/\r\n/g,`
|
|
90
|
-
`);return e.includes('"""')?JSON.stringify(e):`"""
|
|
91
|
-
${e}
|
|
92
|
-
"""`}i(mO,"serializeTomlMultilineLiteral");function uO(t){return [`description = ${JSON.stringify(t.description||t.name)}`,`prompt = ${mO(t.body.trim()||"")}`].join(`
|
|
93
|
-
`)+`
|
|
94
|
-
`}i(uO,"serializeGeminiCommand");function Kc(t){return t.commands.map(e=>({path:Vg(e.name,wt),content:uO(e)}))}i(Kc,"generateCommands");function Hc(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=L(r,e.body.trim()||"");return {path:`${jr}/${e.name}.md`,content:n}})}i(Hc,"generateAgents");function zc(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=L(n,r.body.trim()||"");e.push({path:`${Ts}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${Ts}/${r.name}/${a}`,content:s.content});}}return e}i(zc,"generateSkills");function pO(t){switch(t){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}i(pO,"mapHookEvent");function Vc(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=pO(o);if(!a||!Array.isArray(s))return [];let l=s.filter(c=>typeof c=="object"&&c!==null&&ze(c)).map((c,m)=>({matcher:c.matcher,hooks:[{name:`${a}-${m+1}`,type:"command",command:ot(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:[Kt,ce]}),Object.keys(e).length===0?[]:[{path:Gr,content:JSON.stringify(e,null,2)}]}i(Vc,"generateGeminiSettingsFiles");function Jc(t){return !t.ignore||t.ignore.length===0?[]:[{path:ua,content:t.ignore.join(`
|
|
95
|
-
`)}]}i(Jc,"generateIgnore");function wn(t){return JSON.stringify(t)}i(wn,"escapeTomlBasicString");function dO(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}i(dO,"escapeRegexLiteral");function fO(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}}i(fO,"parsePermissionExpr");function fa(t,e,r){return ["[[rule]]",`decision = ${wn(t)}`,`priority = ${e}`,...r,""].join(`
|
|
96
|
-
`)}i(fa,"ruleForDecision");function Jg(t,e,r){let n=fO(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 fa(e,r,[`toolName = ${wn(s)}`])}if(n.kind==="bash"){let s=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return fa(e,r,[`toolName = ${wn(o.Bash)}`,`commandPrefix = ${wn(s)}`])}return n.kind==="read"?fa(e,r,[`toolName = ${wn(o.Read)}`,`argsPattern = ${wn(dO(n.path))}`]):fa(e,r,[`toolName = ${wn(n.raw)}`])}i(Jg,"permissionExprToGeminiRule");function Yg(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=Jg(s,"allow",100+a);l&&o.push(l);}),r.forEach((s,a)=>{let l=Jg(s,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:zg,content:o.join(`
|
|
97
|
-
`)}]}i(Yg,"generateGeminiPermissionsPolicies");function Yc(t){switch(t){case "BeforeTool":case "preToolUse":return "PreToolUse";case "AfterTool":case "postToolUse":return "PostToolUse";case "Notification":case "notification":return "Notification";default:return null}}i(Yc,"mapGeminiHookEvent");function ga(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()}}i(ga,"parseFlexibleFrontmatter");async function Xc(t,e){let r=join(t,Gr),n=await h(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,jc);await R(join(t,".agentsmesh")),await _(c,JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:"gemini-cli",fromPath:r,toPath:jc,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(t,Ro);await R(join(t,".agentsmesh")),await _(c,a.join(`
|
|
98
|
-
`)+`
|
|
99
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Ro,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=Yc(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(g=>g!==null&&typeof g=="object"&&ze(g)).map(g=>({matcher:f.matcher,command:ot(g),type:"command",timeout:typeof g.timeout=="number"?g.timeout:void 0})));if(d.length===0){let f=u.filter(g=>g!==null&&typeof g=="object"&&typeof g.matcher=="string"&&ze(g)).map(g=>({matcher:g.matcher,command:ot(g),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,Uc);await R(join(t,".agentsmesh")),await _(u,stringify(m,{lineWidth:0}).trimEnd()),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Uc,feature:"hooks"});}}}i(Xc,"importGeminiSettings");async function Xg(t,e){let r=join(t,ua),n=await h(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 R(join(t,".agentsmesh"));let s=join(t,Ro);await _(s,o.join(`
|
|
100
|
-
`)+`
|
|
101
|
-
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Ro,feature:"ignore"});}}}i(Xg,"importGeminiIgnore");async function qg(t,e,r){let n=t.replace(/\\/g,"/"),o=join(e,n),{frontmatter:s,body:a}=ga(r(o)),l=nr(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:`${Co}/${n}`,feature:"rules",content:await D(o,c,a)}}i(qg,"mapGeminiRuleFile");async function Qg(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")?IO(s):ga(s),c=or(a.allowedTools),m=or(a["allowed-tools"]),u=c.length>0?c:m;return {destPath:o,toPath:`${pa}/${n}`,feature:"commands",content:await q(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)}}i(Qg,"mapGeminiCommandFile");function IO(t){try{let e=parse$1(t);return {frontmatter:e,body:typeof e.prompt=="string"?e.prompt:""}}catch{return {frontmatter:{},body:t.trim()}}}i(IO,"parseTomlCommand");function CO(t){return t.replace(/\\(.)/g,"$1")}i(CO,"unescapeRegexLiteral");function RO(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}}i(RO,"toolNameToPermissionBase");function kO(t){return `Bash(${t}:*)`}i(kO,"commandPrefixToBashExpr");function wO(t){return `Read(${CO(t)})`}i(wO,"argsPatternToReadExpr");async function th(t){let e=[],r=join(t,ma),n;try{n=await P(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 h(p);if(!d)continue;let f;try{f=parse$1(d);}catch{continue}let g=f&&typeof f=="object"&&"rule"in f?f.rule:void 0;if(Array.isArray(g))for(let I of g){if(!I||typeof I!="object")continue;let S=I,y=typeof S.toolName=="string"?S.toolName:null,k=typeof S.decision=="string"?S.decision:null;if(!y||!k)continue;let E=RO(y);if(!E)continue;let O=null;E==="Bash"?typeof S.commandPrefix=="string"&&S.commandPrefix.trim()&&(O=kO(S.commandPrefix.trim())):E==="Read"?typeof S.argsPattern=="string"&&S.argsPattern.trim()?O=wO(S.argsPattern.trim()):O="Read":O=E,O&&(k==="allow"?l.has(O)||(l.add(O),s.push(O)):k==="deny"&&(c.has(O)||(c.add(O),a.push(O))));}}if(s.length===0&&a.length===0)return e;await R(join(t,".agentsmesh"));let m=join(t,Wc),u=stringify({allow:s,deny:a});return await _(m,u.trimEnd()+`
|
|
102
|
-
`),e.push({fromTool:So,fromPath:join(t,ma),toPath:Wc,feature:"permissions"}),e}i(th,"importGeminiPolicies");function qc(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/")}i(qc,"stripProjectRootCanonicalPrefix");async function nh(t,e,r){let n=join(t,Ts),s=(await P(n)).filter(l=>basename(l)==="SKILL.md");for(let l of s){let c=await h(l);if(!c)continue;let m=basename(l.slice(0,-9)),u=w(c),p=wr(u.frontmatter,m);if(p){let k=join(t,Ls);await R(k);let E=join(k,`${p.name}.md`);await _(E,ye(p,r(u.body,l,E))),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Ls}/${p.name}.md`,feature:"agents"});continue}let d=join(t,Ns,m,"SKILL.md"),f=r(c,l,d),g=join(t,Ns,m);await R(g);let{frontmatter:I,body:S}=w(f);await _(d,await Le(d,{...I,name:m},S)),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Ns}/${m}/SKILL.md`,feature:"skills"});let y=await P(dirname(l));for(let k of y){if(k===l)continue;let E=await h(k);if(E===null)continue;let O=relative(dirname(l),k).replace(/\\/g,"/"),x=join(g,O);await R(dirname(x)),await _(x,r(E,k,x)),e.push({fromTool:"gemini-cli",fromPath:k,toPath:`${Ns}/${m}/${O}`,feature:"skills"});}}let a=join(t,jr);try{let c=(await P(a)).filter(m=>m.endsWith(".md"));for(let m of c){let u=await h(m);if(!u)continue;let{frontmatter:p,body:d}=w(u),g=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),I=join(t,Ls);await R(I);let S=join(I,g),y=r(d,m,S);await _(S,await Tt(S,{...p,name:typeof p.name=="string"?p.name:basename(g,".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},y)),e.push({fromTool:"gemini-cli",fromPath:m,toPath:`${Ls}/${g}`,feature:"agents"});}}catch{}}i(nh,"importGeminiSkillsAndAgents");async function ya(t){let e=[],r=await K(So,t),n=await K("codex-cli",t),o=join(t,Co),s=join(t,pa),a=join(t,Kt),l=join(t,ce),c=join(t,Kg),m=join(t,Hg),u=await h(a),p=await h(l),d=await h(c),f=await h(m),g=[{path:l,content:p},{path:c,content:d},{path:a,content:u},{path:m,content:f}].find(E=>E.content!==null)??null,I=g?.path??m,S=g?.content??null;if(S!==null){await R(o);let E=join(o,"_root.md"),O=I===l||I===c?n(S,I,E):S,x=await Ne({content:O,projectRoot:t,rulesDir:Co,sourcePath:I,fromTool:"gemini-cli",normalize:r});e.push(...x.results);let U=r(x.rootContent,I,E),F=qc(U.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),t),{frontmatter:j,body:z}=w(F),J=j.root===true?j:{...j,root:true},Ft=qc(await D(E,J,z),t);await _(E,Ft),e.push({fromTool:"gemini-cli",fromPath:I,toPath:`${Co}/_root.md`,feature:"rules"});}let y=join(t,Bg);e.push(...await M({srcDir:y,destDir:o,extensions:[".md"],fromTool:"gemini-cli",normalize:r,mapEntry:i(({relativePath:E,normalizeTo:O})=>qg(E,o,O),"mapEntry")}));let k=join(t,wt);return e.push(...await M({srcDir:k,destDir:s,extensions:[".md",".toml"],fromTool:"gemini-cli",normalize:r,mapEntry:i(({relativePath:E,normalizeTo:O})=>Qg(E,s,O),"mapEntry")})),await nh(t,e,r),await Xc(t,e),await Xg(t,e),e.push(...await th(t)),e}i(ya,"importFromGemini");function oh(t,e,r,n){return nt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:So}))}i(oh,"lintRules");function sh(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>Q(e.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}i(sh,"lintCommands");function ih(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=>Io(n,"gemini-cli",e))}i(ih,"lintHooks");function ah(t,e){return e==="project"&&En("gemini-cli",e)?.ignore.flavor!=="settings-embedded"?[]:Vc(t)}i(ah,"emitScopedGeminiSettings");var OO={name:"gemini-cli",primaryRootInstructionPath:Kt,generateRules:Bc,generateCommands:Kc,generateAgents:Hc,generateSkills:zc,generateIgnore:Jc,generatePermissions:Yg,importFrom:ya},em={rootInstructionPath:Kt,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[ce]}],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 yt(t,".gemini/skills",e)},paths:{rulePath(t,e){return Kt},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${wt}/${r.join("/")}/${n}.toml`}return `${wt}/${t}.toml`},agentPath(t,e){return Mt(e,"gemini-cli")?`.gemini/skills/${Ct(t)}/SKILL.md`:`${jr}/${t}.md`}}},EO={rootInstructionPath:ko,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Ds]}],skillDir:kn,managedOutputs:{dirs:[wo,kn,Fs],files:[ko,Ds,da]},rewriteGeneratedPath(t){return t===Kt?ko:t===ce?Ds:t===Gr?da:t.startsWith(`${wt}/`)?t.replace(`${wt}/`,`${wo}/`):t.startsWith(".gemini/skills/")?t.replace(".gemini/skills/",`${kn}/`):t.startsWith(`${jr}/`)?t.replace(`${jr}/`,`${Fs}/`):t.startsWith(".gemini/policies/")||t===".geminiignore"?null:t},mirrorGlobalPath(t,e){return yt(t,kn,e)},paths:{rulePath(t,e){return ko},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${wo}/${r.join("/")}/${n}.toml`}return `${wo}/${t}.toml`},agentPath(t,e){return Mt(e,"gemini-cli")?`${kn}/${Ct(t)}/SKILL.md`:`${Fs}/${t}.md`}}},PO={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},lh={id:"gemini-cli",generators:OO,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:Xt("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:oh,lint:{commands:sh,hooks:ih},emitScopedSettings:ah,project:em,globalSupport:{capabilities:PO,detectionPaths:[ko,Ds,da,wo,kn,Fs],layout:EO},skillDir:em.skillDir,paths:em.paths,buildImportPaths:Jl,detectionPaths:["GEMINI.md",".gemini"]};function AO(t){let e=basename(t,".md");return e==="_root"?"root":e}i(AO,"ruleSlug");function ch(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";e.push({path:Er,content:n});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=AO(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?L(s,n.body.trim()||""):n.body.trim()||"";e.push({path:`${Ze}/${o}.md`,content:a});}return e}i(ch,"generateRules");function mh(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n?`${r}
|
|
53
|
+
${r}
|
|
54
|
+
`:""}var uh=f(()=>{i(Sx,"ruleSectionTitle");i(mh,"renderClaudeGlobalPrimaryInstructions");});function dh(t,e){return t===null?"created":t!==e?"updated":"unchanged"}async function fh(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=N(c,l.body.trim()),u=`${Gc}/${l.name}.md`,p=await S(join(e,u));a.push({target:"claude-code",path:u,content:m,currentContent:p??void 0,status:dh(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=N(c,l.body.trim()),u=`${Gc}/${l.name}.md`,p=await S(join(e,u));a.push({target:"claude-code",path:u,content:m,currentContent:p??void 0,status:dh(p,m)});}return a}var gh=f(()=>{b();F();gr();i(dh,"computeStatus");i(fh,"generateClaudeGlobalExtras");});var hh,yh,Ih,Sh=f(()=>{F();Y();ge();gr();hh=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${zs}/${t}`,content:await $(n,{...o,root:false},s)}},"claudeRuleMapper"),yh=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n)),a=Yt(o.allowedTools),l=a.length>0?a:Yt(o["allowed-tools"]);return {destPath:n,toPath:`${da}/${t}`,content:await Q(n,{description:typeof o.description=="string"?o.description:void 0,hasDescription:Object.prototype.hasOwnProperty.call(o,"description"),allowedTools:l,hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},s)}},"claudeCommandMapper"),Ih=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${fa}/${t}`,content:await $t(n,o,s)}},"claudeAgentMapper");});function Rh(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:Ig}))}var _h=f(()=>{he();gr();i(Rh,"lintRules");});var Rx,Ch,_x,Cx,Ea,fm=f(()=>{ch();gr();nn();uh();gh();gm();Sh();_h();Ut();Rx={name:"claude-code",primaryRootInstructionPath:Ur,generateRules:eh,generateCommands:rh,generateAgents:nh,generateSkills:sh,generateMcp:oh,generatePermissions:ih,generateHooks:ah,generateIgnore:lh,importFrom:ba},Ch={rootInstructionPath:Ur,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`}}},_x={rootInstructionPath:Ur,skillDir:".claude/skills",renderPrimaryRootInstruction:mh,managedOutputs:{dirs:[".claude/agents",".claude/commands",".claude/rules",".claude/skills",".claude/output-styles",".agents/skills"],files:[".claude/CLAUDE.md",".claude/settings.json",Hs,fr,".claudeignore"]},rewriteGeneratedPath(t){return t===xo?Hs:t},mirrorGlobalPath(t,e){return xt(t,".claude/skills",e)},paths:Ch.paths},Cx={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"native"},Ea={id:"claude-code",generators:Rx,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:Rh,project:Ch,globalSupport:{capabilities:Cx,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:_x,scopeExtras:fh},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Ur,Sg],global:[Ur]},canonicalDir:zs,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[Gs],global:[Gs]},canonicalDir:zs,extensions:[".md"],map:hh}],commands:{feature:"commands",mode:"directory",source:{project:[js],global:[js]},canonicalDir:da,extensions:[".md"],map:yh},agents:{feature:"agents",mode:"directory",source:{project:[Us],global:[Us]},canonicalDir:fa,extensions:[".md"],map:Ih},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[xo],global:[Hs]},canonicalDir:".agentsmesh",canonicalFilename:Vs},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Ks],global:[Ks]},canonicalDir:".agentsmesh",canonicalFilename:Rg}},buildImportPaths:Wc,detectionPaths:["CLAUDE.md",".claude/rules",".claude/commands"]};});function wx(t){let e=basename(t,".md");return e==="_root"?"root":e}function kh(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n=r.body.trim()?r.body:"";e.push({path:Br,content:n});}for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("cline"))continue;let o=wx(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?N(s,n.body.trim()||""):n.body.trim()||"";e.push({path:`${hr}/${o}.md`,content:a});}return e}function wh(t){return t.commands.map(e=>{let r=e.description.trim(),n=e.body.trim(),o=r&&n?`${r}
|
|
103
55
|
|
|
104
|
-
${n}`:r||n;return {path:`${
|
|
105
|
-
`);return [{path:
|
|
106
|
-
`)}
|
|
56
|
+
${n}`:r||n;return {path:`${Ue}/${e.name}.md`,content:o}})}function Oh(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
57
|
+
`);return [{path:xn,content:e}]}function Eh(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=JSON.stringify({mcpServers:t.mcp.mcpServers},null,2);return [{path:yr,content:e}]}function bh(t){return t.agents.map(e=>({path:`${It}/${Lt(e.name)}/SKILL.md`,content:ma(e)}))}function Ox(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function Ex(t,e,r){return ["#!/usr/bin/env bash",`# agentsmesh-event: ${t}`,`# agentsmesh-matcher: ${r}`,`# agentsmesh-command: ${e}`,"set -e",e,""].join(`
|
|
58
|
+
`)}function xh(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)lr(s)&&(e.push({path:`${Pn}/${Ox(r)}-${o}.sh`,content:Ex(r,s.command,s.matcher)}),o++);}return e}function Ph(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=N(n,r.body.trim()||"");e.push({path:`${It}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${It}/${r.name}/${a}`,content:s.content});}}return e}var Ah=f(()=>{le();F();Xt();Zt();i(wx,"ruleSlug");i(kh,"generateRules");i(wh,"generateCommands");i(Oh,"generateIgnore");i(Eh,"generateMcp");i(bh,"generateAgents");i(Ox,"safeEventName");i(Ex,"buildHookScript");i(xh,"generateHooks");i(Ph,"generateSkills");});async function Lh(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=pr(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:`${Kr}/${n}`,feature:"rules",content:await $(o,c,a)}}async function Nh(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
59
|
|
|
108
60
|
`);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:
|
|
61
|
+
`)&&(l=p,c=true,m=s.slice(u+2));}}return {destPath:n,toPath:`${ga}/${t}`,feature:"commands",content:await Q(n,{description:l,hasDescription:c,allowedTools:[],hasAllowedTools:Object.prototype.hasOwnProperty.call(o,"allowedTools")||Object.prototype.hasOwnProperty.call(o,"allowed-tools")},m)}}var hm=f(()=>{F();Y();ge();Zt();i(Lh,"mapClineRuleFile");i(Nh,"mapClineWorkflowFile");});async function Dh(t,e,r){let n=join(t,Kr),o=join(t,hr),s=join(t,hr),a=false;try{a=(await stat(s)).isFile();}catch{}if(a){let u=await S(s);if(u!==null){await k(n);let p=join(n,"_root.md"),{frontmatter:d,body:g}=w(r(u,s,p)),C=d.root===true?d:{...d,root:true},_=await $(p,C,g);await R(p,_),e.push({fromTool:"cline",fromPath:s,toPath:`${Kr}/_root.md`,feature:"rules"});}return a}let l=null,c=join(o,"_root.md"),m=await S(c);if(m===null){let u=join(t,Br),p=await S(u);if(p!==null){l=u,await k(n);let d=join(n,"_root.md"),{frontmatter:g,body:h}=w(r(p,u,d)),_=g.root===true?g:{...g,root:true},y=await $(d,_,h);await R(d,y),e.push({fromTool:"cline",fromPath:u,toPath:`${Kr}/_root.md`,feature:"rules"});}else {let h=(await P(o)).filter(C=>C.endsWith(".md")&&!C.includes("/workflows/")).sort()[0];if(h){let C=await S(h);if(C!==null){l=h,await k(n);let _=join(n,"_root.md"),{frontmatter:y,body:O}=w(r(C,h,_)),E=y.root===true?y:{...y,root:true},x=await $(_,E,O);await R(_,x),e.push({fromTool:"cline",fromPath:h,toPath:`${Kr}/_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 R(u,C),e.push({fromTool:"cline",fromPath:c,toPath:`${Kr}/_root.md`,feature:"rules"});}return e.push(...await st({srcDir:o,destDir:n,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:i(async({srcPath:u,relativePath:p,normalizeTo:d})=>u===l?null:Lh(p,n,d),"mapEntry")})),a}var Fh=f(()=>{b();F();Y();$e();hm();Zt();i(Dh,"importClineRules");});function xx(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 vh(t,e){let r=[yr,Cg].map(c=>join(t,c)),n=null,o=null;for(let c of r){let m=await S(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=xx(u);p&&(c[m]=p);}Object.keys(c).length>0&&(await k(join(t,".agentsmesh")),await R(join(t,Hc),JSON.stringify({mcpServers:c},null,2)),e.push({fromTool:Wr,fromPath:s,toPath:Hc,feature:"mcp"}));}}var $h=f(()=>{b();Zt();i(xx,"mapClineServerToCanonical");i(vh,"importClineMcp");});function Mh(t){return Px.some(e=>e.test(t))}var Px,Gh=f(()=>{Px=[/^\./,/^_ab-agent-/,/^_ab-command-/,/\.fixture\./,/\.test\./];i(Mh,"isReservedArtifactName");});async function Tx(t){let e=await P(t).catch(()=>[]),r=[];for(let n of e){let o=relative(t,n).replace(/\\/g,"/"),s=basename(o);if(Mh(s))continue;let a=await S(n);a!==null&&r.push({absolutePath:n,relativePath:o,content:a});}return r}async function Ze(t,e,r){let n=await Tx(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 Le(a,{...c,name:t},m);await R(a,u);}else await R(a,l);r.results.push({fromTool:r.targetName,fromPath:s.absolutePath,toPath:`${r.destCanonicalSkillsDir}/${t}/${s.relativePath}`,feature:"skills"});}}async function Uh(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 Le(s,{...l,name:t},c);await R(s,m),n.results.push({fromTool:n.targetName,fromPath:e,toPath:`${n.destCanonicalSkillsDir}/${t}/SKILL.md`,feature:"skills"});}async function on(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}var Uo=f(()=>{b();F();Y();Gh();i(Tx,"readNativeSkill");i(Ze,"importDirectorySkill");i(Uh,"importFlatSkill");i(on,"findDirectorySkills");});async function Wh(t,e,r,n=It){let o=join(t,n),s=await on(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:kg,targetName:"cline",normalize:r,results:e};for(let[l,c]of s){let m=join(c,"SKILL.md"),u=await S(m);if(!u)continue;let p=w(u),d=jr(p.frontmatter,l);if(d){let g=join(t,zc);await k(g);let h=join(g,`${d.name}.md`);await R(h,je(d,r(p.body,m,h))),e.push({fromTool:"cline",fromPath:m,toPath:`${zc}/${d.name}.md`,feature:"agents"});continue}await Ze(l,c,a);}}var Bh=f(()=>{b();F();Xt();Uo();Zt();i(Wh,"importClineSkills");});function Sm(t,e){return t.match(new RegExp(`^# agentsmesh-${e}:\\s*(.+)$`,"m"))?.[1]?.trim()??null}async function Kh(t,e){let n=(await P(t).catch(()=>[])).filter(o=>basename(o).endsWith(".sh")&&dirname(o)===t);for(let o of n){let s=await S(o);if(!s)continue;let a=Sm(s,"event"),l=Sm(s,"command");if(!a||!l)continue;let c=Sm(s,"matcher")??"*";e[a]||(e[a]=[]),e[a].push({matcher:c,command:l});}}async function zh(t,e){let r={};if(await Kh(join(t,Pn),r),await Kh(join(t,Ln),r),Object.keys(r).length===0)return;let n=join(t,Bc);await k(dirname(n)),await R(n,stringify(r)),e.push({fromTool:Wr,fromPath:join(t,Ln),toPath:Bc,feature:"hooks"});}var Vh=f(()=>{b();Zt();i(Sm,"extractMeta");i(Kh,"loadHooksFromDir");i(zh,"importClineHooks");});async function Ta(t){let e=[],r=await H(Wr,t),n=await Dh(t,e,r),o=join(t,xn),s=await S(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,Kc);await R(m,c.join(`
|
|
62
|
+
`)),e.push({fromTool:"cline",fromPath:o,toPath:Kc,feature:"ignore"});}}await vh(t,e);let a=join(t,ga);return n||e.push(...await st({srcDir:join(t,Ue),destDir:a,extensions:[".md"],fromTool:"cline",normalize:r,mapEntry:i(({relativePath:l,normalizeTo:c})=>Nh(l,a,c),"mapEntry")})),await Wh(t,e,r),await zh(t,e),e}var Rm=f(()=>{bt();b();$e();hm();Fh();Zt();$h();Bh();Vh();i(Ta,"importFromCline");});function Jh(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:Wr}))}var Yh=f(()=>{he();Zt();i(Jh,"lintRules");});function V(t,e,r){return {level:"warning",file:t,target:e,message:r}}function Dx(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 Wo(t,e,r,n){let o=n?.unsupportedBy??e,s=Dx(r);return V(".agentsmesh/hooks.yaml",e,`${t} is not supported by ${o}; only ${s} are projected.`)}var Wt=f(()=>{i(V,"createWarning");i(Dx,"formatOxfordComma");i(Wo,"createUnsupportedHookWarning");});function Xh(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>V(e.source,"cline","cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function Zh(t){return t.hooks?Object.values(t.hooks).some(r=>Array.isArray(r)&&r.length>0)?[V(".agentsmesh/hooks.yaml","cline","cline hooks are emitted as .clinerules/hooks/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")]:[]:[]}var qh=f(()=>{Wt();i(Xh,"lintCommands");i(Zh,"lintHooks");});var Fx,vx,$x,Mx,Qh,ty=f(()=>{Ah();Cn();Zt();Rm();Yh();qh();Ut();yo();Xt();Fx={name:"cline",primaryRootInstructionPath:Br,generateRules:kh,generateCommands:wh,generateAgents:bh,generateSkills:Ph,generateMcp:Eh,generateHooks:xh,generateIgnore:Oh,importFrom:Ta},vx={rootInstructionPath:Br,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 `${hr}/${t}.md`},commandPath(t,e){return `${Ue}/${t}.md`},agentPath(t,e){return ce(e,"cline")?`.cline/skills/${Lt(t)}/SKILL.md`:null}}},$x={skillDir:It,managedOutputs:{dirs:[An,Tn,Ln,It,".agents/skills"],files:[yr,xn]},rewriteGeneratedPath(t){return t===Br?null:t.startsWith(`${Pn}/`)?`${Ln}/${t.slice(Pn.length+1)}`:t.startsWith(`${Ue}/`)?`${Tn}/${t.slice(Ue.length+1)}`:t.startsWith(`${hr}/`)?`${An}/${t.slice(hr.length+1)}`:t},mirrorGlobalPath(t,e){return t.startsWith(`${It}/`)?`.agents/skills/${t.slice(It.length+1)}`:null},paths:{rulePath(t,e){return `${An}/${t}.md`},commandPath(t,e){return `${Tn}/${t}.md`},agentPath(t,e){return ce(e,"cline")?`.cline/skills/${Lt(t)}/SKILL.md`:null}}},Mx={rules:"native",additionalRules:"native",commands:ue("native","workflows"),agents:"embedded",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},Qh={id:"cline",generators:Fx,capabilities:{rules:"native",additionalRules:"native",commands:ue("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:Jh,lint:{commands:Xh,hooks:Zh},project:vx,globalSupport:{capabilities:Mx,detectionPaths:[An,Tn,Ln,It,yr,xn],layout:$x},buildImportPaths:Vc,detectionPaths:[".clinerules",".cline"]};});var St,ey,wr,Wn,ry,Oe,ny,La,Bn,qe,Kn,Or,_m,Bo,di,Cm,oy,km,sy,iy,wm,Om,Em,wt=f(()=>{St="codex-cli",ey="codex.md",wr="AGENTS.md",Wn=".codex/AGENTS.md",ry=".codex/AGENTS.override.md",Oe=".agents/skills",ny=".codex/skills",La=".codex/config.toml",Bn=".codex/instructions",qe=".codex/rules",Kn=".codex/agents",Or=".agentsmesh/rules",_m=".agentsmesh/commands",Bo=".agentsmesh/agents",di=".agentsmesh/skills",Cm=".agentsmesh/mcp.json",oy="am-codex-rule:v1",km="# am-json: ",sy="# am-body-b64-begin",iy="# am-body-b64-end",wm="# am64:",Om="<!-- agentsmesh:codex-rule-index:start -->",Em="<!-- agentsmesh:codex-rule-index:end -->";});function bm(t){return basename(t,".md")}function fi(t){return `${Bn}/${bm(t.source)}.md`}function ay(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];}),N(e,t.body.trim()||"")}function jx(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 \`${qe}/${bm(t.source)}.rules\`.`),t.targets.length>0&&e.push(`Targeted to ${t.targets.map(r=>`\`${r}\``).join(", ")}.`),e.join(" ")}function ly(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||bm(a.source)}](${fi(a)}): ${jx(a)}`),s=[Om,"## Additional Rule Files",...o,Em].join(`
|
|
111
63
|
`);return r?`${r}
|
|
112
64
|
|
|
113
|
-
${s}`:s}
|
|
114
|
-
`).trim()}i(
|
|
65
|
+
${s}`:s}function cy(t){let e=Om.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=Em.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return t.replace(new RegExp(`\\n?${e}[\\s\\S]*?${r}\\n?`,"g"),`
|
|
66
|
+
`).trim()}var Na=f(()=>{F();wt();i(bm,"ruleSlug");i(fi,"codexInstructionMirrorPath");i(ay,"serializeCodexInstructionMirror");i(jx,"summarizeRule");i(ly,"appendCodexRuleIndex");i(cy,"stripCodexRuleIndex");});function Wx(t){return /(^|\n)\s*[A-Za-z_][A-Za-z0-9_]*\s*\(/.test(t)}function Bx(t){return t.split(`
|
|
115
67
|
`).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.","#",...
|
|
68
|
+
`)}function Kx(t){let e=t.trim();return e?Wx(e)?`${e}
|
|
69
|
+
`:`${["# 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.","#",...Bx(e).split(`
|
|
118
70
|
`),"#","# Example template:","# prefix_rule(",'# pattern = ["git", "status"],','# decision = "allow",','# justification = "Allow safe status checks",',"# )"].join(`
|
|
119
71
|
`)}
|
|
120
|
-
`:""}
|
|
72
|
+
`:""}function xm(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:wr,content:ly(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:`${qe}/${o}.rules`,content:Kx(n.body)}),r.push({path:fi(n),content:ay(n)}));}return r}function Pm(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 pe(e?.body.trim()??"",r)}var my=f(()=>{Gr();wt();Na();i(Wx,"looksLikeCodexRulesDsl");i(Bx,"toCodexRulesComments");i(Kx,"toSafeCodexRulesContent");i(xm,"generateRules");i(Pm,"renderCodexGlobalInstructions");});function Am(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=N(n,r.body.trim()||"");e.push({path:`${Oe}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${Oe}/${r.name}/${a}`,content:s.content});}}return e}function Hx(t){return {path:`${Oe}/${Eo(t.name)}/SKILL.md`,content:ug(t)}}function Tm(t){return t.commands.map(Hx)}var uy=f(()=>{F();wt();vs();i(Am,"generateSkills");i(Hx,"commandToSkillOutput");i(Tm,"generateCommands");});function Lm(t){return t.agents.map(e=>({path:`${Kn}/${e.name}.toml`,content:zx(e)}))}function zx(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
73
|
${n}
|
|
122
74
|
"""`);}else e.push(`developer_instructions = '''
|
|
123
75
|
${r}
|
|
124
76
|
'''`);return e.join(`
|
|
125
77
|
`)+`
|
|
126
|
-
`}i(
|
|
78
|
+
`}var py=f(()=>{wt();i(Lm,"generateAgents");i(zx,"serializeAgentToCodexToml");});function Da(t){return "command"in t}function dy(t){return "url"in t}var Fa=f(()=>{i(Da,"isStdioMcpServer");i(dy,"isUrlMcpServer");});function Nm(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=Object.fromEntries(Object.entries(t.mcp.mcpServers).flatMap(([n,o])=>Da(o)?[[n,o]]:[]));if(Object.keys(e).length===0)return [];let r=Vx(e);return [{path:La,content:r}]}function Vx(t){let e=[];for(let[r,n]of Object.entries(t)){let o=fy(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])=>`${fy(m)?JSON.stringify(m):m} = ${JSON.stringify(u)}`).join(", ");s.push(`env = { ${c} }`);}e.push(s.join(`
|
|
127
79
|
`));}return e.join(`
|
|
128
80
|
|
|
129
81
|
`)+`
|
|
130
|
-
`}
|
|
131
|
-
`).find(c=>c.startsWith(
|
|
132
|
-
`)){let m=c.trimEnd();if(m===Lh){l=true;continue}if(m===Nh){l=false;continue}l&&m.startsWith(lm)&&a.push(m.slice(lm.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}}i(Uh,"tryParseEmbeddedCanonicalFromCodexRules");async function Bh(t,e,r){let n=[],o=join(t,Ue);try{let s=await P(o),a=s.filter(c=>c.endsWith(".md"));for(let c of a){let m=await h(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 R(e);let g=d.root===!0?d:{...d,root:!1},I=await D(p,g,f);await _(p,I),n.push({fromTool:ut,fromPath:c,toPath:`${fr}/${u}`,feature:"rules"});}let l=s.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await h(c);if(!m)continue;let u=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),p=join(e,u);await R(e);let d=Uh(m);if(d){let f=await D(p,{description:d.meta.description,globs:d.meta.globs,root:!1},r(d.body,c,p));await _(p,f);}else {let f=await D(p,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,p));await _(p,f);}n.push({fromTool:ut,fromPath:c,toPath:`${fr}/${u}`,feature:"rules"});}}catch{}return n}i(Bh,"importCodexNonRootRuleFiles");async function Hh(t,e,r,n,o){let s=join(t,xh),a=join(t,dr),l=join(t,Ah),c=join(t,Pn),m=o==="global"?await h(l):null,u=o==="global"?await h(c):null,p=o==="project"?await h(a):null,d=o==="project"?await h(s):null,f=m!==null?l:u!==null?c:p!==null?a:s,g=join(t,fr),I=m??u??p??d;if(I!==null){await R(g);let S=join(g,"_root.md"),y=f===a||f===c||f===l?vh(I):I,k=await Ne({content:y,projectRoot:t,rulesDir:fr,sourcePath:f,fromTool:"codex-cli",normalize:r});e.push(...k.results);let E=r(f===a||f===c||f===l?n(k.rootContent,f,S):k.rootContent,f,S),{frontmatter:O,body:x}=w(E),U=O.root===true?O:{...O,root:true},F=await D(S,U,x);await _(S,F),e.push({fromTool:"codex-cli",fromPath:f,toPath:`${fr}/_root.md`,feature:"rules"});}await rE(t,g,e,r),e.push(...await Bh(t,g,r)),o!=="global"&&e.push(...await M({srcDir:t,destDir:g,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:i(async({srcPath:S,normalizeTo:y})=>{let k=relative(t,dirname(S)).replace(/\\/g,"/"),E=S.endsWith("/AGENTS.override.md");if(!k||k==="."||!E&&!S.endsWith("/AGENTS.md"))return null;let O=k.replace(/\//g,"-");if(!Ra(k))return await gr(join(g,`${O}.md`)),null;let x=join(g,`${O}.md`),{frontmatter:U,body:F}=w(y(x));return {destPath:x,toPath:`${fr}/${O}.md`,feature:"rules",content:await D(x,{...U,root:false,globs:[`${k}/**`],...E?{codex_instruction:"override"}:{}},F)}},"mapEntry")}));}i(Hh,"importCodexRules");async function rE(t,e,r,n){try{let s=(await P(join(t,xn))).filter(l=>l.endsWith(".md")),a=join(t,xn);for(let l of s){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await h(l);if(!m)continue;let u=join(e,c),{frontmatter:p,body:d}=w(n(m,l,u));await R(e);let f=p.root===!0?p:{...p,root:!1},g=await D(u,f,d);await _(u,g),r.push({fromTool:ut,fromPath:l,toPath:`${fr}/${c}`,feature:"rules"});}}catch{}}i(rE,"importInstructionMirrors");async function ka(t,e){let r=e?.scope??"project",n=[],o=await K(ut,t,r),s=await K("windsurf",t,r);return await Hh(t,n,o,s,r),await Gh(t,n,o),await jh(t,n,o),await Mh(t,n),n}i(ka,"importFromCodex");function zh(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:ut,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}i(zh,"lintRules");function Vh(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(Q(".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(Q(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return e}i(Vh,"lintMcp");function Jh(t){return Ms(t)}i(Jh,"codexAdvisoryInstructionPath");var oE={name:"codex-cli",primaryRootInstructionPath:dr,generateRules:pm,generateCommands:gm,generateAgents:hm,generateSkills:fm,generateMcp:ym,importFrom:ka},Cm={rootInstructionPath:dr,skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return Jh(e)},commandPath(t,e){return Jn(e,"codex-cli")?`${me}/${Zn(t)}/SKILL.md`:null},agentPath(t,e){return `${An}/${t}.toml`}}},sE={rootInstructionPath:Pn,renderPrimaryRootInstruction:dm,skillDir:me,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Pn,".codex/config.toml"]},rewriteGeneratedPath(t){return t===dr?Pn:t.startsWith(`${xn}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${Ue}/${t}.rules`:Pn},commandPath(t,e){return Jn(e,"codex-cli")?`${me}/${Zn(t)}/SKILL.md`:null},agentPath(t,e){return `${An}/${t}.toml`}}},iE={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Yh={id:"codex-cli",generators:oE,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:zh,lint:{mcp:Vh},project:Cm,globalSupport:{capabilities:iE,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:sE},skillDir:Cm.skillDir,paths:Cm.paths,buildImportPaths:$l,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"]};var Be="windsurf",Rm=".windsurfrules",Ur=".windsurf/rules",Xh=".windsurfignore",Eo=".codeiumignore",hr="AGENTS.md",Po=".windsurf/hooks.json",xo=".windsurf/mcp_config.example.json",Zh=".windsurf/mcp_config.json",Wr=".windsurf/workflows",pe=".windsurf/skills",Ao=".agentsmesh/rules",km=".agentsmesh/commands",wm=".agentsmesh/agents",Om=".agentsmesh/skills",Em=".agentsmesh/ignore",Pm=".agentsmesh/hooks.yaml",xm=".agentsmesh/mcp.json",bo=".codeium/windsurf/memories/global_rules.md",To=".codeium/windsurf/skills",Gs=".codeium/windsurf/global_workflows",wa=".codeium/windsurf/hooks.json",Oa=".codeium/windsurf/mcp_config.json",Ea=".codeium/.codeiumignore",qh=".agents/skills";function lE(t){let e=basename(t,".md");return e==="_root"?"root":e}i(lE,"ruleSlug");function cE(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(cE,"directoryScopedRuleDir");function Am(t){let e=[],r=t.rules.find(n=>n.root);if(!r)return [];e.push({path:hr,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=lE(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?L(a,n.body.trim()||""):n.body.trim()||"";e.push({path:`${Ur}/${o}.md`,content:l});let c=cE(n.globs);c&&(c!==o&&e.push({path:`${Ur}/${c}.md`,content:l}),e.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return e}i(Am,"generateRules");function bm(t){return !t.ignore||t.ignore.length===0?[]:[{path:Eo,content:t.ignore.join(`
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
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
|
-
|
|
82
|
+
`}function fy(t){return !/^[A-Za-z0-9_-]+$/.test(t)}var gy=f(()=>{Fa();wt();i(Nm,"generateMcp");i(Vx,"serializeMcpToToml");i(fy,"needsTomlQuoting");});var hy=f(()=>{my();uy();py();gy();});var yy=f(()=>{hy();});function Yx(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 Iy(t,e){let r=join(t,La),n=await S(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=Yx(c);m&&(a[l]=m);}Object.keys(a).length!==0&&(await k(join(t,".agentsmesh")),await R(join(t,Cm),JSON.stringify({mcpServers:a},null,2)),e.push({fromTool:St,fromPath:r,toPath:Cm,feature:"mcp"}));}var Sy=f(()=>{b();wt();i(Yx,"mapTomlServerToCanonical");i(Iy,"importMcp");});function va(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 Er(t){await rm$1(t,{recursive:true,force:true});}var gi=f(()=>{i(va,"shouldImportScopedAgentsRule");i(Er,"removePathIfExists");});async function Ry(t,e,r){let n={projectRoot:t,sourceSkillsDir:Oe,destCanonicalSkillsDir:di,targetName:St,normalize:r,results:e};for(let o of [Oe,ny]){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 S(u);if(!p)continue;l=true;let d=c.name,g=join(t,di,d,"SKILL.md"),h=r(p,u,g),{frontmatter:C,body:_}=w(h),y=pg(C,c.name);if(y){await Er(join(t,di,d));let D=join(t,_m);await k(D);let E=join(D,`${y.name}.md`);await R(E,dg(y,r(_,u,E))),e.push({fromTool:St,fromPath:u,toPath:`${_m}/${y.name}.md`,feature:"commands"});continue}let O=jr(C,c.name);if(O){await Er(join(t,di,d));let D=join(t,Bo);await k(D);let E=join(D,`${O.name}.md`);await R(E,je(O,r(_,u,E))),e.push({fromTool:St,fromPath:u,toPath:`${Bo}/${O.name}.md`,feature:"agents"});continue}await Ze(d,m,n);}if(l)return}}var _y=f(()=>{b();F();vs();Xt();gi();Uo();wt();i(Ry,"importSkills");});async function Cy(t,e,r){let n=join(t,Kn),o=join(t,Bo);try{let a=(await P(n)).filter(l=>l.endsWith(".toml"));for(let l of a){let c=await S(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():"",g=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":"",_=Array.isArray(m.mcp_servers)?m.mcp_servers.filter(x=>typeof x=="string"):[];await k(o);let y=join(o,`${u}.md`),O=r(d,l,y),E=je({name:u,description:p,tools:[],disallowedTools:[],model:g,permissionMode:C,maxTurns:0,mcpServers:_,hooks:{},skills:[],memory:""},O);await R(y,E),e.push({fromTool:St,fromPath:l,toPath:`${Bo}/${u}.md`,feature:"agents"});}}catch{}}var ky=f(()=>{b();Xt();wt();i(Cy,"importCodexAgentsFromToml");});function wy(t){if(!t.includes(oy))return null;let e=t.split(`
|
|
83
|
+
`).find(c=>c.startsWith(km));if(!e)return null;let r;try{r=JSON.parse(e.slice(km.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(`
|
|
84
|
+
`)){let m=c.trimEnd();if(m===sy){l=true;continue}if(m===iy){l=false;continue}l&&m.startsWith(wm)&&a.push(m.slice(wm.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 Oy=f(()=>{wt();i(wy,"tryParseEmbeddedCanonicalFromCodexRules");});async function by(t,e,r){let n=[],o=join(t,qe);try{let s=await P(o),a=s.filter(c=>c.endsWith(".md"));for(let c of a){let m=await S(c);if(!m)continue;let u=relative(o,c).replace(/\\/g,"/"),p=join(e,u),{frontmatter:d,body:g}=w(r(m,c,p));await k(e);let h=d.root===!0?d:{...d,root:!1},C=await $(p,h,g);await R(p,C),n.push({fromTool:St,fromPath:c,toPath:`${Or}/${u}`,feature:"rules"});}let l=s.filter(c=>c.endsWith(".rules"));for(let c of l){let m=await S(c);if(!m)continue;let u=relative(o,c).replace(/\\/g,"/").replace(/\.rules$/i,".md"),p=join(e,u);await k(e);let d=wy(m);if(d){let g=await $(p,{description:d.meta.description,globs:d.meta.globs,root:!1},r(d.body,c,p));await R(p,g);}else {let g=await $(p,{root:!1,description:"",globs:[],codex_emit:"execution"},r(m.trim(),c,p));await R(p,g);}n.push({fromTool:St,fromPath:c,toPath:`${Or}/${u}`,feature:"rules"});}}catch{}return n}var xy=f(()=>{b();F();Y();wt();Oy();i(by,"importCodexNonRootRuleFiles");});async function Ay(t,e,r,n,o){let s=join(t,ey),a=join(t,wr),l=join(t,ry),c=join(t,Wn),m=o==="global"?await S(l):null,u=o==="global"?await S(c):null,p=o==="project"?await S(a):null,d=o==="project"?await S(s):null,g=m!==null?l:u!==null?c:p!==null?a:s,h=join(t,Or),C=m??u??p??d;if(C!==null){await k(h);let _=join(h,"_root.md"),y=g===a||g===c||g===l?cy(C):C,O=await Ge({content:y,projectRoot:t,rulesDir:Or,sourcePath:g,fromTool:"codex-cli",normalize:r});e.push(...O.results);let D=r(g===a||g===c||g===l?n(O.rootContent,g,_):O.rootContent,g,_),{frontmatter:E,body:x}=w(D),K=E.root===true?E:{...E,root:true},M=await $(_,K,x);await R(_,M),e.push({fromTool:"codex-cli",fromPath:g,toPath:`${Or}/_root.md`,feature:"rules"});}await nP(t,h,e,r),e.push(...await by(t,h,r)),o!=="global"&&e.push(...await st({srcDir:t,destDir:h,extensions:["AGENTS.md","AGENTS.override.md"],fromTool:"codex-cli",normalize:r,mapEntry:i(async({srcPath:_,normalizeTo:y})=>{let O=relative(t,dirname(_)).replace(/\\/g,"/"),D=basename(_),E=D==="AGENTS.override.md";if(!O||O==="."||!E&&D!=="AGENTS.md")return null;let x=O.replace(/\//g,"-");if(!va(O))return await Er(join(h,`${x}.md`)),null;let K=join(h,`${x}.md`),{frontmatter:M,body:W}=w(y(K));return {destPath:K,toPath:`${Or}/${x}.md`,feature:"rules",content:await $(K,{...M,root:false,globs:[`${O}/**`],...E?{codex_instruction:"override"}:{}},W)}},"mapEntry")}));}async function nP(t,e,r,n){try{let s=(await P(join(t,Bn))).filter(l=>l.endsWith(".md")),a=join(t,Bn);for(let l of s){let c=relative(a,l).replace(/\\/g,"/");if(c==="_root.md")continue;let m=await S(l);if(!m)continue;let u=join(e,c),{frontmatter:p,body:d}=w(n(m,l,u));await k(e);let g=p.root===!0?p:{...p,root:!1},h=await $(u,g,d);await R(u,h),r.push({fromTool:St,fromPath:l,toPath:`${Or}/${c}`,feature:"rules"});}}catch{}}var Ty=f(()=>{b();F();Y();wo();$e();gi();wt();xy();Na();i(Ay,"importCodexRules");i(nP,"importInstructionMirrors");});async function $a(t,e){let r=e?.scope??"project",n=[],o=await H(St,t,r),s=await H("windsurf",t,r);return await Ay(t,n,o,s,r),await Ry(t,n,o),await Cy(t,n,o),await Iy(t,n),n}var $m=f(()=>{bt();wt();Sy();_y();ky();Ty();i($a,"importFromCodex");});function Ly(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:St,message:"Codex needs a root rule to generate AGENTS.md. Add root: true to a rule."}]}var Ny=f(()=>{wt();i(Ly,"lintRules");});function Dy(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(V(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" has a description, but codex-cli does not project MCP descriptions into .codex/config.toml.`)),"url"in n||"type"in n){let o="type"in n?n.type:"url";e.push(V(".agentsmesh/mcp.json","codex-cli",`MCP server "${r}" uses ${o} transport; codex-cli only generates stdio MCP servers.`));}return e}var Fy=f(()=>{Wt();i(Dy,"lintMcp");});function vy(t){return fi(t)}var $y=f(()=>{Na();i(vy,"codexAdvisoryInstructionPath");});var sP,iP,aP,lP,Gy,jy=f(()=>{yy();wt();$m();Ny();Fy();Ut();yo();$y();vs();sP={name:"codex-cli",primaryRootInstructionPath:wr,generateRules:xm,generateCommands:Tm,generateAgents:Lm,generateSkills:Am,generateMcp:Nm,importFrom:$a},iP={rootInstructionPath:wr,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${qe}/${e}.rules`]},skillDir:".agents/skills",managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/instructions"],files:["AGENTS.md",".codex/config.toml"]},paths:{rulePath(t,e){return vy(e)},commandPath(t,e){return xs(e,"codex-cli")?`${Oe}/${Eo(t)}/SKILL.md`:null},agentPath(t,e){return `${Kn}/${t}.toml`}}},aP={rootInstructionPath:Wn,renderPrimaryRootInstruction:Pm,extraRuleOutputPaths(t){if(t.root||t.codexEmit!=="execution")return [];let e=basename(t.source,".md");return [`${qe}/${e}.rules`]},skillDir:Oe,managedOutputs:{dirs:[".agents/skills",".codex/agents",".codex/rules"],files:[Wn,".codex/config.toml"]},rewriteGeneratedPath(t){return t===wr?Wn:t.startsWith(`${Bn}/`)?null:t},paths:{rulePath(t,e){return e.codexEmit==="execution"?`${qe}/${t}.rules`:Wn},commandPath(t,e){return xs(e,"codex-cli")?`${Oe}/${Eo(t)}/SKILL.md`:null},agentPath(t,e){return `${Kn}/${t}.toml`}}},lP={rules:"native",additionalRules:"embedded",commands:"embedded",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},Gy={id:"codex-cli",generators:sP,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:Ly,lint:{mcp:Dy},project:iP,globalSupport:{capabilities:lP,detectionPaths:[".codex/AGENTS.md",".codex/AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules",".agents/skills"],layout:aP},buildImportPaths:Jc,sharedArtifacts:{".agents/skills/":"owner"},detectionPaths:["codex.md","AGENTS.md","AGENTS.override.md",".codex/config.toml",".codex/agents",".codex/rules"]};});function mP(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 Uy(t){return `${We}/${t}.md`}function Wy(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"],N(e,t.body.trim()||"")}function By(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:mP(t["x-agentsmesh-allowed-tools"])}}function Ky(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"],N(r,e.trim()||"")}var Ma=f(()=>{F();Ke();i(mP,"toStringArray");i(Uy,"continueCommandRulePath");i(Wy,"serializeCommandRule");i(By,"parseCommandRuleFrontmatter");i(Ky,"serializeImportedCommand");});function Hy(t){let e=[],r=t.rules.find(n=>n.root);if(r){let n={};r.description&&(n.description=r.description),e.push({path:Ir,content:N(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:`${ye}/${o}.md`,content:N(s,n.body.trim()||"")});}return e}function zy(t){return t.commands.map(e=>({path:`${We}/${e.name}.md`,content:Wy(e)}))}function Vy(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:ha,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function Jy(t){return Ne(t,Be)}var Yy=f(()=>{de();F();Ma();Ke();i(Hy,"generateRules");i(zy,"generateCommands");i(Vy,"generateMcp");i(Jy,"generateSkills");});function dP(t,e){let n=(e===".json"?JSON.parse(t):parse(t)??{}).mcpServers;if(!n||typeof n!="object"||Array.isArray(n))return {};let o={};for(let[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:Co(l.args),env:ko(l.env),description:typeof l.description=="string"?l.description:void 0});}return o}async function fP(t,e){let r=(await P(join(t,Yc))).filter(s=>[".json",".yaml",".yml"].includes(extname(s))),n={},o=[];for(let s of r){let a=await S(s);a&&(Object.assign(n,dP(a,extname(s))),o.push(s));}if(Object.keys(n).length!==0){await R(join(t,Zc),JSON.stringify({mcpServers:n},null,2));for(let s of o)e.push({fromTool:Po,fromPath:s,toPath:Zc,feature:"mcp"});}}async function Ga(t){let e=[],r=await H(Po,t);return e.push(...await gt(ja,t,"project",{normalize:r})),await De(t,Be,Po,e,r),await fP(t,e),e}var Mm=f(()=>{bt();b();de();Me();ge();Ke();Gm();i(dP,"readMcpServers");i(fP,"importMcp");i(Ga,"importFromContinue");});function gP(t){return t==="general.md"||t==="_root.md"}var qy,Qy,tI=f(()=>{F();Y();Ma();Ke();i(gP,"isContinueRootRulePath");qy=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=gP(t),o=n?"_root.md":t,s=join(r,o),{frontmatter:a,body:l}=w(e(s)),c={description:typeof a.description=="string"?a.description:void 0,globs:Array.isArray(a.globs)?a.globs:void 0,root:n};return c.description===void 0&&delete c.description,c.globs===void 0&&delete c.globs,{destPath:s,toPath:`${ya}/${o}`,content:await $(s,c,l)}},"continueRuleMapper"),Qy=i(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=join(n,e),{frontmatter:s,body:a}=w(r(o)),l=By(s,t),c=l.name||e.replace(/\.md$/,"").replace(/^.*\//,""),m=e.includes("/")?e.slice(0,e.lastIndexOf("/")):"",u=m?`${m}/${c}.md`:`${c}.md`,p=join(n,u),d=await Q(p,{description:l.description,hasDescription:!!l.description,allowedTools:l.allowedTools,hasAllowedTools:l.allowedTools.length>0},w(Ky(l,a)).body);return {destPath:p,toPath:`${Ia}/${u}`,content:d}},"continueCommandMapper");});function eI(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Po}))}var rI=f(()=>{he();Ke();i(eI,"lintRules");});function nI(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>V(e.source,"continue","Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata."))}var oI=f(()=>{Wt();i(nI,"lintCommands");});function SP(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var sI,iI=f(()=>{b();Ke();i(SP,"computeStatus");sI=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,g])=>({name:d,...g})));}let m=stringify(c),u=await S(join(e,Js));return [{target:"continue",path:Js,content:m,currentContent:u??void 0,status:SP(u,m)}]},"generateContinueGlobalConfig");});function _P(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var aI,lI=f(()=>{b();Ke();iI();i(_P,"computeStatus");aI=i(async(t,e,r,n)=>{let o=await sI(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 S(join(e,Ao));return [...o,{target:"continue",path:Ao,content:a,currentContent:l??void 0,status:_P(l,a)}]},"generateContinueScopeExtras");});var CP,kP,wP,OP,ja,Gm=f(()=>{Yy();Ke();Mm();tI();rI();oI();Ma();Ut();lI();CP={name:"continue",primaryRootInstructionPath:Ir,generateRules:Hy,generateCommands:zy,generateSkills:Jy,generateMcp:Vy,importFrom:Ga},kP={rootInstructionPath:Ir,skillDir:".continue/skills",managedOutputs:{dirs:[".continue/prompts",".continue/rules",".continue/skills"],files:[".continue/mcpServers/agentsmesh.json"]},paths:{rulePath(t,e){return `${ye}/${t}.md`},commandPath(t,e){return Uy(t)},agentPath(t,e){return null}}},wP={rootInstructionPath:Ir,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Ao]}],skillDir:Be,managedOutputs:{dirs:[ye,We,Be,".agents/skills"],files:[ha,Ao,Js]},mirrorGlobalPath(t,e){return t.startsWith(`${Be}/`)?`.agents/skills/${t.slice(Be.length+1)}`:null},paths:{rulePath(t,e){return `${ye}/${t}.md`},commandPath(t,e){return `${We}/${t}.md`},agentPath(t,e){return null}}},OP={rules:"native",additionalRules:"native",commands:"native",agents:"none",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},ja={id:"continue",generators:CP,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:eI,lint:{commands:nI},project:kP,globalSupport:{capabilities:OP,detectionPaths:[ye,We,".continue/mcpServers",Be],layout:wP,scopeExtras:aI},importer:{rules:{feature:"rules",mode:"directory",source:{project:[ye],global:[ye]},canonicalDir:ya,extensions:[".md"],map:qy},commands:{feature:"commands",mode:"directory",source:{project:[We],global:[We]},canonicalDir:Ia,extensions:[".md"],map:Qy}},buildImportPaths:qc,detectionPaths:[".continue/rules",".continue/skills",".continue/mcpServers"]};});var br,Hn,cI,zn,sn,tr,er,Vn,Jn,Ua,Wa,mI,Um,uI,an,Ko,xr,Ho,Yn,Wm,Bm,ee=f(()=>{br="copilot",Hn=".github/copilot-instructions.md",cI=".github/copilot",zn=".github/instructions",sn=".github/prompts",tr=".github/hooks",er=".github/skills",Vn=".github/agents",Jn=".agentsmesh/rules",Ua=".agentsmesh/commands",Wa=".agentsmesh/agents",mI=".agentsmesh/skills",Um=".agentsmesh/hooks.yaml",uI=".github/copilot-hooks",an=".copilot/copilot-instructions.md",Ko=".copilot/agents",xr=".copilot/skills",Ho=".copilot/prompts",Yn=".copilot/AGENTS.md",Wm=".claude/skills",Bm=".agents/skills";});function pI(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 `${sn}/${t}.prompt.md`}function dI(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"],N(e,t.body.trim()||"")}function fI(t,e){let n=((typeof t["x-agentsmesh-name"]=="string"?t["x-agentsmesh-name"]:"")||basename(e,".prompt.md")).trim(),o=pI(t["x-agentsmesh-allowed-tools"]),s=o.length>0?o:pI(t.tools);return {name:n,description:typeof t.description=="string"?t.description:"",allowedTools:s}}var Ka=f(()=>{F();ee();i(pI,"toStringArray");i(Ba,"commandPromptPath");i(dI,"serializeCommandPrompt");i(fI,"parseCommandPromptFrontmatter");});function Ha(t){return lr(t)}var Km=f(()=>{le();i(Ha,"hasHookCommand");});function xP(t){let e=basename(t,".md");return e==="_root"?"root":e}function PP(t){switch(t){case "PreToolUse":return "preToolUse";case "PostToolUse":return "postToolUse";case "Notification":return "notification";case "UserPromptSubmit":return "userPromptSubmitted";default:return null}}function gI(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}
|
|
85
|
+
|
|
86
|
+
${o}`):e.push(o);}return e.join(`
|
|
87
|
+
|
|
88
|
+
`)}function hI(t){let e=t.rules.find(n=>n.root),r=[];e&&r.push({path:Hn,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=N(s,n.body.trim()||"");r.push({path:`${zn}/${o}.instructions.md`,content:a});}return r}function yI(t){return t.commands.map(e=>({path:Ba(e.name),content:dI(e)}))}function II(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=N(n,r.body.trim()||"");e.push({path:`${er}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${er}/${r.name}/${a}`,content:s.content});}}return e}function SI(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=N(r,e.body.trim()||"");return {path:`${Vn}/${e.name}.agent.md`,content:n}})}function RI(t){if(!t.hooks)return [];let e=Object.fromEntries(Object.entries(t.hooks).flatMap(([r,n])=>{let o=PP(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:`${tr}/agentsmesh.json`,content:JSON.stringify({version:1,hooks:e},null,2)}]}var _I=f(()=>{F();ee();Ka();Km();i(xP,"ruleSlug");i(PP,"mapHookEvent");i(gI,"renderCopilotGlobalInstructions");i(hI,"generateRules");i(yI,"generateCommands");i(II,"generateSkills");i(SI,"generateAgents");i(RI,"generateHooks");});function TP(t){switch(t){case "preToolUse":return "PreToolUse";case "postToolUse":return "PostToolUse";case "notification":return "Notification";case "userPromptSubmitted":return "UserPromptSubmit";default:return null}}function LP(t){return typeof t!="string"?"*":t.match(/^Matcher:\s*(.+)$/)?.[1]?.trim()||"*"}function wI(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 OI(t,e){let r=join(t,tr),o=(await P(r).catch(()=>[])).filter(u=>u.endsWith(".json")),s={};for(let u of o){let p=await S(u);if(!p)continue;let d;try{d=JSON.parse(p);}catch{continue}if(!(!d||typeof d.hooks!="object"||d.hooks===null))for(let[g,h]of Object.entries(d.hooks)){let C=TP(g);if(!(!C||!Array.isArray(h)))for(let _ of h){if(!_||typeof _!="object")continue;let y=_,O=typeof y.bash=="string"?y.bash:"";if(!O)continue;let D=join(r,O.replace(/^\.\//,"")),E=await S(D);if(!E)continue;let x=wI(E);x&&(s[C]||(s[C]=[]),s[C].push({matcher:LP(y.comment),command:x,type:"command"}));}}}let a=join(t,uI),c=(await P(a).catch(()=>[])).filter(u=>dirname(u)===a&&/^[^-]+-\d+\.sh$/i.test(basename(u)));for(let u of c){let p=await S(u);if(!p)continue;let d=basename(u,".sh"),g=d.lastIndexOf("-"),h=g>0?d.slice(0,g):d;s[h]||(s[h]=[]),s[h].push({matcher:"*",command:wI(p),type:"command"});}if(Object.keys(s).length===0)return;let m=join(t,Um);await k(dirname(m)),await R(m,stringify(s)),e.push({fromTool:br,fromPath:join(t,tr),toPath:Um,feature:"hooks"});}var EI=f(()=>{b();ee();i(TP,"mapCopilotHookEvent");i(LP,"extractMatcher");i(wI,"extractWrapperCommand");i(OI,"importHooks");});async function bI(t,e,r,n=er){let o=join(t,n),s=await on(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:mI,targetName:br,normalize:r,results:e};for(let[l,c]of s)await Ze(l,c,a);}var xI=f(()=>{Uo();ee();i(bI,"importSkills");});async function za(t,e={}){let r=e.scope??"project",n=[],o=await H(br,t,r);return n.push(...await gt(Va,t,r,{normalize:o})),await bI(t,n,o,r==="global"?xr:er),r==="project"&&await OI(t,n),n}var Hm=f(()=>{bt();Me();ee();EI();xI();zm();i(za,"importFromCopilot");});function PI(t){for(let e of Object.keys(t))t[e]===void 0&&delete t[e];return t}var AI,TI,LI,NI,DI=f(()=>{F();Y();ge();Ka();ee();i(PI,"pruneUndefined");AI=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=t.replace(/\.instructions\.md$/i,".md"),o=join(r,n),{frontmatter:s,body:a}=w(e(o)),l=pr(s.globs),c=PI({root:false,description:typeof s.description=="string"?s.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Jn}/${n}`,content:await $(o,c,a)}},"copilotLegacyRuleMapper"),TI=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=t.endsWith(".instructions.md")?t.replace(/\.instructions\.md$/i,".md"):t,o=join(r,n),{frontmatter:s,body:a}=w(e(o)),l=pr(s.applyTo!==void 0?s.applyTo:s.globs),c=PI({root:false,description:typeof s.description=="string"?s.description:void 0,globs:l.length>0?l:void 0});return {destPath:o,toPath:`${Jn}/${n}`,content:await $(o,c,a)}},"copilotNewRuleMapper"),LI=i(async({absolutePath:t,relativePath:e,normalizeTo:r,destDir:n})=>{let o=e.replace(/\.prompt\.md$/i,".md"),s=join(n,o),{frontmatter:a,body:l}=w(r(s)),c=fI(a,t),m=o.includes("/")?o.slice(0,o.lastIndexOf("/")):"",u=`${c.name}.md`,p=m?`${m}/${u}`:u,d=join(n,p);return {destPath:d,toPath:`${Ua}/${p}`,content:await Q(d,{description:c.description,hasDescription:Object.prototype.hasOwnProperty.call(a,"description"),allowedTools:c.allowedTools,hasAllowedTools:Object.prototype.hasOwnProperty.call(a,"tools")||Object.prototype.hasOwnProperty.call(a,"x-agentsmesh-allowed-tools")},l)}},"copilotCommandMapper"),NI=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(!t.endsWith(".agent.md"))return null;let n=t.replace(/\.agent\.md$/i,".md"),o=basename(n,".md"),s=join(r,n),{frontmatter:a,body:l}=w(e(s));return {destPath:s,toPath:`${Wa}/${n}`,content:await $t(s,{...a,name:typeof a.name=="string"?a.name:o},l)}},"copilotAgentMapper");});function FI(t,e,r,n){let s=lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(l=>({...l,target:br})),a=t.rules.filter(l=>!l.root&&l.globs.length===0);return [...s,...a.map(l=>({level:"warning",file:l.source,target:br,message:"Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated."}))]}var vI=f(()=>{he();ee();i(FI,"lintRules");});function $I(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>V(e.source,"copilot","Copilot prompt files do not enforce canonical allowed-tools natively."))}function MI(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=>Wo(s,"copilot",e,{unsupportedBy:"Copilot hooks"}));return Object.values(t.hooks).some(s=>Array.isArray(s)&&s.length>0)&&n.push(V(".agentsmesh/hooks.yaml","copilot","copilot hooks are emitted as .github/hooks/scripts/*.sh wrapper scripts with a `#!/usr/bin/env bash` header; they require a POSIX shell (git-bash or WSL) to execute on Windows.")),n}var GI=f(()=>{Wt();i($I,"lintCommands");i(MI,"lintHooks");});function $P(t){return t.replace(/[^a-zA-Z0-9]/g,"-").toLowerCase()}function MP(t,e){let r=relative(t,e).replace(/\\/g,"/");return !r||r.startsWith("../")?null:r}function GP(t,e){let r=t.match(jI);if(!r?.groups)return t;let n=r.groups.prefix??"",o=r.groups.suffix??"";return `${n}"$HOOK_DIR/${e}"${o}`}async function jP(t,e){let n=e.match(jI)?.groups?.path;if(!n)return null;let o=join(t,n),s=await S(o);if(s===null)return null;let a=MP(t,o);return a?{assetPath:`${tr}/scripts/${a}`,content:s,rewrittenCommand:GP(e,a)}:null}function UP(t,e){return `${tr}/scripts/${$P(t)}-${e}.sh`}function WP(t,e){return ["#!/usr/bin/env bash",`# agentsmesh-matcher: ${e}`,`# agentsmesh-command: ${t}`,"set -e",t,""].join(`
|
|
89
|
+
`)}async function UI(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=UP(s,l),u=c.command,p=await jP(t,c.command);p&&(u=p.rewrittenCommand,o.has(p.assetPath)||o.set(p.assetPath,{path:p.assetPath,content:p.content}));let d=WP(u,c.matcher).replace(`set -e
|
|
90
|
+
`,`set -e
|
|
91
|
+
HOOK_DIR="$(cd "$(dirname "\${BASH_SOURCE[0]}")" && pwd)"
|
|
92
|
+
`);n.push({path:m,content:d}),l++;}}return [...r,...n,...o.values()]}var jI,WI=f(()=>{b();ee();Km();jI=/^(?<prefix>\s*(?:(?:bash|sh|zsh)\s+)?)["']?(?<path>(?:\.\.\/|\.\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?<suffix>(?:\s.*)?)$/;i($P,"safePhaseName");i(MP,"toRepoRelative");i(GP,"rewriteWrapperCommand");i(jP,"buildAssetOutput");i(UP,"wrapperPath");i(WP,"buildWrapper");i(UI,"addHookScriptAssets");});function KP(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var BI,KI=f(()=>{b();ee();i(KP,"computeStatus");BI=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 S(join(e,Yn));return [{target:"copilot",path:Yn,content:s,currentContent:a??void 0,status:KP(a,s)}]},"generateCopilotGlobalExtras");});var zP,VP,JP,YP,Va,zm=f(()=>{_I();ee();Hm();DI();vI();Ut();Ka();GI();WI();KI();zP={name:"copilot",primaryRootInstructionPath:Hn,generateRules:hI,generateCommands:yI,generateAgents:SI,generateSkills:II,generateHooks:RI,importFrom:za},VP={rootInstructionPath:Hn,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 [`${zn}/${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 `${zn}/${t}.instructions.md`},commandPath(t,e){return Ba(t)},agentPath(t,e){return `${Vn}/${t}.agent.md`}}},JP={rootInstructionPath:an,renderPrimaryRootInstruction:gI,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Yn]}],skillDir:xr,managedOutputs:{dirs:[Ko,xr,Ho,Bm,Wm],files:[an,Yn]},rewriteGeneratedPath(t){return t===Hn?an:t.startsWith(`${zn}/`)?an:t.startsWith(`${sn}/`)?t.replace(`${sn}/`,`${Ho}/`):t.startsWith(`${Vn}/`)?t.replace(`${Vn}/`,`${Ko}/`):t.startsWith(`${er}/`)?t.replace(`${er}/`,`${xr}/`):t.startsWith(`${tr}/`)?null:t},mirrorGlobalPath(t,e){if(t.startsWith(`${xr}/`)&&!e.includes("codex-cli")){let r=t.slice(xr.length+1);return [`.agents/skills/${r}`,`${Wm}/${r}`]}return null},paths:{rulePath(t,e){return an},commandPath(t,e){return `${Ho}/${t}.prompt.md`},agentPath(t,e){return `${Ko}/${t}.agent.md`}}},YP={rules:"native",additionalRules:"native",commands:"native",agents:"native",skills:"native",mcp:"none",hooks:"none",ignore:"none",permissions:"none"},Va={id:"copilot",generators:zP,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:FI,lint:{commands:$I,hooks:MI},postProcessHookOutputs:i(async(t,e,r)=>UI(t,e,[...r]),"postProcessHookOutputs"),project:VP,globalSupport:{capabilities:YP,detectionPaths:[an,Yn,Ko,xr,Ho,Bm],layout:JP,scopeExtras:BI},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[Hn],global:[an]},canonicalDir:Jn,canonicalRootFilename:"_root.md",markAsRoot:true},{feature:"rules",mode:"directory",source:{project:[cI]},canonicalDir:Jn,extensions:[".instructions.md"],map:AI},{feature:"rules",mode:"directory",source:{project:[zn]},canonicalDir:Jn,extensions:[".instructions.md",".md"],map:TI}],commands:{feature:"commands",mode:"directory",source:{project:[sn],global:[Ho]},canonicalDir:Ua,extensions:[".prompt.md"],map:LI},agents:{feature:"agents",mode:"directory",source:{project:[Vn],global:[Ko]},canonicalDir:Wa,extensions:[".agent.md"],map:NI}},buildImportPaths:Qc,detectionPaths:[".github/copilot-instructions.md",".github/copilot",".github/instructions",".github/prompts",".github/skills",".github/agents",".github/hooks"]};});function Vm(t){let e=[],r=t.rules.find(s=>s.root);if(r){let s=r.body.trim()?r.body:"";e.push({path:Hr,content:s});let a={alwaysApply:true};r.description&&(a.description=r.description);let l=N(a,s);e.push({path:Sr,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=N(c,s.body.trim()||"");e.push({path:`${qt}/${a}.mdc`,content:m});}let o=HI(t);return o.trim()&&e.push({path:Se,content:o}),e}function HI(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(pe(e.body,r)):r.length>0&&n.push(pe("",r)),n.filter(Boolean).join(`
|
|
93
|
+
|
|
94
|
+
`)}var zI=f(()=>{F();Gr();ct();i(Vm,"generateRules");i(HI,"renderCursorGlobalUserRules");});function Jm(t){return t.commands.map(e=>({path:`${Qt}/${e.name}.md`,content:e.body.trim()||""}))}var VI=f(()=>{ct();i(Jm,"generateCommands");});function Ym(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 JI=f(()=>{ct();i(Ym,"generateMcp");});function Xm(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=N(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 YI=f(()=>{F();ct();i(Xm,"generateSkills");});function Zm(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=N(r,e.body.trim()||"");return {path:`${To}/${e.name}.md`,content:n}})}var XI=f(()=>{F();ct();i(Zm,"generateAgents");});function qm(t){return []}var ZI=f(()=>{i(qm,"generatePermissions");});function ZP(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!Te(s))continue;let a=ut(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 Qm(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=ZP(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 qI=f(()=>{le();ct();i(ZP,"toCursorHooks");i(Qm,"generateHooks");});function tu(t){if(!t.ignore||t.ignore.length===0)return [];let e=t.ignore.join(`
|
|
95
|
+
`);return [{path:Ie,content:e}]}var QI=f(()=>{ct();i(tu,"generateIgnore");});var tS=f(()=>{zI();VI();JI();YI();XI();ZI();qI();QI();});var eS=f(()=>{tS();});async function Ya(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};if(delete p.alwaysApply,!l){let d=qP(m);d!==null&&(p.trigger=d);}return {destPath:c,toPath:`${Je}/${l?"_root.md":o}`,feature:"rules",content:await $(c,p,u)}}function qP(t){return t.alwaysApply!==false?null:(Array.isArray(t.globs)?t.globs:[]).length>0?"glob":(typeof t.description=="string"?t.description:"").trim().length>0?"model_decision":"manual"}async function rS(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n)),a=Yt(o.allowedTools),l=a.length>0?a:Yt(o["allowed-tools"]);return {destPath:n,toPath:`${Jr}/${t}`,feature:"commands",content:await Q(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 nS(t,e,r){let n=join(e,t),{frontmatter:o,body:s}=w(r(n));return {destPath:n,toPath:`${Yr}/${t}`,feature:"agents",content:await $t(n,o,s)}}var eu=f(()=>{F();Y();ge();ct();i(Ya,"mapCursorRuleFile");i(qP,"deriveCursorTrigger");i(rS,"mapCursorCommandFile");i(nS,"mapCursorAgentFile");});async function zo(t){let e=join(t.projectRoot,Je);await k(e);let r=join(e,"_root.md"),n=await Ge({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 R(r,c),t.results.push({fromTool:"cursor",fromPath:t.sourcePath,toPath:`${Je}/_root.md`,feature:"rules"}),true}var ru=f(()=>{b();F();wo();Y();ct();i(zo,"importCursorRootFile");});async function sS(t,e,r){let n=join(t,Je),o=false,s=join(t,qt);if(e.push(...await st({srcDir:s,destDir:n,extensions:[".mdc"],fromTool:"cursor",normalize:r,mapEntry:i(async({srcPath:a,relativePath:l,normalizeTo:c})=>{if(o){let m=await S(a);if(m!==null){let{frontmatter:u}=w(m);if(u.alwaysApply===true)return null}}return Ya(l,n,c,()=>{o=true;})},"mapEntry")})),!o){let a=join(t,Hr),l=await S(a);l!==null&&(o=await zo({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r}));}if(!o){let a=join(t,Pg),l=await S(a);l!==null&&await zo({projectRoot:t,results:e,sourcePath:a,content:l,normalize:r});}}var iS=f(()=>{b();F();$e();eu();ru();ct();i(sS,"importCursorRules");});function aS(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(!Te({...m,type:u}))continue;let p=u==="prompt"?Ot(m)||ut(m):ut(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 qa(t,e){let r=false,n=join(t,Ve),o=await S(n);if(o)try{let u=JSON.parse(o);if(u.hooks&&typeof u.hooks=="object"){let p=aS(u.hooks);if(Object.keys(p).length>0){let d=stringify(p),g=join(t,Xs);await k(dirname(g)),await R(g,d),e.push({fromTool:"cursor",fromPath:n,toPath:Xs,feature:"hooks"}),r=!0;}}}catch{}let s=join(t,Ra),a=await S(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(g=>typeof g=="string"):[],d=Array.isArray(u.deny)?u.deny.filter(g=>typeof g=="string"):[];if(p.length>0||d.length>0){let g=stringify({allow:p,deny:d}),h=join(t,em);await k(dirname(h)),await R(h,g),e.push({fromTool:"cursor",fromPath:s,toPath:em,feature:"permissions"});}}let m=r?void 0:l.hooks;if(m&&typeof m=="object"&&!Array.isArray(m)){let u=aS(m);if(Object.keys(u).length>0){let p=stringify(u),d=join(t,Xs);await k(dirname(d)),await R(d,p),e.push({fromTool:"cursor",fromPath:s,toPath:Xs,feature:"hooks"});}}}async function Qa(t,e){let r=[{path:join(t,Ie),label:Ie},{path:join(t,tm),label:tm}],n=[],o=[];for(let a of r){let l=await S(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,rm);await k(dirname(s)),await R(s,n.join(`
|
|
96
|
+
`)+`
|
|
97
|
+
`),e.push({fromTool:"cursor",fromPath:join(t,o[0]),toPath:rm,feature:"ignore"});}var ou=f(()=>{le();b();ct();i(aS,"cursorHooksToCanonical");i(qa,"importSettings");i(Qa,"importIgnore");});async function tl(t,e,r,n=He){let o=join(t,n),s=await on(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:Ag,targetName:"cursor",normalize:r,results:e};for(let[u,p]of s)await Ze(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 S(u);if(!p)continue;let d=basename(u,".md");await Uh(d,u,p,a);}}var su=f(()=>{b();Uo();ct();i(tl,"importSkills");});async function lS(t){if(await L(join(t,qt)))return true;let e=[join(t,Se),join(t,Lo),join(t,Ys),join(t,Ve),join(t,Ie),join(t,zr),join(t,Vr),join(t,Qt)];for(let s of e){let a=await S(s);if(a!==null&&a.trim()!=="")return true}return !!((await P(join(t,zr))).some(s=>s.endsWith(".md"))||(await P(join(t,Vr))).some(s=>s.endsWith(".md"))||(await P(join(t,Qt))).some(s=>s.endsWith(".md")))}async function cS(t,e,r){let n=join(t,Je),o=false,s=join(t,qt),a=await st({srcDir:s,destDir:n,extensions:[".mdc"],fromTool:Vo,normalize:r,mapEntry:i(async({srcPath:l,relativePath:c,normalizeTo:m})=>{if(o){let u=await S(l);if(u!==null){let{frontmatter:p}=w(u);if(p.alwaysApply===true)return null}}return Ya(c,n,m,()=>{o=true;})},"mapEntry")});return e.push(...a),o}async function mS(t,e,r){let n=join(t,Lo),o=await S(n);return o===null||o.trim()===""?false:zo({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function uS(t,e,r){let n=join(t,Se),o=await S(n);return o===null||o.trim()===""?false:zo({projectRoot:t,results:e,sourcePath:n,content:o.trim(),normalize:r})}async function pS(t,e){let r=join(t,Ys),n=await S(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,No);await k(dirname(s)),await R(s,n),e.push({fromTool:Vo,fromPath:r,toPath:No,feature:"mcp"});}async function dS(t,e,r){let n=join(t,Vr),o=join(t,Yr);e.push(...await st({srcDir:n,destDir:o,extensions:[".md"],fromTool:Vo,normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>nS(s,o,a),"mapEntry")}));}async function fS(t,e,r){let n=join(t,Qt),o=join(t,Jr);e.push(...await st({srcDir:n,destDir:o,extensions:[".md"],fromTool:Vo,normalize:r,mapEntry:i(({relativePath:s,normalizeTo:a})=>rS(s,o,a),"mapEntry")}));}var Vo,gS=f(()=>{b();F();$e();ct();ru();eu();Vo="cursor";i(lS,"hasGlobalCursorArtifacts");i(cS,"importGlobalCursorRulesFromDir");i(mS,"importGlobalUserRules");i(uS,"importGlobalDotCursorAgents");i(pS,"importGlobalMcp");i(dS,"importGlobalAgents");i(fS,"importGlobalCommands");});async function hS(t){if(!await lS(t))return [];let e=[],r=await H(Vo,t,"global"),n=await cS(t,e,r);return n||(n=await mS(t,e,r)),n||await uS(t,e,r),await pS(t,e),await tl(t,e,r,zr),await dS(t,e,r),await fS(t,e,r),await qa(t,e),await Qa(t,e),e}var yS=f(()=>{bt();ct();su();ou();gS();i(hS,"importFromCursorGlobalExports");});async function nA(t,e){let r=join(t,ze),n=await S(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,No);await k(dirname(s)),await R(s,n),e.push({fromTool:"cursor",fromPath:r,toPath:No,feature:"mcp"});}async function el(t,e={}){if(e.scope==="global")return hS(t);let r=[],n=await H("cursor",t);return await sS(t,r,n),r.push(...await gt(rl,t,"project",{normalize:n})),await tl(t,r,n),await nA(t,r),await qa(t,r),await Qa(t,r),r}var iu=f(()=>{bt();b();Me();iS();ou();su();yS();ct();au();i(nA,"importMcp");i(el,"importFromCursor");});var RS,_S,CS=f(()=>{F();Y();ge();ct();RS=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n)),a=Yt(o.allowedTools),l=a.length>0?a:Yt(o["allowed-tools"]);return {destPath:n,toPath:`${Jr}/${t}`,content:await Q(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)}},"cursorCommandMapper"),_S=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${Yr}/${t}`,content:await $t(n,o,s)}},"cursorAgentMapper");});function kS(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:xg}))}var wS=f(()=>{he();ct();i(kS,"lintRules");});function OS(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>V(e.source,"cursor","Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected."))}function ES(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(V(".agentsmesh/mcp.json","cursor",`MCP server "${r}" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`));}return e}function bS(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?[V(".agentsmesh/permissions.yaml","cursor","Cursor permissions are partial; tool-level allow/deny may lose fidelity.")]:[]}var xS=f(()=>{Wt();i(OS,"lintCommands");i(ES,"lintMcp");i(bS,"lintPermissions");});var oA,sA,iA,aA,rl,au=f(()=>{eS();ct();nn();iu();CS();wS();Ut();xS();oA={name:"cursor",primaryRootInstructionPath:Sr,generateRules:Vm,generateCommands:Jm,generateAgents:Zm,generateSkills:Xm,generateMcp:Ym,generatePermissions:qm,generateHooks:Qm,generateIgnore:tu,importFrom:el},sA={rootInstructionPath:Sr,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Hr,Se]}],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`}}},iA={rootInstructionPath:Sr,outputFamilies:[{id:"root-mirrors",kind:"additional",explicitPaths:[Hr,Se]}],skillDir:zr,managedOutputs:{dirs:[qt,Qt,Vr,zr],files:[Sr,Se,Ys,Ve,Ie,Lo]},rewriteGeneratedPath(t){return t===Hr?null:t===Se||t===Sr||t.startsWith(`${qt}/`)||t.startsWith(`${Qt}/`)||t.startsWith(`${To}/`)||t.startsWith(`${He}/`)||t===ze||t===Ve||t===Ie?t:t===Ra?null:t},mirrorGlobalPath(t,e){return xt(t,He,e)},paths:{rulePath(t,e){return `${qt}/${t}.mdc`},commandPath(t,e){return `${Qt}/${t}.md`},agentPath(t,e){return `${Vr}/${t}.md`}}},aA={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"native",ignore:"native",permissions:"none"},rl={id:"cursor",generators:oA,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:kS,lint:{commands:OS,mcp:ES,permissions:bS},project:sA,globalSupport:{capabilities:aA,detectionPaths:[Sr,Se,ze,Ve,Ie,He,Vr,Qt,Lo],layout:iA},importer:{commands:{feature:"commands",mode:"directory",source:{project:[Qt]},canonicalDir:Jr,extensions:[".md"],map:RS},agents:{feature:"agents",mode:"directory",source:{project:[To]},canonicalDir:Yr,extensions:[".md"],map:_S}},buildImportPaths:nm,detectionPaths:[".cursor/rules",".cursor/mcp.json"],preservesManualActivation:true};});var ln,re,rr,PS,AS,Bt,nl,Xn,ol,Ii,cn,TS,LS,mn,sl,Si,Ri,lu,cu,Jo,mu,Yo,Xo,il,Zo,Zn,_i,pt=f(()=>{ln="gemini-cli",re="GEMINI.md",rr="AGENTS.md",PS=".gemini/rules",AS=".gemini/GEMINI.md",Bt=".gemini/commands",nl=".gemini/policies",Xn=".gemini/settings.json",ol=".geminiignore",Ii=".gemini/skills",cn=".gemini/agents",TS=".gemini/system.md",LS=`${nl}/permissions.toml`,mn=".agentsmesh/rules",sl=".agentsmesh/commands",Si=".agentsmesh/agents",Ri=".agentsmesh/skills",lu=".agentsmesh/mcp.json",cu=".agentsmesh/hooks.yaml",Jo=".agentsmesh/ignore",mu=".agentsmesh/permissions.yaml",Yo=".gemini/GEMINI.md",Xo=".gemini/AGENTS.md",il=".gemini/settings.json",Zo=".gemini/commands",Zn=".gemini/skills",_i=".gemini/agents";});function uu(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=pe(e?.body.trim()??"",r),o=[{path:re,content:n}];if(e){let s=e.body.trim().replace(/\.agentsmesh\/skills\//g,".agents/skills/");o.push({path:rr,content:s});}return o}var NS=f(()=>{Gr();pt();i(uu,"generateRules");});function DS(t,e){let r=t.split(":").filter(Boolean),n=r.length>0?r.pop():t;return [e,...r,`${n}.toml`].join("/")}var FS=f(()=>{i(DS,"canonicalCommandNameToGeminiTomlPath");});function lA(t){let e=t.replace(/\r\n/g,`
|
|
98
|
+
`);return e.includes('"""')?JSON.stringify(e):`"""
|
|
99
|
+
${e}
|
|
100
|
+
"""`}function cA(t){return [`description = ${JSON.stringify(t.description||t.name)}`,`prompt = ${lA(t.body.trim()||"")}`].join(`
|
|
101
|
+
`)+`
|
|
102
|
+
`}function pu(t){return t.commands.map(e=>({path:DS(e.name,Bt),content:cA(e)}))}var vS=f(()=>{pt();FS();i(lA,"serializeTomlMultilineLiteral");i(cA,"serializeGeminiCommand");i(pu,"generateCommands");});function du(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=N(r,e.body.trim()||"");return {path:`${cn}/${e.name}.md`,content:n}})}var $S=f(()=>{F();pt();i(du,"generateAgents");});function fu(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=N(n,r.body.trim()||"");e.push({path:`${Ii}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles){let a=s.relativePath.replace(/\\/g,"/");e.push({path:`${Ii}/${r.name}/${a}`,content:s.content});}}return e}var MS=f(()=>{F();pt();i(fu,"generateSkills");});function mA(t){switch(t){case "PreToolUse":return "BeforeTool";case "PostToolUse":return "AfterTool";case "Notification":return "Notification";default:return null}}function gu(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=mA(o);if(!a||!Array.isArray(s))return [];let l=s.filter(c=>typeof c=="object"&&c!==null&&lr(c)).map((c,m)=>({matcher:c.matcher,hooks:[{name:`${a}-${m+1}`,type:"command",command:ut(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:[re,rr]}),Object.keys(e).length===0?[]:[{path:Xn,content:JSON.stringify(e,null,2)}]}var hu=f(()=>{le();pt();i(mA,"mapHookEvent");i(gu,"generateGeminiSettingsFiles");});function yu(t){return !t.ignore||t.ignore.length===0?[]:[{path:ol,content:t.ignore.join(`
|
|
103
|
+
`)}]}var GS=f(()=>{pt();i(yu,"generateIgnore");});var jS=f(()=>{NS();vS();$S();MS();hu();GS();});var US=f(()=>{jS();});function qn(t){return JSON.stringify(t)}function uA(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function pA(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 al(t,e,r){return ["[[rule]]",`decision = ${qn(t)}`,`priority = ${e}`,...r,""].join(`
|
|
104
|
+
`)}function WS(t,e,r){let n=pA(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 al(e,r,[`toolName = ${qn(s)}`])}if(n.kind==="bash"){let s=n.prefix.replace(/:\*$/u,"").replace(/\*$/u,"").trim();return al(e,r,[`toolName = ${qn(o.Bash)}`,`commandPrefix = ${qn(s)}`])}return n.kind==="read"?al(e,r,[`toolName = ${qn(o.Read)}`,`argsPattern = ${qn(uA(n.path))}`]):al(e,r,[`toolName = ${qn(n.raw)}`])}function BS(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=WS(s,"allow",100+a);l&&o.push(l);}),r.forEach((s,a)=>{let l=WS(s,"deny",200+a);l&&o.push(l);}),o.length===0?[]:[{path:LS,content:o.join(`
|
|
105
|
+
`)}]}var KS=f(()=>{pt();i(qn,"escapeTomlBasicString");i(uA,"escapeRegexLiteral");i(pA,"parsePermissionExpr");i(al,"ruleForDecision");i(WS,"permissionExprToGeminiRule");i(BS,"generateGeminiPermissionsPolicies");});function Iu(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 ll(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 Su=f(()=>{F();i(Iu,"mapGeminiHookEvent");i(ll,"parseFlexibleFrontmatter");});async function Ru(t,e){let r=join(t,Xn),n=await S(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,lu);await k(join(t,".agentsmesh")),await R(c,JSON.stringify({mcpServers:s},null,2)),e.push({fromTool:"gemini-cli",fromPath:r,toPath:lu,feature:"mcp"});}let a=o.ignorePatterns;if(Array.isArray(a)&&a.length>0&&a.every(c=>typeof c=="string")){let c=join(t,Jo);await k(join(t,".agentsmesh")),await R(c,a.join(`
|
|
106
|
+
`)+`
|
|
107
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Jo,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=Iu(m);if(!p||!Array.isArray(u))return [];let d=u.filter(g=>g!==null&&typeof g=="object"&&typeof g.matcher=="string"&&Array.isArray(g.hooks)).flatMap(g=>g.hooks.filter(h=>h!==null&&typeof h=="object"&&lr(h)).map(h=>({matcher:g.matcher,command:ut(h),type:"command",timeout:typeof h.timeout=="number"?h.timeout:void 0})));if(d.length===0){let g=u.filter(h=>h!==null&&typeof h=="object"&&typeof h.matcher=="string"&&lr(h)).map(h=>({matcher:h.matcher,command:ut(h),type:"command"}));return g.length>0?[[p,g]]:[]}return d.length>0?[[p,d]]:[]});if(c.length>0){let m=Object.fromEntries(c),u=join(t,cu);await k(join(t,".agentsmesh")),await R(u,stringify(m,{lineWidth:0}).trimEnd()),e.push({fromTool:"gemini-cli",fromPath:r,toPath:cu,feature:"hooks"});}}}var HS=f(()=>{le();b();pt();Su();i(Ru,"importGeminiSettings");});async function zS(t,e){let r=join(t,ol),n=await S(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,Jo);await R(s,o.join(`
|
|
108
|
+
`)+`
|
|
109
|
+
`),e.push({fromTool:"gemini-cli",fromPath:r,toPath:Jo,feature:"ignore"});}}}var Cu=f(()=>{b();pt();Su();HS();i(zS,"importGeminiIgnore");});function yA(t){return t.replace(/\\(.)/g,"$1")}function IA(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 SA(t){return `Bash(${t}:*)`}function RA(t){return `Read(${yA(t)})`}async function VS(t){let e=[],r=join(t,nl),n;try{n=await P(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 S(p);if(!d)continue;let g;try{g=parse$1(d);}catch{continue}let h=g&&typeof g=="object"&&"rule"in g?g.rule:void 0;if(Array.isArray(h))for(let C of h){if(!C||typeof C!="object")continue;let _=C,y=typeof _.toolName=="string"?_.toolName:null,O=typeof _.decision=="string"?_.decision:null;if(!y||!O)continue;let D=IA(y);if(!D)continue;let E=null;D==="Bash"?typeof _.commandPrefix=="string"&&_.commandPrefix.trim()&&(E=SA(_.commandPrefix.trim())):D==="Read"?typeof _.argsPattern=="string"&&_.argsPattern.trim()?E=RA(_.argsPattern.trim()):E="Read":E=D,E&&(O==="allow"?l.has(E)||(l.add(E),s.push(E)):O==="deny"&&(c.has(E)||(c.add(E),a.push(E))));}}if(s.length===0&&a.length===0)return e;await k(join(t,".agentsmesh"));let m=join(t,mu),u=stringify({allow:s,deny:a});return await R(m,u.trimEnd()+`
|
|
110
|
+
`),e.push({fromTool:ln,fromPath:join(t,nl),toPath:mu,feature:"permissions"}),e}var JS=f(()=>{b();pt();i(yA,"unescapeRegexLiteral");i(IA,"toolNameToPermissionBase");i(SA,"commandPrefixToBashExpr");i(RA,"argsPatternToReadExpr");i(VS,"importGeminiPolicies");});function ku(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 XS=f(()=>{i(ku,"stripProjectRootCanonicalPrefix");});async function qS(t,e,r){let n=join(t,Ii),s=(await P(n)).filter(l=>basename(l)==="SKILL.md");for(let l of s){let c=await S(l);if(!c)continue;let m=basename(l.slice(0,-9)),u=w(c),p=jr(u.frontmatter,m);if(p){let O=join(t,Si);await k(O);let D=join(O,`${p.name}.md`);await R(D,je(p,r(u.body,l,D))),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Si}/${p.name}.md`,feature:"agents"});continue}let d=join(t,Ri,m,"SKILL.md"),g=r(c,l,d),h=join(t,Ri,m);await k(h);let{frontmatter:C,body:_}=w(g);await R(d,await Le(d,{...C,name:m},_)),e.push({fromTool:"gemini-cli",fromPath:l,toPath:`${Ri}/${m}/SKILL.md`,feature:"skills"});let y=await P(dirname(l));for(let O of y){if(O===l)continue;let D=await S(O);if(D===null)continue;let E=relative(dirname(l),O).replace(/\\/g,"/"),x=join(h,E);await k(dirname(x)),await R(x,r(D,O,x)),e.push({fromTool:"gemini-cli",fromPath:O,toPath:`${Ri}/${m}/${E}`,feature:"skills"});}}let a=join(t,cn);try{let c=(await P(a)).filter(m=>m.endsWith(".md"));for(let m of c){let u=await S(m);if(!u)continue;let{frontmatter:p,body:d}=w(u),h=relative(a,m).replace(/\\/g,"/").replace(/\.md$/i,".md"),C=join(t,Si);await k(C);let _=join(C,h),y=r(d,m,_);await R(_,await $t(_,{...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},y)),e.push({fromTool:"gemini-cli",fromPath:m,toPath:`${Si}/${h}`,feature:"agents"});}}catch{}}var QS=f(()=>{b();F();Y();Xt();pt();i(qS,"importGeminiSkillsAndAgents");});async function _A(t,e,r){let n=await H("codex-cli",t),o=join(t,mn),s=join(t,rr),a=join(t,AS),l=[s,a,join(t,re),join(t,TS)],c=null,m=l[l.length-1];for(let E of l){let x=await S(E);if(x!==null){c=x,m=E;break}}if(c===null)return;await k(o);let u=join(o,"_root.md"),p=m===s||m===a?n(c,m,u):c,d=await Ge({content:p,projectRoot:t,rulesDir:mn,sourcePath:m,fromTool:ln,normalize:r});e.push(...d.results);let g=r(d.rootContent,m,u),h=ku(g.replace(/\.agents\/skills\//g,".agentsmesh/skills/").replace(/\.agents\\skills\\/g,".agentsmesh/skills/"),t),{frontmatter:C,body:_}=w(h),O=C.root===true?C:{...C,root:true},D=ku(await $(u,O,_),t);await R(u,D),e.push({fromTool:ln,fromPath:m,toPath:`${mn}/_root.md`,feature:"rules"});}async function ml(t){let e=[],r=await H(ln,t);return await _A(t,e,r),e.push(...await gt(ul,t,"project",{normalize:r})),await qS(t,e,r),await Ru(t,e),await zS(t,e),e.push(...await VS(t)),e}var Eu=f(()=>{bt();b();F();Y();wo();Me();pt();bu();Cu();JS();XS();QS();i(_A,"importRootRule");i(ml,"importFromGemini");});async function eR(t,e,r){let n=t.replace(/\\/g,"/"),o=join(e,n),{frontmatter:s,body:a}=ll(r(o)),l=pr(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:`${mn}/${n}`,feature:"rules",content:await $(o,c,a)}}async function rR(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")?kA(s):ll(s),c=Yt(a.allowedTools),m=Yt(a["allowed-tools"]),u=c.length>0?c:m;return {destPath:o,toPath:`${sl}/${n}`,feature:"commands",content:await Q(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 kA(t){try{let e=parse$1(t);return {frontmatter:e,body:typeof e.prompt=="string"?e.prompt:""}}catch{return {frontmatter:{},body:t.trim()}}}var nR=f(()=>{Y();ge();Cu();pt();i(eR,"mapGeminiRuleFile");i(rR,"mapGeminiCommandFile");i(kA,"parseTomlCommand");});var oR,sR,iR=f(()=>{nR();oR=i(({relativePath:t,destDir:e,normalizeTo:r})=>eR(t,e,r),"geminiRuleMapper"),sR=i(({relativePath:t,destDir:e,normalizeTo:r})=>rR(t,e,r),"geminiCommandMapper");});function aR(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(s=>({...s,target:ln}))}var lR=f(()=>{he();pt();i(aR,"lintRules");});function cR(t){return t.commands.filter(e=>e.allowedTools.length>0).map(e=>V(e.source,"gemini-cli","Gemini TOML command files do not project canonical allowed-tools metadata."))}function mR(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=>Wo(n,"gemini-cli",e))}var uR=f(()=>{Wt();i(cR,"lintCommands");i(mR,"lintHooks");});function pR(t,e){return e==="project"&&un("gemini-cli",e)?.ignore.flavor!=="settings-embedded"?[]:gu(t)}var dR=f(()=>{rt();hu();i(pR,"emitScopedGeminiSettings");});function gR(t){try{let e=JSON.parse(t);return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:{}}catch{return {}}}function hR(t,e){let r=gR(t),n=wA.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 yR(t,e){let r=gR(t),n=OA.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 fR,wA,OA,xu=f(()=>{fR=[".claude/settings.json",".gemini/settings.json"],wA=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(),OA=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(gR,"parseJsonObject");i(hR,"mergeSettingsJson");i(yR,"mergeGeminiSettingsJson");});var EA,bA,xA,PA,ul,bu=f(()=>{US();Cn();KS();pt();Eu();iR();lR();Ut();yo();Xt();uR();dR();nn();xu();EA={name:"gemini-cli",primaryRootInstructionPath:re,generateRules:uu,generateCommands:pu,generateAgents:du,generateSkills:fu,generateIgnore:yu,generatePermissions:BS,importFrom:ml},bA={rootInstructionPath:re,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[rr]}],extraRuleOutputPaths(){return [rr]},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 xt(t,".gemini/skills",e)},paths:{rulePath(t,e){return re},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${Bt}/${r.join("/")}/${n}.toml`}return `${Bt}/${t}.toml`},agentPath(t,e){return ce(e,"gemini-cli")?`.gemini/skills/${Lt(t)}/SKILL.md`:`${cn}/${t}.md`}}},xA={rootInstructionPath:Yo,outputFamilies:[{id:"compat-agents",kind:"additional",explicitPaths:[Xo]}],extraRuleOutputPaths(){return [Xo]},skillDir:Zn,managedOutputs:{dirs:[Zo,Zn,_i],files:[Yo,Xo,il]},rewriteGeneratedPath(t){return t===re?Yo:t===rr?Xo:t===Xn?il:t.startsWith(`${Bt}/`)?t.replace(`${Bt}/`,`${Zo}/`):t.startsWith(".gemini/skills/")?t.replace(".gemini/skills/",`${Zn}/`):t.startsWith(`${cn}/`)?t.replace(`${cn}/`,`${_i}/`):t.startsWith(".gemini/policies/")||t===".geminiignore"?null:t},mirrorGlobalPath(t,e){return xt(t,Zn,e)},paths:{rulePath(t,e){return Yo},commandPath(t,e){if(t.includes(":")){let r=t.split(":").filter(Boolean),n=r.pop()??t;return `${Zo}/${r.join("/")}/${n}.toml`}return `${Zo}/${t}.toml`},agentPath(t,e){return ce(e,"gemini-cli")?`${Zn}/${Lt(t)}/SKILL.md`:`${_i}/${t}.md`}}},PA={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:"none",permissions:"none"},ul={id:"gemini-cli",generators:EA,capabilities:{rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"partial",ignore:ue("native","settings-embedded"),permissions:"partial"},emptyImportMessage:"No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).",lintRules:aR,lint:{commands:cR,hooks:mR},emitScopedSettings:pR,mergeGeneratedOutputContent(t,e,r,n){let o=e?.content??t;return o!==null&&n===Xn?yR(o,r):null},project:bA,globalSupport:{capabilities:PA,detectionPaths:[Yo,Xo,il,Zo,Zn,_i],layout:xA},importer:{rules:{feature:"rules",mode:"directory",source:{project:[PS]},canonicalDir:mn,extensions:[".md"],map:oR},commands:{feature:"commands",mode:"directory",source:{project:[Bt]},canonicalDir:sl,extensions:[".md",".toml"],map:sR}},buildImportPaths:om,detectionPaths:["GEMINI.md",".gemini"]};});function IR(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:Ye,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("junie"))continue;let o=basename(n.source,".md");e.push({path:`${qs}/${o}.md`,content:n.body.trim()||""});}return e}function TA(t){let e={};return t.description&&(e.description=t.description),t.type!=="stdio"&&(e.type=t.type),Da(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 SR(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,TA(n)]));return [{path:Zs,content:JSON.stringify({mcpServers:e},null,2)}]}function RR(t){return t.commands.map(e=>{let r={description:e.description||void 0};return r.description===void 0&&delete r.description,{path:`${Do}/${e.name}.md`,content:N(r,e.body.trim()||"")}})}function _R(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:`${Fo}/${e.name}.md`,content:N(r,e.body.trim()||"")}})}function CR(t){return t.ignore.length===0?[]:[{path:Qs,content:t.ignore.join(`
|
|
111
|
+
`)}]}function kR(t){return Ne(t,Dn)}function wR(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 pe(e?.body.trim()??"",r)}var OR=f(()=>{Fa();de();Gr();F();vo();i(IR,"generateRules");i(TA,"toJunieMcpServer");i(SR,"generateMcp");i(RR,"generateCommands");i(_R,"generateAgents");i(CR,"generateIgnore");i(kR,"generateSkills");i(wR,"renderJunieGlobalInstructions");});async function LA(t,e,r){let n=[Ye,_a,Ng,Dg],o=join(t,sm);for(let s of n){let a=join(t,s),l=await S(a);if(l===null)continue;let c=await Ge({content:l,projectRoot:t,rulesDir:ka,sourcePath:a,fromTool:Nn,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 R(o,p),e.push({fromTool:Nn,fromPath:a,toPath:sm,feature:"rules"});return}}async function pl(t){let e=[],r=await H(Nn,t);return await LA(t,e,r),e.push(...await gt(dl,t,"project",{normalize:r})),await De(t,Dn,Nn,e,r),e}var Pu=f(()=>{bt();b();F();de();wo();Y();Me();vo();Au();i(LA,"importRootRule");i(pl,"importFromJunie");});function bR(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Nn}))}var xR=f(()=>{he();vo();i(bR,"lintRules");});function PR(t){if(!t.mcp||Object.keys(t.mcp.mcpServers).length===0)return [];let e=[];for(let[r,n]of Object.entries(t.mcp.mcpServers))dy(n)&&e.push(V(".agentsmesh/mcp.json","junie",`MCP server "${r}" uses ${n.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`));return e}var AR=f(()=>{Fa();Wt();i(PR,"lintMcp");});var NA,DA,FA,vA,dl,Au=f(()=>{OR();vo();nn();Pu();xR();AR();Ut();NA={name:"junie",primaryRootInstructionPath:Ye,generateRules:IR,generateCommands:RR,generateAgents:_R,generateSkills:kR,generateMcp:SR,generateIgnore:CR,importFrom:pl},DA={rootInstructionPath:Ye,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 `${qs}/${t}.md`},commandPath(t,e){return `${Do}/${t}.md`},agentPath(t,e){return `${Fo}/${t}.md`}}},FA={rootInstructionPath:Fn,renderPrimaryRootInstruction:wR,skillDir:ei,managedOutputs:{dirs:[ei,ri,ni,Fg],files:[Fn,Ca]},rewriteGeneratedPath(t){return t===Ye?Fn:t.startsWith(`${qs}/`)?Fn:t.startsWith(`${Dn}/`)?t.replace(`${Dn}/`,`${ei}/`):t.startsWith(`${Do}/`)?t.replace(`${Do}/`,`${ni}/`):t.startsWith(`${Fo}/`)?t.replace(`${Fo}/`,`${ri}/`):t===Zs?Ca:t===Qs?null:t},mirrorGlobalPath(t,e){return xt(t,".junie/skills",e)},paths:{rulePath(t,e){return Fn},commandPath(t,e){return `${ni}/${t}.md`},agentPath(t,e){return `${ri}/${t}.md`}}},vA={rules:"native",additionalRules:"embedded",commands:"native",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"none",permissions:"none"},dl={id:"junie",generators:NA,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:bR,lint:{mcp:PR},project:DA,globalSupport:{capabilities:vA,detectionPaths:[Fn,ei,ri,ni,Ca],layout:FA},importer:{rules:{feature:"rules",mode:"directory",source:{project:[".junie/rules"]},canonicalDir:ka,extensions:[".md"],preset:"rule"},commands:{feature:"commands",mode:"directory",source:{project:[".junie/commands"]},canonicalDir:vg,extensions:[".md"],preset:"command"},agents:{feature:"agents",mode:"directory",source:{project:[".junie/agents"]},canonicalDir:$g,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[Zs]},canonicalDir:".agentsmesh",canonicalFilename:Mg},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Qs]},canonicalDir:".agentsmesh",canonicalFilename:Gg}},buildImportPaths:im,detectionPaths:[".junie/guidelines.md",".junie/AGENTS.md",".junie/skills",".junie/mcp/mcp.json",".aiignore"]};});function TR(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/_/g,"-").toLowerCase()}function GA(t){return t.type==="prompt"?t.prompt:t.command}function jA(t,e){let r=LR[t];return t==="PreToolUse"||t==="PostToolUse"?{type:r,tools:[e||"*"]}:{type:r}}function NR(t){let e=[];for(let[r,n]of Object.entries(t)){let o=r;if(!(o in LR)||!Array.isArray(n))continue;let s=1;for(let a of n){let l=GA(a);if(!l)continue;let c={name:`${TR(r)} ${s}`,version:"1",when:jA(o,a.matcher),then:a.type==="prompt"?{type:"askAgent",prompt:l}:{type:"shellCommand",command:l}};e.push({name:`${TR(r)}-${s}.kiro.hook`,content:JSON.stringify(c,null,2)}),s+=1;}}return e}function UA(t){let e=MA.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 DR(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:UA(r)}function FR(t){return stringify(t).trimEnd()}var LR,MA,Tu=f(()=>{LR={UserPromptSubmit:"promptSubmit",SubagentStop:"agentStop",PreToolUse:"preToolUse",PostToolUse:"postToolUse"},MA=new Map([["promptSubmit","UserPromptSubmit"],["agentStop","SubagentStop"],["preToolUse","PreToolUse"],["postToolUse","PostToolUse"]]);i(TR,"toKebab");i(GA,"hookText");i(jA,"toWhen");i(NR,"generateKiroHooks");i(UA,"toCanonicalEntry");i(DR,"parseKiroHookFile");i(FR,"serializeCanonicalHooks");});function BA(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 vR(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(jt))continue;let o=basename(n.source,".md");e.push({path:`${_e}/${o}.md`,content:N(BA(n),n.body.trim()||"")});}return e}function $R(t){return Ne(t,te)}function MR(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:$o,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function GR(t){return !t.hooks||Object.keys(t.hooks).length===0?[]:NR(t.hooks).map(e=>({path:`${Zr}/${e.name}`,content:e.content}))}function jR(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=N(r,e.body.trim()||"");return {path:`${Ce}/${e.name}.md`,content:n}})}function UR(t){return t.ignore.length===0?[]:[{path:Mo,content:t.ignore.join(`
|
|
112
|
+
`)}]}var WR=f(()=>{de();F();Tu();Go();i(BA,"steeringFrontmatter");i(vR,"generateRules");i($R,"generateSkills");i(MR,"generateMcp");i(GR,"generateHooks");i(jR,"generateAgents");i(UR,"generateIgnore");});function HA(t){let e=typeof t.inclusion=="string"?t.inclusion:"",r={root:false,description:typeof t.description=="string"?t.description:void 0,globs:pr(t.fileMatchPattern)};return e==="manual"&&(r.trigger="manual"),e==="auto"&&(r.trigger="model_decision"),e==="fileMatch"&&(r.trigger="glob"),r}async function zA(t,e,r,n){let o=n==="global"?[ke,Re]:[Re,ke];for(let s of o){let a=join(t,s),l=await S(a);if(l===null)continue;let c=join(t,am),{frontmatter:m,body:u}=w(r(l,a,c));await R(c,await $(c,{...m,root:true},u)),e.push({fromTool:jt,fromPath:a,toPath:am,feature:"rules"});return}}async function VA(t,e,r){let n=join(t,lm);e.push(...await st({srcDir:join(t,_e),destDir:n,extensions:[".md"],fromTool:jt,normalize:r,mapEntry:i(async({relativePath:o,normalizeTo:s})=>{if(basename(o)==="AGENTS.md")return null;let a=join(n,o),{frontmatter:l,body:c}=w(s(a));return {destPath:a,toPath:`${lm}/${o}`,feature:"rules",content:await $(a,HA(l),c)}},"mapEntry")}));}async function JA(t,e){let r={};for(let o of await P(join(t,Zr))){if(!o.endsWith(".kiro.hook"))continue;let s=DR(await S(o)??"");s&&(r[s.event]??=[],r[s.event].push(s.entry));}if(Object.keys(r).length===0)return;let n=join(t,cm);await k(join(t,".agentsmesh")),await R(n,FR(r)),e.push({fromTool:jt,fromPath:join(t,Zr),toPath:cm,feature:"hooks"});}async function fl(t,e={}){let r=e.scope??"project",n=[],o=await H(jt,t,r);return await zA(t,n,o,r),await VA(t,n,o),n.push(...await gt(gl,t,r,{normalize:o})),await De(t,te,jt,n,o),r==="project"&&await JA(t,n),n}var Lu=f(()=>{bt();de();$e();Me();Y();ge();b();F();Tu();Go();Nu();i(HA,"canonicalRuleMeta");i(zA,"importRoot");i(VA,"importNonRootRules");i(JA,"importHooks");i(fl,"importFromKiro");});function BR(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:jt}))}var KR=f(()=>{he();Go();i(BR,"lintRules");});function HR(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=>Wo(n,"kiro",e,{unsupportedBy:"Kiro hooks"}))}var zR=f(()=>{Wt();i(HR,"lintHooks");});var YA,XA,ZA,qA,gl,Nu=f(()=>{WR();nn();Lu();KR();zR();Ut();Go();YA={name:jt,primaryRootInstructionPath:Re,generateRules:vR,generateAgents:jR,generateSkills:$R,generateMcp:MR,generateHooks:GR,generateIgnore:UR,importFrom:fl},XA={rootInstructionPath:Re,skillDir:te,managedOutputs:{dirs:[".kiro/hooks",".kiro/skills",".kiro/steering",".kiro/agents"],files:["AGENTS.md",".kiro/settings/mcp.json",".kiroignore"]},paths:{rulePath(t,e){return `${_e}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return `${Ce}/${t}.md`}}},ZA={rootInstructionPath:ke,skillDir:qr,managedOutputs:{dirs:[vn,qr,$n,Wg],files:[ke,si,ii]},rewriteGeneratedPath(t){return t===Re?ke:t.startsWith(`${_e}/`)?t.replace(`${_e}/`,`${vn}/`):t.startsWith(`${te}/`)?t.replace(`${te}/`,`${qr}/`):t.startsWith(`${Ce}/`)?t.replace(`${Ce}/`,`${$n}/`):t===$o?si:t===Mo?ii:t.startsWith(`${Zr}/`)?null:t},mirrorGlobalPath(t,e){return xt(t,".kiro/skills",e)},paths:{rulePath(t,e){return `${vn}/${t}.md`},commandPath(t,e){return null},agentPath(t,e){return `${$n}/${t}.md`}}},qA={rules:"native",additionalRules:"native",commands:"none",agents:"native",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},gl={id:jt,generators:YA,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:BR,lint:{hooks:HR},project:XA,globalSupport:{capabilities:qA,detectionPaths:[vn,ke,qr,$n,si,ii],layout:ZA},importer:{agents:{feature:"agents",mode:"directory",source:{project:[Ce],global:[Ce]},canonicalDir:Bg,extensions:[".md"],preset:"agent"},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[$o],global:[si]},canonicalDir:".agentsmesh",canonicalFilename:Kg},ignore:{feature:"ignore",mode:"flatFile",source:{project:[Mo],global:[ii]},canonicalDir:".agentsmesh",canonicalFilename:Hg}},buildImportPaths:mm,detectionPaths:[_e,te,Ce,Zr,$o,Mo]};});function JR(t){let e=[],r=t.rules.find(n=>n.root);r&&e.push({path:we,content:r.body.trim()||""});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes(Qr))continue;let o=basename(n.source,".md");e.push({path:`${Rr}/${o}.md`,content:n.body.trim()||""});}return e}function YR(t){return t.commands.map(e=>{let r={};return e.description&&(r.description=e.description),{path:`${_r}/${e.name}.md`,content:N(r,e.body.trim()||"")}})}function XR(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:li,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}function ZR(t){return t.ignore.length===0?[]:[{path:ci,content:t.ignore.join(`
|
|
113
|
+
`)}]}function qR(t){return Ne(t,Xe)}function QR(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:jo,content:stringify({customModes:e})}]}var t_=f(()=>{de();F();Un();i(JR,"generateRules");i(YR,"generateCommands");i(XR,"generateMcp");i(ZR,"generateIgnore");i(qR,"generateSkills");i(QR,"generateAgents");});var hl,r_,Du=f(()=>{F();Y();Un();hl=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{if(t==="00-root.md")return null;let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${jn}/${t}`,content:await $(n,{root:false,description:typeof o.description=="string"?o.description:void 0,globs:Array.isArray(o.globs)?o.globs:void 0},s)}},"rooNonRootRuleMapper"),r_=i(async({relativePath:t,normalizeTo:e,destDir:r})=>{let n=join(r,t),{frontmatter:o,body:s}=w(e(n));return {destPath:n,toPath:`${Oa}/${t}`,content:await Q(n,{hasDescription:true,description:typeof o.description=="string"?o.description:void 0,hasAllowedTools:false,allowedTools:[]},s)}},"rooCommandMapper");});async function eT(t,e,r){let n=join(t,Mn),o;try{o=await readdir(n,{withFileTypes:!0});}catch{return}let s=o.filter(l=>l.isDirectory()&&l.name.startsWith("rules-")).map(l=>l.name),a=join(t,jn);for(let l of s)e.push(...await st({srcDir:join(n,l),destDir:a,extensions:[".md"],fromTool:Qr,normalize:r,mapEntry:i(async({srcPath:c,relativePath:m,content:u,normalizeTo:p})=>{let d=await hl({absolutePath:c,relativePath:m,content:u,destDir:a,normalizeTo:p});return d?{...d,feature:"rules"}:null},"mapEntry")}));}async function n_(t,e={}){let r=e.scope??"project",n=[],o=await H(Qr,t,r);return n.push(...await gt(yl,t,r,{normalize:o})),await eT(t,n,o),await De(t,Xe,Qr,n,o),n}var o_=f(()=>{bt();de();$e();Me();Du();Un();vu();i(eT,"importPerModeRules");i(n_,"importFromRooCode");});function s_(t,e,r,n){return lt(t,e,r,{checkGlobMatches:n?.scope!=="global"}).map(o=>({...o,target:Qr}))}var i_=f(()=>{he();Un();i(s_,"lintRules");});function aT(t,e){return t===null?"created":t!==e?"updated":"unchanged"}var sT,iT,lT,cT,mT,yl,vu=f(()=>{b();t_();Un();nn();o_();Du();i_();Ut();sT={name:"roo-code",primaryRootInstructionPath:we,generateRules:JR,generateCommands:YR,generateSkills:qR,generateMcp:XR,generateIgnore:ZR,generateAgents:QR,importFrom:n_},iT={rootInstructionPath:we,skillDir:".roo/skills",managedOutputs:{dirs:[".roo/rules",".roo/commands",".roo/skills"],files:[".roo/mcp.json",".rooignore",".roorules",jo]},paths:{rulePath(t,e){return `${Rr}/${t}.md`},commandPath(t,e){return `${_r}/${t}.md`},agentPath(t,e){return null}}};i(aT,"computeStatus");lT=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 S(join(e,mi));return [{target:"roo-code",path:mi,content:s,currentContent:a??void 0,status:aT(a,s)}]},"generateRooGlobalExtras"),cT={rootInstructionPath:rn,skillDir:Cr,managedOutputs:{dirs:[tn,en,Cr,Vg],files:[rn,Gn,ui,mi]},rewriteGeneratedPath(t){return t===we?rn:t===jo?null:t.startsWith(`${Rr}/`)?t.replace(`${Rr}/`,`${tn}/`):t.startsWith(`${_r}/`)?t.replace(`${_r}/`,`${en}/`):t.startsWith(`${Xe}/`)?t.replace(`${Xe}/`,`${Cr}/`):t===li?Gn:t===ci?ui:t},mirrorGlobalPath(t,e){return xt(t,Cr,e)},paths:{rulePath(t,e){return `${tn}/${t}.md`},commandPath(t,e){return `${en}/${t}.md`},agentPath(t,e){return null}}},mT={rules:"native",additionalRules:"native",commands:"native",agents:"partial",skills:"native",mcp:"native",hooks:"none",ignore:"native",permissions:"none"},yl={id:"roo-code",generators:sT,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:s_,project:iT,globalSupport:{capabilities:mT,detectionPaths:[tn,en,Cr,Gn,ui,rn,mi],layout:cT,scopeExtras:lT},importer:{rules:[{feature:"rules",mode:"singleFile",source:{project:[we,ai],global:[rn,we,ai]},canonicalDir:jn,canonicalRootFilename:"_root.md",markAsRoot:true,frontmatterRemap:i(({description:t,globs:e})=>({description:typeof t=="string"?t:void 0,globs:Array.isArray(e)?e:void 0}),"frontmatterRemap")},{feature:"rules",mode:"directory",source:{project:[Rr],global:[tn]},canonicalDir:jn,extensions:[".md"],map:hl}],commands:{feature:"commands",mode:"directory",source:{project:[_r],global:[en]},canonicalDir:Oa,extensions:[".md"],map:r_},mcp:{feature:"mcp",mode:"mcpJson",source:{project:[li],global:[Gn]},canonicalDir:".agentsmesh",canonicalFilename:Jg},ignore:{feature:"ignore",mode:"flatFile",source:{project:[ci],global:[ui]},canonicalDir:".agentsmesh",canonicalFilename:Yg}},buildImportPaths:um,detectionPaths:[".roo/rules",".roo/commands",".roo/skills",".roo/mcp.json",".rooignore",".roorules",jo]};});var nr,$u,pn,a_,Qo,or,ts,es,l_,dn,be,rs,Mu,Gu,ju,Uu,Wu,Bu,ns,os,Ci,Il,Sl,Rl,c_,Pt=f(()=>{nr="windsurf",$u=".windsurfrules",pn=".windsurf/rules",a_=".windsurfignore",Qo=".codeiumignore",or="AGENTS.md",ts=".windsurf/hooks.json",es=".windsurf/mcp_config.example.json",l_=".windsurf/mcp_config.json",dn=".windsurf/workflows",be=".windsurf/skills",rs=".agentsmesh/rules",Mu=".agentsmesh/commands",Gu=".agentsmesh/agents",ju=".agentsmesh/skills",Uu=".agentsmesh/ignore",Wu=".agentsmesh/hooks.yaml",Bu=".agentsmesh/mcp.json",ns=".codeium/windsurf/memories/global_rules.md",os=".codeium/windsurf/skills",Ci=".codeium/windsurf/global_workflows",Il=".codeium/windsurf/hooks.json",Sl=".codeium/windsurf/mcp_config.json",Rl=".codeium/.codeiumignore",c_=".agents/skills";});function pT(t){let e=basename(t,".md");return e==="_root"?"root":e}function dT(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 Ku(t){let e=[],r=t.rules.find(n=>n.root);if(!r)return [];e.push({path:or,content:r.body.trim()});for(let n of t.rules){if(n.root||n.targets.length>0&&!n.targets.includes("windsurf"))continue;let o=pT(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?N(a,n.body.trim()||""):n.body.trim()||"";e.push({path:`${pn}/${o}.md`,content:l});let c=dT(n.globs);c&&(c!==o&&e.push({path:`${pn}/${c}.md`,content:l}),e.push({path:`${c}/AGENTS.md`,content:n.body.trim()||""}));}return e}var m_=f(()=>{F();Pt();i(pT,"ruleSlug");i(dT,"directoryScopedRuleDir");i(Ku,"generateRules");});function Hu(t){return !t.ignore||t.ignore.length===0?[]:[{path:Qo,content:t.ignore.join(`
|
|
114
|
+
`)}]}var u_=f(()=>{Pt();i(Hu,"generateIgnore");});function zu(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?N(r,e.body.trim()||""):e.body.trim();return {path:`${dn}/${e.name}.md`,content:n}})}var p_=f(()=>{F();Pt();i(zu,"generateCommands");});function Vu(t){return t.agents.map(e=>({path:`${be}/${Lt(e.name)}/SKILL.md`,content:ma(e)}))}var d_=f(()=>{Xt();Pt();i(Vu,"generateAgents");});function Ju(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[{path:es,content:JSON.stringify({mcpServers:t.mcp.mcpServers},null,2)}]}var f_=f(()=>{Pt();i(Ju,"generateMcp");});function fT(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 gT(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=[];for(let s of n){if(!Te(s))continue;let a=ut(s),l=Ot(s),c=s.type==="prompt"?l||a:a||l;c&&o.push({command:c,show_output:true});}o.length>0&&(e[fT(r)]=o);}return e}function Yu(t){if(!t.hooks||Object.keys(t.hooks).length===0)return [];let e=gT(t.hooks);return Object.keys(e).length===0?[]:[{path:ts,content:JSON.stringify({hooks:e},null,2)}]}var g_=f(()=>{le();Pt();i(fT,"windsurfEventName");i(gT,"toWindsurfHooks");i(Yu,"generateHooks");});function Xu(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?N(n,r.body.trim()||""):r.body.trim()||"";e.push({path:`${be}/${r.name}/SKILL.md`,content:o});for(let s of r.supportingFiles)e.push({path:`${be}/${r.name}/${s.relativePath}`,content:s.content});}return e}var h_=f(()=>{F();Pt();i(Xu,"generateSkills");});var y_=f(()=>{m_();u_();p_();d_();f_();g_();h_();});var I_=f(()=>{y_();});function S_(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 R_(t,e,r){let n=join(t,dn),s=(await P(n)).filter(l=>l.endsWith(".md")),a=join(t,Mu);for(let l of s){let c=await S(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:g}=w(p),h=await Q(u,{description:typeof d.description=="string"?d.description:"",hasDescription:Object.prototype.hasOwnProperty.call(d,"description"),allowedTools:(()=>{let C=S_(d.allowedTools);return C.length>0?C:S_(d["allowed-tools"])})(),hasAllowedTools:Object.prototype.hasOwnProperty.call(d,"allowedTools")||Object.prototype.hasOwnProperty.call(d,"allowed-tools")},g);await R(u,h),e.push({fromTool:nr,fromPath:l,toPath:`${Mu}/${m}`,feature:"commands"});}}var __=f(()=>{b();F();Y();Pt();i(S_,"toStringArray");i(R_,"importWorkflows");});async function C_(t,e,r,n=be){let o=join(t,n),s=await on(o),a={projectRoot:t,sourceSkillsDir:n,destCanonicalSkillsDir:ju,targetName:"windsurf",normalize:r,results:e};for(let[l,c]of s){let m=join(c,"SKILL.md"),u=await S(m);if(!u)continue;let p=w(u),d=jr(p.frontmatter,l);if(d){await Er(join(t,ju,l));let g=join(t,Gu);await k(g);let h=join(g,`${d.name}.md`);await R(h,je(d,r(p.body,m,h))),e.push({fromTool:"windsurf",fromPath:m,toPath:`${Gu}/${d.name}.md`,feature:"agents"});continue}await Ze(l,c,a);}}var k_=f(()=>{b();F();Xt();gi();Uo();Pt();i(C_,"importSkills");});async function O_(t,e){let r=join(t,ts),n=await S(r);if(n)try{let o=JSON.parse(n);if(!o.hooks||typeof o.hooks!="object"||Array.isArray(o.hooks))return;let s=ST(o.hooks);if(Object.keys(s).length===0)return;let a=join(t,Wu);await k(dirname(a)),await R(a,stringify(s)),e.push({fromTool:nr,fromPath:r,toPath:Wu,feature:"hooks"});}catch{}}function IT(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 ST(t){let e={};for(let[r,n]of Object.entries(t)){if(!Array.isArray(n))continue;let o=IT(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 g={matcher:c,type:p.type==="prompt"?"prompt":"command",command:d};typeof p.timeout=="number"&&(g.timeout=p.timeout),s.push(g);}}s.length>0&&(e[o]=s);}return e}async function E_(t,e){let r=[es,l_];for(let n of r){let o=join(t,n),s=await S(o);if(s)try{let a=JSON.parse(s);if(!a.mcpServers||typeof a.mcpServers!="object")continue;let l=join(t,Bu);await k(dirname(l)),await R(l,JSON.stringify({mcpServers:a.mcpServers},null,2)),e.push({fromTool:nr,fromPath:o,toPath:Bu,feature:"mcp"});return}catch{}}}var b_=f(()=>{b();Pt();i(O_,"importWindsurfHooks");i(IT,"canonicalHookEventName");i(ST,"windsurfHooksToCanonical");i(E_,"importWindsurfMcp");});async function Cl(t,e){let r=e?.scope??"project",n=[],o=await H(nr,t),s=await H("codex-cli",t),a=join(t,rs),l=join(t,$u),c=await S(l);if(c!==null){await k(a);let d=join(a,"_root.md"),g=o(c,l,d).trim(),h=await $(d,{root:true},g);await R(d,h),n.push({fromTool:"windsurf",fromPath:l,toPath:`${rs}/_root.md`,feature:"rules"});}if(c===null){let d=join(t,or),g=await S(d);if(g!==null){await k(a);let h=join(a,"_root.md"),C=o(s(g,d,h),d,h).trim(),_=await $(h,{root:true},C);await R(h,_),n.push({fromTool:"windsurf",fromPath:d,toPath:`${rs}/_root.md`,feature:"rules"});}}r!=="global"&&n.push(...await st({srcDir:t,destDir:a,extensions:["AGENTS.md"],fromTool:"windsurf",normalize:o,mapEntry:i(async({srcPath:d,normalizeTo:g})=>{let h=relative(t,dirname(d)).replace(/\\/g,"/");if(!h||h==="."||basename(d)!=="AGENTS.md")return null;let C=h.replace(/\//g,"-");if(!va(h))return await Er(join(a,`${C}.md`)),null;let _=join(a,`${C}.md`);return {destPath:_,toPath:`${rs}/${C}.md`,feature:"rules",content:await $(_,{root:false,globs:[`${h}/**`]},g(_))}},"mapEntry")}));let m=join(t,pn);n.push(...await st({srcDir:m,destDir:a,extensions:[".md"],fromTool:"windsurf",normalize:o,mapEntry:i(async({relativePath:d,normalizeTo:g})=>{if(d==="_root.md"&&c!==null)return null;let h=join(a,d),{frontmatter:C,body:_}=w(g(h)),y={...C};return typeof y.glob=="string"&&y.glob.trim()&&(y.globs=[y.glob],delete y.glob),{destPath:h,toPath:`${rs}/${d}`,feature:"rules",content:await $(h,{...y,root:false},_)}},"mapEntry")}));let u=join(t,a_),p=await S(u);if((p===null||!p.trim())&&(u=join(t,Qo),p=await S(u)),p!==null&&p.trim()){let d=p.split(/\r?\n/),g=[];for(let h of d){let C=h.trim();C&&!C.startsWith("#")&&g.push(C);}if(g.length>0){await k(join(t,".agentsmesh"));let h=join(t,Uu);await R(h,g.join(`
|
|
115
|
+
`)),n.push({fromTool:"windsurf",fromPath:u,toPath:Uu,feature:"ignore"});}}return await R_(t,n,o),await C_(t,n,o),await O_(t,n),await E_(t,n),n}var qu=f(()=>{bt();b();F();Y();$e();gi();Pt();__();k_();b_();i(Cl,"importFromWindsurf");});function x_(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:nr,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:nr,message:`Windsurf cannot project these features yet: ${s.join(", ")}.`}),n}var P_=f(()=>{Pt();i(x_,"lintRules");});function A_(t){return t.commands.filter(e=>e.description.length>0||e.allowedTools.length>0).map(e=>V(e.source,"windsurf","windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected."))}function T_(t){return !t.mcp||Object.keys(t.mcp.mcpServers).length===0?[]:[V(".agentsmesh/mcp.json","windsurf","Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.")]}var L_=f(()=>{Wt();i(A_,"lintCommands");i(T_,"lintMcp");});function wT(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 OT,ET,bT,xT,N_,D_=f(()=>{I_();Cn();Pt();nn();qu();P_();L_();Ut();yo();Xt();i(wT,"directoryScopedRuleDir");OT={name:"windsurf",primaryRootInstructionPath:or,generateRules:Ku,generateCommands:zu,generateAgents:Vu,generateSkills:Xu,generateMcp:Ju,generateHooks:Yu,generateIgnore:Hu,importFrom:Cl},ET={rootInstructionPath:or,extraRuleOutputPaths(t){if(t.root)return [or];let e=wT(t.globs);return e!==null?[`${e}/AGENTS.md`]:[]},skillDir:be,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 `${pn}/${t}.md`},commandPath(t,e){return `${dn}/${t}.md`},agentPath(t,e){return ce(e,"windsurf")?`.windsurf/skills/${Lt(t)}/SKILL.md`:null}}},bT={rootInstructionPath:ns,skillDir:os,managedOutputs:{dirs:[os,Ci,c_],files:[ns,Il,Sl,Rl]},rewriteGeneratedPath(t){return t===or?ns:t.startsWith(`${pn}/`)||/\/AGENTS\.md$/.test(t)?null:t.startsWith(`${be}/`)?t.replace(`${be}/`,`${os}/`):t.startsWith(`${dn}/`)?t.replace(`${dn}/`,`${Ci}/`):t===ts?Il:t===es?Sl:t===Qo?Rl:t},mirrorGlobalPath(t,e){return xt(t,".codeium/windsurf/skills",e)},paths:{rulePath(t,e){return ns},commandPath(t,e){return `${Ci}/${t}.md`},agentPath(t,e){return ce(e,"windsurf")?`${os}/${Lt(t)}/SKILL.md`:null}}},xT={rules:"native",additionalRules:"partial",commands:ue("native","workflows"),agents:"embedded",skills:"native",mcp:"partial",hooks:"native",ignore:"native",permissions:"none"},N_={id:"windsurf",generators:OT,capabilities:{rules:"native",additionalRules:"native",commands:ue("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:x_,lint:{commands:A_,mcp:T_},project:ET,globalSupport:{capabilities:xT,detectionPaths:[ns,os,Ci,Il,Sl,Rl],layout:bT},buildImportPaths:pm,detectionPaths:[".windsurfrules",".windsurf"]};});var hg={};_O(hg,{BUILTIN_TARGETS:()=>Ct,TARGET_IDS:()=>ht,getBuiltinTargetDefinition:()=>Nt,getEffectiveTargetSupportLevel:()=>kl,getTargetCapabilities:()=>un,getTargetDetectionPaths:()=>tp,getTargetLayout:()=>dt,getTargetManagedOutputs:()=>ep,getTargetPrimaryRootInstructionPath:()=>AT,getTargetSkillDir:()=>wi,isBuiltinTargetId:()=>Mr,resolveTargetFeatureGenerator:()=>ss,rewriteGeneratedOutputPath:()=>rp});function PT(){return Qu||(Of(Ct),Qu=new Map(Ct.map(t=>[t.id,t]))),Qu}function Nt(t){return PT().get(t)}function un(t,e="project"){let r=Nt(t)??Z(t);if(!r)return;let n=e==="global"?r.globalSupport?.capabilities??r.capabilities:r.capabilities;return kf(n)}function tp(t,e="project"){let r=Nt(t)??Z(t);return r?e==="global"?r.globalSupport?.detectionPaths??[]:r.detectionPaths:[]}function dt(t,e="project"){let r=Nt(t)??Z(t);if(r)return e==="global"?r.globalSupport?.layout:r.project}function AT(t,e="project"){return dt(t,e)?.rootInstructionPath}function wi(t,e="project"){return dt(t,e)?.skillDir}function ep(t,e="project"){return dt(t,e)?.managedOutputs}function rp(t,e,r="project"){let n=dt(t,r);return n?n.rewriteGeneratedPath?n.rewriteGeneratedPath(e):e:null}function F_(t,e,r,n){return !t||!r?false:e==="commands"&&t.supportsConversion?.commands?!xs(r,t.id,true,n):e==="agents"&&t.supportsConversion?.agents?!ce(r,t.id,true,n):false}function kl(t,e,r,n="project"){let o=un(t,n)?.[e]?.level??"none";if(o!=="embedded")return o;let s=Nt(t)??Z(t);return F_(s,e,r,n)?"none":o}function ss(t,e,r,n="project"){let o=Nt(t)??Z(t);if(!o?.generators||F_(o,e,r,n))return;let s=TT[e];return s===null?void 0:s(o.generators)}var Ct,Qu,TT,rt=f(()=>{yo();Cn();Lr();Rc();ar();Dc();fm();ty();jy();Gm();zm();au();bu();Au();Nu();vu();D_();Ct=[la,Ea,Qh,Gy,ja,Va,rl,ul,dl,gl,yl,N_];i(PT,"builtinTargetsMap");i(Nt,"getBuiltinTargetDefinition");i(un,"getTargetCapabilities");i(tp,"getTargetDetectionPaths");i(dt,"getTargetLayout");i(AT,"getTargetPrimaryRootInstructionPath");i(wi,"getTargetSkillDir");i(ep,"getTargetManagedOutputs");i(rp,"rewriteGeneratedOutputPath");i(F_,"isFeatureSuppressedByConversion");i(kl,"getEffectiveTargetSupportLevel");TT={rules:i(t=>t.generateRules,"rules"),additionalRules:null,commands:i(t=>t.generateCommands,"commands"),agents:i(t=>t.generateAgents,"agents"),skills:i(t=>t.generateSkills,"skills"),mcp:i(t=>t.generateMcp,"mcp"),permissions:i(t=>t.generatePermissions,"permissions"),hooks:i(t=>t.generateHooks,"hooks"),ignore:i(t=>t.generateIgnore,"ignore")};i(ss,"resolveTargetFeatureGenerator");});function MT(t){return typeof t=="string"?t:t.level}function v_(t){return $T.includes(t)}function $_(t,e,r,n){for(let o of vT){let s=MT(e[o.feature]);if(s==="none")continue;let a=typeof t.generators[o.generator]=="function",l=v_(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}`+(v_(o.feature)?" or emitScopedSettings":"")+" is missing."});}}function wl(t){return jT.parse(t)}var Nr,M_,LT,NT,G_,DT,FT,vT,$T,GT,jT,np=f(()=>{Nr=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()})]),M_=z$1.object({rules:Nr,additionalRules:Nr,commands:Nr,agents:Nr,skills:Nr,mcp:Nr,hooks:Nr,ignore:Nr,permissions:Nr}),LT=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(),NT=z$1.object({rulePath:z$1.function(),commandPath:z$1.function(),agentPath:z$1.function()}),G_=z$1.object({paths:NT}).passthrough(),DT=z$1.object({capabilities:M_,detectionPaths:z$1.array(z$1.string()),layout:G_,scopeExtras:z$1.function().optional()}).passthrough(),FT=["global","globalCapabilities","globalDetectionPaths","generateScopeExtras"],vT=[{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"}],$T=["mcp","hooks","ignore","permissions"];i(MT,"capabilityLevel");i(v_,"canUseScopedSettings");i($_,"validateCapabilityImplementations");GT=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/,"Target id must be lowercase with hyphens"),generators:LT,capabilities:M_,emptyImportMessage:z$1.string(),lintRules:z$1.union([z$1.function(),z$1.null()]),project:G_,globalSupport:DT.optional(),buildImportPaths:z$1.function(),detectionPaths:z$1.array(z$1.string())}).passthrough(),jT=GT.superRefine((t,e)=>{for(let r of FT)r in t&&e.addIssue({code:"custom",path:[r],message:`Use globalSupport instead of legacy field "${r}".`});$_(t,t.capabilities,e,["capabilities"]),t.globalSupport!==void 0&&$_(t,t.globalSupport.capabilities,e,["globalSupport","capabilities"]);});i(wl,"validateDescriptor");});function UT(){return op||(op=new Map(Ct.map(t=>[t.id,t]))),op}function U_(t){let e=wl(t);j_.set(e.id,e);}function Z(t){return j_.get(t)??UT().get(t)}var j_,op,Lr=f(()=>{rt();np();j_=new Map;i(UT,"builtinDescriptors");i(U_,"registerTargetDescriptor");i(Z,"getDescriptor");});async function W_(t,e,r="project"){let n=new Map,o=Z(t);return o&&await o.buildImportPaths(n,e,r),n}var B_=f(()=>{Lr();i(W_,"buildImportReferenceMap");});function J(t){return t.includes("\\")||xe.test(t)?win32:posix}function X(t){return t.replace(/\\/g,"/")}function j(t,e){let r=J(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 H_(t,e){return J(t).isAbsolute(e)||xe.test(e)}function is(t){let e=t,r="";for(;BT.test(e);)r=e.at(-1)+r,e=e.slice(0,-1);return {candidate:e,suffix:r}}function z_(t,e){let r=J(e),n=t.replace(/^(\.\.\/)+/,"").replace(/^\.\//,"");return n&&n!==t?j(e,r.join(e,n)):null}var xe,BT,Dt=f(()=>{xe=/^[A-Za-z]:[\\/]/,BT=/[.!?:;]+$/;i(J,"pathApi");i(X,"normalizeSeparators");i(j,"normalizeForProject");i(H_,"isAbsoluteForProject");i(is,"stripTrailingPunctuation");i(z_,"rootFallbackPath");});function zT(t){let e=[t.project,t.globalSupport?.layout].filter(o=>o!==void 0),r=[...t.detectionPaths,...e.flatMap(o=>o.managedOutputs?.dirs??[]),...e.flatMap(o=>o.managedOutputs?.files??[])],n=new Set;for(let o of r){let s=o.split("/")[0];s&&s.startsWith(".")&&s.length>1&&n.add(`${s}/`);}return n}function VT(){let t=new Set([".agentsmesh/"]);for(let e of Ct)for(let r of zT(e))t.add(r);return Array.from(t)}function JT(){let t=new Set([...VT(),...sp.rootRelativePrefixes]),e=new Set([...HT,...sp.meshRootSegments]);return {protectedSchemes:[...KT,...sp.protectedSchemes],rootRelativePrefixes:Array.from(t),meshRootSegments:e}}function Ol(){return ip||(ip=JT()),ip}var KT,HT,sp,ip,V_=f(()=>{rt();KT=[/\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],HT=new Set(["skills","rules","commands","agents","packs"]),sp={protectedSchemes:[],rootRelativePrefixes:[],meshRootSegments:[]};i(zT,"topLevelDotfilePrefixes");i(VT,"buildDefaultRootRelativePrefixes");i(JT,"rebuild");i(Ol,"getLinkFormatRegistry");});function Pe(t){let e=X(t);return Ol().rootRelativePrefixes.some(r=>e.startsWith(r))}function ZT(t){let e=X(t).replace(/^\.\//,"");if(e.startsWith("../")||e.startsWith("/")||xe.test(e)||/^[a-zA-Z]:/.test(e)||Pe(e))return false;let r=e.split("/").filter(n=>n.length>0)[0];return r!==void 0&&Ol().meshRootSegments.has(r)}function Oi(t,e,r){let n=J(e),o=j(e,e),s=j(e,r),a=X(t);if(xe.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=z_(a,o);return c&&c!==l?[l,c]:[l]}if(Pe(a))return [j(e,n.join(o,a))];if(a.includes("/")){let l=j(e,n.join(o,".agentsmesh")),c=ZT(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 qT.has(a)?[]:a.includes(".")?[j(e,n.join(n.dirname(s),a))]:[]}function Ei(t,e){let r=[e];if(!H_(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 Z_(t,e,r){let n=e>0?t.at(e-1):"",o=r<t.length?t.at(r):"";return n==="*"||o==="*"}function El(t){let e=[];for(let r of Ol().protectedSchemes){let n=r.flags.includes("g")?r:new RegExp(r.source,`${r.flags}g`);for(let o of t.matchAll(n))e.push([o.index??0,(o.index??0)+o[0].length]);}for(let r of t.matchAll(QT))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(tL))e.push([r.index??0,(r.index??0)+r[0].length]);for(let r of t.matchAll(eL))e.push([r.index??0,(r.index??0)+r[0].length]);return e}var qT,QT,tL,eL,X_,as,fn=f(()=>{Dt();V_();i(Pe,"isRootRelativePathToken");i(ZT,"isMeshRootRelativePathToken");qT=new Set(["AGENTS.md","CLAUDE.md","GEMINI.md","codex.md",".windsurfrules",".cursorrules"]),QT=/^(?:```|~~~)[^\n]*\n[\s\S]*?^(?:```|~~~)/gm,tL=/<!-- agentsmesh:root-generation-contract:start -->[\s\S]*?<!-- agentsmesh:root-generation-contract:end -->/g,eL=/<!-- agentsmesh:embedded-rules:start -->[\s\S]*?<!-- agentsmesh:embedded-rules:end -->/g,X_=/(?:\.\.[\\/]|\.\/|\.\\|\/[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,as=/(?::(\d+)){1,2}$/;i(Oi,"resolveProjectPath");i(Ei,"expandResolvedPaths");i(Z_,"isGlobAdjacent");i(El,"protectedRanges");});function nL(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 ap(t,e){let r=J(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 q_(t){let e=J(t);return j(t,e.join(t,".agentsmesh"))}function Dr(t,e){let r=J(t),n=q_(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 Q_(t,e,r){let n=J(t),o=q_(t),s=j(t,e);if(!Dr(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 lp(t,e,r){let o=J(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 tC(t,e,r){return !nL(r.tokenContext)||r.originalToken===void 0?false:X(r.originalToken).startsWith(".agentsmesh/")}function ls(t,e,r){let n=lp(t,e,r);return n===null?null:{kind:"projectRoot",rest:n,text:n}}function cp(t,e,r,n,o){let s=J(t),a=j(t,t),l=j(t,e),c=j(t,r);if(!ap(t,c))return ls(t,c,n)?.text??null;let m=j(t,dirname(l));if(!ap(t,m)&&m!==a)return ls(t,c,n)?.text??null;let u=s.relative(m,c).replace(/\\/g,"/");if(s.isAbsolute(u)||xe.test(u))return lp(t,c,n);let p=j(t,s.join(m,u));return ap(t,p)?(u===""||u==="."?u=".":o.explicitCurrentDirLinks===true&&m!==a&&!u.startsWith("../")&&!u.startsWith("./")&&(u=`./${u}`),n&&!u.endsWith("/")?`${u}/`:u):lp(t,c,n)}var mp=f(()=>{Dt();i(nL,"isReadingContext");i(ap,"isUnderProjectRoot");i(q_,"agentsMeshRoot");i(Dr,"isUnderAgentsMesh");i(Q_,"toAgentsMeshRootRelative");i(lp,"toProjectRootRelative");i(tC,"shouldPreserveAgentsMeshAnchor");i(ls,"toProjectRootReference");i(cp,"formatLinkPathForDestinationLegacy");});function eC(t,e,r,n,o={}){let s=o.scope??"project",a=j(t,r);if(tC(t,e,o))return X(o.originalToken??"");if(o.forceRelative)return cp(t,e,r,n,o);if(s==="global"&&!Dr(t,e))return ls(t,a,n)?.text??null;let l=(()=>{if(Dr(t,a))return a;let m=o.logicalMeshSourceAbsolute;return m&&Dr(t,j(t,m))?j(t,m):null})();if(!l)return ls(t,a,n)?.text??null;if(n||(o.pathIsDirectory?.(a)??false)){let m=Q_(t,l,n);return m!==null?m:ls(t,l,n)?.text??null}return cp(t,e,r,n,o)}var rC=f(()=>{fn();Dt();mp();mp();i(eC,"formatLinkPathForDestination");});function nC(t,e,r,n){let o=J(e),s=X(t);if(!Pe(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 oC=f(()=>{Dt();fn();i(nC,"resolveByDestinationSuffixStrip");});function sC(t){let e=null,r=false,n=null,o=null,s=null;for(let c of Oi(t.candidate,t.projectRoot,t.sourceFile)){let m=null,u=null;for(let p of Ei(t.projectRoot,c)){let d=j(t.projectRoot,p),g=j(t.projectRoot,t.translatePath(d)),h=t.pathExists(d),C=t.pathExists(g);if(C&&g!==d){e=g,n=d,r=true;break}(h||C)&&m===null&&(m=g,u=d),e===null&&(e=g);}if(!r&&m!==null&&o===null&&(o=m,s=u),r)break}if(!r){let c=nC(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 iC=f(()=>{Dt();fn();oC();i(sC,"resolveLinkTarget");});function aC(t,e,r){return e>=2&&t[e-2]==="~"&&t[e-1]==="/"?true:e>=1&&t[e-1]==="~"&&r.startsWith("/")}function lC(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 cC(t){let e=X(t);return e.startsWith("./")||e.startsWith("../")?true:e.startsWith("/")||xe.test(e)||Pe(e)?false:e.includes("/")}var mC=f(()=>{Dt();fn();i(aC,"isTildeHomeRelativePathToken");i(lC,"isMarkdownLinkDestinationToken");i(cC,"isRelativePathToken");});function oL(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===`
|
|
116
|
+
`)break;s+=a,o++;}return s===r}function uC(t,e,r){let n=t.lastIndexOf(`
|
|
139
117
|
`,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
|
-
|
|
118
|
+
`||s==="\r"||s===">"||s===" "||s===" "||s==='"'||s==="'"||s===":"||s==="#"||s==="?"}function pC(t,e,r){let n=e>0?t[e-1]:"",o=r<t.length?t[r]:"";return n==="`"&&o==="`"?{role:"inline-code"}:uC(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 dC(t,e,r,n,o){if(e<0||r>t.length)return false;let{candidate:s}=is(n),a=s.replace(as,""),l=X(a),c=e+a.length,m=t[e-1],u=t[r];return uC(t,e,c)||m==="'"&&u==="'"||m==='"'&&u==='"'||m==="`"&&u==="`"||m==="<"&&u===">"?true:m==="["&&u==="]"?!(!o&&!Pe(l)&&oL(t,e,n)):m==="@"?true:m==="("?u===")"||u==="#"||u==="?"||u===" "||u===" ":o?Pe(l)?true:l.includes("/")||l.includes("\\")?l.startsWith("./")||l.startsWith("../")?true:(l.split(/[\\/]/).filter(Boolean).at(-1)??"").includes("."):false:false}var fC=f(()=>{Dt();fn();i(oL,"markdownBracketLabelDuplicatesDestination");i(uC,"isMarkdownReferenceDefinitionDestination");i(pC,"getTokenContext");i(dC,"shouldRewritePathToken");});function bl(t){let e=new Set,r=El(t.content);return {content:t.content.replace(X_,(o,s,a)=>{if(r.some(([ft,vt])=>s>=ft&&s<vt)||!dC(a,s,s+o.length,o,t.rewriteBarePathTokens===true)||aC(a,s,o)||Z_(a,s,s+o.length))return o;let{candidate:l,suffix:c}=is(o);if(!l)return o;let m=as.exec(l),u=m?l.slice(0,m.index):l,p=m?m[0]:"";if(!u)return o;let d=pC(a,s,s+u.length);if(d.role!=="markdown-link-dest"&&xe.test(u))return o;let{translatedPath:g,resolvedBeforeTranslate:h,matchedPath:C}=sC({candidate:u,rawToken:l,projectRoot:t.projectRoot,sourceFile:t.sourceFile,destinationFile:t.destinationFile,translatePath:t.translatePath,pathExists:t.pathExists}),_=h;if(!C||!g)return g&&e.add(g),o;let y=X(u),O=u.endsWith("/")||t.pathIsDirectory?.(g)===true;if(O&&!y.includes("/")&&!y.includes("\\"))return o;if(_===null){let ft=X(l);if(ft.startsWith("agentsmesh/")&&(ft=`.${ft}`),ft.startsWith(".agentsmesh/")||ft.includes("/.agentsmesh/")){let vt=J(t.projectRoot),Vi=j(t.projectRoot,t.projectRoot),Vt=ft.replace(/^\.\//,"");_=j(t.projectRoot,vt.join(Vi,Vt));}}let D=J(t.projectRoot);if(t.scope==="global"){let ft=X(l),vt=ft.startsWith(".agentsmesh/")||ft.includes("/.agentsmesh/"),Vi=Pe(ft)||cC(ft),Vt=_!==null&&Dr(t.projectRoot,_),_d=Dr(t.projectRoot,g);if(_===g&&!_d&&!Vt&&!vt){let Cd=X(D.relative(t.projectRoot,j(t.projectRoot,t.sourceFile))).split("/").filter(Boolean)[0]??"",RO=(_!==null?X(D.relative(t.projectRoot,_)):"").split("/").filter(Boolean)[0]??"";if(Cd.length>0&&Cd===RO)return o}if(!Vi&&!vt&&!Vt&&!_d)return o}let E=j(t.projectRoot,t.destinationFile),x=j(t.projectRoot,g),K=X(D.relative(t.projectRoot,E)),M=X(D.relative(t.projectRoot,x)),W=K.split("/").filter(Boolean)[0]??"",q=M.split("/").filter(Boolean)[0]??"",Ae=!X(u).startsWith(".agentsmesh/")&&!O&&W.length>0&&W===q&&W.startsWith(".")&&W!==".agentsmesh"||d.role==="markdown-link-dest"||lC(a,s,u),it=eC(t.projectRoot,t.destinationFile,g,u.endsWith("/"),{explicitCurrentDirLinks:t.explicitCurrentDirLinks===true||Ae,scope:t.scope??"project",pathIsDirectory:t.pathIsDirectory,logicalMeshSourceAbsolute:O?null:_,forceRelative:Ae,tokenContext:d,originalToken:u});return it?`${it}${p}${c}`:o}),missing:[...e]}}var up=f(()=>{Dt();fn();rC();iC();mC();fC();i(bl,"rewriteFileLinks");});function hC(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 H(t,e,r="project"){let n=new Map,o=Array.from(new Set([t,...ht]));for(let l of o){let c=await W_(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 hC(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 hC(c))a.add(normalize(m));}return (l,c,m)=>bl({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 bt=f(()=>{B_();up();ar();i(hC,"pathVariants");i(H,"createImportReferenceNormalizer");});function IC(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(!Te({...m,type:u}))continue;let p=u==="prompt"?Ot(m)||ut(m):ut(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 SC(t,e){let r=join(t,fr),n=await S(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=IC(o);if(Object.keys(s).length===0)return false;let a=stringify(s),l=join(t,bn);return await k(dirname(l)),await R(l,a),e.push({fromTool:"claude-code",fromPath:r,toPath:bn,feature:"hooks"}),true}async function RC(t,e){let r=e.some(m=>m.feature==="hooks"&&m.fromPath.replace(/\\/g,"/").endsWith(fr)),n=join(t,Bs),o=await S(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,Vs);await k(dirname(u)),await R(u,m),e.push({fromTool:"claude-code",fromPath:n,toPath:Vs,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(g=>typeof g=="string"):[],p=Array.isArray(m.deny)?m.deny.filter(g=>typeof g=="string"):[],d=Array.isArray(m.ask)?m.ask.filter(g=>typeof g=="string"):[];if(u.length>0||p.length>0||d.length>0){let g=stringify({allow:u,deny:p,ask:d}),h=join(t,Uc);await k(dirname(h)),await R(h,g),e.push({fromTool:"claude-code",fromPath:n,toPath:Uc,feature:"permissions"});}}let c=s.hooks;if(!r&&c&&typeof c=="object"&&!Array.isArray(c)){let m=IC(c);if(Object.keys(m).length>0){let u=stringify(m),p=join(t,bn);await k(dirname(p)),await R(p,u),e.push({fromTool:"claude-code",fromPath:n,toPath:bn,feature:"hooks"});}}}var _C=f(()=>{le();b();gr();i(IC,"claudeHooksToCanonical");i(SC,"importClaudeHooksJson");i(RC,"importSettings");});async function kC(t,e,r){let n=join(t,Ws),o=join(t,jc),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 g=await S(d);if(g===null)continue;let h=relative(c,d),C=join(u,h);await k(dirname(C));let _=r(g,d,C),y=h==="SKILL.md"?w(_):null;await R(C,h==="SKILL.md"?await Le(C,y?.frontmatter??{},y?.body??""):_);let O=`${jc}/${m}/${h}`;e.push({fromTool:"claude-code",fromPath:d,toPath:O,feature:"skills"});}}}var wC=f(()=>{b();F();Y();gr();i(kC,"importClaudeSkills");});async function ba(t,e={}){let r=e.scope??"project",n=[],o=await H("claude-code",t,r);return n.push(...await gt(Ea,t,r,{normalize:o})),await kC(t,n,o),await SC(t,n),await RC(t,n),n}var gm=f(()=>{bt();Me();_C();wC();fm();i(ba,"importFromClaudeCode");});function wd(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(wd,"createRouter");var lo={green:"\x1B[32m",red:"\x1B[31m",yellow:"\x1B[33m",cyan:"\x1B[36m",reset:"\x1B[0m"};function CO(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}i(CO,"noColor");function Rs(t,e){return CO()?e:`${t}${e}${lo.reset}`}i(Rs,"c");function kO(t,e){let r=[...t].length;return t+" ".repeat(Math.max(0,e-r))}i(kO,"pad");var I={info(t){process.stdout.write(Rs(lo.cyan,t)+`
|
|
119
|
+
`);},warn(t){process.stderr.write(Rs(lo.yellow,"\u26A0 ")+t+`
|
|
120
|
+
`);},error(t){process.stderr.write(Rs(lo.red,"\u2717 ")+t+`
|
|
121
|
+
`);},success(t){process.stdout.write(Rs(lo.green,"\u2713 ")+t+`
|
|
122
|
+
`);},debug(t){process.env.AGENTSMESH_DEBUG==="1"&&process.stdout.write(Rs(lo.cyan,"[debug] ")+t+`
|
|
123
|
+
`);},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+`
|
|
124
|
+
`);for(let o=0;o<t.length;o++){let a="| "+t[o].map((l,c)=>kO(l,r[c])).join(" | ")+" |";process.stdout.write(a+`
|
|
125
|
+
`);}process.stdout.write(n+`
|
|
126
|
+
`);}};var Od=[{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"}],Ed=[{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 bd(t,e=18){return t.length===0?" (no command-specific flags)":t.map(r=>` ${r.name.padEnd(e)}${r.description}`).join(`
|
|
127
|
+
`)}i(bd,"formatFlags");function xd(){let t=Ed.map(e=>`- ${e.name.padEnd(8)} ${e.description}
|
|
128
|
+
Usage: ${e.usage}
|
|
129
|
+
${bd(e.flags)}`).join(`
|
|
130
|
+
|
|
131
|
+
`);I.info(`agentsmesh <command> [flags]
|
|
132
|
+
|
|
133
|
+
Global flags:
|
|
134
|
+
${bd(Od)}
|
|
135
|
+
|
|
136
|
+
Commands:
|
|
137
|
+
${t}
|
|
138
|
+
|
|
139
|
+
Tip: run "agentsmesh <command> --help" for this same command reference.`);}i(xd,"printHelp");var bO=createRequire(import.meta.url),rc=dirname(fileURLToPath(import.meta.url)),xO=rc.endsWith("dist")?join(rc,"..","package.json"):join(rc,"..","..","package.json"),Ad=bO(xO);function _s(){return Ad.version}i(_s,"getVersion");function Td(){process.stdout.write(`agentsmesh v${Ad.version}
|
|
140
|
+
`);}i(Td,"printVersion");function Ld(t,e){e?.verbose&&t.stack?process.stderr.write(t.stack+`
|
|
141
|
+
`):I.error(t.message),process.exit(1);}i(Ld,"handleError");b();Cs();ar();var Gd=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],Jt=z$1.enum(ht),mo=z$1.enum(Gd),Os=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(),JO=z$1.object({name:z$1.string(),source:z$1.string(),version:z$1.string().optional(),target:Jt.optional(),features:z$1.array(mo),path:z$1.string().optional(),pick:Os.optional()}),YO=z$1.object({strategy:z$1.enum(["merge","lock","last-wins"]).default("merge"),lock_features:z$1.array(z$1.string()).default([])}),ws=z$1.union([z$1.boolean(),z$1.object({project:z$1.boolean().optional(),global:z$1.boolean().optional()}).strict()]),XO=z$1.object({commands_to_skills:z$1.object({"codex-cli":ws.optional()}).passthrough().optional(),agents_to_skills:z$1.object({"gemini-cli":ws.optional(),cline:ws.optional(),"codex-cli":ws.optional(),windsurf:ws.optional()}).passthrough().optional()}).strict().optional(),ZO=z$1.object({id:z$1.string().regex(/^[a-z][a-z0-9-]*$/),source:z$1.string(),version:z$1.string().optional()}).strict(),sc=z$1.object({version:z$1.literal(1),targets:z$1.array(Jt).default([...ht]),features:z$1.array(mo).default([...Gd]),extends:z$1.array(JO).default([]),overrides:z$1.record(z$1.string(),z$1.record(z$1.string(),z$1.unknown())).default({}),collaboration:YO.default({strategy:"merge",lock_features:[]}),conversions:XO,plugins:z$1.array(ZO).default([]),pluginTargets:z$1.array(z$1.string().regex(/^[a-z][a-z0-9-]*$/)).default([])});var ac="agentsmesh.yaml",QO="agentsmesh.local.yaml";async function tE(t){let e=resolve(t);for(;;){let r=join(e,ac);if(await L(r))return r;let n=dirname(e);if(n===e)return null;e=n;}}i(tE,"findConfigPath");async function eE(t){let e=await S(t);if(e===null)throw new $r(t);let r=parse(e),n=sc.safeParse(r);if(!n.success){let o=n.error.issues.map(s=>s.message);throw new Ji(t,o,{cause:n.error})}return n.data}i(eE,"loadConfig");function ic(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]=ic(s,o):r[n]=o;}return r}i(ic,"deepMergeObjects");function rE(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=ic(r.overrides??{},e.overrides)),typeof e.conversions=="object"&&e.conversions!==null&&!Array.isArray(e.conversions)&&(r.conversions=ic(r.conversions??{},e.conversions)),Array.isArray(e.extends)&&e.extends.length>0&&(r.extends=[...t.extends??[],...e.extends]),r}i(rE,"mergeLocalConfig");async function lc(t){let e=join(t,ac),r=await eE(e),n=join(t,QO),o=await S(n);if(o!==null){let s=parse(o);if(typeof s=="object"&&s!==null&&!Array.isArray(s)){let a=rE(r,s),l=sc.safeParse(a);if(l.success)r=l.data;else {let c=l.error.issues.map(m=>m.message).join("; ");I.warn(`Ignoring invalid agentsmesh.local.yaml at ${n}: ${c}. Using project config instead.`);}}}return {config:r,configDir:t}}i(lc,"loadConfigFromExactDir");async function Wd(t){let e=await tE(t);if(e===null)throw new $r(join(t,ac));return lc(dirname(e))}i(Wd,"loadConfigFromDir");Cs();function Es(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(Es,"resolveScopeContext");async function at(t,e="project"){if(e==="project"){let{config:n,configDir:o}=await Wd(t);return {config:n,context:{scope:e,rootBase:o,configDir:o,canonicalDir:join(o,".agentsmesh")}}}let r=Es(t,e);try{let{config:n}=await lc(r.configDir);return {config:n,context:r}}catch(n){throw n instanceof $r?new $r(n.path,{cause:n,message:`agentsmesh.yaml not found at ${n.path} (global scope). Run 'agentsmesh init --global' to create it under ~/.agentsmesh, or drop the --global flag to operate on the current project.`}):n}}i(at,"loadScopedConfig");b();b();var cE=promisify(execFile),Bd="repo";async function Zi(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,Bd),p=`${m}.tmp`,d=join(p,Bd);if(!r.refresh&&await Kd(u))return pc(u);try{return await rm$1(p,{recursive:!0,force:!0}),await mkdir(p,{recursive:!0}),await uE(mE(t),d),t.ref&&await pE(d,t.ref),await rm$1(m,{recursive:!0,force:!0}),await rename(p,m),pc(u)}catch(g){if(await rm$1(p,{recursive:true,force:true}),r.allowOfflineFallback!==false&&await Kd(u))return console.warn(`[agentsmesh] Remote fetch failed for ${e}; using cached version. Error: ${g instanceof Error?g.message:String(g)}`),pc(u);throw g}}i(Zi,"fetchGitRemoteExtend");async function pc(t){return {resolvedPath:t,version:await dE(t)}}i(pc,"readCachedRepo");async function Kd(t){return L(t)}i(Kd,"hasCachedRepo");function mE(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(mE,"resolveCloneUrl");async function uE(t,e){await dc(["clone",t,e]);}i(uE,"cloneRepo");async function pE(t,e){await dc(["checkout",e],t);}i(pE,"checkoutRef");async function dE(t){return dc(["rev-parse","HEAD"],t)}i(dE,"getHeadSha");async function dc(t,e){let{stdout:r}=await cE("git",t,{cwd:e,env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return r.trim()}i(dc,"runGit");b();async function Jd(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(Jd,"resolveLatestTag");async function Yd(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 Jd(t.org,t.repo,a);}catch(y){if(!s)throw y;return IE(t,e,r,n,o,a)}let m=o("github",`${t.org}/${t.repo}`,c),u=join(n,m);if(!l&&await L(u)){let y=await fc(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 g;try{let y=await globalThis.fetch(p,{headers:d,redirect:"follow"});if(!y.ok)throw new Error(`HTTP ${y.status}: ${y.statusText}`);g=await y.arrayBuffer();}catch(y){if(r.allowOfflineFallback!==false&&await L(u)){let D=await fc(u);if(D)return console.warn(`[agentsmesh] Network failed for ${e}; using cached version. Error: ${y instanceof Error?y.message:String(y)}`),{resolvedPath:join(u,D),version:c}}throw y}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(g));try{await Vd.extract({file:h,cwd:u,strict:!0,filter:i((y,O)=>!(yE(y)||O&&"type"in O&&(O.type==="Link"||O.type==="SymbolicLink")),"filter")});}finally{await rm$1(h,{force:true}).catch(()=>{});}let C=await fc(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(Yd,"fetchGithubRemoteExtend");async function fc(t){let r=(await readdir(t,{withFileTypes:true})).filter(n=>n.isDirectory()&&!n.name.startsWith("."));return r.length===1?r[0].name:null}i(fc,"findExtractTopDir");function zd(t,e,r){return r?`https://x-access-token:${encodeURIComponent(r)}@github.com/${t}/${e}.git`:`https://github.com/${t}/${e}.git`}i(zd,"buildGithubCloneUrl");function yE(t){let e=t.replace(/\\/g,"/");return e.startsWith("/")||e.split("/").includes("..")}i(yE,"isZipSlipPath");async function IE(t,e,r,n,o,s){let a=s?[zd(t.org,t.repo,s)]:[zd(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 Zi(m,e,r,n,o)}catch(u){l=u;}}throw l instanceof Error?l:new Error("Failed to clone GitHub default branch")}i(IE,"fetchGithubDefaultBranch");function Xd(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(Xd,"splitSourceRef");function Zd(t){let e=Xd(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(Zd,"parseGithubSource");function qd(t){let e=Xd(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(qd,"parseGitlabSource");function Qd(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(Qd,"parseGitSource");function hn(t){let e=Zd(t);if(e)return {kind:"github",...e};let r=qd(t);if(r)return {kind:"gitlab",...r};let n=Qd(t);return n?{kind:"git",...n}:null}i(hn,"parseRemoteSource");function gc(t){return hn(t)!==null}i(gc,"isSupportedRemoteSource");function CE(t){let e=hn(t);return e?e.kind==="github"?uo("github",`${e.org}/${e.repo}`,e.tag):e.kind==="gitlab"?uo("gitlab",`${e.namespace}/${e.project}`,e.ref??"HEAD"):uo("git",e.url,e.ref??"HEAD"):null}i(CE,"cacheKeyFromSource");async function rf(t,e){let r=CE(t);if(!r)return;let n=e??Tt(),o=join(n,r);await rm$1(o,{recursive:true,force:true});}i(rf,"cleanInstallCache");async function nf(t,e){let r=t??Tt(),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(nf,"sweepStaleCache");function uo(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(uo,"buildCacheKey");function Tt(){let t=process.env.AGENTSMESH_CACHE;return t||join(homedir(),".agentsmesh","cache")}i(Tt,"getCacheDir");async function po(t,e,r={}){let n=hn(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??Tt();return nf(o).catch(()=>{}),n.kind==="github"?Yd(n,e,r,o,uo,!t.includes("@")):Zi(n,e,r,o,uo)}i(po,"fetchRemoteExtend");function xE(t){return t.startsWith("http://")||t.startsWith("https://")}i(xE,"isOtherRemoteSource");async function fo(t,e,r={}){if(t.extends.length===0)return [];if(r.refreshCache===true&&t.extends.some(o=>gc(o.source))){let o=Tt();await rm$1(o,{recursive:true,force:true}),await mkdir(o,{recursive:true});}let n=[];for(let o of t.extends){if(xE(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(gc(o.source)){let a=await po(o.source,o.name,{cacheDir:Tt(),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 L(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(fo,"resolveExtendPaths");b();F();var TE=["always_on","model_decision","glob","manual"];function sf(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):typeof t=="string"?t?[t]:[]:[]}i(sf,"toStrArray");async function yn(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 S(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"&&TE.includes(p)?p:void 0,g=a.codex_emit,h=g==="execution"?"execution":g==="advisory"?"advisory":void 0,_=a.codex_instruction==="override"?"override":void 0;n.push({source:o,root:m||u,targets:sf(a.targets),description:typeof a.description=="string"?a.description:"",globs:sf(a.globs),body:l,...d!==void 0&&{trigger:d},...h!==void 0&&{codexEmit:h},..._!==void 0&&{codexInstructionVariant:_}});}return n}i(yn,"parseRules");b();F();function lf(t){return t===true||t==="true"||t===1||t==="1"}i(lf,"toBool");function cf(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(cf,"toToolsArray");async function In(t){let r=(await P(t)).filter(o=>o.endsWith(".md")&&!basename(o).startsWith("_")),n=[];for(let o of r){let s=await S(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),c=basename(o,".md"),m=cf(a.allowedTools),u=cf(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:lf(a.outputStyle)||lf(a["output-style"]),body:l});}return n}i(In,"parseCommands");b();F();function Sn(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(Sn,"toStrArray");function uf(t){return t===true||t==="true"||t===1||t==="1"}i(uf,"toBool");function pf(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(pf,"toInt");function LE(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)?t:{}}i(LE,"toHooks");async function Rn(t){let r=(await P(t)).filter(o=>o.endsWith(".md")&&!basename(o).startsWith("_")),n=[];for(let o of r){let s=await S(o);if(!s)continue;let{frontmatter:a,body:l}=w(s),c=basename(o,".md"),m=Sn(a.tools),u=Sn(a.tools),p=m.length>0?m:u,d=Sn(a.disallowedTools),g=Sn(a["disallowed-tools"]),h=d.length>0?d:g,C=Sn(a.mcpServers),_=Sn(a["mcp-servers"]),y=C.length>0?C:_,O=Sn(a.skills),D=pf(a.maxTurns),E=pf(a["max-turns"]),x=D>0?D:E>0?E: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:x,mcpServers:y,hooks:LE(a.hooks),skills:O,memory:typeof a.memory=="string"?a.memory:"",outputStyle:uf(a.outputStyle)||uf(a["output-style"]),body:l});}return n}i(Rn,"parseAgents");b();F();async function FE(t){return await S(t)??""}i(FE,"readContent");var qi="SKILL.md",vE=[".git","node_modules"];function $E(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i($E,"sanitizeSkillName");async function df(t){let e=await P(t),r=[];for(let n of e){let s=n.slice(t.length+1).replace(/\\/g,"/");if(s===qi||s.endsWith(`/${qi}`))continue;let a=s.split("/")[0];if(vE.some(c=>a===c)||s===".DS_Store"||s.endsWith("/.DS_Store"))continue;let l=await FE(n);r.push({relativePath:s,absolutePath:n,content:l});}return r.sort((n,o)=>n.relativePath.localeCompare(o.relativePath))}i(df,"listSupportingFiles");async function ff(t){let e=join(t,qi),r=await S(e);if(!r)return null;let{frontmatter:n,body:o}=w(r),s=await df(t),a=typeof n.name=="string"?$E(n.name):"";return {source:e,name:a||basename(t),description:typeof n.description=="string"?n.description:"",body:o,supportingFiles:s}}i(ff,"parseSkillDirectory");async function go(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,qi),a=await S(s);if(!a)continue;let{frontmatter:l,body:c}=w(a),m=await df(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(go,"parseSkills");b();function gf(t){return t===null||typeof t!="object"||Array.isArray(t)?{}:Object.fromEntries(Object.entries(t).filter(e=>typeof e[1]=="string"))}i(gf,"parseStringMap");function ME(t){if(!t||typeof t!="object")return null;let e=t,r=typeof e.type=="string"?e.type:"stdio",n=gf(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:gf(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(ME,"parseServer");async function Qi(t){let e=await S(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=ME(a);l&&(o[s]=l);}return {mcpServers:o}}i(Qi,"parseMcp");b();function yc(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):[]}i(yc,"ensureStringArray");async function ta(t){let e=await S(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=yc(n.allow),s=yc(n.deny),a=yc(n.ask);return {allow:o,deny:s,ask:a}}i(ta,"parsePermissions");b();le();var UE=["command","prompt"];function WE(t){if(!t||typeof t!="object")return null;let e=t,r=e.matcher;if(typeof r!="string")return null;let n=Ic(e);if(!n)return null;let o=typeof e.type=="string"&&UE.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(WE,"toHookEntry");async function ea(t){let e=await S(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=WE(c);m&&l.push(m);}l.length>0&&(n[s]=l);}return n}i(ea,"parseHooks");b();async function ra(t){let e=await S(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(ra,"parseIgnore");b();async function _n(t){let e=join(t,".agentsmesh"),r=await L(e)?e:t,[n,o,s,a,l,c,m,u]=await Promise.all([yn(join(r,"rules")),In(join(r,"commands")),Rn(join(r,"agents")),go(join(r,"skills")),Qi(join(r,"mcp.json")),ta(join(r,"permissions.yaml")),ea(join(r,"hooks.yaml")),ra(join(r,"ignore"))]);return {rules:n,commands:o,agents:s,skills:a,mcp:l,permissions:c,hooks:m,ignore:u}}i(_n,"loadCanonicalFiles");function yf(t){return basename(t.source,".md")}i(yf,"ruleSlug");function ho(t,e){let r=new Map(t.rules.map(u=>[yf(u),u]));for(let u of e.rules)r.set(yf(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=KE(t.mcp,e.mcp),l=HE(t.permissions,e.permissions),c=zE(t.hooks,e.hooks),m=VE(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(ho,"mergeCanonicalFiles");function KE(t,e){if(!t&&!e)return null;let r=t?.mcpServers??{},n=e?.mcpServers??{};return {mcpServers:{...r,...n}}}i(KE,"mergeMcp");function HE(t,e){if(!t&&!e)return null;let r=Sc(t?.allow??[],e?.allow??[]),n=Sc(t?.deny??[],e?.deny??[]),o=Sc(t?.ask??[],e?.ask??[]);return {allow:r,deny:n,ask:o}}i(HE,"mergePermissions");function Sc(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(Sc,"mergeUniqueStrings");function zE(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(zE,"mergeHooks");function VE(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(VE,"mergeIgnore");b();var If=[{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 na(t){let e=null,r=0;for(let n of If){let o=0;for(let s of n.paths)await L(join(t,s))&&o++;o>r&&(r=o,e=n.target);}return r>0?e:null}i(na,"detectNativeFormat");var Sf=If.map(t=>t.paths[0]).filter(t=>t!==void 0);b();gm();iu();Hm();Eu();$m();qu();Rm();Mm();Pu();Lu();var lL={"claude-code":ba,cursor:el,copilot:za,"gemini-cli":ml,"codex-cli":$a,windsurf:Cl,cline:Ta,continue:Ga,junie:pl,kiro:fl};async function bi(t,e){let r=lL[e];if(!r)throw new Error(`No importer registered for native target: ${e}`);return r(t)}i(bi,"importNativeToCanonical");b();var gp="SKILL.md";async function to(t){if(!await L(t))return false;if(await L(join(t,gp)))return true;try{let e=await readdir(t,{withFileTypes:!0});for(let r of e)if(!(!r.isDirectory()||r.name.startsWith("."))&&await L(join(t,r.name,gp)))return !0}catch{return false}return false}i(to,"isSkillPackLayout");async function xi(t){if(!await L(t))return [];if(await L(join(t,gp))){let e=await ff(t);return e?[e]:[]}return go(t)}i(xi,"loadSkillsAtExtendPath");b();function pL(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(pL,"emptyCanonical");function dL(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(dL,"isCanonicalSliceEmpty");async function Al(t){if(!await L(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(Al,"normalizeSlicePath");async function fL(t){if(basename(t)==="rules")return yn(t);let r=join(t,"rules");return await L(r)?yn(r):[]}i(fL,"parseRulesAt");async function gL(t){if(basename(t)==="commands")return In(t);let r=join(t,"commands");return await L(r)?In(r):[]}i(gL,"parseCommandsAt");async function hL(t){if(basename(t)==="agents")return Rn(t);let r=join(t,"agents");return await L(r)?Rn(r):[]}i(hL,"parseAgentsAt");async function yL(t){if(await to(t))return xi(t);let e=join(t,"skills");return await to(e)?xi(e):[]}i(yL,"loadSkillsForPartialSlice");async function Tl(t){let e=join(t,".agentsmesh");if(await L(e))return _n(t);let r=pL();if(r.rules=await fL(t),r.commands=await gL(t),r.agents=await hL(t),r.skills=await yL(t),dL(r))throw new Error(`No installable resources at ${t}. Expected .agentsmesh/, or rules/, commands/, agents/, or Anthropic-style skills (SKILL.md).`);return r}i(Tl,"loadCanonicalSliceAtPath");function IL(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(IL,"emptyCanonical");async function OC(t){let e=t.resolvedPath;if(!t.path){let o=join(e,".agentsmesh");if(!await L(o)){if(await to(e)){let a=await xi(e);return {...IL(),skills:a}}let s=t.target??await na(e);if(!s)throw new Error(`Extend "${t.name}": No supported agent configuration found in ${e}.
|
|
142
|
+
Expected one of: .agentsmesh/, ${Sf.join(", ")}.`);I.info(`[agentsmesh] Extend "${t.name}": ${t.target?"specified":"detected"} ${s} format, importing to .agentsmesh/...`),await bi(e,s);}return _n(e)}let r=join(e,t.path);if(!await L(r))throw new Error(`Extend "${t.name}": path does not exist: ${r}`);if(t.target){let o=join(e,".agentsmesh");return await L(o)||(I.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)),_n(e)}let{sliceRoot:n}=await Al(r);try{return await Tl(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(OC,"loadCanonicalForExtend");function Ll(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)||I.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)||I.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)||I.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)||I.warn(`[agentsmesh] pick name "${c}" not found in rules from extend "${n}".`);}return o}i(Ll,"applyExtendPick");b();var _L=["rules","commands","agents","skills"],us=z$1.enum(_L);var CL=z$1.enum(["github","gitlab","git","local"]),EC=z$1.object({name:z$1.string().min(1),source:z$1.string().min(1),version:z$1.string().optional(),source_kind:CL,installed_at:z$1.string(),updated_at:z$1.string(),features:z$1.array(mo).min(1),pick:Os.optional(),target:Jt.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:us.optional(),content_hash:z$1.string()});function bC(t){let e=hn(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(bC,"sourceIdentity");function wL(t,e){return e?t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n]):true}i(wL,"sameFeatures");async function Nl(t){let e=join(t,"pack.yaml"),r=await S(e);if(r===null)return null;try{let n=parse(r);return EC.parse(n)}catch{return null}}i(Nl,"readPackMetadata");async function PC(t,e,r){if(!await L(t))return null;let n=bC(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 Nl(a);if(l&&bC(l.source)===n&&l.target===r.target&&l.as===r.as&&wL(l.features,r.features))return {meta:l,packDir:a,name:l.name}}return null}i(PC,"findExistingPack");async function Dl(t){if(!await L(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 Nl(o);s&&r.push({meta:s,packDir:o,name:s.name});}return r}i(Dl,"listPacks");function AC(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(AC,"emptyCanonical");async function OL(t){let[e,r,n,o,s,a,l,c]=await Promise.all([yn(join(t,"rules")),In(join(t,"commands")),Rn(join(t,"agents")),go(join(t,"skills")),Qi(join(t,"mcp.json")),ta(join(t,"permissions.yaml")),ea(join(t,"hooks.yaml")),ra(join(t,"ignore"))]);return {...AC(),rules:e,commands:r,agents:n,skills:o,mcp:s,permissions:a,hooks:l,ignore:c}}i(OL,"loadPackCanonical");async function TC(t){let e=join(t,"packs"),r=await Dl(e),n=AC();for(let{meta:o,packDir:s}of r){let a=await OL(s),l=Ip(a,o.features),c=Ll(l,o.features,o.pick,o.name);n=ho(n,c);}return n}i(TC,"loadPacksCanonical");var bL={rules:["rules"],commands:["commands"],agents:["agents"],skills:["skills"],mcp:["mcp"],permissions:["permissions"],hooks:["hooks"],ignore:["ignore"]};function Ip(t,e){if(e.length===0)return LC();let r=new Set(e.flatMap(n=>bL[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(Ip,"filterCanonicalByFeatures");function LC(){return {rules:[],commands:[],agents:[],skills:[],mcp:null,permissions:null,hooks:null,ignore:[]}}i(LC,"emptyCanonical");async function oe(t,e,r={},n=join(e,".agentsmesh")){let o=await fo(t,e,{refreshCache:r.refreshRemoteCache===true}),s=LC();for(let c of o){let m=await OC(c),u=Ip(m,c.features),p=Ll(u,c.features,c.pick,c.name);s=ho(s,p);}let a=await TC(n);s=ho(s,a);let l=await _n(n);return s=ho(s,l),{canonical:s,resolvedExtends:o}}i(oe,"loadCanonicalWithExtends");b();function Ti(t){return createHash("sha256").update(t,"utf8").digest("hex")}i(Ti,"hashContent");async function Fl(t){try{let e=await readFile(t,"utf8");return Ti(e)}catch(e){if(e instanceof Error&&"code"in e&&e.code==="ENOENT")return null;throw e}}i(Fl,"hashFile");var Rp=".lock",NL=[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 DL(t){return t.startsWith("packs/")?false:NL.some(e=>e(t))}i(DL,"isCanonical");var FL={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 vl(t){let e=join(t,Rp),r=await S(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(vl,"readLock");async function Li(t,e){let r=join(t,Rp),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
143
|
# Tracks the state of all config files for team conflict resolution.
|
|
143
144
|
|
|
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:
|
|
145
|
+
`+stringify(n);await R(r,o);}i(Li,"writeLock");async function vr(t){if(!await L(t))return {};let e=await P(t),r={};for(let n of e){let o=relative(t,n).replace(/\\/g,"/");if(o===Rp||!DL(o))continue;let s=await Fl(n);s!==null&&(r[o]=s.startsWith("sha256:")?s:`sha256:${s}`);}return r}i(vr,"buildChecksums");function $l(t,e,r){if(r.length===0)return [];let n=r.map(a=>FL[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($l,"detectLockedFeatureViolations");async function Ni(t){let e=await Dl(t),r={};for(let{meta:n}of e)r[n.name]=n.content_hash;return r}i(Ni,"buildPackChecksums");async function eo(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 vr(n),s=Object.keys(o).sort().map(c=>`${c}:${o[c]}`).join(`
|
|
146
|
+
`),a=Ti(s),l=a.startsWith("sha256:")?a:`sha256:${a}`;e[r.name]=`local:${l}`;}return e}i(eo,"buildExtendChecksums");rt();Lr();function vL(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(vL,"addDirectoryMapping");function NC(t,e,r){let n=posix.dirname(e),o=posix.dirname(r);for(;n!==".agentsmesh/skills"&&n!==".";)vL(t,n,o),n=posix.dirname(n),o=posix.dirname(o);}i(NC,"addSkillDirectoryMappings");rt();function DC(t,e,r="project"){let n=dt(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(DC,"ruleTargetPath");function FC(t,e,r,n="project"){let o=dt(t,n);return o?o.paths.commandPath(e,r):null}i(FC,"commandTargetPath");function vC(t,e,r,n="project"){let o=dt(t,n);return o?o.paths.agentPath(e,r):null}i(vC,"agentTargetPath");wt();pt();Pt();rt();function GL(t,e,r){t.set(e,r),t.set(`${e}/`,`${r}/`);}i(GL,"addDirectoryMapping");function Di(t,e,r,n="project"){let o=new Map;for(let a of e.rules){let l=DC(t,a,n);l&&o.set(`.agentsmesh/rules/${basename(a.source)}`,l);}for(let a of e.commands){let l=FC(t,a.name,r,n);l&&o.set(`.agentsmesh/commands/${a.name}.md`,l);}for(let a of e.agents){let l=vC(t,a.name,r,n);l&&o.set(`.agentsmesh/agents/${a.name}.md`,l);}let s=wi(t,n);if(!s)return o;for(let a of e.skills){GL(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),NC(o,m,u);}}return o}i(Di,"buildReferenceMap");ar();var ro="AGENTS.md";function jL(t){return t.target===ks&&t.path.endsWith(ro)}i(jL,"isCodexAgents");function $C(t){return t.target==="windsurf"&&t.path.endsWith(ro)}i($C,"isWindsurfAgents");function MC(t){return t.target==="cline"&&t.path.endsWith(ro)}i(MC,"isClineAgents");function _p(t){return t.target==="cursor"&&t.path.endsWith(ro)}i(_p,"isCursorAgents");function Cp(t){return t.target==="gemini-cli"&&t.path.endsWith(ro)}i(Cp,"isGeminiAgents");function UL(t){return t.target==="kiro"&&t.path.endsWith(ro)}i(UL,"isKiroAgents");function WL(t){return _p(t)||Cp(t)}i(WL,"isCompatibilityAgents");function Gl(t,e,r,n){let o=n.get(t);if(o)return o;let s=new Map;for(let[a,l]of Di(t,e,r))s.has(l)||s.set(l,a);return n.set(t,s),s}i(Gl,"reverseReferenceMap");function jl(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(jl,"normalizeContent");function BL(t,e,r,n,o){let s=Gl(t.target,r,n,o),a=Gl(e.target,r,n,o);return jl(t.content,s)===jl(e.content,a)}i(BL,"hasEquivalentCanonicalContent");function KL(t,e,r,n,o){let s=Gl(t.target,r,n,o),a=Gl(e.target,r,n,o),l=jl(t.content,s).trim(),c=jl(e.content,a).trim();return l.length>c.length&&l.includes(c)}i(KL,"hasCanonicalSupersetContent");function GC(t,e,r){let n=new Map;for(let a of t){if(!a.path.endsWith(ro))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)jL(a)&&o.set(a.path,a);let s=new Map;return t.filter(a=>{if(_p(a)){let c=n.get(a.path);if(c&&[...c].some(m=>m!=="cursor"))return false}if(Cp(a)){let c=n.get(a.path);if(c&&[...c].some(m=>m!=="cursor"&&m!=="gemini-cli"))return false}if(!$C(a)&&!MC(a)&&!_p(a)&&!Cp(a)&&!UL(a))return true;let l=o.get(a.path);return l?WL(a)||$C(a)||MC(a)?false:!(BL(l,a,e,r,s)||KL(l,a,e,r,s)):true})}i(GC,"preferEquivalentCodexAgents");Dt();up();Dt();Dt();rt();function jC(t,e,r,n){let o=n.normalize(e),s=n.normalize(r);t.set(o,s),t.set(`${o}/`,`${s}/`);}i(jC,"addPackAbsoluteDirMapping");function HL(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(HL,"skillSupportingDirPrefixes");function UC(t,e,r,n,o){let s=wi(e,o);if(!s)return;let a=J(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));jC(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 HL(c.supportingFiles))jC(t,a.join(m,p),a.join(u,p),a);}}i(UC,"addPackSkillArtifactMappings");Dt();function zL(t){return `.agentsmesh/rules/${basename(t.source)}`}i(zL,"canonicalRulePath");function VL(t){return `.github/instructions/${basename(t.source,".md")}.instructions.md`}i(VL,"copilotInstructionsPath");function BC(t,e,r,n,o){if(t!=="copilot"||!n?.startsWith(".github/instructions/"))return;let s=J(r);for(let a of o.rules)a.root||a.globs.length===0||e.set(s.normalize(s.join(r,zL(a))),s.normalize(s.join(r,VL(a))));}i(BC,"applyCopilotInstructionArtifactRefs");rt();function Ul(t){return t?(t.outputFamilies??[]).filter(e=>e.kind==="additional").flatMap(e=>[...e.explicitPaths??[]]):[]}i(Ul,"getAdditionalRootDecorationPaths");function KC(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(KC,"resolveRewriteFamilyId");function wp(t,e){e!==void 0&&e.length>0&&!t.includes(e)&&t.push(e);}i(wp,"pushUnique");function HC(t,e,r,n){let o=[],s=r.get(`.agentsmesh/rules/${basename(e.source)}`);wp(o,s);let a=dt(t,n);if(e.root)for(let l of Ul(a))wp(o,l);for(let l of a?.extraRuleOutputPaths?.(e,{refs:r,scope:n})??[])wp(o,l);return o}i(HC,"extraRuleOutputPaths");rt();function zC(t,e,r,n,o,s){if(e!=="global")return;let a=dt(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(zC,"addGlobalSkillMirrorSourceEntry");function YL(t){return `.agentsmesh/commands/${t.name}.md`}i(YL,"canonicalCommandPath");function XL(t){return `.agentsmesh/agents/${t.name}.md`}i(XL,"canonicalAgentPath");function ZL(t){return `.agentsmesh/skills/${t.name}/SKILL.md`}i(ZL,"canonicalSkillPath");function VC(t,e,r,n,o,s){let a=s?.scope??"project",l=J(n),c=new Map([...Di(t,e,r,a)].map(([m,u])=>[l.normalize(l.join(n,m)),l.normalize(l.join(n,u))]));return BC(t,c,n,o,e),UC(c,t,e,n,a),c}i(VC,"buildArtifactPathMap");function JC(t,e,r,n="project",o){let s=Di(t,e,r,n),a=new Map;for(let l of e.rules)for(let c of HC(t,l,s,n))a.set(c,l.source);for(let l of e.commands){let c=s.get(YL(l));c&&a.set(c,l.source);}for(let l of e.agents){let c=s.get(XL(l));c&&a.set(c,l.source);}for(let l of e.skills){let c=s.get(ZL(l));c&&(a.set(c,l.source),zC(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),zC(t,n,p,m.absolutePath,a,o));}}return a}i(JC,"buildOutputSourceMap");rt();Rc();function tN(t,e){if(!e)return null;for(let r of e){let n=Nt(r);if(n?.sharedArtifacts){for(let[o,s]of Object.entries(n.sharedArtifacts))if(s==="owner"&&t.startsWith(o))return r}}return null}i(tN,"findSharedArtifactOwner");function YC(t,e,r){if(e==="global"){let n=tN(t.path,r);if(n)return n;let o=wf(t.path);if(o)return o}return t.target}i(YC,"artifactMapTargetForResult");function eN(t,e){return `${t}\0${(e??[]).join(",")}`}i(eN,"sourceMapCacheKey");function Op(t,e){let r=J(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(Op,"collectPlannedPaths");function rN(t,e,r){let n=dt(t.target,e),o=KC(n,t.path);if(o!=="default")return `${t.target}:${o}`;let s=YC(t,e,r);return s===t.target?t.target:`${t.target}~via~${s}`}i(rN,"artifactCacheKey");function XC(t,e,r,n,o="project",s){let a=Op(n,t),l=new Map,c=new Map;return t.map(m=>{let u=eN(m.target,s),d=(c.get(u)??(()=>{let y=JC(m.target,e,r,o,s);return c.set(u,y),y})()).get(m.path);if(!d)return m;let g=YC(m,o,s),h=rN(m,o,s),C=l.get(h)??(()=>{let y=VC(g,e,r,n,m.path,{scope:o});return l.set(h,y),y})(),_=bl({content:m.content,projectRoot:n,sourceFile:d,destinationFile:J(n).join(n,m.path),translatePath:i(y=>C.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 _.content===m.content?m:{...m,content:_.content}})}i(XC,"rewriteGeneratedReferences");Dt();fn();var oN=/!?\[[^\]]*\]\(([^)]+)\)/g,sN=/^\s*\[[^\]\n]+\]:\s*(?:<([^>\n]*)>|(\S+))/gm;function iN(t){return t.endsWith(".md")||t.endsWith(".mdc")}i(iN,"isMarkdownLikeOutput");function aN(t,e){return e.some(([r,n])=>t>=r&&t<n)}i(aN,"isOffsetInRanges");function lN(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(lN,"parseMarkdownLinkDestination");function cN(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(cN,"shouldSkipLocalValidation");function mN(t,e){if(e.has(t))return true;try{let r=statSync(t);return r.isFile()||r.isDirectory()}catch{return false}}i(mN,"pathExistsForGenerate");function uN(t,e,r){let o=lN(t).split("#")[0]??"",{candidate:s}=is(o),a=s,l=as.exec(a);l&&(a=a.slice(0,l.index));let c;try{c=decodeURIComponent(a);}catch{c=a;}if(cN(c))return [];let m=Oi(c,e,r);if(m.length===0){let p=J(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 Ei(e,p)){let g=j(e,d);u.includes(g)||u.push(g);}return u}i(uN,"resolveMarkdownLinkTargets");function pN(t,e){let r=Op(e,t),n=[];for(let o of t){if(!iN(o.path))continue;let s=j(e,J(e).join(e,o.path)),a=El(o.content),l=i((c,m)=>{if(aN(m,a))return;let u=uN(c,e,s);u.length!==0&&(u.some(p=>mN(p,r))||n.push({generatePath:o.path,target:o.target,rawLink:c.trim(),checkedPaths:u}));},"visitDestination");for(let c of o.content.matchAll(oN)){let m=c[1];m!==void 0&&l(m,c.index??0);}for(let c of o.content.matchAll(sN)){let m=(c[1]??c[2]??"").trim();m&&l(m,c.index??0);}}return n}i(pN,"findBrokenMarkdownLinks");function ZC(t,e){let r=pN(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
147
|
${n.join(`
|
|
147
148
|
`)}
|
|
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(
|
|
149
|
+
Fix canonical sources or generators so every local link targets an existing file or folder.`)}i(ZC,"validateGeneratedMarkdownLinks");ar();var QC="AGENTS.md";function qC(t){switch(t){case "created":return 3;case "updated":return 2;case "unchanged":return 1;case "skipped":return 0}}i(qC,"statusRank");function dN(t,e){return qC(e.status)<=qC(t.status)?t:{...t,status:e.status,currentContent:e.currentContent??t.currentContent}}i(dN,"mergeDuplicateMetadata");function Wl(t){return t.trim()}i(Wl,"trimmedContent");function fN(t,e){if(!t.path.endsWith(QC)||t.path!==e.path)return null;let r=Wl(t.content),n=Wl(e.content);if(!r||!n)return null;let o=r.includes(n),s=n.includes(r);return o===s?null:o?t:e}i(fN,"richerAgentsResult");function gN(t,e){if(!t.path.endsWith(QC)||t.path!==e.path)return null;let r=t.target===ks?t:e.target===ks?e:null,n=r===t?e:t;return r&&Wl(r.content).length>Wl(n.content).length?r:null}i(gN,"richerCodexAgentsResult");function tk(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=fN(o,r);if(s){e[n]=s;continue}let a=gN(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]=dN(o,r);}return e}i(tk,"resolveOutputCollisions");function ek(t){let e=t.currentContent===void 0?"created":t.currentContent!==t.content?"updated":"unchanged";return t.status===e?t:{...t,status:e}}i(ek,"refreshResultStatus");b();rt();Lr();function nk(t,e){return t===null?"created":t!==e?"updated":"unchanged"}i(nk,"computeStatus");function hN(t,e,r){let n=rp(t,e,r);if(n!==null)return n;let o=Z(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(hN,"resolveGeneratedOutputPath");async function Fi(t,e,r,n,o,s){let a=hN(e,r.path,o);if(a===null)return null;let l=await S(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:nk(l,u)}),a}i(Fi,"emitGeneratedOutput");function Ep(t,e,r){return {capability:un(t,r)?.[e]??{level:"none"},scope:r}}i(Ep,"featureContext");async function no(t,e,r,n,o,s,a,l){if(o)for(let c of e){let m=l(c);if(!m)continue;let u=Ep(c,a,s);for(let p of m(r,u)){let d=await Fi(t,c,p,n,s);if(d===null)continue;let g=dt(c,s);if(g?.mirrorGlobalPath){let h=g.mirrorGlobalPath(d,e),C=h===null?[]:Array.isArray(h)?h:[h];for(let _ of C){let y=await S(join(n,_));t.push({target:c,path:_,content:p.content,currentContent:y??void 0,status:nk(y,p.content)});}}}}}i(no,"generateFeature");Oc();rt();function yN(t){return t?.rootInstructionPath?[t.rootInstructionPath,...Ul(t)]:[]}i(yN,"rootDecorationPaths");function ok(t,e,r="project"){return t.map(n=>{let o=dt(n.target,r);if(!o)return n;let s=yN(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=Nf(l);return c===n.content?n:{...n,content:c}})}i(ok,"decoratePrimaryRootInstructions");rt();Lr();xu();function bp(t,e,r,n,o){let a=(Nt(t)??Z(t))?.mergeGeneratedOutputContent?.(e,r,n,o);if(a!=null)return a;let l=r?.content??e;return l!==null&&fR.includes(o)?hR(l,n):n}i(bp,"mergeOutputContent");async function sk(t,e,r,n,o){for(let s of e){let a=ss(s,"permissions",void 0,o)??Z(s)?.generators.generatePermissions;if(a)for(let l of a(r))await Fi(t,s,l,n,o,{mergeContent:i((c,m,u,p)=>bp(s,c,m,u,p),"mergeContent")});}}i(sk,"generatePermissionsFeature");async function ik(t,e,r,n,o,s){for(let a of e){let l=ss(a,"hooks",s,o)??Z(a)?.generators.generateHooks;if(!l)continue;let c=Ep(a,"hooks",o),m=[...l(r,c)],p=(Nt(a)??Z(a))?.postProcessHookOutputs;p&&(m=[...await p(n,r,m)]);for(let d of m)await Fi(t,a,d,n,o,{mergeContent:i((g,h,C,_)=>bp(a,g,h,C,_),"mergeContent")});}}i(ik,"generateHooksFeature");async function ak(t,e,r,n,o){for(let s of e){let l=(Nt(s)??Z(s))?.emitScopedSettings;if(!l)continue;let c=l(r,o);if(c.length!==0)for(let m of c)await Fi(t,s,m,n,o,{mergeContent:i((u,p,d,g)=>bp(s,u,p,d,g),"mergeContent")});}}i(ak,"generateScopedSettingsFeature");async function Bl(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,K){return ss(x,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"),g=e.features.includes("mcp"),h=e.features.includes("permissions"),C=e.features.includes("hooks"),_=e.features.includes("ignore"),y=[];await no(y,l,r,n,m,o,"rules",x=>c(x,"rules")),await no(y,l,r,n,u,o,"commands",x=>c(x,"commands")),await no(y,l,r,n,p,o,"agents",x=>c(x,"agents")),await no(y,l,r,n,d,o,"skills",x=>c(x,"skills")),await no(y,l,r,n,g,o,"mcp",x=>c(x,"mcp")),h&&await sk(y,l,r,n,o),C&&await ik(y,l,r,n,o,e),await no(y,l,r,n,_,o,"ignore",x=>c(x,"ignore"));let O=new Set(e.features);for(let x of l){let M=(Nt(x)??Z(x))?.globalSupport?.scopeExtras;if(M){let W=await M(r,n,o,O);y.push(...W);}}(g||_||C||p||h)&&await ak(y,l,r,n,o);let D=ok(y,r,o),E=XC(D,r,e,n,o,l);return ZC(E,n),tk(GC(E.map(ek),r,e))}i(Bl,"generate");b();rt();async function lk(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 lk(s,e));continue}n.push(relative(e,s).replace(/\\/g,"/"));}return n}i(lk,"listFiles");async function _N(t,e,r){if(r.has(e))return;let n=join(t,e);await L(n)&&await rm$1(n,{recursive:true,force:true});}i(_N,"removeIfStale");async function ck(t){let e=new Set(t.expectedPaths),r=new Set,n=t.scope??"project";for(let o of t.targets){let s=ep(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 L(l))for(let c of await lk(l))r.add(`${a}/${c}`.replace(/\/+/g,"/"));}}}for(let o of r)await _N(t.projectRoot,o,e);}i(ck,"cleanupStaleGeneratedOutputs");b();Cs();var xN=6e4,PN=30,AN=200,TN=2e3;async function Pp(t,e={}){let r=e.retries??PN,n=e.retryDelayMs??AN,o=e.staleMs??xN;await mkdir(dirname(t),{recursive:true});let s=0;for(;;){let a=await LN(t);if(a)return a;let l=await NN(t);if(l!=="young"&&DN(l,o)){await rm$1(t,{recursive:true,force:true}).catch(()=>{});continue}if(s>=r){let c=l==="young"?null:l;throw new Yi(t,vN(c))}s++,await MN(n);}}i(Pp,"acquireProcessLock");async function LN(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:dk()};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(LN,"tryAcquire");async function NN(t){try{let e=await readFile(join(t,"holder.json"),"utf-8"),r=JSON.parse(e);return $N(r)?r:null}catch{try{let e=await stat(t);if(Date.now()-e.mtimeMs<TN)return "young"}catch{}return null}}i(NN,"inspectLock");function DN(t,e){return !t||Date.now()-t.started>e?true:t.hostname&&t.hostname!==dk()?false:!FN(t.pid)}i(DN,"isStale");function FN(t){if(!Number.isInteger(t)||t<=0)return false;try{return process.kill(t,0),!0}catch(e){return e.code==="EPERM"}}i(FN,"isProcessAlive");function vN(t){return t?`${t.hostname?`${t.hostname}:`:""}pid ${t.pid} (running ${Date.now()-t.started}ms)`:"unknown (unreadable lock metadata)"}i(vN,"describeHolder");function $N(t){if(typeof t!="object"||t===null)return false;let e=t;return typeof e.pid=="number"&&typeof e.started=="number"}i($N,"isLockMetadata");function dk(){return hostname()}i(dk,"getHostname");function MN(t){return new Promise(e=>setTimeout(e,t))}i(MN,"sleep");np();Lr();async function WN(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(WN,"importPluginModule");function BN(t){return "descriptor"in t?[t.descriptor]:"descriptors"in t&&Array.isArray(t.descriptors)?t.descriptors:"default"in t?[t.default]:[]}i(BN,"extractDescriptors");async function Kl(t,e){let r;try{r=await WN(t,e);}catch(s){throw new Error(`Plugin '${t.source}' failed to import: ${s instanceof Error?s.message:String(s)}`,{cause:s})}let n=BN(r),o=[];for(let s of n)try{let a=wl(s);U_(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(Kl,"loadPlugin");async function fk(t,e){let r=[];return await Promise.all(t.map(async n=>{try{let o=await Kl(n,e);r.push(o);}catch(o){I.warn(`Plugin '${n.source}' failed to load: ${o instanceof Error?o.message:String(o)}`);}})),r}i(fk,"loadAllPlugins");async function se(t,e){t.plugins.length!==0&&await fk(t.plugins,e);}i(se,"bootstrapPlugins");rt();function Ap(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=KN(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]=kl(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]=kl(p,"additionalRules",t,r);n.push({feature:`additional rules (${m.length})`,count:m.length,support:u});}}}return n}i(Ap,"buildCompatibilityMatrix");function KN(t){if(!t)return 0;let e=0;for(let r of Object.values(t))Array.isArray(r)&&(e+=r.length);return e}i(KN,"countHooks");var HN={"claude-code":"Claude"};function gk(t){return HN[t]??t}i(gk,"matrixColumnLabel");ar();rt();var zN=["rules","additionalRules","commands","agents","skills","mcp","hooks","ignore","permissions"];function hk(t){return Object.fromEntries(zN.map(e=>[e,Object.fromEntries(ht.map(r=>{let o=un(r,t)?.[e];return [r,o??{level:"none"}]}))]))}i(hk,"buildSupportMatrix");hk("project");hk("global");var Tp={native:"\u2713",embedded:"\u25C6",partial:"\u25D0",none:"\u2013"},vi={green:"\x1B[32m",blue:"\x1B[34m",yellow:"\x1B[33m",dim:"\x1B[2m",reset:"\x1B[0m"};function VN(){return process.env.NO_COLOR!==void 0&&process.env.NO_COLOR!==""}i(VN,"noColor");function JN(t,e){return VN()?e:`${t}${e}${vi.reset}`}i(JN,"colorize");var YN={native:vi.green,embedded:vi.blue,partial:vi.yellow,none:vi.dim};function yk(t){let e=Tp[t];return JN(YN[t],e)}i(yk,"coloredSymbol");function Lp(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,W)=>r?W:`${M}${W}${n.reset}`,"c"),s=i(M=>M.replace(/\u001b\[[0-9;]*m/g,"").length,"visibleLength"),a=i((M,W)=>{let q=s(M),mt=Math.max(0,W-q);return M+" ".repeat(mt)},"padWithColor"),l=Math.max(12,...e.map(M=>M.length)),c=e.map(M=>gk(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(W=>"\u2500".repeat(W)).join("\u252C")+"\u2510"),"border"),d=i(M=>o(n.dim,"\u251C"+M.map(W=>"\u2500".repeat(W)).join("\u253C")+"\u2524"),"sep"),g=i(M=>o(n.dim,"\u2514"+M.map(W=>"\u2500".repeat(W)).join("\u2534")+"\u2518"),"bottom"),h=[u,...e.map(()=>m)],C=p(h),_=[a(o(n.bold+n.cyan,"Feature"),u),...c.map(M=>a(o(n.bold+n.magenta,M),m))],y=o(n.dim,"\u2502")+_.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502"),O=d(h),D=t.map(M=>{let W=[a(o(n.cyan,M.feature),u)];for(let q of e){let mt=M.support[q]??"none",et=r?Tp[mt]:yk(mt);W.push(a(` ${et} `,m));}return o(n.dim,"\u2502")+W.join(o(n.dim,"\u2502"))+o(n.dim,"\u2502")}),E=g(h),x=[C,y,O,...D,E];x.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 x.push(o(n.bold,"Legend: ")+K.join(" ")),x.join(`
|
|
150
|
+
`)}i(Lp,"formatMatrix");function Dp(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
151
|
Per-file details:
|
|
151
152
|
`+e.join(`
|
|
152
153
|
`)+`
|
|
153
|
-
`}i(
|
|
154
|
-
`),t.verbose===true){let d=
|
|
155
|
-
`));}}i(
|
|
156
|
-
`),n=
|
|
154
|
+
`}i(Dp,"formatVerboseDetails");async function oo(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 at(r,n);await se(a,r);let{canonical:c}=await oe(a,l.configDir,{},l.canonicalDir),m=s??[...a.targets,...a.pluginTargets??[]],u=Ap(a,c,n);if(u.length===0){I.info("No features enabled. Enable features in agentsmesh.yaml.");return}let p=Lp(u,m);if(process.stdout.write(p),process.stdout.write(`
|
|
155
|
+
`),t.verbose===true){let d=Dp(c);d&&(process.stdout.write(d),process.stdout.write(`
|
|
156
|
+
`));}}i(oo,"runMatrix");function Sk(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(Sk,"ensurePathInsideRoot");function Fp(t,e){return t==="global"?`~/${e}`:e}i(Fp,"formatDisplayPath");async function ds(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(E=>E.trim()).filter(Boolean):void 0,{config:p,context:d}=await at(n,l);await se(p,n);let g=p.collaboration?.lock_features??[];if(p.collaboration?.strategy==="lock"&&!a&&g.length>0){let E=await vl(d.canonicalDir);if(E!==null){let x=await vr(d.canonicalDir),K=$l(E.checksums,x,g);if(K.length>0){I.error("Locked feature violation (strategy: lock). Modified files:");for(let M of K)I.error(` ${M}`);throw I.error("Run 'agentsmesh generate --force' to accept these changes."),new Error("Locked feature violation. Use --force to override.")}}}let{canonical:h,resolvedExtends:C}=await oe(p,d.configDir,{refreshRemoteCache:c},d.canonicalDir),_=[...p.targets,...p.pluginTargets??[]],y=u?_.filter(E=>u.includes(E)):_,O=await Bl({config:p,canonical:h,projectRoot:d.rootBase,scope:l,targetFilter:u});if(O.length===0){if(I.info("No files to generate (no root rule or rules feature disabled)."),o)return I.success("Generated files are in sync."),0;if(!s){let E=await Pp(join(d.canonicalDir,".generate.lock"));try{let x=await vr(d.canonicalDir),K=C.length>0?await eo(C):{},M=await Ni(join(d.canonicalDir,"packs")),W=process.env.USER??process.env.USERNAME??"unknown";await Li(d.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:W,libVersion:_s(),checksums:x,extends:K,packs:M});try{await nc(Tt(),join(d.configDir,".agentsmeshcache"));}catch(q){I.warn(`Could not create .agentsmeshcache symlink: ${q instanceof Error?q.message:String(q)}`);}}finally{await E();}}return r.printMatrix!==false&&await oo(t,n),0}if(o){let E=O.filter(x=>x.status!=="unchanged");if(E.length===0)return I.success("Generated files are in sync."),0;for(let x of E)I.error(`[check] ${x.status} ${Fp(l,x.path)} (${x.target})`);return I.error("Generated files are out of sync. Run 'agentsmesh generate' to update them."),1}let D=s?null:await Pp(join(d.canonicalDir,".generate.lock"));try{for(let E of O)if(s)I.info(`[dry-run] ${E.status} ${Fp(l,E.path)} (${E.target})`);else if(E.status==="created"||E.status==="updated"){let x=Sk(d.rootBase,E.path,E.target);await R(x,E.content),I.success(`${E.status} ${Fp(l,E.path)}`);}if(!s){let E=O.filter(et=>et.status==="created").length,x=O.filter(et=>et.status==="updated").length,K=O.filter(et=>et.status==="unchanged").length;await ck({projectRoot:d.rootBase,targets:y,expectedPaths:O.map(et=>et.path),scope:l}),E>0||x>0?I.info(`Generated: ${E} created, ${x} updated, ${K} unchanged`):I.info(`Nothing changed. (${K} unchanged)`);let M=await vr(d.canonicalDir),W=C.length>0?await eo(C):{},q=await Ni(join(d.canonicalDir,"packs")),mt=process.env.USER??process.env.USERNAME??"unknown";await Li(d.canonicalDir,{generatedAt:new Date().toISOString(),generatedBy:mt,libVersion:_s(),checksums:M,extends:W,packs:q});try{await nc(Tt(),join(d.configDir,".agentsmeshcache"));}catch(et){I.warn(`Could not create .agentsmeshcache symlink: ${et instanceof Error?et.message:String(et)}`);}}}finally{D&&await D();}return r.printMatrix!==false&&await oo(t,n),0}i(ds,"runGenerate");b();rt();ar();var ZN=["codex-cli"];function Rk(){return ht.filter(t=>!ZN.includes(t))}i(Rk,"starterInitTargetIds");var qN=["rules","commands","agents","skills","mcp","hooks","ignore","permissions"],QN=Rk();function Hl(t,e=QN){let r=(t.length>0?t:e).map(o=>` - ${o}`).join(`
|
|
157
|
+
`),n=qN.map(o=>` - ${o}`).join(`
|
|
157
158
|
`);return `# yaml-language-server: $schema=https://unpkg.com/agentsmesh/schemas/agentsmesh.json
|
|
158
159
|
version: 1
|
|
159
160
|
targets:
|
|
160
161
|
${r}
|
|
161
162
|
features:
|
|
162
163
|
${n}
|
|
163
|
-
`}i(
|
|
164
|
+
`}i(Hl,"buildConfig");var zl=`---
|
|
164
165
|
root: true
|
|
165
166
|
description: "Project rules"
|
|
166
167
|
---
|
|
@@ -169,7 +170,7 @@ description: "Project rules"
|
|
|
169
170
|
|
|
170
171
|
Add your project-wide instructions here.
|
|
171
172
|
This file is always included in AI tool context and synced to all configured tools.
|
|
172
|
-
`,
|
|
173
|
+
`,vp=`---
|
|
173
174
|
description: "Example contextual rule \u2014 rename and customize"
|
|
174
175
|
# targets: [claude-code, cursor] # limit to specific tools (optional)
|
|
175
176
|
# globs: ["src/**/*.ts"] # activate only for matching files (optional)
|
|
@@ -178,14 +179,14 @@ description: "Example contextual rule \u2014 rename and customize"
|
|
|
178
179
|
# Example Rule
|
|
179
180
|
|
|
180
181
|
Replace this with your coding standards, conventions, or domain-specific guidelines.
|
|
181
|
-
|
|
182
|
+
`,$p=`---
|
|
182
183
|
description: "Example command \u2014 rename and customize"
|
|
183
184
|
# allowed-tools: [Read, Grep, Glob, Bash]
|
|
184
185
|
---
|
|
185
186
|
|
|
186
187
|
Describe the task for this command here.
|
|
187
188
|
Commands are invoked on-demand (e.g. /example) with a focused tool set.
|
|
188
|
-
`,
|
|
189
|
+
`,Mp=`---
|
|
189
190
|
name: example-agent
|
|
190
191
|
description: "Example subagent \u2014 rename and customize"
|
|
191
192
|
# tools: [Read, Grep, Glob]
|
|
@@ -196,7 +197,7 @@ description: "Example subagent \u2014 rename and customize"
|
|
|
196
197
|
|
|
197
198
|
Describe this agent's role and instructions here.
|
|
198
199
|
Agents are specialized subagents with restricted tools and a specific purpose.
|
|
199
|
-
`,
|
|
200
|
+
`,Gp=`---
|
|
200
201
|
name: example-skill
|
|
201
202
|
description: "Example skill \u2014 rename and customize"
|
|
202
203
|
---
|
|
@@ -205,7 +206,7 @@ description: "Example skill \u2014 rename and customize"
|
|
|
205
206
|
|
|
206
207
|
Describe the skill procedure here.
|
|
207
208
|
Skills are reusable multi-step procedures that commands and agents can reference.
|
|
208
|
-
`,
|
|
209
|
+
`,jp=`{
|
|
209
210
|
"mcpServers": {
|
|
210
211
|
// "github": {
|
|
211
212
|
// "type": "stdio",
|
|
@@ -220,7 +221,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
220
221
|
// }
|
|
221
222
|
}
|
|
222
223
|
}
|
|
223
|
-
`,
|
|
224
|
+
`,Up=`# Lifecycle hooks \u2014 run shell commands before/after AI tool use
|
|
224
225
|
# Events: PreToolUse, PostToolUse, SubagentStart, SubagentStop
|
|
225
226
|
# Matcher: tool name pattern (e.g. "Edit|Write", "Bash", "*")
|
|
226
227
|
#
|
|
@@ -233,7 +234,7 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
233
234
|
# - matcher: Edit|Write
|
|
234
235
|
# type: command
|
|
235
236
|
# command: npm test --passWithNoTests
|
|
236
|
-
`,
|
|
237
|
+
`,Wp=`# Tool permission allow/deny lists
|
|
237
238
|
#
|
|
238
239
|
# allow:
|
|
239
240
|
# - Bash(npm run:*)
|
|
@@ -249,14 +250,14 @@ Skills are reusable multi-step procedures that commands and agents can reference
|
|
|
249
250
|
allow: []
|
|
250
251
|
deny: []
|
|
251
252
|
ask: []
|
|
252
|
-
`,
|
|
253
|
+
`,Bp=`# Patterns ignored by all configured AI tools (gitignore syntax)
|
|
253
254
|
#
|
|
254
255
|
# node_modules/
|
|
255
256
|
# dist/
|
|
256
257
|
# .env*
|
|
257
258
|
# *.log
|
|
258
259
|
# coverage/
|
|
259
|
-
`,
|
|
260
|
+
`,_k=`# yaml-language-server: $schema=https://unpkg.com/agentsmesh/schemas/agentsmesh.json
|
|
260
261
|
# Personal overrides \u2014 NOT committed to git
|
|
261
262
|
# Uncomment and customize for your local setup:
|
|
262
263
|
|
|
@@ -275,25 +276,25 @@ ask: []
|
|
|
275
276
|
# overrides:
|
|
276
277
|
# claude-code:
|
|
277
278
|
# model: opus
|
|
278
|
-
`;function
|
|
279
|
-
`).map(a=>a.trim())),o=
|
|
279
|
+
`;b();rt();function Ck(t){let e=[];for(let r of Ct)for(let n of tp(r.id,t))e.push({target:r.id,path:n});return e}i(Ck,"collectDetectionPaths");function kk(t){let e=new Map;for(let{target:r,path:n}of Ck(t)){let o=e.get(r)??[];o.push(n),e.set(r,o);}return [...e.entries()].map(([r,n])=>({id:r,paths:n}))}i(kk,"toolIndicators");kk("project");async function wk(t,e="project"){let r=[];for(let{id:n,paths:o}of kk(e))for(let s of o){let a=join(t,s);if(await L(a)){r.push(n);break}}return [...new Set(r)]}i(wk,"detectExistingConfigs");b();function Rt(t,e){return join(t,e)}i(Rt,"ab");async function Kp(t){return await L(t)?(await readdir(t,{withFileTypes:true})).filter(r=>r.isFile()&&r.name.endsWith(".md")).length:0}i(Kp,"countMdFiles");async function eD(t){let e=Rt(t,"skills");if(!await L(e))return false;let r=await readdir(e,{withFileTypes:true});for(let n of r)if(n.isDirectory()&&!n.name.startsWith("_")&&await L(join(e,n.name,"SKILL.md")))return true;return false}i(eD,"hasAnyImportedSkill");async function Hp(t){let e=Rt(t,"rules");await k(e),await R(join(e,"_root.md"),zl),I.success("Created .agentsmesh/rules/_root.md"),await R(join(e,"_example.md"),vp),I.success("Created .agentsmesh/rules/_example.md");let r=Rt(t,"commands");await k(r),await R(join(r,"_example.md"),$p),I.success("Created .agentsmesh/commands/_example.md");let n=Rt(t,"agents");await k(n),await R(join(n,"_example.md"),Mp),I.success("Created .agentsmesh/agents/_example.md");let o=Rt(t,join("skills","_example"));await k(o),await R(join(o,"SKILL.md"),Gp),I.success("Created .agentsmesh/skills/_example/SKILL.md"),await R(Rt(t,"mcp.json"),jp),I.success("Created .agentsmesh/mcp.json"),await R(Rt(t,"hooks.yaml"),Up),I.success("Created .agentsmesh/hooks.yaml"),await R(Rt(t,"permissions.yaml"),Wp),I.success("Created .agentsmesh/permissions.yaml"),await R(Rt(t,"ignore"),Bp),I.success("Created .agentsmesh/ignore");}i(Hp,"writeScaffoldFull");async function Ek(t){let e=Rt(t,"rules"),r=await Kp(e),n=join(e,"_root.md"),o=await L(n);await k(e),r===0?(await R(n,zl),I.success("Created .agentsmesh/rules/_root.md"),await R(join(e,"_example.md"),vp),I.success("Created .agentsmesh/rules/_example.md")):o||(await R(n,zl),I.success("Created .agentsmesh/rules/_root.md"));let s=Rt(t,"commands");await Kp(s)===0&&(await k(s),await R(join(s,"_example.md"),$p),I.success("Created .agentsmesh/commands/_example.md"));let a=Rt(t,"agents");if(await Kp(a)===0&&(await k(a),await R(join(a,"_example.md"),Mp),I.success("Created .agentsmesh/agents/_example.md")),!await eD(t)){let p=Rt(t,join("skills","_example"));await k(p),await R(join(p,"SKILL.md"),Gp),I.success("Created .agentsmesh/skills/_example/SKILL.md");}let l=Rt(t,"mcp.json");await L(l)||(await R(l,jp),I.success("Created .agentsmesh/mcp.json"));let c=Rt(t,"hooks.yaml");await L(c)||(await R(c,Up),I.success("Created .agentsmesh/hooks.yaml"));let m=Rt(t,"permissions.yaml");await L(m)||(await R(m,Wp),I.success("Created .agentsmesh/permissions.yaml"));let u=Rt(t,"ignore");await L(u)||(await R(u,Bp),I.success("Created .agentsmesh/ignore"));}i(Ek,"writeScaffoldGapFill");var $i="agentsmesh.yaml",bk="agentsmesh.local.yaml",rD=["agentsmesh.local.yaml",".agentsmeshcache",".agentsmesh/.lock.tmp",".agentsmesh/packs/"],nD=Object.fromEntries(Ct.map(t=>[t.id,(e,r)=>t.generators.importFrom(e,{scope:r})])),xk=Ct.filter(t=>t.globalSupport!==void 0).map(t=>t.id);async function oD(t){let e=join(t,".gitignore"),r=await S(e)??"",n=new Set(r.split(`
|
|
280
|
+
`).map(a=>a.trim())),o=rD.filter(a=>!n.has(a));if(o.length===0)return;let s=r.endsWith(`
|
|
280
281
|
`)||r===""?"":`
|
|
281
|
-
`;await
|
|
282
|
+
`;await R(e,r+s+o.join(`
|
|
282
283
|
`)+`
|
|
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(`
|
|
284
|
+
`);}i(oD,"appendToGitignore");async function Pk(t,e={}){let r=e.global===true?"global":"project",n=Es(t,r),o=join(n.configDir,$i);if(await L(o))throw new Error(`Already initialized. ${$i} exists. Remove it first to re-init.`);let s=await wk(n.rootBase,r),a=r==="global"?s.filter(m=>xk.includes(m)):s,l=r==="global"?xk:void 0;if(a.length>0)if(I.info(`Found existing configurations: ${a.join(", ")}`),e.yes){I.info("Auto-importing existing configurations (--yes)...");let m=0;for(let u of a){let p=nD[u];if(!p)continue;let d=await p(n.rootBase,r);for(let g of d)I.success(` ${g.fromPath.replace(n.rootBase+"/","")} \u2192 ${g.toPath}`);m+=d.length;}m>0&&I.info(`Imported ${m} file(s) from ${a.length} tool(s).`),await Ek(n.canonicalDir),await R(o,Hl(a,l)),I.success(`Created ${$i} (targets: ${a.join(", ")})`);}else I.info("Run 'agentsmesh init --yes' to auto-import, or 'agentsmesh import --from <tool>' manually."),await Hp(n.canonicalDir),await R(o,Hl([],l)),I.success(`Created ${$i}`);else await Hp(n.canonicalDir),await R(o,Hl([],l)),I.success(`Created ${$i}`);let c=join(n.configDir,bk);await R(c,_k),I.success(`Created ${bk}`),r==="project"&&(await oD(t),I.success("Updated .gitignore"));}i(Pk,"runInit");rt();var sD=Object.fromEntries(Ct.map(t=>[t.id,{importFrom:t.generators.importFrom,emptyImportMessage:t.emptyImportMessage,lintRules:t.lintRules,lint:t.lint,capabilities:t.capabilities}]));function Vl(t){let e=sD[t];if(!e)throw new Error(`Unknown target: ${t}`);return e}i(Vl,"getTargetCatalogEntry");Lr();function Ak(t,e,r){for(let n of t){let o=relative(e,n.fromPath);I.success(`${o} \u2192 ${n.toPath}`);}I.info(`Imported ${t.length} file(s). Run 'agentsmesh generate${r==="global"?" --global":""}' to sync to other tools.`);}i(Ak,"formatImportResults");async function Tk(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(Mr(o)){let u=Es(r,s),p=Vl(o),d=await p.importFrom(u.rootBase,{scope:s});if(d.length===0){I.info(p.emptyImportMessage);return}Ak(d,u.rootBase,s);return}let a,l;try{({config:a,context:l}=await at(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 se(a,r);let c=Z(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){I.info(c.emptyImportMessage);return}Ak(m,l.rootBase,s);}i(Tk,"runImport");function Nk(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(Nk,"computeDiff");function Dk(t){return `${t.new} files would be created, ${t.updated} updated, ${t.unchanged} unchanged, ${t.deleted} deleted`}i(Dk,"formatDiffSummary");async function Fk(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 at(r,n);await se(a,r);let{canonical:c}=await oe(a,l.configDir,{},l.canonicalDir),m=await Bl({config:a,canonical:c,projectRoot:l.rootBase,scope:n,targetFilter:s});if(m.length===0){I.info("No files to generate (no root rule or rules feature disabled).");return}let{diffs:u,summary:p}=Nk(m);for(let d of u)process.stdout.write(d.patch);I.info(Dk(p));}i(Fk,"runDiff");b();Lr();Cn();Wt();var aD=[{canonicalKey:"permissions",capabilityKey:"permissions",featureFlag:"permissions",file:".agentsmesh/permissions.yaml",label:"permissions",hasContent:i(t=>{let e=t.permissions;if(!e)return false;let r=e.ask?.length??0;return e.allow.length+e.deny.length+r>0},"hasContent")},{canonicalKey:"hooks",capabilityKey:"hooks",featureFlag:"hooks",file:".agentsmesh/hooks.yaml",label:"hooks",hasContent:i(t=>{let e=t.hooks;return e?Object.values(e).some(r=>Array.isArray(r)&&r.length>0):false},"hasContent")},{canonicalKey:"mcp",capabilityKey:"mcp",featureFlag:"mcp",file:".agentsmesh/mcp.json",label:"MCP servers",hasContent:i(t=>{let e=t.mcp;return e?Object.keys(e.mcpServers).length>0:false},"hasContent")},{canonicalKey:"commands",capabilityKey:"commands",featureFlag:"commands",file:".agentsmesh/commands",label:"commands",hasContent:i(t=>t.commands.length>0,"hasContent")},{canonicalKey:"agents",capabilityKey:"agents",featureFlag:"agents",file:".agentsmesh/agents",label:"agents",hasContent:i(t=>t.agents.length>0,"hasContent")},{canonicalKey:"skills",capabilityKey:"skills",featureFlag:"skills",file:".agentsmesh/skills",label:"skills",hasContent:i(t=>t.skills.length>0,"hasContent")},{canonicalKey:"ignore",capabilityKey:"ignore",featureFlag:"ignore",file:".agentsmesh/ignore",label:"ignore patterns",hasContent:i(t=>t.ignore.length>0,"hasContent")}];function vk(t){let e=new Set(t.enabledFeatures),r=[];for(let n of aD)!e.has(n.featureFlag)||!n.hasContent(t.canonical)||me(t.capabilities[n.capabilityKey]).level!=="none"||r.push(V(n.file,t.target,`${t.target} does not support ${n.label}; canonical entries are silently dropped during generation. Disable the feature for this target or remove the canonical content.`));return r}i(vk,"lintSilentFeatureDrops");Wt();var lD=/^(?:\s*(?:bash|sh|zsh|pwsh|powershell)\s+)?["']?(?<path>(?:\.{1,2}\/|[^/\s"'`]+\/)[^\s"'`]+)["']?(?:\s|$)/;function cD(t){let r=t.match(lD)?.groups?.path;return typeof r=="string"?r:null}i(cD,"extractScriptToken");function $k(t){if(t.hasScriptProjection)return [];let e=t.canonical.hooks;if(!e)return [];let r=[];for(let n of Object.values(e))if(Array.isArray(n))for(let o of n){if(typeof o?.command!="string")continue;let s=cD(o.command);s&&r.push(V(".agentsmesh/hooks.yaml",t.target,`${t.target} hook command references script "${s}"; agentsmesh does not copy hook scripts into ${t.target} output, so the script must already exist relative to the hook execution directory or the generated config will fail.`));}return r}i($k,"lintHookScriptReferences");Wt();function Mk(t){if(t.preservesManualActivation)return [];let e=[];for(let r of t.canonical.rules)r.root||r.trigger==="manual"&&(r.targets.length>0&&!r.targets.includes(t.target)||e.push(V(r.source,t.target,`Rule has trigger: 'manual' (Cursor-style "@-mention only" activation), but ${t.target} loads every rule unconditionally. The rule will become always-on for ${t.target} \u2014 restrict it with \`targets: [cursor]\`, convert it to a skill with manual invocation, or remove it.`)));return e}i(Mk,"lintRuleScopeInversion");var mD=["node_modules",".git","dist","coverage",".agentsmesh"];async function uD(t){return (await P(t)).filter(n=>{let o=relative(t,n);return !mD.some(s=>o.includes(`/${s}/`)||o.startsWith(`${s}/`))}).map(n=>relative(t,n))}i(uD,"getProjectFiles");async function jk(t,e,r,n,o={}){let s=o.scope??"project",a=[...t.targets,...t.pluginTargets??[]],l=n?a.filter(_=>n.includes(_)):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"),g=[],h=s==="global"?[]:await uD(r);for(let _ of l){let y=Mr(_)?Vl(_):Z(_);if(y?.capabilities&&g.push(...vk({target:_,capabilities:y.capabilities,canonical:e,enabledFeatures:t.features})),d){let E=Z(_);g.push(...$k({target:_,canonical:e,hasScriptProjection:E?.postProcessHookOutputs!==void 0}));}if(c){let E=Z(_);g.push(...Mk({target:_,canonical:e,preservesManualActivation:E?.preservesManualActivation===true}));}c&&y?.lintRules&&g.push(...y.lintRules(e,r,h,{scope:s}));let O=Z(_);O?.generators.lint&&g.push(...O.generators.lint(e));let D={scope:s};m&&y?.lint?.commands&&g.push(...y.lint.commands(e,D)),u&&y?.lint?.mcp&&g.push(...y.lint.mcp(e,D)),p&&y?.lint?.permissions&&g.push(...y.lint.permissions(e,D)),d&&y?.lint?.hooks&&g.push(...y.lint.hooks(e,D));}let C=g.some(_=>_.level==="error");return {diagnostics:g,hasErrors:C}}i(jk,"runLint");async function Uk(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 at(r,n);await se(a,r);let{canonical:c}=await oe(a,l.configDir,{},l.canonicalDir),{diagnostics:m,hasErrors:u}=await jk(a,c,l.configDir,s,{scope:n});if(m.length===0)return I.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)I.error(`${C.file} (${C.target}): ${C.message}`);if(d.length>0)for(let C of d)I.warn(`${C.file} (${C.target}): ${C.message}`);let g=p.length,h=d.length;return I.info(`${g} error${g!==1?"s":""}, ${h} warning${h!==1?"s":""}`),u?1:0}i(Uk,"runLintCmd");var fD=300;function gD(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}i(gD,"normalizeWatchPath");function hD(t,e,r){let n=gD(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(hD,"shouldIgnoreWatchPath");function yD(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(yD,"featureFingerprint");async function Bk(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{context:o}=await at(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:_}=await at(r,n),{canonical:y}=await oe(C,_.configDir,{},_.canonicalDir),O=y.mcp?Object.keys(y.mcp.mcpServers).length:0,D=y.permissions?y.permissions.allow.length+y.permissions.deny.length:0,E=y.hooks?Object.values(y.hooks).reduce((W,q)=>W+(Array.isArray(q)?q.length:0),0):0,x=y.ignore.length,K=yD(C.features,y.rules.length,y.commands.length,y.agents.length,y.skills.length,O,D,E,x),M=l!==null&&l!==K;l=K,!c&&(await ds(t,r,{printMatrix:false}),!c&&(M?await oo(t,r):I.info("Regenerated.")));},"run"),d=i(()=>{let C=p().catch(_=>{if(!c){let y=_ instanceof Error?_.message:String(_);I.error(y);}}).finally(()=>{m===C&&(m=null);});m=C;},"scheduleRun"),g=i(()=>{c||(a&&clearTimeout(a),a=setTimeout(d,fD));},"schedule"),h=dD.watch(s,{ignoreInitial:true,usePolling:process.platform==="win32"});return h.on("all",(C,_)=>{hD(o.canonicalDir,_)||g();}),await new Promise((C,_)=>{h.once("ready",C),h.once("error",_);}),I.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(Bk,"runWatch");async function Kk(t){let{config:e,configDir:r,canonicalDir:n}=t,o=await vl(n);if(o===null)return {inSync:false,hasLock:false,modified:[],added:[],removed:[],extendsModified:[],lockedViolations:[]};let s=await vr(n),a=await fo(e,r),l=a.length>0?await eo(a):{},c=new Set(Object.keys(o.checksums)),m=new Set(Object.keys(s)),u=[],p=[],d=[];for(let y of c){let O=s[y];O===void 0?d.push(y):O!==o.checksums[y]&&u.push(y);}for(let y of m)c.has(y)||p.push(y);let g=new Set([...Object.keys(o.extends),...Object.keys(l)]),h=[];for(let y of g)l[y]!==o.extends[y]&&h.push(y);let C=$l(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(Kk,"checkLockSync");async function Hk(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:s}=await at(r,n);await se(o,r);let a=await Kk({config:o,configDir:s.configDir,canonicalDir:s.canonicalDir});if(!a.hasLock)return I.error("Not initialized for collaboration. Run 'agentsmesh generate' first."),1;if(a.inSync)return I.success("Lock file is in sync."),0;let l=new Set(a.lockedViolations);I.error("Conflict detected:");for(let c of a.extendsModified)I.error(` extend "${c}" was modified`);for(let c of a.modified){let m=l.has(c)?" [LOCKED]":"";I.error(` ${c} was modified${m}`);}for(let c of a.added){let m=l.has(c)?" [LOCKED]":"";I.error(` ${c} was added${m}`);}for(let c of a.removed){let m=l.has(c)?" [LOCKED]":"";I.error(` ${c} was removed${m}`);}return I.info("Run 'agentsmesh merge' to resolve, or 'agentsmesh generate --force' to accept current state."),1}i(Hk,"runCheck");b();var SD=".lock",RD="<<<<<<<";async function Vp(t){let e=join(t,SD),r=await S(e);return r===null?false:r.includes(RD)}i(Vp,"hasLockConflict");async function Vk(t,e,r){if(!await Vp(t))throw new Error("No conflict to resolve.");let o=await vr(t),s=dirname(t),a=r?await fo(r,s):[],l=a.length>0?await eo(a):{},c=await Ni(join(t,"packs")),m=process.env.USER??process.env.USERNAME??"unknown";await Li(t,{generatedAt:new Date().toISOString(),generatedBy:m,libVersion:e,checksums:o,extends:l,packs:c});}i(Vk,"resolveLockConflict");async function Jk(t,e){let r=e??process.cwd(),n=t.global===true?"global":"project",{config:o,context:s}=await at(r,n),a=s.canonicalDir;if(!await Vp(a)){I.info("No conflicts to resolve.");return}await Vk(a,_s(),o),I.success("Lock file conflict resolved.");}i(Jk,"runMerge");b();var kD=promisify(execFile);async function Jp(t){let{stdout:e}=await kD("git",t,{env:{...process.env,GIT_TERMINAL_PROMPT:"0"}});return e.trim()}i(Jp,"runGit");async function Yk(){try{return await Jp(["--version"]),!0}catch{return false}}i(Yk,"isGitAvailable");async function wD(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(`
|
|
285
|
+
`).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(wD,"gitLsRemoteResolve");async function Xk(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(`
|
|
286
|
+
`).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 wD(e,r)}i(Xk,"resolveRemoteRefForInstall");async function Zk(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 Xk(t.rawRef||"HEAD",e);if(t.kind==="github"){let l=`github:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await po(l,"install",{cacheDir:Tt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}if(t.kind==="gitlab"){let l=`gitlab:${t.org}/${t.repo}@${r}`;return {resolvedPath:(await po(l,"install",{cacheDir:Tt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:l,version:r}}let n=r,s=`git+${(t.gitPlusBase??e).split("#")[0]}#${n}`;return {resolvedPath:(await po(s,"install",{cacheDir:Tt(),refresh:false,allowOfflineFallback:false})).resolvedPath,sourceForYaml:s,version:r}}i(Zk,"fetchInstallSource");async function qk(t,e){if(t.kind==="local")return {resolvedPath:t.localRoot,sourceForYaml:t.localSourceForYaml};try{let r=await Zk(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(qk,"resolveInstallResolvedPath");function Yp(t){try{let e=new URL(t);if(e.hostname!=="github.com")return null;let r=e.pathname.split("/").filter(Boolean),n=r.indexOf("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(Yp,"parseGithubTreeUrl");function Xp(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(Xp,"parseGithubBlobUrl");function Zp(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(Zp,"parseGitlabTreeUrl");function qp(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(qp,"parseGitlabBlobUrl");var OD=new Set(["tree","blob","commit","releases","actions","issues","pulls","settings","wiki","discussions","security","projects","packages"]);function Qp(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||OD.has(r[1]))return null;let n=r[0],o=r[1];return {org:n,repo:o}}catch{return null}}i(Qp,"parseGithubRepoUrl");function td(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(td,"parseGitlabRepoUrl");function ed(t){let e=t.match(/^git@github\.com:([^/]+)\/(.+?)(?:\.git)?$/i);return e?{org:e[1],repo:e[2].replace(/\.git$/i,"")}:null}i(ed,"parseGitSshGithub");function rd(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(rd,"parseGitSshGitlab");b();var xD=/^[A-Za-z]:[\\/]/,PD=/^[A-Za-z]:\//;function Qk(...t){return t.some(e=>e.includes("\\")||xD.test(e))?win32:posix}i(Qk,"pathApiFor");function Gi(t){return t.replace(/\\/g,"/")}i(Gi,"toPosixPath");function Mi(t){return Gi(t).replace(/^\/+|\/+$/g,"")}i(Mi,"normalizeInstallPathField");function Jl(t){let e=Gi(t);return e===""||e==="."||e==="./."?".":e.startsWith("./")||e.startsWith("../")||e.startsWith("/")||PD.test(e)?e:`./${e}`}i(Jl,"normalizeLocalSourceForYaml");function gn(t){return {...t,source:t.source_kind==="local"?Jl(t.source):t.source,...t.path!==void 0?{path:Mi(t.path)}:{},...t.paths!==void 0?{paths:t.paths.map(e=>Mi(e))}:{}}}i(gn,"normalizePersistedInstallPaths");function tw(t,e,r){let n=Qk(t,e),o=n.normalize(t),s=n.normalize(e),a=Mi(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=Mi(p),g=Gi(n.relative(s,u))||".";return {kind:"local",rawRef:"",pathInRepo:a||d.replace(/\.md$/i,"").replace(/\/$/,""),localRoot:u,localSourceForYaml:Jl(g)}}let m=Gi(n.relative(s,o))||".";return {kind:"local",rawRef:"",pathInRepo:a,localRoot:o,localSourceForYaml:Jl(m)}}i(tw,"localParsedFromAbsPath");async function nd(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=Yp(n)??Xp(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=Qp(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=Zp(n)??qp(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=td(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=ed(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=rd(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 L(l))throw new Error(`Path does not exist: ${l}`);return tw(l,e,o)}i(nd,"parseInstallSource");b();b();var ew=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(mo).min(1),pick:Os.optional(),target:Jt.optional(),path:z$1.string().optional(),paths:z$1.array(z$1.string().min(1)).min(1).optional(),as:us.optional()}),DD=z$1.object({version:z$1.literal(1),installs:z$1.array(ew).default([])});function FD(t,e){return t.length===e.length&&[...t].sort().every((r,n)=>r===[...e].sort()[n])}i(FD,"sameFeatures");function vD(t,e){return t.source===e.source&&t.target===e.target&&t.as===e.as&&FD(t.features,e.features)}i(vD,"sameInstallIdentity");function rw(t){return join(t,"installs.yaml")}i(rw,"manifestPath");async function od(t){let e=await S(rw(t));if(e===null)return [];try{return DD.parse(parse(e)).installs.map(r=>gn(r))}catch{return []}}i(od,"readInstallManifest");async function nw(t,e){let r=gn(e),o=(await od(t)).filter(s=>s.name!==r.name&&!vD(s,r));o.push(r),await R(rw(t),stringify({version:1,installs:o.sort((s,a)=>s.name.localeCompare(a.name))}));}i(nw,"upsertInstallManifestEntry");function ow(t){return gn(ew.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(ow,"buildInstallManifestEntry");async function MD(t){let e=await od(t.canonicalDir);if(e.length===0){I.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 L(o)||r.push(n);}if(r.length===0){I.info("All recorded packs are already installed.");return}for(let n of r)await t.reinstall(n);I.success(`Reinstalled ${r.length} pack(s) from .agentsmesh/installs.yaml.`);}i(MD,"syncInstalledPacks");async function sw(t){return t.sync?(await MD({canonicalDir:t.canonicalDir,reinstall:t.reinstall}),true):false}i(sw,"maybeRunInstallSync");function iw(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"?us.parse(t.as.trim()):void 0,nameOverride:typeof t.name=="string"?t.name.trim():""}}i(iw,"readInstallFlags");function so(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(so,"featuresFromCanonical");async function Yl(t){let{sliceRoot:e,implicitPick:r}=await Al(t),n=await Tl(e);return {canonical:n,features:so(n),implicitPick:r}}i(Yl,"discoverFromContentRoot");function aw(t){return t.description.trim()?{skill:t,ok:true}:{skill:t,ok:false,reason:"missing description in frontmatter"}}i(aw,"validateSkill");function lw(t){return t.description.trim()?{rule:t,ok:true}:{rule:t,ok:false,reason:"missing description in frontmatter"}}i(lw,"validateRule");function cw(t){return t.description.trim()?{command:t,ok:true}:{command:t,ok:false,reason:"missing description in frontmatter"}}i(cw,"validateCommand");function mw(t){return t.description.trim()?{agent:t,ok:true}:{agent:t,ok:false,reason:"missing description in frontmatter"}}i(mw,"validateAgent");function ae(t){return basename(t.source).replace(/\.md$/i,"")}i(ae,"ruleSlug");function jD(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(jD,"featuresFromImplicitPick");function gs(t,e){let{implicitPick:r}=e,n=e.scopedFeatures??jD(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(ae(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(gs,"narrowDiscoveredForInstallScope");b();b();F();var BD=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"]),KD=new Set([".git",".github",".gitlab","node_modules",".vscode",".idea"]);async function Xl(t){let e=await S(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(Xl,"readSkillFrontmatterName");async function uw(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 !(KD.has(o)||!n.includes("/")&&BD.has(n))},"filter")});}i(uw,"cpFilteredSkill");async function YD(){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(YD,"createStageRoot");async function XD(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$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 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$1(s,join(e,a));}}i(XD,"stageMarkdownCollection");async function pw(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 k(e);for(let s of r)await cp$1(o.get(s),join(e,s),{recursive:true});return true}i(pw,"stagePreferredSkills");async function ZD(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$1(dirname(t),s,{recursive:true});return}if(await to(t)){if((await stat(join(t,"SKILL.md")).catch(()=>null))?.isFile()){if(await pw(t,e,r.preferredSkillNames??[]))return;let l=await Xl(join(t,"SKILL.md"))||basename(t),c=join(e,l);await k(e),await uw(t,c);return}if(await pw(t,e,r.preferredSkillNames??[]))return;await k(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(ZD,"stageSkills");async function dw(t,e,r={}){let n=await YD();try{let o=join(n.discoveryRoot,".agentsmesh",e);return e==="skills"?await ZD(t,o,r):await XD(t,o),n}catch(o){throw await n.cleanup(),o}}i(dw,"stageManualInstallScope");async function fw(t,e,r,n){let o=await dw(t,e,{preferredSkillNames:e==="skills"?n?.skills:void 0}),{canonical:s}=await Yl(o.discoveryRoot),a=gs(s,{scopedFeatures:[e]});return {prep:{yamlTarget:r,scopedFeatures:[e],cleanup:o.cleanup},narrowed:a,discoveredFeatures:so(a)}}i(fw,"resolveManualDiscoveredForInstall");b();var qD=[{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 QD(t){return t.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"")}i(QD,"norm");function ql(t){let e=QD(t),r=[...qD].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(ql,"targetHintFromNativePath");function id(t,e){return ql(t)===e}i(id,"pathSupportsNativePick");function gw(t,e){if(!t||!e)return;let r=ql(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(gw,"validateTargetMatchesPath");function hw(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)>0}i(hw,"extendPickHasArrays");b();b();pt();async function Iw(t,e){let r=join(t,...Bt.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(Iw,"inferGeminiCommandNamesFromFiles");pt();Zt();b();async function io(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(io,"skillNamesFromNativeSkillDir");b();ee();async function Sw(t,e){let r=join(t,...e.split("/"));if(e.startsWith(sn)){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 io(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(Sw,"inferCopilotPickFromPath");async function zt(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(zt,"mdNames");async function _w(t,e,r){let n=e.replace(/\\/g,"/").replace(/^\/+|\/+$/g,""),o=join(t,...n.split("/"));if(r==="gemini-cli"){if(n===Bt||n.startsWith(`${Bt}/`)){let s=await Iw(t,n);return s.length?{commands:s}:{}}return {}}if(r==="claude-code"){if(n.startsWith(".claude/commands")){let s=await zt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".claude/rules")){let s=await zt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".claude/agents")){let s=await zt(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 zt(o,".mdc");return s.length?{rules:s}:{}}if(n.startsWith(".cursor/commands")){let s=await zt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".cursor/agents")){let s=await zt(o,".md");return s.length?{agents:s}:{}}if(n.startsWith(".cursor/skills")){let s=await io(o);return s.length?{skills:s}:{}}return {}}if(r==="copilot")return Sw(t,n);if(r==="windsurf"&&n.startsWith(".windsurf/rules")){let s=await zt(o,".md");return s.length?{rules:s}:{}}if(r==="cline"){if(n.startsWith(It)){let s=await io(o);return s.length?{skills:s}:{}}if(n.startsWith(Ue)){let s=await zt(o,".md");return s.length?{commands:s}:{}}return {}}if(r==="continue"){if(n.startsWith(".continue/rules")){let s=await zt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".continue/prompts")){let s=await zt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".continue/skills")){let s=await io(o);return s.length?{skills:s}:{}}return {}}if(r==="junie"){if(n.startsWith(".junie/commands")){let s=await zt(o,".md");return s.length?{commands:s}:{}}if(n.startsWith(".junie/rules")){let s=await zt(o,".md");return s.length?{rules:s}:{}}if(n.startsWith(".junie/agents")){let s=await zt(o,".md");return s.length?{agents:s}:{}}if(n.startsWith(".junie/skills")){let s=await io(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(_w,"inferImplicitPickFromNativePath");function Cw(t){return (t.commands?.length??0)+(t.rules?.length??0)+(t.skills?.length??0)+(t.agents?.length??0)===0}i(Cw,"isImplicitPickEmpty");function Wi(t){return t.replace(/\\/g,"/").replace(/\/+$/,"")}i(Wi,"normalizePath");function cF(t,e){let r=Wi(t),n=Wi(e);return r===n||r.startsWith(`${n}/`)||n.startsWith(`${r}/`)}i(cF,"overlapsPath");function Ql(t,e){let r=t??[];return r.includes(e)||r.push(e),r}i(Ql,"addUnique");async function mF(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$1(t,r,{recursive:!0}),{stageRoot:r,cleanup:n}}catch(o){throw await n(),o}}i(mF,"makeStageRoot");function uF(t,e){let r;for(let o of t){if(o.feature==="rules"&&o.toPath.startsWith(".agentsmesh/rules/")){r={...r,rules:Ql(r?.rules,basename(o.toPath,".md"))};continue}if(o.feature==="commands"&&o.toPath.startsWith(".agentsmesh/commands/")){let s=Wi(relative(join(e,".agentsmesh","commands"),join(e,o.toPath)));r={...r,commands:Ql(r?.commands,s.replace(/\.md$/i,"").split("/").filter(Boolean).join(":"))};continue}if(o.feature==="agents"&&o.toPath.startsWith(".agentsmesh/agents/")){r={...r,agents:Ql(r?.agents,basename(o.toPath,".md"))};continue}if(o.feature==="skills"&&o.toPath.startsWith(".agentsmesh/skills/")){let a=Wi(relative(join(e,".agentsmesh","skills"),join(e,o.toPath))).split("/")[0];a&&(r={...r,skills:Ql(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(uF,"buildPickFromResults");function pF(t,e,r,n){let o=join(e,...Wi(t).split("/")),s=r.filter(a=>cF(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:uF(s,e)}}i(pF,"scopeImportedResults");async function ld(t,e){let{stageRoot:r,cleanup:n}=await mF(t);try{let o=await bi(r,e);return {stageRoot:r,results:o,cleanup:n}}catch(o){throw await n(),o}}i(ld,"stageImportedNativeRepo");async function cd(t,e,r){let n=await ld(t,r);try{return {stageRoot:n.stageRoot,cleanup:n.cleanup,...pF(e,n.stageRoot,n.results,r)}}catch(o){throw await n.cleanup(),o}}i(cd,"stageNativeInstallScope");async function Ew(t,e,r,n){let o=n.explicitTarget?.trim();o&&Jt.parse(o);let s=r.replace(/\\/g,"/").replace(/^\/+|\/+$/g,"");gw(o,s);let a=join(t,".agentsmesh"),l=await L(a),c=s?ql(s):void 0,m=!l&&!o?await na(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 cd(t,s,u);return {discoveryRoot:O.stageRoot,implicitPick:O.pick,scopedFeatures:O.features,yamlTarget:u,importHappened:true,cleanup:O.cleanup}}let y=await ld(t,u);return {discoveryRoot:s?join(y.stageRoot,s):y.stageRoot,yamlTarget:u,importHappened:true,cleanup:y.cleanup}}let d;l?s?u&&id(s,u)?d=t:d=e:d=t:d=e;let g,h,C;if(p&&u){let y=await cd(t,s,u);d=y.stageRoot,g=y.pick,h=y.features,C=y.cleanup;}else if(d===t&&s&&u&&id(s,u)&&(g=await _w(t,s,u),Cw(g)))throw new Error(`No installable native resources found under "${s}" for target "${u}".`);let _;return o?_=o:u&&(g&&hw(g)||(h?.length??0)>0)&&(_=u),{discoveryRoot:d,implicitPick:g,scopedFeatures:h,yamlTarget:_,importHappened:C!==void 0,cleanup:C}}i(Ew,"prepareInstallDiscovery");async function bw(t,e,r,n){let o=await Ew(t,e,r,{explicitTarget:n}),{canonical:s,implicitPick:a}=await Yl(o.discoveryRoot),l=a??o.implicitPick,c=gs(s,{implicitPick:l,scopedFeatures:o.scopedFeatures}),m=so(c);return {prep:o,discovered:s,implicitPick:l,narrowed:c,discoveredFeatures:m}}i(bw,"resolveDiscoveredForInstall");async function xw(t){return t.explicitAs?{implicitPick:void 0,...await fw(t.contentRoot,t.explicitAs,t.explicitTarget,t.replayPick)}:bw(t.resolvedPath,t.contentRoot,t.pathInRepo,t.explicitTarget)}i(xw,"resolveInstallDiscovery");function ys(t){return t==="."||t===""?void 0:t}i(ys,"trimDot");function fF(t,e){let r=basename(e).replace(/\.md$/i,"");return t==="agents"?{agents:[r]}:t==="commands"?{commands:[r]}:{rules:[r]}}i(fF,"markdownPick");async function Aw(t){if(!t.as)return {pathInRepo:ys(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:ys(dirname(e)),pick:fF(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:ys(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 Xl(o);return {pathInRepo:ys(dirname(n)),pick:{skills:[a||basename(n)]}}}}catch{return {pathInRepo:ys(e)}}}}return {pathInRepo:ys(e)}}i(Aw,"resolveManualInstallPersistence");async function sr(t){return process.stdin.isTTY?new Promise(e=>{let r=Tw.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(sr,"confirm");function gF(t){return !!(t.skills.length||t.rules.length||t.commands.length||t.agents.length)}i(gF,"hasArrayResources");function Lw(t){return gF(t)||t.mcp!==null||t.permissions!==null||t.hooks!==null||t.ignore.length>0}i(Lw,"hasInstallableResources");async function Nw(t,e,r,n){let o=t.skills.map(l=>aw(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 sr(`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(Nw,"resolveSkillPool");async function Dw(t,e,r,n){let o=t.rules.map(l=>lw(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 sr(`Include invalid rule "${ae(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(Dw,"resolveRulePool");async function Fw(t,e,r,n){let o=t.commands.map(l=>cw(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 sr(`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(Fw,"resolveCommandPool");async function vw(t,e,r,n){let o=t.agents.map(l=>mw(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 sr(`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(vw,"resolveAgentPool");async function $w(t,e){let r=e.skills.map(a=>a.name),n=e.rules.map(a=>ae(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 sr(`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=ae(a);t.rules.some(c=>ae(c)===l)&&(await sr(`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 sr(`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 sr(`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($w,"resolveInstallConflicts");function Mw(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(Mw,"pickForSelectedResources");function hF(t,e){let r=t.split("/").filter(Boolean);return r.length>0&&r[r.length-1]===e}i(hF,"pathEndsWithName");function tc(t,e,r){return r!==1||e.length!==1?false:hF(t,e[0])}i(tc,"inferSingleNamePick");function Gw(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||tc(e,o.skillNames,n.skills)),l=o.ruleSlugs.length>0&&(!!r?.rules?.length||o.ruleSlugs.length<n.rules||tc(e,o.ruleSlugs,n.rules)),c=o.commandNames.length>0&&(!!r?.commands?.length||o.commandNames.length<n.commands||tc(e,o.commandNames,n.commands)),m=o.agentNames.length>0&&(!!r?.agents?.length||o.agentNames.length<n.agents||tc(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(Gw,"buildInstallPick");function jw(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(jw,"deriveInstallFeatures");function yF(t){return t.skillNames.length===0&&t.ruleSlugs.length===0&&t.commandNames.length===0&&t.agentNames.length===0}i(yF,"isEmptyInstallSelection");function Uw(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(yF(e)&&!a)throw new Error("No resources selected to install.")}i(Uw,"ensureInstallSelection");function Ww(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(Ww,"assertExtendNameAvailable");function IF(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(IF,"mergePick");function Bw(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=IF(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(Bw,"mergeExtendList");b();async function Kw(t,e,r){let n=await S(t);if(n===null)throw new Error(`Missing config: ${t}`);let o=parse(n),s=Bw(e.extends,r);o.extends=s;let a=stringify(o,{indent:2,lineWidth:0});await R(t,a.endsWith(`
|
|
286
287
|
`)?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
|
|
288
|
+
`);}i(Kw,"writeAgentsmeshWithNewExtend");async function Hw(t){let{configDir:e,config:r,entryArgs:n,dryRun:o}=t,s=CF(n);if(Ww(r.extends,s),o){I.info(`[dry-run] Would add extend:
|
|
289
|
+
${JSON.stringify(s,null,2)}`);return}let a=join(e,"agentsmesh.yaml");await Kw(a,r,s),I.success(`Wrote extends entry "${s.name}" to agentsmesh.yaml.`);}i(Hw,"writeInstallAsExtend");function CF(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?Jt.parse(t.yamlTarget):void 0}}i(CF,"toNewExtendEntry");b();b();var wF="pack.yaml";async function ec(t){let e=await P(t),r=[];for(let s of e.sort()){let a=relative(t,s).replace(/\\/g,"/");if(a===wF)continue;let l=await Fl(s);l!==null&&r.push(`${a}:${l}`);}let n=r.join(`
|
|
290
|
+
`);return `sha256:${Ti(n)}`}i(ec,"hashPackContent");async function xF(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(xF,"writeRules");async function PF(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(PF,"writeCommands");async function AF(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(AF,"writeAgents");async function TF(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(TF,"writeSkills");async function LF(t,e){t.mcp!==null&&await R(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
291
|
+
`),t.permissions!==null&&await R(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await R(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await R(join(e,"ignore"),`${t.ignore.join(`
|
|
291
292
|
`)}
|
|
292
|
-
`);}i(
|
|
293
|
-
`),t.permissions!==null&&await
|
|
293
|
+
`);}i(LF,"writeSettings");async function Vw(t,e,r,n){let o=join(t,`${e}.tmp`),s=join(t,e);await L(o)&&await rm$1(o,{recursive:true,force:true}),await k(o),await xF(r,o),await PF(r,o),await AF(r,o),await TF(r,o),await LF(r,o);let a=await ec(o),l=gn({...n,content_hash:a});return await R(join(o,"pack.yaml"),stringify(l)),await L(s)&&await rm$1(s,{recursive:true,force:true}),await mkdir(t,{recursive:true}),await rename(o,s),l}i(Vw,"materializePack");b();function fd(t,e){return [...new Set([...t,...e])]}i(fd,"union");function DF(t,e){if(t.path===void 0&&t.paths===void 0||e===void 0)return {path:void 0,paths:void 0};let n=fd(t.paths??(t.path?[t.path]:[]),[e]);return n.length===1?{path:n[0],paths:void 0}:{path:void 0,paths:n}}i(DF,"mergePathScope");function FF(t,e,r){let n={...t};for(let s of e)r&&r[s]!==void 0?n[s]=fd(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(FF,"mergePick");async function vF(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(vF,"mergeRules");async function $F(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($F,"mergeCommands");async function MF(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(MF,"mergeAgents");async function GF(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(GF,"mergeSkills");async function jF(t,e){t.mcp!==null&&await R(join(e,"mcp.json"),`${JSON.stringify(t.mcp,null,2)}
|
|
294
|
+
`),t.permissions!==null&&await R(join(e,"permissions.yaml"),stringify(t.permissions)),t.hooks!==null&&await R(join(e,"hooks.yaml"),stringify(t.hooks)),t.ignore.length>0&&await R(join(e,"ignore"),`${t.ignore.join(`
|
|
294
295
|
`)}
|
|
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
|
|
296
|
+
`);}i(jF,"mergeSettings");async function Jw(t,e,r,n,o,s){await vF(r,t),await $F(r,t),await MF(r,t),await GF(r,t),await jF(r,t);let a=fd(e.features,n),l=FF(e.pick,n,o),c=DF(e,s?.path),m=await ec(t),u=new Date().toISOString(),p=gn({...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 R(join(t,"pack.yaml"),stringify(p)),p}i(Jw,"mergeIntoPack");b();function WF(t){return t?{path:t,paths:void 0}:{path:void 0,paths:void 0}}i(WF,"pathScope");function BF(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(ae(a))),commands:t.commands.filter(a=>o.has(a.name)),agents:t.agents.filter(a=>s.has(a.name))}}i(BF,"applySelection");async function Yw(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:g}=t,h=join(e,"packs"),C=BF(n,o),_=new Date().toISOString(),y=u!==void 0?Jt.parse(u):void 0,O=await PC(h,s,{target:y,as:d,features:c}),D=r,E=c,x=m,K=p,M;if(O){let W=O.packDir,q=O.meta;if(g&&O.name!==r){let et=join(h,r);if(await L(et))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,et),W=et,q={...O.meta,name:r};}let mt=await Jw(W,q,C,c,m,{source:s,...a!==void 0?{version:a}:{},...y!==void 0?{target:y}:{},...p?{path:p}:{},...d!==void 0?{as:d}:{}});D=mt.name,E=mt.features,x=mt.pick,K=mt.path,M=mt.paths,I.success(`Updated pack "${mt.name}" in .agentsmesh/packs/.`);}else {if(await Nl(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 Vw(h,r,C,{name:r,source:s,...a!==void 0&&{version:a},source_kind:l,installed_at:_,updated_at:_,features:c,...m!==void 0&&{pick:m},...y!==void 0&&{target:y},...WF(p),...d!==void 0&&{as:d}}),I.success(`Installed pack "${r}" to .agentsmesh/packs/.`);}await nw(e,ow({name:D,source:s,version:a,sourceKind:l,features:E,pick:x,target:y,path:K,paths:M,as:d})),l!=="local"&&await rf(s);}i(Yw,"installAsPack");function HF(t){return t.toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}i(HF,"sanitize");function zF(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(zF,"gitUrlLastSegments");function Xw(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=zF(t.gitRemoteUrl):n="extend";e.featureHint?n=`${n}-${e.featureHint}`:n=`${n}-pack`;let o=HF(n)||"extend";if(!r.has(o))return o;let s=2;for(;r.has(`${o}-${s}`);)s++;return `${o}-${s}`}i(Xw,"suggestExtendName");function Zw(t){let{config:e,parsed:r,entryFeatures:n,nameOverride:o}=t,s=new Set(e.extends.map(a=>a.name));return o||Xw(r,{featureHint:n.length===1?n[0]:void 0},s)}i(Zw,"selectInstallEntryName");function qw(t,e,r){if(!r?.features&&!r?.pick)return {narrowed:t,discoveredFeatures:e};let n=gs(t,{scopedFeatures:r.features,implicitPick:r.pick});return {narrowed:n,discoveredFeatures:so(n)}}i(qw,"applyReplayInstallScope");async function Qw(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:g,persisted:h,replay:C,prep:_,implicitPick:y,narrowed:O,discoveredFeatures:D}=t,{narrowed:E,discoveredFeatures:x}=qw(O,D,C);if(!Lw(E))throw new Error(y||_.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 Nw(E,r,n,o),M=await Dw(E,r,n,o),W=await Fw(E,r,n,o),q=await vw(E,r,n,o),mt={skills:K.length,rules:M.length,commands:W.length,agents:q.length},{canonical:et}=await oe(c,m.configDir,{},m.canonicalDir),Ae=!r&&!n&&o?await $w(et,{skills:K,rules:M,commands:W,agents:q}):{skillNames:K.map(Vt=>Vt.name),ruleSlugs:M.map(Vt=>ae(Vt)),commandNames:W.map(Vt=>Vt.name),agentNames:q.map(Vt=>Vt.name)};Uw({selected:Ae,discoveredFeatures:x,preConflict:mt});let it=C?.features??jw(x,Ae);if(it.length===0)throw new Error("No features left to install after selection.");let ft=Mw(C?.pick,Ae)??h.pick??Gw({pathInRepo:h.pathInRepo??g,implicitPick:y,preConflictCounts:mt,selected:Ae}),vt=Zw({config:c,parsed:u,entryFeatures:it,nameOverride:a});if(s){if(await Hw({configDir:m.configDir,config:c,entryArgs:{name:vt,source:p,version:d,features:it,path:h.pathInRepo,pick:ft,yamlTarget:_.yamlTarget},dryRun:n}),n)return}else {if(n){I.info(`[dry-run] Would install pack "${vt}" to ${e==="global"?"~/.agentsmesh/packs/.":".agentsmesh/packs/."}`);return}await Yw({canonicalDir:m.canonicalDir,packName:vt,narrowed:E,selected:Ae,sourceForYaml:p,version:d,sourceKind:u.kind,entryFeatures:it,pick:ft,yamlTarget:_.yamlTarget,pathInRepo:h.pathInRepo,manualAs:l,renameExistingPack:a===""});}await ds(e==="global"?{global:true}:{},m.rootBase)!==0&&I.warn(`Generate failed after install. Fix the issue and run agentsmesh generate${e==="global"?" --global":""}.`);}i(Qw,"executeRunInstallPoolsAndWrite");async function hd(t,e,r,n){let{sync:o,dryRun:s,force:a,useExtends:l,explicitPath:c,explicitTarget:m,explicitAs:u,nameOverride:p}=iw(t),d=t.global===true?"global":"project",g=e[0]?.trim();if(o){let{context:Ae}=await at(r,d);if(await sw({sync:o,canonicalDir:Ae.canonicalDir,reinstall:i(async it=>{let ft=it.paths&&it.paths.length>0?it.paths:[it.path];for(let vt of ft)await hd({...a?{force:true}:{},...s?{"dry-run":true}:{},...d==="global"?{global:true}:{},name:it.name,...it.target?{target:it.target}:{},...vt?{path:vt}:{},...it.as?{as:it.as}:{}},[it.source],r,{features:it.features,pick:it.pick});},"reinstall")}))return}if(!g)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:_}=await at(r,d),y=await nd(g,_.configDir,c);if(y.kind!=="local"&&!await Yk())throw new Error("git is required for remote installs. Please install git and try again.");let{resolvedPath:O,sourceForYaml:D,version:E}=await qk(y,g),x=y.pathInRepo.replace(/^\/+|\/+$/g,""),K=x?join(O,x):O;if(!await L(K))throw new Error(`Install path does not exist: ${K}`);let M=await Aw({as:u,contentRoot:K,pathInRepo:x}),{prep:W,implicitPick:q,narrowed:mt,discoveredFeatures:et}=await xw({resolvedPath:O,contentRoot:K,pathInRepo:x,explicitTarget:m,explicitAs:u,replayPick:n?.pick});try{await Qw({scope:d,force:a,dryRun:s,tty:h,useExtends:l,nameOverride:p,explicitAs:u,config:C,context:_,parsed:y,sourceForYaml:D,version:E,pathInRepo:x,persisted:M,replay:n,prep:W,implicitPick:q,narrowed:mt,discoveredFeatures:et});}finally{W.cleanup&&await W.cleanup();}}i(hd,"runInstall");async function tO(t,e,r){await hd(t,e,r);}i(tO,"runInstall");b();var Sd="agentsmesh.yaml";async function Rd(t){let e=join(t,Sd),r=await S(e);return r===null?{}:parse(r)??{}}i(Rd,"readScopedConfigRaw");async function rO(t,e){let r=join(t,Sd),n=await S(r)??`version: 1
|
|
297
|
+
`,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 R(r,stringify(o));}i(rO,"writePluginEntry");async function nO(t,e){let r=join(t,Sd),n=await S(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 R(r,stringify(o)),a}i(nO,"removePluginEntry");async function sO(t,e,r){let n=e[0];if(n===void 0||n==="")return oO(),0;switch(n){case "add":return JF(t,e.slice(1),r);case "list":return YF(r);case "remove":return XF(e.slice(1),r);case "info":return ZF(e.slice(1),r);default:return I.error(`Unknown plugin subcommand: ${n}`),oO(),2}}i(sO,"runPlugin");async function JF(t,e,r){let n=e[0];if(!n)return I.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)??qF(n);try{await rO(r,{id:a,source:n,version:o});}catch(l){return I.error(`Failed to update config: ${l instanceof Error?l.message:String(l)}`),1}return I.success(`Plugin '${a}' added to agentsmesh.yaml`),I.info(`Next: npm install ${n}${o!==void 0?`@${o}`:"@latest"}`),I.info(`Then add '${a}' to pluginTargets in agentsmesh.yaml to enable it.`),0}i(JF,"runPluginAdd");async function YF(t){let e;try{e=await Rd(t);}catch(n){return I.error(`Failed to read config: ${n instanceof Error?n.message:String(n)}`),1}let r=e.plugins??[];if(r.length===0)return I.info("No plugins configured. Use: agentsmesh plugin add <source>"),0;I.info("Configured plugins:");for(let n of r){let o="\u2717",s="";try{let l=await Kl(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}`:"";I.info(` ${n.id} | ${n.source}${a} | ${o} | ${s}`);}return 0}i(YF,"runPluginList");async function XF(t,e){let r=t[0];if(!r)return I.error("Usage: agentsmesh plugin remove <id>"),2;try{await nO(e,r)?I.success(`Plugin '${r}' removed from agentsmesh.yaml`):I.warn(`Plugin '${r}' was not found in agentsmesh.yaml`);}catch(n){return I.error(`Failed to update config: ${n instanceof Error?n.message:String(n)}`),1}return 0}i(XF,"runPluginRemove");async function ZF(t,e){let r=t[0];if(!r)return I.error("Usage: agentsmesh plugin info <id>"),2;let n;try{n=await Rd(e);}catch(a){return I.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 I.error(`Plugin '${r}' not found in agentsmesh.yaml. Use: agentsmesh plugin add`),1;let s;try{s=await Kl(o,e);}catch(a){return I.error(`Failed to load plugin '${r}': ${a instanceof Error?a.message:String(a)}`),1}I.info(`Plugin: ${o.id}`),I.info(`Source: ${o.source}${o.version!==void 0?`@${o.version}`:""}`),I.info(`Descriptors: ${s.descriptors.length}`);for(let a of s.descriptors)I.info(` - ${a.id}: ${a.emptyImportMessage}`);return 0}i(ZF,"runPluginInfo");function qF(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(qF,"derivePluginId");function oO(){I.info("Usage: agentsmesh plugin <subcommand> [args] [flags]"),I.info(""),I.info("Subcommands:"),I.info(" add <source> Register a plugin package in agentsmesh.yaml"),I.info(" list Show all configured plugins and load status"),I.info(" remove <id> Remove a plugin from agentsmesh.yaml"),I.info(" info <id> Show descriptor details for a configured plugin"),I.info(""),I.info("Flags (add):"),I.info(" --version <v> Pin plugin version"),I.info(" --id <id> Override derived plugin id");}i(oO,"printPluginHelp");b();ar();function Ss(t){return t.toUpperCase().replace(/-/g,"_")}i(Ss,"toPrefix");function Is(t){return t.split("-").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join("")}i(Is,"toPascal");function iO(t){let e=Ss(t.id);return `export const ${e}_TARGET = '${t.id}';
|
|
297
298
|
|
|
298
299
|
// Project-level paths
|
|
299
300
|
export const ${e}_DIR = '.${t.id}';
|
|
@@ -306,13 +307,13 @@ export const ${e}_GLOBAL_RULES_DIR = '~/.${t.id}/rules';
|
|
|
306
307
|
// Canonical paths
|
|
307
308
|
export const ${e}_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';
|
|
308
309
|
export const ${e}_CANONICAL_RULES_DIR = '.agentsmesh/rules';
|
|
309
|
-
`}i(
|
|
310
|
+
`}i(iO,"TEMPLATE_CONSTANTS");function aO(t){let e=Ss(t.id),r=Is(t.id);return `import type { TargetGenerators } from '../catalog/target.interface.js';
|
|
310
311
|
import type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';
|
|
311
312
|
import { generateRules } from './generator.js';
|
|
312
313
|
import { importFrom${r} } from './importer.js';
|
|
313
314
|
import { lintRules } from './linter.js';
|
|
314
315
|
import { lintHooks } from './lint.js';
|
|
315
|
-
import { build${r}ImportPaths } from '../../core/reference/import-
|
|
316
|
+
import { build${r}ImportPaths } from '../../core/reference/import-map-builders.js';
|
|
316
317
|
import {
|
|
317
318
|
${e}_TARGET,
|
|
318
319
|
${e}_DIR,
|
|
@@ -377,17 +378,6 @@ export const descriptor = {
|
|
|
377
378
|
ignore: 'none',
|
|
378
379
|
permissions: 'none',
|
|
379
380
|
},
|
|
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
381
|
supportsConversion: { commands: true, agents: true },
|
|
392
382
|
lint: {
|
|
393
383
|
hooks: lintHooks,
|
|
@@ -396,26 +386,39 @@ export const descriptor = {
|
|
|
396
386
|
'No ${t.displayName} config found (${e}_DIR).',
|
|
397
387
|
lintRules,
|
|
398
388
|
project,
|
|
399
|
-
|
|
400
|
-
|
|
389
|
+
globalSupport: {
|
|
390
|
+
capabilities: {
|
|
391
|
+
rules: 'native',
|
|
392
|
+
additionalRules: 'none',
|
|
393
|
+
commands: 'none',
|
|
394
|
+
agents: 'none',
|
|
395
|
+
skills: 'none',
|
|
396
|
+
mcp: 'none',
|
|
397
|
+
hooks: 'none',
|
|
398
|
+
ignore: 'none',
|
|
399
|
+
permissions: 'none',
|
|
400
|
+
},
|
|
401
|
+
detectionPaths: [${e}_GLOBAL_DIR],
|
|
402
|
+
layout: global,
|
|
403
|
+
},
|
|
401
404
|
buildImportPaths: build${r}ImportPaths,
|
|
402
405
|
detectionPaths: [${e}_DIR],
|
|
403
406
|
} satisfies TargetDescriptor;
|
|
404
|
-
`}i(
|
|
407
|
+
`}i(aO,"TEMPLATE_INDEX");function lO(t){let e=Ss(t.id);return `import type { CanonicalFiles } from '../../core/types.js';
|
|
405
408
|
import { ${e}_TARGET, ${e}_DIR } from './constants.js';
|
|
406
409
|
|
|
407
|
-
export interface ${
|
|
410
|
+
export interface ${Is(t.id)}Output {
|
|
408
411
|
path: string;
|
|
409
412
|
content: string;
|
|
410
413
|
}
|
|
411
414
|
|
|
412
|
-
export function generateRules(_canonical: CanonicalFiles): ${
|
|
415
|
+
export function generateRules(_canonical: CanonicalFiles): ${Is(t.id)}Output[] {
|
|
413
416
|
// TODO(agentsmesh-scaffold): implement generateRules for ${t.displayName}
|
|
414
417
|
void ${e}_TARGET;
|
|
415
418
|
void ${e}_DIR;
|
|
416
419
|
return [];
|
|
417
420
|
}
|
|
418
|
-
`}i(
|
|
421
|
+
`}i(lO,"TEMPLATE_GENERATOR");function cO(t){let e=Is(t.id),r=Ss(t.id);return `import type { ImportResult } from '../../core/types.js';
|
|
419
422
|
import type { TargetLayoutScope } from '../catalog/target-descriptor.js';
|
|
420
423
|
import { ${r}_TARGET } from './constants.js';
|
|
421
424
|
|
|
@@ -427,7 +430,7 @@ export async function importFrom${e}(
|
|
|
427
430
|
void ${r}_TARGET;
|
|
428
431
|
return [];
|
|
429
432
|
}
|
|
430
|
-
`}i(
|
|
433
|
+
`}i(cO,"TEMPLATE_IMPORTER");function mO(t){let e=Ss(t.id);return `/** Lint rules for the ${t.id} target. */
|
|
431
434
|
import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';
|
|
432
435
|
import { validateRules } from '../../core/lint/validate-rules.js';
|
|
433
436
|
import { ${e}_TARGET } from './constants.js';
|
|
@@ -445,7 +448,7 @@ export function lintRules(
|
|
|
445
448
|
target: ${e}_TARGET,
|
|
446
449
|
}));
|
|
447
450
|
}
|
|
448
|
-
`}i(
|
|
451
|
+
`}i(mO,"TEMPLATE_LINTER");function uO(t){return `/**
|
|
449
452
|
* ${t.displayName}-specific lint hooks.
|
|
450
453
|
*/
|
|
451
454
|
|
|
@@ -455,7 +458,7 @@ export function lintHooks(_canonical: CanonicalFiles): LintDiagnostic[] {
|
|
|
455
458
|
// TODO(agentsmesh-scaffold): implement target-specific hook validation for ${t.displayName}
|
|
456
459
|
return [];
|
|
457
460
|
}
|
|
458
|
-
`}i(
|
|
461
|
+
`}i(uO,"TEMPLATE_LINT_HOOKS");function pO(t){let e=Is(t.id),r=Ss(t.id);return `import type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';
|
|
459
462
|
import { ${r}_DIR } from '../../../targets/${t.id}/constants.js';
|
|
460
463
|
|
|
461
464
|
export async function build${e}ImportPaths(
|
|
@@ -467,7 +470,7 @@ export async function build${e}ImportPaths(
|
|
|
467
470
|
// Reference: src/core/reference/import-maps/kiro.ts for a full example
|
|
468
471
|
void ${r}_DIR;
|
|
469
472
|
}
|
|
470
|
-
`}i(
|
|
473
|
+
`}i(pO,"TEMPLATE_IMPORT_MAP");function dO(t){return `import { describe, it, expect } from 'vitest';
|
|
471
474
|
import type { CanonicalFiles } from '../../../../src/core/types.js';
|
|
472
475
|
import { generateRules } from '../../../../src/targets/${t.id}/generator.js';
|
|
473
476
|
|
|
@@ -496,7 +499,7 @@ describe('generateRules (${t.id})', () => {
|
|
|
496
499
|
expect(result).toHaveLength(0);
|
|
497
500
|
});
|
|
498
501
|
});
|
|
499
|
-
`}i(
|
|
502
|
+
`}i(dO,"TEMPLATE_GENERATOR_TEST");function fO(t){let e=Is(t.id);return `import { describe, it, expect } from 'vitest';
|
|
500
503
|
import { importFrom${e} } from '../../../../src/targets/${t.id}/importer.js';
|
|
501
504
|
|
|
502
505
|
describe('importFrom${e} (${t.id})', () => {
|
|
@@ -510,7 +513,7 @@ describe('importFrom${e} (${t.id})', () => {
|
|
|
510
513
|
expect(result).toHaveLength(0);
|
|
511
514
|
});
|
|
512
515
|
});
|
|
513
|
-
`}i(
|
|
516
|
+
`}i(fO,"TEMPLATE_IMPORTER_TEST");function gO(t){return `# ${t.displayName} Workspace
|
|
514
517
|
|
|
515
518
|
Follow the ${t.displayName} configuration files and keep changes small.
|
|
516
|
-
`}i(
|
|
519
|
+
`}i(gO,"TEMPLATE_FIXTURE_ROOT_MD");var tv=/^[a-z][a-z0-9-]*$/;async function hO(t){let{id:e,projectRoot:r,force:n=false}=t,o=t.displayName??e,s={id:e,displayName:o};if(!tv.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:iO(s)},{rel:`src/targets/${e}/index.ts`,content:aO(s)},{rel:`src/targets/${e}/generator.ts`,content:lO(s)},{rel:`src/targets/${e}/importer.ts`,content:cO(s)},{rel:`src/targets/${e}/linter.ts`,content:mO(s)},{rel:`src/targets/${e}/lint.ts`,content:uO(s)},{rel:`src/core/reference/import-maps/${e}.ts`,content:pO(s)},{rel:`tests/unit/targets/${e}/generator.test.ts`,content:dO(s)},{rel:`tests/unit/targets/${e}/importer.test.ts`,content:fO(s)},{rel:`tests/e2e/fixtures/${e}-project/AGENTS.md`,content:gO(s)}],l=[],c=[];for(let u of a){let p=join(r,u.rel);if(!n&&await L(p)){c.push(p);continue}await R(p,u.content),l.push(p);}let m=["1. Run: pnpm catalog:generate (auto-discovers the new target \u2014 updates IDs, descriptors, and import-map barrel)",`2. Fill in TODO(agentsmesh-scaffold) markers in src/targets/${e}/`,`3. Run: pnpm typecheck && pnpm test -- tests/unit/targets/${e}`,"4. Run: pnpm schemas:generate && pnpm matrix:generate"];return {written:l,skipped:c,postSteps:m}}i(hO,"writeTargetScaffold");async function IO(t,e,r){let n=e[0];return n===void 0||n===""?(yO(),0):n==="scaffold"?ev(t,e.slice(1),r):(I.error(`Unknown target subcommand: ${n}`),yO(),2)}i(IO,"runTarget");async function ev(t,e,r){let n=e[0];if(!n)return I.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 hO({id:n,displayName:o,projectRoot:r,force:s});}catch(l){return I.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;I.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;I.warn(`skipped ${c} (already exists \u2014 use --force to overwrite)`);}if(a.written.length>0){I.info(""),I.info("Next steps:");for(let l of a.postSteps)I.info(` ${l}`);}return 0}i(ev,"runScaffold");function yO(){I.info("Usage: agentsmesh target <subcommand> [args] [flags]"),I.info(""),I.info("Subcommands:"),I.info(" scaffold <id> Generate a new target skeleton (files, tests, fixture)"),I.info(""),I.info("Flags (scaffold):"),I.info(" --name <displayName> Human-readable name (defaults to id)"),I.info(" --force Overwrite existing files");}i(yO,"printTargetHelp");function ov(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(ov,"parseArgs");var sv=["init","generate","import","diff","lint","watch","check","merge","matrix","install","plugin","target"];function iv(t){return async(e,r)=>{I.info(`Not implemented yet: ${t}`);}}i(iv,"stub");var av={...Object.fromEntries(sv.map(t=>[t,iv(t)])),generate:i(async(t,e)=>{let r=await ds(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)=>Tk(t),"import"),diff:i((t,e)=>Fk(t),"diff"),lint:i(async(t,e)=>{let r=await Uk(t);r!==0&&process.exit(r);},"lint"),check:i(async(t,e)=>{let r=await Hk(t);r!==0&&process.exit(r);},"check"),merge:i((t,e)=>Jk(t),"merge"),matrix:i((t,e)=>oo(t),"matrix"),watch:i(async(t,e)=>{let r=await Bk(t),n=i(()=>{r.stop().then(()=>process.exit(0));},"stop");process.on("SIGINT",n),process.on("SIGTERM",n);},"watch"),install:i((t,e)=>tO(t,e,process.cwd()),"install"),plugin:i(async(t,e)=>{let r=await sO(t,e,process.cwd());r!==0&&process.exit(r);},"plugin"),target:i(async(t,e)=>{let r=await IO(t,e,process.cwd());r!==0&&process.exit(r);},"target")},lv=wd(av);async function cv(t){let{command:e,flags:r,args:n}=t;if(e==="help"){xd();return}if(e==="version"){Td();return}await lv.route(e,r,n);}i(cv,"main");function mv(){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(mv,"isMainModule");if(mv()){let t=ov(process.argv.slice(2));cv(t).catch(e=>Ld(e instanceof Error?e:new Error(String(e)),{verbose:t.flags.verbose===true}));}export{ov as parseArgs};
|