agentsmesh 0.18.1 → 0.19.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/dist/targets.js CHANGED
@@ -15,86 +15,6 @@ var __export = (target31, all) => {
15
15
  for (var name in all)
16
16
  __defProp(target31, name, { get: all[name], enumerable: true });
17
17
  };
18
-
19
- // src/config/core/conversions.ts
20
- function usesCommandSkillProjection(target31) {
21
- return Object.prototype.hasOwnProperty.call(DEFAULT_COMMANDS_TO_SKILLS, target31);
22
- }
23
- function usesAgentSkillProjection(target31) {
24
- return Object.prototype.hasOwnProperty.call(DEFAULT_AGENTS_TO_SKILLS, target31);
25
- }
26
- function resolveConversionValue(value, scope) {
27
- if (value === void 0) return void 0;
28
- if (typeof value === "boolean") return value;
29
- return value[scope];
30
- }
31
- function shouldConvertCommandsToSkills(config, target31, defaultEnabled, scope = "project") {
32
- const raw = config.conversions?.commands_to_skills?.[target31];
33
- const configVal = resolveConversionValue(raw, scope);
34
- if (configVal !== void 0) return configVal;
35
- if (usesCommandSkillProjection(target31)) return DEFAULT_COMMANDS_TO_SKILLS[target31];
36
- return defaultEnabled ?? false;
37
- }
38
- function shouldConvertAgentsToSkills(config, target31, defaultEnabled, scope = "project") {
39
- const raw = config.conversions?.agents_to_skills?.[target31];
40
- const configVal = resolveConversionValue(raw, scope);
41
- if (configVal !== void 0) return configVal;
42
- if (usesAgentSkillProjection(target31)) return DEFAULT_AGENTS_TO_SKILLS[target31];
43
- return defaultEnabled ?? false;
44
- }
45
- var DEFAULT_COMMANDS_TO_SKILLS, DEFAULT_AGENTS_TO_SKILLS;
46
- var init_conversions = __esm({
47
- "src/config/core/conversions.ts"() {
48
- DEFAULT_COMMANDS_TO_SKILLS = {
49
- amp: true,
50
- "codex-cli": true,
51
- goose: true,
52
- kiro: true,
53
- warp: true
54
- };
55
- DEFAULT_AGENTS_TO_SKILLS = {
56
- amp: true,
57
- "gemini-cli": false,
58
- // native .gemini/agents/*.md per agent-structures
59
- cline: true,
60
- "codex-cli": false,
61
- // native .codex/agents/*.toml per agent-structures
62
- windsurf: true,
63
- goose: true,
64
- antigravity: true,
65
- continue: true,
66
- warp: true
67
- };
68
- }
69
- });
70
-
71
- // src/targets/catalog/capabilities.ts
72
- function cap(level, flavor) {
73
- return flavor !== void 0 ? { level, flavor } : { level };
74
- }
75
- function normalizeCapabilityValue(input) {
76
- if (typeof input === "string") {
77
- return { level: input };
78
- }
79
- return input;
80
- }
81
- function normalizeTargetCapabilities(caps) {
82
- return {
83
- rules: normalizeCapabilityValue(caps.rules),
84
- additionalRules: normalizeCapabilityValue(caps.additionalRules),
85
- commands: normalizeCapabilityValue(caps.commands),
86
- agents: normalizeCapabilityValue(caps.agents),
87
- skills: normalizeCapabilityValue(caps.skills),
88
- mcp: normalizeCapabilityValue(caps.mcp),
89
- hooks: normalizeCapabilityValue(caps.hooks),
90
- ignore: normalizeCapabilityValue(caps.ignore),
91
- permissions: normalizeCapabilityValue(caps.permissions)
92
- };
93
- }
94
- var init_capabilities = __esm({
95
- "src/targets/catalog/capabilities.ts"() {
96
- }
97
- });
98
18
  function capabilityLevel(capability) {
99
19
  return typeof capability === "string" ? capability : capability.level;
100
20
  }
@@ -118,7 +38,7 @@ function validateCapabilityImplementations(descriptor31, capabilities17, ctx, pa
118
38
  function validateDescriptor(value) {
119
39
  return targetDescriptorSchema.parse(value);
120
40
  }
121
- var capabilityLevelSchema, capabilitiesSchema, generatorsSchema, pathResolversSchema, layoutSchema, globalSupportSchema, legacyGlobalKeys, generatorRequirements, settingsBackedFeatures, targetDescriptorSchemaBase, targetDescriptorSchema;
41
+ var capabilityLevelSchema, capabilitiesSchema, generatorsSchema, pathResolversSchema, layoutSchema, globalSupportSchema, legacyGlobalKeys, generatorRequirements, settingsBackedFeatures, conversionDefaultsSchema, metadataSchema, targetDescriptorSchemaBase, targetDescriptorSchema;
122
42
  var init_target_descriptor_schema = __esm({
123
43
  "src/targets/catalog/target-descriptor.schema.ts"() {
124
44
  capabilityLevelSchema = z.union([
@@ -182,8 +102,19 @@ var init_target_descriptor_schema = __esm({
182
102
  { feature: "permissions", generator: "generatePermissions" }
183
103
  ];
184
104
  settingsBackedFeatures = ["mcp", "hooks", "ignore", "permissions"];
105
+ conversionDefaultsSchema = z.object({
106
+ commandsToSkills: z.boolean().optional(),
107
+ agentsToSkills: z.boolean().optional()
108
+ }).strict();
109
+ metadataSchema = z.object({
110
+ displayName: z.string().min(1),
111
+ category: z.enum(["cli", "ide", "agent-platform"]),
112
+ officialUrl: z.string().min(1),
113
+ shortDescription: z.string().min(1)
114
+ }).passthrough();
185
115
  targetDescriptorSchemaBase = z.object({
186
116
  id: z.string().regex(/^[a-z][a-z0-9-]*$/, "Target id must be lowercase with hyphens"),
117
+ metadata: metadataSchema,
187
118
  generators: generatorsSchema,
188
119
  capabilities: capabilitiesSchema,
189
120
  emptyImportMessage: z.string(),
@@ -191,7 +122,13 @@ var init_target_descriptor_schema = __esm({
191
122
  project: layoutSchema,
192
123
  globalSupport: globalSupportSchema.optional(),
193
124
  buildImportPaths: z.function(),
194
- detectionPaths: z.array(z.string())
125
+ detectionPaths: z.array(z.string()),
126
+ excludeFromStarterInit: z.boolean().optional(),
127
+ conversionDefaults: conversionDefaultsSchema.optional(),
128
+ emitScopedSettings: z.function().optional(),
129
+ mergeGeneratedOutputContent: z.function().optional(),
130
+ postProcessHookOutputs: z.function().optional(),
131
+ preservesManualActivation: z.boolean().optional()
195
132
  }).passthrough();
196
133
  targetDescriptorSchema = targetDescriptorSchemaBase.superRefine((value, ctx) => {
197
134
  for (const key of legacyGlobalKeys) {
@@ -216,10 +153,15 @@ var init_target_descriptor_schema = __esm({
216
153
 
217
154
  // src/targets/catalog/registry.ts
218
155
  function builtinDescriptors() {
219
- if (!_builtinDescriptors) {
220
- _builtinDescriptors = new Map(BUILTIN_TARGETS.map((d) => [d.id, d]));
156
+ if (_builtinDescriptors) return _builtinDescriptors;
157
+ const defined = BUILTIN_TARGETS.filter(
158
+ (d) => d !== void 0 && typeof d.id === "string"
159
+ );
160
+ const map = new Map(defined.map((d) => [d.id, d]));
161
+ if (defined.length === BUILTIN_TARGETS.length) {
162
+ _builtinDescriptors = map;
221
163
  }
222
- return _builtinDescriptors;
164
+ return map;
223
165
  }
224
166
  function registerTargetDescriptor(descriptor31) {
225
167
  const validated = validateDescriptor(descriptor31);
@@ -240,6 +182,65 @@ var init_registry = __esm({
240
182
  }
241
183
  });
242
184
 
185
+ // src/config/core/conversions.ts
186
+ function builtinDefault(target31, key) {
187
+ return getDescriptor(target31)?.conversionDefaults?.[key];
188
+ }
189
+ function resolveConversionValue(value, scope) {
190
+ if (value === void 0) return void 0;
191
+ if (typeof value === "boolean") return value;
192
+ return value[scope];
193
+ }
194
+ function shouldConvertCommandsToSkills(config, target31, defaultEnabled, scope = "project") {
195
+ const raw = config.conversions?.commands_to_skills?.[target31];
196
+ const configVal = resolveConversionValue(raw, scope);
197
+ if (configVal !== void 0) return configVal;
198
+ const builtin = builtinDefault(target31, "commandsToSkills");
199
+ if (builtin !== void 0) return builtin;
200
+ return defaultEnabled ?? false;
201
+ }
202
+ function shouldConvertAgentsToSkills(config, target31, defaultEnabled, scope = "project") {
203
+ const raw = config.conversions?.agents_to_skills?.[target31];
204
+ const configVal = resolveConversionValue(raw, scope);
205
+ if (configVal !== void 0) return configVal;
206
+ const builtin = builtinDefault(target31, "agentsToSkills");
207
+ if (builtin !== void 0) return builtin;
208
+ return defaultEnabled ?? false;
209
+ }
210
+ var init_conversions = __esm({
211
+ "src/config/core/conversions.ts"() {
212
+ init_registry();
213
+ }
214
+ });
215
+
216
+ // src/targets/catalog/capabilities.ts
217
+ function cap(level, flavor) {
218
+ return flavor !== void 0 ? { level, flavor } : { level };
219
+ }
220
+ function normalizeCapabilityValue(input) {
221
+ if (typeof input === "string") {
222
+ return { level: input };
223
+ }
224
+ return input;
225
+ }
226
+ function normalizeTargetCapabilities(caps) {
227
+ return {
228
+ rules: normalizeCapabilityValue(caps.rules),
229
+ additionalRules: normalizeCapabilityValue(caps.additionalRules),
230
+ commands: normalizeCapabilityValue(caps.commands),
231
+ agents: normalizeCapabilityValue(caps.agents),
232
+ skills: normalizeCapabilityValue(caps.skills),
233
+ mcp: normalizeCapabilityValue(caps.mcp),
234
+ hooks: normalizeCapabilityValue(caps.hooks),
235
+ ignore: normalizeCapabilityValue(caps.ignore),
236
+ permissions: normalizeCapabilityValue(caps.permissions)
237
+ };
238
+ }
239
+ var init_capabilities = __esm({
240
+ "src/targets/catalog/capabilities.ts"() {
241
+ }
242
+ });
243
+
243
244
  // src/targets/catalog/shared-artifact-owner.ts
244
245
  function findSharedArtifactOwnershipConflicts(descriptors) {
245
246
  const owners = [];
@@ -345,6 +346,23 @@ function parseFrontmatter(content) {
345
346
  const frontmatter = yamlStr === "" ? {} : parse(yamlStr) ?? {};
346
347
  return { frontmatter, body };
347
348
  }
349
+ function extractBody(content) {
350
+ if (content.indexOf("---") !== 0) return content.trim();
351
+ const close = content.indexOf("---", 3);
352
+ if (close === -1) return content.trim();
353
+ return content.slice(close + 3).trim();
354
+ }
355
+ function tryParseFrontmatter(content, filePath) {
356
+ try {
357
+ return { ok: true, value: parseFrontmatter(content) };
358
+ } catch (err) {
359
+ const message = err instanceof Error ? err.message : String(err);
360
+ const wrapped = new Error(`Failed to parse frontmatter in ${filePath}: ${message}`, {
361
+ cause: err
362
+ });
363
+ return { ok: false, error: wrapped, bodyFallback: extractBody(content) };
364
+ }
365
+ }
348
366
  function serializeFrontmatter(frontmatter, body) {
349
367
  const keys = Object.keys(frontmatter);
350
368
  if (keys.length === 0) return body;
@@ -594,7 +612,18 @@ var init_fs_text_encoding = __esm({
594
612
  EXECUTABLE_SCRIPT_EXTENSIONS = /* @__PURE__ */ new Set([".sh", ".bash", ".zsh"]);
595
613
  }
596
614
  });
597
- async function readDirRecursive(dir, visited) {
615
+ function shouldSkipRecursiveBranch(segments) {
616
+ if (segments.length > MAX_RECURSIVE_DEPTH) return true;
617
+ const counts = /* @__PURE__ */ new Map();
618
+ for (const segment of segments) {
619
+ const count = (counts.get(segment) ?? 0) + 1;
620
+ if (count >= MAX_SEGMENT_REPETITIONS) return true;
621
+ counts.set(segment, count);
622
+ }
623
+ return false;
624
+ }
625
+ async function readDirRecursive(dir, visited, branchSegments) {
626
+ const currentBranchSegments = branchSegments ?? [basename(dir)];
598
627
  let canonicalDir;
599
628
  try {
600
629
  canonicalDir = await realpath(dir);
@@ -620,7 +649,9 @@ async function readDirRecursive(dir, visited) {
620
649
  () => false
621
650
  );
622
651
  if (walkChild) {
623
- files.push(...await readDirRecursive(full, seen));
652
+ const nextSegments = [...currentBranchSegments, ent.name];
653
+ if (shouldSkipRecursiveBranch(nextSegments)) continue;
654
+ files.push(...await readDirRecursive(full, seen, nextSegments));
624
655
  } else {
625
656
  files.push(full);
626
657
  }
@@ -636,9 +667,12 @@ async function readDirRecursive(dir, visited) {
636
667
  );
637
668
  }
638
669
  }
670
+ var MAX_RECURSIVE_DEPTH, MAX_SEGMENT_REPETITIONS;
639
671
  var init_fs_traverse = __esm({
640
672
  "src/utils/filesystem/fs-traverse.ts"() {
641
673
  init_errors();
674
+ MAX_RECURSIVE_DEPTH = 32;
675
+ MAX_SEGMENT_REPETITIONS = 3;
642
676
  }
643
677
  });
644
678
  async function readFileSafe(path) {
@@ -1808,7 +1842,9 @@ function shouldRewritePathToken(fullContent, start, end, matchText, rewriteBareP
1808
1842
  }
1809
1843
  if (before === "@") return true;
1810
1844
  if (before === "(") {
1811
- return after === ")" || after === "#" || after === "?" || after === " " || after === " ";
1845
+ if (fullContent[start - 2] === "]") {
1846
+ return after === ")" || after === "#" || after === "?" || after === " " || after === " ";
1847
+ }
1812
1848
  }
1813
1849
  if (!rewriteBarePathTokens) return false;
1814
1850
  if (isRootRelativePathToken(normalizedCandidate)) return true;
@@ -2202,6 +2238,55 @@ var init_descriptor_default_mappers = __esm({
2202
2238
  }
2203
2239
  });
2204
2240
 
2241
+ // src/install/importers/boilerplate-filter.ts
2242
+ function boilerplateKind(filename) {
2243
+ const lower = filename.toLowerCase();
2244
+ const dotIdx = lower.lastIndexOf(".");
2245
+ const stem = dotIdx > 0 ? lower.slice(0, dotIdx) : lower;
2246
+ return BOILERPLATE_STEMS.get(stem);
2247
+ }
2248
+ function isPreservedBoilerplate(filename) {
2249
+ return boilerplateKind(filename) === "preserved";
2250
+ }
2251
+ var BOILERPLATE_STEMS;
2252
+ var init_boilerplate_filter = __esm({
2253
+ "src/install/importers/boilerplate-filter.ts"() {
2254
+ BOILERPLATE_STEMS = /* @__PURE__ */ new Map([
2255
+ // Noise — upstream-repo housekeeping with no downstream value.
2256
+ ["contributing", "noise"],
2257
+ ["changelog", "noise"],
2258
+ ["changes", "noise"],
2259
+ ["history", "noise"],
2260
+ ["code_of_conduct", "noise"],
2261
+ ["security", "noise"],
2262
+ ["support", "noise"],
2263
+ ["maintainers", "noise"],
2264
+ ["governance", "noise"],
2265
+ ["authors", "noise"],
2266
+ ["contributors", "noise"],
2267
+ ["codeowners", "noise"],
2268
+ ["citation", "noise"],
2269
+ ["acknowledgments", "noise"],
2270
+ ["acknowledgements", "noise"],
2271
+ // Preserved — installed alongside content but never treated as an entity.
2272
+ // LICENSE family: legal attribution required by MIT/Apache/BSD/GPL.
2273
+ ["license", "preserved"],
2274
+ ["license-mit", "preserved"],
2275
+ ["license-apache", "preserved"],
2276
+ ["license-bsd", "preserved"],
2277
+ ["license-gpl", "preserved"],
2278
+ ["notice", "preserved"],
2279
+ ["copying", "preserved"],
2280
+ ["copyright", "preserved"],
2281
+ // README: skill-specific context (overview, usage, prerequisites) that
2282
+ // explains the skill to the downstream consumer. Filtered from entity
2283
+ // discovery so it can never become a phantom rule/command/agent named
2284
+ // "README", but kept as a supporting file so the docs travel with the install.
2285
+ ["readme", "preserved"]
2286
+ ]);
2287
+ }
2288
+ });
2289
+
2205
2290
  // src/targets/catalog/import-descriptor.ts
2206
2291
  function resolveScopedSources(paths, scope) {
2207
2292
  if (!paths) return [];
@@ -2235,18 +2320,32 @@ async function runSingleFile(spec, sources, projectRoot, fromTool, normalize) {
2235
2320
  const destPath = join(destDir, spec.canonicalRootFilename);
2236
2321
  const normalizeTo = (destinationFile) => normalize(content, srcPath, destinationFile);
2237
2322
  if (spec.map) {
2238
- const mapping = await spec.map({
2239
- absolutePath: srcPath,
2240
- relativePath: rel2,
2241
- content,
2242
- destDir,
2243
- normalizeTo
2244
- });
2323
+ let mapping;
2324
+ try {
2325
+ mapping = await spec.map({
2326
+ absolutePath: srcPath,
2327
+ relativePath: rel2,
2328
+ content,
2329
+ destDir,
2330
+ normalizeTo
2331
+ });
2332
+ } catch (err) {
2333
+ const msg = err instanceof Error ? err.message : String(err);
2334
+ process.stderr.write(`\u26A0 skipping ${srcPath}: ${msg}
2335
+ `);
2336
+ continue;
2337
+ }
2245
2338
  if (!mapping) continue;
2246
2339
  await writeFileAtomic(mapping.destPath, mapping.content);
2247
2340
  return [{ fromTool, fromPath: srcPath, toPath: mapping.toPath, feature: spec.feature }];
2248
2341
  }
2249
- const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));
2342
+ const result = tryParseFrontmatter(normalizeTo(destPath), srcPath);
2343
+ if (!result.ok) {
2344
+ process.stderr.write(`\u26A0 skipping ${srcPath}: ${result.error.message}
2345
+ `);
2346
+ continue;
2347
+ }
2348
+ const { frontmatter, body } = result.value;
2250
2349
  const remapped = spec.frontmatterRemap ? spec.frontmatterRemap(frontmatter) : frontmatter;
2251
2350
  const outFm = spec.markAsRoot ? { ...remapped, root: true } : remapped;
2252
2351
  const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);
@@ -2275,13 +2374,22 @@ async function runDirectory(spec, sources, projectRoot, fromTool, normalize) {
2275
2374
  fromTool,
2276
2375
  normalize,
2277
2376
  mapEntry: async ({ srcPath, relativePath, content, normalizeTo }) => {
2278
- const mapping = await mapper({
2279
- absolutePath: srcPath,
2280
- relativePath,
2281
- content,
2282
- destDir,
2283
- normalizeTo: (destinationFile) => normalizeTo(destinationFile)
2284
- });
2377
+ if (isPreservedBoilerplate(basename(srcPath))) return null;
2378
+ let mapping;
2379
+ try {
2380
+ mapping = await mapper({
2381
+ absolutePath: srcPath,
2382
+ relativePath,
2383
+ content,
2384
+ destDir,
2385
+ normalizeTo: (destinationFile) => normalizeTo(destinationFile)
2386
+ });
2387
+ } catch (err) {
2388
+ const msg = err instanceof Error ? err.message : String(err);
2389
+ process.stderr.write(`\u26A0 skipping ${srcPath}: ${msg}
2390
+ `);
2391
+ return null;
2392
+ }
2285
2393
  if (!mapping) return null;
2286
2394
  return {
2287
2395
  destPath: mapping.destPath,
@@ -2422,6 +2530,7 @@ var init_descriptor_import_runner = __esm({
2422
2530
  init_import_metadata();
2423
2531
  init_import_orchestrator();
2424
2532
  init_descriptor_default_mappers();
2533
+ init_boilerplate_filter();
2425
2534
  init_import_descriptor();
2426
2535
  }
2427
2536
  });
@@ -3299,7 +3408,7 @@ var init_crush = __esm({
3299
3408
  });
3300
3409
 
3301
3410
  // src/targets/cursor/constants.ts
3302
- var CURSOR_TARGET, CURSOR_COMPAT_AGENTS, CURSOR_LEGACY_RULES, CURSOR_RULES_DIR, CURSOR_GENERAL_RULE, CURSOR_COMMANDS_DIR, CURSOR_AGENTS_DIR, CURSOR_SKILLS_DIR, CURSOR_MCP, CURSOR_HOOKS, CURSOR_SETTINGS, CURSOR_IGNORE, CURSOR_INDEXING_IGNORE, CURSOR_GLOBAL_EXPORT_DIR, CURSOR_GLOBAL_USER_RULES, CURSOR_DOT_CURSOR_AGENTS, CURSOR_GLOBAL_MCP_EXPORT, CURSOR_GLOBAL_SKILLS_DIR, CURSOR_GLOBAL_AGENTS_DIR, CURSOR_CANONICAL_RULES_DIR, CURSOR_CANONICAL_COMMANDS_DIR, CURSOR_CANONICAL_AGENTS_DIR, CURSOR_CANONICAL_SKILLS_DIR, CURSOR_CANONICAL_MCP, CURSOR_CANONICAL_PERMISSIONS, CURSOR_CANONICAL_HOOKS, CURSOR_CANONICAL_IGNORE;
3411
+ var CURSOR_TARGET, CURSOR_COMPAT_AGENTS, CURSOR_LEGACY_RULES, CURSOR_RULES_DIR, CURSOR_GENERAL_RULE, CURSOR_COMMANDS_DIR, CURSOR_AGENTS_DIR, CURSOR_SKILLS_DIR, CURSOR_MCP, CURSOR_HOOKS, CURSOR_SETTINGS, CURSOR_IGNORE, CURSOR_INDEXING_IGNORE, CURSOR_GLOBAL_EXPORT_DIR, CURSOR_GLOBAL_USER_RULES, CURSOR_DOT_CURSOR_AGENTS, CURSOR_CANONICAL_RULES_DIR, CURSOR_CANONICAL_COMMANDS_DIR, CURSOR_CANONICAL_AGENTS_DIR, CURSOR_CANONICAL_SKILLS_DIR, CURSOR_CANONICAL_MCP, CURSOR_CANONICAL_PERMISSIONS, CURSOR_CANONICAL_HOOKS, CURSOR_CANONICAL_IGNORE;
3303
3412
  var init_constants11 = __esm({
3304
3413
  "src/targets/cursor/constants.ts"() {
3305
3414
  CURSOR_TARGET = "cursor";
@@ -3318,9 +3427,6 @@ var init_constants11 = __esm({
3318
3427
  CURSOR_GLOBAL_EXPORT_DIR = ".agentsmesh-exports/cursor";
3319
3428
  CURSOR_GLOBAL_USER_RULES = `${CURSOR_GLOBAL_EXPORT_DIR}/user-rules.md`;
3320
3429
  CURSOR_DOT_CURSOR_AGENTS = ".cursor/AGENTS.md";
3321
- CURSOR_GLOBAL_MCP_EXPORT = CURSOR_MCP;
3322
- CURSOR_GLOBAL_SKILLS_DIR = CURSOR_SKILLS_DIR;
3323
- CURSOR_GLOBAL_AGENTS_DIR = CURSOR_AGENTS_DIR;
3324
3430
  CURSOR_CANONICAL_RULES_DIR = ".agentsmesh/rules";
3325
3431
  CURSOR_CANONICAL_COMMANDS_DIR = ".agentsmesh/commands";
3326
3432
  CURSOR_CANONICAL_AGENTS_DIR = ".agentsmesh/agents";
@@ -4451,7 +4557,7 @@ var init_linter2 = __esm({
4451
4557
  });
4452
4558
 
4453
4559
  // src/targets/amazon-q/index.ts
4454
- var target2, project2, global, globalCapabilities, descriptor2;
4560
+ var target2, project2, globalLayout2, globalCapabilities, descriptor2;
4455
4561
  var init_amazon_q2 = __esm({
4456
4562
  "src/targets/amazon-q/index.ts"() {
4457
4563
  init_generator2();
@@ -4482,7 +4588,7 @@ var init_amazon_q2 = __esm({
4482
4588
  }
4483
4589
  }
4484
4590
  };
4485
- global = {
4591
+ globalLayout2 = {
4486
4592
  managedOutputs: {
4487
4593
  dirs: [AMAZON_Q_GLOBAL_RULES_DIR],
4488
4594
  files: [AMAZON_Q_GLOBAL_MCP_FILE]
@@ -4545,7 +4651,7 @@ var init_amazon_q2 = __esm({
4545
4651
  globalSupport: {
4546
4652
  capabilities: globalCapabilities,
4547
4653
  detectionPaths: [AMAZON_Q_GLOBAL_RULES_DIR, AMAZON_Q_GLOBAL_MCP_FILE],
4548
- layout: global
4654
+ layout: globalLayout2
4549
4655
  },
4550
4656
  importer: {
4551
4657
  rules: {
@@ -4615,13 +4721,22 @@ var init_generator3 = __esm({
4615
4721
 
4616
4722
  // src/targets/catalog/skill-mirror.ts
4617
4723
  function mirrorSkillsToAgents(path, skillsDir, activeTargets) {
4618
- if (path.startsWith(`${skillsDir}/`) && !activeTargets.includes("codex-cli")) {
4724
+ const hasNativeWriter = activeTargets.some((id) => NATIVE_AGENTS_SKILL_WRITERS.includes(id));
4725
+ if (path.startsWith(`${skillsDir}/`) && !hasNativeWriter) {
4619
4726
  return `.agents/skills/${path.slice(skillsDir.length + 1)}`;
4620
4727
  }
4621
4728
  return null;
4622
4729
  }
4730
+ var NATIVE_AGENTS_SKILL_WRITERS;
4623
4731
  var init_skill_mirror = __esm({
4624
4732
  "src/targets/catalog/skill-mirror.ts"() {
4733
+ NATIVE_AGENTS_SKILL_WRITERS = [
4734
+ "amp",
4735
+ "antigravity",
4736
+ "codex-cli",
4737
+ "goose",
4738
+ "replit-agent"
4739
+ ];
4625
4740
  }
4626
4741
  });
4627
4742
  async function importAmpMcp(projectRoot, settingsPath, results) {
@@ -4763,7 +4878,7 @@ function mergeAmpSettings(existing, newContent) {
4763
4878
  }
4764
4879
  return JSON.stringify(base, null, 2);
4765
4880
  }
4766
- var target3, project3, globalLayout2, capabilities2, descriptor3;
4881
+ var target3, project3, globalLayout3, capabilities2, descriptor3;
4767
4882
  var init_amp2 = __esm({
4768
4883
  "src/targets/amp/index.ts"() {
4769
4884
  init_command_skill();
@@ -4803,7 +4918,7 @@ var init_amp2 = __esm({
4803
4918
  }
4804
4919
  }
4805
4920
  };
4806
- globalLayout2 = {
4921
+ globalLayout3 = {
4807
4922
  rootInstructionPath: AMP_GLOBAL_ROOT_FILE,
4808
4923
  skillDir: AMP_GLOBAL_SKILLS_DIR,
4809
4924
  managedOutputs: {
@@ -4866,7 +4981,7 @@ var init_amp2 = __esm({
4866
4981
  globalSupport: {
4867
4982
  capabilities: capabilities2,
4868
4983
  detectionPaths: [AMP_GLOBAL_ROOT_FILE, AMP_GLOBAL_MCP_FILE],
4869
- layout: globalLayout2
4984
+ layout: globalLayout3
4870
4985
  },
4871
4986
  importer: {
4872
4987
  rules: {
@@ -4900,7 +5015,8 @@ var init_amp2 = __esm({
4900
5015
  ".agents/skills/": "consumer"
4901
5016
  },
4902
5017
  buildImportPaths: buildAmpImportPaths,
4903
- detectionPaths: [AMP_ROOT_FILE, AMP_MCP_FILE]
5018
+ detectionPaths: [AMP_ROOT_FILE, AMP_MCP_FILE],
5019
+ conversionDefaults: { commandsToSkills: true, agentsToSkills: true }
4904
5020
  };
4905
5021
  }
4906
5022
  });
@@ -5140,7 +5256,7 @@ var init_linter4 = __esm({
5140
5256
  });
5141
5257
 
5142
5258
  // src/targets/antigravity/index.ts
5143
- var target4, project4, global2, globalCapabilities2, descriptor4;
5259
+ var target4, project4, globalLayout4, globalCapabilities2, descriptor4;
5144
5260
  var init_antigravity2 = __esm({
5145
5261
  "src/targets/antigravity/index.ts"() {
5146
5262
  init_capabilities();
@@ -5164,6 +5280,20 @@ var init_antigravity2 = __esm({
5164
5280
  project4 = {
5165
5281
  rootInstructionPath: ANTIGRAVITY_RULES_ROOT,
5166
5282
  skillDir: ".agents/skills",
5283
+ // managedOutputs is the sole signal `cleanupStaleGeneratedOutputs` uses to
5284
+ // decide which dirs/files to scan when reconciling post-uninstall state.
5285
+ // Antigravity emits across three dirs:
5286
+ // - `.agents/rules` (rules)
5287
+ // - `.agents/workflows` (commands → workflows projection)
5288
+ // - `.agents/skills` (agents → skills projection + native skills)
5289
+ // Without all three here, projected outputs from an uninstalled pack would
5290
+ // linger in the user's project. The root rule file and (suppressed) MCP
5291
+ // config are listed under `files` so a flip from one root style to another
5292
+ // doesn't leave both behind.
5293
+ managedOutputs: {
5294
+ dirs: [ANTIGRAVITY_RULES_DIR, ANTIGRAVITY_WORKFLOWS_DIR, ANTIGRAVITY_SKILLS_DIR],
5295
+ files: [ANTIGRAVITY_RULES_ROOT]
5296
+ },
5167
5297
  rewriteGeneratedPath(path) {
5168
5298
  if (path === ANTIGRAVITY_MCP_CONFIG) return null;
5169
5299
  return path;
@@ -5180,7 +5310,7 @@ var init_antigravity2 = __esm({
5180
5310
  }
5181
5311
  }
5182
5312
  };
5183
- global2 = {
5313
+ globalLayout4 = {
5184
5314
  rootInstructionPath: ANTIGRAVITY_GLOBAL_ROOT,
5185
5315
  renderPrimaryRootInstruction: renderAntigravityGlobalInstructions,
5186
5316
  skillDir: ANTIGRAVITY_GLOBAL_SKILLS_DIR,
@@ -5208,7 +5338,7 @@ var init_antigravity2 = __esm({
5208
5338
  return `${ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR}/${name}.md`;
5209
5339
  },
5210
5340
  agentPath(name) {
5211
- return `${ANTIGRAVITY_SKILLS_DIR}/${projectedAgentSkillDirName(name)}/SKILL.md`;
5341
+ return `${ANTIGRAVITY_GLOBAL_SKILLS_DIR}/${projectedAgentSkillDirName(name)}/SKILL.md`;
5212
5342
  }
5213
5343
  }
5214
5344
  };
@@ -5255,7 +5385,7 @@ var init_antigravity2 = __esm({
5255
5385
  ".gemini/antigravity/workflows",
5256
5386
  ".gemini/antigravity/mcp_config.json"
5257
5387
  ],
5258
- layout: global2
5388
+ layout: globalLayout4
5259
5389
  },
5260
5390
  importer: {
5261
5391
  rules: {
@@ -5296,7 +5426,8 @@ var init_antigravity2 = __esm({
5296
5426
  ".agents/rules/",
5297
5427
  ".agents/skills/",
5298
5428
  ".agents/workflows/"
5299
- ]
5429
+ ],
5430
+ conversionDefaults: { agentsToSkills: true }
5300
5431
  };
5301
5432
  }
5302
5433
  });
@@ -5628,7 +5759,7 @@ function buildSettingsContent(canonical) {
5628
5759
  if (Object.keys(settings).length === 0) return null;
5629
5760
  return JSON.stringify(settings, null, 2);
5630
5761
  }
5631
- var target5, project5, globalLayout3, capabilities3, globalCapabilities3, descriptor5;
5762
+ var target5, project5, globalLayout5, capabilities3, globalCapabilities3, descriptor5;
5632
5763
  var init_augment_code2 = __esm({
5633
5764
  "src/targets/augment-code/index.ts"() {
5634
5765
  init_generator5();
@@ -5663,7 +5794,7 @@ var init_augment_code2 = __esm({
5663
5794
  }
5664
5795
  }
5665
5796
  };
5666
- globalLayout3 = {
5797
+ globalLayout5 = {
5667
5798
  skillDir: AUGMENT_CODE_GLOBAL_SKILLS_DIR,
5668
5799
  managedOutputs: {
5669
5800
  dirs: [
@@ -5749,7 +5880,7 @@ var init_augment_code2 = __esm({
5749
5880
  AUGMENT_CODE_GLOBAL_SKILLS_DIR,
5750
5881
  AUGMENT_CODE_GLOBAL_SETTINGS_FILE
5751
5882
  ],
5752
- layout: globalLayout3
5883
+ layout: globalLayout5
5753
5884
  },
5754
5885
  emitScopedSettings(canonical) {
5755
5886
  const content = buildSettingsContent(canonical);
@@ -6149,6 +6280,19 @@ async function importClaudeSkills(projectRoot, results, normalize) {
6149
6280
  const skillDir = dirname(skillMdPath);
6150
6281
  const skillName = basename(skillDir);
6151
6282
  const destSkillDir = join(destBase, skillName);
6283
+ const skillMdContent = await readFileSafe(skillMdPath);
6284
+ if (skillMdContent === null) continue;
6285
+ const normalizedSkillMd = normalize(
6286
+ skillMdContent,
6287
+ skillMdPath,
6288
+ join(destSkillDir, "SKILL.md")
6289
+ );
6290
+ const skillMdParsed = tryParseFrontmatter(normalizedSkillMd, skillMdPath);
6291
+ if (!skillMdParsed.ok) {
6292
+ process.stderr.write(`\u26A0 skipping ${skillMdPath}: ${skillMdParsed.error.message}
6293
+ `);
6294
+ continue;
6295
+ }
6152
6296
  const skillFiles = await readDirRecursive(skillDir);
6153
6297
  for (const filePath of skillFiles) {
6154
6298
  const fileContent = await readFileSafe(filePath);
@@ -6157,13 +6301,12 @@ async function importClaudeSkills(projectRoot, results, normalize) {
6157
6301
  const destPath = join(destSkillDir, relPath);
6158
6302
  await mkdirp(dirname(destPath));
6159
6303
  const normalized = normalize(fileContent, filePath, destPath);
6160
- const parsed = relPath === "SKILL.md" ? parseFrontmatter(normalized) : null;
6161
6304
  await writeFileAtomic(
6162
6305
  destPath,
6163
6306
  relPath === "SKILL.md" ? await serializeImportedSkillWithFallback(
6164
6307
  destPath,
6165
- parsed?.frontmatter ?? {},
6166
- parsed?.body ?? ""
6308
+ skillMdParsed.value.frontmatter,
6309
+ skillMdParsed.value.body
6167
6310
  ) : normalized
6168
6311
  );
6169
6312
  const toPath = `${CLAUDE_CANONICAL_SKILLS_DIR}/${skillName}/${relPath}`;
@@ -6284,7 +6427,7 @@ var init_linter6 = __esm({
6284
6427
  });
6285
6428
 
6286
6429
  // src/targets/claude-code/index.ts
6287
- var target6, project6, global3, globalCapabilities4, descriptor6;
6430
+ var target6, project6, globalLayout6, globalCapabilities4, descriptor6;
6288
6431
  var init_claude_code2 = __esm({
6289
6432
  "src/targets/claude-code/index.ts"() {
6290
6433
  init_generator6();
@@ -6328,7 +6471,7 @@ var init_claude_code2 = __esm({
6328
6471
  }
6329
6472
  }
6330
6473
  };
6331
- global3 = {
6474
+ globalLayout6 = {
6332
6475
  rootInstructionPath: CLAUDE_ROOT,
6333
6476
  skillDir: ".claude/skills",
6334
6477
  renderPrimaryRootInstruction: renderClaudeGlobalPrimaryInstructions,
@@ -6407,7 +6550,7 @@ var init_claude_code2 = __esm({
6407
6550
  ".claude.json",
6408
6551
  ".agents/skills"
6409
6552
  ],
6410
- layout: global3,
6553
+ layout: globalLayout6,
6411
6554
  scopeExtras: generateClaudeGlobalExtras
6412
6555
  },
6413
6556
  importer: {
@@ -7197,7 +7340,7 @@ var init_lint4 = __esm({
7197
7340
  });
7198
7341
 
7199
7342
  // src/targets/cline/index.ts
7200
- var target7, project7, globalLayout4, globalCapabilities5, descriptor7;
7343
+ var target7, project7, globalLayout7, globalCapabilities5, descriptor7;
7201
7344
  var init_cline2 = __esm({
7202
7345
  "src/targets/cline/index.ts"() {
7203
7346
  init_generator7();
@@ -7245,7 +7388,7 @@ var init_cline2 = __esm({
7245
7388
  }
7246
7389
  }
7247
7390
  };
7248
- globalLayout4 = {
7391
+ globalLayout7 = {
7249
7392
  skillDir: CLINE_SKILLS_DIR,
7250
7393
  managedOutputs: {
7251
7394
  dirs: [
@@ -7337,10 +7480,11 @@ var init_cline2 = __esm({
7337
7480
  CLINE_MCP_SETTINGS,
7338
7481
  CLINE_IGNORE
7339
7482
  ],
7340
- layout: globalLayout4
7483
+ layout: globalLayout7
7341
7484
  },
7342
7485
  buildImportPaths: buildClineImportPaths,
7343
- detectionPaths: [".clinerules", ".cline"]
7486
+ detectionPaths: [".clinerules", ".cline"],
7487
+ conversionDefaults: { agentsToSkills: true }
7344
7488
  };
7345
7489
  }
7346
7490
  });
@@ -8120,7 +8264,7 @@ var init_codex_rule_paths = __esm({
8120
8264
  init_instruction_mirror();
8121
8265
  }
8122
8266
  });
8123
- var target8, project8, global4, globalCapabilities6, descriptor8;
8267
+ var target8, project8, globalLayout8, globalCapabilities6, descriptor8;
8124
8268
  var init_codex_cli2 = __esm({
8125
8269
  "src/targets/codex-cli/index.ts"() {
8126
8270
  init_generator9();
@@ -8166,7 +8310,7 @@ var init_codex_cli2 = __esm({
8166
8310
  }
8167
8311
  }
8168
8312
  };
8169
- global4 = {
8313
+ globalLayout8 = {
8170
8314
  rootInstructionPath: CODEX_GLOBAL_AGENTS_MD,
8171
8315
  renderPrimaryRootInstruction: renderCodexGlobalInstructions,
8172
8316
  extraRuleOutputPaths(rule) {
@@ -8244,7 +8388,7 @@ var init_codex_cli2 = __esm({
8244
8388
  ".codex/rules",
8245
8389
  ".agents/skills"
8246
8390
  ],
8247
- layout: global4
8391
+ layout: globalLayout8
8248
8392
  },
8249
8393
  buildImportPaths: buildCodexCliImportPaths,
8250
8394
  sharedArtifacts: {
@@ -8257,7 +8401,9 @@ var init_codex_cli2 = __esm({
8257
8401
  ".codex/config.toml",
8258
8402
  ".codex/agents",
8259
8403
  ".codex/rules"
8260
- ]
8404
+ ],
8405
+ excludeFromStarterInit: true,
8406
+ conversionDefaults: { commandsToSkills: true, agentsToSkills: false }
8261
8407
  };
8262
8408
  }
8263
8409
  });
@@ -8620,7 +8766,7 @@ var init_scope_extras = __esm({
8620
8766
  });
8621
8767
 
8622
8768
  // src/targets/continue/index.ts
8623
- var target9, project9, globalLayout5, globalCapabilities7, descriptor9;
8769
+ var target9, project9, globalLayout9, globalCapabilities7, descriptor9;
8624
8770
  var init_continue2 = __esm({
8625
8771
  "src/targets/continue/index.ts"() {
8626
8772
  init_projected_agent_skill();
@@ -8662,7 +8808,7 @@ var init_continue2 = __esm({
8662
8808
  }
8663
8809
  }
8664
8810
  };
8665
- globalLayout5 = {
8811
+ globalLayout9 = {
8666
8812
  rootInstructionPath: CONTINUE_ROOT_RULE,
8667
8813
  outputFamilies: [
8668
8814
  { id: "compat-agents", kind: "additional", explicitPaths: [CONTINUE_GLOBAL_AGENTS_MD] }
@@ -8736,7 +8882,7 @@ var init_continue2 = __esm({
8736
8882
  ".continue/mcpServers",
8737
8883
  CONTINUE_SKILLS_DIR
8738
8884
  ],
8739
- layout: globalLayout5,
8885
+ layout: globalLayout9,
8740
8886
  scopeExtras: generateContinueScopeExtras
8741
8887
  },
8742
8888
  importer: {
@@ -8758,7 +8904,8 @@ var init_continue2 = __esm({
8758
8904
  }
8759
8905
  },
8760
8906
  buildImportPaths: buildContinueImportPaths,
8761
- detectionPaths: [".continue/rules", ".continue/skills", ".continue/mcpServers"]
8907
+ detectionPaths: [".continue/rules", ".continue/skills", ".continue/mcpServers"],
8908
+ conversionDefaults: { agentsToSkills: true }
8762
8909
  };
8763
8910
  }
8764
8911
  });
@@ -9408,7 +9555,7 @@ var init_scope_extras2 = __esm({
9408
9555
  };
9409
9556
  }
9410
9557
  });
9411
- var target10, project10, global5, globalCapabilities8, descriptor10;
9558
+ var target10, project10, globalLayout10, globalCapabilities8, descriptor10;
9412
9559
  var init_copilot2 = __esm({
9413
9560
  "src/targets/copilot/index.ts"() {
9414
9561
  init_generator11();
@@ -9462,7 +9609,7 @@ var init_copilot2 = __esm({
9462
9609
  }
9463
9610
  }
9464
9611
  };
9465
- global5 = {
9612
+ globalLayout10 = {
9466
9613
  rootInstructionPath: COPILOT_GLOBAL_INSTRUCTIONS,
9467
9614
  renderPrimaryRootInstruction: renderCopilotGlobalInstructions,
9468
9615
  outputFamilies: [
@@ -9568,7 +9715,7 @@ var init_copilot2 = __esm({
9568
9715
  COPILOT_GLOBAL_PROMPTS_DIR,
9569
9716
  COPILOT_GLOBAL_AGENTS_SKILLS_DIR
9570
9717
  ],
9571
- layout: global5,
9718
+ layout: globalLayout10,
9572
9719
  scopeExtras: generateCopilotGlobalExtras
9573
9720
  },
9574
9721
  importer: {
@@ -9937,7 +10084,7 @@ var init_settings = __esm({
9937
10084
  });
9938
10085
 
9939
10086
  // src/targets/crush/index.ts
9940
- var target11, project11, globalLayout6, capabilities4, globalCapabilities9, descriptor11;
10087
+ var target11, project11, globalLayout11, capabilities4, globalCapabilities9, descriptor11;
9941
10088
  var init_crush2 = __esm({
9942
10089
  "src/targets/crush/index.ts"() {
9943
10090
  init_command_skill();
@@ -9982,7 +10129,7 @@ var init_crush2 = __esm({
9982
10129
  }
9983
10130
  }
9984
10131
  };
9985
- globalLayout6 = {
10132
+ globalLayout11 = {
9986
10133
  rootInstructionPath: CRUSH_GLOBAL_ROOT_FILE,
9987
10134
  skillDir: CRUSH_GLOBAL_SKILLS_DIR,
9988
10135
  managedOutputs: {
@@ -10055,7 +10202,7 @@ var init_crush2 = __esm({
10055
10202
  globalSupport: {
10056
10203
  capabilities: globalCapabilities9,
10057
10204
  detectionPaths: [CRUSH_GLOBAL_ROOT_FILE, CRUSH_GLOBAL_CONFIG_FILE, CRUSH_GLOBAL_SKILLS_DIR],
10058
- layout: globalLayout6
10205
+ layout: globalLayout11
10059
10206
  },
10060
10207
  mergeGeneratedOutputContent(existing, pending, newContent, resolvedPath) {
10061
10208
  const base = pending?.content ?? existing;
@@ -10637,20 +10784,20 @@ async function hasGlobalCursorArtifacts(projectRoot) {
10637
10784
  const candidates = [
10638
10785
  join(projectRoot, CURSOR_DOT_CURSOR_AGENTS),
10639
10786
  join(projectRoot, CURSOR_GLOBAL_USER_RULES),
10640
- join(projectRoot, CURSOR_GLOBAL_MCP_EXPORT),
10787
+ join(projectRoot, CURSOR_MCP),
10641
10788
  join(projectRoot, CURSOR_HOOKS),
10642
10789
  join(projectRoot, CURSOR_IGNORE),
10643
- join(projectRoot, CURSOR_GLOBAL_SKILLS_DIR),
10644
- join(projectRoot, CURSOR_GLOBAL_AGENTS_DIR),
10790
+ join(projectRoot, CURSOR_SKILLS_DIR),
10791
+ join(projectRoot, CURSOR_AGENTS_DIR),
10645
10792
  join(projectRoot, CURSOR_COMMANDS_DIR)
10646
10793
  ];
10647
10794
  for (const p of candidates) {
10648
10795
  const stat5 = await readFileSafe(p);
10649
10796
  if (stat5 !== null && stat5.trim() !== "") return true;
10650
10797
  }
10651
- const skillFiles = await readDirRecursive(join(projectRoot, CURSOR_GLOBAL_SKILLS_DIR));
10798
+ const skillFiles = await readDirRecursive(join(projectRoot, CURSOR_SKILLS_DIR));
10652
10799
  if (skillFiles.some((f) => f.endsWith(".md"))) return true;
10653
- const agentFiles = await readDirRecursive(join(projectRoot, CURSOR_GLOBAL_AGENTS_DIR));
10800
+ const agentFiles = await readDirRecursive(join(projectRoot, CURSOR_AGENTS_DIR));
10654
10801
  if (agentFiles.some((f) => f.endsWith(".md"))) return true;
10655
10802
  const commandFiles = await readDirRecursive(join(projectRoot, CURSOR_COMMANDS_DIR));
10656
10803
  if (commandFiles.some((f) => f.endsWith(".md"))) return true;
@@ -10707,7 +10854,7 @@ async function importGlobalDotCursorAgents(projectRoot, results, normalize) {
10707
10854
  });
10708
10855
  }
10709
10856
  async function importGlobalMcp(projectRoot, results) {
10710
- const mcpPath = join(projectRoot, CURSOR_GLOBAL_MCP_EXPORT);
10857
+ const mcpPath = join(projectRoot, CURSOR_MCP);
10711
10858
  const content = await readFileSafe(mcpPath);
10712
10859
  if (content === null || content.trim() === "") return;
10713
10860
  let parsed;
@@ -10728,7 +10875,7 @@ async function importGlobalMcp(projectRoot, results) {
10728
10875
  });
10729
10876
  }
10730
10877
  async function importGlobalAgents(projectRoot, results, normalize) {
10731
- const agentsDir = join(projectRoot, CURSOR_GLOBAL_AGENTS_DIR);
10878
+ const agentsDir = join(projectRoot, CURSOR_AGENTS_DIR);
10732
10879
  const destDir = join(projectRoot, CURSOR_CANONICAL_AGENTS_DIR);
10733
10880
  results.push(
10734
10881
  ...await importFileDirectory({
@@ -10777,7 +10924,7 @@ async function importFromCursorGlobalExports(projectRoot) {
10777
10924
  if (!rootWritten) rootWritten = await importGlobalUserRules(projectRoot, results, normalize);
10778
10925
  if (!rootWritten) await importGlobalDotCursorAgents(projectRoot, results, normalize);
10779
10926
  await importGlobalMcp(projectRoot, results);
10780
- await importSkills3(projectRoot, results, normalize, CURSOR_GLOBAL_SKILLS_DIR);
10927
+ await importSkills3(projectRoot, results, normalize, CURSOR_SKILLS_DIR);
10781
10928
  await importGlobalAgents(projectRoot, results, normalize);
10782
10929
  await importGlobalCommands(projectRoot, results, normalize);
10783
10930
  await importSettings2(projectRoot, results);
@@ -10951,7 +11098,7 @@ var init_lint9 = __esm({
10951
11098
  });
10952
11099
 
10953
11100
  // src/targets/cursor/index.ts
10954
- var target12, project12, global6, globalCapabilities10, descriptor12;
11101
+ var target12, project12, globalLayout12, globalCapabilities10, descriptor12;
10955
11102
  var init_cursor2 = __esm({
10956
11103
  "src/targets/cursor/index.ts"() {
10957
11104
  init_generator14();
@@ -11001,7 +11148,7 @@ var init_cursor2 = __esm({
11001
11148
  }
11002
11149
  }
11003
11150
  };
11004
- global6 = {
11151
+ globalLayout12 = {
11005
11152
  rootInstructionPath: CURSOR_GENERAL_RULE,
11006
11153
  outputFamilies: [
11007
11154
  {
@@ -11010,18 +11157,13 @@ var init_cursor2 = __esm({
11010
11157
  explicitPaths: [CURSOR_COMPAT_AGENTS, CURSOR_DOT_CURSOR_AGENTS]
11011
11158
  }
11012
11159
  ],
11013
- skillDir: CURSOR_GLOBAL_SKILLS_DIR,
11160
+ skillDir: CURSOR_SKILLS_DIR,
11014
11161
  managedOutputs: {
11015
- dirs: [
11016
- CURSOR_RULES_DIR,
11017
- CURSOR_COMMANDS_DIR,
11018
- CURSOR_GLOBAL_AGENTS_DIR,
11019
- CURSOR_GLOBAL_SKILLS_DIR
11020
- ],
11162
+ dirs: [CURSOR_RULES_DIR, CURSOR_COMMANDS_DIR, CURSOR_AGENTS_DIR, CURSOR_SKILLS_DIR],
11021
11163
  files: [
11022
11164
  CURSOR_GENERAL_RULE,
11023
11165
  CURSOR_DOT_CURSOR_AGENTS,
11024
- CURSOR_GLOBAL_MCP_EXPORT,
11166
+ CURSOR_MCP,
11025
11167
  CURSOR_HOOKS,
11026
11168
  CURSOR_IGNORE,
11027
11169
  CURSOR_GLOBAL_USER_RULES
@@ -11050,7 +11192,7 @@ var init_cursor2 = __esm({
11050
11192
  return `${CURSOR_COMMANDS_DIR}/${name}.md`;
11051
11193
  },
11052
11194
  agentPath(name, _config) {
11053
- return `${CURSOR_GLOBAL_AGENTS_DIR}/${name}.md`;
11195
+ return `${CURSOR_AGENTS_DIR}/${name}.md`;
11054
11196
  }
11055
11197
  }
11056
11198
  };
@@ -11102,11 +11244,11 @@ var init_cursor2 = __esm({
11102
11244
  CURSOR_HOOKS,
11103
11245
  CURSOR_IGNORE,
11104
11246
  CURSOR_SKILLS_DIR,
11105
- CURSOR_GLOBAL_AGENTS_DIR,
11247
+ CURSOR_AGENTS_DIR,
11106
11248
  CURSOR_COMMANDS_DIR,
11107
11249
  CURSOR_GLOBAL_USER_RULES
11108
11250
  ],
11109
- layout: global6
11251
+ layout: globalLayout12
11110
11252
  },
11111
11253
  importer: {
11112
11254
  // Project-only declarable features. Rules/mcp/skills/settings/ignore stay
@@ -11265,7 +11407,7 @@ var init_lint10 = __esm({
11265
11407
  });
11266
11408
 
11267
11409
  // src/targets/deepagents-cli/index.ts
11268
- var target13, project13, globalLayout7, capabilities5, globalCapabilities11, descriptor13;
11410
+ var target13, project13, globalLayout13, capabilities5, globalCapabilities11, descriptor13;
11269
11411
  var init_deepagents_cli2 = __esm({
11270
11412
  "src/targets/deepagents-cli/index.ts"() {
11271
11413
  init_command_skill();
@@ -11305,7 +11447,7 @@ var init_deepagents_cli2 = __esm({
11305
11447
  }
11306
11448
  }
11307
11449
  };
11308
- globalLayout7 = {
11450
+ globalLayout13 = {
11309
11451
  rootInstructionPath: DEEPAGENTS_CLI_GLOBAL_ROOT_FILE,
11310
11452
  skillDir: DEEPAGENTS_CLI_GLOBAL_SKILLS_DIR,
11311
11453
  managedOutputs: {
@@ -11376,7 +11518,7 @@ var init_deepagents_cli2 = __esm({
11376
11518
  globalSupport: {
11377
11519
  capabilities: globalCapabilities11,
11378
11520
  detectionPaths: [DEEPAGENTS_CLI_GLOBAL_ROOT_FILE, DEEPAGENTS_CLI_GLOBAL_MCP_FILE],
11379
- layout: globalLayout7
11521
+ layout: globalLayout13
11380
11522
  },
11381
11523
  importer: {
11382
11524
  rules: {
@@ -11598,7 +11740,7 @@ var init_lint11 = __esm({
11598
11740
  });
11599
11741
 
11600
11742
  // src/targets/factory-droid/index.ts
11601
- var target14, project14, globalLayout8, capabilities6, descriptor14;
11743
+ var target14, project14, globalLayout14, capabilities6, descriptor14;
11602
11744
  var init_factory_droid2 = __esm({
11603
11745
  "src/targets/factory-droid/index.ts"() {
11604
11746
  init_generator16();
@@ -11637,7 +11779,7 @@ var init_factory_droid2 = __esm({
11637
11779
  }
11638
11780
  }
11639
11781
  };
11640
- globalLayout8 = {
11782
+ globalLayout14 = {
11641
11783
  rootInstructionPath: FACTORY_DROID_GLOBAL_ROOT_FILE,
11642
11784
  skillDir: FACTORY_DROID_GLOBAL_SKILLS_DIR,
11643
11785
  managedOutputs: {
@@ -11704,7 +11846,7 @@ var init_factory_droid2 = __esm({
11704
11846
  FACTORY_DROID_GLOBAL_MCP_FILE,
11705
11847
  FACTORY_DROID_GLOBAL_DROIDS_DIR
11706
11848
  ],
11707
- layout: globalLayout8
11849
+ layout: globalLayout14
11708
11850
  },
11709
11851
  importer: {
11710
11852
  rules: {
@@ -12647,7 +12789,7 @@ var init_scoped_settings_emit = __esm({
12647
12789
  });
12648
12790
 
12649
12791
  // src/targets/gemini-cli/index.ts
12650
- var target15, project15, global7, globalCapabilities12, descriptor15;
12792
+ var target15, project15, globalLayout15, globalCapabilities12, descriptor15;
12651
12793
  var init_gemini_cli2 = __esm({
12652
12794
  "src/targets/gemini-cli/index.ts"() {
12653
12795
  init_generator18();
@@ -12717,7 +12859,7 @@ var init_gemini_cli2 = __esm({
12717
12859
  }
12718
12860
  }
12719
12861
  };
12720
- global7 = {
12862
+ globalLayout15 = {
12721
12863
  rootInstructionPath: GEMINI_GLOBAL_ROOT,
12722
12864
  outputFamilies: [
12723
12865
  { id: "compat-agents", kind: "additional", explicitPaths: [GEMINI_GLOBAL_COMPAT_AGENTS] }
@@ -12828,7 +12970,7 @@ var init_gemini_cli2 = __esm({
12828
12970
  GEMINI_GLOBAL_SKILLS_DIR,
12829
12971
  GEMINI_GLOBAL_AGENTS_DIR
12830
12972
  ],
12831
- layout: global7
12973
+ layout: globalLayout15
12832
12974
  },
12833
12975
  importer: {
12834
12976
  rules: {
@@ -12849,7 +12991,8 @@ var init_gemini_cli2 = __esm({
12849
12991
  }
12850
12992
  },
12851
12993
  buildImportPaths: buildGeminiCliImportPaths,
12852
- detectionPaths: ["GEMINI.md", ".gemini"]
12994
+ detectionPaths: ["GEMINI.md", ".gemini"],
12995
+ conversionDefaults: { agentsToSkills: false }
12853
12996
  };
12854
12997
  }
12855
12998
  });
@@ -12976,7 +13119,7 @@ var init_lint13 = __esm({
12976
13119
  });
12977
13120
 
12978
13121
  // src/targets/goose/index.ts
12979
- var target16, project16, globalLayout9, capabilities7, descriptor16;
13122
+ var target16, project16, globalLayout16, capabilities7, descriptor16;
12980
13123
  var init_goose2 = __esm({
12981
13124
  "src/targets/goose/index.ts"() {
12982
13125
  init_command_skill();
@@ -13017,7 +13160,7 @@ var init_goose2 = __esm({
13017
13160
  }
13018
13161
  }
13019
13162
  };
13020
- globalLayout9 = {
13163
+ globalLayout16 = {
13021
13164
  rootInstructionPath: GOOSE_GLOBAL_ROOT_FILE,
13022
13165
  skillDir: GOOSE_GLOBAL_SKILLS_DIR,
13023
13166
  managedOutputs: {
@@ -13027,9 +13170,6 @@ var init_goose2 = __esm({
13027
13170
  rewriteGeneratedPath(path) {
13028
13171
  if (path === GOOSE_ROOT_FILE) return GOOSE_GLOBAL_ROOT_FILE;
13029
13172
  if (path === GOOSE_IGNORE) return GOOSE_GLOBAL_IGNORE;
13030
- if (path.startsWith(`${GOOSE_SKILLS_DIR}/`)) {
13031
- return path;
13032
- }
13033
13173
  return path;
13034
13174
  },
13035
13175
  mirrorGlobalPath(path, activeTargets) {
@@ -13080,7 +13220,7 @@ var init_goose2 = __esm({
13080
13220
  globalSupport: {
13081
13221
  capabilities: capabilities7,
13082
13222
  detectionPaths: [GOOSE_GLOBAL_ROOT_FILE, GOOSE_GLOBAL_IGNORE, GOOSE_GLOBAL_SKILLS_DIR],
13083
- layout: globalLayout9
13223
+ layout: globalLayout16
13084
13224
  },
13085
13225
  importer: {
13086
13226
  rules: {
@@ -13109,7 +13249,8 @@ var init_goose2 = __esm({
13109
13249
  ".agents/skills/": "consumer"
13110
13250
  },
13111
13251
  buildImportPaths: buildGooseImportPaths,
13112
- detectionPaths: [GOOSE_ROOT_FILE, GOOSE_IGNORE]
13252
+ detectionPaths: [GOOSE_ROOT_FILE, GOOSE_IGNORE],
13253
+ conversionDefaults: { commandsToSkills: true, agentsToSkills: true }
13113
13254
  };
13114
13255
  }
13115
13256
  });
@@ -13505,7 +13646,7 @@ var init_lint15 = __esm({
13505
13646
  });
13506
13647
 
13507
13648
  // src/targets/junie/index.ts
13508
- var target18, project18, global8, globalCapabilities13, descriptor18;
13649
+ var target18, project18, globalLayout17, globalCapabilities13, descriptor18;
13509
13650
  var init_junie2 = __esm({
13510
13651
  "src/targets/junie/index.ts"() {
13511
13652
  init_generator21();
@@ -13545,7 +13686,7 @@ var init_junie2 = __esm({
13545
13686
  }
13546
13687
  }
13547
13688
  };
13548
- global8 = {
13689
+ globalLayout17 = {
13549
13690
  rootInstructionPath: JUNIE_GLOBAL_AGENTS_MD,
13550
13691
  renderPrimaryRootInstruction: renderJunieGlobalInstructions,
13551
13692
  skillDir: JUNIE_GLOBAL_SKILLS_DIR,
@@ -13643,7 +13784,7 @@ var init_junie2 = __esm({
13643
13784
  JUNIE_GLOBAL_COMMANDS_DIR,
13644
13785
  JUNIE_GLOBAL_MCP_FILE
13645
13786
  ],
13646
- layout: global8
13787
+ layout: globalLayout17
13647
13788
  },
13648
13789
  importer: {
13649
13790
  rules: {
@@ -14040,7 +14181,7 @@ var init_lint16 = __esm({
14040
14181
  });
14041
14182
 
14042
14183
  // src/targets/kilo-code/index.ts
14043
- var target19, project19, globalLayout10, capabilities9, descriptor19;
14184
+ var target19, project19, globalLayout18, capabilities9, descriptor19;
14044
14185
  var init_kilo_code2 = __esm({
14045
14186
  "src/targets/kilo-code/index.ts"() {
14046
14187
  init_generator22();
@@ -14081,7 +14222,7 @@ var init_kilo_code2 = __esm({
14081
14222
  }
14082
14223
  }
14083
14224
  };
14084
- globalLayout10 = {
14225
+ globalLayout18 = {
14085
14226
  rootInstructionPath: KILO_CODE_GLOBAL_AGENTS_MD,
14086
14227
  skillDir: KILO_CODE_GLOBAL_SKILLS_DIR,
14087
14228
  managedOutputs: {
@@ -14152,7 +14293,7 @@ var init_kilo_code2 = __esm({
14152
14293
  KILO_CODE_GLOBAL_MCP_FILE,
14153
14294
  KILO_CODE_GLOBAL_IGNORE
14154
14295
  ],
14155
- layout: globalLayout10
14296
+ layout: globalLayout18
14156
14297
  },
14157
14298
  importer: {
14158
14299
  rules: [
@@ -14562,7 +14703,7 @@ var init_lint17 = __esm({
14562
14703
  });
14563
14704
 
14564
14705
  // src/targets/kiro/index.ts
14565
- var target20, project20, global9, globalCapabilities14, descriptor20;
14706
+ var target20, project20, globalLayout19, globalCapabilities14, descriptor20;
14566
14707
  var init_kiro2 = __esm({
14567
14708
  "src/targets/kiro/index.ts"() {
14568
14709
  init_command_skill();
@@ -14604,7 +14745,7 @@ var init_kiro2 = __esm({
14604
14745
  }
14605
14746
  }
14606
14747
  };
14607
- global9 = {
14748
+ globalLayout19 = {
14608
14749
  rootInstructionPath: KIRO_GLOBAL_STEERING_AGENTS_MD,
14609
14750
  skillDir: KIRO_GLOBAL_SKILLS_DIR,
14610
14751
  managedOutputs: {
@@ -14703,7 +14844,7 @@ var init_kiro2 = __esm({
14703
14844
  KIRO_GLOBAL_MCP_FILE,
14704
14845
  KIRO_GLOBAL_IGNORE
14705
14846
  ],
14706
- layout: global9
14847
+ layout: globalLayout19
14707
14848
  },
14708
14849
  importer: {
14709
14850
  agents: {
@@ -14737,7 +14878,8 @@ var init_kiro2 = __esm({
14737
14878
  KIRO_HOOKS_DIR,
14738
14879
  KIRO_MCP_FILE,
14739
14880
  KIRO_IGNORE
14740
- ]
14881
+ ],
14882
+ conversionDefaults: { commandsToSkills: true }
14741
14883
  };
14742
14884
  }
14743
14885
  });
@@ -15036,7 +15178,7 @@ var init_lint18 = __esm({
15036
15178
  });
15037
15179
 
15038
15180
  // src/targets/opencode/index.ts
15039
- var target21, project21, globalLayout11, capabilities10, descriptor21;
15181
+ var target21, project21, globalLayout20, capabilities10, descriptor21;
15040
15182
  var init_opencode2 = __esm({
15041
15183
  "src/targets/opencode/index.ts"() {
15042
15184
  init_generator24();
@@ -15076,7 +15218,7 @@ var init_opencode2 = __esm({
15076
15218
  }
15077
15219
  }
15078
15220
  };
15079
- globalLayout11 = {
15221
+ globalLayout20 = {
15080
15222
  rootInstructionPath: OPENCODE_GLOBAL_AGENTS_MD,
15081
15223
  skillDir: OPENCODE_GLOBAL_SKILLS_DIR,
15082
15224
  managedOutputs: {
@@ -15148,7 +15290,7 @@ var init_opencode2 = __esm({
15148
15290
  OPENCODE_GLOBAL_SKILLS_DIR,
15149
15291
  OPENCODE_GLOBAL_CONFIG_FILE
15150
15292
  ],
15151
- layout: globalLayout11
15293
+ layout: globalLayout20
15152
15294
  },
15153
15295
  importer: {
15154
15296
  rules: [
@@ -15341,7 +15483,7 @@ var init_lint19 = __esm({
15341
15483
  });
15342
15484
 
15343
15485
  // src/targets/pi-agent/index.ts
15344
- var target22, project22, globalLayout12, capabilities11, descriptor22;
15486
+ var target22, project22, globalLayout21, capabilities11, descriptor22;
15345
15487
  var init_pi_agent2 = __esm({
15346
15488
  "src/targets/pi-agent/index.ts"() {
15347
15489
  init_command_skill();
@@ -15381,7 +15523,7 @@ var init_pi_agent2 = __esm({
15381
15523
  }
15382
15524
  }
15383
15525
  };
15384
- globalLayout12 = {
15526
+ globalLayout21 = {
15385
15527
  rootInstructionPath: PI_AGENT_GLOBAL_ROOT_FILE,
15386
15528
  skillDir: PI_AGENT_GLOBAL_SKILLS_DIR,
15387
15529
  managedOutputs: {
@@ -15444,7 +15586,7 @@ var init_pi_agent2 = __esm({
15444
15586
  globalSupport: {
15445
15587
  capabilities: capabilities11,
15446
15588
  detectionPaths: [PI_AGENT_GLOBAL_ROOT_FILE],
15447
- layout: globalLayout12
15589
+ layout: globalLayout21
15448
15590
  },
15449
15591
  importer: {
15450
15592
  rules: {
@@ -15590,7 +15732,7 @@ var init_linter23 = __esm({
15590
15732
  });
15591
15733
 
15592
15734
  // src/targets/qwen-code/index.ts
15593
- var target23, project23, globalLayout13, capabilities12, globalCapabilities15, descriptor23;
15735
+ var target23, project23, globalLayout22, capabilities12, globalCapabilities15, descriptor23;
15594
15736
  var init_qwen_code2 = __esm({
15595
15737
  "src/targets/qwen-code/index.ts"() {
15596
15738
  init_generator26();
@@ -15629,7 +15771,7 @@ var init_qwen_code2 = __esm({
15629
15771
  }
15630
15772
  }
15631
15773
  };
15632
- globalLayout13 = {
15774
+ globalLayout22 = {
15633
15775
  rootInstructionPath: QWEN_GLOBAL_ROOT,
15634
15776
  skillDir: QWEN_GLOBAL_SKILLS_DIR,
15635
15777
  managedOutputs: {
@@ -15710,7 +15852,7 @@ var init_qwen_code2 = __esm({
15710
15852
  QWEN_GLOBAL_AGENTS_DIR,
15711
15853
  QWEN_GLOBAL_SKILLS_DIR
15712
15854
  ],
15713
- layout: globalLayout13
15855
+ layout: globalLayout22
15714
15856
  },
15715
15857
  importer: {
15716
15858
  rules: [
@@ -16199,7 +16341,7 @@ function computeStatus5(existing, content) {
16199
16341
  if (existing !== content) return "updated";
16200
16342
  return "unchanged";
16201
16343
  }
16202
- var target25, project25, generateRooGlobalExtras, global10, globalCapabilities16, descriptor25;
16344
+ var target25, project25, generateRooGlobalExtras, globalLayout23, globalCapabilities16, descriptor25;
16203
16345
  var init_roo_code2 = __esm({
16204
16346
  "src/targets/roo-code/index.ts"() {
16205
16347
  init_fs();
@@ -16262,7 +16404,7 @@ var init_roo_code2 = __esm({
16262
16404
  }
16263
16405
  ];
16264
16406
  };
16265
- global10 = {
16407
+ globalLayout23 = {
16266
16408
  rootInstructionPath: ROO_CODE_GLOBAL_AGENTS_MD,
16267
16409
  skillDir: ROO_CODE_GLOBAL_SKILLS_DIR,
16268
16410
  managedOutputs: {
@@ -16363,7 +16505,7 @@ var init_roo_code2 = __esm({
16363
16505
  ROO_CODE_GLOBAL_AGENTS_MD,
16364
16506
  ROO_CODE_GLOBAL_MODES_FILE
16365
16507
  ],
16366
- layout: global10,
16508
+ layout: globalLayout23,
16367
16509
  scopeExtras: generateRooGlobalExtras
16368
16510
  },
16369
16511
  importer: {
@@ -16555,7 +16697,7 @@ var init_lint21 = __esm({
16555
16697
  });
16556
16698
 
16557
16699
  // src/targets/rovodev/index.ts
16558
- var target26, project26, globalLayout14, capabilities14, globalCapabilities17, descriptor26;
16700
+ var target26, project26, globalLayout24, capabilities14, globalCapabilities17, descriptor26;
16559
16701
  var init_rovodev2 = __esm({
16560
16702
  "src/targets/rovodev/index.ts"() {
16561
16703
  init_command_skill();
@@ -16596,7 +16738,7 @@ var init_rovodev2 = __esm({
16596
16738
  }
16597
16739
  }
16598
16740
  };
16599
- globalLayout14 = {
16741
+ globalLayout24 = {
16600
16742
  rootInstructionPath: ROVODEV_GLOBAL_ROOT_FILE,
16601
16743
  skillDir: ROVODEV_GLOBAL_SKILLS_DIR,
16602
16744
  managedOutputs: {
@@ -16670,7 +16812,7 @@ var init_rovodev2 = __esm({
16670
16812
  globalSupport: {
16671
16813
  capabilities: globalCapabilities17,
16672
16814
  detectionPaths: [ROVODEV_GLOBAL_DIR, ROVODEV_GLOBAL_ROOT_FILE, ROVODEV_GLOBAL_SKILLS_DIR],
16673
- layout: globalLayout14
16815
+ layout: globalLayout24
16674
16816
  },
16675
16817
  importer: {
16676
16818
  rules: {
@@ -16839,7 +16981,7 @@ var init_linter27 = __esm({
16839
16981
  });
16840
16982
 
16841
16983
  // src/targets/trae/index.ts
16842
- var target27, project27, global11, globalCapabilities18, descriptor27;
16984
+ var target27, project27, globalLayout25, globalCapabilities18, descriptor27;
16843
16985
  var init_trae2 = __esm({
16844
16986
  "src/targets/trae/index.ts"() {
16845
16987
  init_generator30();
@@ -16876,7 +17018,7 @@ var init_trae2 = __esm({
16876
17018
  }
16877
17019
  }
16878
17020
  };
16879
- global11 = {
17021
+ globalLayout25 = {
16880
17022
  rootInstructionPath: TRAE_GLOBAL_ROOT_RULE,
16881
17023
  skillDir: TRAE_GLOBAL_SKILLS_DIR,
16882
17024
  managedOutputs: {
@@ -16959,7 +17101,7 @@ var init_trae2 = __esm({
16959
17101
  TRAE_GLOBAL_SKILLS_DIR,
16960
17102
  TRAE_GLOBAL_MCP_FILE
16961
17103
  ],
16962
- layout: global11
17104
+ layout: globalLayout25
16963
17105
  },
16964
17106
  importer: {
16965
17107
  mcp: {
@@ -17106,7 +17248,7 @@ var init_lint22 = __esm({
17106
17248
  });
17107
17249
 
17108
17250
  // src/targets/warp/index.ts
17109
- var target28, project28, globalLayout15, capabilities15, globalCapabilities19, descriptor28;
17251
+ var target28, project28, globalLayout26, capabilities15, globalCapabilities19, descriptor28;
17110
17252
  var init_warp2 = __esm({
17111
17253
  "src/targets/warp/index.ts"() {
17112
17254
  init_command_skill();
@@ -17147,7 +17289,7 @@ var init_warp2 = __esm({
17147
17289
  }
17148
17290
  }
17149
17291
  };
17150
- globalLayout15 = {
17292
+ globalLayout26 = {
17151
17293
  rootInstructionPath: void 0,
17152
17294
  skillDir: WARP_GLOBAL_SKILLS_DIR,
17153
17295
  managedOutputs: {
@@ -17165,7 +17307,7 @@ var init_warp2 = __esm({
17165
17307
  },
17166
17308
  paths: {
17167
17309
  rulePath() {
17168
- return WARP_GLOBAL_SKILLS_DIR;
17310
+ return null;
17169
17311
  },
17170
17312
  commandPath(name) {
17171
17313
  return `${WARP_GLOBAL_SKILLS_DIR}/${commandSkillDirName(name)}/SKILL.md`;
@@ -17219,7 +17361,7 @@ var init_warp2 = __esm({
17219
17361
  globalSupport: {
17220
17362
  capabilities: globalCapabilities19,
17221
17363
  detectionPaths: [WARP_GLOBAL_SKILLS_DIR],
17222
- layout: globalLayout15
17364
+ layout: globalLayout26
17223
17365
  },
17224
17366
  importer: {
17225
17367
  rules: {
@@ -17243,7 +17385,8 @@ var init_warp2 = __esm({
17243
17385
  }
17244
17386
  },
17245
17387
  buildImportPaths: buildWarpImportPaths,
17246
- detectionPaths: [WARP_ROOT_FILE, WARP_LEGACY_ROOT_FILE, WARP_MCP_FILE]
17388
+ detectionPaths: [WARP_ROOT_FILE, WARP_LEGACY_ROOT_FILE, WARP_MCP_FILE],
17389
+ conversionDefaults: { commandsToSkills: true, agentsToSkills: true }
17247
17390
  };
17248
17391
  }
17249
17392
  });
@@ -17868,7 +18011,7 @@ function directoryScopedRuleDir2(globs) {
17868
18011
  if (dirs.length !== globs.length) return null;
17869
18012
  return dirs.every((dir) => dir === dirs[0]) ? dirs[0] : null;
17870
18013
  }
17871
- var target29, project29, global12, globalCapabilities20, descriptor29;
18014
+ var target29, project29, globalLayout27, globalCapabilities20, descriptor29;
17872
18015
  var init_windsurf2 = __esm({
17873
18016
  "src/targets/windsurf/index.ts"() {
17874
18017
  init_generator33();
@@ -17922,7 +18065,7 @@ var init_windsurf2 = __esm({
17922
18065
  }
17923
18066
  }
17924
18067
  };
17925
- global12 = {
18068
+ globalLayout27 = {
17926
18069
  rootInstructionPath: WINDSURF_GLOBAL_RULES,
17927
18070
  skillDir: WINDSURF_GLOBAL_SKILLS_DIR,
17928
18071
  managedOutputs: {
@@ -18026,10 +18169,11 @@ var init_windsurf2 = __esm({
18026
18169
  WINDSURF_GLOBAL_MCP_FILE,
18027
18170
  WINDSURF_GLOBAL_IGNORE
18028
18171
  ],
18029
- layout: global12
18172
+ layout: globalLayout27
18030
18173
  },
18031
18174
  buildImportPaths: buildWindsurfImportPaths,
18032
- detectionPaths: [".windsurfrules", ".windsurf"]
18175
+ detectionPaths: [".windsurfrules", ".windsurf"],
18176
+ conversionDefaults: { agentsToSkills: true }
18033
18177
  };
18034
18178
  }
18035
18179
  });
@@ -18190,7 +18334,7 @@ function mergeZedSettings(existing, newContent) {
18190
18334
  }
18191
18335
  return JSON.stringify(base, null, 2);
18192
18336
  }
18193
- var target30, project30, globalLayout16, capabilities16, globalCapabilities21, descriptor30;
18337
+ var target30, project30, globalLayout28, capabilities16, globalCapabilities21, descriptor30;
18194
18338
  var init_zed2 = __esm({
18195
18339
  "src/targets/zed/index.ts"() {
18196
18340
  init_generator34();
@@ -18223,7 +18367,7 @@ var init_zed2 = __esm({
18223
18367
  }
18224
18368
  }
18225
18369
  };
18226
- globalLayout16 = {
18370
+ globalLayout28 = {
18227
18371
  rootInstructionPath: void 0,
18228
18372
  managedOutputs: {
18229
18373
  dirs: [],
@@ -18288,7 +18432,7 @@ var init_zed2 = __esm({
18288
18432
  globalSupport: {
18289
18433
  capabilities: globalCapabilities21,
18290
18434
  detectionPaths: [ZED_GLOBAL_SETTINGS_FILE],
18291
- layout: globalLayout16
18435
+ layout: globalLayout28
18292
18436
  },
18293
18437
  importer: {
18294
18438
  rules: {