agentsmesh 0.3.1 → 0.6.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/config/core/conversions.ts","../src/targets/catalog/capabilities.ts","../src/targets/catalog/registry.ts","../src/targets/catalog/shared-artifact-owner.ts","../src/targets/catalog/target-ids.ts","../src/utils/text/markdown.ts","../src/targets/claude-code/constants.ts","../src/core/hook-command.ts","../src/targets/claude-code/hooks-format.ts","../src/targets/claude-code/generator.ts","../src/targets/catalog/skill-mirror.ts","../src/targets/claude-code/global-instructions.ts","../src/core/errors.ts","../src/utils/filesystem/fs.ts","../src/targets/claude-code/global-extras.ts","../src/core/reference/import-map.ts","../src/core/path-helpers.ts","../src/core/reference/link-rebaser-helpers.ts","../src/core/reference/link-rebaser-formatting.ts","../src/core/reference/link-rebaser-output.ts","../src/core/reference/link-rebaser-suffix-strip.ts","../src/core/reference/link-rebaser-resolution.ts","../src/core/reference/link-token-guards.ts","../src/core/reference/link-token-context.ts","../src/core/reference/link-rebaser.ts","../src/core/reference/import-rewriter.ts","../src/targets/projection/managed-blocks.ts","../src/targets/projection/root-instruction-paragraph.ts","../src/targets/import/import-metadata-core.ts","../src/targets/import/import-metadata-serialize.ts","../src/targets/import/import-orchestrator.ts","../src/targets/import/shared-import-helpers.ts","../src/targets/claude-code/importer-mappers.ts","../src/targets/claude-code/settings-helpers.ts","../src/targets/claude-code/importer-skills.ts","../src/targets/claude-code/importer.ts","../src/utils/text/glob.ts","../src/core/lint/validate-rules.ts","../src/targets/claude-code/linter.ts","../src/targets/codex-cli/command-skill.ts","../src/targets/projection/projected-agent-skill.ts","../src/core/reference/import-map-shared.ts","../src/targets/antigravity/constants.ts","../src/core/reference/import-maps/constants.ts","../src/core/reference/import-maps/antigravity.ts","../src/core/reference/import-maps/claude-code.ts","../src/targets/cline/constants.ts","../src/core/reference/import-maps/cline.ts","../src/core/reference/import-maps/codex-cli.ts","../src/core/reference/import-maps/copilot.ts","../src/targets/continue/constants.ts","../src/core/reference/import-maps/continue.ts","../src/targets/cursor/constants.ts","../src/core/reference/import-maps/cursor.ts","../src/core/reference/import-maps/gemini-cli.ts","../src/targets/junie/constants.ts","../src/core/reference/import-maps/junie.ts","../src/targets/kiro/constants.ts","../src/core/reference/import-maps/kiro.ts","../src/targets/roo-code/constants.ts","../src/core/reference/import-maps/roo-code.ts","../src/core/reference/import-maps/windsurf.ts","../src/targets/claude-code/index.ts","../src/targets/cursor/generator/rules.ts","../src/targets/cursor/generator/commands.ts","../src/targets/cursor/generator/mcp.ts","../src/targets/cursor/generator/skills.ts","../src/targets/cursor/generator/agents.ts","../src/targets/cursor/generator/permissions.ts","../src/targets/cursor/generator/hooks.ts","../src/targets/cursor/generator/ignore.ts","../src/targets/cursor/importer-mappers.ts","../src/targets/import/embedded-rules.ts","../src/targets/cursor/import-root-helpers.ts","../src/targets/cursor/importer-rules.ts","../src/targets/cursor/settings-helpers.ts","../src/targets/import/shared/reserved.ts","../src/targets/import/shared/skill-import-pipeline.ts","../src/targets/cursor/skills-adapter.ts","../src/targets/cursor/import-global-exports-helpers.ts","../src/targets/cursor/import-global-exports.ts","../src/targets/cursor/importer.ts","../src/targets/cursor/linter.ts","../src/core/lint/shared/helpers.ts","../src/targets/cursor/lint.ts","../src/targets/cursor/index.ts","../src/targets/copilot/constants.ts","../src/targets/copilot/command-prompt.ts","../src/targets/copilot/hook-entry.ts","../src/targets/copilot/generator.ts","../src/targets/copilot/hook-parser.ts","../src/targets/copilot/importer-commands.ts","../src/targets/copilot/importer-agents.ts","../src/targets/copilot/skills-adapter.ts","../src/targets/copilot/importer.ts","../src/targets/copilot/linter.ts","../src/targets/copilot/lint.ts","../src/targets/copilot/hook-assets.ts","../src/targets/copilot/scope-extras.ts","../src/targets/copilot/index.ts","../src/targets/import/embedded-skill.ts","../src/targets/continue/command-rule.ts","../src/targets/continue/generator.ts","../src/targets/continue/importer.ts","../src/targets/continue/linter.ts","../src/targets/continue/lint.ts","../src/targets/continue/global-config.ts","../src/targets/continue/scope-extras.ts","../src/targets/continue/index.ts","../src/core/mcp-servers.ts","../src/targets/junie/generator.ts","../src/targets/junie/importer-commands-agents-mcp-ignore.ts","../src/targets/junie/importer.ts","../src/targets/junie/linter.ts","../src/targets/junie/lint.ts","../src/targets/junie/index.ts","../src/targets/kiro/hook-format.ts","../src/targets/kiro/generator.ts","../src/targets/kiro/importer-agents-mcp-hooks-ignore.ts","../src/targets/kiro/importer.ts","../src/targets/kiro/linter.ts","../src/targets/kiro/lint.ts","../src/targets/kiro/index.ts","../src/targets/gemini-cli/constants.ts","../src/targets/gemini-cli/generator/rules.ts","../src/targets/gemini-cli/command-namespace.ts","../src/targets/gemini-cli/generator/commands.ts","../src/targets/gemini-cli/generator/agents.ts","../src/targets/gemini-cli/generator/skills.ts","../src/targets/gemini-cli/generator/settings.ts","../src/targets/gemini-cli/generator/ignore.ts","../src/targets/gemini-cli/policies-generator.ts","../src/targets/gemini-cli/format-helpers-shared.ts","../src/targets/gemini-cli/format-helpers-settings.ts","../src/targets/gemini-cli/format-helpers.ts","../src/targets/gemini-cli/importer-mappers.ts","../src/targets/gemini-cli/policies-importer.ts","../src/targets/gemini-cli/importer-strip.ts","../src/targets/gemini-cli/importer-skills-agents.ts","../src/targets/gemini-cli/importer.ts","../src/targets/gemini-cli/linter.ts","../src/targets/gemini-cli/lint.ts","../src/targets/gemini-cli/scoped-settings-emit.ts","../src/targets/gemini-cli/index.ts","../src/targets/cline/generator.ts","../src/targets/cline/importer-mappers.ts","../src/targets/cline/importer-rules.ts","../src/targets/cline/mcp-mapper.ts","../src/targets/cline/skills-adapter.ts","../src/targets/cline/hook-importer.ts","../src/targets/cline/importer.ts","../src/targets/cline/linter.ts","../src/targets/cline/lint.ts","../src/targets/cline/index.ts","../src/targets/codex-cli/constants.ts","../src/targets/codex-cli/instruction-mirror.ts","../src/targets/codex-cli/generator/rules.ts","../src/targets/codex-cli/generator/skills.ts","../src/targets/codex-cli/generator/agents.ts","../src/targets/codex-cli/generator/mcp.ts","../src/targets/codex-cli/mcp-helpers.ts","../src/targets/import/scoped-agents-import.ts","../src/targets/codex-cli/skills-adapter.ts","../src/targets/codex-cli/importer-agents.ts","../src/targets/codex-cli/codex-rules-embed.ts","../src/targets/codex-cli/import-codex-non-root-rules.ts","../src/targets/codex-cli/importer-rules.ts","../src/targets/codex-cli/importer.ts","../src/targets/codex-cli/linter.ts","../src/targets/codex-cli/lint.ts","../src/targets/codex-cli/codex-rule-paths.ts","../src/targets/codex-cli/index.ts","../src/targets/windsurf/constants.ts","../src/targets/windsurf/generator/rules.ts","../src/targets/windsurf/generator/ignore.ts","../src/targets/windsurf/generator/workflows.ts","../src/targets/windsurf/generator/agents.ts","../src/targets/windsurf/generator/mcp.ts","../src/targets/windsurf/generator/hooks.ts","../src/targets/windsurf/generator/skills.ts","../src/targets/windsurf/importer-workflows.ts","../src/targets/windsurf/skills-adapter.ts","../src/targets/windsurf/importer-hooks-mcp.ts","../src/targets/windsurf/importer.ts","../src/targets/windsurf/linter.ts","../src/targets/windsurf/lint.ts","../src/targets/windsurf/index.ts","../src/targets/antigravity/generator.ts","../src/targets/antigravity/importer.ts","../src/targets/antigravity/linter.ts","../src/targets/antigravity/index.ts","../src/targets/roo-code/generator.ts","../src/targets/roo-code/importer-commands-mcp-ignore.ts","../src/targets/roo-code/importer.ts","../src/targets/roo-code/linter.ts","../src/targets/roo-code/index.ts","../src/targets/catalog/builtin-targets.ts","../src/public/targets.ts"],"names":["target","descriptor","yamlParse","yamlStringify","join","win32","dirname","rel","api","normalizePath","existsSync","realpathSync","toStringArray","basename","relative","AB_RULES","AB_COMMANDS","AB_AGENTS","generateRules","generateCommands","generateMcp","generateSkills","generateAgents","generatePermissions","generateHooks","generateIgnore","importSettings","importIgnore","CURSOR_TARGET","stat","importCommands","importAgents","lintRules","project","global","globalCapabilities","hasHookCommand","importSkills","lintCommands","computeStatus","AB_SKILLS","readdir","serializeImportedCommand","parseYaml","importRules","importMcp","readMcpServers","lintMcp","lintHooks","mapHookEvent","parseToml","stringifyYaml","ruleSlug","globalLayout","rm","importNonRootRules","importWorkflows","importRootRule"],"mappings":"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","file":"targets.js","sourcesContent":["import type { ValidatedConfig } from './schema.js';\nimport type { TargetLayoutScope } from '../../targets/catalog/target-descriptor.js';\n\nconst DEFAULT_COMMANDS_TO_SKILLS: Record<string, boolean> = {\n 'codex-cli': true,\n};\n\nconst DEFAULT_AGENTS_TO_SKILLS: Record<string, boolean> = {\n 'gemini-cli': false, // native .gemini/agents/*.md per agent-structures\n cline: true,\n 'codex-cli': false, // native .codex/agents/*.toml per agent-structures\n windsurf: true,\n};\n\nexport function usesCommandSkillProjection(target: string): boolean {\n return Object.prototype.hasOwnProperty.call(DEFAULT_COMMANDS_TO_SKILLS, target);\n}\n\nexport function usesAgentSkillProjection(target: string): boolean {\n return Object.prototype.hasOwnProperty.call(DEFAULT_AGENTS_TO_SKILLS, target);\n}\n\ntype ConversionValue = boolean | { project?: boolean; global?: boolean };\n\nfunction resolveConversionValue(\n value: ConversionValue | undefined,\n scope: TargetLayoutScope,\n): boolean | undefined {\n if (value === undefined) return undefined;\n if (typeof value === 'boolean') return value;\n return value[scope];\n}\n\n/**\n * @param defaultEnabled - For plugin targets not in the builtin map, use this\n * as the fallback when the user hasn't set an explicit config override.\n */\nexport function shouldConvertCommandsToSkills(\n config: ValidatedConfig,\n target: string,\n defaultEnabled?: boolean,\n scope: TargetLayoutScope = 'project',\n): boolean {\n const raw = (\n config.conversions?.commands_to_skills as Record<string, ConversionValue> | undefined\n )?.[target];\n const configVal = resolveConversionValue(raw, scope);\n if (configVal !== undefined) return configVal;\n if (usesCommandSkillProjection(target)) return DEFAULT_COMMANDS_TO_SKILLS[target]!;\n return defaultEnabled ?? false;\n}\n\n/**\n * @param defaultEnabled - For plugin targets not in the builtin map, use this\n * as the fallback when the user hasn't set an explicit config override.\n */\nexport function shouldConvertAgentsToSkills(\n config: ValidatedConfig,\n target: string,\n defaultEnabled?: boolean,\n scope: TargetLayoutScope = 'project',\n): boolean {\n const raw = (\n config.conversions?.agents_to_skills as Record<string, ConversionValue> | undefined\n )?.[target];\n const configVal = resolveConversionValue(raw, scope);\n if (configVal !== undefined) return configVal;\n if (usesAgentSkillProjection(target)) return DEFAULT_AGENTS_TO_SKILLS[target]!;\n return defaultEnabled ?? false;\n}\n","import type { SupportLevel } from '../../core/result-types.js';\n\n/** Serialization / projection variant for a canonical feature (see architecture review §3.3). */\nexport type FeatureFlavor =\n | 'standard'\n | 'workflows'\n | 'settings-embedded'\n | 'projected-skills'\n | 'gh-actions-lite'\n | string;\n\n/** Normalized capability entry: support level plus optional serialization flavor. */\nexport interface TargetCapabilityValue {\n readonly level: SupportLevel;\n readonly flavor?: FeatureFlavor;\n}\n\nexport type CapabilityFeatureKey =\n | 'rules'\n | 'additionalRules'\n | 'commands'\n | 'agents'\n | 'skills'\n | 'mcp'\n | 'hooks'\n | 'ignore'\n | 'permissions';\n\n/** Descriptor may still use legacy string levels until fully migrated — normalize on read. */\nexport type TargetCapabilityInput = SupportLevel | TargetCapabilityValue;\n\nexport function cap(level: SupportLevel, flavor?: FeatureFlavor): TargetCapabilityValue {\n return flavor !== undefined ? { level, flavor } : { level };\n}\n\nexport function normalizeCapabilityValue(input: TargetCapabilityInput): TargetCapabilityValue {\n if (typeof input === 'string') {\n return { level: input };\n }\n return input;\n}\n\nexport function normalizeTargetCapabilities(\n caps: Record<CapabilityFeatureKey, TargetCapabilityInput>,\n): Record<CapabilityFeatureKey, TargetCapabilityValue> {\n return {\n rules: normalizeCapabilityValue(caps.rules),\n additionalRules: normalizeCapabilityValue(caps.additionalRules),\n commands: normalizeCapabilityValue(caps.commands),\n agents: normalizeCapabilityValue(caps.agents),\n skills: normalizeCapabilityValue(caps.skills),\n mcp: normalizeCapabilityValue(caps.mcp),\n hooks: normalizeCapabilityValue(caps.hooks),\n ignore: normalizeCapabilityValue(caps.ignore),\n permissions: normalizeCapabilityValue(caps.permissions),\n };\n}\n","import type { TargetGenerators } from './target.interface.js';\nimport type { TargetDescriptor } from './target-descriptor.js';\nimport { BUILTIN_TARGETS } from './builtin-targets.js';\n\nconst descriptorRegistry = new Map<string, TargetDescriptor>();\nconst legacyRegistry = new Map<string, TargetGenerators>();\n\nlet _builtinDescriptors: Map<string, TargetDescriptor> | undefined;\nfunction builtinDescriptors(): Map<string, TargetDescriptor> {\n if (!_builtinDescriptors) {\n _builtinDescriptors = new Map(BUILTIN_TARGETS.map((d) => [d.id, d]));\n }\n return _builtinDescriptors;\n}\n\n/** Register a full target descriptor (for plugins). */\nexport function registerTargetDescriptor(descriptor: TargetDescriptor): void {\n descriptorRegistry.set(descriptor.id, descriptor);\n}\n\n/** Register generators only (backward compat). */\nexport function registerTarget(target: TargetGenerators): void {\n legacyRegistry.set(target.name, target);\n}\n\n/** Look up a full descriptor by target ID. */\nexport function getDescriptor(name: string): TargetDescriptor | undefined {\n return descriptorRegistry.get(name) ?? builtinDescriptors().get(name);\n}\n\n/** Look up generators by target name. Falls through descriptors → legacy. */\nexport function getTarget(name: string): TargetGenerators {\n const descriptor = getDescriptor(name);\n if (descriptor) return descriptor.generators;\n const legacy = legacyRegistry.get(name);\n if (legacy) return legacy;\n throw new Error(`Unknown target: ${name}`);\n}\n\nexport function getAllDescriptors(): TargetDescriptor[] {\n return [...descriptorRegistry.values()];\n}\n\nexport function getAllTargets(): TargetGenerators[] {\n return [...legacyRegistry.values()];\n}\n\nexport function resetRegistry(): void {\n descriptorRegistry.clear();\n legacyRegistry.clear();\n}\n","/**\n * Resolve which builtin target owns a shared artifact prefix (reference rewriter, global skills).\n */\n\nimport type { TargetDescriptor } from './target-descriptor.js';\nimport { BUILTIN_TARGETS } from './builtin-targets.js';\n\nexport function ownerTargetIdForSharedPath(path: string): string | null {\n for (const descriptor of BUILTIN_TARGETS) {\n if (!descriptor.sharedArtifacts) continue;\n for (const [prefix, role] of Object.entries(descriptor.sharedArtifacts)) {\n if (role === 'owner' && path.startsWith(prefix)) {\n return descriptor.id;\n }\n }\n }\n return null;\n}\n\ninterface OwnerEntry {\n readonly targetId: string;\n readonly prefix: string;\n}\n\n/**\n * Validate that no two descriptors claim ownership of the same or overlapping\n * shared-artifact prefixes. Two prefixes overlap when one is a prefix of the\n * other (e.g. `.agents/` and `.agents/skills/` would collide). Identical\n * prefixes always collide.\n *\n * Returns the list of conflicts; empty when ownership is unambiguous.\n */\nexport function findSharedArtifactOwnershipConflicts(\n descriptors: readonly TargetDescriptor[],\n): readonly { readonly a: OwnerEntry; readonly b: OwnerEntry }[] {\n const owners: OwnerEntry[] = [];\n for (const descriptor of descriptors) {\n if (!descriptor.sharedArtifacts) continue;\n for (const [prefix, role] of Object.entries(descriptor.sharedArtifacts)) {\n if (role !== 'owner') continue;\n owners.push({ targetId: descriptor.id, prefix });\n }\n }\n\n const conflicts: { a: OwnerEntry; b: OwnerEntry }[] = [];\n for (let i = 0; i < owners.length; i++) {\n for (let j = i + 1; j < owners.length; j++) {\n const a = owners[i];\n const b = owners[j];\n if (a === undefined || b === undefined) continue;\n if (a.prefix === b.prefix || a.prefix.startsWith(b.prefix) || b.prefix.startsWith(a.prefix)) {\n conflicts.push({ a, b });\n }\n }\n }\n return conflicts;\n}\n\n/**\n * Throws if descriptors disagree about who owns a shared-artifact prefix.\n * Called once at module load against `BUILTIN_TARGETS` to fail fast on a\n * misconfiguration that would otherwise silently depend on iteration order\n * inside the reference rewriter.\n */\nexport function assertSharedArtifactOwnersUnique(descriptors: readonly TargetDescriptor[]): void {\n const conflicts = findSharedArtifactOwnershipConflicts(descriptors);\n if (conflicts.length === 0) return;\n\n const lines = conflicts.map(\n ({ a, b }) => ` - \"${a.targetId}\" owns \"${a.prefix}\" and \"${b.targetId}\" owns \"${b.prefix}\"`,\n );\n throw new Error(\n `Shared-artifact ownership conflict: two targets claim the same or overlapping prefix.\\n` +\n lines.join('\\n') +\n `\\nResolve by changing one target's role to 'consumer' or by namespacing its prefix.`,\n );\n}\n","/**\n * Standalone target ID constants.\n *\n * Extracted from builtin-targets.ts to break a circular type dependency:\n * schema.ts → builtin-targets.ts → descriptors → ValidatedConfig → schema.ts\n *\n * When adding a new target, add its ID here AND its descriptor to\n * BUILTIN_TARGETS in builtin-targets.ts. A compile-time assertion\n * in builtin-targets.ts ensures they stay in sync.\n */\n\nexport const TARGET_IDS = [\n 'claude-code',\n 'cursor',\n 'copilot',\n 'continue',\n 'junie',\n 'kiro',\n 'gemini-cli',\n 'cline',\n 'codex-cli',\n 'windsurf',\n 'antigravity',\n 'roo-code',\n] as const;\n\nexport type BuiltinTargetId = (typeof TARGET_IDS)[number];\n\n/** Codex CLI id — shared skill dirs and AGENTS.md collision policy reference this explicitly. */\nexport const CODEX_CLI_TARGET_ID = 'codex-cli' satisfies BuiltinTargetId;\n\nexport function isBuiltinTargetId(value: string): value is BuiltinTargetId {\n return (TARGET_IDS as readonly string[]).includes(value);\n}\n","// Frontmatter parsing\n\nimport { parse as yamlParse, stringify as yamlStringify } from 'yaml';\n\n/**\n * Parse YAML frontmatter and body from markdown/MDC content.\n * @param content - Raw content with optional --- delimited frontmatter\n * @returns Parsed frontmatter object and trimmed body\n */\nexport function parseFrontmatter(content: string): {\n frontmatter: Record<string, unknown>;\n body: string;\n} {\n const open = content.indexOf('---');\n if (open !== 0) {\n return { frontmatter: {}, body: content.trim() };\n }\n const close = content.indexOf('---', 3);\n if (close === -1) {\n return { frontmatter: {}, body: content.trim() };\n }\n const yamlStr = content.slice(3, close).trim();\n const body = content.slice(close + 3).trim();\n const frontmatter = yamlStr === '' ? {} : ((yamlParse(yamlStr) as Record<string, unknown>) ?? {});\n return { frontmatter, body };\n}\n\n/**\n * Serialize frontmatter and body back to string.\n * @param frontmatter - Key-value pairs for YAML\n * @param body - Markdown body content\n * @returns Full content with --- delimiters when frontmatter has keys\n */\nexport function serializeFrontmatter(frontmatter: Record<string, unknown>, body: string): string {\n const keys = Object.keys(frontmatter);\n if (keys.length === 0) return body;\n const yamlStr = yamlStringify(frontmatter, { lineWidth: 0 }).trimEnd();\n return `---\\n${yamlStr}\\n---\\n\\n${body}`;\n}\n","// Claude Code target constants\n\nexport const CLAUDE_CODE_TARGET = 'claude-code';\n\nexport const CLAUDE_ROOT = '.claude/CLAUDE.md';\nexport const CLAUDE_LEGACY_ROOT = 'CLAUDE.md';\nexport const CLAUDE_RULES_DIR = '.claude/rules';\nexport const CLAUDE_COMMANDS_DIR = '.claude/commands';\nexport const CLAUDE_AGENTS_DIR = '.claude/agents';\nexport const CLAUDE_SKILLS_DIR = '.claude/skills';\nexport const CLAUDE_SETTINGS = '.claude/settings.json';\nexport const CLAUDE_HOOKS_JSON = '.claude/hooks.json';\nexport const CLAUDE_OUTPUT_STYLES_DIR = '.claude/output-styles';\nexport const CLAUDE_IGNORE = '.claudeignore';\nexport const CLAUDE_MCP_JSON = '.mcp.json';\nexport const CLAUDE_GLOBAL_MCP_JSON = '.claude.json';\n\nexport const CLAUDE_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const CLAUDE_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const CLAUDE_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const CLAUDE_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\nexport const CLAUDE_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const CLAUDE_CANONICAL_PERMISSIONS = '.agentsmesh/permissions.yaml';\nexport const CLAUDE_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const CLAUDE_CANONICAL_IGNORE = '.agentsmesh/ignore';\n","type HookLike = {\n command?: unknown;\n prompt?: unknown;\n type?: unknown;\n};\n\nfunction trimString(value: unknown): string {\n return typeof value === 'string' ? value.trim() : '';\n}\n\nexport function getHookCommand(entry: HookLike): string {\n return trimString(entry.command);\n}\n\nexport function getHookPrompt(entry: HookLike): string {\n return trimString(entry.prompt);\n}\n\nexport function getHookText(entry: HookLike): string {\n const command = getHookCommand(entry);\n const prompt = getHookPrompt(entry);\n return entry.type === 'prompt' ? prompt || command : command || prompt;\n}\n\nexport function hasHookCommand(entry: HookLike): boolean {\n return getHookCommand(entry).length > 0;\n}\n\nexport function hasHookText(entry: HookLike): boolean {\n return getHookText(entry).length > 0;\n}\n","/**\n * Shared Claude Code hooks serialization (settings.json vs hooks.json).\n */\n\nimport type { CanonicalFiles } from '../../core/types.js';\nimport { getHookCommand, getHookPrompt, hasHookText } from '../../core/hook-command.js';\n\n/**\n * Build Claude Code native hooks object from canonical hooks.\n * Shape: { event: [{ matcher, hooks: [{ type, command|prompt, timeout? }] }] }\n */\nexport function buildClaudeHooksObjectFromCanonical(\n canonical: CanonicalFiles,\n): Record<string, unknown> {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return {};\n const result: Record<string, unknown> = {};\n for (const [event, entries] of Object.entries(canonical.hooks)) {\n if (!Array.isArray(entries)) continue;\n const translated: Array<{ matcher: string; hooks: unknown[] }> = [];\n for (const e of entries) {\n if (!hasHookText(e)) continue;\n const command = getHookCommand(e);\n const prompt = getHookPrompt(e);\n const value = e.type === 'prompt' ? prompt || command : command || prompt;\n const hookItem: Record<string, unknown> = {\n type: e.type === 'prompt' ? 'prompt' : 'command',\n [e.type === 'prompt' ? 'prompt' : 'command']: value,\n };\n if (e.timeout !== undefined) hookItem.timeout = e.timeout;\n translated.push({ matcher: e.matcher, hooks: [hookItem] });\n }\n if (translated.length > 0) result[event] = translated;\n }\n return result;\n}\n","/**\n * Generate Claude Code config files from canonical sources.\n */\n\nimport type { CanonicalFiles } from '../../core/types.js';\nimport type { GenerateFeatureContext } from '../catalog/target.interface.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n CLAUDE_ROOT,\n CLAUDE_RULES_DIR,\n CLAUDE_COMMANDS_DIR,\n CLAUDE_AGENTS_DIR,\n CLAUDE_MCP_JSON,\n CLAUDE_SKILLS_DIR,\n CLAUDE_SETTINGS,\n CLAUDE_IGNORE,\n CLAUDE_HOOKS_JSON,\n} from './constants.js';\nimport { buildClaudeHooksObjectFromCanonical } from './hooks-format.js';\n\nexport interface RulesOutput {\n path: string;\n content: string;\n}\n\n/**\n * Generate CLAUDE.md from root rule + .claude/rules/*.md from non-root rules.\n * @param canonical - Loaded canonical files\n * @returns .claude/CLAUDE.md output (from root rule) + .claude/rules/{slug}.md for contextual rules\n */\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n\n const root = canonical.rules.find((r) => r.root);\n if (root) {\n outputs.push({\n path: CLAUDE_ROOT,\n content: root.body.trim() ? root.body : '',\n });\n }\n\n const nonRoot = canonical.rules.filter(\n (r) => !r.root && (r.targets.length === 0 || r.targets.includes('claude-code')),\n );\n for (const rule of nonRoot) {\n const slug = rule.source.split('/').pop()!.replace(/\\.md$/, '');\n const frontmatter: Record<string, unknown> = {};\n if (rule.description) frontmatter.description = rule.description;\n if (rule.globs.length > 0) frontmatter.globs = rule.globs;\n const content = serializeFrontmatter(frontmatter, rule.body.trim() || '');\n outputs.push({ path: `${CLAUDE_RULES_DIR}/${slug}.md`, content });\n }\n\n return outputs;\n}\n\n/**\n * Generate .claude/commands/*.md from canonical commands.\n * @param canonical - Loaded canonical files\n * @returns Array of command file outputs, or [] if no commands\n */\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map((cmd) => {\n const frontmatter: Record<string, unknown> = {\n description: cmd.description,\n 'allowed-tools': cmd.allowedTools.length > 0 ? cmd.allowedTools : undefined,\n };\n if (frontmatter['allowed-tools'] === undefined) delete frontmatter['allowed-tools'];\n const content = serializeFrontmatter(frontmatter, cmd.body.trim() || '');\n return { path: `${CLAUDE_COMMANDS_DIR}/${cmd.name}.md`, content };\n });\n}\n\n/**\n * Generate .claude/agents/*.md from canonical agents.\n * @param canonical - Loaded canonical files\n * @returns Array of agent file outputs, or [] if no agents\n */\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n description: agent.description,\n tools: agent.tools.length > 0 ? agent.tools : undefined,\n disallowedTools: agent.disallowedTools.length > 0 ? agent.disallowedTools : undefined,\n model: agent.model || undefined,\n permissionMode: agent.permissionMode || undefined,\n maxTurns: agent.maxTurns > 0 ? agent.maxTurns : undefined,\n mcpServers: agent.mcpServers.length > 0 ? agent.mcpServers : undefined,\n hooks: Object.keys(agent.hooks).length > 0 ? agent.hooks : undefined,\n skills: agent.skills.length > 0 ? agent.skills : undefined,\n memory: agent.memory || undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const rawBody = agent.body.trim() || '';\n const body = /^##\\s*Role\\b/m.test(rawBody) ? rawBody : `## Role\\n\\n${rawBody}`;\n const content = serializeFrontmatter(frontmatter, body);\n return { path: `${CLAUDE_AGENTS_DIR}/${agent.name}.md`, content };\n });\n}\n\n/**\n * Generate .mcp.json at project root from canonical MCP config.\n * Claude Code uses .mcp.json as the alternative location for MCP server definitions.\n * @param canonical - Loaded canonical files\n * @returns Array with single .mcp.json output, or [] if no MCP config or empty mcpServers\n */\nexport function generateMcp(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n const content = JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2);\n return [{ path: CLAUDE_MCP_JSON, content }];\n}\n\n/**\n * Generate .claude/skills/{name}/SKILL.md and supporting files from canonical skills.\n * @param canonical - Loaded canonical files\n * @returns Array of skill file outputs (SKILL.md + supporting files per skill)\n */\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const rawSkillBody = skill.body.trim() || '';\n const skillBody =\n !rawSkillBody || /^##\\s*Purpose\\b/m.test(rawSkillBody)\n ? rawSkillBody\n : `## Purpose\\n\\n${rawSkillBody}`;\n const skillContent = serializeFrontmatter(frontmatter, skillBody);\n outputs.push({\n path: `${CLAUDE_SKILLS_DIR}/${skill.name}/SKILL.md`,\n content: skillContent,\n });\n for (const file of skill.supportingFiles) {\n const relPath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${CLAUDE_SKILLS_DIR}/${skill.name}/${relPath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n\n/**\n * Generate .claude/settings.json with permissions from canonical sources.\n * Merges with existing settings.json to preserve hooks, mcpServers, etc.\n * @param canonical - Loaded canonical files\n * @returns Array with single .claude/settings.json output, or [] if no permissions\n */\nexport function generatePermissions(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.permissions) return [];\n const { allow, deny } = canonical.permissions;\n const ask = canonical.permissions.ask ?? [];\n if (allow.length === 0 && deny.length === 0 && ask.length === 0) return [];\n const content = JSON.stringify({ permissions: { allow, deny, ask } }, null, 2);\n return [{ path: CLAUDE_SETTINGS, content }];\n}\n\n/**\n * Generate .claude/settings.json hooks from canonical sources.\n * Merges with existing settings.json to preserve permissions, mcpServers, etc.\n * @param canonical - Loaded canonical files\n * @returns Array with single .claude/settings.json output, or [] if no hooks\n */\nexport function generateHooks(\n canonical: CanonicalFiles,\n ctx?: GenerateFeatureContext,\n): RulesOutput[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const claudeHooks = buildClaudeHooksObjectFromCanonical(canonical);\n if (Object.keys(claudeHooks).length === 0) return [];\n if (ctx?.scope === 'global') {\n return [{ path: CLAUDE_HOOKS_JSON, content: JSON.stringify(claudeHooks, null, 2) }];\n }\n const content = JSON.stringify({ hooks: claudeHooks }, null, 2);\n return [{ path: CLAUDE_SETTINGS, content }];\n}\n\n/**\n * Generate .claudeignore from canonical ignore patterns.\n * Uses gitignore-style syntax (one pattern per line).\n * @param canonical - Loaded canonical files\n * @returns Array with single .claudeignore output, or [] if no patterns\n */\nexport function generateIgnore(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.ignore || canonical.ignore.length === 0) return [];\n const content = canonical.ignore.join('\\n');\n return [{ path: CLAUDE_IGNORE, content }];\n}\n","/**\n * Shared helper for the cross-target skill mirror pattern.\n *\n * Every target that stores skills in its own `skillsDir` mirrors them into\n * `.agents/skills/` so that the canonical reference chain and cross-tool skill\n * consumers always see a consistent location. The mirror is suppressed when\n * codex-cli is active because codex-cli owns `.agents/skills/` natively and\n * would create conflicts.\n */\n\n/**\n * Mirror a skill path from a target-specific dir to `.agents/skills/`.\n *\n * @param path - The generated output path to consider mirroring.\n * @param skillsDir - The target's skill directory prefix (e.g. `.cursor/skills`).\n * @param activeTargets - The list of active target IDs in the current run.\n * @returns The mirror path (`.agents/skills/{rest}`) or `null` if not applicable.\n */\nexport function mirrorSkillsToAgents(\n path: string,\n skillsDir: string,\n activeTargets: readonly string[],\n): string | null {\n if (path.startsWith(`${skillsDir}/`) && !activeTargets.includes('codex-cli')) {\n return `.agents/skills/${path.slice(skillsDir.length + 1)}`;\n }\n return null;\n}\n","/**\n * Claude Code global ~/.claude/CLAUDE.md framing (strategy doc §1).\n */\n\nimport type { CanonicalFiles } from '../../core/types.js';\n\nfunction ruleSectionTitle(rule: { description: string; source: string }): string {\n const d = rule.description.trim();\n if (d) return d;\n const base = rule.source.split('/').pop() ?? 'rule';\n return base.replace(/\\.md$/i, '') || 'Rule';\n}\n\n/**\n * Render primary global instructions: root body under \"# Global Instructions\" with a section heading.\n */\nexport function renderClaudeGlobalPrimaryInstructions(canonical: CanonicalFiles): string {\n const root = canonical.rules.find((r) => r.root);\n const body = (root?.body ?? '').trim();\n if (!body) return '';\n const title = root ? ruleSectionTitle(root) : 'Guidance';\n return `# Global Instructions\\n\\n## ${title}\\n\\n${body}\\n`;\n}\n","/**\n * Typed error taxonomy for agentsmesh programmatic consumers.\n *\n * All public-API errors inherit from AgentsMeshError and carry a stable `code`\n * property. Consumers can branch on `err instanceof AgentsMeshError && err.code === 'AM_...'`\n * without relying on error message strings.\n */\n\nexport type AgentsMeshErrorCode =\n | 'AM_CONFIG_NOT_FOUND'\n | 'AM_CONFIG_INVALID'\n | 'AM_TARGET_NOT_FOUND'\n | 'AM_TARGET_UNSUPPORTED'\n | 'AM_IMPORT_FAILED'\n | 'AM_GENERATION_FAILED'\n | 'AM_REMOTE_FETCH_FAILED'\n | 'AM_LOCK_ACQUISITION_FAILED'\n | 'AM_LOCK_CONFLICT'\n | 'AM_FILESYSTEM';\n\nexport class AgentsMeshError extends Error {\n readonly code: AgentsMeshErrorCode;\n\n constructor(code: AgentsMeshErrorCode, message: string, options?: { cause?: unknown }) {\n super(message, options);\n this.name = 'AgentsMeshError';\n this.code = code;\n }\n}\n\nexport class ConfigNotFoundError extends AgentsMeshError {\n readonly path: string;\n\n constructor(path: string, options?: { cause?: unknown; message?: string }) {\n super(\n 'AM_CONFIG_NOT_FOUND',\n options?.message ??\n `agentsmesh.yaml not found at ${path}. Run 'agentsmesh init' to create one.`,\n options,\n );\n this.name = 'ConfigNotFoundError';\n this.path = path;\n }\n}\n\nexport class ConfigValidationError extends AgentsMeshError {\n readonly issues: readonly string[];\n\n constructor(path: string, issues: readonly string[], options?: { cause?: unknown }) {\n super(\n 'AM_CONFIG_INVALID',\n `Invalid config at ${path}: ${issues.join('; ')}. Fix the YAML and try again.`,\n options,\n );\n this.name = 'ConfigValidationError';\n this.issues = issues;\n }\n}\n\nexport class TargetNotFoundError extends AgentsMeshError {\n readonly target: string;\n\n constructor(target: string, options?: { cause?: unknown; supported?: readonly string[] }) {\n const suffix = options?.supported ? ` Supported: ${options.supported.join(', ')}.` : '';\n super('AM_TARGET_NOT_FOUND', `Unknown target \"${target}\".${suffix}`, options);\n this.name = 'TargetNotFoundError';\n this.target = target;\n }\n}\n\nexport class ImportError extends AgentsMeshError {\n readonly target: string;\n\n constructor(target: string, message: string, options?: { cause?: unknown }) {\n super('AM_IMPORT_FAILED', `Import from ${target} failed: ${message}`, options);\n this.name = 'ImportError';\n this.target = target;\n }\n}\n\nexport class GenerationError extends AgentsMeshError {\n constructor(message: string, options?: { cause?: unknown }) {\n super('AM_GENERATION_FAILED', message, options);\n this.name = 'GenerationError';\n }\n}\n\nexport class RemoteFetchError extends AgentsMeshError {\n readonly source: string;\n\n constructor(source: string, message: string, options?: { cause?: unknown }) {\n super('AM_REMOTE_FETCH_FAILED', `Remote fetch for \"${source}\" failed: ${message}`, options);\n this.name = 'RemoteFetchError';\n this.source = source;\n }\n}\n\nexport class LockAcquisitionError extends AgentsMeshError {\n readonly lockPath: string;\n readonly holder: string;\n\n constructor(lockPath: string, holder: string, options?: { cause?: unknown }) {\n super(\n 'AM_LOCK_ACQUISITION_FAILED',\n `Could not acquire generate lock at ${lockPath}: currently held by ${holder}. ` +\n `Wait for the other process to finish, or remove ${lockPath} manually if you are sure no agentsmesh process is running.`,\n options,\n );\n this.name = 'LockAcquisitionError';\n this.lockPath = lockPath;\n this.holder = holder;\n }\n}\n\nexport class FileSystemError extends AgentsMeshError {\n readonly path: string;\n readonly errnoCode?: string;\n\n constructor(path: string, message: string, options?: { cause?: unknown; errnoCode?: string }) {\n super('AM_FILESYSTEM', message, options);\n this.name = 'FileSystemError';\n this.path = path;\n this.errnoCode = options?.errnoCode;\n }\n}\n","/**\n * File system helpers for agentsmesh.\n */\n\nimport {\n readFile,\n writeFile,\n access,\n mkdir,\n rename,\n readdir,\n copyFile,\n rm,\n stat,\n symlink,\n unlink,\n lstat,\n readlink,\n realpath,\n} from 'node:fs/promises';\nimport { dirname, join, resolve } from 'node:path';\nimport { constants } from 'node:fs';\nimport { FileSystemError } from '../../core/errors.js';\n\nconst UTF8_BOM = '\\uFEFF';\n\ninterface ErrnoLike {\n code?: string;\n message: string;\n}\n\n/**\n * Read file as utf-8 string. Strips BOM. Returns null on ENOENT.\n * @param path - Absolute or relative file path\n * @returns File content or null if not found\n */\nexport async function readFileSafe(path: string): Promise<string | null> {\n try {\n const data = await readFile(path, 'utf-8');\n return data.startsWith(UTF8_BOM) ? data.slice(UTF8_BOM.length) : data;\n } catch (err) {\n const e = err as ErrnoLike;\n if (e.code === 'ENOENT') return null;\n throw new FileSystemError(\n path,\n `Failed to read ${path}: ${e.message}. Ensure the file exists and is readable.`,\n { cause: err, errnoCode: e.code },\n );\n }\n}\n\n/**\n * Write content atomically (write to .tmp, then rename).\n * Creates parent directories.\n * @param path - Target file path\n * @param content - Content to write\n */\nexport async function writeFileAtomic(path: string, content: string): Promise<void> {\n const dir = dirname(path);\n await mkdir(dir, { recursive: true });\n try {\n const info = await lstat(path);\n if (info.isDirectory()) {\n throw new FileSystemError(\n path,\n `Failed to write ${path}: target exists and is a directory. Remove it or choose a different path.`,\n { errnoCode: 'EISDIR' },\n );\n }\n } catch (err) {\n if (err instanceof FileSystemError) throw err;\n const e = err as ErrnoLike;\n if (e.code !== 'ENOENT') throw err;\n }\n const tmpPath = `${path}.tmp`;\n try {\n await writeFile(tmpPath, content, 'utf-8');\n await rename(tmpPath, path);\n } catch (err) {\n await rm(tmpPath, { force: true }).catch(() => {});\n const e = err as ErrnoLike;\n throw new FileSystemError(\n path,\n `Failed to write ${path}: ${e.message}. Check permissions and disk space.`,\n { cause: err, errnoCode: e.code },\n );\n }\n}\n\n/**\n * Check if path exists.\n * @param path - File or directory path\n * @returns true if exists, false otherwise\n */\nexport async function exists(path: string): Promise<boolean> {\n try {\n await access(path, constants.F_OK);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * Create directory recursively. No-op if already exists.\n * @param path - Directory path\n */\nexport async function mkdirp(path: string): Promise<void> {\n await mkdir(path, { recursive: true });\n}\n\n/**\n * List all files recursively under dir. Returns absolute paths only.\n * Skips revisiting the same real directory (breaks symlink cycles).\n * @param dir - Directory to scan\n * @returns Array of absolute file paths\n */\nexport async function readDirRecursive(dir: string, visited?: Set<string>): Promise<string[]> {\n let canonicalDir: string;\n try {\n canonicalDir = await realpath(dir);\n } catch (err) {\n const e = err as ErrnoLike;\n if (e.code === 'ENOENT' || e.code === 'ENOTDIR' || e.code === 'ELOOP') return [];\n throw new FileSystemError(\n dir,\n `Failed to read directory ${dir}: ${e.message}. Check permissions.`,\n { cause: err, errnoCode: e.code },\n );\n }\n const seen = visited ?? new Set<string>();\n if (seen.has(canonicalDir)) return [];\n seen.add(canonicalDir);\n try {\n const entries = await readdir(dir, { withFileTypes: true });\n const files: string[] = [];\n for (const ent of entries) {\n const full = join(dir, ent.name);\n const walkChild =\n ent.isDirectory() ||\n (ent.isSymbolicLink() &&\n (await stat(full).then(\n (s) => s.isDirectory(),\n () => false,\n )));\n if (walkChild) {\n files.push(...(await readDirRecursive(full, seen)));\n } else {\n files.push(full);\n }\n }\n return files;\n } catch (err) {\n const e = err as ErrnoLike;\n if (e.code === 'ENOENT' || e.code === 'ENOTDIR' || e.code === 'EACCES') return [];\n throw new FileSystemError(\n dir,\n `Failed to read directory ${dir}: ${e.message}. Check permissions.`,\n { cause: err, errnoCode: e.code },\n );\n }\n}\n\n/**\n * Copy directory recursively preserving structure.\n * @param src - Source directory\n * @param dest - Destination directory\n */\nexport async function copyDir(src: string, dest: string): Promise<void> {\n await mkdirp(dest);\n const entries = await readdir(src, { withFileTypes: true });\n for (const ent of entries) {\n const srcPath = join(src, ent.name);\n const destPath = join(dest, ent.name);\n const info = await stat(srcPath);\n if (info.isDirectory()) {\n await copyDir(srcPath, destPath);\n } else {\n await mkdirp(dirname(destPath));\n await copyFile(srcPath, destPath);\n }\n }\n}\n\n/**\n * Ensure .agentsmeshcache symlink exists pointing to the agentsmesh cache dir.\n * Creates or updates the symlink so devs can inspect cached remote extends.\n * @param cacheDir - Absolute path to the cache (e.g. ~/.agentsmesh/cache)\n * @param linkPath - Absolute path where the symlink should live\n */\nexport async function ensureCacheSymlink(cacheDir: string, linkPath: string): Promise<void> {\n const targetPath = resolve(cacheDir);\n try {\n const info = await lstat(linkPath);\n if (!info.isSymbolicLink()) return; // leave existing non-symlink alone\n const currentTarget = resolve(dirname(linkPath), await readlink(linkPath));\n if (currentTarget === targetPath) return;\n await unlink(linkPath);\n } catch (err) {\n const e = err as ErrnoLike;\n if (e.code !== 'ENOENT') throw err;\n }\n await symlink(targetPath, linkPath, 'dir');\n}\n","/**\n * Claude Code global-scope extras: output-styles generation.\n * Implements `globalSupport.scopeExtras` for Claude Code.\n */\n\nimport { join } from 'node:path';\nimport type { CanonicalFiles, GenerateResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { CLAUDE_OUTPUT_STYLES_DIR } from './constants.js';\n\nfunction computeStatus(existing: string | null, content: string): GenerateResult['status'] {\n if (existing === null) return 'created';\n if (existing !== content) return 'updated';\n return 'unchanged';\n}\n\n/**\n * Emit ~/.claude/output-styles/{name}.md for agents/commands marked outputStyle in frontmatter.\n * No-ops outside of global scope.\n */\nexport async function generateClaudeGlobalExtras(\n canonical: CanonicalFiles,\n projectRoot: string,\n scope: TargetLayoutScope,\n enabledFeatures: ReadonlySet<string>,\n): Promise<GenerateResult[]> {\n if (scope !== 'global') return [];\n\n const hasAgents = enabledFeatures.has('agents');\n const hasCommands = enabledFeatures.has('commands');\n if (!hasAgents && !hasCommands) return [];\n\n const results: GenerateResult[] = [];\n\n if (hasAgents) {\n for (const agent of canonical.agents) {\n if (!agent.outputStyle) continue;\n const fm = { name: agent.name, description: agent.description || undefined };\n const content = serializeFrontmatter(fm, agent.body.trim());\n const path = `${CLAUDE_OUTPUT_STYLES_DIR}/${agent.name}.md`;\n const existing = await readFileSafe(join(projectRoot, path));\n results.push({\n target: 'claude-code',\n path,\n content,\n currentContent: existing ?? undefined,\n status: computeStatus(existing, content),\n });\n }\n }\n\n if (hasCommands) {\n for (const cmd of canonical.commands) {\n if (!cmd.outputStyle) continue;\n const fm = { name: cmd.name, description: cmd.description || undefined };\n const content = serializeFrontmatter(fm, cmd.body.trim());\n const path = `${CLAUDE_OUTPUT_STYLES_DIR}/${cmd.name}.md`;\n const existing = await readFileSafe(join(projectRoot, path));\n results.push({\n target: 'claude-code',\n path,\n content,\n currentContent: existing ?? undefined,\n status: computeStatus(existing, content),\n });\n }\n }\n\n return results;\n}\n","import { getBuiltinTargetDefinition } from '../../targets/catalog/builtin-targets.js';\nimport type { TargetLayoutScope } from '../../targets/catalog/target-descriptor.js';\n\nexport async function buildImportReferenceMap(\n target: string,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<Map<string, string>> {\n const refs = new Map<string, string>();\n const def = getBuiltinTargetDefinition(target);\n if (def) {\n await def.buildImportPaths(refs, projectRoot, scope);\n }\n return refs;\n}\n","import { posix, win32 } from 'node:path';\n\nconst WINDOWS_ABSOLUTE_PATH = /^[A-Za-z]:[\\\\/]/;\nconst TRAILING_PUNCTUATION = /[.!?:;]+$/;\n\nexport { WINDOWS_ABSOLUTE_PATH };\n\nexport function pathApi(projectRoot: string): typeof posix {\n return projectRoot.includes('\\\\') || WINDOWS_ABSOLUTE_PATH.test(projectRoot) ? win32 : posix;\n}\n\nexport function normalizeSeparators(token: string): string {\n return token.replace(/\\\\/g, '/');\n}\n\nexport function normalizeForProject(projectRoot: string, filePath: string): string {\n const api = pathApi(projectRoot);\n const normalized = api.normalize(\n api === win32 ? filePath.replace(/\\//g, '\\\\') : normalizeSeparators(filePath),\n );\n return normalized.endsWith(api.sep) && normalized.length > 1\n ? normalized.slice(0, -1)\n : normalized;\n}\n\nexport function isAbsoluteForProject(projectRoot: string, filePath: string): boolean {\n return pathApi(projectRoot).isAbsolute(filePath) || WINDOWS_ABSOLUTE_PATH.test(filePath);\n}\n\nexport function stripTrailingPunctuation(token: string): { candidate: string; suffix: string } {\n let candidate = token;\n let suffix = '';\n while (TRAILING_PUNCTUATION.test(candidate)) {\n suffix = candidate.at(-1)! + suffix;\n candidate = candidate.slice(0, -1);\n }\n return { candidate, suffix };\n}\n\nexport function rootFallbackPath(token: string, projectRoot: string): string | null {\n const api = pathApi(projectRoot);\n const stripped = token.replace(/^(\\.\\.\\/)+/, '').replace(/^\\.\\//, '');\n return stripped && stripped !== token\n ? normalizeForProject(projectRoot, api.join(projectRoot, stripped))\n : null;\n}\n","import { existsSync, realpathSync } from 'node:fs';\nimport { isAbsolute, win32 } from 'node:path';\nimport {\n WINDOWS_ABSOLUTE_PATH,\n pathApi,\n normalizeSeparators,\n normalizeForProject,\n isAbsoluteForProject,\n rootFallbackPath,\n} from '../path-helpers.js';\n\nconst ROOT_RELATIVE_PREFIXES = [\n '.agentsmesh/',\n '.claude/',\n '.cursor/',\n '.github/',\n '.continue/',\n '.junie/',\n '.kiro/',\n '.gemini/',\n '.clinerules/',\n '.cline/',\n '.codex/',\n '.agents/',\n '.windsurf/',\n '.roo/',\n];\n\nexport function isRootRelativePathToken(token: string): boolean {\n const normalizedToken = normalizeSeparators(token);\n return ROOT_RELATIVE_PREFIXES.some((prefix) => normalizedToken.startsWith(prefix));\n}\n\n/** Top-level segments under `.agentsmesh/` when links omit the `.agentsmesh/` prefix (project scope). */\nconst MESH_ROOT_RELATIVE_FIRST_SEGMENTS = new Set([\n 'skills',\n 'rules',\n 'commands',\n 'agents',\n 'packs',\n]);\n\nfunction isMeshRootRelativePathToken(normalizedToken: string): boolean {\n const t = normalizeSeparators(normalizedToken).replace(/^\\.\\//, '');\n if (t.startsWith('../') || t.startsWith('/')) return false;\n if (WINDOWS_ABSOLUTE_PATH.test(t)) return false;\n if (/^[a-zA-Z]:/.test(t)) return false;\n if (isRootRelativePathToken(t)) return false;\n const first = t.split('/').filter((s) => s.length > 0)[0];\n return first !== undefined && MESH_ROOT_RELATIVE_FIRST_SEGMENTS.has(first);\n}\nconst NON_REWRITABLE_BARE_FILES = new Set([\n 'AGENTS.md',\n 'CLAUDE.md',\n 'GEMINI.md',\n 'codex.md',\n '.windsurfrules',\n '.cursorrules',\n]);\nconst EXTERNAL_REF_PATTERNS = [\n /\\b[A-Za-z][A-Za-z0-9+.-]+:[^\\s<>()\\]]+/g,\n /\\b[\\w.-]+@[\\w.-]+:[^\\s<>()\\]]+/g,\n /\\b[\\w.+-]+@[\\w.-]+\\.[A-Za-z]{2,}\\b/g,\n /\\/\\/[A-Za-z0-9][\\w.-]*\\.[A-Za-z]{2,}[^\\s<>()\\]]*/g,\n];\nconst FENCED_CODE_BLOCK = /^(?:```|~~~)[^\\n]*\\n[\\s\\S]*?^(?:```|~~~)/gm;\nconst ROOT_GENERATION_CONTRACT_BLOCK =\n /<!-- agentsmesh:root-generation-contract:start -->[\\s\\S]*?<!-- agentsmesh:root-generation-contract:end -->/g;\nconst EMBEDDED_RULES_BLOCK =\n /<!-- agentsmesh:embedded-rules:start -->[\\s\\S]*?<!-- agentsmesh:embedded-rules:end -->/g;\n\nexport const PATH_TOKEN =\n /(?:\\.\\.[\\\\/]|\\.\\/|\\.\\\\|\\/[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;\nexport const LINE_NUMBER_SUFFIX = /(?::(\\d+)){1,2}$/;\n\nexport function resolveProjectPath(\n token: string,\n projectRoot: string,\n sourceFile: string,\n): string[] {\n const api = pathApi(projectRoot);\n const normalizedProjectRoot = normalizeForProject(projectRoot, projectRoot);\n const normalizedSourceFile = normalizeForProject(projectRoot, sourceFile);\n const normalizedToken = normalizeSeparators(token);\n\n if (WINDOWS_ABSOLUTE_PATH.test(token)) {\n const windowsToken = normalizeForProject(projectRoot, token);\n if (api === win32 || windowsToken.startsWith(`${normalizedProjectRoot}${api.sep}`)) {\n return [windowsToken];\n }\n return [windowsToken];\n }\n if (isAbsolute(token)) {\n const absoluteToken = normalizeForProject(projectRoot, token);\n if (absoluteToken.startsWith(normalizedProjectRoot) || existsSync(token))\n return [absoluteToken];\n return [normalizeForProject(projectRoot, api.join(projectRoot, token))];\n }\n if (normalizedToken.startsWith('./') || normalizedToken.startsWith('../')) {\n const sourceRelativePath = normalizeForProject(\n projectRoot,\n api.join(api.dirname(normalizedSourceFile), normalizedToken),\n );\n const fallbackPath = rootFallbackPath(normalizedToken, normalizedProjectRoot);\n return fallbackPath && fallbackPath !== sourceRelativePath\n ? [sourceRelativePath, fallbackPath]\n : [sourceRelativePath];\n }\n if (isRootRelativePathToken(normalizedToken)) {\n return [normalizeForProject(projectRoot, api.join(normalizedProjectRoot, normalizedToken))];\n }\n if (normalizedToken.includes('/')) {\n const meshRoot = normalizeForProject(\n projectRoot,\n api.join(normalizedProjectRoot, '.agentsmesh'),\n );\n const fromMesh = isMeshRootRelativePathToken(normalizedToken)\n ? normalizeForProject(projectRoot, api.join(meshRoot, normalizedToken))\n : null;\n const fromProjectRoot = normalizeForProject(\n projectRoot,\n api.join(normalizedProjectRoot, normalizedToken),\n );\n const fromSourceDir = normalizeForProject(\n projectRoot,\n api.join(api.dirname(normalizedSourceFile), normalizedToken),\n );\n if (fromMesh !== null) {\n return [fromMesh, fromProjectRoot, fromSourceDir];\n }\n return [fromProjectRoot, fromSourceDir];\n }\n if (NON_REWRITABLE_BARE_FILES.has(normalizedToken)) return [];\n if (normalizedToken.includes('.')) {\n return [\n normalizeForProject(\n projectRoot,\n api.join(api.dirname(normalizedSourceFile), normalizedToken),\n ),\n ];\n }\n return [];\n}\n\nexport function expandResolvedPaths(projectRoot: string, resolvedPath: string): string[] {\n const expanded = [resolvedPath];\n if (!isAbsoluteForProject(projectRoot, resolvedPath) || !existsSync(resolvedPath))\n return expanded;\n try {\n const realPaths = [realpathSync(resolvedPath), realpathSync.native(resolvedPath)];\n for (const realPath of realPaths) {\n if (realPath !== resolvedPath && !expanded.includes(realPath)) {\n expanded.unshift(realPath);\n }\n }\n } catch {\n // Keep the original path when realpath lookup fails.\n }\n return expanded;\n}\n\nexport function isGlobAdjacent(content: string, start: number, end: number): boolean {\n const prev = start > 0 ? content.at(start - 1) : '';\n const next = end < content.length ? content.at(end) : '';\n return prev === '*' || next === '*';\n}\n\nexport function protectedRanges(content: string): Array<[number, number]> {\n const ranges: Array<[number, number]> = [];\n for (const pattern of EXTERNAL_REF_PATTERNS) {\n for (const match of content.matchAll(pattern)) {\n ranges.push([match.index ?? 0, (match.index ?? 0) + match[0].length]);\n }\n }\n for (const match of content.matchAll(FENCED_CODE_BLOCK)) {\n ranges.push([match.index ?? 0, (match.index ?? 0) + match[0].length]);\n }\n for (const match of content.matchAll(ROOT_GENERATION_CONTRACT_BLOCK)) {\n ranges.push([match.index ?? 0, (match.index ?? 0) + match[0].length]);\n }\n for (const match of content.matchAll(EMBEDDED_RULES_BLOCK)) {\n ranges.push([match.index ?? 0, (match.index ?? 0) + match[0].length]);\n }\n return ranges;\n}\n","import { dirname } from 'node:path';\nimport type { TargetLayoutScope } from '../../targets/catalog/target-descriptor.js';\nimport {\n WINDOWS_ABSOLUTE_PATH,\n normalizeForProject,\n normalizeSeparators,\n pathApi,\n} from '../path-helpers.js';\nimport type { RewrittenLink, TokenContext } from './link-output-kinds.js';\n\nexport interface FormatLinkPathOptions {\n explicitCurrentDirLinks?: boolean;\n scope?: TargetLayoutScope;\n pathIsDirectory?: (absolutePath: string) => boolean;\n forceRelative?: boolean;\n tokenContext?: TokenContext;\n originalToken?: string;\n logicalMeshSourceAbsolute?: string | null;\n}\n\nfunction isReadingContext(context: TokenContext | undefined): boolean {\n return (\n context === undefined ||\n context.role === 'inline-code' ||\n context.role === 'bracketed' ||\n context.role === 'quoted' ||\n context.role === 'at-prefix' ||\n context.role === 'bracket-label' ||\n context.role === 'bare-prose'\n );\n}\n\nexport function isUnderProjectRoot(projectRoot: string, absolutePath: string): boolean {\n const api = pathApi(projectRoot);\n const root = normalizeForProject(projectRoot, projectRoot);\n const cand = normalizeForProject(projectRoot, absolutePath);\n if (cand === root) return true;\n const prefix = root.endsWith(api.sep) ? root : `${root}${api.sep}`;\n return cand.startsWith(prefix);\n}\n\nfunction agentsMeshRoot(projectRoot: string): string {\n const api = pathApi(projectRoot);\n return normalizeForProject(projectRoot, api.join(projectRoot, '.agentsmesh'));\n}\n\nexport function isUnderAgentsMesh(projectRoot: string, absolutePath: string): boolean {\n const api = pathApi(projectRoot);\n const meshRoot = agentsMeshRoot(projectRoot);\n const cand = normalizeForProject(projectRoot, absolutePath);\n if (cand === meshRoot) return true;\n const prefix = meshRoot.endsWith(api.sep) ? meshRoot : `${meshRoot}${api.sep}`;\n return cand.startsWith(prefix);\n}\n\nexport function toAgentsMeshRootRelative(\n projectRoot: string,\n absolutePathUnderMesh: string,\n keepSlash: boolean,\n): string | null {\n const api = pathApi(projectRoot);\n const meshRoot = agentsMeshRoot(projectRoot);\n const cand = normalizeForProject(projectRoot, absolutePathUnderMesh);\n if (!isUnderAgentsMesh(projectRoot, cand)) return null;\n const relPath = api.relative(meshRoot, cand).replace(/\\\\/g, '/');\n if (relPath.startsWith('..') || relPath.length === 0) return null;\n return keepSlash && !relPath.endsWith('/') ? `${relPath}/` : relPath;\n}\n\nfunction toProjectRootRelative(\n projectRoot: string,\n absolutePath: string,\n keepSlash: boolean,\n): string | null {\n const api = pathApi(projectRoot);\n const relPath = api\n .relative(\n normalizeForProject(projectRoot, projectRoot),\n normalizeForProject(projectRoot, absolutePath),\n )\n .replace(/\\\\/g, '/');\n if (relPath.startsWith('..')) return null;\n const rewritten = relPath.length > 0 ? relPath : '.';\n return keepSlash && !rewritten.endsWith('/') ? `${rewritten}/` : rewritten;\n}\n\nexport function shouldPreserveAgentsMeshAnchor(\n _projectRoot: string,\n _destinationFile: string,\n options: FormatLinkPathOptions,\n): boolean {\n if (!isReadingContext(options.tokenContext)) return false;\n if (options.originalToken === undefined) return false;\n return normalizeSeparators(options.originalToken).startsWith('.agentsmesh/');\n}\n\nexport function toProjectRootReference(\n projectRoot: string,\n absolutePath: string,\n keepSlash: boolean,\n): RewrittenLink | null {\n const formatted = toProjectRootRelative(projectRoot, absolutePath, keepSlash);\n if (formatted === null) return null;\n return { kind: 'projectRoot', rest: formatted, text: formatted };\n}\n\nexport function formatLinkPathForDestinationLegacy(\n projectRoot: string,\n destinationFile: string,\n absoluteTargetPath: string,\n keepSlash: boolean,\n options: FormatLinkPathOptions,\n): string | null {\n const api = pathApi(projectRoot);\n const root = normalizeForProject(projectRoot, projectRoot);\n const destFile = normalizeForProject(projectRoot, destinationFile);\n const target = normalizeForProject(projectRoot, absoluteTargetPath);\n\n if (!isUnderProjectRoot(projectRoot, target)) {\n return toProjectRootReference(projectRoot, target, keepSlash)?.text ?? null;\n }\n const destDir = normalizeForProject(projectRoot, dirname(destFile));\n if (!isUnderProjectRoot(projectRoot, destDir) && destDir !== root) {\n return toProjectRootReference(projectRoot, target, keepSlash)?.text ?? null;\n }\n\n let rel = api.relative(destDir, target).replace(/\\\\/g, '/');\n if (api.isAbsolute(rel) || WINDOWS_ABSOLUTE_PATH.test(rel)) {\n return toProjectRootRelative(projectRoot, target, keepSlash);\n }\n\n const joined = normalizeForProject(projectRoot, api.join(destDir, rel));\n if (!isUnderProjectRoot(projectRoot, joined)) {\n return toProjectRootRelative(projectRoot, target, keepSlash);\n }\n\n if (rel === '' || rel === '.') {\n rel = '.';\n } else if (\n options.explicitCurrentDirLinks === true &&\n destDir !== root &&\n !rel.startsWith('../') &&\n !rel.startsWith('./')\n ) {\n rel = `./${rel}`;\n }\n\n if (keepSlash && !rel.endsWith('/')) return `${rel}/`;\n return rel;\n}\n","/**\n * Format rewritten file paths for markdown/docs: prefer paths relative to the\n * destination file (portable across machines) when both paths stay under projectRoot.\n */\n\nimport { expandResolvedPaths, resolveProjectPath } from './link-rebaser-helpers.js';\nimport { normalizeForProject, normalizeSeparators } from '../path-helpers.js';\nimport type { TargetLayoutScope } from '../../targets/catalog/target-descriptor.js';\nimport {\n formatLinkPathForDestinationLegacy,\n isUnderAgentsMesh,\n shouldPreserveAgentsMeshAnchor,\n toAgentsMeshRootRelative,\n toProjectRootReference,\n type FormatLinkPathOptions,\n} from './link-rebaser-formatting.js';\n\nexport { isUnderAgentsMesh, type FormatLinkPathOptions } from './link-rebaser-formatting.js';\n\n/**\n * Path to embed in generated/imported markdown. In **project** scope, targets under\n * `.agentsmesh/` use file-relative links for files and mesh-root paths (no `.agentsmesh/` prefix,\n * e.g. `.claude/skills/…` or `skills/foo/`) for directories; targets outside `.agentsmesh/` use\n * project-root-relative paths. **Global** scope uses the same rules when the destination is under\n * `.agentsmesh/`; generated tool outputs keep project-root-style prose links unless the caller\n * forces destination-relative markdown links.\n */\nexport function formatLinkPathForDestination(\n projectRoot: string,\n destinationFile: string,\n absoluteTargetPath: string,\n keepSlash: boolean,\n options: FormatLinkPathOptions = {},\n): string | null {\n const scope: TargetLayoutScope = options.scope ?? 'project';\n const target = normalizeForProject(projectRoot, absoluteTargetPath);\n\n if (shouldPreserveAgentsMeshAnchor(projectRoot, destinationFile, options)) {\n return normalizeSeparators(options.originalToken ?? '');\n }\n\n if (options.forceRelative) {\n return formatLinkPathForDestinationLegacy(\n projectRoot,\n destinationFile,\n absoluteTargetPath,\n keepSlash,\n options,\n );\n }\n\n if (scope === 'global' && !isUnderAgentsMesh(projectRoot, destinationFile)) {\n return toProjectRootReference(projectRoot, target, keepSlash)?.text ?? null;\n }\n\n /** Canonical path under `.agentsmesh/…` when the link points at mesh content (see `link-rebaser.ts`). */\n const meshCanonicalForShape = (() => {\n if (isUnderAgentsMesh(projectRoot, target)) return target;\n const logical = options.logicalMeshSourceAbsolute;\n if (logical && isUnderAgentsMesh(projectRoot, normalizeForProject(projectRoot, logical))) {\n return normalizeForProject(projectRoot, logical);\n }\n return null;\n })();\n\n if (!meshCanonicalForShape) {\n return toProjectRootReference(projectRoot, target, keepSlash)?.text ?? null;\n }\n\n const treatAsDirectory = keepSlash || (options.pathIsDirectory?.(target) ?? false);\n if (treatAsDirectory) {\n const meshRelative = toAgentsMeshRootRelative(projectRoot, meshCanonicalForShape, keepSlash);\n if (meshRelative !== null) return meshRelative;\n return toProjectRootReference(projectRoot, meshCanonicalForShape, keepSlash)?.text ?? null;\n }\n\n return formatLinkPathForDestinationLegacy(\n projectRoot,\n destinationFile,\n absoluteTargetPath,\n keepSlash,\n options,\n );\n}\n\n/** Lower tier = better: same-directory `./…` before `../…`, before project-root-relative. */\nfunction formattedLinkTier(formatted: string): number {\n if (formatted.startsWith('./')) return 0;\n if (formatted.startsWith('../')) return 1;\n return 2;\n}\n\n/** Negative if `a` is a strictly better (shorter / more local) link string than `b`. */\nexport function compareFormattedLinks(a: string, b: string): number {\n const ta = formattedLinkTier(a);\n const tb = formattedLinkTier(b);\n if (ta !== tb) return ta - tb;\n const ua = (a.match(/\\.\\.\\//g) ?? []).length;\n const ub = (b.match(/\\.\\.\\//g) ?? []).length;\n if (ua !== ub) return ua - ub;\n return a.length - b.length;\n}\n\nfunction linkResolvesToTarget(\n projectRoot: string,\n destinationFile: string,\n formatted: string,\n expectedAbsolute: string,\n): boolean {\n const exp = normalizeForProject(projectRoot, expectedAbsolute);\n const probe = formatted.replace(/\\/$/, '');\n for (const c of resolveProjectPath(probe, projectRoot, destinationFile)) {\n for (const e of expandResolvedPaths(projectRoot, c)) {\n if (normalizeForProject(projectRoot, e) === exp) return true;\n }\n }\n return false;\n}\n\n/**\n * Among absolute targets that exist on disk (or in the generate plan), pick the formatted\n * relative path that stays closest to the destination file (`./…` before long `../…` chains\n * or project-root-relative links).\n */\nexport function pickShortestValidatedFormattedLink(\n projectRoot: string,\n destinationFile: string,\n absoluteTargets: readonly string[],\n keepSlash: boolean,\n options: FormatLinkPathOptions,\n pathExists: (absolutePath: string) => boolean,\n): string | null {\n let best: string | null = null;\n const seen = new Set<string>();\n\n for (const abs of absoluteTargets) {\n const norm = normalizeForProject(projectRoot, abs);\n if (seen.has(norm)) continue;\n seen.add(norm);\n if (!pathExists(norm)) continue;\n\n const formatted = formatLinkPathForDestination(\n projectRoot,\n destinationFile,\n norm,\n keepSlash,\n options,\n );\n if (formatted === null) continue;\n if (!linkResolvesToTarget(projectRoot, destinationFile, formatted, norm)) continue;\n\n if (best === null || compareFormattedLinks(formatted, best) < 0) {\n best = formatted;\n }\n }\n return best;\n}\n","import { pathApi, normalizeForProject, normalizeSeparators } from '../path-helpers.js';\nimport { isRootRelativePathToken } from './link-rebaser-helpers.js';\n\n/**\n * Suffix-strip fallback for tool-specific root-relative paths (e.g. `.codex/skills/figma/references/file.md`).\n * Progressively strips leading segments and checks whether the remaining suffix exists below the destination.\n */\nexport function resolveByDestinationSuffixStrip(\n token: string,\n projectRoot: string,\n destinationFile: string,\n pathExists: (absolutePath: string) => boolean,\n): string | null {\n const api = pathApi(projectRoot);\n const normalizedToken = normalizeSeparators(token);\n\n if (!isRootRelativePathToken(normalizedToken)) return null;\n\n const segments = normalizedToken.split('/').filter((s) => s.length > 0);\n if (segments.length < 3) return null;\n\n const destFilePath = normalizeForProject(projectRoot, destinationFile);\n const destDir = api.dirname(destFilePath);\n\n for (let i = 1; i <= segments.length - 1; i++) {\n const suffix = segments.slice(i).join('/');\n const candidate = normalizeForProject(projectRoot, api.join(destDir, suffix));\n if (candidate === destFilePath) continue;\n if (pathExists(candidate)) return candidate;\n }\n return null;\n}\n","import { normalizeForProject, normalizeSeparators } from '../path-helpers.js';\nimport { expandResolvedPaths, resolveProjectPath } from './link-rebaser-helpers.js';\nimport { resolveByDestinationSuffixStrip } from './link-rebaser-suffix-strip.js';\n\nexport interface ResolveLinkTargetInput {\n candidate: string;\n rawToken: string;\n projectRoot: string;\n sourceFile: string;\n destinationFile: string;\n translatePath: (absolutePath: string) => string;\n pathExists: (absolutePath: string) => boolean;\n}\n\nexport interface ResolvedLinkTarget {\n translatedPath: string | null;\n resolvedBeforeTranslate: string | null;\n matchedPath: boolean;\n}\n\nexport function resolveLinkTarget(input: ResolveLinkTargetInput): ResolvedLinkTarget {\n let translatedPath: string | null = null;\n let matchedPath = false;\n let resolvedBeforeTranslate: string | null = null;\n let savedFallback: string | null = null;\n let savedFallbackResolvedBeforeTranslate: string | null = null;\n\n for (const resolvedPath of resolveProjectPath(\n input.candidate,\n input.projectRoot,\n input.sourceFile,\n )) {\n let existingFallback: string | null = null;\n let existingFallbackResolvedBeforeTranslate: string | null = null;\n for (const candidatePath of expandResolvedPaths(input.projectRoot, resolvedPath)) {\n const normalizedResolvedPath = normalizeForProject(input.projectRoot, candidatePath);\n const normalizedTranslatedPath = normalizeForProject(\n input.projectRoot,\n input.translatePath(normalizedResolvedPath),\n );\n const resolvedExists = input.pathExists(normalizedResolvedPath);\n const translatedExists = input.pathExists(normalizedTranslatedPath);\n if (translatedExists && normalizedTranslatedPath !== normalizedResolvedPath) {\n translatedPath = normalizedTranslatedPath;\n resolvedBeforeTranslate = normalizedResolvedPath;\n matchedPath = true;\n break;\n }\n if ((resolvedExists || translatedExists) && existingFallback === null) {\n existingFallback = normalizedTranslatedPath;\n existingFallbackResolvedBeforeTranslate = normalizedResolvedPath;\n }\n if (translatedPath === null) translatedPath = normalizedTranslatedPath;\n }\n // Save but do not commit yet: suffix-strip has higher priority.\n if (!matchedPath && existingFallback !== null && savedFallback === null) {\n savedFallback = existingFallback;\n savedFallbackResolvedBeforeTranslate = existingFallbackResolvedBeforeTranslate;\n }\n if (matchedPath) break;\n }\n\n if (!matchedPath) {\n const destCandidate = resolveByDestinationSuffixStrip(\n input.candidate,\n input.projectRoot,\n input.destinationFile,\n input.pathExists,\n );\n if (destCandidate !== null) {\n translatedPath = destCandidate;\n matchedPath = true;\n }\n }\n\n if (!matchedPath && savedFallback !== null) {\n translatedPath = savedFallback;\n if (savedFallbackResolvedBeforeTranslate !== null) {\n resolvedBeforeTranslate = savedFallbackResolvedBeforeTranslate;\n }\n matchedPath = true;\n }\n\n const destFwd = normalizeSeparators(input.destinationFile);\n const destInCanonicalMesh =\n destFwd.includes('/.agentsmesh/') || destFwd.startsWith('.agentsmesh/');\n if (\n !matchedPath &&\n translatedPath !== null &&\n normalizeSeparators(input.rawToken).startsWith('.agentsmesh/') &&\n destInCanonicalMesh\n ) {\n matchedPath = true;\n }\n\n return { translatedPath, resolvedBeforeTranslate, matchedPath };\n}\n","import { WINDOWS_ABSOLUTE_PATH, normalizeSeparators } from '../path-helpers.js';\nimport { isRootRelativePathToken } from './link-rebaser-helpers.js';\n\nexport function isTildeHomeRelativePathToken(\n fullContent: string,\n matchOffset: number,\n matchText: string,\n): boolean {\n if (\n matchOffset >= 2 &&\n fullContent[matchOffset - 2] === '~' &&\n fullContent[matchOffset - 1] === '/'\n ) {\n return true;\n }\n return matchOffset >= 1 && fullContent[matchOffset - 1] === '~' && matchText.startsWith('/');\n}\n\nexport function isMarkdownLinkDestinationToken(\n fullContent: string,\n matchOffset: number,\n matchText: string,\n): boolean {\n if (matchOffset <= 0 || fullContent[matchOffset - 1] !== '(') return false;\n const closeIndex = matchOffset + matchText.length;\n const after = fullContent[closeIndex];\n if (after !== ')' && after !== '#' && after !== '?' && after !== ' ' && after !== '\\t') {\n return false;\n }\n return fullContent[matchOffset - 2] === ']';\n}\n\nexport function isRelativePathToken(token: string): boolean {\n const normalizedToken = normalizeSeparators(token);\n if (normalizedToken.startsWith('./') || normalizedToken.startsWith('../')) return true;\n if (normalizedToken.startsWith('/') || WINDOWS_ABSOLUTE_PATH.test(normalizedToken)) return false;\n if (isRootRelativePathToken(normalizedToken)) return false;\n return normalizedToken.includes('/');\n}\n","import { normalizeSeparators, stripTrailingPunctuation } from '../path-helpers.js';\nimport { LINE_NUMBER_SUFFIX, isRootRelativePathToken } from './link-rebaser-helpers.js';\nimport type { TokenContext } from './link-output-kinds.js';\n\nfunction markdownBracketLabelDuplicatesDestination(\n fullContent: string,\n labelPathStart: number,\n labelPathText: string,\n): boolean {\n const closeBracket = labelPathStart + labelPathText.length;\n if (fullContent[closeBracket] !== ']') return false;\n if (fullContent[closeBracket + 1] !== '(') return false;\n let j = closeBracket + 2;\n let dest = '';\n while (j < fullContent.length) {\n const c = fullContent[j];\n if (c === ')' || c === '#' || c === '?' || c === ' ' || c === '\\t' || c === '\\n') break;\n dest += c;\n j++;\n }\n return dest === labelPathText;\n}\n\nfunction isMarkdownReferenceDefinitionDestination(\n fullContent: string,\n start: number,\n end: number,\n): boolean {\n const lineStart = fullContent.lastIndexOf('\\n', start - 1) + 1;\n const prefix = fullContent.slice(lineStart, start);\n if (!/^\\s*\\[[^\\]\\n]+\\]:\\s*<?\\s*$/.test(prefix)) return false;\n const after = end < fullContent.length ? fullContent[end] : '';\n return (\n after === '' ||\n after === '\\n' ||\n after === '\\r' ||\n after === '>' ||\n after === ' ' ||\n after === '\\t' ||\n after === '\"' ||\n after === \"'\" ||\n after === ':' ||\n after === '#' ||\n after === '?'\n );\n}\n\n/**\n * Returns the syntactic role of the token at [start, end) within `fullContent`.\n * Used to select the appropriate formatting strategy in `formatLinkPathForDestination`.\n */\nexport function getTokenContext(fullContent: string, start: number, end: number): TokenContext {\n const before = start > 0 ? fullContent[start - 1] : '';\n const after = end < fullContent.length ? fullContent[end] : '';\n if (before === '`' && after === '`') return { role: 'inline-code' };\n if (isMarkdownReferenceDefinitionDestination(fullContent, start, end)) {\n return { role: 'markdown-link-dest' };\n }\n if (before === '<' && after === '>') return { role: 'bracketed' };\n if ((before === \"'\" && after === \"'\") || (before === '\"' && after === '\"')) {\n return { role: 'quoted' };\n }\n if (before === '@') return { role: 'at-prefix' };\n if (before === '(' && fullContent[start - 2] === ']') return { role: 'markdown-link-dest' };\n if (before === '[' && after === ']') return { role: 'bracket-label' };\n return { role: 'bare-prose' };\n}\n\n/**\n * Only relativize path tokens that are unambiguous link/string references.\n * Bare path-like tokens are opt-in for generate/import round-trip rewrites.\n */\nexport function shouldRewritePathToken(\n fullContent: string,\n start: number,\n end: number,\n matchText: string,\n rewriteBarePathTokens: boolean,\n): boolean {\n if (start < 0 || end > fullContent.length) return false;\n const { candidate: punctStripped } = stripTrailingPunctuation(matchText);\n const candidate = punctStripped.replace(LINE_NUMBER_SUFFIX, '');\n const normalizedCandidate = normalizeSeparators(candidate);\n const candidateEnd = start + candidate.length;\n const before = fullContent[start - 1];\n const after = fullContent[end];\n if (isMarkdownReferenceDefinitionDestination(fullContent, start, candidateEnd)) return true;\n if (\n (before === \"'\" && after === \"'\") ||\n (before === '\"' && after === '\"') ||\n (before === '`' && after === '`')\n ) {\n return true;\n }\n if (before === '<' && after === '>') return true;\n if (before === '[' && after === ']') {\n if (\n !rewriteBarePathTokens &&\n !isRootRelativePathToken(normalizedCandidate) &&\n markdownBracketLabelDuplicatesDestination(fullContent, start, matchText)\n ) {\n return false;\n }\n return true;\n }\n if (before === '@') return true;\n if (before === '(') {\n return after === ')' || after === '#' || after === '?' || after === ' ' || after === '\\t';\n }\n if (!rewriteBarePathTokens) return false;\n if (isRootRelativePathToken(normalizedCandidate)) return true;\n if (normalizedCandidate.includes('/') || normalizedCandidate.includes('\\\\')) {\n if (normalizedCandidate.startsWith('./') || normalizedCandidate.startsWith('../')) return true;\n const segments = normalizedCandidate.split(/[\\\\/]/).filter(Boolean);\n const lastSegment = segments.at(-1) ?? '';\n return lastSegment.includes('.');\n }\n return false;\n}\n","import {\n normalizeForProject,\n normalizeSeparators,\n pathApi,\n stripTrailingPunctuation,\n WINDOWS_ABSOLUTE_PATH,\n} from '../path-helpers.js';\nimport {\n PATH_TOKEN,\n LINE_NUMBER_SUFFIX,\n isGlobAdjacent,\n isRootRelativePathToken,\n protectedRanges,\n} from './link-rebaser-helpers.js';\nimport { formatLinkPathForDestination, isUnderAgentsMesh } from './link-rebaser-output.js';\nimport { resolveLinkTarget } from './link-rebaser-resolution.js';\nimport {\n isMarkdownLinkDestinationToken,\n isRelativePathToken,\n isTildeHomeRelativePathToken,\n} from './link-token-guards.js';\nimport { getTokenContext, shouldRewritePathToken } from './link-token-context.js';\nimport type { TargetLayoutScope } from '../../targets/catalog/target-descriptor.js';\n\nexport interface RewriteFileLinksInput {\n content: string;\n projectRoot: string;\n sourceFile: string;\n destinationFile: string;\n translatePath: (absolutePath: string) => string;\n pathExists: (absolutePath: string) => boolean;\n explicitCurrentDirLinks?: boolean;\n rewriteBarePathTokens?: boolean;\n /** `global`: leave links unchanged when they resolve outside `.agentsmesh/`. */\n scope?: TargetLayoutScope;\n /** For project scope: distinguish directory targets without a trailing slash in the link. */\n pathIsDirectory?: (absolutePath: string) => boolean;\n}\n\nexport interface RewriteFileLinksResult {\n content: string;\n missing: string[];\n}\n\nexport function rewriteFileLinks(input: RewriteFileLinksInput): RewriteFileLinksResult {\n const missing = new Set<string>();\n const protectedRefRanges = protectedRanges(input.content);\n const content = input.content.replace(PATH_TOKEN, (match, offset, fullContent) => {\n if (protectedRefRanges.some(([start, end]) => offset >= start && offset < end)) return match;\n if (\n !shouldRewritePathToken(\n fullContent,\n offset,\n offset + match.length,\n match,\n input.rewriteBarePathTokens === true,\n )\n ) {\n return match;\n }\n if (isTildeHomeRelativePathToken(fullContent, offset, match)) return match;\n if (isGlobAdjacent(fullContent, offset, offset + match.length)) return match;\n const { candidate: punctStripped, suffix } = stripTrailingPunctuation(match);\n if (!punctStripped) return match;\n\n const lineNumMatch = LINE_NUMBER_SUFFIX.exec(punctStripped);\n const candidate = lineNumMatch ? punctStripped.slice(0, lineNumMatch.index) : punctStripped;\n const lineNumSuffix = lineNumMatch ? lineNumMatch[0] : '';\n if (!candidate) return match;\n const tokenContext = getTokenContext(fullContent, offset, offset + candidate.length);\n if (tokenContext.role !== 'markdown-link-dest' && WINDOWS_ABSOLUTE_PATH.test(candidate)) {\n return match;\n }\n const {\n translatedPath,\n resolvedBeforeTranslate: initialResolvedBeforeTranslate,\n matchedPath,\n } = resolveLinkTarget({\n candidate,\n rawToken: punctStripped,\n projectRoot: input.projectRoot,\n sourceFile: input.sourceFile,\n destinationFile: input.destinationFile,\n translatePath: input.translatePath,\n pathExists: input.pathExists,\n });\n let resolvedBeforeTranslate = initialResolvedBeforeTranslate;\n\n if (!matchedPath || !translatedPath) {\n if (translatedPath) missing.add(translatedPath);\n return match;\n }\n\n const normalizedCandidate = normalizeSeparators(candidate);\n const targetIsDirectory =\n candidate.endsWith('/') || input.pathIsDirectory?.(translatedPath) === true;\n if (\n targetIsDirectory &&\n !normalizedCandidate.includes('/') &&\n !normalizedCandidate.includes('\\\\')\n ) {\n // Bare folder names (e.g. `test`, `.agentsmesh`) should not be interpreted as links.\n // Keep handling for explicit path forms like `.agentsmesh/` or `/test`.\n return match;\n }\n\n if (resolvedBeforeTranslate === null) {\n let normTok = normalizeSeparators(punctStripped);\n if (normTok.startsWith('agentsmesh/')) {\n normTok = `.${normTok}`;\n }\n if (normTok.startsWith('.agentsmesh/') || normTok.includes('/.agentsmesh/')) {\n const api = pathApi(input.projectRoot);\n const root = normalizeForProject(input.projectRoot, input.projectRoot);\n const stripped = normTok.replace(/^\\.\\//, '');\n resolvedBeforeTranslate = normalizeForProject(input.projectRoot, api.join(root, stripped));\n }\n }\n\n const api = pathApi(input.projectRoot);\n\n if (input.scope === 'global') {\n const tokenFwd = normalizeSeparators(punctStripped);\n const tokenReferencesMesh =\n tokenFwd.startsWith('.agentsmesh/') || tokenFwd.includes('/.agentsmesh/');\n const tokenCanUseGlobalStandard =\n isRootRelativePathToken(tokenFwd) || isRelativePathToken(tokenFwd);\n const resolvedIsMesh =\n resolvedBeforeTranslate !== null &&\n isUnderAgentsMesh(input.projectRoot, resolvedBeforeTranslate);\n const translatedIsMesh = isUnderAgentsMesh(input.projectRoot, translatedPath);\n // No actual translation occurred — leave the link unchanged only when the resolved path\n // lives in the same top-level surface as the source file (e.g. both in .claude/).\n // This prevents cross-surface rebasing during import without suppressing project-root\n // normalization when generating from .agentsmesh/ to a tool file.\n const noTranslation = resolvedBeforeTranslate === translatedPath;\n if (noTranslation && !translatedIsMesh && !resolvedIsMesh && !tokenReferencesMesh) {\n const sourceFromRoot = normalizeSeparators(\n api.relative(input.projectRoot, normalizeForProject(input.projectRoot, input.sourceFile)),\n );\n const sourceTop = sourceFromRoot.split('/').filter(Boolean)[0] ?? '';\n const resolvedFromRoot =\n resolvedBeforeTranslate !== null\n ? normalizeSeparators(api.relative(input.projectRoot, resolvedBeforeTranslate))\n : '';\n const resolvedTop = resolvedFromRoot.split('/').filter(Boolean)[0] ?? '';\n if (sourceTop.length > 0 && sourceTop === resolvedTop) {\n return match;\n }\n }\n if (\n !tokenCanUseGlobalStandard &&\n !tokenReferencesMesh &&\n !resolvedIsMesh &&\n !translatedIsMesh\n ) {\n return match;\n }\n }\n const destAbsolute = normalizeForProject(input.projectRoot, input.destinationFile);\n const targetAbsolute = normalizeForProject(input.projectRoot, translatedPath);\n const destFromRoot = normalizeSeparators(api.relative(input.projectRoot, destAbsolute));\n const targetFromRoot = normalizeSeparators(api.relative(input.projectRoot, targetAbsolute));\n const destTop = destFromRoot.split('/').filter(Boolean)[0] ?? '';\n const targetTop = targetFromRoot.split('/').filter(Boolean)[0] ?? '';\n\n const tokenIsCanonicalMesh = normalizeSeparators(candidate).startsWith('.agentsmesh/');\n const preferRelativeProseInSameSurface =\n !tokenIsCanonicalMesh &&\n !targetIsDirectory &&\n destTop.length > 0 &&\n destTop === targetTop &&\n destTop.startsWith('.') &&\n destTop !== '.agentsmesh';\n\n const forceRelative =\n preferRelativeProseInSameSurface ||\n tokenContext.role === 'markdown-link-dest' ||\n isMarkdownLinkDestinationToken(fullContent, offset, candidate);\n const rewritten = formatLinkPathForDestination(\n input.projectRoot,\n input.destinationFile,\n translatedPath,\n candidate.endsWith('/'),\n {\n explicitCurrentDirLinks: input.explicitCurrentDirLinks === true || forceRelative,\n scope: input.scope ?? 'project',\n pathIsDirectory: input.pathIsDirectory,\n logicalMeshSourceAbsolute: targetIsDirectory ? null : resolvedBeforeTranslate,\n forceRelative,\n tokenContext,\n originalToken: candidate,\n },\n );\n if (!rewritten) return match;\n return `${rewritten}${lineNumSuffix}${suffix}`;\n });\n\n return { content, missing: [...missing] };\n}\n","import { existsSync, realpathSync, statSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { normalize as normalizePath } from 'node:path';\nimport { buildImportReferenceMap } from './import-map.js';\nimport { rewriteFileLinks } from './link-rebaser.js';\nimport type { TargetLayoutScope } from '../../targets/catalog/target-descriptor.js';\nimport { TARGET_IDS } from '../../targets/catalog/target-ids.js';\n\nfunction pathVariants(path: string): string[] {\n const variants = [normalizePath(path)];\n if (!existsSync(path)) return variants;\n try {\n const realPaths = [realpathSync(path), realpathSync.native(path)];\n for (const realPath of realPaths) {\n const normalized = normalizePath(realPath);\n if (!variants.includes(normalized)) variants.push(normalized);\n }\n } catch {\n // Keep the direct path variant when realpath lookup fails.\n }\n return variants;\n}\n\nexport async function createImportReferenceNormalizer(\n target: string,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<(content: string, sourceFile: string, destinationFile: string) => string> {\n const refs = new Map<string, string>();\n const targets = Array.from(new Set([target, ...TARGET_IDS]));\n for (const candidate of targets) {\n const candidateRefs = await buildImportReferenceMap(candidate, projectRoot, scope);\n for (const [targetPath, canonicalPath] of candidateRefs.entries()) {\n refs.set(targetPath, canonicalPath);\n }\n }\n const artifactMap = new Map<string, string>();\n for (const [targetPath, canonicalPath] of refs.entries()) {\n const canonicalAbsPath = normalizePath(join(projectRoot, canonicalPath));\n for (const variant of pathVariants(join(projectRoot, targetPath))) {\n artifactMap.set(variant, canonicalAbsPath);\n }\n }\n\n /** Import will materialize these canonical paths; treat as existing so links prefer ./… under .agentsmesh/. */\n const canonicalDestAbs = new Set<string>();\n for (const canonicalPath of new Set(refs.values())) {\n const abs = normalizePath(join(projectRoot, canonicalPath));\n canonicalDestAbs.add(abs);\n for (const variant of pathVariants(abs)) {\n canonicalDestAbs.add(normalizePath(variant));\n }\n }\n\n return (content: string, sourceFile: string, destinationFile: string) =>\n rewriteFileLinks({\n content,\n projectRoot,\n sourceFile,\n destinationFile,\n translatePath: (absolutePath) => artifactMap.get(absolutePath) ?? absolutePath,\n pathExists: (absolutePath) => {\n const normalized = normalizePath(absolutePath);\n return (\n artifactMap.has(absolutePath) ||\n artifactMap.has(normalized) ||\n existsSync(absolutePath) ||\n canonicalDestAbs.has(normalized)\n );\n },\n explicitCurrentDirLinks: false,\n rewriteBarePathTokens: true,\n scope,\n pathIsDirectory: (absolutePath) => {\n try {\n return statSync(absolutePath).isDirectory();\n } catch {\n return false;\n }\n },\n }).content;\n}\n","import { basename, join } from 'node:path';\nimport type { CanonicalRule } from '../../core/types.js';\n\nexport const ROOT_CONTRACT_START = '<!-- agentsmesh:root-generation-contract:start -->';\nexport const ROOT_CONTRACT_END = '<!-- agentsmesh:root-generation-contract:end -->';\nexport const EMBEDDED_RULES_START = '<!-- agentsmesh:embedded-rules:start -->';\nexport const EMBEDDED_RULES_END = '<!-- agentsmesh:embedded-rules:end -->';\nexport const EMBEDDED_RULE_END = '<!-- agentsmesh:embedded-rule:end -->';\n\nconst EMBEDDED_RULE_START_PREFIX = '<!-- agentsmesh:embedded-rule:start ';\nconst EMBEDDED_RULE_START_SUFFIX = ' -->';\n\ninterface EmbeddedRuleMarker {\n source: string;\n description: string;\n globs: string[];\n targets: string[];\n}\n\nexport interface ExtractedEmbeddedRule {\n source: string;\n description: string;\n globs: string[];\n targets: string[];\n body: string;\n}\n\nexport interface ExtractedEmbeddedRules {\n rootContent: string;\n rules: ExtractedEmbeddedRule[];\n}\n\nfunction escapeRegExp(value: string): string {\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction managedBlockPattern(start: string, end: string): RegExp {\n return new RegExp(`${escapeRegExp(start)}[\\\\s\\\\S]*?${escapeRegExp(end)}`, 'g');\n}\n\nexport function replaceManagedBlock(\n content: string,\n start: string,\n end: string,\n block: string,\n): string {\n const pattern = managedBlockPattern(start, end);\n if (pattern.test(content)) {\n return content.replace(pattern, block).trim();\n }\n const trimmed = content.trim();\n return trimmed ? `${trimmed}\\n\\n${block}` : block;\n}\n\nexport function stripManagedBlock(content: string, start: string, end: string): string {\n return content.replace(managedBlockPattern(start, end), '').trim();\n}\n\nfunction ruleSource(source: string): string {\n const normalized = source.replace(/\\\\/g, '/');\n const meshIndex = normalized.lastIndexOf('.agentsmesh/');\n if (meshIndex >= 0) return normalized.slice(meshIndex + '.agentsmesh/'.length);\n if (normalized.startsWith('rules/')) return normalized;\n return join('rules', basename(normalized)).replace(/\\\\/g, '/');\n}\n\nfunction markerForRule(rule: CanonicalRule): EmbeddedRuleMarker {\n return {\n source: ruleSource(rule.source),\n description: rule.description,\n globs: rule.globs,\n targets: rule.targets,\n };\n}\n\nfunction embeddedRuleStart(rule: CanonicalRule): string {\n return `${EMBEDDED_RULE_START_PREFIX}${JSON.stringify(markerForRule(rule))}${EMBEDDED_RULE_START_SUFFIX}`;\n}\n\nfunction renderRule(rule: CanonicalRule): string {\n const parts = [embeddedRuleStart(rule)];\n if (rule.description.trim()) {\n parts.push(`## ${rule.description.trim()}`, '');\n }\n parts.push(rule.body.trim(), EMBEDDED_RULE_END);\n return parts.filter((part) => part.length > 0).join('\\n');\n}\n\nexport function renderEmbeddedRulesBlock(rules: readonly CanonicalRule[]): string {\n if (rules.length === 0) return '';\n return [EMBEDDED_RULES_START, ...rules.map(renderRule), EMBEDDED_RULES_END].join('\\n');\n}\n\nexport function appendEmbeddedRulesBlock(content: string, rules: readonly CanonicalRule[]): string {\n const block = renderEmbeddedRulesBlock(rules);\n const withoutExisting = stripManagedBlock(content, EMBEDDED_RULES_START, EMBEDDED_RULES_END);\n if (!block) return withoutExisting;\n return withoutExisting ? `${withoutExisting}\\n\\n${block}` : block;\n}\n\nfunction toStringArray(value: unknown): string[] {\n return Array.isArray(value)\n ? value.filter((entry): entry is string => typeof entry === 'string')\n : [];\n}\n\nfunction parseMarker(value: string): EmbeddedRuleMarker | null {\n try {\n const parsed: unknown = JSON.parse(value);\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return null;\n const record = parsed as Record<string, unknown>;\n if (typeof record.source !== 'string' || !record.source.startsWith('rules/')) return null;\n return {\n source: record.source,\n description: typeof record.description === 'string' ? record.description : '',\n globs: toStringArray(record.globs),\n targets: toStringArray(record.targets),\n };\n } catch {\n return null;\n }\n}\n\nfunction stripGeneratedHeading(body: string, description: string): string {\n const trimmed = body.trim();\n if (!description.trim()) return trimmed;\n const heading = `## ${description.trim()}`;\n return trimmed.startsWith(heading) ? trimmed.slice(heading.length).trim() : trimmed;\n}\n\nexport function extractEmbeddedRules(content: string): ExtractedEmbeddedRules {\n const rules: ExtractedEmbeddedRule[] = [];\n const outerPattern = managedBlockPattern(EMBEDDED_RULES_START, EMBEDDED_RULES_END);\n const rootContent = content.replace(outerPattern, (block) => {\n const inner = block.replace(EMBEDDED_RULES_START, '').replace(EMBEDDED_RULES_END, '').trim();\n const entryPattern = new RegExp(\n `${escapeRegExp(EMBEDDED_RULE_START_PREFIX)}([\\\\s\\\\S]*?)${escapeRegExp(EMBEDDED_RULE_START_SUFFIX)}([\\\\s\\\\S]*?)${escapeRegExp(EMBEDDED_RULE_END)}`,\n 'g',\n );\n for (const match of inner.matchAll(entryPattern)) {\n const markerText = match[1];\n const body = match[2];\n if (markerText === undefined || body === undefined) continue;\n const marker = parseMarker(markerText);\n if (!marker) continue;\n rules.push({\n ...marker,\n body: stripGeneratedHeading(body, marker.description),\n });\n }\n return '';\n });\n return { rootContent: rootContent.trim(), rules };\n}\n","import {\n replaceManagedBlock,\n ROOT_CONTRACT_END,\n ROOT_CONTRACT_START,\n stripManagedBlock,\n} from './managed-blocks.js';\n\n/** Body v1: original text with `.agentsmesh/` substring. */\nconst ROOT_INSTRUCTION_BODY_V1 =\n \"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.\";\n\n/** Body v2: removed `.agentsmesh/` substring to satisfy the link-rewrite e2e contract. */\nconst ROOT_INSTRUCTION_BODY_V2 =\n \"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.\";\n\n/** Body v3: prior short contract text. Kept for upgrade/strip compatibility. */\nconst ROOT_INSTRUCTION_BODY_V3 =\n 'AgentsMesh syncs AI coding tool configuration from a single canonical `.agentsmesh` directory. All target-specific files (`.claude/`, `.cursor/`, `AGENTS.md`, etc.) are generated artifacts — edit canonical config first, then regenerate. The import/generate contract is bidirectional and lossless: embedded or projected features round-trip without data loss.';\n\n/** Body v4: prior short creation guidance. Kept for upgrade/strip compatibility. */\nconst ROOT_INSTRUCTION_BODY_V4 =\n \"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.\";\n\n/** Body v5: prior structure guidance, kept for upgrade/strip compatibility. */\nconst ROOT_INSTRUCTION_BODY_V5 =\n '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`.';\n\n/** Body v6: prior compact canonical authoring guide, kept for upgrade/strip compatibility. */\nconst ROOT_INSTRUCTION_BODY_V6 =\n '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`.';\n\n/** Body v7: prior explicit edit-surface guidance, kept for upgrade/strip compatibility. */\nconst ROOT_INSTRUCTION_BODY_V7 =\n '`.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`.';\n\n/** Body v8 (current): compact installed-repo operating guide. */\nconst ROOT_INSTRUCTION_BODY =\n '`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.';\n\nconst LEGACY_AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH = ROOT_INSTRUCTION_BODY_V1;\n\nconst LEGACY_AGENTSMESH_ROOT_INSTRUCTION_SECTION = `## Project-Specific Rules\n\n${ROOT_INSTRUCTION_BODY_V1}`;\n\n/** Prior shipped heading + v1 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V1_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V1}`;\n\n/** Prior shipped heading + v2 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V2_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V2}`;\n\n/** Prior shipped heading + v3 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V3_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V3}`;\n\n/** Prior shipped heading + v4 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V4_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V4}`;\n\n/** Prior shipped heading + v5 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V5_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V5}`;\n\n/** Prior shipped heading + v6 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V6_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V6}`;\n\n/** Prior shipped heading + v7 body (still stripped on import after wording change). */\nconst AGENTSMESH_CONTRACT_WITH_V7_BODY = `## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY_V7}`;\n\nexport const AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH = `${ROOT_CONTRACT_START}\n## AgentsMesh Generation Contract\n\n${ROOT_INSTRUCTION_BODY}\n${ROOT_CONTRACT_END}`;\n\nfunction normalizeWhitespace(value: string): string {\n return value.replace(/\\s+/g, ' ').trim();\n}\n\n/** All legacy paragraph forms, newest first. Each is tried for upgrade/strip. */\nconst LEGACY_FORMS = [\n AGENTSMESH_CONTRACT_WITH_V7_BODY,\n AGENTSMESH_CONTRACT_WITH_V6_BODY,\n AGENTSMESH_CONTRACT_WITH_V5_BODY,\n AGENTSMESH_CONTRACT_WITH_V4_BODY,\n AGENTSMESH_CONTRACT_WITH_V3_BODY,\n AGENTSMESH_CONTRACT_WITH_V2_BODY,\n AGENTSMESH_CONTRACT_WITH_V1_BODY,\n LEGACY_AGENTSMESH_ROOT_INSTRUCTION_SECTION,\n LEGACY_AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH,\n];\n\nexport function appendAgentsmeshRootInstructionParagraph(content: string): string {\n const trimmed = content.trim();\n if (trimmed.includes(ROOT_CONTRACT_START) && trimmed.includes(ROOT_CONTRACT_END)) {\n return replaceManagedBlock(\n trimmed,\n ROOT_CONTRACT_START,\n ROOT_CONTRACT_END,\n AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH,\n );\n }\n const norm = normalizeWhitespace(trimmed);\n if (norm.includes(normalizeWhitespace(AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH))) {\n return trimmed;\n }\n for (const legacy of LEGACY_FORMS) {\n if (norm.includes(normalizeWhitespace(legacy))) {\n return trimmed.replace(legacy, AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH);\n }\n }\n return trimmed\n ? `${trimmed}\\n\\n${AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH}`\n : AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH;\n}\n\nexport function stripAgentsmeshRootInstructionParagraph(content: string): string {\n let result = stripManagedBlock(content, ROOT_CONTRACT_START, ROOT_CONTRACT_END);\n result = result.replace(`\\n\\n${AGENTSMESH_ROOT_INSTRUCTION_PARAGRAPH}`, '');\n for (const legacy of LEGACY_FORMS) {\n result = result.replace(`\\n\\n${legacy}`, '');\n }\n return result.trim();\n}\n","import { basename } from 'node:path';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter, serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { stripAgentsmeshRootInstructionParagraph } from '../projection/root-instruction-paragraph.js';\n\nexport interface ImportedCommandMetadata {\n description?: string;\n hasDescription: boolean;\n allowedTools?: string[];\n hasAllowedTools: boolean;\n}\n\nexport function toStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value\n .filter((entry): entry is string => typeof entry === 'string')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n if (typeof value === 'string') {\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport async function readExistingFrontmatter(path: string): Promise<Record<string, unknown>> {\n const existing = await readFileSafe(path);\n if (!existing) return {};\n return parseFrontmatter(existing).frontmatter;\n}\n\nexport function readString(frontmatter: Record<string, unknown>, key: string): string | undefined {\n return typeof frontmatter[key] === 'string' ? frontmatter[key] : undefined;\n}\n\nexport function readHooks(\n frontmatter: Record<string, unknown>,\n): Record<string, unknown> | undefined {\n const hooks = frontmatter.hooks;\n return hooks && typeof hooks === 'object' && !Array.isArray(hooks)\n ? (hooks as Record<string, unknown>)\n : undefined;\n}\n\nfunction pruneUndefined(frontmatter: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(Object.entries(frontmatter).filter(([, value]) => value !== undefined));\n}\n\nfunction serializeCanonicalRuleFrontmatter(\n destinationPath: string,\n frontmatter: Record<string, unknown>,\n): Record<string, unknown> {\n const isRootRule = basename(destinationPath, '.md') === '_root';\n const rest = { ...frontmatter };\n delete (rest as Record<string, unknown>).root;\n return {\n root: isRootRule,\n ...rest,\n };\n}\n\nexport async function serializeImportedRuleWithFallback(\n destinationPath: string,\n importedFrontmatter: Record<string, unknown>,\n body: string,\n): Promise<string> {\n const existingFrontmatter = await readExistingFrontmatter(destinationPath);\n const normalizedBody =\n basename(destinationPath, '.md') === '_root'\n ? stripAgentsmeshRootInstructionParagraph(body)\n : body.trim();\n const mergedFrontmatter = serializeCanonicalRuleFrontmatter(\n destinationPath,\n pruneUndefined({ ...existingFrontmatter, ...importedFrontmatter }),\n );\n const canonicalFrontmatter: Record<string, unknown> = {\n root: mergedFrontmatter.root === true,\n description:\n typeof mergedFrontmatter.description === 'string' ? mergedFrontmatter.description : '',\n };\n if (canonicalFrontmatter.root === false) {\n canonicalFrontmatter.globs = toStringArray(mergedFrontmatter.globs);\n }\n for (const [key, value] of Object.entries(mergedFrontmatter)) {\n if (key === 'root' || key === 'description' || key === 'globs' || value === undefined) continue;\n canonicalFrontmatter[key] = value;\n }\n return serializeFrontmatter(canonicalFrontmatter, normalizedBody || '');\n}\n","import { basename, dirname } from 'node:path';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n readExistingFrontmatter,\n readHooks,\n readString,\n toStringArray,\n type ImportedCommandMetadata,\n} from './import-metadata-core.js';\n\nexport async function serializeImportedCommandWithFallback(\n destinationPath: string,\n imported: ImportedCommandMetadata,\n body: string,\n): Promise<string> {\n const existingFrontmatter = await readExistingFrontmatter(destinationPath);\n const existingAllowedTools = (() => {\n const fromCamel = toStringArray(existingFrontmatter.allowedTools);\n return fromCamel.length > 0 ? fromCamel : toStringArray(existingFrontmatter['allowed-tools']);\n })();\n const description = imported.hasDescription\n ? (imported.description ?? '')\n : typeof existingFrontmatter.description === 'string'\n ? existingFrontmatter.description\n : '';\n const allowedTools = imported.hasAllowedTools\n ? (imported.allowedTools ?? [])\n : existingAllowedTools;\n\n return serializeFrontmatter(\n {\n description,\n 'allowed-tools': allowedTools,\n },\n body.trim() || '',\n );\n}\n\nexport async function serializeImportedSkillWithFallback(\n destinationPath: string,\n importedFrontmatter: Record<string, unknown>,\n body: string,\n): Promise<string> {\n const existingFrontmatter = await readExistingFrontmatter(destinationPath);\n const derivedName = basename(dirname(destinationPath));\n const name =\n readString(importedFrontmatter, 'name') ??\n readString(existingFrontmatter, 'name') ??\n derivedName;\n const description =\n readString(importedFrontmatter, 'description') ??\n readString(existingFrontmatter, 'description') ??\n '';\n return serializeFrontmatter({ name, description }, body.trim() || '');\n}\n\nexport async function serializeImportedAgentWithFallback(\n destinationPath: string,\n importedFrontmatter: Record<string, unknown>,\n body: string,\n): Promise<string> {\n const existingFrontmatter = await readExistingFrontmatter(destinationPath);\n const tools = Object.prototype.hasOwnProperty.call(importedFrontmatter, 'tools')\n ? toStringArray(importedFrontmatter.tools)\n : (() => {\n const existingTools = toStringArray(existingFrontmatter.tools);\n return existingTools.length > 0 ? existingTools : [];\n })();\n const disallowedTools = Object.prototype.hasOwnProperty.call(\n importedFrontmatter,\n 'disallowedTools',\n )\n ? toStringArray(importedFrontmatter.disallowedTools)\n : Object.prototype.hasOwnProperty.call(importedFrontmatter, 'disallowed-tools')\n ? toStringArray(importedFrontmatter['disallowed-tools'])\n : toStringArray(existingFrontmatter.disallowedTools);\n const mcpServers = Object.prototype.hasOwnProperty.call(importedFrontmatter, 'mcpServers')\n ? toStringArray(importedFrontmatter.mcpServers)\n : Object.prototype.hasOwnProperty.call(importedFrontmatter, 'mcp-servers')\n ? toStringArray(importedFrontmatter['mcp-servers'])\n : toStringArray(existingFrontmatter.mcpServers);\n const skills = Object.prototype.hasOwnProperty.call(importedFrontmatter, 'skills')\n ? toStringArray(importedFrontmatter.skills)\n : toStringArray(existingFrontmatter.skills);\n const maxTurnsRaw =\n importedFrontmatter.maxTurns ??\n importedFrontmatter['max-turns'] ??\n existingFrontmatter.maxTurns;\n const maxTurns = typeof maxTurnsRaw === 'number' ? maxTurnsRaw : Number(maxTurnsRaw ?? 0);\n const hooks = readHooks(importedFrontmatter) ?? readHooks(existingFrontmatter);\n\n const frontmatter: Record<string, unknown> = {\n name:\n readString(importedFrontmatter, 'name') ??\n readString(existingFrontmatter, 'name') ??\n basename(destinationPath, '.md'),\n description:\n readString(importedFrontmatter, 'description') ??\n readString(existingFrontmatter, 'description') ??\n '',\n tools,\n };\n if (disallowedTools.length > 0) frontmatter.disallowedTools = disallowedTools;\n const model =\n readString(importedFrontmatter, 'model') ?? readString(existingFrontmatter, 'model');\n if (model) frontmatter.model = model;\n const permissionMode =\n readString(importedFrontmatter, 'permissionMode') ??\n readString(importedFrontmatter, 'permission-mode') ??\n readString(existingFrontmatter, 'permissionMode') ??\n readString(existingFrontmatter, 'permission-mode');\n if (permissionMode) frontmatter.permissionMode = permissionMode;\n if (Number.isInteger(maxTurns) && maxTurns > 0) frontmatter.maxTurns = maxTurns;\n if (mcpServers.length > 0) frontmatter.mcpServers = mcpServers;\n if (hooks && Object.keys(hooks).length > 0) frontmatter.hooks = hooks;\n if (skills.length > 0) frontmatter.skills = skills;\n const memory =\n readString(importedFrontmatter, 'memory') ?? readString(existingFrontmatter, 'memory');\n if (memory) frontmatter.memory = memory;\n return serializeFrontmatter(frontmatter, body.trim() || '');\n}\n","import { dirname, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readDirRecursive,\n readFileSafe,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\n\nexport interface ImportFileMapping {\n destPath: string;\n toPath: string;\n feature: string;\n content: string;\n}\n\nexport interface ImportFileEntry {\n srcPath: string;\n relativePath: string;\n content: string;\n normalizeTo: (destinationFile: string, sourceContent?: string) => string;\n}\n\nexport interface ImportFileOptions {\n srcDir: string;\n destDir: string;\n extensions: string[];\n fromTool: string;\n normalize: (content: string, sourceFile: string, destinationFile: string) => string;\n mapEntry: (\n entry: ImportFileEntry,\n ) => Promise<ImportFileMapping | null> | ImportFileMapping | null;\n}\n\nfunction matchesExtension(path: string, extensions: string[]): boolean {\n return extensions.some((extension) => path.endsWith(extension));\n}\n\nexport async function importFileDirectory(opts: ImportFileOptions): Promise<ImportResult[]> {\n const files = await readDirRecursive(opts.srcDir);\n const matchedFiles = files.filter((path) => matchesExtension(path, opts.extensions));\n const results: ImportResult[] = [];\n\n for (const srcPath of matchedFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const relativePath = relative(opts.srcDir, srcPath).replace(/\\\\/g, '/');\n\n const mapping = await opts.mapEntry({\n srcPath,\n relativePath,\n content,\n normalizeTo: (destinationFile, sourceContent = content) =>\n opts.normalize(sourceContent, srcPath, destinationFile),\n });\n if (!mapping) continue;\n\n await mkdirp(dirname(mapping.destPath));\n await writeFileAtomic(mapping.destPath, mapping.content);\n results.push({\n fromTool: opts.fromTool,\n fromPath: srcPath,\n toPath: mapping.toPath,\n feature: mapping.feature,\n });\n }\n\n return results;\n}\n","export function toGlobsArray(v: unknown): string[] {\n if (Array.isArray(v)) return v.filter((x): x is string => typeof x === 'string');\n if (typeof v === 'string') return v ? [v] : [];\n return [];\n}\n\nexport function toToolsArray(v: unknown): string[] {\n if (Array.isArray(v)) {\n return v\n .filter((x): x is string => typeof x === 'string')\n .map((s) => s.trim())\n .filter(Boolean);\n }\n if (typeof v === 'string') {\n return v\n .split(',')\n .map((s) => s.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport function toStringArray(value: unknown): string[] {\n return Array.isArray(value)\n ? value.filter((entry): entry is string => typeof entry === 'string')\n : [];\n}\n\nexport function toStringRecord(value: unknown): Record<string, string> {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return {};\n return Object.fromEntries(\n Object.entries(value).filter(\n (entry): entry is [string, string] => typeof entry[1] === 'string',\n ),\n );\n}\n","import { join } from 'node:path';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n serializeImportedAgentWithFallback,\n serializeImportedCommandWithFallback,\n serializeImportedRuleWithFallback,\n} from '../import/import-metadata.js';\nimport type { ImportFileMapping } from '../import/import-orchestrator.js';\nimport { toToolsArray } from '../import/shared-import-helpers.js';\nimport {\n CLAUDE_CANONICAL_RULES_DIR,\n CLAUDE_CANONICAL_COMMANDS_DIR,\n CLAUDE_CANONICAL_AGENTS_DIR,\n} from './constants.js';\n\nexport async function mapClaudeRuleFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n return {\n destPath,\n toPath: `${CLAUDE_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(\n destPath,\n { ...frontmatter, root: false },\n body,\n ),\n };\n}\n\nexport async function mapClaudeMarkdownFile(\n relativePath: string,\n destDir: string,\n feature: 'commands' | 'agents',\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const basePath =\n feature === 'commands' ? CLAUDE_CANONICAL_COMMANDS_DIR : CLAUDE_CANONICAL_AGENTS_DIR;\n return {\n destPath,\n toPath: `${basePath}/${relativePath}`,\n feature,\n content:\n feature === 'commands'\n ? await serializeImportedCommandWithFallback(\n destPath,\n {\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n hasDescription: Object.prototype.hasOwnProperty.call(frontmatter, 'description'),\n allowedTools: (() => {\n const fromCamel = toToolsArray(frontmatter.allowedTools);\n return fromCamel.length > 0\n ? fromCamel\n : toToolsArray(frontmatter['allowed-tools']);\n })(),\n hasAllowedTools:\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowedTools') ||\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowed-tools'),\n },\n body,\n )\n : await serializeImportedAgentWithFallback(destPath, frontmatter, body),\n };\n}\n","/**\n * Claude Code settings import helpers — MCP, permissions, and hooks processing.\n */\n\nimport { join, dirname } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { getHookCommand, getHookPrompt, hasHookText } from '../../core/hook-command.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { stringify as yamlStringify } from 'yaml';\nimport {\n CLAUDE_GLOBAL_MCP_JSON,\n CLAUDE_HOOKS_JSON,\n CLAUDE_SETTINGS,\n CLAUDE_MCP_JSON,\n CLAUDE_CANONICAL_MCP,\n CLAUDE_CANONICAL_PERMISSIONS,\n CLAUDE_CANONICAL_HOOKS,\n} from './constants.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\n\n/**\n * Convert Claude Code settings.json hooks format to canonical hooks.yaml format.\n * Claude Code: { event: [{ matcher, hooks: [{ type, command, timeout }] }] }\n * Canonical: { event: [{ matcher, command, timeout }] }\n */\nexport function claudeHooksToCanonical(hooks: Record<string, unknown>): Record<string, unknown[]> {\n const result: Record<string, unknown[]> = {};\n for (const [event, entries] of Object.entries(hooks)) {\n if (!Array.isArray(entries)) continue;\n const canonical: Array<Record<string, unknown>> = [];\n for (const entry of entries) {\n if (!entry || typeof entry !== 'object') continue;\n const e = entry as Record<string, unknown>;\n const matcher = typeof e.matcher === 'string' ? e.matcher : '';\n if (!matcher) continue;\n const hookList = Array.isArray(e.hooks) ? (e.hooks as Array<Record<string, unknown>>) : [];\n for (const hook of hookList) {\n const type = hook.type === 'prompt' ? 'prompt' : 'command';\n if (!hasHookText({ ...hook, type })) continue;\n const value =\n type === 'prompt'\n ? getHookPrompt(hook) || getHookCommand(hook)\n : getHookCommand(hook) || getHookPrompt(hook);\n const item: Record<string, unknown> = { matcher, type, command: value };\n if (typeof hook.timeout === 'number') item.timeout = hook.timeout;\n canonical.push(item);\n }\n }\n if (canonical.length > 0) result[event] = canonical;\n }\n return result;\n}\n\n/**\n * Import ~/.claude/hooks.json into canonical hooks.yaml when present.\n * @returns true when hooks were written from the standalone file\n */\nexport async function importClaudeHooksJson(\n projectRoot: string,\n results: ImportResult[],\n): Promise<boolean> {\n const hooksPath = join(projectRoot, CLAUDE_HOOKS_JSON);\n const content = await readFileSafe(hooksPath);\n if (content === null) return false;\n let parsed: unknown;\n try {\n parsed = JSON.parse(content) as unknown;\n } catch {\n return false;\n }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return false;\n const canonicalHooks = claudeHooksToCanonical(parsed as Record<string, unknown>);\n if (Object.keys(canonicalHooks).length === 0) return false;\n const hooksContent = yamlStringify(canonicalHooks);\n const destPath = join(projectRoot, CLAUDE_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, hooksContent);\n results.push({\n fromTool: 'claude-code',\n fromPath: hooksPath,\n toPath: CLAUDE_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n return true;\n}\n\nexport async function importMcpJson(\n projectRoot: string,\n results: ImportResult[],\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n const mcpPath = join(projectRoot, scope === 'global' ? CLAUDE_GLOBAL_MCP_JSON : CLAUDE_MCP_JSON);\n const content = await readFileSafe(mcpPath);\n if (content === null) return;\n\n let parsed: Record<string, unknown>;\n try {\n parsed = JSON.parse(content) as Record<string, unknown>;\n } catch {\n return;\n }\n\n if (parsed.mcpServers && typeof parsed.mcpServers === 'object') {\n const mcpContent = JSON.stringify({ mcpServers: parsed.mcpServers }, null, 2);\n const destPath = join(projectRoot, CLAUDE_CANONICAL_MCP);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, mcpContent);\n results.push({\n fromTool: 'claude-code',\n fromPath: mcpPath,\n toPath: CLAUDE_CANONICAL_MCP,\n feature: 'mcp',\n });\n }\n}\n\nexport async function importSettings(projectRoot: string, results: ImportResult[]): Promise<void> {\n const hooksFromStandaloneFile = results.some(\n (r) => r.feature === 'hooks' && r.fromPath.replace(/\\\\/g, '/').endsWith(CLAUDE_HOOKS_JSON),\n );\n const settingsPath = join(projectRoot, CLAUDE_SETTINGS);\n const content = await readFileSafe(settingsPath);\n if (!content) return;\n\n let settings: Record<string, unknown>;\n try {\n settings = JSON.parse(content) as Record<string, unknown>;\n } catch {\n return;\n }\n\n const alreadyImportedMcp = results.some((r) => r.feature === 'mcp');\n if (!alreadyImportedMcp && settings.mcpServers && typeof settings.mcpServers === 'object') {\n const mcpContent = JSON.stringify({ mcpServers: settings.mcpServers }, null, 2);\n const destPath = join(projectRoot, CLAUDE_CANONICAL_MCP);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, mcpContent);\n results.push({\n fromTool: 'claude-code',\n fromPath: settingsPath,\n toPath: CLAUDE_CANONICAL_MCP,\n feature: 'mcp',\n });\n }\n\n const rawPerms = settings.permissions;\n if (rawPerms && typeof rawPerms === 'object' && !Array.isArray(rawPerms)) {\n const perms = rawPerms as Record<string, unknown>;\n const allow = Array.isArray(perms.allow)\n ? (perms.allow as string[]).filter((s) => typeof s === 'string')\n : [];\n const deny = Array.isArray(perms.deny)\n ? (perms.deny as string[]).filter((s) => typeof s === 'string')\n : [];\n const ask = Array.isArray(perms.ask)\n ? (perms.ask as string[]).filter((s) => typeof s === 'string')\n : [];\n if (allow.length > 0 || deny.length > 0 || ask.length > 0) {\n const permContent = yamlStringify({ allow, deny, ask });\n const destPath = join(projectRoot, CLAUDE_CANONICAL_PERMISSIONS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, permContent);\n results.push({\n fromTool: 'claude-code',\n fromPath: settingsPath,\n toPath: CLAUDE_CANONICAL_PERMISSIONS,\n feature: 'permissions',\n });\n }\n }\n\n const rawHooks = settings.hooks;\n if (\n !hooksFromStandaloneFile &&\n rawHooks &&\n typeof rawHooks === 'object' &&\n !Array.isArray(rawHooks)\n ) {\n const canonicalHooks = claudeHooksToCanonical(rawHooks as Record<string, unknown>);\n if (Object.keys(canonicalHooks).length > 0) {\n const hooksContent = yamlStringify(canonicalHooks);\n const destPath = join(projectRoot, CLAUDE_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, hooksContent);\n results.push({\n fromTool: 'claude-code',\n fromPath: settingsPath,\n toPath: CLAUDE_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n }\n }\n}\n","import { basename, dirname, join, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedSkillWithFallback } from '../import/import-metadata.js';\nimport { CLAUDE_SKILLS_DIR, CLAUDE_CANONICAL_SKILLS_DIR } from './constants.js';\n\nexport async function importClaudeSkills(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const skillsBaseDir = join(projectRoot, CLAUDE_SKILLS_DIR);\n const destBase = join(projectRoot, CLAUDE_CANONICAL_SKILLS_DIR);\n\n const allFiles = await readDirRecursive(skillsBaseDir);\n const skillMdFiles = allFiles.filter((f) => f.endsWith('SKILL.md'));\n\n for (const skillMdPath of skillMdFiles) {\n const skillDir = dirname(skillMdPath);\n const skillName = basename(skillDir);\n const destSkillDir = join(destBase, skillName);\n\n const skillFiles = await readDirRecursive(skillDir);\n for (const filePath of skillFiles) {\n const fileContent = await readFileSafe(filePath);\n if (fileContent === null) continue;\n const relPath = relative(skillDir, filePath);\n const destPath = join(destSkillDir, relPath);\n await mkdirp(dirname(destPath));\n const normalized = normalize(fileContent, filePath, destPath);\n const parsed = relPath === 'SKILL.md' ? parseFrontmatter(normalized) : null;\n await writeFileAtomic(\n destPath,\n relPath === 'SKILL.md'\n ? await serializeImportedSkillWithFallback(\n destPath,\n parsed?.frontmatter ?? {},\n parsed?.body ?? '',\n )\n : normalized,\n );\n const toPath = `${CLAUDE_CANONICAL_SKILLS_DIR}/${skillName}/${relPath}`;\n results.push({\n fromTool: 'claude-code',\n fromPath: filePath,\n toPath,\n feature: 'skills',\n });\n }\n }\n}\n","/**\n * Claude Code target importer — full fidelity import into canonical .agentsmesh/.\n *\n * Sources imported:\n * .claude/CLAUDE.md → .agentsmesh/rules/_root.md\n * CLAUDE.md (legacy fallback) → .agentsmesh/rules/_root.md\n * .claude/rules/*.md → .agentsmesh/rules/*.md\n * .claude/commands/*.md → .agentsmesh/commands/*.md\n * .claude/agents/*.md → .agentsmesh/agents/*.md\n * .claude/skills/{name}/SKILL.md + supporting files → .agentsmesh/skills/{name}/\n * .claude/settings.json → .agentsmesh/mcp.json (mcpServers)\n * .agentsmesh/permissions.yaml (permissions)\n * .agentsmesh/hooks.yaml (hooks)\n * .claudeignore → .agentsmesh/ignore\n */\n\nimport { dirname, join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { mapClaudeMarkdownFile, mapClaudeRuleFile } from './importer-mappers.js';\nimport { importClaudeHooksJson, importMcpJson, importSettings } from './settings-helpers.js';\nimport {\n CLAUDE_ROOT,\n CLAUDE_LEGACY_ROOT,\n CLAUDE_RULES_DIR,\n CLAUDE_COMMANDS_DIR,\n CLAUDE_AGENTS_DIR,\n CLAUDE_IGNORE,\n CLAUDE_CANONICAL_RULES_DIR,\n CLAUDE_CANONICAL_COMMANDS_DIR,\n CLAUDE_CANONICAL_AGENTS_DIR,\n CLAUDE_CANONICAL_IGNORE,\n} from './constants.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { importClaudeSkills } from './importer-skills.js';\n\n/**\n * Import Claude Code config into canonical .agentsmesh/.\n * @param projectRoot - Project root directory\n * @returns Import results for each imported file\n */\nexport async function importFromClaudeCode(\n projectRoot: string,\n options: { scope?: TargetLayoutScope } = {},\n): Promise<ImportResult[]> {\n const scope = options.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer('claude-code', projectRoot, scope);\n\n await importRules(projectRoot, results, normalize, scope);\n await importCommands(projectRoot, results, normalize);\n await importAgents(projectRoot, results, normalize);\n await importClaudeSkills(projectRoot, results, normalize);\n await importMcpJson(projectRoot, results, scope);\n await importClaudeHooksJson(projectRoot, results);\n await importSettings(projectRoot, results);\n await importIgnore(projectRoot, results);\n\n return results;\n}\n\nasync function importRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n scope: TargetLayoutScope,\n): Promise<void> {\n const destDir = join(projectRoot, CLAUDE_CANONICAL_RULES_DIR);\n\n // Try .claude/CLAUDE.md first (preferred per official docs), then fall back to CLAUDE.md (legacy)\n const primaryClaudePath = join(projectRoot, CLAUDE_ROOT);\n const primaryContent = await readFileSafe(primaryClaudePath);\n const legacyClaudePath = join(projectRoot, CLAUDE_LEGACY_ROOT);\n const legacyContent =\n scope === 'project' && primaryContent === null ? await readFileSafe(legacyClaudePath) : null;\n const claudeContent = primaryContent ?? legacyContent;\n const claudePath = primaryContent !== null ? primaryClaudePath : legacyClaudePath;\n\n if (claudeContent !== null) {\n await mkdirp(destDir);\n const destPath = join(destDir, '_root.md');\n const { frontmatter, body } = parseFrontmatter(normalize(claudeContent, claudePath, destPath));\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'claude-code',\n fromPath: claudePath,\n toPath: `${CLAUDE_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n\n const rulesDir = join(projectRoot, CLAUDE_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: rulesDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'claude-code',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapClaudeRuleFile(relativePath, destDir, normalizeTo),\n })),\n );\n}\n\nasync function importCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const destDir = join(projectRoot, CLAUDE_CANONICAL_COMMANDS_DIR);\n const commandsDir = join(projectRoot, CLAUDE_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: commandsDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'claude-code',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapClaudeMarkdownFile(relativePath, destDir, 'commands', normalizeTo),\n })),\n );\n}\n\nasync function importAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const destDir = join(projectRoot, CLAUDE_CANONICAL_AGENTS_DIR);\n const agentsDir = join(projectRoot, CLAUDE_AGENTS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: agentsDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'claude-code',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapClaudeMarkdownFile(relativePath, destDir, 'agents', normalizeTo),\n })),\n );\n}\n\nasync function importIgnore(projectRoot: string, results: ImportResult[]): Promise<void> {\n const ignorePath = join(projectRoot, CLAUDE_IGNORE);\n const content = await readFileSafe(ignorePath);\n if (content === null) return;\n const destPath = join(projectRoot, CLAUDE_CANONICAL_IGNORE);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, content);\n results.push({\n fromTool: 'claude-code',\n fromPath: ignorePath,\n toPath: CLAUDE_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n}\n","// Glob pattern matching\n\n/**\n * Expand {a,b} into alternatives and test filepath against each.\n * @param filepath - Path to test\n * @param pattern - Glob pattern (minimatch-compatible)\n * @returns true if filepath matches any alternative\n */\nexport function globMatch(filepath: string, pattern: string): boolean {\n const alternatives = expandBraces(pattern);\n return alternatives.some((p) => matchOne(filepath, p));\n}\n\n/**\n * Filter files by glob pattern.\n * @param files - Array of file paths\n * @param pattern - Glob pattern\n * @returns Files matching the pattern\n */\nexport function globFilter(files: string[], pattern: string): string[] {\n return files.filter((f) => globMatch(f, pattern));\n}\n\nfunction expandBraces(pattern: string): string[] {\n const match = pattern.match(/^(.+)\\{([^}]+)\\}(.*)$/);\n if (!match) return [pattern];\n const [, pre, inner, post] = match;\n if (!inner) return [pattern];\n const opts = inner.split(',').map((s) => s.trim());\n const result: string[] = [];\n for (const opt of opts) {\n for (const rest of expandBraces(pre + opt + post)) {\n result.push(rest);\n }\n }\n return result;\n}\n\nfunction matchOne(filepath: string, pattern: string): boolean {\n const re = globToRegex(pattern);\n return re.test(filepath);\n}\n\nfunction globToRegex(pattern: string): RegExp {\n const parts: string[] = [];\n let i = 0;\n while (i < pattern.length) {\n if (pattern.startsWith('**', i)) {\n const rest = pattern.slice(i + 2);\n const alone = rest.length === 0 && parts.length === 0;\n if (alone) {\n parts.push('.*');\n } else {\n // ** matches 0+ path segments. Use (?:[^/]+/)* = \"seg/\" repeated (no leading /), then skip\n // the trailing / from pattern so we don't double it (src/ + seg/ + filename)\n parts.push(rest.startsWith('/') ? '(?:[^/]+/)*' : '(?:/[^/]+)*?');\n if (rest.startsWith('/')) {\n i += 3; // skip ** and the /\n continue;\n }\n }\n i += 2;\n continue;\n }\n if (pattern[i] === '*') {\n parts.push('[^/]*');\n i += 1;\n continue;\n }\n if (pattern[i] === '?') {\n parts.push('[^/]');\n i += 1;\n continue;\n }\n if (pattern[i] === '{') {\n parts.push('(?:');\n i += 1;\n continue;\n }\n if (pattern[i] === '}') {\n parts.push(')');\n i += 1;\n continue;\n }\n if (pattern[i] === ',') {\n parts.push('|');\n i += 1;\n continue;\n }\n const special = '.^$+?()[]{}|\\\\';\n if (special.includes(pattern[i]!)) {\n parts.push('\\\\' + pattern[i]);\n } else {\n parts.push(pattern[i]!);\n }\n i += 1;\n }\n const reStr = '^' + parts.join('') + '$';\n return new RegExp(reStr);\n}\n","/**\n * Shared rules validation for lint. Used by target linters.\n */\n\nimport { relative } from 'node:path';\nimport type { CanonicalFiles, LintDiagnostic } from '../types.js';\nimport { globFilter } from '../../utils/text/glob.js';\n\n/**\n * Validate rules and produce diagnostics (without target; caller adds target).\n * @param canonical - Loaded canonical files\n * @param projectRoot - Project root for relative paths\n * @param projectFiles - Relative file paths in project (for glob matching)\n * @returns Diagnostics for rules validation\n */\nexport function validateRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options: { checkGlobMatches?: boolean } = {},\n): Omit<LintDiagnostic, 'target'>[] {\n const diags: Omit<LintDiagnostic, 'target'>[] = [];\n const { rules } = canonical;\n\n if (rules.length === 0) return [];\n\n const hasRoot = rules.some((r) => r.root);\n if (!hasRoot) {\n diags.push({\n level: 'error',\n file: relative(projectRoot, rules[0]!.source),\n message: 'Rules exist but no root rule (_root.md or root: true). Add a root rule.',\n });\n }\n\n if (options.checkGlobMatches === false) {\n return diags;\n }\n\n for (const rule of rules) {\n if (rule.globs.length === 0) continue;\n let anyMatch = false;\n for (const glob of rule.globs) {\n const matches = globFilter(projectFiles, glob);\n if (matches.length > 0) {\n anyMatch = true;\n break;\n }\n }\n if (!anyMatch) {\n diags.push({\n level: 'warning',\n file: relative(projectRoot, rule.source),\n message: `globs \"${rule.globs.join(', ')}\" match 0 files in project`,\n });\n }\n }\n\n return diags;\n}\n","/**\n * Claude Code target linter — validates canonical files for Claude Code.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { CLAUDE_CODE_TARGET } from './constants.js';\n\n/**\n * Lint rules for Claude Code target.\n * @param canonical - Loaded canonical files\n * @param _projectRoot - Project root (for relative paths)\n * @param projectFiles - Relative file paths for glob matching\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n _projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n const diags = validateRules(canonical, _projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n });\n return diags.map((d) => ({ ...d, target: CLAUDE_CODE_TARGET }));\n}\n","import type { CanonicalCommand } from '../../core/types.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\n\nexport const CODEX_COMMAND_SKILL_PREFIX = 'am-command-';\nexport const LEGACY_CODEX_COMMAND_SKILL_PREFIX = 'ab-command-';\n\ninterface ParsedCommandSkill {\n name: string;\n description: string;\n allowedTools: string[];\n}\n\nfunction toStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.filter((entry): entry is string => typeof entry === 'string' && entry.length > 0);\n }\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport function commandSkillDirName(name: string): string {\n return `${CODEX_COMMAND_SKILL_PREFIX}${name}`;\n}\n\nexport function serializeCommandSkill(command: CanonicalCommand): string {\n const frontmatter: Record<string, unknown> = {\n name: commandSkillDirName(command.name),\n description: command.description || undefined,\n 'x-agentsmesh-kind': 'command',\n 'x-agentsmesh-name': command.name,\n 'x-agentsmesh-allowed-tools':\n command.allowedTools.length > 0 ? command.allowedTools : undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n if (frontmatter['x-agentsmesh-allowed-tools'] === undefined) {\n delete frontmatter['x-agentsmesh-allowed-tools'];\n }\n return serializeFrontmatter(frontmatter, command.body.trim() || '');\n}\n\nexport function parseCommandSkillFrontmatter(\n frontmatter: Record<string, unknown>,\n dirName: string,\n): ParsedCommandSkill | null {\n if (frontmatter['x-agentsmesh-kind'] !== 'command') return null;\n\n const metadataName =\n typeof frontmatter['x-agentsmesh-name'] === 'string' ? frontmatter['x-agentsmesh-name'] : '';\n const derivedName = dirName.startsWith(CODEX_COMMAND_SKILL_PREFIX)\n ? dirName.slice(CODEX_COMMAND_SKILL_PREFIX.length)\n : dirName.startsWith(LEGACY_CODEX_COMMAND_SKILL_PREFIX)\n ? dirName.slice(LEGACY_CODEX_COMMAND_SKILL_PREFIX.length)\n : '';\n const name = (metadataName || derivedName).trim();\n if (!name) return null;\n\n return {\n name,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n allowedTools: toStringArray(frontmatter['x-agentsmesh-allowed-tools']),\n };\n}\n\nexport function serializeImportedCommand(command: ParsedCommandSkill, body: string): string {\n return serializeFrontmatter(\n {\n description: command.description,\n 'allowed-tools': command.allowedTools,\n },\n body.trim() || '',\n );\n}\n","import type { CanonicalAgent, Hooks } from '../../core/types.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\n\nexport const PROJECTED_AGENT_SKILL_PREFIX = 'am-agent-';\nexport const LEGACY_PROJECTED_AGENT_SKILL_PREFIX = 'ab-agent-';\n\ninterface ParsedProjectedAgent {\n name: string;\n description: string;\n tools: string[];\n disallowedTools: string[];\n model: string;\n permissionMode: string;\n maxTurns: number;\n mcpServers: string[];\n hooks: Hooks;\n skills: string[];\n memory: string;\n}\n\nfunction toStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.filter((entry): entry is string => typeof entry === 'string' && entry.length > 0);\n }\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nfunction toHooks(value: unknown): Hooks {\n if (!value || typeof value !== 'object' || Array.isArray(value)) return {};\n const hooks: Hooks = {};\n for (const [event, entries] of Object.entries(value)) {\n if (!Array.isArray(entries)) continue;\n hooks[event] = entries.filter(\n (entry): entry is NonNullable<Hooks[string]>[number] =>\n entry !== null &&\n typeof entry === 'object' &&\n typeof (entry as Record<string, unknown>).matcher === 'string' &&\n typeof (entry as Record<string, unknown>).command === 'string',\n );\n }\n return hooks;\n}\n\nexport function projectedAgentSkillDirName(name: string): string {\n return `${PROJECTED_AGENT_SKILL_PREFIX}${name}`;\n}\n\nexport function serializeProjectedAgentSkill(agent: CanonicalAgent): string {\n const frontmatter: Record<string, unknown> = {\n name: projectedAgentSkillDirName(agent.name),\n description: agent.description || undefined,\n 'x-agentsmesh-kind': 'agent',\n 'x-agentsmesh-name': agent.name,\n 'x-agentsmesh-tools': agent.tools.length > 0 ? agent.tools : undefined,\n 'x-agentsmesh-disallowed-tools':\n agent.disallowedTools.length > 0 ? agent.disallowedTools : undefined,\n 'x-agentsmesh-model': agent.model || undefined,\n 'x-agentsmesh-permission-mode': agent.permissionMode || undefined,\n 'x-agentsmesh-max-turns': agent.maxTurns > 0 ? agent.maxTurns : undefined,\n 'x-agentsmesh-mcp-servers': agent.mcpServers.length > 0 ? agent.mcpServers : undefined,\n 'x-agentsmesh-hooks': Object.keys(agent.hooks).length > 0 ? agent.hooks : undefined,\n 'x-agentsmesh-skills': agent.skills.length > 0 ? agent.skills : undefined,\n 'x-agentsmesh-memory': agent.memory || undefined,\n };\n Object.keys(frontmatter).forEach((key) => {\n if (frontmatter[key] === undefined) delete frontmatter[key];\n });\n return serializeFrontmatter(frontmatter, agent.body.trim() || '');\n}\n\nexport function parseProjectedAgentSkillFrontmatter(\n frontmatter: Record<string, unknown>,\n dirName: string,\n): ParsedProjectedAgent | null {\n if (frontmatter['x-agentsmesh-kind'] !== 'agent') return null;\n\n const metadataName =\n typeof frontmatter['x-agentsmesh-name'] === 'string' ? frontmatter['x-agentsmesh-name'] : '';\n const derivedName = dirName.startsWith(PROJECTED_AGENT_SKILL_PREFIX)\n ? dirName.slice(PROJECTED_AGENT_SKILL_PREFIX.length)\n : dirName.startsWith(LEGACY_PROJECTED_AGENT_SKILL_PREFIX)\n ? dirName.slice(LEGACY_PROJECTED_AGENT_SKILL_PREFIX.length)\n : '';\n const name = (metadataName || derivedName).trim();\n if (!name) return null;\n\n return {\n name,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n tools: toStringArray(frontmatter['x-agentsmesh-tools']),\n disallowedTools: toStringArray(frontmatter['x-agentsmesh-disallowed-tools']),\n model:\n typeof frontmatter['x-agentsmesh-model'] === 'string'\n ? frontmatter['x-agentsmesh-model']\n : '',\n permissionMode:\n typeof frontmatter['x-agentsmesh-permission-mode'] === 'string'\n ? frontmatter['x-agentsmesh-permission-mode']\n : '',\n maxTurns:\n typeof frontmatter['x-agentsmesh-max-turns'] === 'number'\n ? frontmatter['x-agentsmesh-max-turns']\n : Number(frontmatter['x-agentsmesh-max-turns'] ?? 0),\n mcpServers: toStringArray(frontmatter['x-agentsmesh-mcp-servers']),\n hooks: toHooks(frontmatter['x-agentsmesh-hooks']),\n skills: toStringArray(frontmatter['x-agentsmesh-skills']),\n memory:\n typeof frontmatter['x-agentsmesh-memory'] === 'string'\n ? frontmatter['x-agentsmesh-memory']\n : '',\n };\n}\n\nexport function serializeImportedAgent(agent: ParsedProjectedAgent, body: string): string {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n description: agent.description,\n tools: agent.tools,\n disallowedTools: agent.disallowedTools.length > 0 ? agent.disallowedTools : undefined,\n model: agent.model || undefined,\n permissionMode: agent.permissionMode || undefined,\n maxTurns: agent.maxTurns > 0 ? agent.maxTurns : undefined,\n mcpServers: agent.mcpServers.length > 0 ? agent.mcpServers : undefined,\n hooks: Object.keys(agent.hooks).length > 0 ? agent.hooks : undefined,\n skills: agent.skills.length > 0 ? agent.skills : undefined,\n memory: agent.memory || undefined,\n };\n Object.keys(frontmatter).forEach((key) => {\n if (frontmatter[key] === undefined) delete frontmatter[key];\n });\n return serializeFrontmatter(frontmatter, body.trim() || '');\n}\n","import { basename, dirname, join, relative } from 'node:path';\nimport { readDirRecursive } from '../../utils/filesystem/fs.js';\nimport {\n CODEX_COMMAND_SKILL_PREFIX,\n LEGACY_CODEX_COMMAND_SKILL_PREFIX,\n} from '../../targets/codex-cli/command-skill.js';\nimport {\n PROJECTED_AGENT_SKILL_PREFIX,\n LEGACY_PROJECTED_AGENT_SKILL_PREFIX,\n} from '../../targets/projection/projected-agent-skill.js';\n\nconst AB_RULES = '.agentsmesh/rules';\nconst AB_COMMANDS = '.agentsmesh/commands';\nconst AB_AGENTS = '.agentsmesh/agents';\nconst AB_SKILLS = '.agentsmesh/skills';\n\nexport function rel(projectRoot: string, absPath: string): string {\n return relative(projectRoot, absPath).replace(/\\\\/g, '/');\n}\n\nexport async function listFiles(projectRoot: string, dir: string): Promise<string[]> {\n return readDirRecursive(join(projectRoot, dir)).catch(() => []);\n}\n\nexport function addDirectoryMapping(refs: Map<string, string>, from: string, to: string): void {\n refs.set(from, to);\n refs.set(`${from}/`, `${to}/`);\n}\n\nfunction addAncestorMappings(\n refs: Map<string, string>,\n fromPath: string,\n toPath: string,\n stopDir: string,\n): void {\n let fromDir = dirname(fromPath);\n let toDir = dirname(toPath);\n while (fromDir !== stopDir && fromDir !== '.') {\n addDirectoryMapping(refs, fromDir, toDir);\n fromDir = dirname(fromDir);\n toDir = dirname(toDir);\n }\n}\n\nexport function addSimpleFileMapping(\n refs: Map<string, string>,\n fromPath: string,\n canonicalDir: string,\n extension: string,\n): void {\n refs.set(fromPath, `${canonicalDir}/${basename(fromPath, extension)}.md`);\n}\n\nexport function addSkillLikeMapping(\n refs: Map<string, string>,\n relPath: string,\n skillsDir: string,\n): void {\n if (!relPath.startsWith(`${skillsDir}/`)) return;\n const rest = relPath.slice(skillsDir.length + 1);\n if (!rest) return;\n\n if (!rest.includes('/')) {\n if (!rest.endsWith('.md') || basename(rest) === 'SKILL.md') return;\n const name = basename(rest, '.md');\n refs.set(relPath, `${AB_SKILLS}/${name}/SKILL.md`);\n return;\n }\n\n const [dirName, ...tail] = rest.split('/');\n const filePath = tail.join('/');\n if (!dirName || !filePath) return;\n\n const commandPrefix = dirName.startsWith(CODEX_COMMAND_SKILL_PREFIX)\n ? CODEX_COMMAND_SKILL_PREFIX\n : dirName.startsWith(LEGACY_CODEX_COMMAND_SKILL_PREFIX)\n ? LEGACY_CODEX_COMMAND_SKILL_PREFIX\n : null;\n if (commandPrefix && filePath === 'SKILL.md') {\n refs.set(relPath, `${AB_COMMANDS}/${dirName.slice(commandPrefix.length)}.md`);\n return;\n }\n const agentPrefix = dirName.startsWith(PROJECTED_AGENT_SKILL_PREFIX)\n ? PROJECTED_AGENT_SKILL_PREFIX\n : dirName.startsWith(LEGACY_PROJECTED_AGENT_SKILL_PREFIX)\n ? LEGACY_PROJECTED_AGENT_SKILL_PREFIX\n : null;\n if (agentPrefix && filePath === 'SKILL.md') {\n refs.set(relPath, `${AB_AGENTS}/${dirName.slice(agentPrefix.length)}.md`);\n return;\n }\n\n const canonicalBase = `${AB_SKILLS}/${dirName}`;\n if (filePath === 'SKILL.md') addDirectoryMapping(refs, `${skillsDir}/${dirName}`, canonicalBase);\n const canonicalPath = `${canonicalBase}/${filePath}`;\n refs.set(relPath, canonicalPath);\n if (filePath !== 'SKILL.md') {\n addAncestorMappings(refs, relPath, canonicalPath, `${skillsDir}/${dirName}`);\n }\n}\n\n/** Paths that are target root artifacts, not scoped rules. Must not overwrite explicit mappings. */\nconst SCOPED_AGENTS_SKIP_DIRS = new Set([\n '.agents',\n '.claude',\n '.clinerules',\n '.cline',\n '.codex',\n '.continue',\n '.cursor',\n '.gemini',\n '.github',\n '.junie',\n '.windsurf',\n '.roo',\n]);\n\nexport async function addScopedAgentsMappings(\n refs: Map<string, string>,\n projectRoot: string,\n): Promise<void> {\n const files = await listFiles(projectRoot, '.');\n for (const absPath of files) {\n const relPath = rel(projectRoot, absPath);\n const isNestedAgents =\n relPath.endsWith('/AGENTS.md') &&\n relPath !== 'AGENTS.md' &&\n !relPath.endsWith('/AGENTS.override.md');\n const isNestedOverride =\n relPath.endsWith('/AGENTS.override.md') && relPath !== 'AGENTS.override.md';\n if (!isNestedAgents && !isNestedOverride) continue;\n const parentDir = dirname(relPath);\n if (SCOPED_AGENTS_SKIP_DIRS.has(parentDir)) continue;\n const ruleName = parentDir.replace(/\\//g, '-');\n refs.set(relPath, `${AB_RULES}/${ruleName}.md`);\n }\n}\n","export const ANTIGRAVITY_TARGET = 'antigravity';\n\nexport const ANTIGRAVITY_DIR = '.agents';\nexport const ANTIGRAVITY_RULES_DIR = `${ANTIGRAVITY_DIR}/rules`;\n/** Generated main workspace instructions (canonical root remains `.agentsmesh/rules/_root.md`). */\nexport const ANTIGRAVITY_RULES_ROOT = `${ANTIGRAVITY_RULES_DIR}/general.md`;\nexport const ANTIGRAVITY_RULES_ROOT_LEGACY = `${ANTIGRAVITY_RULES_DIR}/_root.md`;\nexport const ANTIGRAVITY_SKILLS_DIR = `${ANTIGRAVITY_DIR}/skills`;\nexport const ANTIGRAVITY_WORKFLOWS_DIR = `${ANTIGRAVITY_DIR}/workflows`;\nexport const ANTIGRAVITY_MCP_CONFIG = `${ANTIGRAVITY_DIR}/antigravity/mcp_config.json`;\n\nexport const ANTIGRAVITY_GLOBAL_ROOT = '.gemini/antigravity/GEMINI.md';\nexport const ANTIGRAVITY_GLOBAL_SKILLS_DIR = '.gemini/antigravity/skills';\nexport const ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR = '.gemini/antigravity/workflows';\nexport const ANTIGRAVITY_GLOBAL_MCP_CONFIG = '.gemini/antigravity/mcp_config.json';\n\nexport const ANTIGRAVITY_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';\nexport const ANTIGRAVITY_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const ANTIGRAVITY_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const ANTIGRAVITY_CANONICAL_MCP = '.agentsmesh/mcp.json';\n","/** Canonical path prefixes used by all target import-path builders. */\nexport const AB_RULES = '.agentsmesh/rules';\nexport const AB_COMMANDS = '.agentsmesh/commands';\nexport const AB_AGENTS = '.agentsmesh/agents';\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport {\n ANTIGRAVITY_RULES_ROOT,\n ANTIGRAVITY_RULES_ROOT_LEGACY,\n ANTIGRAVITY_RULES_DIR,\n ANTIGRAVITY_WORKFLOWS_DIR,\n ANTIGRAVITY_SKILLS_DIR,\n ANTIGRAVITY_GLOBAL_ROOT,\n ANTIGRAVITY_GLOBAL_SKILLS_DIR,\n ANTIGRAVITY_GLOBAL_MCP_CONFIG,\n} from '../../../targets/antigravity/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildAntigravityImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n if (scope === 'global') {\n refs.set(ANTIGRAVITY_GLOBAL_ROOT, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, ANTIGRAVITY_GLOBAL_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), ANTIGRAVITY_GLOBAL_SKILLS_DIR);\n }\n refs.set(ANTIGRAVITY_GLOBAL_MCP_CONFIG, '.agentsmesh/mcp.json');\n return;\n }\n\n refs.set(ANTIGRAVITY_RULES_ROOT, `${AB_RULES}/_root.md`);\n refs.set(ANTIGRAVITY_RULES_ROOT_LEGACY, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, ANTIGRAVITY_RULES_DIR)) {\n const relPath = rel(projectRoot, absPath);\n if (relPath === ANTIGRAVITY_RULES_ROOT || relPath === ANTIGRAVITY_RULES_ROOT_LEGACY) continue;\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, ANTIGRAVITY_WORKFLOWS_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, ANTIGRAVITY_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), ANTIGRAVITY_SKILLS_DIR);\n }\n}\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport {\n CLAUDE_CANONICAL_HOOKS,\n CLAUDE_HOOKS_JSON,\n} from '../../../targets/claude-code/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_AGENTS, AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildClaudeCodeImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n refs.set('.claude/CLAUDE.md', `${AB_RULES}/_root.md`);\n refs.set(CLAUDE_HOOKS_JSON, CLAUDE_CANONICAL_HOOKS);\n if (scope === 'project') {\n refs.set('CLAUDE.md', `${AB_RULES}/_root.md`);\n }\n if (scope === 'global') {\n for (const absPath of await listFiles(projectRoot, '.agents/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.agents/skills');\n }\n }\n for (const absPath of await listFiles(projectRoot, '.claude/rules')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.claude/commands')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.claude/agents')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.claude/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.claude/skills');\n }\n}\n","/**\n * Cline target constants.\n * Cline uses .clinerules (rules), .clineignore, .cline/cline_mcp_settings.json, .cline/skills (skills).\n */\n\nexport const CLINE_TARGET = 'cline';\n\n/** Rules directory (all rules as .md) */\nexport const CLINE_RULES_DIR = '.clinerules';\n\n/** Ignore file path */\nexport const CLINE_IGNORE = '.clineignore';\n\n/** MCP settings (Cline-specific path) */\nexport const CLINE_MCP_SETTINGS = '.cline/cline_mcp_settings.json';\nexport const CLINE_MCP_SETTINGS_LEGACY = '.cline/mcp_settings.json';\n\n/** Skills directory prefix */\nexport const CLINE_SKILLS_DIR = '.cline/skills';\n\n/** Workflows directory (.clinerules/workflows/*.md → canonical commands) */\nexport const CLINE_WORKFLOWS_DIR = '.clinerules/workflows';\n\n/** Root compatibility file (Cline cross-tool; same content as root rule) */\nexport const CLINE_AGENTS_MD = 'AGENTS.md';\n\n/** Hooks directory (.clinerules/hooks/*.sh → canonical hooks) */\nexport const CLINE_HOOKS_DIR = '.clinerules/hooks';\n\n/** Global rules directory: ~/Documents/Cline/Rules/ */\nexport const CLINE_GLOBAL_RULES_DIR = 'Documents/Cline/Rules';\n/** Global workflows directory: ~/Documents/Cline/Workflows/ */\nexport const CLINE_GLOBAL_WORKFLOWS_DIR = 'Documents/Cline/Workflows';\n/** Global hooks directory: ~/Documents/Cline/Hooks/ */\nexport const CLINE_GLOBAL_HOOKS_DIR = 'Documents/Cline/Hooks';\n\nexport const CLINE_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const CLINE_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const CLINE_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const CLINE_CANONICAL_IGNORE = '.agentsmesh/ignore';\nexport const CLINE_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const CLINE_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const CLINE_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\n","import { basename } from 'node:path';\nimport { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport {\n CLINE_GLOBAL_RULES_DIR,\n CLINE_GLOBAL_WORKFLOWS_DIR,\n CLINE_SKILLS_DIR,\n CLINE_MCP_SETTINGS,\n} from '../../../targets/cline/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildClineImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n if (scope === 'global') {\n for (const absPath of await listFiles(projectRoot, CLINE_GLOBAL_RULES_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, CLINE_GLOBAL_WORKFLOWS_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, CLINE_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), CLINE_SKILLS_DIR);\n }\n refs.set(CLINE_MCP_SETTINGS, '.agentsmesh/mcp.json');\n return;\n }\n\n refs.set('.clinerules/_root.md', `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, '.clinerules')) {\n const relPath = rel(projectRoot, absPath);\n if (\n !relPath.endsWith('.md') ||\n relPath.includes('/workflows/') ||\n basename(relPath) === '_root.md'\n ) {\n continue;\n }\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.clinerules/workflows')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.cline/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.cline/skills');\n }\n}\n","import {\n addScopedAgentsMappings,\n addSimpleFileMapping,\n addSkillLikeMapping,\n listFiles,\n rel,\n} from '../import-map-shared.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_AGENTS, AB_RULES } from './constants.js';\n\nexport async function buildCodexCliImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n if (scope === 'global') {\n refs.set('.codex/AGENTS.md', `${AB_RULES}/_root.md`);\n refs.set('.codex/AGENTS.override.md', `${AB_RULES}/_root.md`);\n } else {\n refs.set('AGENTS.md', `${AB_RULES}/_root.md`);\n refs.set('codex.md', `${AB_RULES}/_root.md`);\n await addScopedAgentsMappings(refs, projectRoot);\n }\n if (scope === 'project') {\n for (const absPath of await listFiles(projectRoot, '.codex/instructions')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n }\n for (const absPath of await listFiles(projectRoot, '.codex/rules')) {\n const relPath = rel(projectRoot, absPath);\n if (relPath.endsWith('.rules')) {\n addSimpleFileMapping(refs, relPath, AB_RULES, '.rules');\n } else if (relPath.endsWith('.md')) {\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n }\n for (const absPath of await listFiles(projectRoot, '.codex/agents')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.toml');\n }\n for (const absPath of await listFiles(projectRoot, '.agents/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.agents/skills');\n }\n}\n","import { basename } from 'node:path';\nimport { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport { AB_AGENTS, AB_COMMANDS, AB_RULES } from './constants.js';\n\nfunction addCopilotInstructionMapping(refs: Map<string, string>, fromPath: string): void {\n if (fromPath.endsWith('.instructions.md')) {\n refs.set(fromPath, `${AB_RULES}/${basename(fromPath, '.instructions.md')}.md`);\n return;\n }\n addSimpleFileMapping(refs, fromPath, AB_RULES, '.md');\n}\n\nexport async function buildCopilotImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n): Promise<void> {\n refs.set('.github/copilot-instructions.md', `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, '.github/copilot')) {\n refs.set(rel(projectRoot, absPath), `${AB_RULES}/${basename(absPath, '.instructions.md')}.md`);\n }\n for (const absPath of await listFiles(projectRoot, '.github/instructions')) {\n addCopilotInstructionMapping(refs, rel(projectRoot, absPath));\n }\n for (const absPath of await listFiles(projectRoot, '.github/prompts')) {\n refs.set(rel(projectRoot, absPath), `${AB_COMMANDS}/${basename(absPath, '.prompt.md')}.md`);\n }\n for (const absPath of await listFiles(projectRoot, '.github/agents')) {\n refs.set(rel(projectRoot, absPath), `${AB_AGENTS}/${basename(absPath, '.agent.md')}.md`);\n }\n for (const absPath of await listFiles(projectRoot, '.github/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.github/skills');\n }\n}\n","export const CONTINUE_TARGET = 'continue';\n\nexport const CONTINUE_RULES_DIR = '.continue/rules';\nexport const CONTINUE_PROMPTS_DIR = '.continue/prompts';\nexport const CONTINUE_MCP_DIR = '.continue/mcpServers';\nexport const CONTINUE_MCP_FILE = `${CONTINUE_MCP_DIR}/agentsmesh.json`;\n/** Generated main rule file (canonical root remains `.agentsmesh/rules/_root.md`). */\nexport const CONTINUE_ROOT_RULE = `${CONTINUE_RULES_DIR}/general.md`;\nexport const CONTINUE_ROOT_RULE_LEGACY = `${CONTINUE_RULES_DIR}/_root.md`;\nexport const CONTINUE_SKILLS_DIR = '.continue/skills';\n\nexport const CONTINUE_GLOBAL_AGENTS_MD = '.continue/AGENTS.md';\nexport const CONTINUE_GLOBAL_CONFIG = '.continue/config.yaml';\n\nexport const CONTINUE_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const CONTINUE_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const CONTINUE_CANONICAL_MCP = '.agentsmesh/mcp.json';\n","import { basename } from 'node:path';\nimport { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport {\n CONTINUE_ROOT_RULE,\n CONTINUE_ROOT_RULE_LEGACY,\n} from '../../../targets/continue/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildContinueImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n refs.set(CONTINUE_ROOT_RULE, `${AB_RULES}/_root.md`);\n refs.set(CONTINUE_ROOT_RULE_LEGACY, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, '.continue/rules')) {\n const relPath = rel(projectRoot, absPath);\n if (relPath === CONTINUE_ROOT_RULE || relPath === CONTINUE_ROOT_RULE_LEGACY) continue;\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.continue/prompts')) {\n refs.set(rel(projectRoot, absPath), `${AB_COMMANDS}/${basename(absPath, '.md')}.md`);\n }\n for (const absPath of await listFiles(projectRoot, '.continue/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.continue/skills');\n }\n if (scope === 'global') {\n for (const absPath of await listFiles(projectRoot, '.agents/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.agents/skills');\n }\n }\n}\n","// Cursor target constants\n\nexport const CURSOR_TARGET = 'cursor';\n\nexport const CURSOR_COMPAT_AGENTS = 'AGENTS.md';\nexport const CURSOR_LEGACY_RULES = '.cursorrules';\nexport const CURSOR_RULES_DIR = '.cursor/rules';\nexport const CURSOR_GENERAL_RULE = `${CURSOR_RULES_DIR}/general.mdc`;\nexport const CURSOR_COMMANDS_DIR = '.cursor/commands';\nexport const CURSOR_AGENTS_DIR = '.cursor/agents';\nexport const CURSOR_SKILLS_DIR = '.cursor/skills';\nexport const CURSOR_MCP = '.cursor/mcp.json';\nexport const CURSOR_HOOKS = '.cursor/hooks.json';\nexport const CURSOR_SETTINGS = '.cursor/settings.json';\nexport const CURSOR_IGNORE = '.cursorignore';\nexport const CURSOR_INDEXING_IGNORE = '.cursorindexingignore';\n\n/** Legacy global merged rules path (import still reads this when present). */\nexport const CURSOR_GLOBAL_EXPORT_DIR = '.agentsmesh-exports/cursor';\nexport const CURSOR_GLOBAL_USER_RULES = `${CURSOR_GLOBAL_EXPORT_DIR}/user-rules.md`;\n/** Cross-tool aggregate under `~/.cursor/` (see docs/agent-structures/cursor-global-level-generation-strategy.md). */\nexport const CURSOR_DOT_CURSOR_AGENTS = '.cursor/AGENTS.md';\n/** Global Cursor uses the same paths as project mode under `$HOME` for tooling Cursor loads from `~/.cursor/`. */\nexport const CURSOR_GLOBAL_MCP_EXPORT = CURSOR_MCP;\nexport const CURSOR_GLOBAL_SKILLS_DIR = CURSOR_SKILLS_DIR;\nexport const CURSOR_GLOBAL_AGENTS_DIR = CURSOR_AGENTS_DIR;\n\nexport const CURSOR_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const CURSOR_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const CURSOR_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const CURSOR_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\nexport const CURSOR_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const CURSOR_CANONICAL_PERMISSIONS = '.agentsmesh/permissions.yaml';\nexport const CURSOR_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const CURSOR_CANONICAL_IGNORE = '.agentsmesh/ignore';\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport { CURSOR_MCP } from '../../../targets/cursor/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_AGENTS, AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildCursorImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n if (scope === 'global') {\n refs.set(CURSOR_MCP, '.agentsmesh/mcp.json');\n refs.set('.cursor/AGENTS.md', `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, '.cursor/rules')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.mdc');\n }\n for (const absPath of await listFiles(projectRoot, '.cursor/commands')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.cursor/agents')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.cursor/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.cursor/skills');\n }\n return;\n }\n refs.set('AGENTS.md', `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, '.cursor/rules')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.mdc');\n }\n for (const absPath of await listFiles(projectRoot, '.cursor/commands')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.cursor/agents')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.cursor/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.cursor/skills');\n }\n}\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport { AB_AGENTS, AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildGeminiCliImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n): Promise<void> {\n for (const absPath of await listFiles(projectRoot, '.gemini/rules')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.gemini/commands')) {\n const relPath = rel(projectRoot, absPath);\n if (!relPath.endsWith('.toml') && !relPath.endsWith('.md')) continue;\n\n const noExt = relPath.replace(/\\.(toml|md)$/i, '');\n const commandsPrefix = '.gemini/commands/';\n const relativeNoExt = noExt.startsWith(commandsPrefix)\n ? noExt.slice(commandsPrefix.length)\n : noExt;\n const segments = relativeNoExt.split('/').filter(Boolean);\n const canonicalName = segments.join(':');\n refs.set(relPath, `${AB_COMMANDS}/${canonicalName}.md`);\n }\n for (const absPath of await listFiles(projectRoot, '.gemini/agents')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.gemini/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.gemini/skills');\n }\n}\n","export const JUNIE_TARGET = 'junie';\n\n// Project-level paths\nexport const JUNIE_DIR = '.junie';\nexport const JUNIE_GUIDELINES = `${JUNIE_DIR}/guidelines.md`;\nexport const JUNIE_CI_GUIDELINES = `${JUNIE_DIR}/ci-guidelines.md`;\nexport const JUNIE_DOT_AGENTS = `${JUNIE_DIR}/AGENTS.md`;\nexport const JUNIE_AGENTS_FALLBACK = 'AGENTS.md';\nexport const JUNIE_MCP_DIR = `${JUNIE_DIR}/mcp`;\nexport const JUNIE_MCP_FILE = `${JUNIE_MCP_DIR}/mcp.json`;\nexport const JUNIE_SKILLS_DIR = `${JUNIE_DIR}/skills`;\nexport const JUNIE_RULES_DIR = `${JUNIE_DIR}/rules`;\nexport const JUNIE_COMMANDS_DIR = `${JUNIE_DIR}/commands`;\nexport const JUNIE_AGENTS_DIR = `${JUNIE_DIR}/agents`;\nexport const JUNIE_IGNORE = '.aiignore';\n\n// Global-level paths (~/.junie/)\nexport const JUNIE_GLOBAL_DIR = '.junie';\nexport const JUNIE_GLOBAL_SKILLS_DIR = `${JUNIE_GLOBAL_DIR}/skills`;\nexport const JUNIE_GLOBAL_AGENTS_DIR = `${JUNIE_GLOBAL_DIR}/agents`;\nexport const JUNIE_GLOBAL_COMMANDS_DIR = `${JUNIE_GLOBAL_DIR}/commands`;\nexport const JUNIE_GLOBAL_MCP_DIR = `${JUNIE_GLOBAL_DIR}/mcp`;\nexport const JUNIE_GLOBAL_MCP_FILE = `${JUNIE_GLOBAL_MCP_DIR}/mcp.json`;\nexport const JUNIE_GLOBAL_AGENTS_MD = `${JUNIE_GLOBAL_DIR}/AGENTS.md`;\n\n// Cross-agent compatibility mirror\nexport const JUNIE_GLOBAL_AGENTS_SKILLS_DIR = '.agents/skills';\n\nexport const JUNIE_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';\nexport const JUNIE_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const JUNIE_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const JUNIE_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const JUNIE_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const JUNIE_CANONICAL_IGNORE = '.agentsmesh/ignore';\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport { JUNIE_DOT_AGENTS, JUNIE_GUIDELINES } from '../../../targets/junie/constants.js';\nimport { AB_AGENTS, AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildJunieImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n): Promise<void> {\n refs.set(JUNIE_GUIDELINES, `${AB_RULES}/_root.md`);\n refs.set(JUNIE_DOT_AGENTS, `${AB_RULES}/_root.md`);\n refs.set('AGENTS.md', `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, '.junie/rules')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.junie/commands')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.junie/agents')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.junie/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.junie/skills');\n }\n}\n","export const KIRO_TARGET = 'kiro';\n\n// Project-level paths\nexport const KIRO_AGENTS_MD = 'AGENTS.md';\nexport const KIRO_DIR = '.kiro';\nexport const KIRO_STEERING_DIR = `${KIRO_DIR}/steering`;\nexport const KIRO_SKILLS_DIR = `${KIRO_DIR}/skills`;\nexport const KIRO_AGENTS_DIR = `${KIRO_DIR}/agents`;\nexport const KIRO_HOOKS_DIR = `${KIRO_DIR}/hooks`;\nexport const KIRO_SETTINGS_DIR = `${KIRO_DIR}/settings`;\nexport const KIRO_MCP_FILE = `${KIRO_SETTINGS_DIR}/mcp.json`;\nexport const KIRO_CLI_FILE = `${KIRO_SETTINGS_DIR}/cli.json`;\nexport const KIRO_IGNORE = '.kiroignore';\n\n// Global mode paths (user home directory)\nexport const KIRO_GLOBAL_ROOT = '.kiro';\nexport const KIRO_GLOBAL_STEERING_DIR = '.kiro/steering';\nexport const KIRO_GLOBAL_STEERING_AGENTS_MD = '.kiro/steering/AGENTS.md';\nexport const KIRO_GLOBAL_SKILLS_DIR = '.kiro/skills';\nexport const KIRO_GLOBAL_AGENTS_DIR = '.kiro/agents';\nexport const KIRO_GLOBAL_SETTINGS_DIR = '.kiro/settings';\nexport const KIRO_GLOBAL_MCP_FILE = '.kiro/settings/mcp.json';\nexport const KIRO_GLOBAL_CLI_FILE = '.kiro/settings/cli.json';\nexport const KIRO_GLOBAL_IGNORE = '.kiro/settings/kiroignore';\nexport const KIRO_GLOBAL_HOOKS_DIR = '.kiro/hooks';\nexport const KIRO_GLOBAL_PROMPTS_DIR = '.kiro/prompts';\n\n// Compatibility mirror paths\nexport const KIRO_GLOBAL_AGENTS_SKILLS_DIR = '.agents/skills';\n\n// Canonical paths\nexport const KIRO_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';\nexport const KIRO_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const KIRO_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const KIRO_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const KIRO_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const KIRO_CANONICAL_IGNORE = '.agentsmesh/ignore';\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport {\n KIRO_AGENTS_MD,\n KIRO_AGENTS_DIR,\n KIRO_STEERING_DIR,\n KIRO_SKILLS_DIR,\n KIRO_GLOBAL_STEERING_DIR,\n KIRO_GLOBAL_STEERING_AGENTS_MD,\n KIRO_GLOBAL_SKILLS_DIR,\n KIRO_GLOBAL_AGENTS_DIR,\n} from '../../../targets/kiro/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_AGENTS, AB_RULES } from './constants.js';\n\nexport async function buildKiroImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n if (scope === 'global') {\n refs.set(KIRO_GLOBAL_STEERING_AGENTS_MD, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, KIRO_GLOBAL_STEERING_DIR)) {\n const relPath = rel(projectRoot, absPath);\n if (relPath === KIRO_GLOBAL_STEERING_AGENTS_MD) continue;\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, KIRO_GLOBAL_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), KIRO_GLOBAL_SKILLS_DIR);\n }\n for (const absPath of await listFiles(projectRoot, KIRO_GLOBAL_AGENTS_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n return;\n }\n refs.set(KIRO_AGENTS_MD, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, KIRO_STEERING_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, KIRO_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), KIRO_SKILLS_DIR);\n }\n for (const absPath of await listFiles(projectRoot, KIRO_AGENTS_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_AGENTS, '.md');\n }\n}\n","export const ROO_CODE_TARGET = 'roo-code';\n\n// Project-level paths\nexport const ROO_CODE_DIR = '.roo';\nexport const ROO_CODE_ROOT_RULE = `${ROO_CODE_DIR}/rules/00-root.md`;\n/** Flat-file fallback read during import when .roo/rules/00-root.md is absent */\nexport const ROO_CODE_ROOT_RULE_FALLBACK = '.roorules';\nexport const ROO_CODE_RULES_DIR = `${ROO_CODE_DIR}/rules`;\nexport const ROO_CODE_COMMANDS_DIR = `${ROO_CODE_DIR}/commands`;\nexport const ROO_CODE_SKILLS_DIR = `${ROO_CODE_DIR}/skills`;\nexport const ROO_CODE_MCP_FILE = `${ROO_CODE_DIR}/mcp.json`;\nexport const ROO_CODE_IGNORE = '.rooignore';\n\n/** Project-level custom modes file (canonical agents → Roo custom modes). */\nexport const ROO_CODE_MODES_FILE = '.roomodes';\n/** Global-level custom modes file (~/.roo/settings/custom_modes.yaml). */\nexport const ROO_CODE_GLOBAL_MODES_FILE = 'settings/custom_modes.yaml';\n\n// Global-level paths (~/.roo/)\nexport const ROO_CODE_GLOBAL_DIR = '.roo';\nexport const ROO_CODE_GLOBAL_RULES_DIR = `${ROO_CODE_GLOBAL_DIR}/rules`;\nexport const ROO_CODE_GLOBAL_COMMANDS_DIR = `${ROO_CODE_GLOBAL_DIR}/commands`;\nexport const ROO_CODE_GLOBAL_SKILLS_DIR = `${ROO_CODE_GLOBAL_DIR}/skills`;\nexport const ROO_CODE_GLOBAL_MCP_FILE = 'mcp_settings.json';\nexport const ROO_CODE_GLOBAL_IGNORE = '.rooignore';\nexport const ROO_CODE_GLOBAL_AGENTS_MD = `${ROO_CODE_GLOBAL_DIR}/AGENTS.md`;\n\n// Cross-agent compatibility mirror\nexport const ROO_CODE_GLOBAL_AGENTS_SKILLS_DIR = '.agents/skills';\n\nexport const ROO_CODE_CANONICAL_ROOT_RULE = '.agentsmesh/rules/_root.md';\nexport const ROO_CODE_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const ROO_CODE_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const ROO_CODE_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const ROO_CODE_CANONICAL_IGNORE = '.agentsmesh/ignore';\n","import { addSimpleFileMapping, addSkillLikeMapping, listFiles, rel } from '../import-map-shared.js';\nimport {\n ROO_CODE_ROOT_RULE,\n ROO_CODE_ROOT_RULE_FALLBACK,\n ROO_CODE_RULES_DIR,\n ROO_CODE_COMMANDS_DIR,\n ROO_CODE_SKILLS_DIR,\n ROO_CODE_GLOBAL_AGENTS_MD,\n ROO_CODE_GLOBAL_RULES_DIR,\n ROO_CODE_GLOBAL_COMMANDS_DIR,\n ROO_CODE_GLOBAL_SKILLS_DIR,\n ROO_CODE_GLOBAL_MCP_FILE,\n} from '../../../targets/roo-code/constants.js';\nimport type { TargetLayoutScope } from '../../../targets/catalog/target-descriptor.js';\nimport { AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildRooCodeImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n scope: TargetLayoutScope = 'project',\n): Promise<void> {\n if (scope === 'global') {\n refs.set(ROO_CODE_GLOBAL_AGENTS_MD, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, ROO_CODE_GLOBAL_RULES_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, ROO_CODE_GLOBAL_COMMANDS_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, ROO_CODE_GLOBAL_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), ROO_CODE_GLOBAL_SKILLS_DIR);\n }\n refs.set(ROO_CODE_GLOBAL_MCP_FILE, '.agentsmesh/mcp.json');\n return;\n }\n refs.set(ROO_CODE_ROOT_RULE, `${AB_RULES}/_root.md`);\n refs.set(ROO_CODE_ROOT_RULE_FALLBACK, `${AB_RULES}/_root.md`);\n for (const absPath of await listFiles(projectRoot, ROO_CODE_RULES_DIR)) {\n const relPath = rel(projectRoot, absPath);\n if (relPath === ROO_CODE_ROOT_RULE) continue;\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.roo')) {\n const relPath = rel(projectRoot, absPath);\n if (/^\\.roo\\/rules-[^/]+\\/.+\\.md$/.test(relPath)) {\n addSimpleFileMapping(refs, relPath, AB_RULES, '.md');\n }\n }\n for (const absPath of await listFiles(projectRoot, ROO_CODE_COMMANDS_DIR)) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, ROO_CODE_SKILLS_DIR)) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), ROO_CODE_SKILLS_DIR);\n }\n}\n","import {\n addScopedAgentsMappings,\n addSimpleFileMapping,\n addSkillLikeMapping,\n listFiles,\n rel,\n} from '../import-map-shared.js';\nimport { AB_COMMANDS, AB_RULES } from './constants.js';\n\nexport async function buildWindsurfImportPaths(\n refs: Map<string, string>,\n projectRoot: string,\n): Promise<void> {\n refs.set('AGENTS.md', `${AB_RULES}/_root.md`);\n refs.set('.windsurfrules', `${AB_RULES}/_root.md`);\n await addScopedAgentsMappings(refs, projectRoot);\n for (const absPath of await listFiles(projectRoot, '.windsurf/rules')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_RULES, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.windsurf/workflows')) {\n addSimpleFileMapping(refs, rel(projectRoot, absPath), AB_COMMANDS, '.md');\n }\n for (const absPath of await listFiles(projectRoot, '.windsurf/skills')) {\n addSkillLikeMapping(refs, rel(projectRoot, absPath), '.windsurf/skills');\n }\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generatePermissions,\n generateHooks,\n generateIgnore,\n} from './generator.js';\nimport {\n CLAUDE_GLOBAL_MCP_JSON,\n CLAUDE_HOOKS_JSON,\n CLAUDE_MCP_JSON,\n CLAUDE_ROOT,\n} from './constants.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\nimport { renderClaudeGlobalPrimaryInstructions } from './global-instructions.js';\nimport { generateClaudeGlobalExtras } from './global-extras.js';\nimport { importFromClaudeCode } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { buildClaudeCodeImportPaths } from '../../core/reference/import-map-builders.js';\n\nexport const target: TargetGenerators = {\n name: 'claude-code',\n primaryRootInstructionPath: CLAUDE_ROOT,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generatePermissions,\n generateHooks,\n generateIgnore,\n importFrom: importFromClaudeCode,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: CLAUDE_ROOT,\n skillDir: '.claude/skills',\n managedOutputs: {\n dirs: ['.claude/agents', '.claude/commands', '.claude/rules', '.claude/skills'],\n files: ['.claude/CLAUDE.md', '.claude/settings.json', '.claudeignore', '.mcp.json'],\n },\n paths: {\n rulePath(slug, _rule) {\n return `.claude/rules/${slug}.md`;\n },\n commandPath(name, _config) {\n return `.claude/commands/${name}.md`;\n },\n agentPath(name, _config) {\n return `.claude/agents/${name}.md`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: CLAUDE_ROOT,\n skillDir: '.claude/skills',\n renderPrimaryRootInstruction: renderClaudeGlobalPrimaryInstructions,\n managedOutputs: {\n dirs: [\n '.claude/agents',\n '.claude/commands',\n '.claude/rules',\n '.claude/skills',\n '.claude/output-styles',\n '.agents/skills',\n ],\n files: [\n '.claude/CLAUDE.md',\n '.claude/settings.json',\n CLAUDE_GLOBAL_MCP_JSON,\n CLAUDE_HOOKS_JSON,\n '.claudeignore',\n ],\n },\n rewriteGeneratedPath(path) {\n if (path === CLAUDE_MCP_JSON) return CLAUDE_GLOBAL_MCP_JSON;\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, '.claude/skills', activeTargets);\n },\n paths: project.paths,\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'native',\n};\n\nexport const descriptor = {\n id: 'claude-code',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'native',\n },\n emptyImportMessage: 'No Claude Code config found (CLAUDE.md or .claude/rules/*.md).',\n lintRules,\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n '.claude/CLAUDE.md',\n '.claude/rules',\n '.claude/commands',\n '.claude/agents',\n '.claude/skills',\n '.claude/settings.json',\n '.claude/hooks.json',\n '.claude/output-styles',\n '.claudeignore',\n '.claude.json',\n '.agents/skills',\n ],\n layout: global,\n scopeExtras: generateClaudeGlobalExtras,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildClaudeCodeImportPaths,\n detectionPaths: ['CLAUDE.md', '.claude/rules', '.claude/commands'],\n} satisfies TargetDescriptor;\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { appendEmbeddedRulesBlock } from '../../projection/managed-blocks.js';\nimport {\n CURSOR_COMPAT_AGENTS,\n CURSOR_DOT_CURSOR_AGENTS,\n CURSOR_GENERAL_RULE,\n CURSOR_RULES_DIR,\n} from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n\n const root = canonical.rules.find((r) => r.root);\n if (root) {\n const body = root.body.trim() ? root.body : '';\n outputs.push({ path: CURSOR_COMPAT_AGENTS, content: body });\n const frontmatter: Record<string, unknown> = { alwaysApply: true };\n if (root.description) frontmatter.description = root.description;\n const content = serializeFrontmatter(frontmatter, body);\n outputs.push({ path: CURSOR_GENERAL_RULE, content });\n }\n\n const nonRoot = canonical.rules.filter(\n (r) => !r.root && (r.targets.length === 0 || r.targets.includes('cursor')),\n );\n for (const rule of nonRoot) {\n const slug = rule.source.split('/').pop()!.replace(/\\.md$/, '');\n const alwaysApply = rule.trigger === 'always_on' ? true : false;\n const frontmatter: Record<string, unknown> = { alwaysApply };\n if (rule.description) frontmatter.description = rule.description;\n if (rule.globs.length > 0) frontmatter.globs = rule.globs;\n const content = serializeFrontmatter(frontmatter, rule.body.trim() || '');\n outputs.push({ path: `${CURSOR_RULES_DIR}/${slug}.mdc`, content });\n }\n\n const aggregate = renderCursorGlobalUserRules(canonical);\n if (aggregate.trim()) {\n outputs.push({ path: CURSOR_DOT_CURSOR_AGENTS, content: aggregate });\n }\n\n return outputs;\n}\n\nexport function renderCursorGlobalUserRules(canonical: CanonicalFiles): string {\n const root = canonical.rules.find((rule) => rule.root);\n const nonRootRules = canonical.rules.filter(\n (rule) => !rule.root && (rule.targets.length === 0 || rule.targets.includes('cursor')),\n );\n const sections: string[] = [];\n\n if (root?.body.trim()) {\n sections.push(appendEmbeddedRulesBlock(root.body, nonRootRules));\n } else if (nonRootRules.length > 0) {\n sections.push(appendEmbeddedRulesBlock('', nonRootRules));\n }\n\n return sections.filter(Boolean).join('\\n\\n');\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { CURSOR_COMMANDS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map((cmd) => ({\n path: `${CURSOR_COMMANDS_DIR}/${cmd.name}.md`,\n content: cmd.body.trim() || '',\n }));\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { CURSOR_MCP } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateMcp(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n const content = JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2);\n return [{ path: CURSOR_MCP, content }];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { CURSOR_SKILLS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const content = serializeFrontmatter(frontmatter, skill.body.trim() || '');\n outputs.push({ path: `${CURSOR_SKILLS_DIR}/${skill.name}/SKILL.md`, content });\n for (const file of skill.supportingFiles) {\n const relPath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${CURSOR_SKILLS_DIR}/${skill.name}/${relPath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { CURSOR_AGENTS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n description: agent.description,\n tools: agent.tools.length > 0 ? agent.tools : undefined,\n disallowedTools: agent.disallowedTools.length > 0 ? agent.disallowedTools : undefined,\n model: agent.model || undefined,\n permissionMode: agent.permissionMode || undefined,\n maxTurns: agent.maxTurns > 0 ? agent.maxTurns : undefined,\n mcpServers: agent.mcpServers.length > 0 ? agent.mcpServers : undefined,\n hooks: Object.keys(agent.hooks).length > 0 ? agent.hooks : undefined,\n skills: agent.skills.length > 0 ? agent.skills : undefined,\n memory: agent.memory || undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content = serializeFrontmatter(frontmatter, agent.body.trim() || '');\n return { path: `${CURSOR_AGENTS_DIR}/${agent.name}.md`, content };\n });\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generatePermissions(_canonical: CanonicalFiles): RulesOutput[] {\n return [];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { getHookCommand, getHookPrompt, hasHookText } from '../../../core/hook-command.js';\nimport { CURSOR_HOOKS } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nfunction toCursorHooks(hooks: import('../../../core/types.js').Hooks): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [event, entries] of Object.entries(hooks)) {\n if (!Array.isArray(entries)) continue;\n const translated: Array<{ matcher: string; hooks: unknown[] }> = [];\n for (const e of entries) {\n if (!hasHookText(e)) continue;\n const command = getHookCommand(e);\n const prompt = getHookPrompt(e);\n const value = e.type === 'prompt' ? prompt || command : command || prompt;\n const hookItem: Record<string, unknown> = {\n type: e.type === 'prompt' ? 'prompt' : 'command',\n [e.type === 'prompt' ? 'prompt' : 'command']: value,\n };\n if (e.timeout !== undefined) hookItem.timeout = e.timeout;\n translated.push({ matcher: e.matcher, hooks: [hookItem] });\n }\n if (translated.length > 0) result[event] = translated;\n }\n return result;\n}\n\nexport function generateHooks(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const cursorHooks = toCursorHooks(canonical.hooks);\n if (Object.keys(cursorHooks).length === 0) return [];\n const content = JSON.stringify({ version: 1, hooks: cursorHooks }, null, 2);\n return [{ path: CURSOR_HOOKS, content }];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { CURSOR_IGNORE } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateIgnore(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.ignore || canonical.ignore.length === 0) return [];\n const content = canonical.ignore.join('\\n');\n return [{ path: CURSOR_IGNORE, content }];\n}\n","import { join } from 'node:path';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n serializeImportedAgentWithFallback,\n serializeImportedCommandWithFallback,\n serializeImportedRuleWithFallback,\n} from '../import/import-metadata.js';\nimport type { ImportFileMapping } from '../import/import-orchestrator.js';\nimport { toToolsArray } from '../import/shared-import-helpers.js';\nimport {\n CURSOR_CANONICAL_RULES_DIR,\n CURSOR_CANONICAL_COMMANDS_DIR,\n CURSOR_CANONICAL_AGENTS_DIR,\n} from './constants.js';\n\nexport async function mapCursorRuleFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n onRootRule: () => void,\n): Promise<ImportFileMapping> {\n const rawRelativePath = relativePath.replace(/\\.mdc$/i, '.md');\n const rawDestPath = join(destDir, rawRelativePath);\n const initial = parseFrontmatter(normalizeTo(rawDestPath));\n const isRoot = initial.frontmatter.alwaysApply === true;\n const destPath = isRoot ? join(destDir, '_root.md') : rawDestPath;\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n if (isRoot) onRootRule();\n const canonicalFm = { ...frontmatter, root: isRoot };\n delete (canonicalFm as Record<string, unknown>).alwaysApply;\n return {\n destPath,\n toPath: `${CURSOR_CANONICAL_RULES_DIR}/${isRoot ? '_root.md' : rawRelativePath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(destPath, canonicalFm, body),\n };\n}\n\nexport async function mapCursorCommandFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const fromCamel = toToolsArray(frontmatter.allowedTools);\n const allowedTools =\n fromCamel.length > 0 ? fromCamel : toToolsArray(frontmatter['allowed-tools']);\n return {\n destPath,\n toPath: `${CURSOR_CANONICAL_COMMANDS_DIR}/${relativePath}`,\n feature: 'commands',\n content: await serializeImportedCommandWithFallback(\n destPath,\n {\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n hasDescription: Object.prototype.hasOwnProperty.call(frontmatter, 'description'),\n allowedTools,\n hasAllowedTools:\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowedTools') ||\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowed-tools'),\n },\n body,\n ),\n };\n}\n\nexport async function mapCursorAgentFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n return {\n destPath,\n toPath: `${CURSOR_CANONICAL_AGENTS_DIR}/${relativePath}`,\n feature: 'agents',\n content: await serializeImportedAgentWithFallback(destPath, frontmatter, body),\n };\n}\n","import { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { mkdirp, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { extractEmbeddedRules } from '../projection/managed-blocks.js';\nimport { serializeImportedRuleWithFallback } from './import-metadata.js';\n\nexport interface SplitEmbeddedRulesInput {\n content: string;\n projectRoot: string;\n rulesDir: string;\n sourcePath: string;\n fromTool: string;\n normalize: (content: string, sourceFile: string, destinationFile: string) => string;\n}\n\nexport interface SplitEmbeddedRulesResult {\n rootContent: string;\n results: ImportResult[];\n}\n\nfunction canonicalRulePath(source: string): string | null {\n const normalized = source.replace(/\\\\/g, '/');\n if (!normalized.startsWith('rules/') || normalized.endsWith('/')) return null;\n if (!normalized.endsWith('.md')) return null;\n return normalized;\n}\n\nexport async function splitEmbeddedRulesToCanonical(\n input: SplitEmbeddedRulesInput,\n): Promise<SplitEmbeddedRulesResult> {\n const extracted = extractEmbeddedRules(input.content);\n const results: ImportResult[] = [];\n if (extracted.rules.length === 0) {\n return { rootContent: extracted.rootContent, results };\n }\n\n await mkdirp(join(input.projectRoot, input.rulesDir));\n for (const rule of extracted.rules) {\n const canonicalSource = canonicalRulePath(rule.source);\n if (canonicalSource === null || canonicalSource === 'rules/_root.md') continue;\n const destPath = join(input.projectRoot, '.agentsmesh', canonicalSource);\n const normalized = input.normalize(rule.body, input.sourcePath, destPath);\n const { frontmatter, body } = parseFrontmatter(normalized);\n const content = await serializeImportedRuleWithFallback(\n destPath,\n {\n ...frontmatter,\n root: false,\n description: rule.description || undefined,\n globs: rule.globs.length > 0 ? rule.globs : undefined,\n targets: rule.targets.length > 0 ? rule.targets : undefined,\n },\n body,\n );\n await writeFileAtomic(destPath, content);\n results.push({\n fromTool: input.fromTool,\n fromPath: input.sourcePath,\n toPath: `.agentsmesh/${canonicalSource}`,\n feature: 'rules',\n });\n }\n return { rootContent: extracted.rootContent, results };\n}\n","import { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { mkdirp, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { splitEmbeddedRulesToCanonical } from '../import/embedded-rules.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { CURSOR_CANONICAL_RULES_DIR } from './constants.js';\n\nexport async function importCursorRootFile(input: {\n projectRoot: string;\n results: ImportResult[];\n sourcePath: string;\n content: string;\n normalize: (content: string, sourceFile: string, destinationFile: string) => string;\n}): Promise<boolean> {\n const destDir = join(input.projectRoot, CURSOR_CANONICAL_RULES_DIR);\n await mkdirp(destDir);\n const destPath = join(destDir, '_root.md');\n const split = await splitEmbeddedRulesToCanonical({\n content: input.content,\n projectRoot: input.projectRoot,\n rulesDir: CURSOR_CANONICAL_RULES_DIR,\n sourcePath: input.sourcePath,\n fromTool: 'cursor',\n normalize: input.normalize,\n });\n input.results.push(...split.results);\n\n const normalizedRoot = input.normalize(split.rootContent, input.sourcePath, destPath);\n if (!normalizedRoot.trim() && split.results.length > 0) return true;\n\n const { frontmatter, body } = parseFrontmatter(normalizedRoot);\n const outFm = frontmatter.root === true ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n input.results.push({\n fromTool: 'cursor',\n fromPath: input.sourcePath,\n toPath: `${CURSOR_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n return true;\n}\n","import { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { mapCursorRuleFile } from './importer-mappers.js';\nimport { importCursorRootFile } from './import-root-helpers.js';\nimport {\n CURSOR_COMPAT_AGENTS,\n CURSOR_LEGACY_RULES,\n CURSOR_RULES_DIR,\n CURSOR_CANONICAL_RULES_DIR,\n} from './constants.js';\n\nexport async function importCursorRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const destDir = join(projectRoot, CURSOR_CANONICAL_RULES_DIR);\n let rootWritten = false;\n\n const rulesDir = join(projectRoot, CURSOR_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: rulesDir,\n destDir,\n extensions: ['.mdc'],\n fromTool: 'cursor',\n normalize,\n mapEntry: async ({ srcPath, relativePath, normalizeTo }) => {\n if (rootWritten) {\n const raw = await readFileSafe(srcPath);\n if (raw !== null) {\n const { frontmatter } = parseFrontmatter(raw);\n if (frontmatter.alwaysApply === true) return null;\n }\n }\n return mapCursorRuleFile(relativePath, destDir, normalizeTo, () => {\n rootWritten = true;\n });\n },\n })),\n );\n\n if (!rootWritten) {\n const agentsPath = join(projectRoot, CURSOR_COMPAT_AGENTS);\n const agentsContent = await readFileSafe(agentsPath);\n if (agentsContent !== null) {\n rootWritten = await importCursorRootFile({\n projectRoot,\n results,\n sourcePath: agentsPath,\n content: agentsContent,\n normalize,\n });\n }\n }\n\n if (!rootWritten) {\n const cursorRulesPath = join(projectRoot, CURSOR_LEGACY_RULES);\n const cursorRulesContent = await readFileSafe(cursorRulesPath);\n if (cursorRulesContent !== null) {\n await importCursorRootFile({\n projectRoot,\n results,\n sourcePath: cursorRulesPath,\n content: cursorRulesContent,\n normalize,\n });\n }\n }\n}\n","/**\n * Cursor settings import helpers — permissions, hooks, and ignore file processing.\n */\n\nimport { join, dirname } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { getHookCommand, getHookPrompt, hasHookText } from '../../core/hook-command.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { stringify as yamlStringify } from 'yaml';\nimport {\n CURSOR_SETTINGS,\n CURSOR_HOOKS,\n CURSOR_IGNORE,\n CURSOR_INDEXING_IGNORE,\n CURSOR_CANONICAL_PERMISSIONS,\n CURSOR_CANONICAL_HOOKS,\n CURSOR_CANONICAL_IGNORE,\n} from './constants.js';\n\n/**\n * Convert Cursor settings.json hooks to canonical hooks.yaml format.\n * Cursor uses same structure as Claude Code: { event: [{ matcher, hooks: [{ type, command }] }] }\n */\nexport function cursorHooksToCanonical(hooks: Record<string, unknown>): Record<string, unknown[]> {\n const result: Record<string, unknown[]> = {};\n for (const [event, entries] of Object.entries(hooks)) {\n if (!Array.isArray(entries)) continue;\n const canonical: Array<Record<string, unknown>> = [];\n for (const entry of entries) {\n if (!entry || typeof entry !== 'object') continue;\n const e = entry as Record<string, unknown>;\n const matcher = typeof e.matcher === 'string' ? e.matcher : '';\n if (!matcher) continue;\n const hookList = Array.isArray(e.hooks) ? (e.hooks as Array<Record<string, unknown>>) : [];\n for (const hook of hookList) {\n const type = hook.type === 'prompt' ? 'prompt' : 'command';\n if (!hasHookText({ ...hook, type })) continue;\n const value =\n type === 'prompt'\n ? getHookPrompt(hook) || getHookCommand(hook)\n : getHookCommand(hook) || getHookPrompt(hook);\n const item: Record<string, unknown> = { matcher, type, command: value };\n if (typeof hook.timeout === 'number') item.timeout = hook.timeout;\n canonical.push(item);\n }\n }\n if (canonical.length > 0) result[event] = canonical;\n }\n return result;\n}\n\nexport async function importSettings(projectRoot: string, results: ImportResult[]): Promise<void> {\n let hooksImportedFromHooksJson = false;\n const hooksJsonPath = join(projectRoot, CURSOR_HOOKS);\n const hooksJsonContent = await readFileSafe(hooksJsonPath);\n if (hooksJsonContent) {\n try {\n const hooksFile = JSON.parse(hooksJsonContent) as Record<string, unknown>;\n if (hooksFile.hooks && typeof hooksFile.hooks === 'object') {\n const canonical = cursorHooksToCanonical(hooksFile.hooks as Record<string, unknown>);\n if (Object.keys(canonical).length > 0) {\n const hooksContent = yamlStringify(canonical);\n const destPath = join(projectRoot, CURSOR_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, hooksContent);\n results.push({\n fromTool: 'cursor',\n fromPath: hooksJsonPath,\n toPath: CURSOR_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n hooksImportedFromHooksJson = true;\n }\n }\n } catch {\n /* ignore parse errors */\n }\n }\n\n const settingsPath = join(projectRoot, CURSOR_SETTINGS);\n const content = await readFileSafe(settingsPath);\n if (!content) return;\n let settings: Record<string, unknown>;\n try {\n settings = JSON.parse(content) as Record<string, unknown>;\n } catch {\n return;\n }\n\n const rawPerms = settings.permissions;\n if (rawPerms && typeof rawPerms === 'object' && !Array.isArray(rawPerms)) {\n const perms = rawPerms as Record<string, unknown>;\n const allow = Array.isArray(perms.allow)\n ? (perms.allow as string[]).filter((s) => typeof s === 'string')\n : [];\n const deny = Array.isArray(perms.deny)\n ? (perms.deny as string[]).filter((s) => typeof s === 'string')\n : [];\n if (allow.length > 0 || deny.length > 0) {\n const permContent = yamlStringify({ allow, deny });\n const destPath = join(projectRoot, CURSOR_CANONICAL_PERMISSIONS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, permContent);\n results.push({\n fromTool: 'cursor',\n fromPath: settingsPath,\n toPath: CURSOR_CANONICAL_PERMISSIONS,\n feature: 'permissions',\n });\n }\n }\n\n const rawHooks = !hooksImportedFromHooksJson ? settings.hooks : undefined;\n if (rawHooks && typeof rawHooks === 'object' && !Array.isArray(rawHooks)) {\n const canonicalHooks = cursorHooksToCanonical(rawHooks as Record<string, unknown>);\n if (Object.keys(canonicalHooks).length > 0) {\n const hooksContent = yamlStringify(canonicalHooks);\n const destPath = join(projectRoot, CURSOR_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, hooksContent);\n results.push({\n fromTool: 'cursor',\n fromPath: settingsPath,\n toPath: CURSOR_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n }\n }\n}\n\nexport async function importIgnore(projectRoot: string, results: ImportResult[]): Promise<void> {\n const sources = [\n { path: join(projectRoot, CURSOR_IGNORE), label: CURSOR_IGNORE },\n { path: join(projectRoot, CURSOR_INDEXING_IGNORE), label: CURSOR_INDEXING_IGNORE },\n ];\n const patterns: string[] = [];\n const importedFrom: string[] = [];\n for (const source of sources) {\n const content = await readFileSafe(source.path);\n if (content === null) continue;\n importedFrom.push(source.label);\n for (const line of content.split(/\\r?\\n/)) {\n const trimmed = line.trim();\n if (trimmed && !patterns.includes(trimmed)) {\n patterns.push(trimmed);\n }\n }\n }\n if (patterns.length === 0) return;\n const destPath = join(projectRoot, CURSOR_CANONICAL_IGNORE);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, patterns.join('\\n') + '\\n');\n results.push({\n fromTool: 'cursor',\n fromPath: join(projectRoot, importedFrom[0]!),\n toPath: CURSOR_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n}\n","/**\n * Reserved artifact names that should be filtered during skill import.\n * These are generated or internal files that should not be imported into canonical.\n */\n\n/**\n * Reserved filename patterns that should be excluded from skill imports.\n * These include:\n * - Hidden files (starting with .)\n * - Generated agent/command prefixes (_ab-agent-, _ab-command-)\n * - Fixture/test files\n */\nexport const RESERVED_SKILL_PATTERNS = [\n /^\\./, // Hidden files\n /^_ab-agent-/, // Generated agent prefixes\n /^_ab-command-/, // Generated command prefixes\n /\\.fixture\\./, // Fixture files\n /\\.test\\./, // Test files\n] as const;\n\n/**\n * Reserved directory names that should be excluded from skill imports.\n */\nexport const RESERVED_SKILL_DIRS = ['node_modules', '.git', 'dist', 'coverage'] as const;\n\n/**\n * Check if a filename matches any reserved pattern.\n */\nexport function isReservedArtifactName(name: string): boolean {\n return RESERVED_SKILL_PATTERNS.some((pattern) => pattern.test(name));\n}\n\n/**\n * Check if a directory name is reserved.\n */\nexport function isReservedDirectory(name: string): boolean {\n return RESERVED_SKILL_DIRS.includes(name as never);\n}\n","/**\n * Shared skill import pipeline for all targets.\n * Consolidates common skill import logic to avoid duplication across targets.\n */\n\nimport { join, basename, dirname, relative } from 'node:path';\nimport type { ImportResult } from '../../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../../utils/text/markdown.js';\nimport { serializeImportedSkillWithFallback } from '../import-metadata.js';\nimport { isReservedArtifactName } from './reserved.js';\n\nexport interface SkillImportOptions {\n /** Project root directory */\n projectRoot: string;\n /** Source skills directory (relative to project root) */\n sourceSkillsDir: string;\n /** Destination canonical skills directory (relative to project root) */\n destCanonicalSkillsDir: string;\n /** Target name for import results */\n targetName: string;\n /** Content normalizer function */\n normalize: (content: string, sourceFile: string, destinationFile: string) => string;\n /** Import results array to append to */\n results: ImportResult[];\n}\n\nexport interface SkillEntry {\n /** Absolute path to the file */\n absolutePath: string;\n /** Relative path within the skill directory */\n relativePath: string;\n /** File content */\n content: string;\n}\n\n/**\n * Read a native skill directory and return all files.\n * Filters out reserved artifact names.\n */\nexport async function readNativeSkill(skillDir: string): Promise<SkillEntry[]> {\n const allFiles = await readDirRecursive(skillDir).catch(() => []);\n const entries: SkillEntry[] = [];\n\n for (const absPath of allFiles) {\n const relPath = relative(skillDir, absPath).replace(/\\\\/g, '/');\n const filename = basename(relPath);\n\n // Skip reserved artifacts\n if (isReservedArtifactName(filename)) {\n continue;\n }\n\n const content = await readFileSafe(absPath);\n if (content === null) continue;\n\n entries.push({\n absolutePath: absPath,\n relativePath: relPath,\n content,\n });\n }\n\n return entries;\n}\n\n/**\n * Import a directory-structured skill (with SKILL.md + supporting files).\n */\nexport async function importDirectorySkill(\n skillName: string,\n skillDir: string,\n options: SkillImportOptions,\n): Promise<void> {\n const entries = await readNativeSkill(skillDir);\n const destSkillDir = join(options.projectRoot, options.destCanonicalSkillsDir, skillName);\n\n for (const entry of entries) {\n const destPath = join(destSkillDir, entry.relativePath);\n await mkdirp(dirname(destPath));\n\n const normalized = options.normalize(entry.content, entry.absolutePath, destPath);\n\n // Special handling for SKILL.md\n if (entry.relativePath === 'SKILL.md') {\n const { frontmatter, body } = parseFrontmatter(normalized);\n const outContent = await serializeImportedSkillWithFallback(\n destPath,\n { ...frontmatter, name: skillName },\n body,\n );\n await writeFileAtomic(destPath, outContent);\n } else {\n await writeFileAtomic(destPath, normalized);\n }\n\n options.results.push({\n fromTool: options.targetName,\n fromPath: entry.absolutePath,\n toPath: `${options.destCanonicalSkillsDir}/${skillName}/${entry.relativePath}`,\n feature: 'skills',\n });\n }\n}\n\n/**\n * Import a flat skill file (single .md file → SKILL.md).\n */\nexport async function importFlatSkill(\n skillName: string,\n srcPath: string,\n content: string,\n options: SkillImportOptions,\n): Promise<void> {\n const destSkillDir = join(options.projectRoot, options.destCanonicalSkillsDir, skillName);\n await mkdirp(destSkillDir);\n\n const destPath = join(destSkillDir, 'SKILL.md');\n const normalized = options.normalize(content, srcPath, destPath);\n const { frontmatter, body } = parseFrontmatter(normalized);\n\n const outContent = await serializeImportedSkillWithFallback(\n destPath,\n { ...frontmatter, name: skillName },\n body,\n );\n await writeFileAtomic(destPath, outContent);\n\n options.results.push({\n fromTool: options.targetName,\n fromPath: srcPath,\n toPath: `${options.destCanonicalSkillsDir}/${skillName}/SKILL.md`,\n feature: 'skills',\n });\n}\n\n/**\n * Find all directory-structured skills (containing SKILL.md).\n * Returns map of skill name → skill directory path.\n */\nexport async function findDirectorySkills(skillsDir: string): Promise<Map<string, string>> {\n const skills = new Map<string, string>();\n\n try {\n const allFiles = await readDirRecursive(skillsDir);\n const skillMdFiles = allFiles.filter((f) => basename(f) === 'SKILL.md');\n\n for (const skillMdPath of skillMdFiles) {\n const skillDir = dirname(skillMdPath);\n const skillName = basename(skillDir);\n skills.set(skillName, skillDir);\n }\n } catch {\n // Directory doesn't exist or not readable\n }\n\n return skills;\n}\n\n/**\n * Normalize projected agent skill content by removing projection-specific frontmatter.\n * Used when importing skills that were generated from agents.\n */\nexport function normalizeProjectedAgentSkill(content: string): string {\n const { frontmatter, body } = parseFrontmatter(content);\n\n // Remove projection-specific fields\n const {\n projected_from_agent: _projected,\n agent_name: _agentName,\n ...cleanFrontmatter\n } = frontmatter as Record<string, unknown>;\n\n // If no frontmatter left, return just body\n if (Object.keys(cleanFrontmatter).length === 0) {\n return body;\n }\n\n // Reconstruct with cleaned frontmatter\n const fmLines = Object.entries(cleanFrontmatter)\n .map(([key, value]) => `${key}: ${JSON.stringify(value)}`)\n .join('\\n');\n\n return `---\\n${fmLines}\\n---\\n\\n${body}`;\n}\n","/**\n * Cursor skills import adapter - handles both directory-structured and flat skills.\n */\n\nimport { join, basename } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { readDirRecursive, readFileSafe } from '../../utils/filesystem/fs.js';\nimport {\n findDirectorySkills,\n importDirectorySkill,\n importFlatSkill,\n type SkillImportOptions,\n} from '../import/shared/skill-import-pipeline.js';\nimport { CURSOR_SKILLS_DIR, CURSOR_CANONICAL_SKILLS_DIR } from './constants.js';\n\nexport async function importSkills(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n skillsRelDir: string = CURSOR_SKILLS_DIR,\n): Promise<void> {\n const skillsDir = join(projectRoot, skillsRelDir);\n const directorySkills = await findDirectorySkills(skillsDir);\n\n const options: SkillImportOptions = {\n projectRoot,\n sourceSkillsDir: skillsRelDir,\n destCanonicalSkillsDir: CURSOR_CANONICAL_SKILLS_DIR,\n targetName: 'cursor',\n normalize,\n results,\n };\n\n // Import directory-structured skills\n for (const [skillName, skillDir] of directorySkills) {\n await importDirectorySkill(skillName, skillDir, options);\n }\n\n // Import flat skills (remaining .md files not in directories)\n const allFiles = await readDirRecursive(skillsDir).catch(() => []);\n const mdFiles = allFiles.filter((f) => f.endsWith('.md'));\n const handledPaths = new Set(\n Array.from(directorySkills.values()).flatMap((dir) =>\n allFiles.filter((f) => f.startsWith(dir)),\n ),\n );\n\n for (const srcPath of mdFiles) {\n if (handledPaths.has(srcPath)) continue;\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const name = basename(srcPath, '.md');\n await importFlatSkill(name, srcPath, content, options);\n }\n}\n","import { join, dirname } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n exists,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport {\n CURSOR_GLOBAL_USER_RULES,\n CURSOR_GLOBAL_MCP_EXPORT,\n CURSOR_GLOBAL_SKILLS_DIR,\n CURSOR_GLOBAL_AGENTS_DIR,\n CURSOR_COMMANDS_DIR,\n CURSOR_CANONICAL_RULES_DIR,\n CURSOR_CANONICAL_MCP,\n CURSOR_CANONICAL_AGENTS_DIR,\n CURSOR_CANONICAL_COMMANDS_DIR,\n CURSOR_RULES_DIR,\n CURSOR_DOT_CURSOR_AGENTS,\n CURSOR_HOOKS,\n CURSOR_IGNORE,\n} from './constants.js';\nimport { importCursorRootFile } from './import-root-helpers.js';\nimport { mapCursorAgentFile, mapCursorCommandFile, mapCursorRuleFile } from './importer-mappers.js';\n\nexport const CURSOR_TARGET = 'cursor';\n\nexport async function hasGlobalCursorArtifacts(projectRoot: string): Promise<boolean> {\n if (await exists(join(projectRoot, CURSOR_RULES_DIR))) return true;\n const candidates = [\n join(projectRoot, CURSOR_DOT_CURSOR_AGENTS),\n join(projectRoot, CURSOR_GLOBAL_USER_RULES),\n join(projectRoot, CURSOR_GLOBAL_MCP_EXPORT),\n join(projectRoot, CURSOR_HOOKS),\n join(projectRoot, CURSOR_IGNORE),\n join(projectRoot, CURSOR_GLOBAL_SKILLS_DIR),\n join(projectRoot, CURSOR_GLOBAL_AGENTS_DIR),\n join(projectRoot, CURSOR_COMMANDS_DIR),\n ];\n for (const p of candidates) {\n const stat = await readFileSafe(p);\n if (stat !== null && stat.trim() !== '') return true;\n }\n const skillFiles = await readDirRecursive(join(projectRoot, CURSOR_GLOBAL_SKILLS_DIR));\n if (skillFiles.some((f) => f.endsWith('.md'))) return true;\n const agentFiles = await readDirRecursive(join(projectRoot, CURSOR_GLOBAL_AGENTS_DIR));\n if (agentFiles.some((f) => f.endsWith('.md'))) return true;\n const commandFiles = await readDirRecursive(join(projectRoot, CURSOR_COMMANDS_DIR));\n if (commandFiles.some((f) => f.endsWith('.md'))) return true;\n return false;\n}\n\nexport async function importGlobalCursorRulesFromDir(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<boolean> {\n const destDir = join(projectRoot, CURSOR_CANONICAL_RULES_DIR);\n let rootWritten = false;\n const rulesDir = join(projectRoot, CURSOR_RULES_DIR);\n const batch = await importFileDirectory({\n srcDir: rulesDir,\n destDir,\n extensions: ['.mdc'],\n fromTool: CURSOR_TARGET,\n normalize,\n mapEntry: async ({ srcPath, relativePath, normalizeTo }) => {\n if (rootWritten) {\n const raw = await readFileSafe(srcPath);\n if (raw !== null) {\n const { frontmatter } = parseFrontmatter(raw);\n if (frontmatter.alwaysApply === true) return null;\n }\n }\n return mapCursorRuleFile(relativePath, destDir, normalizeTo, () => {\n rootWritten = true;\n });\n },\n });\n results.push(...batch);\n return rootWritten;\n}\n\nexport async function importGlobalUserRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<boolean> {\n const srcPath = join(projectRoot, CURSOR_GLOBAL_USER_RULES);\n const raw = await readFileSafe(srcPath);\n if (raw === null || raw.trim() === '') return false;\n return importCursorRootFile({\n projectRoot,\n results,\n sourcePath: srcPath,\n content: raw.trim(),\n normalize,\n });\n}\n\nexport async function importGlobalDotCursorAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<boolean> {\n const srcPath = join(projectRoot, CURSOR_DOT_CURSOR_AGENTS);\n const raw = await readFileSafe(srcPath);\n if (raw === null || raw.trim() === '') return false;\n return importCursorRootFile({\n projectRoot,\n results,\n sourcePath: srcPath,\n content: raw.trim(),\n normalize,\n });\n}\n\nexport async function importGlobalMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const mcpPath = join(projectRoot, CURSOR_GLOBAL_MCP_EXPORT);\n const content = await readFileSafe(mcpPath);\n if (content === null || content.trim() === '') return;\n let parsed: unknown;\n try {\n parsed = JSON.parse(content);\n } catch {\n return;\n }\n if (!parsed || typeof parsed !== 'object' || !('mcpServers' in (parsed as object))) return;\n const destPath = join(projectRoot, CURSOR_CANONICAL_MCP);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, content);\n results.push({\n fromTool: CURSOR_TARGET,\n fromPath: mcpPath,\n toPath: CURSOR_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n\nexport async function importGlobalAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const agentsDir = join(projectRoot, CURSOR_GLOBAL_AGENTS_DIR);\n const destDir = join(projectRoot, CURSOR_CANONICAL_AGENTS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: agentsDir,\n destDir,\n extensions: ['.md'],\n fromTool: CURSOR_TARGET,\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapCursorAgentFile(relativePath, destDir, normalizeTo),\n })),\n );\n}\n\nexport async function importGlobalCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const commandsDir = join(projectRoot, CURSOR_COMMANDS_DIR);\n const destDir = join(projectRoot, CURSOR_CANONICAL_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: commandsDir,\n destDir,\n extensions: ['.md'],\n fromTool: CURSOR_TARGET,\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapCursorCommandFile(relativePath, destDir, normalizeTo),\n })),\n );\n}\n","/**\n * Import Cursor global artifacts under `$HOME`:\n * - `~/.cursor/rules/*.mdc` (same semantics as project import)\n * - legacy `~/.agentsmesh-exports/cursor/user-rules.md`\n * - `~/.cursor/AGENTS.md` aggregate fallback when no structured root exists\n * - `~/.cursor/mcp.json`, skills, agents, commands, hooks.json, cursorignore\n */\n\nimport type { ImportResult } from '../../core/types.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { CURSOR_GLOBAL_SKILLS_DIR } from './constants.js';\nimport { importSkills } from './skills-adapter.js';\nimport { importSettings, importIgnore } from './settings-helpers.js';\nimport {\n CURSOR_TARGET,\n hasGlobalCursorArtifacts,\n importGlobalCursorRulesFromDir,\n importGlobalUserRules,\n importGlobalDotCursorAgents,\n importGlobalMcp,\n importGlobalAgents,\n importGlobalCommands,\n} from './import-global-exports-helpers.js';\n\nexport async function importFromCursorGlobalExports(projectRoot: string): Promise<ImportResult[]> {\n if (!(await hasGlobalCursorArtifacts(projectRoot))) return [];\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(CURSOR_TARGET, projectRoot, 'global');\n let rootWritten = await importGlobalCursorRulesFromDir(projectRoot, results, normalize);\n if (!rootWritten) rootWritten = await importGlobalUserRules(projectRoot, results, normalize);\n if (!rootWritten) await importGlobalDotCursorAgents(projectRoot, results, normalize);\n await importGlobalMcp(projectRoot, results);\n await importSkills(projectRoot, results, normalize, CURSOR_GLOBAL_SKILLS_DIR);\n await importGlobalAgents(projectRoot, results, normalize);\n await importGlobalCommands(projectRoot, results, normalize);\n await importSettings(projectRoot, results);\n await importIgnore(projectRoot, results);\n return results;\n}\n","/**\n * Cursor target importer — full fidelity import into canonical .agentsmesh/.\n *\n * Sources imported:\n * AGENTS.md → .agentsmesh/rules/_root.md\n * .cursor/rules/*.mdc → .agentsmesh/rules/*.md (alwaysApply → root)\n * .cursor/commands/*.md → .agentsmesh/commands/*.md\n * .cursor/agents/*.md → .agentsmesh/agents/*.md\n * .cursor/skills/*.md → .agentsmesh/skills/{name}/SKILL.md (flat → dir)\n * .cursor/mcp.json → .agentsmesh/mcp.json\n * .cursor/hooks.json → .agentsmesh/hooks.yaml (hooks)\n * .cursor/settings.json → .agentsmesh/permissions.yaml (permissions)\n * .cursorignore → .agentsmesh/ignore\n */\n\nimport { join, dirname } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { mapCursorAgentFile, mapCursorCommandFile } from './importer-mappers.js';\nimport { importCursorRules } from './importer-rules.js';\nimport { importSettings, importIgnore } from './settings-helpers.js';\nimport { importSkills } from './skills-adapter.js';\nimport { importFromCursorGlobalExports } from './import-global-exports.js';\nimport {\n CURSOR_COMMANDS_DIR,\n CURSOR_AGENTS_DIR,\n CURSOR_MCP,\n CURSOR_CANONICAL_COMMANDS_DIR,\n CURSOR_CANONICAL_AGENTS_DIR,\n CURSOR_CANONICAL_MCP,\n} from './constants.js';\n\n/**\n * Import Cursor config into canonical .agentsmesh/.\n * @param projectRoot - Project root directory\n * @returns Import results for each imported file\n */\nexport async function importFromCursor(\n projectRoot: string,\n options: { scope?: TargetLayoutScope } = {},\n): Promise<ImportResult[]> {\n if (options.scope === 'global') {\n return importFromCursorGlobalExports(projectRoot);\n }\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer('cursor', projectRoot);\n\n await importCursorRules(projectRoot, results, normalize);\n await importCommands(projectRoot, results, normalize);\n await importAgents(projectRoot, results, normalize);\n await importSkills(projectRoot, results, normalize);\n await importMcp(projectRoot, results);\n await importSettings(projectRoot, results);\n await importIgnore(projectRoot, results);\n\n return results;\n}\n\nasync function importCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const destDir = join(projectRoot, CURSOR_CANONICAL_COMMANDS_DIR);\n const commandsDir = join(projectRoot, CURSOR_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: commandsDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'cursor',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapCursorCommandFile(relativePath, destDir, normalizeTo),\n })),\n );\n}\n\nasync function importAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const destDir = join(projectRoot, CURSOR_CANONICAL_AGENTS_DIR);\n const agentsDir = join(projectRoot, CURSOR_AGENTS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: agentsDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'cursor',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapCursorAgentFile(relativePath, destDir, normalizeTo),\n })),\n );\n}\n\nasync function importMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const mcpPath = join(projectRoot, CURSOR_MCP);\n const content = await readFileSafe(mcpPath);\n if (!content) return;\n let parsed: unknown;\n try {\n parsed = JSON.parse(content);\n } catch {\n return;\n }\n if (!parsed || typeof parsed !== 'object' || !('mcpServers' in (parsed as object))) return;\n const destPath = join(projectRoot, CURSOR_CANONICAL_MCP);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, content);\n results.push({\n fromTool: 'cursor',\n fromPath: mcpPath,\n toPath: CURSOR_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n","/**\n * Cursor target linter — validates canonical files for Cursor.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { CURSOR_TARGET } from './constants.js';\n\n/**\n * Lint rules for Cursor target.\n * @param canonical - Loaded canonical files\n * @param _projectRoot - Project root (for relative paths)\n * @param projectFiles - Relative file paths for glob matching\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n _projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n const diags = validateRules(canonical, _projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n });\n return diags.map((d) => ({ ...d, target: CURSOR_TARGET }));\n}\n","/**\n * Shared lint helper utilities for target-specific linters.\n */\n\nimport type { LintDiagnostic } from '../../types.js';\n\n/**\n * Create a warning diagnostic for a canonical file.\n */\nexport function createWarning(file: string, target: string, message: string): LintDiagnostic {\n return {\n level: 'warning',\n file,\n target,\n message,\n };\n}\n\n/**\n * Create a warning for unsupported metadata in a command.\n */\nexport function createCommandMetadataWarning(\n commandSource: string,\n target: string,\n unsupportedFields: string[],\n): LintDiagnostic {\n const fields = unsupportedFields.join(' and ');\n return createWarning(\n commandSource,\n target,\n `${target} command files do not project canonical ${fields} metadata.`,\n );\n}\n\n/**\n * Format a list for prose: \"a\", \"a and b\", or \"a, b, and c\".\n */\nfunction formatOxfordComma(items: readonly string[]): string {\n if (items.length === 0) return '';\n if (items.length === 1) return items[0]!;\n if (items.length === 2) return `${items[0]} and ${items[1]}`;\n return `${items.slice(0, -1).join(', ')}, and ${items[items.length - 1]!}`;\n}\n\n/**\n * Create a warning for unsupported hook events.\n * @param unsupportedBy - Phrase after \"is not supported by\" (defaults to `target`, e.g. \"Copilot hooks\").\n */\nexport function createUnsupportedHookWarning(\n event: string,\n target: string,\n supportedEvents: readonly string[],\n options?: { unsupportedBy?: string },\n): LintDiagnostic {\n const by = options?.unsupportedBy ?? target;\n const supported = formatOxfordComma(supportedEvents);\n return createWarning(\n '.agentsmesh/hooks.yaml',\n target,\n `${event} is not supported by ${by}; only ${supported} are projected.`,\n );\n}\n","/**\n * Cursor-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintCommands(canonical: CanonicalFiles): LintDiagnostic[] {\n return canonical.commands\n .filter((command) => command.description.length > 0 || command.allowedTools.length > 0)\n .map((command) =>\n createWarning(\n command.source,\n 'cursor',\n 'Cursor command files are plain Markdown; command description and allowed-tools metadata are not projected.',\n ),\n );\n}\n\nexport function lintMcp(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n\n const diagnostics: LintDiagnostic[] = [];\n for (const [name, server] of Object.entries(canonical.mcp.mcpServers)) {\n // Check for env vars or URL/header interpolation\n const hasEnv = server.env && Object.keys(server.env).length > 0;\n const hasUrl = 'url' in server;\n const hasHeaders = 'headers' in server;\n\n if (hasEnv || hasUrl || hasHeaders) {\n diagnostics.push(\n createWarning(\n '.agentsmesh/mcp.json',\n 'cursor',\n `MCP server \"${name}\" uses env vars or URL/header interpolation; Cursor handling may differ from canonical MCP.`,\n ),\n );\n }\n }\n return diagnostics;\n}\n\nexport function lintPermissions(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.permissions) return [];\n const askLen = canonical.permissions.ask?.length ?? 0;\n const hasEntries =\n canonical.permissions.allow.length > 0 || canonical.permissions.deny.length > 0 || askLen > 0;\n if (!hasEntries) return [];\n\n return [\n createWarning(\n '.agentsmesh/permissions.yaml',\n 'cursor',\n 'Cursor permissions are partial; tool-level allow/deny may lose fidelity.',\n ),\n ];\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generatePermissions,\n generateHooks,\n generateIgnore,\n} from './generator.js';\nimport {\n CURSOR_COMPAT_AGENTS,\n CURSOR_AGENTS_DIR,\n CURSOR_COMMANDS_DIR,\n CURSOR_DOT_CURSOR_AGENTS,\n CURSOR_GENERAL_RULE,\n CURSOR_GLOBAL_AGENTS_DIR,\n CURSOR_GLOBAL_MCP_EXPORT,\n CURSOR_GLOBAL_SKILLS_DIR,\n CURSOR_GLOBAL_USER_RULES,\n CURSOR_HOOKS,\n CURSOR_IGNORE,\n CURSOR_MCP,\n CURSOR_RULES_DIR,\n CURSOR_SETTINGS,\n CURSOR_SKILLS_DIR,\n} from './constants.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\nimport { importFromCursor } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { buildCursorImportPaths } from '../../core/reference/import-map-builders.js';\nimport { lintCommands, lintMcp, lintPermissions } from './lint.js';\n\nexport const target: TargetGenerators = {\n name: 'cursor',\n primaryRootInstructionPath: CURSOR_GENERAL_RULE,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generatePermissions,\n generateHooks,\n generateIgnore,\n importFrom: importFromCursor,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: CURSOR_GENERAL_RULE,\n outputFamilies: [\n {\n id: 'root-mirrors',\n kind: 'additional',\n explicitPaths: [CURSOR_COMPAT_AGENTS, CURSOR_DOT_CURSOR_AGENTS],\n },\n ],\n skillDir: '.cursor/skills',\n managedOutputs: {\n dirs: ['.cursor/agents', '.cursor/commands', '.cursor/rules', '.cursor/skills'],\n files: ['.cursor/hooks.json', '.cursor/mcp.json', '.cursorignore', 'AGENTS.md'],\n },\n paths: {\n rulePath(slug, _rule) {\n return `.cursor/rules/${slug}.mdc`;\n },\n commandPath(name, _config) {\n return `.cursor/commands/${name}.md`;\n },\n agentPath(name, _config) {\n return `.cursor/agents/${name}.md`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: CURSOR_GENERAL_RULE,\n outputFamilies: [\n {\n id: 'root-mirrors',\n kind: 'additional',\n explicitPaths: [CURSOR_COMPAT_AGENTS, CURSOR_DOT_CURSOR_AGENTS],\n },\n ],\n skillDir: CURSOR_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n CURSOR_RULES_DIR,\n CURSOR_COMMANDS_DIR,\n CURSOR_GLOBAL_AGENTS_DIR,\n CURSOR_GLOBAL_SKILLS_DIR,\n ],\n files: [\n CURSOR_GENERAL_RULE,\n CURSOR_DOT_CURSOR_AGENTS,\n CURSOR_GLOBAL_MCP_EXPORT,\n CURSOR_HOOKS,\n CURSOR_IGNORE,\n CURSOR_GLOBAL_USER_RULES,\n ],\n },\n rewriteGeneratedPath(path) {\n if (path === CURSOR_COMPAT_AGENTS) return null;\n if (path === CURSOR_DOT_CURSOR_AGENTS) return path;\n if (path === CURSOR_GENERAL_RULE || path.startsWith(`${CURSOR_RULES_DIR}/`)) return path;\n if (path.startsWith(`${CURSOR_COMMANDS_DIR}/`)) return path;\n if (path.startsWith(`${CURSOR_AGENTS_DIR}/`)) return path;\n if (path.startsWith(`${CURSOR_SKILLS_DIR}/`)) return path;\n if (path === CURSOR_MCP) return path;\n if (path === CURSOR_HOOKS || path === CURSOR_IGNORE) return path;\n if (path === CURSOR_SETTINGS) return null;\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, CURSOR_SKILLS_DIR, activeTargets);\n },\n paths: {\n rulePath(slug, _rule) {\n return `${CURSOR_RULES_DIR}/${slug}.mdc`;\n },\n commandPath(name, _config) {\n return `${CURSOR_COMMANDS_DIR}/${name}.md`;\n },\n agentPath(name, _config) {\n return `${CURSOR_GLOBAL_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'embedded',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'cursor',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'embedded',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'partial',\n },\n emptyImportMessage:\n '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).',\n lintRules,\n lint: {\n commands: lintCommands,\n mcp: lintMcp,\n permissions: lintPermissions,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n CURSOR_GENERAL_RULE,\n CURSOR_DOT_CURSOR_AGENTS,\n CURSOR_MCP,\n CURSOR_HOOKS,\n CURSOR_IGNORE,\n CURSOR_SKILLS_DIR,\n CURSOR_GLOBAL_AGENTS_DIR,\n CURSOR_COMMANDS_DIR,\n CURSOR_GLOBAL_USER_RULES,\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildCursorImportPaths,\n detectionPaths: ['.cursor/rules', '.cursor/mcp.json'],\n} satisfies TargetDescriptor;\n","/**\n * Copilot target constants.\n * GitHub Copilot uses .github/copilot-instructions.md, .github/instructions/*.instructions.md,\n * .github/hooks/*.json, and .github/prompts/*.prompt.md.\n */\n\nexport const COPILOT_TARGET = 'copilot';\n\n/** Global instructions file path */\nexport const COPILOT_INSTRUCTIONS = '.github/copilot-instructions.md';\n\n/** Legacy per-context instructions directory */\nexport const COPILOT_CONTEXT_DIR = '.github/copilot';\n\n/** Current instructions directory (GitHub Copilot CLI) */\nexport const COPILOT_INSTRUCTIONS_DIR = '.github/instructions';\n\n/** Prompt files directory (manual reusable prompts / command-like tasks) */\nexport const COPILOT_PROMPTS_DIR = '.github/prompts';\n\n/** Hooks directory for JSON hook configs and scripts */\nexport const COPILOT_HOOKS_DIR = '.github/hooks';\n\n/** Agent skills directory (native). [gh:skills] */\nexport const COPILOT_SKILLS_DIR = '.github/skills';\n\n/** Custom agent profiles directory (.agent.md files). [gh:agents] */\nexport const COPILOT_AGENTS_DIR = '.github/agents';\n\nexport const COPILOT_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const COPILOT_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const COPILOT_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const COPILOT_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\nexport const COPILOT_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const COPILOT_LEGACY_HOOKS_DIR = '.github/copilot-hooks';\n\n/** Global mode paths (user home directory) */\nexport const COPILOT_GLOBAL_ROOT = '.copilot';\nexport const COPILOT_GLOBAL_INSTRUCTIONS = '.copilot/copilot-instructions.md';\nexport const COPILOT_GLOBAL_AGENTS_DIR = '.copilot/agents';\nexport const COPILOT_GLOBAL_SKILLS_DIR = '.copilot/skills';\nexport const COPILOT_GLOBAL_PROMPTS_DIR = '.copilot/prompts';\nexport const COPILOT_GLOBAL_AGENTS_MD = '.copilot/AGENTS.md';\n\n/** Compatibility mirror paths for skills */\nexport const COPILOT_GLOBAL_CLAUDE_SKILLS_DIR = '.claude/skills';\nexport const COPILOT_GLOBAL_AGENTS_SKILLS_DIR = '.agents/skills';\n","import { basename } from 'node:path';\nimport type { CanonicalCommand } from '../../core/types.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { COPILOT_PROMPTS_DIR } from './constants.js';\n\ninterface ParsedCommandPrompt {\n name: string;\n description: string;\n allowedTools: string[];\n}\n\nfunction toStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.filter((entry): entry is string => typeof entry === 'string' && entry.length > 0);\n }\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport function commandPromptPath(name: string): string {\n return `${COPILOT_PROMPTS_DIR}/${name}.prompt.md`;\n}\n\nexport function serializeCommandPrompt(command: CanonicalCommand): string {\n const frontmatter: Record<string, unknown> = {\n agent: 'agent',\n description: command.description || undefined,\n 'x-agentsmesh-kind': 'command',\n 'x-agentsmesh-name': command.name,\n 'x-agentsmesh-allowed-tools':\n command.allowedTools.length > 0 ? command.allowedTools : undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n if (frontmatter['x-agentsmesh-allowed-tools'] === undefined) {\n delete frontmatter['x-agentsmesh-allowed-tools'];\n }\n return serializeFrontmatter(frontmatter, command.body.trim() || '');\n}\n\nexport function parseCommandPromptFrontmatter(\n frontmatter: Record<string, unknown>,\n promptPath: string,\n): ParsedCommandPrompt {\n const nameFromMetadata =\n typeof frontmatter['x-agentsmesh-name'] === 'string' ? frontmatter['x-agentsmesh-name'] : '';\n const name = (nameFromMetadata || basename(promptPath, '.prompt.md')).trim();\n const allowedToolsFromMetadata = toStringArray(frontmatter['x-agentsmesh-allowed-tools']);\n const allowedTools =\n allowedToolsFromMetadata.length > 0\n ? allowedToolsFromMetadata\n : toStringArray(frontmatter.tools);\n\n return {\n name,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n allowedTools,\n };\n}\n\nexport function serializeImportedCommand(command: ParsedCommandPrompt, body: string): string {\n return serializeFrontmatter(\n {\n description: command.description,\n 'allowed-tools': command.allowedTools,\n },\n body.trim() || '',\n );\n}\n","import type { HookEntry } from '../../core/types.js';\nimport { hasHookCommand as hasNonEmptyHookCommand } from '../../core/hook-command.js';\n\nexport function hasHookCommand(entry: HookEntry): boolean {\n return hasNonEmptyHookCommand(entry);\n}\n","/**\n * Generate GitHub Copilot config files from canonical sources.\n * Copilot uses .github/copilot-instructions.md (global), .github/instructions/*.instructions.md (scoped rules),\n * .github/prompts/*.prompt.md (native prompt files), .github/skills/{name}/ (native skills),\n * .github/agents/*.agent.md (native agents), .github/hooks/agentsmesh.json (+ scripts) for hooks.\n */\n\nimport { basename } from 'node:path';\nimport type { CanonicalFiles } from '../../core/types.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n COPILOT_INSTRUCTIONS,\n COPILOT_HOOKS_DIR,\n COPILOT_INSTRUCTIONS_DIR,\n COPILOT_SKILLS_DIR,\n COPILOT_AGENTS_DIR,\n} from './constants.js';\nimport { commandPromptPath, serializeCommandPrompt } from './command-prompt.js';\nimport { hasHookCommand } from './hook-entry.js';\n\nexport interface RulesOutput {\n path: string;\n content: string;\n}\n\nfunction ruleSlug(source: string): string {\n const name = basename(source, '.md');\n return name === '_root' ? 'root' : name;\n}\n\nfunction mapHookEvent(event: string): string | null {\n switch (event) {\n case 'PreToolUse':\n return 'preToolUse';\n case 'PostToolUse':\n return 'postToolUse';\n case 'Notification':\n return 'notification';\n case 'UserPromptSubmit':\n return 'userPromptSubmitted';\n default:\n return null;\n }\n}\n\n/**\n * Render all canonical rules into a single copilot-instructions.md for global mode.\n * Root rule body first, then non-root rules appended as sections.\n */\nexport function renderCopilotGlobalInstructions(canonical: CanonicalFiles): string {\n const parts: string[] = [];\n const root = canonical.rules.find((r) => r.root);\n if (root?.body.trim()) parts.push(root.body.trim());\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('copilot')) continue;\n const body = rule.body.trim();\n if (!body) continue;\n const header = rule.description ? `## ${rule.description}` : null;\n if (header) parts.push(`${header}\\n\\n${body}`);\n else parts.push(body);\n }\n return parts.join('\\n\\n');\n}\n\n/**\n * Build .github/copilot-instructions.md from the canonical root rule.\n * @param canonical - Loaded canonical files\n * @returns Array with copilot-instructions.md output, or [] if no root rule\n */\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const root = canonical.rules.find((r) => r.root);\n const outputs: RulesOutput[] = [];\n\n if (root) {\n outputs.push({\n path: COPILOT_INSTRUCTIONS,\n content: root.body.trim() || '',\n });\n }\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('copilot')) continue;\n if (rule.globs.length === 0) continue; // only emit when globs are present\n const slug = ruleSlug(rule.source);\n const frontmatter: Record<string, unknown> = {\n description: rule.description || undefined,\n applyTo: rule.globs.length === 1 ? rule.globs[0] : rule.globs,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content = serializeFrontmatter(frontmatter, rule.body.trim() || '');\n outputs.push({ path: `${COPILOT_INSTRUCTIONS_DIR}/${slug}.instructions.md`, content });\n }\n\n return outputs;\n}\n\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map((command) => ({\n path: commandPromptPath(command.name),\n content: serializeCommandPrompt(command),\n }));\n}\n\n/**\n * Generate .github/skills/{name}/SKILL.md and supporting files from canonical skills.\n * Copilot Agent Skills use SKILL.md with name/description frontmatter.\n * @param canonical - Loaded canonical files\n * @returns Array of skill file outputs\n */\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const skillContent = serializeFrontmatter(frontmatter, skill.body.trim() || '');\n outputs.push({\n path: `${COPILOT_SKILLS_DIR}/${skill.name}/SKILL.md`,\n content: skillContent,\n });\n for (const file of skill.supportingFiles) {\n const relPath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${COPILOT_SKILLS_DIR}/${skill.name}/${relPath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n\n/**\n * Generate .github/agents/{name}.agent.md from canonical agents.\n * Copilot custom agents use .agent.md extension with YAML frontmatter.\n * @param canonical - Loaded canonical files\n * @returns Array of agent file outputs\n */\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n description: agent.description,\n tools: agent.tools.length > 0 ? agent.tools : undefined,\n model: agent.model || undefined,\n 'mcp-servers': agent.mcpServers.length > 0 ? agent.mcpServers : undefined,\n skills: agent.skills.length > 0 ? agent.skills : undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content = serializeFrontmatter(frontmatter, agent.body.trim() || '');\n return { path: `${COPILOT_AGENTS_DIR}/${agent.name}.agent.md`, content };\n });\n}\n\n/**\n * Generate .github/hooks/agentsmesh.json from canonical hooks.\n */\nexport function generateHooks(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.hooks) return [];\n const hooks = Object.fromEntries(\n Object.entries(canonical.hooks).flatMap(([event, entries]) => {\n const mappedEvent = mapHookEvent(event);\n if (!mappedEvent || !Array.isArray(entries)) return [];\n const mappedEntries = entries\n .filter(\n (entry): entry is NonNullable<typeof entry> =>\n typeof entry === 'object' && entry !== null && hasHookCommand(entry),\n )\n .map((entry, index) => {\n const safePhase = event.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();\n const hook: Record<string, unknown> = {\n type: 'command',\n bash: `./scripts/${safePhase}-${index}.sh`,\n comment: `Matcher: ${entry.matcher}`,\n };\n if (entry.timeout !== undefined) hook.timeoutSec = Math.ceil(entry.timeout / 1000);\n return hook;\n });\n return mappedEntries.length > 0 ? [[mappedEvent, mappedEntries] as const] : [];\n }),\n );\n if (Object.keys(hooks).length === 0) return [];\n return [\n {\n path: `${COPILOT_HOOKS_DIR}/agentsmesh.json`,\n content: JSON.stringify({ version: 1, hooks }, null, 2),\n },\n ];\n}\n","/**\n * Copilot hook parsing helpers — event mapping, wrapper command extraction, and hook import.\n */\n\nimport { join, dirname, basename } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { stringify as yamlStringify } from 'yaml';\nimport {\n COPILOT_TARGET,\n COPILOT_HOOKS_DIR,\n COPILOT_CANONICAL_HOOKS,\n COPILOT_LEGACY_HOOKS_DIR,\n} from './constants.js';\n\nexport function mapCopilotHookEvent(event: string): string | null {\n switch (event) {\n case 'preToolUse':\n return 'PreToolUse';\n case 'postToolUse':\n return 'PostToolUse';\n case 'notification':\n return 'Notification';\n case 'userPromptSubmitted':\n return 'UserPromptSubmit';\n default:\n return null;\n }\n}\n\nexport function extractMatcher(comment: unknown): string {\n if (typeof comment !== 'string') return '*';\n const match = comment.match(/^Matcher:\\s*(.+)$/);\n return match?.[1]?.trim() || '*';\n}\n\nexport function extractWrapperCommand(content: string): string {\n const metadataMatch = content.match(/^# agentsmesh-command:\\s*(.+)$/m);\n if (metadataMatch?.[1]) return metadataMatch[1].trim();\n return content\n .replace(/^#!.*\\n/, '')\n .replace(/^#.*\\n/gm, '')\n .replace(/^HOOK_DIR=.*\\n/gm, '')\n .replace(/^set -e\\n?/m, '')\n .trim();\n}\n\n/**\n * Import Copilot hook JSON configs (.github/hooks/*.json) into canonical hooks.yaml.\n * Also supports legacy .github/copilot-hooks/*.sh wrappers for backwards compatibility.\n */\nexport async function importHooks(projectRoot: string, results: ImportResult[]): Promise<void> {\n const hooksDir = join(projectRoot, COPILOT_HOOKS_DIR);\n const allFiles = await readDirRecursive(hooksDir).catch(() => []);\n const jsonFiles = allFiles.filter((file) => file.endsWith('.json'));\n const hooks: Record<string, Array<{ matcher: string; command: string; type: string }>> = {};\n\n for (const srcPath of jsonFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n let parsed: Record<string, unknown>;\n try {\n parsed = JSON.parse(content) as Record<string, unknown>;\n } catch {\n continue;\n }\n if (!parsed || typeof parsed.hooks !== 'object' || parsed.hooks === null) continue;\n for (const [event, entries] of Object.entries(parsed.hooks as Record<string, unknown>)) {\n const canonicalEvent = mapCopilotHookEvent(event);\n if (!canonicalEvent || !Array.isArray(entries)) continue;\n for (const entry of entries) {\n if (!entry || typeof entry !== 'object') continue;\n const entryRecord = entry as Record<string, unknown>;\n const bashPath = typeof entryRecord.bash === 'string' ? entryRecord.bash : '';\n if (!bashPath) continue;\n const scriptPath = join(hooksDir, bashPath.replace(/^\\.\\//, ''));\n const scriptContent = await readFileSafe(scriptPath);\n if (!scriptContent) continue;\n const command = extractWrapperCommand(scriptContent);\n if (!command) continue;\n if (!hooks[canonicalEvent]) hooks[canonicalEvent] = [];\n hooks[canonicalEvent]!.push({\n matcher: extractMatcher(entryRecord.comment),\n command,\n type: 'command',\n });\n }\n }\n }\n\n const legacyDir = join(projectRoot, COPILOT_LEGACY_HOOKS_DIR);\n const legacyFiles = await readDirRecursive(legacyDir).catch(() => []);\n const shFiles = legacyFiles.filter(\n (file) => dirname(file) === legacyDir && /^[^-]+-\\d+\\.sh$/i.test(basename(file)),\n );\n for (const srcPath of shFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const name = basename(srcPath, '.sh');\n const dashIdx = name.lastIndexOf('-');\n const phase = dashIdx > 0 ? name.slice(0, dashIdx) : name;\n if (!hooks[phase]) hooks[phase] = [];\n hooks[phase]!.push({ matcher: '*', command: extractWrapperCommand(content), type: 'command' });\n }\n\n if (Object.keys(hooks).length === 0) return;\n\n const destPath = join(projectRoot, COPILOT_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, yamlStringify(hooks));\n results.push({\n fromTool: COPILOT_TARGET,\n fromPath: join(projectRoot, COPILOT_HOOKS_DIR),\n toPath: COPILOT_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n}\n","import { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedCommandWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { COPILOT_PROMPTS_DIR, COPILOT_CANONICAL_COMMANDS_DIR } from './constants.js';\nimport { parseCommandPromptFrontmatter } from './command-prompt.js';\n\nexport async function importCopilotCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n promptsDirRel: string = COPILOT_PROMPTS_DIR,\n): Promise<void> {\n const promptsDir = join(projectRoot, promptsDirRel);\n const destDir = join(projectRoot, COPILOT_CANONICAL_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: promptsDir,\n destDir,\n extensions: ['.prompt.md'],\n fromTool: 'copilot',\n normalize,\n mapEntry: async ({ srcPath, relativePath, content }) => {\n const previewRelativePath = relativePath.replace(/\\.prompt\\.md$/i, '.md');\n const previewDest = join(destDir, previewRelativePath);\n const { frontmatter, body } = parseFrontmatter(normalize(content, srcPath, previewDest));\n const command = parseCommandPromptFrontmatter(frontmatter, srcPath);\n const relDir = previewRelativePath.includes('/')\n ? previewRelativePath.slice(0, previewRelativePath.lastIndexOf('/'))\n : '';\n const fileName = `${command.name}.md`;\n const relativeCommandPath = relDir ? `${relDir}/${fileName}` : fileName;\n const destPath = join(destDir, relativeCommandPath);\n return {\n destPath,\n toPath: `${COPILOT_CANONICAL_COMMANDS_DIR}/${relativeCommandPath}`,\n feature: 'commands',\n content: await serializeImportedCommandWithFallback(\n destPath,\n {\n description: command.description,\n hasDescription: Object.prototype.hasOwnProperty.call(frontmatter, 'description'),\n allowedTools: command.allowedTools,\n hasAllowedTools:\n Object.prototype.hasOwnProperty.call(frontmatter, 'tools') ||\n Object.prototype.hasOwnProperty.call(frontmatter, 'x-agentsmesh-allowed-tools'),\n },\n body,\n ),\n };\n },\n })),\n );\n}\n","/**\n * Import Copilot `.github/agents/*.agent.md` into canonical `.agentsmesh/agents/`.\n */\n\nimport { join, basename, dirname, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedAgentWithFallback } from '../import/import-metadata.js';\nimport { COPILOT_TARGET, COPILOT_AGENTS_DIR, COPILOT_CANONICAL_AGENTS_DIR } from './constants.js';\n\nexport async function importAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n agentsDirRel: string = COPILOT_AGENTS_DIR,\n): Promise<void> {\n const agentsDir = join(projectRoot, agentsDirRel);\n let files: string[];\n try {\n files = await readDirRecursive(agentsDir);\n } catch {\n return;\n }\n const agentFiles = files.filter((f) => f.endsWith('.agent.md'));\n const destDir = join(projectRoot, COPILOT_CANONICAL_AGENTS_DIR);\n for (const srcPath of agentFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const relativePath = relative(agentsDir, srcPath).replace(/\\\\/g, '/');\n const relativeMdPath = relativePath.replace(/\\.agent\\.md$/i, '.md');\n const base = basename(relativeMdPath, '.md');\n const destPath = join(destDir, relativeMdPath);\n await mkdirp(dirname(destPath));\n const { frontmatter, body } = parseFrontmatter(normalize(content, srcPath, destPath));\n const outContent = await serializeImportedAgentWithFallback(\n destPath,\n {\n ...frontmatter,\n name: typeof frontmatter.name === 'string' ? frontmatter.name : base,\n },\n body,\n );\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: COPILOT_TARGET,\n fromPath: srcPath,\n toPath: `${COPILOT_CANONICAL_AGENTS_DIR}/${relativeMdPath}`,\n feature: 'agents',\n });\n }\n}\n","/**\n * Copilot skills import adapter - thin wrapper around shared pipeline.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n findDirectorySkills,\n importDirectorySkill,\n type SkillImportOptions,\n} from '../import/shared/skill-import-pipeline.js';\nimport { COPILOT_TARGET, COPILOT_SKILLS_DIR, COPILOT_CANONICAL_SKILLS_DIR } from './constants.js';\n\nexport async function importSkills(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n skillsDirRel: string = COPILOT_SKILLS_DIR,\n): Promise<void> {\n const skillsDir = join(projectRoot, skillsDirRel);\n const directorySkills = await findDirectorySkills(skillsDir);\n\n const options: SkillImportOptions = {\n projectRoot,\n sourceSkillsDir: skillsDirRel,\n destCanonicalSkillsDir: COPILOT_CANONICAL_SKILLS_DIR,\n targetName: COPILOT_TARGET,\n normalize,\n results,\n };\n\n for (const [skillName, skillDir] of directorySkills) {\n await importDirectorySkill(skillName, skillDir, options);\n }\n}\n","/**\n * Copilot target importer — .github/copilot-instructions.md, .github/copilot/*.instructions.md (legacy),\n * .github/instructions/*.instructions.md, .github/prompts/*.prompt.md, .github/skills/**,\n * .github/agents/*.agent.md, .github/hooks/*.json (and legacy .github/copilot-hooks/*.sh) → canonical\n * .agentsmesh/.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { toGlobsArray } from '../import/shared-import-helpers.js';\nimport {\n COPILOT_TARGET,\n COPILOT_INSTRUCTIONS,\n COPILOT_CONTEXT_DIR,\n COPILOT_INSTRUCTIONS_DIR,\n COPILOT_PROMPTS_DIR,\n COPILOT_AGENTS_DIR,\n COPILOT_SKILLS_DIR,\n COPILOT_GLOBAL_INSTRUCTIONS,\n COPILOT_GLOBAL_PROMPTS_DIR,\n COPILOT_GLOBAL_AGENTS_DIR,\n COPILOT_GLOBAL_SKILLS_DIR,\n COPILOT_CANONICAL_RULES_DIR,\n} from './constants.js';\nimport { importHooks } from './hook-parser.js';\nimport { importCopilotCommands } from './importer-commands.js';\nimport { importAgents } from './importer-agents.js';\nimport { importSkills } from './skills-adapter.js';\n\n/**\n * Import Copilot rules into canonical .agentsmesh/rules.\n * Sources: .github/copilot-instructions.md (root) and .github/copilot/*.instructions.md.\n * Strips .instructions suffix for slug. Preserves description and globs.\n *\n * @param projectRoot - Project root directory (repo root, or user home for `scope: 'global'`)\n * @param options - `scope: 'global'` reads from `~/.copilot/` native paths instead of `.github/`\n * @returns Import results for each imported file\n */\nexport async function importFromCopilot(\n projectRoot: string,\n options: { scope?: TargetLayoutScope } = {},\n): Promise<ImportResult[]> {\n const scope = options.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(COPILOT_TARGET, projectRoot, scope);\n const destDir = join(projectRoot, COPILOT_CANONICAL_RULES_DIR);\n\n const instructionsRel = scope === 'global' ? COPILOT_GLOBAL_INSTRUCTIONS : COPILOT_INSTRUCTIONS;\n const instructionsPath = join(projectRoot, instructionsRel);\n const instructionsContent = await readFileSafe(instructionsPath);\n if (instructionsContent !== null) {\n await mkdirp(destDir);\n const destPath = join(destDir, '_root.md');\n const { frontmatter, body } = parseFrontmatter(\n normalize(instructionsContent, instructionsPath, destPath),\n );\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'copilot',\n fromPath: instructionsPath,\n toPath: `${COPILOT_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n\n if (scope === 'project') {\n const copilotDir = join(projectRoot, COPILOT_CONTEXT_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: copilotDir,\n destDir,\n extensions: ['.instructions.md'],\n fromTool: 'copilot',\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destFileName = relativePath.replace(/\\.instructions\\.md$/i, '.md');\n const destPath = join(destDir, destFileName);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const globs = toGlobsArray(frontmatter.globs);\n const canonicalFm: Record<string, unknown> = {\n root: false,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: globs.length > 0 ? globs : undefined,\n };\n Object.keys(canonicalFm).forEach((key) => {\n if (canonicalFm[key] === undefined) delete canonicalFm[key];\n });\n return {\n destPath,\n toPath: `${COPILOT_CANONICAL_RULES_DIR}/${destFileName}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(destPath, canonicalFm, body),\n };\n },\n })),\n );\n\n // New path: .github/instructions/*.md (uses applyTo key instead of globs)\n const newInstDir = join(projectRoot, COPILOT_INSTRUCTIONS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: newInstDir,\n destDir,\n extensions: ['.instructions.md', '.md'],\n fromTool: 'copilot',\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const relativeMdPath = relativePath.endsWith('.instructions.md')\n ? relativePath.replace(/\\.instructions\\.md$/i, '.md')\n : relativePath;\n const destPath = join(destDir, relativeMdPath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const globs = toGlobsArray(\n frontmatter.applyTo !== undefined ? frontmatter.applyTo : frontmatter.globs,\n );\n const canonicalFm: Record<string, unknown> = {\n root: false,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: globs.length > 0 ? globs : undefined,\n };\n Object.keys(canonicalFm).forEach((key) => {\n if (canonicalFm[key] === undefined) delete canonicalFm[key];\n });\n return {\n destPath,\n toPath: `${COPILOT_CANONICAL_RULES_DIR}/${relativeMdPath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(destPath, canonicalFm, body),\n };\n },\n })),\n );\n }\n\n const promptsDirRel = scope === 'global' ? COPILOT_GLOBAL_PROMPTS_DIR : COPILOT_PROMPTS_DIR;\n await importCopilotCommands(projectRoot, results, normalize, promptsDirRel);\n await importAgents(\n projectRoot,\n results,\n normalize,\n scope === 'global' ? COPILOT_GLOBAL_AGENTS_DIR : COPILOT_AGENTS_DIR,\n );\n await importSkills(\n projectRoot,\n results,\n normalize,\n scope === 'global' ? COPILOT_GLOBAL_SKILLS_DIR : COPILOT_SKILLS_DIR,\n );\n if (scope === 'project') {\n await importHooks(projectRoot, results);\n }\n\n return results;\n}\n","/**\n * Copilot target linter — validates canonical files for GitHub Copilot.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { COPILOT_TARGET } from './constants.js';\n\n/**\n * Lint rules for Copilot target.\n * @param canonical - Loaded canonical files\n * @param projectRoot - Project root (for relative paths)\n * @param projectFiles - Relative file paths for glob matching\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n const diags = validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n });\n const targetDiags = diags.map((d) => ({ ...d, target: COPILOT_TARGET }));\n const nonRootWithoutGlobs = canonical.rules.filter(\n (rule) => !rule.root && rule.globs.length === 0,\n );\n return [\n ...targetDiags,\n ...nonRootWithoutGlobs.map((rule) => ({\n level: 'warning' as const,\n file: rule.source,\n target: COPILOT_TARGET,\n message:\n 'Copilot path-specific instructions require applyTo globs; non-root rules without globs are not generated.',\n })),\n ];\n}\n","/**\n * Copilot-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning, createUnsupportedHookWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintCommands(canonical: CanonicalFiles): LintDiagnostic[] {\n return canonical.commands\n .filter((command) => command.allowedTools.length > 0)\n .map((command) =>\n createWarning(\n command.source,\n 'copilot',\n 'Copilot prompt files do not enforce canonical allowed-tools natively.',\n ),\n );\n}\n\nexport function lintHooks(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const supported = ['PreToolUse', 'PostToolUse', 'Notification', 'UserPromptSubmit'] as const;\n const supportedSet = new Set(supported);\n return Object.keys(canonical.hooks)\n .filter((event) => !supportedSet.has(event as never))\n .map((event) =>\n createUnsupportedHookWarning(event, 'copilot', supported, {\n unsupportedBy: 'Copilot hooks',\n }),\n );\n}\n","import { join, relative } from 'node:path';\nimport type { CanonicalFiles } from '../../core/types.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { COPILOT_HOOKS_DIR } from './constants.js';\nimport type { RulesOutput } from './generator.js';\nimport { hasHookCommand } from './hook-entry.js';\n\nconst SCRIPT_PREFIX_RE =\n /^(?<prefix>\\s*(?:(?:bash|sh|zsh)\\s+)?)[\"']?(?<path>(?:\\.\\.\\/|\\.\\/|[^/\\s\"'`]+\\/)[^\\s\"'`]+)[\"']?(?<suffix>(?:\\s.*)?)$/;\n\nfunction safePhaseName(phase: string): string {\n return phase.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();\n}\n\nfunction toRepoRelative(projectRoot: string, sourcePath: string): string | null {\n const repoRelative = relative(projectRoot, sourcePath).replace(/\\\\/g, '/');\n if (!repoRelative || repoRelative.startsWith('../')) return null;\n return repoRelative;\n}\n\nfunction rewriteWrapperCommand(command: string, assetRelativePath: string): string {\n const match = command.match(SCRIPT_PREFIX_RE);\n if (!match?.groups) return command;\n const prefix = match.groups['prefix'] ?? '';\n const suffix = match.groups['suffix'] ?? '';\n return `${prefix}\"$HOOK_DIR/${assetRelativePath}\"${suffix}`;\n}\n\nasync function buildAssetOutput(\n projectRoot: string,\n command: string,\n): Promise<{ assetPath: string; content: string; rewrittenCommand: string } | null> {\n const match = command.match(SCRIPT_PREFIX_RE);\n const sourceToken = match?.groups?.['path'];\n if (!sourceToken) return null;\n\n const sourcePath = join(projectRoot, sourceToken);\n const assetContent = await readFileSafe(sourcePath);\n if (assetContent === null) return null;\n\n const repoRelative = toRepoRelative(projectRoot, sourcePath);\n if (!repoRelative) return null;\n\n return {\n assetPath: `${COPILOT_HOOKS_DIR}/scripts/${repoRelative}`,\n content: assetContent,\n rewrittenCommand: rewriteWrapperCommand(command, repoRelative),\n };\n}\n\nfunction wrapperPath(event: string, index: number): string {\n return `${COPILOT_HOOKS_DIR}/scripts/${safePhaseName(event)}-${index}.sh`;\n}\n\nfunction buildWrapper(command: string, matcher: string): string {\n return [\n '#!/usr/bin/env bash',\n `# agentsmesh-matcher: ${matcher}`,\n `# agentsmesh-command: ${command}`,\n 'set -e',\n command,\n '',\n ].join('\\n');\n}\n\nexport async function addHookScriptAssets(\n projectRoot: string,\n canonical: CanonicalFiles,\n outputs: RulesOutput[],\n): Promise<RulesOutput[]> {\n if (!canonical.hooks) return outputs;\n\n const wrapperOutputs: RulesOutput[] = [];\n const assetOutputs = new Map<string, RulesOutput>();\n\n for (const [event, entries] of Object.entries(canonical.hooks)) {\n if (!Array.isArray(entries)) continue;\n let index = 0;\n for (const entry of entries) {\n if (!hasHookCommand(entry)) continue;\n const scriptPath = wrapperPath(event, index);\n let command = entry.command;\n const asset = await buildAssetOutput(projectRoot, entry.command);\n if (asset) {\n command = asset.rewrittenCommand;\n if (!assetOutputs.has(asset.assetPath)) {\n assetOutputs.set(asset.assetPath, { path: asset.assetPath, content: asset.content });\n }\n }\n\n const wrapper = buildWrapper(command, entry.matcher).replace(\n 'set -e\\n',\n 'set -e\\nHOOK_DIR=\"$(cd \"$(dirname \"${BASH_SOURCE[0]}\")\" && pwd)\"\\n',\n );\n wrapperOutputs.push({ path: scriptPath, content: wrapper });\n index++;\n }\n }\n\n return [...outputs, ...wrapperOutputs, ...assetOutputs.values()];\n}\n","import { join } from 'node:path';\nimport type { ScopeExtrasFn } from '../catalog/target-descriptor.js';\nimport type { GenerateResult } from '../../core/types.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { COPILOT_GLOBAL_AGENTS_MD } from './constants.js';\n\nfunction computeStatus(existing: string | null, content: string): GenerateResult['status'] {\n if (existing === null) return 'created';\n if (existing !== content) return 'updated';\n return 'unchanged';\n}\n\n/**\n * Emits ~/.copilot/AGENTS.md from root rule body in global scope.\n * Used as AGENTS.md compat mirror so other tools reading AGENTS.md see the rules.\n */\nexport const generateCopilotGlobalExtras: ScopeExtrasFn = async (\n canonical,\n projectRoot,\n scope,\n enabledFeatures,\n) => {\n if (scope !== 'global' || !enabledFeatures.has('rules')) return [];\n const root = canonical.rules.find((r) => r.root);\n if (!root) return [];\n const content = root.body.trim();\n const existing = await readFileSafe(join(projectRoot, COPILOT_GLOBAL_AGENTS_MD));\n return [\n {\n target: 'copilot',\n path: COPILOT_GLOBAL_AGENTS_MD,\n content,\n currentContent: existing ?? undefined,\n status: computeStatus(existing, content),\n },\n ];\n};\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateHooks,\n renderCopilotGlobalInstructions,\n} from './generator.js';\nimport {\n COPILOT_INSTRUCTIONS,\n COPILOT_INSTRUCTIONS_DIR,\n COPILOT_AGENTS_DIR,\n COPILOT_PROMPTS_DIR,\n COPILOT_SKILLS_DIR,\n COPILOT_HOOKS_DIR,\n COPILOT_GLOBAL_INSTRUCTIONS,\n COPILOT_GLOBAL_AGENTS_DIR,\n COPILOT_GLOBAL_SKILLS_DIR,\n COPILOT_GLOBAL_PROMPTS_DIR,\n COPILOT_GLOBAL_AGENTS_SKILLS_DIR,\n COPILOT_GLOBAL_AGENTS_MD,\n COPILOT_GLOBAL_CLAUDE_SKILLS_DIR,\n} from './constants.js';\nimport { importFromCopilot } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { buildCopilotImportPaths } from '../../core/reference/import-map-builders.js';\nimport { commandPromptPath } from './command-prompt.js';\nimport { lintCommands, lintHooks } from './lint.js';\nimport { addHookScriptAssets } from './hook-assets.js';\nimport { generateCopilotGlobalExtras } from './scope-extras.js';\n\nexport const target: TargetGenerators = {\n name: 'copilot',\n primaryRootInstructionPath: COPILOT_INSTRUCTIONS,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateHooks,\n importFrom: importFromCopilot,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: COPILOT_INSTRUCTIONS,\n outputFamilies: [{ id: 'instructions', kind: 'additional', pathPrefix: '.github/instructions/' }],\n skillDir: '.github/skills',\n managedOutputs: {\n dirs: [\n '.github/agents',\n '.github/instructions',\n '.github/prompts',\n '.github/skills',\n '.github/hooks/scripts',\n ],\n files: ['.github/copilot-instructions.md', '.github/hooks/agentsmesh.json'],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${COPILOT_INSTRUCTIONS_DIR}/${slug}.instructions.md`;\n },\n commandPath(name, _config) {\n return commandPromptPath(name);\n },\n agentPath(name, _config) {\n return `${COPILOT_AGENTS_DIR}/${name}.agent.md`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: COPILOT_GLOBAL_INSTRUCTIONS,\n renderPrimaryRootInstruction: renderCopilotGlobalInstructions,\n outputFamilies: [\n { id: 'compat-agents', kind: 'additional', explicitPaths: [COPILOT_GLOBAL_AGENTS_MD] },\n ],\n skillDir: COPILOT_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n COPILOT_GLOBAL_AGENTS_DIR,\n COPILOT_GLOBAL_SKILLS_DIR,\n COPILOT_GLOBAL_PROMPTS_DIR,\n COPILOT_GLOBAL_AGENTS_SKILLS_DIR,\n COPILOT_GLOBAL_CLAUDE_SKILLS_DIR,\n ],\n files: [COPILOT_GLOBAL_INSTRUCTIONS, COPILOT_GLOBAL_AGENTS_MD],\n },\n rewriteGeneratedPath(path) {\n // Transform project-level .github/ paths to global ~/.copilot/ paths\n if (path === COPILOT_INSTRUCTIONS) {\n return COPILOT_GLOBAL_INSTRUCTIONS;\n }\n if (path.startsWith(`${COPILOT_INSTRUCTIONS_DIR}/`)) {\n // Glob-scoped instructions aggregate into the single root instructions file in global mode\n return COPILOT_GLOBAL_INSTRUCTIONS;\n }\n if (path.startsWith(`${COPILOT_PROMPTS_DIR}/`)) {\n return path.replace(`${COPILOT_PROMPTS_DIR}/`, `${COPILOT_GLOBAL_PROMPTS_DIR}/`);\n }\n if (path.startsWith(`${COPILOT_AGENTS_DIR}/`)) {\n return path.replace(`${COPILOT_AGENTS_DIR}/`, `${COPILOT_GLOBAL_AGENTS_DIR}/`);\n }\n if (path.startsWith(`${COPILOT_SKILLS_DIR}/`)) {\n return path.replace(`${COPILOT_SKILLS_DIR}/`, `${COPILOT_GLOBAL_SKILLS_DIR}/`);\n }\n // Skip hooks in global mode\n if (path.startsWith(`${COPILOT_HOOKS_DIR}/`)) {\n return null;\n }\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n // Mirror ~/.copilot/skills/ to ~/.agents/skills/ and ~/.claude/skills/ unless codex-cli owns it\n if (path.startsWith(`${COPILOT_GLOBAL_SKILLS_DIR}/`) && !activeTargets.includes('codex-cli')) {\n const rel = path.slice(COPILOT_GLOBAL_SKILLS_DIR.length + 1);\n return [`.agents/skills/${rel}`, `${COPILOT_GLOBAL_CLAUDE_SKILLS_DIR}/${rel}`];\n }\n return null;\n },\n paths: {\n rulePath(_slug, _rule) {\n // Global mode uses single instructions file, not per-rule files\n return COPILOT_GLOBAL_INSTRUCTIONS;\n },\n commandPath(name, _config) {\n return `${COPILOT_GLOBAL_PROMPTS_DIR}/${name}.prompt.md`;\n },\n agentPath(name, _config) {\n return `${COPILOT_GLOBAL_AGENTS_DIR}/${name}.agent.md`;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'none',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'copilot',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'none',\n hooks: 'partial',\n ignore: 'none',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Copilot config found (.github/copilot-instructions.md, .github/copilot or .github/instructions, .github/prompts, .github/skills, .github/agents, or .github/hooks).',\n lintRules,\n lint: {\n commands: lintCommands,\n hooks: lintHooks,\n },\n postProcessHookOutputs: async (projectRoot, canonical, outputs) =>\n addHookScriptAssets(projectRoot, canonical, [...outputs]),\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n COPILOT_GLOBAL_INSTRUCTIONS,\n COPILOT_GLOBAL_AGENTS_MD,\n COPILOT_GLOBAL_AGENTS_DIR,\n COPILOT_GLOBAL_SKILLS_DIR,\n COPILOT_GLOBAL_PROMPTS_DIR,\n COPILOT_GLOBAL_AGENTS_SKILLS_DIR,\n ],\n layout: global,\n scopeExtras: generateCopilotGlobalExtras,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildCopilotImportPaths,\n detectionPaths: [\n '.github/copilot-instructions.md',\n '.github/copilot',\n '.github/instructions',\n '.github/prompts',\n '.github/skills',\n '.github/agents',\n '.github/hooks',\n ],\n} satisfies TargetDescriptor;\n","import { readdir } from 'node:fs/promises';\nimport { dirname, join, relative } from 'node:path';\nimport type { CanonicalFiles, ImportResult } from '../../core/types.js';\nimport {\n mkdirp,\n readDirRecursive,\n readFileSafe,\n writeFileAtomic,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter, serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedSkillWithFallback } from './import-metadata.js';\n\nconst AB_SKILLS = '.agentsmesh/skills';\n\nexport interface EmbeddedSkillOutput {\n path: string;\n content: string;\n}\n\nexport function generateEmbeddedSkills(\n canonical: CanonicalFiles,\n skillsDir: string,\n): EmbeddedSkillOutput[] {\n const outputs: EmbeddedSkillOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n outputs.push({\n path: `${skillsDir}/${skill.name}/SKILL.md`,\n content: serializeFrontmatter(frontmatter, skill.body.trim() || ''),\n });\n for (const file of skill.supportingFiles) {\n const relativePath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${skillsDir}/${skill.name}/${relativePath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n\nexport async function importEmbeddedSkills(\n projectRoot: string,\n skillsDir: string,\n fromTool: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const entries = await readdir(join(projectRoot, skillsDir), {\n encoding: 'utf8',\n withFileTypes: true,\n }).catch(() => null);\n if (entries === null) return;\n\n for (const entry of entries) {\n if (!entry.isDirectory()) continue;\n const sourceSkillDir = join(projectRoot, skillsDir, entry.name);\n const sourceSkillFile = join(sourceSkillDir, 'SKILL.md');\n const sourceSkillContent = await readFileSafe(sourceSkillFile);\n if (sourceSkillContent === null) continue;\n\n const destinationSkillDir = join(projectRoot, AB_SKILLS, entry.name);\n const destinationSkillFile = join(destinationSkillDir, 'SKILL.md');\n const { frontmatter, body } = parseFrontmatter(\n normalize(sourceSkillContent, sourceSkillFile, destinationSkillFile),\n );\n const output = await serializeImportedSkillWithFallback(\n destinationSkillFile,\n { ...frontmatter, name: entry.name },\n body,\n );\n await mkdirp(destinationSkillDir);\n await writeFileAtomic(destinationSkillFile, output);\n results.push({\n fromTool,\n fromPath: sourceSkillFile,\n toPath: `${AB_SKILLS}/${entry.name}/SKILL.md`,\n feature: 'skills',\n });\n\n const sourceFiles = await readDirRecursive(sourceSkillDir);\n for (const sourcePath of sourceFiles) {\n if (sourcePath === sourceSkillFile) continue;\n const relativePath = relative(sourceSkillDir, sourcePath).replace(/\\\\/g, '/');\n const sourceContent = await readFileSafe(sourcePath);\n if (sourceContent === null) continue;\n const destinationPath = join(destinationSkillDir, relativePath);\n await mkdirp(dirname(destinationPath));\n await writeFileAtomic(destinationPath, normalize(sourceContent, sourcePath, destinationPath));\n results.push({\n fromTool,\n fromPath: sourcePath,\n toPath: `${AB_SKILLS}/${entry.name}/${relativePath}`,\n feature: 'skills',\n });\n }\n }\n}\n","import { basename } from 'node:path';\nimport type { CanonicalCommand } from '../../core/types.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { CONTINUE_PROMPTS_DIR } from './constants.js';\n\ninterface ParsedCommandRule {\n name: string;\n description: string;\n allowedTools: string[];\n}\n\nfunction toStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value.filter((entry): entry is string => typeof entry === 'string' && entry.length > 0);\n }\n if (typeof value === 'string' && value.length > 0) {\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport function continueCommandRulePath(name: string): string {\n return `${CONTINUE_PROMPTS_DIR}/${name}.md`;\n}\n\nexport function serializeCommandRule(command: CanonicalCommand): string {\n const frontmatter: Record<string, unknown> = {\n description: command.description || undefined,\n 'x-agentsmesh-kind': 'command',\n 'x-agentsmesh-name': command.name,\n 'x-agentsmesh-allowed-tools':\n command.allowedTools.length > 0 ? command.allowedTools : undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n if (frontmatter['x-agentsmesh-allowed-tools'] === undefined) {\n delete frontmatter['x-agentsmesh-allowed-tools'];\n }\n return serializeFrontmatter(frontmatter, command.body.trim() || '');\n}\n\nexport function parseCommandRuleFrontmatter(\n frontmatter: Record<string, unknown>,\n filePath: string,\n): ParsedCommandRule {\n const fileName = basename(filePath, '.md');\n const fromMetadata =\n typeof frontmatter['x-agentsmesh-name'] === 'string' ? frontmatter['x-agentsmesh-name'] : '';\n const name = (fromMetadata || fileName).trim();\n return {\n name,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n allowedTools: toStringArray(frontmatter['x-agentsmesh-allowed-tools']),\n };\n}\n\nexport function serializeImportedCommand(command: ParsedCommandRule, body: string): string {\n const frontmatter: Record<string, unknown> = {\n description: command.description || undefined,\n 'allowed-tools': command.allowedTools.length > 0 ? command.allowedTools : undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n if (frontmatter['allowed-tools'] === undefined) delete frontmatter['allowed-tools'];\n return serializeFrontmatter(frontmatter, body.trim() || '');\n}\n","import type { CanonicalFiles } from '../../core/types.js';\nimport { generateEmbeddedSkills } from '../import/embedded-skill.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeCommandRule } from './command-rule.js';\nimport {\n CONTINUE_MCP_FILE,\n CONTINUE_PROMPTS_DIR,\n CONTINUE_ROOT_RULE,\n CONTINUE_RULES_DIR,\n CONTINUE_SKILLS_DIR,\n} from './constants.js';\n\nexport interface ContinueOutput {\n path: string;\n content: string;\n}\n\nexport function generateRules(canonical: CanonicalFiles): ContinueOutput[] {\n const outputs: ContinueOutput[] = [];\n const root = canonical.rules.find((rule) => rule.root);\n if (root) {\n const frontmatter: Record<string, unknown> = {};\n if (root.description) frontmatter.description = root.description;\n outputs.push({\n path: CONTINUE_ROOT_RULE,\n content: serializeFrontmatter(frontmatter, root.body.trim() || ''),\n });\n }\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('continue')) continue;\n\n const slug = rule.source.split('/').pop()!.replace(/\\.md$/, '');\n const frontmatter: Record<string, unknown> = {};\n if (rule.description) frontmatter.description = rule.description;\n if (rule.globs.length > 0) frontmatter.globs = rule.globs;\n outputs.push({\n path: `${CONTINUE_RULES_DIR}/${slug}.md`,\n content: serializeFrontmatter(frontmatter, rule.body.trim() || ''),\n });\n }\n\n return outputs;\n}\n\nexport function generateCommands(canonical: CanonicalFiles): ContinueOutput[] {\n return canonical.commands.map((command) => ({\n path: `${CONTINUE_PROMPTS_DIR}/${command.name}.md`,\n content: serializeCommandRule(command),\n }));\n}\n\nexport function generateMcp(canonical: CanonicalFiles): ContinueOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n return [\n {\n path: CONTINUE_MCP_FILE,\n content: JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2),\n },\n ];\n}\n\nexport function generateSkills(canonical: CanonicalFiles): ContinueOutput[] {\n return generateEmbeddedSkills(canonical, CONTINUE_SKILLS_DIR);\n}\n","import { basename, extname, join, relative } from 'node:path';\nimport { parse as parseYaml } from 'yaml';\nimport type { ImportResult, McpServer } from '../../core/types.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readDirRecursive, readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { importEmbeddedSkills } from '../import/embedded-skill.js';\nimport {\n serializeImportedCommandWithFallback,\n serializeImportedRuleWithFallback,\n} from '../import/import-metadata.js';\nimport { toStringArray, toStringRecord } from '../import/shared-import-helpers.js';\nimport { parseCommandRuleFrontmatter, serializeImportedCommand } from './command-rule.js';\nimport {\n CONTINUE_TARGET,\n CONTINUE_MCP_DIR,\n CONTINUE_PROMPTS_DIR,\n CONTINUE_RULES_DIR,\n CONTINUE_SKILLS_DIR,\n CONTINUE_CANONICAL_RULES_DIR,\n CONTINUE_CANONICAL_COMMANDS_DIR,\n CONTINUE_CANONICAL_MCP,\n} from './constants.js';\n\nfunction isContinueRootRuleRelativePath(relativePath: string): boolean {\n return relativePath === 'general.md' || relativePath === '_root.md';\n}\n\nfunction readMcpServers(content: string, extension: string): Record<string, McpServer> {\n const parsed =\n extension === '.json'\n ? (JSON.parse(content) as Record<string, unknown>)\n : ((parseYaml(content) as Record<string, unknown>) ?? {});\n const rawServers = parsed.mcpServers;\n\n if (rawServers && typeof rawServers === 'object' && !Array.isArray(rawServers)) {\n const servers: Record<string, McpServer> = {};\n for (const [name, value] of Object.entries(rawServers)) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) continue;\n const server = value as Record<string, unknown>;\n if (typeof server.command === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'stdio',\n command: server.command,\n args: toStringArray(server.args),\n env: toStringRecord(server.env),\n description: typeof server.description === 'string' ? server.description : undefined,\n };\n }\n }\n return servers;\n }\n\n return {};\n}\n\nexport async function importFromContinue(projectRoot: string): Promise<ImportResult[]> {\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(CONTINUE_TARGET, projectRoot);\n await importRules(projectRoot, results, normalize);\n await importCommands(projectRoot, results, normalize);\n await importEmbeddedSkills(projectRoot, CONTINUE_SKILLS_DIR, 'continue', results, normalize);\n await importMcp(projectRoot, results);\n return results;\n}\n\nasync function importRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const files = (await readDirRecursive(join(projectRoot, CONTINUE_RULES_DIR))).filter((file) =>\n file.endsWith('.md'),\n );\n const rulesRoot = join(projectRoot, CONTINUE_RULES_DIR);\n for (const srcPath of files) {\n const source = await readFileSafe(srcPath);\n if (!source) continue;\n const relativePath = relative(rulesRoot, srcPath).replace(/\\\\/g, '/');\n const canonicalRelative = isContinueRootRuleRelativePath(relativePath)\n ? '_root.md'\n : relativePath;\n const destPath = join(projectRoot, CONTINUE_CANONICAL_RULES_DIR, canonicalRelative);\n const { frontmatter, body } = parseFrontmatter(normalize(source, srcPath, destPath));\n const canonicalFrontmatter: Record<string, unknown> = {\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n root: isContinueRootRuleRelativePath(relativePath),\n };\n if (canonicalFrontmatter.description === undefined) delete canonicalFrontmatter.description;\n if (canonicalFrontmatter.globs === undefined) delete canonicalFrontmatter.globs;\n const content = await serializeImportedRuleWithFallback(destPath, canonicalFrontmatter, body);\n await writeFileAtomic(destPath, content);\n results.push({\n fromTool: 'continue',\n fromPath: srcPath,\n toPath: `${CONTINUE_CANONICAL_RULES_DIR}/${canonicalRelative}`,\n feature: 'rules',\n });\n }\n}\n\nasync function importCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const files = (await readDirRecursive(join(projectRoot, CONTINUE_PROMPTS_DIR))).filter((file) =>\n file.endsWith('.md'),\n );\n const promptsRoot = join(projectRoot, CONTINUE_PROMPTS_DIR);\n for (const srcPath of files) {\n const source = await readFileSafe(srcPath);\n if (!source) continue;\n const relativePath = relative(promptsRoot, srcPath).replace(/\\\\/g, '/');\n const destPath = join(projectRoot, CONTINUE_CANONICAL_COMMANDS_DIR, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalize(source, srcPath, destPath));\n const command = parseCommandRuleFrontmatter(frontmatter, srcPath);\n const commandName = command.name || basename(relativePath, '.md');\n const relativeDir = relativePath.includes('/')\n ? relativePath.slice(0, relativePath.lastIndexOf('/'))\n : '';\n const relativeCommandPath = relativeDir\n ? `${relativeDir}/${commandName}.md`\n : `${commandName}.md`;\n const commandPath = join(projectRoot, CONTINUE_CANONICAL_COMMANDS_DIR, relativeCommandPath);\n const content = await serializeImportedCommandWithFallback(\n commandPath,\n {\n description: command.description,\n hasDescription: Boolean(command.description),\n allowedTools: command.allowedTools,\n hasAllowedTools: command.allowedTools.length > 0,\n },\n parseFrontmatter(serializeImportedCommand(command, body)).body,\n );\n await writeFileAtomic(commandPath, content);\n results.push({\n fromTool: 'continue',\n fromPath: srcPath,\n toPath: `${CONTINUE_CANONICAL_COMMANDS_DIR}/${relativeCommandPath}`,\n feature: 'commands',\n });\n }\n}\n\nasync function importMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const files = (await readDirRecursive(join(projectRoot, CONTINUE_MCP_DIR))).filter((file) =>\n ['.json', '.yaml', '.yml'].includes(extname(file)),\n );\n const mergedServers: Record<string, McpServer> = {};\n const importedFrom: string[] = [];\n\n for (const srcPath of files) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n Object.assign(mergedServers, readMcpServers(content, extname(srcPath)));\n importedFrom.push(srcPath);\n }\n\n if (Object.keys(mergedServers).length === 0) return;\n const destPath = join(projectRoot, CONTINUE_CANONICAL_MCP);\n await writeFileAtomic(destPath, JSON.stringify({ mcpServers: mergedServers }, null, 2));\n for (const fromPath of importedFrom) {\n results.push({\n fromTool: CONTINUE_TARGET,\n fromPath,\n toPath: CONTINUE_CANONICAL_MCP,\n feature: 'mcp',\n });\n }\n}\n","import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { CONTINUE_TARGET } from './constants.js';\n\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n return validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n }).map((diagnostic) => ({\n ...diagnostic,\n target: CONTINUE_TARGET,\n }));\n}\n","/**\n * Continue-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintCommands(canonical: CanonicalFiles): LintDiagnostic[] {\n return canonical.commands\n .filter((command) => command.allowedTools.length > 0)\n .map((command) =>\n createWarning(\n command.source,\n 'continue',\n 'Continue invokable prompt rules do not natively enforce canonical allowed-tools metadata.',\n ),\n );\n}\n","import { join, basename } from 'node:path';\nimport { stringify as yamlStringify } from 'yaml';\nimport type { ScopeExtrasFn } from '../catalog/target-descriptor.js';\nimport type { GenerateResult } from '../../core/types.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { CONTINUE_GLOBAL_CONFIG } from './constants.js';\n\nfunction computeStatus(existing: string | null, content: string): GenerateResult['status'] {\n if (existing === null) return 'created';\n if (existing !== content) return 'updated';\n return 'unchanged';\n}\n\n/**\n * Emits ~/.continue/config.yaml aggregating rules, prompts, and mcpServers.\n * Only runs in global scope when at least one of rules/commands/mcp is enabled and non-empty.\n */\nexport const generateContinueGlobalConfig: ScopeExtrasFn = async (\n canonical,\n projectRoot,\n scope,\n enabledFeatures,\n) => {\n if (scope !== 'global') return [];\n\n const hasRules = enabledFeatures.has('rules');\n const hasCommands = enabledFeatures.has('commands');\n const hasMcp = enabledFeatures.has('mcp');\n\n const hasData =\n (hasRules && canonical.rules.length > 0) ||\n (hasCommands && canonical.commands.length > 0) ||\n (hasMcp && canonical.mcp !== null && Object.keys(canonical.mcp.mcpServers).length > 0);\n\n if (!hasData) return [];\n\n const config: Record<string, unknown> = {\n name: 'agentsmesh',\n version: 1,\n schema: 'v1',\n };\n\n if (hasRules && canonical.rules.length > 0) {\n config.rules = canonical.rules.map((rule) => ({\n name: rule.description || basename(rule.source, '.md'),\n rule: rule.body.trim(),\n }));\n }\n\n if (hasCommands && canonical.commands.length > 0) {\n config.prompts = canonical.commands.map((cmd) => {\n const entry: Record<string, unknown> = { name: cmd.name };\n if (cmd.description) entry.description = cmd.description;\n entry.prompt = cmd.body.trim();\n return entry;\n });\n }\n\n if (hasMcp && canonical.mcp !== null) {\n const servers = Object.entries(canonical.mcp.mcpServers);\n if (servers.length > 0) {\n config.mcpServers = servers.map(([name, server]) => ({ name, ...server }));\n }\n }\n\n const content = yamlStringify(config);\n const existing = await readFileSafe(join(projectRoot, CONTINUE_GLOBAL_CONFIG));\n return [\n {\n target: 'continue',\n path: CONTINUE_GLOBAL_CONFIG,\n content,\n currentContent: existing ?? undefined,\n status: computeStatus(existing, content),\n },\n ];\n};\n","import { join } from 'node:path';\nimport type { ScopeExtrasFn } from '../catalog/target-descriptor.js';\nimport type { GenerateResult } from '../../core/types.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport { CONTINUE_GLOBAL_AGENTS_MD } from './constants.js';\nimport { generateContinueGlobalConfig } from './global-config.js';\n\nfunction computeStatus(existing: string | null, content: string): GenerateResult['status'] {\n if (existing === null) return 'created';\n if (existing !== content) return 'updated';\n return 'unchanged';\n}\n\n/**\n * Emits ~/.continue/AGENTS.md (root rule compat mirror) and ~/.continue/config.yaml.\n */\nexport const generateContinueScopeExtras: ScopeExtrasFn = async (\n canonical,\n projectRoot,\n scope,\n enabledFeatures,\n) => {\n const configResults = await generateContinueGlobalConfig(\n canonical,\n projectRoot,\n scope,\n enabledFeatures,\n );\n\n if (scope !== 'global' || !enabledFeatures.has('rules')) return configResults;\n const root = canonical.rules.find((r) => r.root);\n if (!root) return configResults;\n\n const content = root.body.trim();\n const existing = await readFileSafe(join(projectRoot, CONTINUE_GLOBAL_AGENTS_MD));\n return [\n ...configResults,\n {\n target: 'continue',\n path: CONTINUE_GLOBAL_AGENTS_MD,\n content,\n currentContent: existing ?? undefined,\n status: computeStatus(existing, content),\n },\n ];\n};\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport { generateRules, generateCommands, generateSkills, generateMcp } from './generator.js';\nimport {\n CONTINUE_ROOT_RULE,\n CONTINUE_RULES_DIR,\n CONTINUE_PROMPTS_DIR,\n CONTINUE_MCP_FILE,\n CONTINUE_SKILLS_DIR,\n CONTINUE_GLOBAL_AGENTS_MD,\n CONTINUE_GLOBAL_CONFIG,\n} from './constants.js';\nimport { importFromContinue } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { lintCommands } from './lint.js';\nimport { continueCommandRulePath } from './command-rule.js';\nimport { buildContinueImportPaths } from '../../core/reference/import-map-builders.js';\nimport { generateContinueScopeExtras } from './scope-extras.js';\n\nexport const target: TargetGenerators = {\n name: 'continue',\n primaryRootInstructionPath: CONTINUE_ROOT_RULE,\n generateRules,\n generateCommands,\n generateSkills,\n generateMcp,\n importFrom: importFromContinue,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: CONTINUE_ROOT_RULE,\n skillDir: '.continue/skills',\n managedOutputs: {\n dirs: ['.continue/prompts', '.continue/rules', '.continue/skills'],\n files: ['.continue/mcpServers/agentsmesh.json'],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${CONTINUE_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return continueCommandRulePath(name);\n },\n agentPath(_name, _config) {\n return null;\n },\n },\n};\n\nconst globalLayout: TargetLayout = {\n rootInstructionPath: CONTINUE_ROOT_RULE,\n outputFamilies: [\n { id: 'compat-agents', kind: 'additional', explicitPaths: [CONTINUE_GLOBAL_AGENTS_MD] },\n ],\n skillDir: CONTINUE_SKILLS_DIR,\n managedOutputs: {\n dirs: [CONTINUE_RULES_DIR, CONTINUE_PROMPTS_DIR, CONTINUE_SKILLS_DIR, '.agents/skills'],\n files: [CONTINUE_MCP_FILE, CONTINUE_GLOBAL_AGENTS_MD, CONTINUE_GLOBAL_CONFIG],\n },\n mirrorGlobalPath(path, _activeTargets) {\n if (path.startsWith(`${CONTINUE_SKILLS_DIR}/`)) {\n return `.agents/skills/${path.slice(CONTINUE_SKILLS_DIR.length + 1)}`;\n }\n return null;\n },\n paths: {\n rulePath(slug, _rule) {\n return `${CONTINUE_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${CONTINUE_PROMPTS_DIR}/${name}.md`;\n },\n agentPath(_name, _config) {\n return null;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'none',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'continue',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'embedded',\n agents: 'none',\n skills: 'embedded',\n mcp: 'native',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Continue config found (.continue/rules/*.md, .continue/skills, or .continue/mcpServers/*).',\n lintRules,\n lint: {\n commands: lintCommands,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n CONTINUE_RULES_DIR,\n CONTINUE_PROMPTS_DIR,\n '.continue/mcpServers',\n CONTINUE_SKILLS_DIR,\n ],\n layout: globalLayout,\n scopeExtras: generateContinueScopeExtras,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildContinueImportPaths,\n detectionPaths: ['.continue/rules', '.continue/skills', '.continue/mcpServers'],\n} satisfies TargetDescriptor;\n","import type { McpServer, StdioMcpServer, UrlMcpServer } from './types.js';\n\nconst INTERPOLATION_PATTERN = /\\$\\{[^}]+\\}|\\$[A-Za-z_][A-Za-z0-9_]*/;\n\nexport function isStdioMcpServer(server: McpServer): server is StdioMcpServer {\n return 'command' in server;\n}\n\nexport function isUrlMcpServer(server: McpServer): server is UrlMcpServer {\n return 'url' in server;\n}\n\nexport function hasInterpolation(value: string): boolean {\n return INTERPOLATION_PATTERN.test(value);\n}\n\nexport function usesCursorSensitiveInterpolation(server: McpServer): boolean {\n if (Object.keys(server.env).length > 0) return true;\n if (!isUrlMcpServer(server)) return false;\n if (hasInterpolation(server.url)) return true;\n return Object.values(server.headers).some(hasInterpolation);\n}\n","import { basename } from 'node:path';\nimport type { CanonicalFiles, McpServer } from '../../core/types.js';\nimport { isStdioMcpServer } from '../../core/mcp-servers.js';\nimport { generateEmbeddedSkills } from '../import/embedded-skill.js';\nimport { appendEmbeddedRulesBlock } from '../projection/managed-blocks.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n JUNIE_AGENTS_DIR,\n JUNIE_COMMANDS_DIR,\n JUNIE_DOT_AGENTS,\n JUNIE_RULES_DIR,\n JUNIE_IGNORE,\n JUNIE_MCP_FILE,\n JUNIE_SKILLS_DIR,\n} from './constants.js';\n\nexport interface JunieOutput {\n path: string;\n content: string;\n}\n\nexport function generateRules(canonical: CanonicalFiles): JunieOutput[] {\n const outputs: JunieOutput[] = [];\n const root = canonical.rules.find((rule) => rule.root);\n\n if (root) {\n outputs.push({\n path: JUNIE_DOT_AGENTS,\n content: root.body.trim() || '',\n });\n }\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('junie')) continue;\n const slug = basename(rule.source, '.md');\n outputs.push({\n path: `${JUNIE_RULES_DIR}/${slug}.md`,\n content: rule.body.trim() || '',\n });\n }\n\n return outputs;\n}\n\nfunction toJunieMcpServer(server: McpServer): Record<string, unknown> {\n const out: Record<string, unknown> = {};\n if (server.description) out.description = server.description;\n // Omit type when it is 'stdio' — Junie's implied default\n if (server.type !== 'stdio') out.type = server.type;\n if (isStdioMcpServer(server)) {\n out.command = server.command;\n out.args = server.args;\n } else {\n out.url = server.url;\n if (Object.keys(server.headers).length > 0) out.headers = server.headers;\n }\n // Omit env when empty — Junie omits it by default\n if (Object.keys(server.env).length > 0) out.env = server.env;\n return out;\n}\n\nexport function generateMcp(canonical: CanonicalFiles): JunieOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n const servers = Object.fromEntries(\n Object.entries(canonical.mcp.mcpServers).map(([name, srv]) => [name, toJunieMcpServer(srv)]),\n );\n return [{ path: JUNIE_MCP_FILE, content: JSON.stringify({ mcpServers: servers }, null, 2) }];\n}\n\nexport function generateCommands(canonical: CanonicalFiles): JunieOutput[] {\n return canonical.commands.map((command) => {\n const frontmatter: Record<string, unknown> = {\n description: command.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n return {\n path: `${JUNIE_COMMANDS_DIR}/${command.name}.md`,\n content: serializeFrontmatter(frontmatter, command.body.trim() || ''),\n };\n });\n}\n\nexport function generateAgents(canonical: CanonicalFiles): JunieOutput[] {\n return canonical.agents.map((agent) => {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n description: agent.description || undefined,\n tools: agent.tools.length > 0 ? agent.tools : undefined,\n disallowedTools: agent.disallowedTools.length > 0 ? agent.disallowedTools : undefined,\n model: agent.model || undefined,\n skills: agent.skills.length > 0 ? agent.skills : undefined,\n };\n Object.keys(frontmatter).forEach((key) => {\n if (frontmatter[key] === undefined) delete frontmatter[key];\n });\n return {\n path: `${JUNIE_AGENTS_DIR}/${agent.name}.md`,\n content: serializeFrontmatter(frontmatter, agent.body.trim() || ''),\n };\n });\n}\n\nexport function generateIgnore(canonical: CanonicalFiles): JunieOutput[] {\n if (canonical.ignore.length === 0) return [];\n return [{ path: JUNIE_IGNORE, content: canonical.ignore.join('\\n') }];\n}\n\nexport function generateSkills(canonical: CanonicalFiles): JunieOutput[] {\n return generateEmbeddedSkills(canonical, JUNIE_SKILLS_DIR);\n}\n\nexport function renderJunieGlobalInstructions(canonical: CanonicalFiles): string {\n const root = canonical.rules.find((rule) => rule.root);\n const nonRootRules = canonical.rules.filter((rule) => {\n if (rule.root) return false;\n return rule.targets.length === 0 || rule.targets.includes('junie');\n });\n\n return appendEmbeddedRulesBlock(root?.body.trim() ?? '', nonRootRules);\n}\n","import { join } from 'node:path';\nimport type { ImportResult, McpServer } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n serializeImportedAgentWithFallback,\n serializeImportedCommandWithFallback,\n} from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { toStringArray, toStringRecord } from '../import/shared-import-helpers.js';\nimport {\n JUNIE_TARGET,\n JUNIE_AGENTS_DIR,\n JUNIE_COMMANDS_DIR,\n JUNIE_IGNORE,\n JUNIE_MCP_FILE,\n JUNIE_CANONICAL_COMMANDS_DIR,\n JUNIE_CANONICAL_AGENTS_DIR,\n JUNIE_CANONICAL_MCP,\n JUNIE_CANONICAL_IGNORE,\n} from './constants.js';\n\nfunction readMcpServers(content: string): Record<string, McpServer> {\n const parsed = JSON.parse(content) as Record<string, unknown>;\n const rawServers = parsed.mcpServers;\n if (!rawServers || typeof rawServers !== 'object' || Array.isArray(rawServers)) return {};\n\n const servers: Record<string, McpServer> = {};\n for (const [name, value] of Object.entries(rawServers)) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) continue;\n const server = value as Record<string, unknown>;\n if (typeof server.command === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'stdio',\n command: server.command,\n args: toStringArray(server.args),\n env: toStringRecord(server.env),\n description: typeof server.description === 'string' ? server.description : undefined,\n };\n continue;\n }\n if (typeof server.url === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'http',\n url: server.url,\n headers: toStringRecord(server.headers),\n env: toStringRecord(server.env),\n description: typeof server.description === 'string' ? server.description : undefined,\n };\n }\n }\n return servers;\n}\n\nexport async function importJunieMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const srcPath = join(projectRoot, JUNIE_MCP_FILE);\n const content = await readFileSafe(srcPath);\n if (content === null) return;\n\n const servers = readMcpServers(content);\n if (Object.keys(servers).length === 0) return;\n\n await writeFileAtomic(\n join(projectRoot, JUNIE_CANONICAL_MCP),\n JSON.stringify({ mcpServers: servers }, null, 2),\n );\n results.push({\n fromTool: JUNIE_TARGET,\n fromPath: srcPath,\n toPath: JUNIE_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n\nexport async function importJunieCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const srcDir = join(projectRoot, JUNIE_COMMANDS_DIR);\n const destDir = join(projectRoot, JUNIE_CANONICAL_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'junie',\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const normalized = await serializeImportedCommandWithFallback(\n destPath,\n {\n hasDescription: true,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n hasAllowedTools: true,\n allowedTools: toStringArray(frontmatter['allowed-tools']),\n },\n body,\n );\n return {\n destPath,\n toPath: `${JUNIE_CANONICAL_COMMANDS_DIR}/${relativePath}`,\n feature: 'commands',\n content: normalized,\n };\n },\n })),\n );\n}\n\nexport async function importJunieAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const srcDir = join(projectRoot, JUNIE_AGENTS_DIR);\n const destDir = join(projectRoot, JUNIE_CANONICAL_AGENTS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'junie',\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n return {\n destPath,\n toPath: `${JUNIE_CANONICAL_AGENTS_DIR}/${relativePath}`,\n feature: 'agents',\n content: await serializeImportedAgentWithFallback(destPath, frontmatter, body),\n };\n },\n })),\n );\n}\n\nexport async function importJunieIgnore(\n projectRoot: string,\n results: ImportResult[],\n): Promise<void> {\n const srcPath = join(projectRoot, JUNIE_IGNORE);\n const content = await readFileSafe(srcPath);\n if (content === null) return;\n\n await writeFileAtomic(join(projectRoot, JUNIE_CANONICAL_IGNORE), content.trimEnd());\n results.push({\n fromTool: JUNIE_TARGET,\n fromPath: srcPath,\n toPath: JUNIE_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n}\n","import { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { importEmbeddedSkills } from '../import/embedded-skill.js';\nimport { splitEmbeddedRulesToCanonical } from '../import/embedded-rules.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport {\n JUNIE_TARGET,\n JUNIE_AGENTS_FALLBACK,\n JUNIE_DOT_AGENTS,\n JUNIE_CI_GUIDELINES,\n JUNIE_GUIDELINES,\n JUNIE_RULES_DIR,\n JUNIE_SKILLS_DIR,\n JUNIE_CANONICAL_ROOT_RULE,\n JUNIE_CANONICAL_RULES_DIR,\n} from './constants.js';\nimport {\n importJunieAgents,\n importJunieCommands,\n importJunieIgnore,\n importJunieMcp,\n} from './importer-commands-agents-mcp-ignore.js';\n\nasync function importRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const sources = [JUNIE_DOT_AGENTS, JUNIE_GUIDELINES, JUNIE_CI_GUIDELINES, JUNIE_AGENTS_FALLBACK];\n const destPath = join(projectRoot, JUNIE_CANONICAL_ROOT_RULE);\n\n for (const relPath of sources) {\n const srcPath = join(projectRoot, relPath);\n const content = await readFileSafe(srcPath);\n if (content === null) continue;\n const split = await splitEmbeddedRulesToCanonical({\n content,\n projectRoot,\n rulesDir: JUNIE_CANONICAL_RULES_DIR,\n sourcePath: srcPath,\n fromTool: JUNIE_TARGET,\n normalize,\n });\n results.push(...split.results);\n const { frontmatter, body } = parseFrontmatter(normalize(split.rootContent, srcPath, destPath));\n const output = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: true,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n },\n body,\n );\n await writeFileAtomic(destPath, output);\n results.push({\n fromTool: JUNIE_TARGET,\n fromPath: srcPath,\n toPath: JUNIE_CANONICAL_ROOT_RULE,\n feature: 'rules',\n });\n return;\n }\n}\n\nasync function importNonRootRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const srcDir = join(projectRoot, JUNIE_RULES_DIR);\n const destDir = join(projectRoot, JUNIE_CANONICAL_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: 'junie',\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const output = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: false,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n },\n body,\n );\n return {\n destPath,\n toPath: `${JUNIE_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: output,\n };\n },\n })),\n );\n}\n\nexport async function importFromJunie(projectRoot: string): Promise<ImportResult[]> {\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(JUNIE_TARGET, projectRoot);\n await importRules(projectRoot, results, normalize);\n await importNonRootRules(projectRoot, results, normalize);\n await importJunieCommands(projectRoot, results, normalize);\n await importJunieAgents(projectRoot, results, normalize);\n await importEmbeddedSkills(projectRoot, JUNIE_SKILLS_DIR, JUNIE_TARGET, results, normalize);\n await importJunieMcp(projectRoot, results);\n await importJunieIgnore(projectRoot, results);\n return results;\n}\n","import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { JUNIE_TARGET } from './constants.js';\n\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n return validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n }).map((diagnostic) => ({\n ...diagnostic,\n target: JUNIE_TARGET,\n }));\n}\n","/**\n * Junie-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { isUrlMcpServer } from '../../core/mcp-servers.js';\nimport { createWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintMcp(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n\n const diagnostics: LintDiagnostic[] = [];\n for (const [name, server] of Object.entries(canonical.mcp.mcpServers)) {\n if (isUrlMcpServer(server)) {\n diagnostics.push(\n createWarning(\n '.agentsmesh/mcp.json',\n 'junie',\n `MCP server \"${name}\" uses ${server.type} transport; Junie project mcp.json currently documents stdio MCP servers only.`,\n ),\n );\n }\n }\n return diagnostics;\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generateIgnore,\n renderJunieGlobalInstructions,\n} from './generator.js';\nimport {\n JUNIE_DOT_AGENTS,\n JUNIE_RULES_DIR,\n JUNIE_COMMANDS_DIR,\n JUNIE_AGENTS_DIR,\n JUNIE_MCP_FILE,\n JUNIE_IGNORE,\n JUNIE_GLOBAL_AGENTS_MD,\n JUNIE_GLOBAL_SKILLS_DIR,\n JUNIE_GLOBAL_AGENTS_DIR,\n JUNIE_GLOBAL_COMMANDS_DIR,\n JUNIE_GLOBAL_MCP_FILE,\n JUNIE_GLOBAL_AGENTS_SKILLS_DIR,\n JUNIE_SKILLS_DIR,\n} from './constants.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\nimport { importFromJunie } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { lintMcp } from './lint.js';\nimport { buildJunieImportPaths } from '../../core/reference/import-map-builders.js';\n\nexport const target: TargetGenerators = {\n name: 'junie',\n primaryRootInstructionPath: JUNIE_DOT_AGENTS,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generateIgnore,\n importFrom: importFromJunie,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: JUNIE_DOT_AGENTS,\n skillDir: '.junie/skills',\n managedOutputs: {\n dirs: ['.junie/agents', '.junie/commands', '.junie/rules', '.junie/skills'],\n files: ['.aiignore', '.junie/AGENTS.md', '.junie/mcp/mcp.json'],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${JUNIE_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${JUNIE_COMMANDS_DIR}/${name}.md`;\n },\n agentPath(name, _config) {\n return `${JUNIE_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: JUNIE_GLOBAL_AGENTS_MD,\n renderPrimaryRootInstruction: renderJunieGlobalInstructions,\n skillDir: JUNIE_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n JUNIE_GLOBAL_SKILLS_DIR,\n JUNIE_GLOBAL_AGENTS_DIR,\n JUNIE_GLOBAL_COMMANDS_DIR,\n JUNIE_GLOBAL_AGENTS_SKILLS_DIR,\n ],\n files: [JUNIE_GLOBAL_AGENTS_MD, JUNIE_GLOBAL_MCP_FILE],\n },\n rewriteGeneratedPath(path) {\n // Transform project-level paths to global ~/.junie/ paths\n if (path === JUNIE_DOT_AGENTS) {\n return JUNIE_GLOBAL_AGENTS_MD;\n }\n if (path.startsWith(`${JUNIE_RULES_DIR}/`)) {\n return JUNIE_GLOBAL_AGENTS_MD; // Aggregate all rules into AGENTS.md\n }\n if (path.startsWith(`${JUNIE_SKILLS_DIR}/`)) {\n return path.replace(`${JUNIE_SKILLS_DIR}/`, `${JUNIE_GLOBAL_SKILLS_DIR}/`);\n }\n if (path.startsWith(`${JUNIE_COMMANDS_DIR}/`)) {\n return path.replace(`${JUNIE_COMMANDS_DIR}/`, `${JUNIE_GLOBAL_COMMANDS_DIR}/`);\n }\n if (path.startsWith(`${JUNIE_AGENTS_DIR}/`)) {\n return path.replace(`${JUNIE_AGENTS_DIR}/`, `${JUNIE_GLOBAL_AGENTS_DIR}/`);\n }\n if (path === JUNIE_MCP_FILE) {\n return JUNIE_GLOBAL_MCP_FILE;\n }\n // .aiignore is not generated in global mode per the spec\n if (path === JUNIE_IGNORE) {\n return null;\n }\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, '.junie/skills', activeTargets);\n },\n paths: {\n rulePath(_slug, _rule) {\n return JUNIE_GLOBAL_AGENTS_MD; // All rules go to AGENTS.md\n },\n commandPath(name, _config) {\n return `${JUNIE_GLOBAL_COMMANDS_DIR}/${name}.md`;\n },\n agentPath(name, _config) {\n return `${JUNIE_GLOBAL_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'embedded',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'junie',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'native',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Junie config found (.junie/guidelines.md, .junie/AGENTS.md, .junie/skills, .junie/mcp/mcp.json, or .aiignore).',\n lintRules,\n lint: {\n mcp: lintMcp,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n JUNIE_GLOBAL_AGENTS_MD,\n JUNIE_GLOBAL_SKILLS_DIR,\n JUNIE_GLOBAL_AGENTS_DIR,\n JUNIE_GLOBAL_COMMANDS_DIR,\n JUNIE_GLOBAL_MCP_FILE,\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildJunieImportPaths,\n detectionPaths: [\n '.junie/guidelines.md',\n '.junie/AGENTS.md',\n '.junie/skills',\n '.junie/mcp/mcp.json',\n '.aiignore',\n ],\n} satisfies TargetDescriptor;\n","import { stringify as yamlStringify } from 'yaml';\nimport type { HookEntry, Hooks } from '../../core/types.js';\n\ninterface KiroWhen {\n type: string;\n patterns?: string[];\n tools?: string[];\n}\n\ninterface KiroThen {\n type: 'askAgent' | 'shellCommand';\n prompt?: string;\n command?: string;\n}\n\ninterface KiroHookFile {\n name: string;\n description?: string;\n version: '1';\n when: KiroWhen;\n then: KiroThen;\n}\n\nconst CANONICAL_TO_KIRO = {\n UserPromptSubmit: 'promptSubmit',\n SubagentStop: 'agentStop',\n PreToolUse: 'preToolUse',\n PostToolUse: 'postToolUse',\n} as const;\n\nconst KIRO_TO_CANONICAL = new Map<string, keyof typeof CANONICAL_TO_KIRO>([\n ['promptSubmit', 'UserPromptSubmit'],\n ['agentStop', 'SubagentStop'],\n ['preToolUse', 'PreToolUse'],\n ['postToolUse', 'PostToolUse'],\n]);\n\nfunction toKebab(value: string): string {\n return value\n .replace(/([a-z0-9])([A-Z])/g, '$1-$2')\n .replace(/_/g, '-')\n .toLowerCase();\n}\n\nfunction hookText(entry: HookEntry): string | undefined {\n return entry.type === 'prompt' ? entry.prompt : entry.command;\n}\n\nfunction toWhen(event: keyof typeof CANONICAL_TO_KIRO, matcher: string): KiroWhen {\n const type = CANONICAL_TO_KIRO[event];\n if (event === 'PreToolUse' || event === 'PostToolUse') {\n return { type, tools: [matcher || '*'] };\n }\n return { type };\n}\n\nexport function generateKiroHooks(hooks: Hooks): Array<{ name: string; content: string }> {\n const outputs: Array<{ name: string; content: string }> = [];\n for (const [event, entries] of Object.entries(hooks)) {\n const mappedEvent = event as keyof typeof CANONICAL_TO_KIRO;\n if (!(mappedEvent in CANONICAL_TO_KIRO) || !Array.isArray(entries)) continue;\n let index = 1;\n for (const entry of entries) {\n const text = hookText(entry);\n if (!text) continue;\n const file: KiroHookFile = {\n name: `${toKebab(event)} ${index}`,\n version: '1',\n when: toWhen(mappedEvent, entry.matcher),\n then:\n entry.type === 'prompt'\n ? { type: 'askAgent', prompt: text }\n : { type: 'shellCommand', command: text },\n };\n outputs.push({\n name: `${toKebab(event)}-${index}.kiro.hook`,\n content: JSON.stringify(file, null, 2),\n });\n index += 1;\n }\n }\n return outputs;\n}\n\nfunction toCanonicalEntry(file: KiroHookFile): { event: string; entry: HookEntry } | null {\n const canonicalEvent = KIRO_TO_CANONICAL.get(file.when.type);\n if (!canonicalEvent) return null;\n const matcher = file.when.tools?.[0] ?? file.when.patterns?.[0] ?? '*';\n if (file.then.type === 'askAgent' && typeof file.then.prompt === 'string') {\n return {\n event: canonicalEvent,\n entry: {\n matcher,\n command: file.then.prompt,\n prompt: file.then.prompt,\n type: 'prompt',\n },\n };\n }\n if (file.then.type === 'shellCommand' && typeof file.then.command === 'string') {\n return {\n event: canonicalEvent,\n entry: { matcher, command: file.then.command, type: 'command' },\n };\n }\n return null;\n}\n\nexport function parseKiroHookFile(content: string): { event: string; entry: HookEntry } | null {\n let parsed: unknown;\n try {\n parsed = JSON.parse(content);\n } catch {\n return null;\n }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) return null;\n const file = parsed as KiroHookFile;\n if (!file.when || !file.then || typeof file.when.type !== 'string') return null;\n return toCanonicalEntry(file);\n}\n\nexport function serializeCanonicalHooks(hooks: Hooks): string {\n return yamlStringify(hooks).trimEnd();\n}\n","import { basename } from 'node:path';\nimport type { CanonicalFiles, CanonicalRule } from '../../core/types.js';\nimport { generateEmbeddedSkills } from '../import/embedded-skill.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport { generateKiroHooks } from './hook-format.js';\nimport {\n KIRO_TARGET,\n KIRO_AGENTS_MD,\n KIRO_STEERING_DIR,\n KIRO_SKILLS_DIR,\n KIRO_AGENTS_DIR,\n KIRO_MCP_FILE,\n KIRO_HOOKS_DIR,\n KIRO_IGNORE,\n} from './constants.js';\n\nexport interface KiroOutput {\n path: string;\n content: string;\n}\n\nfunction steeringFrontmatter(rule: CanonicalRule): Record<string, unknown> {\n const frontmatter: Record<string, unknown> = {};\n if (rule.globs.length > 0) {\n frontmatter.inclusion = 'fileMatch';\n frontmatter.fileMatchPattern = rule.globs.length === 1 ? rule.globs[0] : rule.globs;\n } else if (rule.trigger === 'manual') {\n frontmatter.inclusion = 'manual';\n } else if (rule.trigger === 'model_decision') {\n frontmatter.inclusion = 'auto';\n } else {\n frontmatter.inclusion = 'always';\n }\n if (rule.description) frontmatter.description = rule.description;\n return frontmatter;\n}\n\nexport function generateRules(canonical: CanonicalFiles): KiroOutput[] {\n const outputs: KiroOutput[] = [];\n const root = canonical.rules.find((rule) => rule.root);\n if (root) {\n outputs.push({ path: KIRO_AGENTS_MD, content: root.body.trim() || '' });\n }\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes(KIRO_TARGET)) continue;\n const slug = basename(rule.source, '.md');\n outputs.push({\n path: `${KIRO_STEERING_DIR}/${slug}.md`,\n content: serializeFrontmatter(steeringFrontmatter(rule), rule.body.trim() || ''),\n });\n }\n return outputs;\n}\n\nexport function generateSkills(canonical: CanonicalFiles): KiroOutput[] {\n return generateEmbeddedSkills(canonical, KIRO_SKILLS_DIR);\n}\n\nexport function generateMcp(canonical: CanonicalFiles): KiroOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n return [\n {\n path: KIRO_MCP_FILE,\n content: JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2),\n },\n ];\n}\n\nexport function generateHooks(canonical: CanonicalFiles): KiroOutput[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n return generateKiroHooks(canonical.hooks).map((hook) => ({\n path: `${KIRO_HOOKS_DIR}/${hook.name}`,\n content: hook.content,\n }));\n}\n\nexport function generateAgents(canonical: CanonicalFiles): KiroOutput[] {\n return canonical.agents.map((agent) => {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n description: agent.description,\n tools: agent.tools.length > 0 ? agent.tools : undefined,\n model: agent.model || undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content = serializeFrontmatter(frontmatter, agent.body.trim() || '');\n return { path: `${KIRO_AGENTS_DIR}/${agent.name}.md`, content };\n });\n}\n\nexport function generateIgnore(canonical: CanonicalFiles): KiroOutput[] {\n if (canonical.ignore.length === 0) return [];\n return [{ path: KIRO_IGNORE, content: canonical.ignore.join('\\n') }];\n}\n","import { join } from 'node:path';\nimport type { ImportResult, Hooks, McpServer } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { serializeImportedAgentWithFallback } from '../import/import-metadata.js';\nimport { toStringArray, toStringRecord } from '../import/shared-import-helpers.js';\nimport { readDirRecursive, readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { parseKiroHookFile, serializeCanonicalHooks } from './hook-format.js';\nimport {\n KIRO_TARGET,\n KIRO_AGENTS_DIR,\n KIRO_HOOKS_DIR,\n KIRO_MCP_FILE,\n KIRO_GLOBAL_MCP_FILE,\n KIRO_IGNORE,\n KIRO_GLOBAL_IGNORE,\n KIRO_CANONICAL_AGENTS_DIR,\n KIRO_CANONICAL_MCP,\n KIRO_CANONICAL_HOOKS,\n KIRO_CANONICAL_IGNORE,\n} from './constants.js';\n\ntype NormalizeFn = (content: string, sourceFile: string, destinationFile: string) => string;\n\nfunction readMcpServers(content: string): Record<string, McpServer> {\n const parsed = JSON.parse(content) as Record<string, unknown>;\n const rawServers = parsed.mcpServers;\n if (!rawServers || typeof rawServers !== 'object' || Array.isArray(rawServers)) return {};\n const servers: Record<string, McpServer> = {};\n for (const [name, value] of Object.entries(rawServers)) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) continue;\n const server = value as Record<string, unknown>;\n if (typeof server.command === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'stdio',\n command: server.command,\n args: toStringArray(server.args),\n env: toStringRecord(server.env),\n };\n continue;\n }\n if (typeof server.url === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'http',\n url: server.url,\n headers: toStringRecord(server.headers),\n env: toStringRecord(server.env),\n };\n }\n }\n return servers;\n}\n\nexport async function importKiroAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: NormalizeFn,\n): Promise<void> {\n const srcDir = join(projectRoot, KIRO_AGENTS_DIR);\n const destDir = join(projectRoot, KIRO_CANONICAL_AGENTS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: KIRO_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n return {\n destPath,\n toPath: `${KIRO_CANONICAL_AGENTS_DIR}/${relativePath}`,\n feature: 'agents',\n content: await serializeImportedAgentWithFallback(destPath, frontmatter, body),\n };\n },\n })),\n );\n}\n\nexport async function importKiroMcp(\n projectRoot: string,\n results: ImportResult[],\n scope: TargetLayoutScope,\n): Promise<void> {\n const mcpRel = scope === 'global' ? KIRO_GLOBAL_MCP_FILE : KIRO_MCP_FILE;\n const content = await readFileSafe(join(projectRoot, mcpRel));\n if (content === null) return;\n const servers = readMcpServers(content);\n if (Object.keys(servers).length === 0) return;\n await writeFileAtomic(\n join(projectRoot, KIRO_CANONICAL_MCP),\n JSON.stringify({ mcpServers: servers }, null, 2),\n );\n results.push({\n fromTool: KIRO_TARGET,\n fromPath: join(projectRoot, mcpRel),\n toPath: KIRO_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n\nexport async function importKiroHooks(projectRoot: string, results: ImportResult[]): Promise<void> {\n const hooks: Hooks = {};\n for (const absPath of await readDirRecursive(join(projectRoot, KIRO_HOOKS_DIR))) {\n if (!absPath.endsWith('.kiro.hook')) continue;\n const parsed = parseKiroHookFile((await readFileSafe(absPath)) ?? '');\n if (!parsed) continue;\n hooks[parsed.event] ??= [];\n hooks[parsed.event]!.push(parsed.entry);\n }\n if (Object.keys(hooks).length === 0) return;\n await writeFileAtomic(join(projectRoot, KIRO_CANONICAL_HOOKS), serializeCanonicalHooks(hooks));\n results.push({\n fromTool: KIRO_TARGET,\n fromPath: join(projectRoot, KIRO_HOOKS_DIR),\n toPath: KIRO_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n}\n\nexport async function importKiroIgnore(\n projectRoot: string,\n results: ImportResult[],\n scope: TargetLayoutScope,\n): Promise<void> {\n const ignoreRel = scope === 'global' ? KIRO_GLOBAL_IGNORE : KIRO_IGNORE;\n const content = await readFileSafe(join(projectRoot, ignoreRel));\n if (content === null) return;\n await writeFileAtomic(join(projectRoot, KIRO_CANONICAL_IGNORE), content.trimEnd());\n results.push({\n fromTool: KIRO_TARGET,\n fromPath: join(projectRoot, ignoreRel),\n toPath: KIRO_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n}\n","import { basename, join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { importEmbeddedSkills } from '../import/embedded-skill.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { toGlobsArray } from '../import/shared-import-helpers.js';\nimport { readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n KIRO_TARGET,\n KIRO_AGENTS_MD,\n KIRO_GLOBAL_STEERING_AGENTS_MD,\n KIRO_STEERING_DIR,\n KIRO_SKILLS_DIR,\n KIRO_CANONICAL_ROOT_RULE,\n KIRO_CANONICAL_RULES_DIR,\n} from './constants.js';\nimport {\n importKiroAgents,\n importKiroHooks,\n importKiroIgnore,\n importKiroMcp,\n} from './importer-agents-mcp-hooks-ignore.js';\n\nfunction canonicalRuleMeta(frontmatter: Record<string, unknown>): Record<string, unknown> {\n const inclusion = typeof frontmatter.inclusion === 'string' ? frontmatter.inclusion : '';\n const meta: Record<string, unknown> = {\n root: false,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: toGlobsArray(frontmatter.fileMatchPattern),\n };\n if (inclusion === 'manual') meta.trigger = 'manual';\n if (inclusion === 'auto') meta.trigger = 'model_decision';\n if (inclusion === 'fileMatch') meta.trigger = 'glob';\n return meta;\n}\n\nasync function importRoot(\n projectRoot: string,\n results: ImportResult[],\n normalize: ReturnType<typeof createImportReferenceNormalizer> extends Promise<infer T>\n ? T\n : never,\n scope: TargetLayoutScope,\n): Promise<void> {\n const candidates =\n scope === 'global'\n ? [KIRO_GLOBAL_STEERING_AGENTS_MD, KIRO_AGENTS_MD]\n : [KIRO_AGENTS_MD, KIRO_GLOBAL_STEERING_AGENTS_MD];\n\n for (const rel of candidates) {\n const srcPath = join(projectRoot, rel);\n const content = await readFileSafe(srcPath);\n if (content === null) continue;\n const destPath = join(projectRoot, KIRO_CANONICAL_ROOT_RULE);\n const { frontmatter, body } = parseFrontmatter(normalize(content, srcPath, destPath));\n await writeFileAtomic(\n destPath,\n await serializeImportedRuleWithFallback(destPath, { ...frontmatter, root: true }, body),\n );\n results.push({\n fromTool: KIRO_TARGET,\n fromPath: srcPath,\n toPath: KIRO_CANONICAL_ROOT_RULE,\n feature: 'rules',\n });\n return;\n }\n}\n\nasync function importRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: ReturnType<typeof createImportReferenceNormalizer> extends Promise<infer T>\n ? T\n : never,\n): Promise<void> {\n results.push(\n ...(await importFileDirectory({\n srcDir: join(projectRoot, KIRO_STEERING_DIR),\n destDir: join(projectRoot, KIRO_CANONICAL_RULES_DIR),\n extensions: ['.md'],\n fromTool: KIRO_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n if (basename(relativePath) === 'AGENTS.md') return null;\n const destPath = join(projectRoot, KIRO_CANONICAL_RULES_DIR, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n return {\n destPath,\n toPath: `${KIRO_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(\n destPath,\n canonicalRuleMeta(frontmatter),\n body,\n ),\n };\n },\n })),\n );\n}\n\nexport async function importFromKiro(\n projectRoot: string,\n options: { scope?: TargetLayoutScope } = {},\n): Promise<ImportResult[]> {\n const scope = options.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(KIRO_TARGET, projectRoot, scope);\n await importRoot(projectRoot, results, normalize, scope);\n await importRules(projectRoot, results, normalize);\n await importKiroAgents(projectRoot, results, normalize);\n await importEmbeddedSkills(projectRoot, KIRO_SKILLS_DIR, KIRO_TARGET, results, normalize);\n await importKiroMcp(projectRoot, results, scope);\n await importKiroHooks(projectRoot, results);\n await importKiroIgnore(projectRoot, results, scope);\n return results;\n}\n","import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { KIRO_TARGET } from './constants.js';\n\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n return validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n }).map((diagnostic) => ({\n ...diagnostic,\n target: KIRO_TARGET,\n }));\n}\n","/**\n * Kiro-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createUnsupportedHookWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintHooks(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const supported = ['PreToolUse', 'PostToolUse', 'UserPromptSubmit', 'SubagentStop'] as const;\n const supportedSet = new Set(supported);\n return Object.keys(canonical.hooks)\n .filter((event) => !supportedSet.has(event as never))\n .map((event) =>\n createUnsupportedHookWarning(event, 'kiro', supported, { unsupportedBy: 'Kiro hooks' }),\n );\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport {\n generateRules,\n generateAgents,\n generateSkills,\n generateMcp,\n generateHooks,\n generateIgnore,\n} from './generator.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\nimport { importFromKiro } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { lintHooks } from './lint.js';\nimport { buildKiroImportPaths } from '../../core/reference/import-map-builders.js';\nimport {\n KIRO_TARGET,\n KIRO_AGENTS_MD,\n KIRO_STEERING_DIR,\n KIRO_SKILLS_DIR,\n KIRO_AGENTS_DIR,\n KIRO_HOOKS_DIR,\n KIRO_MCP_FILE,\n KIRO_IGNORE,\n KIRO_GLOBAL_STEERING_DIR,\n KIRO_GLOBAL_STEERING_AGENTS_MD,\n KIRO_GLOBAL_SKILLS_DIR,\n KIRO_GLOBAL_AGENTS_DIR,\n KIRO_GLOBAL_MCP_FILE,\n KIRO_GLOBAL_IGNORE,\n KIRO_GLOBAL_AGENTS_SKILLS_DIR,\n} from './constants.js';\n\nexport const target: TargetGenerators = {\n name: KIRO_TARGET,\n primaryRootInstructionPath: KIRO_AGENTS_MD,\n generateRules,\n generateAgents,\n generateSkills,\n generateMcp,\n generateHooks,\n generateIgnore,\n importFrom: importFromKiro,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: KIRO_AGENTS_MD,\n skillDir: KIRO_SKILLS_DIR,\n managedOutputs: {\n dirs: ['.kiro/hooks', '.kiro/skills', '.kiro/steering', '.kiro/agents'],\n files: ['AGENTS.md', '.kiro/settings/mcp.json', '.kiroignore'],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${KIRO_STEERING_DIR}/${slug}.md`;\n },\n commandPath(_name, _config) {\n return null;\n },\n agentPath(name, _config) {\n return `${KIRO_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: KIRO_GLOBAL_STEERING_AGENTS_MD,\n skillDir: KIRO_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n KIRO_GLOBAL_STEERING_DIR,\n KIRO_GLOBAL_SKILLS_DIR,\n KIRO_GLOBAL_AGENTS_DIR,\n KIRO_GLOBAL_AGENTS_SKILLS_DIR,\n ],\n files: [KIRO_GLOBAL_STEERING_AGENTS_MD, KIRO_GLOBAL_MCP_FILE, KIRO_GLOBAL_IGNORE],\n },\n rewriteGeneratedPath(path) {\n // Transform project-level paths to global ~/.kiro/ paths\n if (path === KIRO_AGENTS_MD) {\n return KIRO_GLOBAL_STEERING_AGENTS_MD;\n }\n if (path.startsWith(`${KIRO_STEERING_DIR}/`)) {\n return path.replace(`${KIRO_STEERING_DIR}/`, `${KIRO_GLOBAL_STEERING_DIR}/`);\n }\n if (path.startsWith(`${KIRO_SKILLS_DIR}/`)) {\n return path.replace(`${KIRO_SKILLS_DIR}/`, `${KIRO_GLOBAL_SKILLS_DIR}/`);\n }\n if (path.startsWith(`${KIRO_AGENTS_DIR}/`)) {\n return path.replace(`${KIRO_AGENTS_DIR}/`, `${KIRO_GLOBAL_AGENTS_DIR}/`);\n }\n if (path === KIRO_MCP_FILE) {\n return KIRO_GLOBAL_MCP_FILE;\n }\n if (path === KIRO_IGNORE) {\n return KIRO_GLOBAL_IGNORE;\n }\n // Skip hooks in global mode\n if (path.startsWith(`${KIRO_HOOKS_DIR}/`)) {\n return null;\n }\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, '.kiro/skills', activeTargets);\n },\n paths: {\n rulePath(slug, _rule) {\n return `${KIRO_GLOBAL_STEERING_DIR}/${slug}.md`;\n },\n commandPath(_name, _config) {\n return null;\n },\n agentPath(name, _config) {\n return `${KIRO_GLOBAL_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'native',\n commands: 'none',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'native',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: KIRO_TARGET,\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'none',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Kiro config found (AGENTS.md, .kiro/steering, .kiro/skills, .kiro/agents, .kiro/hooks, .kiro/settings/mcp.json, or .kiroignore).',\n lintRules,\n lint: {\n hooks: lintHooks,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n KIRO_GLOBAL_STEERING_DIR,\n KIRO_GLOBAL_STEERING_AGENTS_MD,\n KIRO_GLOBAL_SKILLS_DIR,\n KIRO_GLOBAL_AGENTS_DIR,\n KIRO_GLOBAL_MCP_FILE,\n KIRO_GLOBAL_IGNORE,\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildKiroImportPaths,\n detectionPaths: [\n KIRO_STEERING_DIR,\n KIRO_SKILLS_DIR,\n KIRO_AGENTS_DIR,\n KIRO_HOOKS_DIR,\n KIRO_MCP_FILE,\n KIRO_IGNORE,\n ],\n} satisfies TargetDescriptor;\n","/**\n * Gemini CLI target constants.\n * Gemini uses GEMINI.md (root + embedded non-root rules as sections), .gemini/commands/*.toml,\n * .gemini/settings.json, and .geminiignore.\n */\n\nexport const GEMINI_TARGET = 'gemini-cli';\n\n/** Root rules file path */\nexport const GEMINI_ROOT = 'GEMINI.md';\n\n/** Compatibility root mirror file path */\nexport const GEMINI_COMPAT_AGENTS = 'AGENTS.md';\n\n/**\n * Rules directory — import backward-compat only.\n * Gemini CLI has no native .gemini/rules/ directory (see docs/agent-structures/gemini-cli-project-level-advanced.md).\n * Generator folds non-root rules into GEMINI.md as sections.\n * Importer still reads this dir so users can import old agentsmesh outputs.\n */\nexport const GEMINI_RULES_DIR = '.gemini/rules';\n\n/** Compatibility root mirror file path inside `.gemini/` */\nexport const GEMINI_COMPAT_INNER_ROOT = '.gemini/GEMINI.md';\n\n/** Commands directory */\nexport const GEMINI_COMMANDS_DIR = '.gemini/commands';\n\n/** Policies directory */\nexport const GEMINI_POLICIES_DIR = '.gemini/policies';\n\n/** Settings file (MCP, ignore, hooks) */\nexport const GEMINI_SETTINGS = '.gemini/settings.json';\n\n/** Ignore file */\nexport const GEMINI_IGNORE = '.geminiignore';\n\n/**\n * Skills directory — compatibility mirror.\n * Not a native Gemini CLI project path. Generated as compatibility output;\n * Gemini CLI docs recommend converting skills to commands, agents, or GEMINI.md guidance.\n * See docs/agent-structures/gemini-cli-project-level-advanced.md §9.\n */\nexport const GEMINI_SKILLS_DIR = '.gemini/skills';\n\n/** Agents directory (experimental native agents) */\nexport const GEMINI_AGENTS_DIR = '.gemini/agents';\n\n/** Optional system prompt override */\nexport const GEMINI_SYSTEM = '.gemini/system.md';\n\n/** Default workspace policies file (emitted when canonical permissions are present). */\nexport const GEMINI_DEFAULT_POLICIES_FILE = `${GEMINI_POLICIES_DIR}/permissions.toml`;\n\nexport const GEMINI_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const GEMINI_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const GEMINI_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const GEMINI_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\nexport const GEMINI_CANONICAL_MCP = '.agentsmesh/mcp.json';\nexport const GEMINI_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const GEMINI_CANONICAL_IGNORE = '.agentsmesh/ignore';\nexport const GEMINI_CANONICAL_PERMISSIONS = '.agentsmesh/permissions.yaml';\n\n// Global mode paths (user-level ~/.gemini/)\nexport const GEMINI_GLOBAL_ROOT = '.gemini/GEMINI.md';\nexport const GEMINI_GLOBAL_COMPAT_AGENTS = '.gemini/AGENTS.md';\nexport const GEMINI_GLOBAL_SETTINGS = '.gemini/settings.json';\nexport const GEMINI_GLOBAL_COMMANDS_DIR = '.gemini/commands';\nexport const GEMINI_GLOBAL_SKILLS_DIR = '.gemini/skills';\nexport const GEMINI_GLOBAL_AGENTS_DIR = '.gemini/agents';\nexport const GEMINI_GLOBAL_AGENTS_SKILLS_DIR = '.agents/skills';\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { appendEmbeddedRulesBlock } from '../../projection/managed-blocks.js';\nimport { GEMINI_ROOT, GEMINI_COMPAT_AGENTS } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\n/**\n * Generate GEMINI.md from root rule and embedded non-root rule blocks.\n */\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const root = canonical.rules.find((r) => r.root);\n const nonRootRules = canonical.rules.filter((r) => {\n if (r.root) return false;\n if (r.targets.length > 0 && !r.targets.includes('gemini-cli')) return false;\n return true;\n });\n\n if (!root && nonRootRules.length === 0) return [];\n\n const content = appendEmbeddedRulesBlock(root?.body.trim() ?? '', nonRootRules);\n\n const outputs: RulesOutput[] = [{ path: GEMINI_ROOT, content }];\n if (root) {\n const compatAgentsContent = root.body\n .trim()\n .replace(/\\.agentsmesh\\/skills\\//g, '.agents/skills/');\n outputs.push({ path: GEMINI_COMPAT_AGENTS, content: compatAgentsContent });\n }\n return outputs;\n}\n","import { relative } from 'node:path';\n\n/**\n * Convert canonical command names into Gemini CLI nested slash-style command paths.\n *\n * Gemini docs: `.gemini/commands/git/commit.toml` maps to `/git:commit`.\n * This function maps `git:commit` -> `git/commit.toml`.\n */\nexport function canonicalCommandNameToGeminiTomlPath(cmdName: string, commandsDir: string): string {\n const parts = cmdName.split(':').filter(Boolean);\n const fileBase = parts.length > 0 ? parts.pop()! : cmdName;\n const dirs = parts; // remaining segments\n const fullParts = [commandsDir, ...dirs, `${fileBase}.toml`];\n return fullParts.join('/');\n}\n\n/**\n * Convert Gemini CLI nested command file path back to canonical `:`-delimited command name.\n *\n * Example:\n * srcPath: `<root>/.gemini/commands/git/commit.toml`\n * => name: `git:commit`\n */\nexport function geminiTomlPathToCanonicalCommandName(\n srcPath: string,\n geminiCommandsRoot: string,\n): string {\n const rel = relative(geminiCommandsRoot, srcPath).replace(/\\\\/g, '/');\n const noExt = rel.replace(/\\.(toml|md)$/i, '');\n const segments = noExt.split('/').filter(Boolean);\n return segments.join(':');\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { GEMINI_COMMANDS_DIR } from '../constants.js';\nimport { canonicalCommandNameToGeminiTomlPath } from '../command-namespace.js';\nimport type { RulesOutput } from './types.js';\n\nfunction serializeTomlMultilineLiteral(value: string): string {\n const normalized = value.replace(/\\r\\n/g, '\\n');\n if (!normalized.includes('\"\"\"')) {\n return `\"\"\"\\n${normalized}\\n\"\"\"`;\n }\n return JSON.stringify(normalized);\n}\n\nfunction serializeGeminiCommand(cmd: CanonicalFiles['commands'][number]): string {\n const lines = [\n `description = ${JSON.stringify(cmd.description || cmd.name)}`,\n `prompt = ${serializeTomlMultilineLiteral(cmd.body.trim() || '')}`,\n ];\n return lines.join('\\n') + '\\n';\n}\n\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map((cmd) => ({\n path: canonicalCommandNameToGeminiTomlPath(cmd.name, GEMINI_COMMANDS_DIR),\n content: serializeGeminiCommand(cmd),\n }));\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { GEMINI_AGENTS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => {\n const frontmatter: Record<string, unknown> = {\n name: agent.name,\n kind: 'local',\n description: agent.description || undefined,\n tools: agent.tools.length > 0 ? agent.tools : undefined,\n model: agent.model || undefined,\n maxTurns: agent.maxTurns > 0 ? agent.maxTurns : undefined,\n permissionMode: agent.permissionMode || undefined,\n disallowedTools: agent.disallowedTools.length > 0 ? agent.disallowedTools : undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content = serializeFrontmatter(frontmatter, agent.body.trim() || '');\n return { path: `${GEMINI_AGENTS_DIR}/${agent.name}.md`, content };\n });\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { GEMINI_SKILLS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const skillContent = serializeFrontmatter(frontmatter, skill.body.trim() || '');\n outputs.push({\n path: `${GEMINI_SKILLS_DIR}/${skill.name}/SKILL.md`,\n content: skillContent,\n });\n for (const file of skill.supportingFiles) {\n const relPath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${GEMINI_SKILLS_DIR}/${skill.name}/${relPath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { getHookCommand, hasHookCommand } from '../../../core/hook-command.js';\nimport { GEMINI_ROOT, GEMINI_COMPAT_AGENTS, GEMINI_SETTINGS } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nfunction mapHookEvent(event: string): string | null {\n switch (event) {\n case 'PreToolUse':\n return 'BeforeTool';\n case 'PostToolUse':\n return 'AfterTool';\n case 'Notification':\n return 'Notification';\n default:\n return null;\n }\n}\n\n/** Emits merged `.gemini/settings.json` when MCP, agents, or hooks contribute native settings. */\nexport function generateGeminiSettingsFiles(canonical: CanonicalFiles): RulesOutput[] {\n const settings: Record<string, unknown> = {};\n let hasAnyNativeSettings = false;\n\n if (canonical.mcp && Object.keys(canonical.mcp.mcpServers).length > 0) {\n settings.mcpServers = canonical.mcp.mcpServers;\n hasAnyNativeSettings = true;\n }\n if (canonical.agents.length > 0) {\n settings.experimental = { enableAgents: true };\n hasAnyNativeSettings = true;\n }\n if (canonical.hooks) {\n const hookEntries = Object.entries(canonical.hooks).flatMap(([event, entries]) => {\n const mappedEvent = mapHookEvent(event);\n if (!mappedEvent || !Array.isArray(entries)) return [];\n const mappedEntries = entries\n .filter(\n (entry): entry is NonNullable<typeof entry> =>\n typeof entry === 'object' && entry !== null && hasHookCommand(entry),\n )\n .map((entry, index) => ({\n matcher: entry!.matcher,\n hooks: [\n {\n name: `${mappedEvent}-${index + 1}`,\n type: 'command',\n command: getHookCommand(entry),\n timeout: entry!.timeout,\n },\n ],\n }));\n return mappedEntries.length > 0 ? [[mappedEvent, mappedEntries] as const] : [];\n });\n if (hookEntries.length > 0) {\n settings.hooks = Object.fromEntries(hookEntries);\n hasAnyNativeSettings = true;\n }\n }\n\n if (hasAnyNativeSettings) {\n settings.context = { fileName: [GEMINI_ROOT, GEMINI_COMPAT_AGENTS] };\n }\n\n if (Object.keys(settings).length === 0) return [];\n return [{ path: GEMINI_SETTINGS, content: JSON.stringify(settings, null, 2) }];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { GEMINI_IGNORE } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateIgnore(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.ignore || canonical.ignore.length === 0) return [];\n return [{ path: GEMINI_IGNORE, content: canonical.ignore.join('\\n') }];\n}\n","import type { CanonicalFiles } from '../../core/types.js';\nimport { GEMINI_DEFAULT_POLICIES_FILE } from './constants.js';\n\ntype RuleDecision = 'allow' | 'deny' | 'ask_user';\n\nfunction escapeTomlBasicString(value: string): string {\n // JSON string escaping is close enough for TOML basic strings.\n return JSON.stringify(value);\n}\n\nfunction escapeRegexLiteral(value: string): string {\n // Escape all regex metacharacters so the literal is matched inside argsPattern.\n return value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}\n\nfunction parsePermissionExpr(\n expr: string,\n):\n | { kind: 'tool'; tool: string }\n | { kind: 'bash'; prefix: string }\n | { kind: 'read'; path: string }\n | { kind: 'unknown'; raw: string } {\n const bash = expr.match(/^Bash\\((.*)\\)$/);\n if (bash && typeof bash[1] === 'string') return { kind: 'bash', prefix: bash[1] };\n const read = expr.match(/^Read\\((.*)\\)$/);\n if (read && typeof read[1] === 'string') return { kind: 'read', path: read[1] };\n\n if (expr === 'Read' || expr === 'Grep' || expr === 'LS' || expr === 'WebFetch') {\n return { kind: 'tool', tool: expr };\n }\n\n return { kind: 'unknown', raw: expr };\n}\n\nfunction ruleForDecision(decision: RuleDecision, priority: number, tomlFields: string[]): string {\n return [\n '[[rule]]',\n `decision = ${escapeTomlBasicString(decision)}`,\n `priority = ${priority}`,\n ...tomlFields,\n '',\n ].join('\\n');\n}\n\nfunction permissionExprToGeminiRule(\n expr: string,\n decision: RuleDecision,\n priority: number,\n): string | null {\n const parsed = parsePermissionExpr(expr);\n\n const TOOLNAME_MAP = {\n Read: 'read_file',\n Grep: 'grep_search',\n LS: 'list_directory',\n WebFetch: 'web_fetch',\n Bash: 'run_shell_command',\n } as const;\n\n if (parsed.kind === 'tool') {\n const toolName = TOOLNAME_MAP[parsed.tool as keyof typeof TOOLNAME_MAP] ?? parsed.tool;\n return ruleForDecision(decision, priority, [`toolName = ${escapeTomlBasicString(toolName)}`]);\n }\n\n if (parsed.kind === 'bash') {\n // Canonical format uses `prefix:*` (e.g. `curl:*`). Gemini policy uses `commandPrefix`.\n const normalizedPrefix = parsed.prefix.replace(/:\\*$/u, '').replace(/\\*$/u, '').trim();\n return ruleForDecision(decision, priority, [\n `toolName = ${escapeTomlBasicString(TOOLNAME_MAP.Bash)}`,\n `commandPrefix = ${escapeTomlBasicString(normalizedPrefix)}`,\n ]);\n }\n\n if (parsed.kind === 'read') {\n return ruleForDecision(decision, priority, [\n `toolName = ${escapeTomlBasicString(TOOLNAME_MAP.Read)}`,\n `argsPattern = ${escapeTomlBasicString(escapeRegexLiteral(parsed.path))}`,\n ]);\n }\n\n // Preserve unrecognized expressions as best-effort toolName entries.\n return ruleForDecision(decision, priority, [`toolName = ${escapeTomlBasicString(parsed.raw)}`]);\n}\n\nexport function generateGeminiPermissionsPolicies(\n canonical: CanonicalFiles,\n): Array<{ path: string; content: string }> {\n if (!canonical.permissions) return [];\n const { allow, deny } = canonical.permissions;\n const total = allow.length + deny.length;\n if (total === 0) return [];\n\n const rules: string[] = [];\n allow.forEach((expr, idx) => {\n const rule = permissionExprToGeminiRule(expr, 'allow', 100 + idx);\n if (rule) rules.push(rule);\n });\n deny.forEach((expr, idx) => {\n const rule = permissionExprToGeminiRule(expr, 'deny', 200 + idx);\n if (rule) rules.push(rule);\n });\n\n if (rules.length === 0) return [];\n\n return [\n {\n path: GEMINI_DEFAULT_POLICIES_FILE,\n content: rules.join('\\n'),\n },\n ];\n}\n","import { parse as parseToml } from 'smol-toml';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\n\nexport function mapGeminiHookEvent(event: string): string | null {\n switch (event) {\n case 'BeforeTool':\n case 'preToolUse':\n return 'PreToolUse';\n case 'AfterTool':\n case 'postToolUse':\n return 'PostToolUse';\n case 'Notification':\n case 'notification':\n return 'Notification';\n default:\n return null;\n }\n}\n\nexport function parseFlexibleFrontmatter(content: string): {\n frontmatter: Record<string, unknown>;\n body: string;\n} {\n const yamlOpen = content.indexOf('---');\n const tomlOpen = content.indexOf('+++');\n if (yamlOpen === 0 && (tomlOpen === -1 || yamlOpen <= tomlOpen)) {\n return parseFrontmatter(content);\n }\n if (tomlOpen === 0) {\n const tomlClose = content.indexOf('+++', 3);\n if (tomlClose !== -1) {\n try {\n const tomlStr = content.slice(3, tomlClose).trim();\n const body = content.slice(tomlClose + 3).trim();\n const parsed = tomlStr === '' ? {} : (parseToml(tomlStr) ?? {});\n const frontmatter = parsed as Record<string, unknown>;\n return { frontmatter, body };\n } catch {\n return { frontmatter: {}, body: content.trim() };\n }\n }\n }\n return { frontmatter: {}, body: content.trim() };\n}\n","import { join } from 'node:path';\nimport { stringify as stringifyYaml } from 'yaml';\nimport type { ImportResult } from '../../core/types.js';\nimport { getHookCommand, hasHookCommand } from '../../core/hook-command.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport {\n GEMINI_SETTINGS,\n GEMINI_CANONICAL_MCP,\n GEMINI_CANONICAL_HOOKS,\n GEMINI_CANONICAL_IGNORE,\n} from './constants.js';\nimport { mapGeminiHookEvent } from './format-helpers-shared.js';\n\nexport async function importGeminiSettings(\n projectRoot: string,\n results: ImportResult[],\n): Promise<void> {\n const settingsPath = join(projectRoot, GEMINI_SETTINGS);\n const settingsContent = await readFileSafe(settingsPath);\n if (settingsContent === null) return;\n\n let settings: Record<string, unknown> | undefined;\n try {\n settings = JSON.parse(settingsContent) as Record<string, unknown>;\n } catch {\n // skip malformed settings\n }\n if (!settings) return;\n\n const mcpServers = settings.mcpServers;\n if (\n mcpServers !== undefined &&\n typeof mcpServers === 'object' &&\n mcpServers !== null &&\n Object.keys(mcpServers).length > 0\n ) {\n const mcpPath = join(projectRoot, GEMINI_CANONICAL_MCP);\n await mkdirp(join(projectRoot, '.agentsmesh'));\n await writeFileAtomic(mcpPath, JSON.stringify({ mcpServers: mcpServers }, null, 2));\n results.push({\n fromTool: 'gemini-cli',\n fromPath: settingsPath,\n toPath: GEMINI_CANONICAL_MCP,\n feature: 'mcp',\n });\n }\n\n const ignorePatterns = settings.ignorePatterns;\n if (\n Array.isArray(ignorePatterns) &&\n ignorePatterns.length > 0 &&\n ignorePatterns.every((p): p is string => typeof p === 'string')\n ) {\n const ignorePath = join(projectRoot, GEMINI_CANONICAL_IGNORE);\n await mkdirp(join(projectRoot, '.agentsmesh'));\n await writeFileAtomic(ignorePath, ignorePatterns.join('\\n') + '\\n');\n results.push({\n fromTool: 'gemini-cli',\n fromPath: settingsPath,\n toPath: GEMINI_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n }\n\n const hooks = settings.hooks;\n if (hooks !== undefined && typeof hooks === 'object' && hooks !== null) {\n const mappedHooks = Object.entries(hooks as Record<string, unknown>).flatMap(\n ([event, value]) => {\n const canonicalEvent = mapGeminiHookEvent(event);\n if (!canonicalEvent || !Array.isArray(value)) return [];\n const mapped = value\n .filter(\n (entry): entry is Record<string, unknown> =>\n entry !== null &&\n typeof entry === 'object' &&\n typeof entry.matcher === 'string' &&\n Array.isArray(entry.hooks),\n )\n .flatMap((entry) =>\n (entry.hooks as unknown[])\n .filter(\n (hook): hook is Record<string, unknown> =>\n hook !== null && typeof hook === 'object' && hasHookCommand(hook),\n )\n .map((hook) => ({\n matcher: entry.matcher as string,\n command: getHookCommand(hook),\n type: 'command',\n timeout: typeof hook.timeout === 'number' ? hook.timeout : undefined,\n })),\n );\n if (mapped.length === 0) {\n const legacyMapped = value\n .filter(\n (entry): entry is Record<string, unknown> =>\n entry !== null &&\n typeof entry === 'object' &&\n typeof entry.matcher === 'string' &&\n hasHookCommand(entry),\n )\n .map((entry) => ({\n matcher: entry.matcher as string,\n command: getHookCommand(entry),\n type: 'command',\n }));\n return legacyMapped.length > 0 ? [[canonicalEvent, legacyMapped] as const] : [];\n }\n return mapped.length > 0 ? [[canonicalEvent, mapped] as const] : [];\n },\n );\n if (mappedHooks.length > 0) {\n const hooksYaml = Object.fromEntries(mappedHooks);\n const hooksPath = join(projectRoot, GEMINI_CANONICAL_HOOKS);\n await mkdirp(join(projectRoot, '.agentsmesh'));\n await writeFileAtomic(hooksPath, stringifyYaml(hooksYaml, { lineWidth: 0 }).trimEnd());\n results.push({\n fromTool: 'gemini-cli',\n fromPath: settingsPath,\n toPath: GEMINI_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n }\n }\n}\n","/**\n * Gemini CLI format helpers — flexible frontmatter parsing, hook event mapping,\n * and settings processing (MCP, ignore, hooks).\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { GEMINI_IGNORE, GEMINI_CANONICAL_IGNORE } from './constants.js';\n\nexport { mapGeminiHookEvent, parseFlexibleFrontmatter } from './format-helpers-shared.js';\nexport { importGeminiSettings } from './format-helpers-settings.js';\n\nexport async function importGeminiIgnore(\n projectRoot: string,\n results: ImportResult[],\n): Promise<void> {\n const geminiIgnorePath = join(projectRoot, GEMINI_IGNORE);\n const geminiIgnoreContent = await readFileSafe(geminiIgnorePath);\n if (geminiIgnoreContent !== null && geminiIgnoreContent.trim()) {\n const patterns = geminiIgnoreContent\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter((line) => line && !line.startsWith('#'));\n if (patterns.length > 0) {\n await mkdirp(join(projectRoot, '.agentsmesh'));\n const ignorePath = join(projectRoot, GEMINI_CANONICAL_IGNORE);\n await writeFileAtomic(ignorePath, patterns.join('\\n') + '\\n');\n results.push({\n fromTool: 'gemini-cli',\n fromPath: geminiIgnorePath,\n toPath: GEMINI_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n }\n }\n}\n","import { join } from 'node:path';\nimport { parse as parseToml } from 'smol-toml';\nimport {\n serializeImportedCommandWithFallback,\n serializeImportedRuleWithFallback,\n} from '../import/import-metadata.js';\nimport type { ImportFileMapping } from '../import/import-orchestrator.js';\nimport { toGlobsArray, toToolsArray } from '../import/shared-import-helpers.js';\nimport { parseFlexibleFrontmatter } from './format-helpers.js';\nimport { GEMINI_CANONICAL_RULES_DIR, GEMINI_CANONICAL_COMMANDS_DIR } from './constants.js';\n\nexport async function mapGeminiRuleFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const relativeMdPath = relativePath.replace(/\\\\/g, '/');\n const destPath = join(destDir, relativeMdPath);\n const { frontmatter, body } = parseFlexibleFrontmatter(normalizeTo(destPath));\n const globs = toGlobsArray(frontmatter.globs);\n const canonicalFm: Record<string, unknown> = {\n root: false,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: globs.length > 0 ? globs : undefined,\n };\n Object.keys(canonicalFm).forEach((key) => {\n if (canonicalFm[key] === undefined) delete canonicalFm[key];\n });\n return {\n destPath,\n toPath: `${GEMINI_CANONICAL_RULES_DIR}/${relativeMdPath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(destPath, canonicalFm, body),\n };\n}\n\nexport async function mapGeminiCommandFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const relativeMdPath = relativePath.replace(/\\.(toml|md)$/i, '.md').replace(/\\\\/g, '/');\n const destPath = join(destDir, relativeMdPath);\n const normalized = normalizeTo(destPath);\n const { frontmatter, body } = relativePath.endsWith('.toml')\n ? parseTomlCommand(normalized)\n : parseFlexibleFrontmatter(normalized);\n const fromCamel = toToolsArray(frontmatter.allowedTools);\n const fromKebab = toToolsArray(frontmatter['allowed-tools']);\n const allowedTools = fromCamel.length > 0 ? fromCamel : fromKebab;\n return {\n destPath,\n toPath: `${GEMINI_CANONICAL_COMMANDS_DIR}/${relativeMdPath}`,\n feature: 'commands',\n content: await serializeImportedCommandWithFallback(\n destPath,\n {\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n hasDescription: Object.prototype.hasOwnProperty.call(frontmatter, 'description'),\n allowedTools,\n hasAllowedTools:\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowedTools') ||\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowed-tools'),\n },\n body,\n ),\n };\n}\n\nfunction parseTomlCommand(normalized: string): {\n frontmatter: Record<string, unknown>;\n body: string;\n} {\n try {\n const parsed = parseToml(normalized) as Record<string, unknown>;\n return {\n frontmatter: parsed,\n body: typeof parsed.prompt === 'string' ? parsed.prompt : '',\n };\n } catch {\n return { frontmatter: {}, body: normalized.trim() };\n }\n}\n","import { parse as parseToml } from 'smol-toml';\nimport { stringify as stringifyYaml } from 'yaml';\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readDirRecursive,\n readFileSafe,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { GEMINI_TARGET, GEMINI_POLICIES_DIR, GEMINI_CANONICAL_PERMISSIONS } from './constants.js';\n\nfunction unescapeRegexLiteral(value: string): string {\n // Reverse of escapeRegexLiteral: `\\.` -> `.`, `\\/` -> `/`, etc.\n return value.replace(/\\\\(.)/g, '$1');\n}\n\nfunction toolNameToPermissionBase(\n toolName: string,\n): 'Read' | 'Grep' | 'LS' | 'WebFetch' | 'Bash' | null {\n switch (toolName) {\n case 'read_file':\n return 'Read';\n case 'grep_search':\n return 'Grep';\n case 'list_directory':\n return 'LS';\n case 'web_fetch':\n return 'WebFetch';\n case 'run_shell_command':\n return 'Bash';\n default:\n return null;\n }\n}\n\nfunction commandPrefixToBashExpr(prefix: string): string {\n return `Bash(${prefix}:*)`;\n}\n\nfunction argsPatternToReadExpr(argsPattern: string): string {\n return `Read(${unescapeRegexLiteral(argsPattern)})`;\n}\n\nexport async function importGeminiPolicies(projectRoot: string): Promise<ImportResult[]> {\n const results: ImportResult[] = [];\n\n const policiesDir = join(projectRoot, GEMINI_POLICIES_DIR);\n let policyFiles: string[];\n try {\n policyFiles = await readDirRecursive(policiesDir);\n } catch {\n return results;\n }\n\n const tomlFiles = policyFiles.filter((f) => f.endsWith('.toml'));\n if (tomlFiles.length === 0) return results;\n\n const allow: string[] = [];\n const deny: string[] = [];\n const allowSet = new Set<string>();\n const denySet = new Set<string>();\n\n for (const policyPath of tomlFiles) {\n const content = await readFileSafe(policyPath);\n if (!content) continue;\n\n let parsed: unknown;\n try {\n parsed = parseToml(content) as unknown;\n } catch {\n continue;\n }\n\n const rules = (\n parsed && typeof parsed === 'object' && 'rule' in parsed\n ? (parsed as { rule?: unknown }).rule\n : undefined\n ) as unknown;\n if (!Array.isArray(rules)) continue;\n\n for (const rawRule of rules) {\n if (!rawRule || typeof rawRule !== 'object') continue;\n const rule = rawRule as Record<string, unknown>;\n\n const toolName = typeof rule.toolName === 'string' ? rule.toolName : null;\n const decision = typeof rule.decision === 'string' ? rule.decision : null;\n if (!toolName || !decision) continue;\n\n const base = toolNameToPermissionBase(toolName);\n if (!base) continue;\n\n let expr: string | null = null;\n if (base === 'Bash') {\n if (typeof rule.commandPrefix === 'string' && rule.commandPrefix.trim()) {\n expr = commandPrefixToBashExpr(rule.commandPrefix.trim());\n }\n } else if (base === 'Read') {\n if (typeof rule.argsPattern === 'string' && rule.argsPattern.trim()) {\n expr = argsPatternToReadExpr(rule.argsPattern.trim());\n } else {\n expr = 'Read';\n }\n } else {\n expr = base;\n }\n\n if (!expr) continue;\n\n if (decision === 'allow') {\n if (!allowSet.has(expr)) {\n allowSet.add(expr);\n allow.push(expr);\n }\n } else if (decision === 'deny') {\n if (!denySet.has(expr)) {\n denySet.add(expr);\n deny.push(expr);\n }\n }\n }\n }\n\n if (allow.length === 0 && deny.length === 0) return results;\n\n await mkdirp(join(projectRoot, '.agentsmesh'));\n const outPath = join(projectRoot, GEMINI_CANONICAL_PERMISSIONS);\n const yaml = stringifyYaml({ allow, deny });\n await writeFileAtomic(outPath, yaml.trimEnd() + '\\n');\n\n results.push({\n fromTool: GEMINI_TARGET,\n fromPath: join(projectRoot, GEMINI_POLICIES_DIR),\n toPath: GEMINI_CANONICAL_PERMISSIONS,\n feature: 'permissions',\n });\n\n return results;\n}\n","import { realpathSync } from 'node:fs';\n\nexport function stripProjectRootCanonicalPrefix(content: string, projectRoot: string): string {\n const variants = new Set([\n projectRoot,\n projectRoot.replace(/\\\\/g, '/'),\n projectRoot.replace(/\\//g, '\\\\'),\n ]);\n try {\n variants.add(realpathSync(projectRoot));\n variants.add(realpathSync.native(projectRoot));\n } catch {\n // Keep direct path variants when realpath lookup fails.\n }\n\n const stripped = Array.from(variants).reduce((next, variant) => {\n const escaped = variant.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return next\n .replace(new RegExp(`${escaped}[/\\\\\\\\]\\\\.agentsmesh[/\\\\\\\\]`, 'g'), '.agentsmesh/')\n .replaceAll(`${variant}/.agentsmesh`, '.agentsmesh')\n .replaceAll(`${variant}\\\\.agentsmesh`, '.agentsmesh');\n }, content);\n\n return stripped.replace(/(?:[A-Za-z]:)?[^\\s\"'`()<>]+[/\\\\]\\.agentsmesh[/\\\\]/g, '.agentsmesh/');\n}\n","import { basename, dirname, join, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n serializeImportedAgentWithFallback,\n serializeImportedSkillWithFallback,\n} from '../import/import-metadata.js';\nimport {\n parseProjectedAgentSkillFrontmatter,\n serializeImportedAgent,\n} from '../projection/projected-agent-skill.js';\nimport {\n GEMINI_SKILLS_DIR,\n GEMINI_AGENTS_DIR,\n GEMINI_CANONICAL_AGENTS_DIR,\n GEMINI_CANONICAL_SKILLS_DIR,\n} from './constants.js';\n\nexport async function importGeminiSkillsAndAgents(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const geminiSkillsPath = join(projectRoot, GEMINI_SKILLS_DIR);\n const skillDirs = await readDirRecursive(geminiSkillsPath);\n const skillMdFiles = skillDirs.filter((f) => basename(f) === 'SKILL.md');\n for (const srcPath of skillMdFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const skillName = basename(srcPath.slice(0, -'/SKILL.md'.length));\n const rawParsed = parseFrontmatter(content);\n const projectedAgent = parseProjectedAgentSkillFrontmatter(rawParsed.frontmatter, skillName);\n if (projectedAgent) {\n const agentsDir = join(projectRoot, GEMINI_CANONICAL_AGENTS_DIR);\n await mkdirp(agentsDir);\n const agentPath = join(agentsDir, `${projectedAgent.name}.md`);\n await writeFileAtomic(\n agentPath,\n serializeImportedAgent(projectedAgent, normalize(rawParsed.body, srcPath, agentPath)),\n );\n results.push({\n fromTool: 'gemini-cli',\n fromPath: srcPath,\n toPath: `${GEMINI_CANONICAL_AGENTS_DIR}/${projectedAgent.name}.md`,\n feature: 'agents',\n });\n continue;\n }\n const destPath = join(projectRoot, GEMINI_CANONICAL_SKILLS_DIR, skillName, 'SKILL.md');\n const normalized = normalize(content, srcPath, destPath);\n const skillDir = join(projectRoot, GEMINI_CANONICAL_SKILLS_DIR, skillName);\n await mkdirp(skillDir);\n const { frontmatter, body } = parseFrontmatter(normalized);\n await writeFileAtomic(\n destPath,\n await serializeImportedSkillWithFallback(destPath, { ...frontmatter, name: skillName }, body),\n );\n results.push({\n fromTool: 'gemini-cli',\n fromPath: srcPath,\n toPath: `${GEMINI_CANONICAL_SKILLS_DIR}/${skillName}/SKILL.md`,\n feature: 'skills',\n });\n const allSkillFiles = await readDirRecursive(dirname(srcPath));\n for (const absPath of allSkillFiles) {\n if (absPath === srcPath) continue;\n const supportContent = await readFileSafe(absPath);\n if (supportContent === null) continue;\n const relPath = relative(dirname(srcPath), absPath).replace(/\\\\/g, '/');\n const destSupportPath = join(skillDir, relPath);\n await mkdirp(dirname(destSupportPath));\n await writeFileAtomic(destSupportPath, normalize(supportContent, absPath, destSupportPath));\n results.push({\n fromTool: 'gemini-cli',\n fromPath: absPath,\n toPath: `${GEMINI_CANONICAL_SKILLS_DIR}/${skillName}/${relPath}`,\n feature: 'skills',\n });\n }\n }\n\n const geminiAgentsPath = join(projectRoot, GEMINI_AGENTS_DIR);\n try {\n const agentFiles = await readDirRecursive(geminiAgentsPath);\n const agentMdFiles = agentFiles.filter((f) => f.endsWith('.md'));\n for (const srcPath of agentMdFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const { frontmatter, body } = parseFrontmatter(content);\n const relPath = relative(geminiAgentsPath, srcPath).replace(/\\\\/g, '/');\n const relativeMdPath = relPath.replace(/\\.md$/i, '.md');\n const agentsDir = join(projectRoot, GEMINI_CANONICAL_AGENTS_DIR);\n await mkdirp(agentsDir);\n const destPath = join(agentsDir, relativeMdPath);\n const normalizedBody = normalize(body, srcPath, destPath);\n await writeFileAtomic(\n destPath,\n await serializeImportedAgentWithFallback(\n destPath,\n {\n ...frontmatter,\n name:\n typeof frontmatter.name === 'string'\n ? frontmatter.name\n : basename(relativeMdPath, '.md'),\n maxTurns: frontmatter.maxTurns ?? frontmatter['max-turns'] ?? frontmatter.max_turns,\n permissionMode:\n frontmatter.permissionMode ??\n frontmatter['permission-mode'] ??\n frontmatter.permission_mode,\n disallowedTools:\n frontmatter.disallowedTools ??\n frontmatter['disallowed-tools'] ??\n frontmatter.disallowed_tools,\n },\n normalizedBody,\n ),\n );\n results.push({\n fromTool: 'gemini-cli',\n fromPath: srcPath,\n toPath: `${GEMINI_CANONICAL_AGENTS_DIR}/${relativeMdPath}`,\n feature: 'agents',\n });\n }\n } catch {\n /* GEMINI_AGENTS_DIR may not exist */\n }\n}\n","/**\n * Gemini CLI target importer — GEMINI.md, .gemini/rules, .gemini/commands,\n * .gemini/settings.json → canonical .agentsmesh/.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { splitEmbeddedRulesToCanonical } from '../import/embedded-rules.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { mapGeminiCommandFile, mapGeminiRuleFile } from './importer-mappers.js';\nimport {\n GEMINI_TARGET,\n GEMINI_ROOT,\n GEMINI_COMPAT_AGENTS,\n GEMINI_COMPAT_INNER_ROOT,\n GEMINI_RULES_DIR,\n GEMINI_COMMANDS_DIR,\n GEMINI_SYSTEM,\n GEMINI_CANONICAL_RULES_DIR,\n GEMINI_CANONICAL_COMMANDS_DIR,\n} from './constants.js';\nimport { importGeminiSettings, importGeminiIgnore } from './format-helpers.js';\nimport { importGeminiPolicies } from './policies-importer.js';\nimport { stripProjectRootCanonicalPrefix } from './importer-strip.js';\nimport { importGeminiSkillsAndAgents } from './importer-skills-agents.js';\n\n/**\n * Import Gemini config into canonical .agentsmesh/.\n *\n * @param projectRoot - Project root directory\n * @returns Import results for each imported file\n */\nexport async function importFromGemini(projectRoot: string): Promise<ImportResult[]> {\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(GEMINI_TARGET, projectRoot);\n const normalizeCodex = await createImportReferenceNormalizer('codex-cli', projectRoot);\n const rulesDir = join(projectRoot, GEMINI_CANONICAL_RULES_DIR);\n const commandsDir = join(projectRoot, GEMINI_CANONICAL_COMMANDS_DIR);\n\n const geminiRootPath = join(projectRoot, GEMINI_ROOT);\n const compatAgentsRootPath = join(projectRoot, GEMINI_COMPAT_AGENTS);\n const compatInnerRootPath = join(projectRoot, GEMINI_COMPAT_INNER_ROOT);\n const systemPath = join(projectRoot, GEMINI_SYSTEM);\n\n const geminiRootContent = await readFileSafe(geminiRootPath);\n const compatAgentsRootContent = await readFileSafe(compatAgentsRootPath);\n const compatInnerRootContent = await readFileSafe(compatInnerRootPath);\n const systemContent = await readFileSafe(systemPath);\n\n const rootCandidate =\n [\n { path: compatAgentsRootPath, content: compatAgentsRootContent },\n { path: compatInnerRootPath, content: compatInnerRootContent },\n { path: geminiRootPath, content: geminiRootContent },\n { path: systemPath, content: systemContent },\n ].find((c) => c.content !== null) ?? null;\n\n const rootSourcePath = rootCandidate?.path ?? systemPath;\n const rootContent = rootCandidate?.content ?? null;\n if (rootContent !== null) {\n await mkdirp(rulesDir);\n const destPath = join(rulesDir, '_root.md');\n const compatContent =\n rootSourcePath === compatAgentsRootPath || rootSourcePath === compatInnerRootPath\n ? normalizeCodex(rootContent, rootSourcePath, destPath)\n : rootContent;\n const split = await splitEmbeddedRulesToCanonical({\n content: compatContent,\n projectRoot,\n rulesDir: GEMINI_CANONICAL_RULES_DIR,\n sourcePath: rootSourcePath,\n fromTool: 'gemini-cli',\n normalize,\n });\n results.push(...split.results);\n const compatNormalized = normalize(split.rootContent, rootSourcePath, destPath);\n const normalizedRoot = stripProjectRootCanonicalPrefix(\n compatNormalized\n .replace(/\\.agents\\/skills\\//g, '.agentsmesh/skills/')\n .replace(/\\.agents\\\\skills\\\\/g, '.agentsmesh/skills/'),\n projectRoot,\n );\n const { frontmatter, body } = parseFrontmatter(normalizedRoot);\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = stripProjectRootCanonicalPrefix(\n await serializeImportedRuleWithFallback(destPath, outFm, body),\n projectRoot,\n );\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'gemini-cli',\n fromPath: rootSourcePath,\n toPath: `${GEMINI_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n\n const geminiRulesPath = join(projectRoot, GEMINI_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: geminiRulesPath,\n destDir: rulesDir,\n extensions: ['.md'],\n fromTool: 'gemini-cli',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapGeminiRuleFile(relativePath, rulesDir, normalizeTo),\n })),\n );\n\n const geminiCommandsPath = join(projectRoot, GEMINI_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: geminiCommandsPath,\n destDir: commandsDir,\n extensions: ['.md', '.toml'],\n fromTool: 'gemini-cli',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapGeminiCommandFile(relativePath, commandsDir, normalizeTo),\n })),\n );\n\n await importGeminiSkillsAndAgents(projectRoot, results, normalize);\n\n await importGeminiSettings(projectRoot, results);\n await importGeminiIgnore(projectRoot, results);\n results.push(...(await importGeminiPolicies(projectRoot)));\n\n return results;\n}\n","/**\n * Gemini CLI target linter — validates canonical files for Gemini CLI.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { GEMINI_TARGET } from './constants.js';\n\n/**\n * Lint rules for Gemini CLI target.\n * @param canonical - Loaded canonical files\n * @param projectRoot - Project root (for relative paths)\n * @param projectFiles - Relative file paths for glob matching\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n const diags = validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n });\n return diags.map((d) => ({ ...d, target: GEMINI_TARGET }));\n}\n","/**\n * Gemini CLI-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning, createUnsupportedHookWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintCommands(canonical: CanonicalFiles): LintDiagnostic[] {\n return canonical.commands\n .filter((command) => command.allowedTools.length > 0)\n .map((command) =>\n createWarning(\n command.source,\n 'gemini-cli',\n 'Gemini TOML command files do not project canonical allowed-tools metadata.',\n ),\n );\n}\n\nexport function lintHooks(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const supported = ['PreToolUse', 'PostToolUse', 'Notification'] as const;\n const supportedSet = new Set(supported);\n return Object.keys(canonical.hooks)\n .filter((event) => !supportedSet.has(event as never))\n .map((event) => createUnsupportedHookWarning(event, 'gemini-cli', supported));\n}\n","/**\n * Optional `.gemini/settings.json` sidecar for embedded capabilities — invoked from generate engine.\n */\n\nimport type { CanonicalFiles } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { getTargetCapabilities } from '../catalog/builtin-targets.js';\nimport { generateGeminiSettingsFiles } from './generator/settings.js';\n\nexport function emitScopedGeminiSettings(\n canonical: CanonicalFiles,\n scope: TargetLayoutScope,\n): ReturnType<typeof generateGeminiSettingsFiles> {\n if (scope === 'project') {\n const caps = getTargetCapabilities('gemini-cli', scope);\n if (caps?.ignore.flavor !== 'settings-embedded') return [];\n }\n return generateGeminiSettingsFiles(canonical);\n}\n","import type { TargetGenerators, TargetCapabilities } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport type { ValidatedConfig } from '../../config/core/schema.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateIgnore,\n} from './generator.js';\nimport { cap } from '../catalog/capabilities.js';\nimport { generateGeminiPermissionsPolicies } from './policies-generator.js';\nimport {\n GEMINI_ROOT,\n GEMINI_COMPAT_AGENTS,\n GEMINI_COMMANDS_DIR,\n GEMINI_AGENTS_DIR,\n GEMINI_GLOBAL_ROOT,\n GEMINI_GLOBAL_COMPAT_AGENTS,\n GEMINI_GLOBAL_SETTINGS,\n GEMINI_GLOBAL_COMMANDS_DIR,\n GEMINI_GLOBAL_SKILLS_DIR,\n GEMINI_GLOBAL_AGENTS_DIR,\n GEMINI_SETTINGS,\n} from './constants.js';\nimport { importFromGemini } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { buildGeminiCliImportPaths } from '../../core/reference/import-map-builders.js';\nimport { shouldConvertAgentsToSkills } from '../../config/core/conversions.js';\nimport { projectedAgentSkillDirName } from '../projection/projected-agent-skill.js';\nimport { lintCommands, lintHooks } from './lint.js';\nimport { emitScopedGeminiSettings } from './scoped-settings-emit.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\n\nexport const target: TargetGenerators = {\n name: 'gemini-cli',\n primaryRootInstructionPath: GEMINI_ROOT,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateIgnore,\n generatePermissions: generateGeminiPermissionsPolicies,\n importFrom: importFromGemini,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: GEMINI_ROOT,\n outputFamilies: [\n { id: 'compat-agents', kind: 'additional', explicitPaths: [GEMINI_COMPAT_AGENTS] },\n ],\n skillDir: '.gemini/skills',\n managedOutputs: {\n dirs: ['.gemini/agents', '.gemini/commands', '.gemini/skills', '.agents/skills'],\n files: [\n 'AGENTS.md',\n 'GEMINI.md',\n '.gemini/settings.json',\n '.gemini/policies/permissions.toml',\n '.geminiignore',\n ],\n },\n // `AGENTS.md` rewrites skill links to `.agents/skills/…` for cross-tool compatibility; mirror\n // project skills there so link validation and consumers see real files (same as global layout).\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, '.gemini/skills', activeTargets);\n },\n paths: {\n rulePath(_slug, _rule) {\n return GEMINI_ROOT;\n },\n commandPath(name, _config) {\n if (name.includes(':')) {\n const parts = name.split(':').filter(Boolean);\n const fileBase = parts.pop() ?? name;\n const dirs = parts;\n return `${GEMINI_COMMANDS_DIR}/${dirs.join('/')}/${fileBase}.toml`;\n }\n return `${GEMINI_COMMANDS_DIR}/${name}.toml`;\n },\n agentPath(name, config: ValidatedConfig) {\n return shouldConvertAgentsToSkills(config, 'gemini-cli')\n ? `.gemini/skills/${projectedAgentSkillDirName(name)}/SKILL.md`\n : `${GEMINI_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: GEMINI_GLOBAL_ROOT,\n outputFamilies: [\n { id: 'compat-agents', kind: 'additional', explicitPaths: [GEMINI_GLOBAL_COMPAT_AGENTS] },\n ],\n skillDir: GEMINI_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [GEMINI_GLOBAL_COMMANDS_DIR, GEMINI_GLOBAL_SKILLS_DIR, GEMINI_GLOBAL_AGENTS_DIR],\n files: [GEMINI_GLOBAL_ROOT, GEMINI_GLOBAL_COMPAT_AGENTS, GEMINI_GLOBAL_SETTINGS],\n },\n rewriteGeneratedPath(path) {\n // Transform project-level paths to global ~/.gemini/ paths\n if (path === GEMINI_ROOT) {\n return GEMINI_GLOBAL_ROOT;\n }\n if (path === GEMINI_COMPAT_AGENTS) {\n return GEMINI_GLOBAL_COMPAT_AGENTS;\n }\n if (path === GEMINI_SETTINGS) {\n return GEMINI_GLOBAL_SETTINGS;\n }\n if (path.startsWith(`${GEMINI_COMMANDS_DIR}/`)) {\n return path.replace(`${GEMINI_COMMANDS_DIR}/`, `${GEMINI_GLOBAL_COMMANDS_DIR}/`);\n }\n if (path.startsWith('.gemini/skills/')) {\n return path.replace('.gemini/skills/', `${GEMINI_GLOBAL_SKILLS_DIR}/`);\n }\n if (path.startsWith(`${GEMINI_AGENTS_DIR}/`)) {\n return path.replace(`${GEMINI_AGENTS_DIR}/`, `${GEMINI_GLOBAL_AGENTS_DIR}/`);\n }\n // Skip policies and ignore in global mode\n if (path.startsWith('.gemini/policies/') || path === '.geminiignore') {\n return null;\n }\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, GEMINI_GLOBAL_SKILLS_DIR, activeTargets);\n },\n paths: {\n rulePath(_slug, _rule) {\n // Global mode uses single instructions file, not per-rule files\n return GEMINI_GLOBAL_ROOT;\n },\n commandPath(name, _config) {\n if (name.includes(':')) {\n const parts = name.split(':').filter(Boolean);\n const fileBase = parts.pop() ?? name;\n const dirs = parts;\n return `${GEMINI_GLOBAL_COMMANDS_DIR}/${dirs.join('/')}/${fileBase}.toml`;\n }\n return `${GEMINI_GLOBAL_COMMANDS_DIR}/${name}.toml`;\n },\n agentPath(name, config: ValidatedConfig) {\n return shouldConvertAgentsToSkills(config, 'gemini-cli')\n ? `${GEMINI_GLOBAL_SKILLS_DIR}/${projectedAgentSkillDirName(name)}/SKILL.md`\n : `${GEMINI_GLOBAL_AGENTS_DIR}/${name}.md`;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'embedded',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'partial',\n ignore: 'none',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'gemini-cli',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'embedded',\n commands: 'native',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'partial',\n ignore: cap('native', 'settings-embedded'),\n permissions: 'partial',\n },\n emptyImportMessage:\n 'No Gemini CLI config found (GEMINI.md or .gemini/rules, .gemini/commands, .gemini/settings.json).',\n lintRules,\n lint: {\n commands: lintCommands,\n hooks: lintHooks,\n },\n emitScopedSettings: emitScopedGeminiSettings,\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n GEMINI_GLOBAL_ROOT,\n GEMINI_GLOBAL_COMPAT_AGENTS,\n GEMINI_GLOBAL_SETTINGS,\n GEMINI_GLOBAL_COMMANDS_DIR,\n GEMINI_GLOBAL_SKILLS_DIR,\n GEMINI_GLOBAL_AGENTS_DIR,\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildGeminiCliImportPaths,\n detectionPaths: ['GEMINI.md', '.gemini'],\n} satisfies TargetDescriptor;\n","/**\n * Generate Cline config files from canonical sources.\n * Cline uses .clinerules (rules, workflows), .clineignore, .cline/cline_mcp_settings.json, .cline/skills (skills).\n * Supports rules, workflows (from canonical commands), ignore, MCP, skills. Skips agents, hooks, permissions.\n */\n\nimport { basename } from 'node:path';\nimport type { CanonicalFiles } from '../../core/types.js';\nimport { hasHookCommand } from '../../core/hook-command.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n projectedAgentSkillDirName,\n serializeProjectedAgentSkill,\n} from '../projection/projected-agent-skill.js';\nimport {\n CLINE_RULES_DIR,\n CLINE_AGENTS_MD,\n CLINE_IGNORE,\n CLINE_MCP_SETTINGS,\n CLINE_SKILLS_DIR,\n CLINE_WORKFLOWS_DIR,\n CLINE_HOOKS_DIR,\n} from './constants.js';\n\nexport interface RulesOutput {\n path: string;\n content: string;\n}\n\nfunction ruleSlug(source: string): string {\n const name = basename(source, '.md');\n return name === '_root' ? 'root' : name;\n}\n\n/**\n * Generate .clinerules/*.md from canonical rules.\n * Cline supports plain markdown with optional frontmatter.\n * Root rule → AGENTS.md, non-root → .clinerules/{slug}.md\n *\n * @param canonical - Loaded canonical files\n * @returns Array of rule outputs, or [] if no rules for cline\n */\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n const root = canonical.rules.find((r) => r.root);\n\n if (root) {\n const body = root.body.trim() ? root.body : '';\n outputs.push({ path: CLINE_AGENTS_MD, content: body });\n }\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('cline')) continue;\n const slug = ruleSlug(rule.source);\n const frontmatter: Record<string, unknown> = {\n description: rule.description || undefined,\n paths: rule.globs.length > 0 ? rule.globs : undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content =\n Object.keys(frontmatter).length > 0\n ? serializeFrontmatter(frontmatter, rule.body.trim() || '')\n : rule.body.trim() || '';\n outputs.push({ path: `${CLINE_RULES_DIR}/${slug}.md`, content });\n }\n\n return outputs;\n}\n\n/**\n * Generate .clinerules/workflows/{name}.md from canonical commands.\n * Cline workflows are slash-invokable prompts analogous to Cursor/Windsurf commands.\n * Per Cline doc section 6.4: command description → workflow intro paragraph.\n *\n * @param canonical - Loaded canonical files\n * @returns Array of workflow file outputs, or [] if no commands\n */\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map((cmd) => {\n const desc = cmd.description.trim();\n const body = cmd.body.trim();\n const content = desc && body ? `${desc}\\n\\n${body}` : desc || body;\n return { path: `${CLINE_WORKFLOWS_DIR}/${cmd.name}.md`, content };\n });\n}\n\n/**\n * Generate .clineignore from canonical ignore patterns.\n *\n * @param canonical - Loaded canonical files\n * @returns Array with single .clineignore output, or [] if no patterns\n */\nexport function generateIgnore(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.ignore || canonical.ignore.length === 0) return [];\n const content = canonical.ignore.join('\\n');\n return [{ path: CLINE_IGNORE, content }];\n}\n\n/**\n * Generate .cline/cline_mcp_settings.json from canonical MCP config.\n * Cline uses mcpServers format compatible with canonical.\n *\n * @param canonical - Loaded canonical files\n * @returns Array with single output, or [] if no MCP\n */\nexport function generateMcp(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n const content = JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2);\n return [{ path: CLINE_MCP_SETTINGS, content }];\n}\n\n/**\n * Generate projected agent skills for Cline from canonical agents.\n */\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => ({\n path: `${CLINE_SKILLS_DIR}/${projectedAgentSkillDirName(agent.name)}/SKILL.md`,\n content: serializeProjectedAgentSkill(agent),\n }));\n}\n\nfunction safeEventName(event: string): string {\n return event.replace(/[^a-zA-Z0-9]/g, '-').toLowerCase();\n}\n\nfunction buildHookScript(event: string, command: string, matcher: string): string {\n return [\n '#!/usr/bin/env bash',\n `# agentsmesh-event: ${event}`,\n `# agentsmesh-matcher: ${matcher}`,\n `# agentsmesh-command: ${command}`,\n 'set -e',\n command,\n '',\n ].join('\\n');\n}\n\n/**\n * Generate .clinerules/hooks/{event}-{index}.sh from canonical hooks.\n * Cline hooks are deterministic shell scripts at .clinerules/hooks/.\n *\n * @param canonical - Loaded canonical files\n * @returns Array of hook script outputs, or [] if no hooks\n */\nexport function generateHooks(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const outputs: RulesOutput[] = [];\n for (const [event, entries] of Object.entries(canonical.hooks)) {\n if (!Array.isArray(entries)) continue;\n let index = 0;\n for (const entry of entries) {\n if (!hasHookCommand(entry)) continue;\n outputs.push({\n path: `${CLINE_HOOKS_DIR}/${safeEventName(event)}-${index}.sh`,\n content: buildHookScript(event, entry.command, entry.matcher),\n });\n index++;\n }\n }\n return outputs;\n}\n\n/**\n * Generate .cline/skills/{name}/SKILL.md and supporting files.\n *\n * @param canonical - Loaded canonical files\n * @returns Array of skill file outputs\n */\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const skillContent = serializeFrontmatter(frontmatter, skill.body.trim() || '');\n outputs.push({\n path: `${CLINE_SKILLS_DIR}/${skill.name}/SKILL.md`,\n content: skillContent,\n });\n for (const file of skill.supportingFiles) {\n const relPath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${CLINE_SKILLS_DIR}/${skill.name}/${relPath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n","import { join } from 'node:path';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n serializeImportedCommandWithFallback,\n serializeImportedRuleWithFallback,\n} from '../import/import-metadata.js';\nimport type { ImportFileMapping } from '../import/import-orchestrator.js';\nimport { toGlobsArray } from '../import/shared-import-helpers.js';\nimport { CLINE_CANONICAL_RULES_DIR, CLINE_CANONICAL_COMMANDS_DIR } from './constants.js';\n\nexport async function mapClineRuleFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping | null> {\n if (relativePath === 'workflows' || relativePath.startsWith('workflows/')) return null;\n const relativeMdPath = relativePath.replace(/\\\\/g, '/');\n if (relativeMdPath === '_root.md') return null;\n const destPath = join(destDir, relativeMdPath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const globs = toGlobsArray(frontmatter.paths ?? frontmatter.globs);\n const canonicalFm: Record<string, unknown> = {\n root: false,\n description: typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: globs.length > 0 ? globs : undefined,\n };\n Object.keys(canonicalFm).forEach((key) => {\n if (canonicalFm[key] === undefined) delete canonicalFm[key];\n });\n return {\n destPath,\n toPath: `${CLINE_CANONICAL_RULES_DIR}/${relativeMdPath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(destPath, canonicalFm, body),\n };\n}\n\nexport async function mapClineWorkflowFile(\n relativePath: string,\n destDir: string,\n normalizeTo: (destinationFile: string) => string,\n): Promise<ImportFileMapping> {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const hasFrontmatterDescription = Object.prototype.hasOwnProperty.call(\n frontmatter,\n 'description',\n );\n let description = hasFrontmatterDescription\n ? typeof frontmatter.description === 'string'\n ? frontmatter.description\n : ''\n : '';\n let hasDescription = hasFrontmatterDescription;\n let actualBody = body;\n\n // Cline workflows embed description as first paragraph (no frontmatter).\n // Split \"desc\\n\\nbody\" back into separate fields when no frontmatter description present.\n if (!hasDescription) {\n const doubleNewline = body.indexOf('\\n\\n');\n if (doubleNewline > 0) {\n const firstParagraph = body.slice(0, doubleNewline).trim();\n if (firstParagraph && !firstParagraph.includes('\\n')) {\n description = firstParagraph;\n hasDescription = true;\n actualBody = body.slice(doubleNewline + 2);\n }\n }\n }\n\n return {\n destPath,\n toPath: `${CLINE_CANONICAL_COMMANDS_DIR}/${relativePath}`,\n feature: 'commands',\n content: await serializeImportedCommandWithFallback(\n destPath,\n {\n description,\n hasDescription,\n allowedTools: [],\n hasAllowedTools:\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowedTools') ||\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowed-tools'),\n },\n actualBody,\n ),\n };\n}\n","import { stat } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { mapClineRuleFile } from './importer-mappers.js';\nimport { CLINE_RULES_DIR, CLINE_AGENTS_MD, CLINE_CANONICAL_RULES_DIR } from './constants.js';\n\n/**\n * Imports Cline rules from `.clinerules` (file or directory) into canonical rules.\n * @returns `true` when `.clinerules` is a flat file (workflows path must be skipped).\n */\nexport async function importClineRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<boolean> {\n const destRulesDir = join(projectRoot, CLINE_CANONICAL_RULES_DIR);\n const clineRulesPath = join(projectRoot, CLINE_RULES_DIR);\n\n const clineRulesRaw = join(projectRoot, CLINE_RULES_DIR);\n let clineRulesIsFile = false;\n try {\n const clineRulesStat = await stat(clineRulesRaw);\n clineRulesIsFile = clineRulesStat.isFile();\n } catch {\n // path doesn't exist — fine\n }\n\n if (clineRulesIsFile) {\n const flatContent = await readFileSafe(clineRulesRaw);\n if (flatContent !== null) {\n await mkdirp(destRulesDir);\n const destPath = join(destRulesDir, '_root.md');\n const { frontmatter, body } = parseFrontmatter(\n normalize(flatContent, clineRulesRaw, destPath),\n );\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'cline',\n fromPath: clineRulesRaw,\n toPath: `${CLINE_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n return clineRulesIsFile;\n }\n\n let rootSourcePath: string | null = null;\n const rootPath = join(clineRulesPath, '_root.md');\n const rootContent = await readFileSafe(rootPath);\n if (rootContent === null) {\n const agentsMdPath = join(projectRoot, CLINE_AGENTS_MD);\n const agentsMdContent = await readFileSafe(agentsMdPath);\n if (agentsMdContent !== null) {\n rootSourcePath = agentsMdPath;\n await mkdirp(destRulesDir);\n const destPath = join(destRulesDir, '_root.md');\n const { frontmatter, body } = parseFrontmatter(\n normalize(agentsMdContent, agentsMdPath, destPath),\n );\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'cline',\n fromPath: agentsMdPath,\n toPath: `${CLINE_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n } else {\n const ruleFiles = await readDirRecursive(clineRulesPath);\n const mdFiles = ruleFiles\n .filter((f) => f.endsWith('.md') && !f.includes('/workflows/'))\n .sort();\n const first = mdFiles[0];\n if (first) {\n const fc = await readFileSafe(first);\n if (fc !== null) {\n rootSourcePath = first;\n await mkdirp(destRulesDir);\n const destPath = join(destRulesDir, '_root.md');\n const { frontmatter, body } = parseFrontmatter(normalize(fc, first, destPath));\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'cline',\n fromPath: first,\n toPath: `${CLINE_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n }\n }\n } else {\n rootSourcePath = rootPath;\n await mkdirp(destRulesDir);\n const destPath = join(destRulesDir, '_root.md');\n const { frontmatter, body } = parseFrontmatter(normalize(rootContent, rootPath, destPath));\n const hasRoot = frontmatter.root === true;\n const outFm = hasRoot ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'cline',\n fromPath: rootPath,\n toPath: `${CLINE_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n\n results.push(\n ...(await importFileDirectory({\n srcDir: clineRulesPath,\n destDir: destRulesDir,\n extensions: ['.md'],\n fromTool: 'cline',\n normalize,\n mapEntry: async ({ srcPath, relativePath, normalizeTo }) => {\n if (srcPath === rootSourcePath) return null;\n return mapClineRuleFile(relativePath, destRulesDir, normalizeTo);\n },\n })),\n );\n\n return clineRulesIsFile;\n}\n","/**\n * Cline MCP server mapping helpers — converts Cline MCP settings to canonical format.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { McpServer } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport {\n CLINE_TARGET,\n CLINE_MCP_SETTINGS,\n CLINE_MCP_SETTINGS_LEGACY,\n CLINE_CANONICAL_MCP,\n} from './constants.js';\n\nexport function mapClineServerToCanonical(raw: unknown): McpServer | null {\n if (!raw || typeof raw !== 'object') return null;\n const obj = raw as Record<string, unknown>;\n const command = typeof obj.command === 'string' ? obj.command : '';\n if (!command) return null;\n const type =\n typeof obj.type === 'string'\n ? obj.type\n : typeof obj.transportType === 'string'\n ? obj.transportType\n : 'stdio';\n const args = Array.isArray(obj.args)\n ? obj.args.filter((x): x is string => typeof x === 'string')\n : [];\n const envRaw = obj.env;\n const env: Record<string, string> =\n envRaw !== null && typeof envRaw === 'object' && !Array.isArray(envRaw)\n ? Object.fromEntries(\n Object.entries(envRaw).filter(\n (entry): entry is [string, string] => typeof entry[1] === 'string',\n ),\n )\n : {};\n const description = typeof obj.description === 'string' ? obj.description : undefined;\n return {\n ...(description !== undefined && { description }),\n type,\n command,\n args,\n env,\n };\n}\n\nexport async function importClineMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const candidatePaths = [CLINE_MCP_SETTINGS, CLINE_MCP_SETTINGS_LEGACY].map((path) =>\n join(projectRoot, path),\n );\n let mcpPath: string | null = null;\n let mcpContent: string | null = null;\n\n for (const candidatePath of candidatePaths) {\n const candidateContent = await readFileSafe(candidatePath);\n if (candidateContent !== null) {\n mcpPath = candidatePath;\n mcpContent = candidateContent;\n break;\n }\n }\n\n if (mcpContent === null) return;\n const sourcePath = mcpPath ?? candidatePaths[0]!;\n\n let parsed: Record<string, unknown> | undefined;\n try {\n parsed = JSON.parse(mcpContent) as Record<string, unknown>;\n } catch {\n // skip malformed\n }\n const mcpServersRaw = parsed?.mcpServers;\n if (\n mcpServersRaw !== undefined &&\n typeof mcpServersRaw === 'object' &&\n mcpServersRaw !== null &&\n Object.keys(mcpServersRaw).length > 0\n ) {\n const mcpServers: Record<string, McpServer> = {};\n for (const [n, val] of Object.entries(mcpServersRaw)) {\n const server = mapClineServerToCanonical(val);\n if (server) mcpServers[n] = server;\n }\n if (Object.keys(mcpServers).length > 0) {\n await mkdirp(join(projectRoot, '.agentsmesh'));\n await writeFileAtomic(\n join(projectRoot, CLINE_CANONICAL_MCP),\n JSON.stringify({ mcpServers }, null, 2),\n );\n results.push({\n fromTool: CLINE_TARGET,\n fromPath: sourcePath,\n toPath: CLINE_CANONICAL_MCP,\n feature: 'mcp',\n });\n }\n }\n}\n","/**\n * Cline skills import adapter - handles projected agent skills and regular skills.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n parseProjectedAgentSkillFrontmatter,\n serializeImportedAgent,\n} from '../projection/projected-agent-skill.js';\nimport {\n findDirectorySkills,\n importDirectorySkill,\n type SkillImportOptions,\n} from '../import/shared/skill-import-pipeline.js';\nimport {\n CLINE_SKILLS_DIR,\n CLINE_CANONICAL_AGENTS_DIR,\n CLINE_CANONICAL_SKILLS_DIR,\n} from './constants.js';\n\nexport async function importClineSkills(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n skillsRelDir: string = CLINE_SKILLS_DIR,\n): Promise<void> {\n const skillsDir = join(projectRoot, skillsRelDir);\n const directorySkills = await findDirectorySkills(skillsDir);\n\n const options: SkillImportOptions = {\n projectRoot,\n sourceSkillsDir: skillsRelDir,\n destCanonicalSkillsDir: CLINE_CANONICAL_SKILLS_DIR,\n targetName: 'cline',\n normalize,\n results,\n };\n\n // Check each skill to see if it's a projected agent skill\n for (const [skillName, skillDir] of directorySkills) {\n const skillMdPath = join(skillDir, 'SKILL.md');\n const content = await readFileSafe(skillMdPath);\n if (!content) continue;\n\n const rawParsed = parseFrontmatter(content);\n const projectedAgent = parseProjectedAgentSkillFrontmatter(rawParsed.frontmatter, skillName);\n\n if (projectedAgent) {\n // Import as agent, not skill\n const destAgentsDir = join(projectRoot, CLINE_CANONICAL_AGENTS_DIR);\n await mkdirp(destAgentsDir);\n const agentPath = join(destAgentsDir, `${projectedAgent.name}.md`);\n await writeFileAtomic(\n agentPath,\n serializeImportedAgent(projectedAgent, normalize(rawParsed.body, skillMdPath, agentPath)),\n );\n results.push({\n fromTool: 'cline',\n fromPath: skillMdPath,\n toPath: `${CLINE_CANONICAL_AGENTS_DIR}/${projectedAgent.name}.md`,\n feature: 'agents',\n });\n continue;\n }\n\n // Regular skill - use shared pipeline\n await importDirectorySkill(skillName, skillDir, options);\n }\n}\n","/**\n * Import Cline hook scripts from project (.clinerules/hooks/) and global\n * (Documents/Cline/Hooks/) directories into canonical hooks.yaml.\n *\n * Scripts are generated by agentsmesh and embed metadata as comments:\n * # agentsmesh-event: <canonical event name>\n * # agentsmesh-matcher: <matcher pattern>\n * # agentsmesh-command: <shell command>\n */\n\nimport { join, basename, dirname } from 'node:path';\nimport { stringify as yamlStringify } from 'yaml';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readDirRecursive,\n readFileSafe,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport {\n CLINE_TARGET,\n CLINE_HOOKS_DIR,\n CLINE_GLOBAL_HOOKS_DIR,\n CLINE_CANONICAL_HOOKS,\n} from './constants.js';\n\nfunction extractMeta(content: string, key: string): string | null {\n const match = content.match(new RegExp(`^# agentsmesh-${key}:\\\\s*(.+)$`, 'm'));\n return match?.[1]?.trim() ?? null;\n}\n\nasync function loadHooksFromDir(\n dir: string,\n hooks: Record<string, Array<{ matcher: string; command: string }>>,\n): Promise<void> {\n const files = await readDirRecursive(dir).catch(() => []);\n const shFiles = files.filter((f) => basename(f).endsWith('.sh') && dirname(f) === dir);\n for (const srcPath of shFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const event = extractMeta(content, 'event');\n const command = extractMeta(content, 'command');\n if (!event || !command) continue;\n const matcher = extractMeta(content, 'matcher') ?? '*';\n if (!hooks[event]) hooks[event] = [];\n hooks[event]!.push({ matcher, command });\n }\n}\n\n/**\n * Import Cline hook scripts into canonical hooks.yaml.\n * Reads from both project-level `.clinerules/hooks/` and global `Documents/Cline/Hooks/`.\n *\n * @param projectRoot - Project root directory (or homedir() for global mode)\n * @param results - Import results accumulator\n */\nexport async function importClineHooks(\n projectRoot: string,\n results: ImportResult[],\n): Promise<void> {\n const hooks: Record<string, Array<{ matcher: string; command: string }>> = {};\n\n await loadHooksFromDir(join(projectRoot, CLINE_HOOKS_DIR), hooks);\n await loadHooksFromDir(join(projectRoot, CLINE_GLOBAL_HOOKS_DIR), hooks);\n\n if (Object.keys(hooks).length === 0) return;\n\n const destPath = join(projectRoot, CLINE_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, yamlStringify(hooks));\n results.push({\n fromTool: CLINE_TARGET,\n fromPath: join(projectRoot, CLINE_GLOBAL_HOOKS_DIR),\n toPath: CLINE_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n}\n","/**\n * Cline target importer: .clinerules (rules + workflows), .clineignore,\n * .cline/cline_mcp_settings.json, .cline/skills into canonical .agentsmesh/.\n * Cline rules may have no frontmatter; add root: true for _root.md on import.\n * Workflows (.clinerules/workflows/*.md) import as canonical commands.\n * AGENTS.md is used as a root fallback when no _root.md is found in .clinerules/.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { mapClineWorkflowFile } from './importer-mappers.js';\nimport { importClineRules } from './importer-rules.js';\nimport {\n CLINE_TARGET,\n CLINE_IGNORE,\n CLINE_WORKFLOWS_DIR,\n CLINE_CANONICAL_COMMANDS_DIR,\n CLINE_CANONICAL_IGNORE,\n} from './constants.js';\nimport { importClineMcp } from './mcp-mapper.js';\nimport { importClineSkills } from './skills-adapter.js';\nimport { importClineHooks } from './hook-importer.js';\n\n/**\n * Import Cline config into canonical .agentsmesh/.\n * Sources: .clinerules (rules), .clineignore (ignore), .cline/cline_mcp_settings.json (mcp),\n * .cline/skills (skills).\n *\n * @param projectRoot - Project root directory\n * @returns Import results for each imported file\n */\nexport async function importFromCline(projectRoot: string): Promise<ImportResult[]> {\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(CLINE_TARGET, projectRoot);\n const clineRulesIsFile = await importClineRules(projectRoot, results, normalize);\n\n const ignorePath = join(projectRoot, CLINE_IGNORE);\n const ignoreContent = await readFileSafe(ignorePath);\n if (ignoreContent !== null && ignoreContent.trim()) {\n const lines = ignoreContent.split(/\\r?\\n/);\n const patterns: string[] = [];\n for (const line of lines) {\n const t = line.trim();\n if (t && !t.startsWith('#')) patterns.push(t);\n }\n if (patterns.length > 0) {\n await mkdirp(join(projectRoot, '.agentsmesh'));\n const destIgnorePath = join(projectRoot, CLINE_CANONICAL_IGNORE);\n await writeFileAtomic(destIgnorePath, patterns.join('\\n'));\n results.push({\n fromTool: 'cline',\n fromPath: ignorePath,\n toPath: CLINE_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n }\n }\n\n await importClineMcp(projectRoot, results);\n\n const destCommandsDir = join(projectRoot, CLINE_CANONICAL_COMMANDS_DIR);\n if (!clineRulesIsFile) {\n results.push(\n ...(await importFileDirectory({\n srcDir: join(projectRoot, CLINE_WORKFLOWS_DIR),\n destDir: destCommandsDir,\n extensions: ['.md'],\n fromTool: 'cline',\n normalize,\n mapEntry: ({ relativePath, normalizeTo }) =>\n mapClineWorkflowFile(relativePath, destCommandsDir, normalizeTo),\n })),\n );\n }\n\n await importClineSkills(projectRoot, results, normalize);\n await importClineHooks(projectRoot, results);\n\n return results;\n}\n","/**\n * Cline target linter — validates canonical files for Cline.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { CLINE_TARGET } from './constants.js';\n\n/**\n * Lint rules for Cline target.\n * @param canonical - Loaded canonical files\n * @param projectRoot - Project root (for relative paths)\n * @param projectFiles - Relative file paths for glob matching\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n const diags = validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n });\n return diags.map((d) => ({ ...d, target: CLINE_TARGET }));\n}\n","/**\n * Cline-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintCommands(canonical: CanonicalFiles): LintDiagnostic[] {\n return canonical.commands\n .filter((command) => command.description.length > 0 || command.allowedTools.length > 0)\n .map((command) =>\n createWarning(\n command.source,\n 'cline',\n 'cline workflow files are plain Markdown; command description and allowed-tools metadata are not projected.',\n ),\n );\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport type { ValidatedConfig } from '../../config/core/schema.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generateIgnore,\n generateHooks,\n} from './generator.js';\nimport { cap } from '../catalog/capabilities.js';\nimport {\n CLINE_AGENTS_MD,\n CLINE_RULES_DIR,\n CLINE_WORKFLOWS_DIR,\n CLINE_HOOKS_DIR,\n CLINE_SKILLS_DIR,\n CLINE_MCP_SETTINGS,\n CLINE_IGNORE,\n CLINE_GLOBAL_RULES_DIR,\n CLINE_GLOBAL_WORKFLOWS_DIR,\n CLINE_GLOBAL_HOOKS_DIR,\n} from './constants.js';\nimport { importFromCline } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { lintCommands } from './lint.js';\nimport { buildClineImportPaths } from '../../core/reference/import-map-builders.js';\nimport { shouldConvertAgentsToSkills } from '../../config/core/conversions.js';\nimport { projectedAgentSkillDirName } from '../projection/projected-agent-skill.js';\n\nexport const target: TargetGenerators = {\n name: 'cline',\n primaryRootInstructionPath: CLINE_AGENTS_MD,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generateHooks,\n generateIgnore,\n importFrom: importFromCline,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: CLINE_AGENTS_MD,\n skillDir: '.cline/skills',\n managedOutputs: {\n dirs: ['.cline/skills', '.clinerules', '.clinerules/hooks', '.clinerules/workflows'],\n files: [\n 'AGENTS.md',\n '.cline/cline_mcp_settings.json',\n '.clineignore',\n '.clinerules/typescript.md',\n ],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${CLINE_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${CLINE_WORKFLOWS_DIR}/${name}.md`;\n },\n agentPath(name, config: ValidatedConfig) {\n return shouldConvertAgentsToSkills(config, 'cline')\n ? `.cline/skills/${projectedAgentSkillDirName(name)}/SKILL.md`\n : null;\n },\n },\n};\n\nconst globalLayout: TargetLayout = {\n skillDir: CLINE_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n CLINE_GLOBAL_RULES_DIR,\n CLINE_GLOBAL_WORKFLOWS_DIR,\n CLINE_GLOBAL_HOOKS_DIR,\n CLINE_SKILLS_DIR,\n '.agents/skills',\n ],\n files: [CLINE_MCP_SETTINGS, CLINE_IGNORE],\n },\n rewriteGeneratedPath(path) {\n if (path === CLINE_AGENTS_MD) return null;\n if (path.startsWith(`${CLINE_HOOKS_DIR}/`)) {\n return `${CLINE_GLOBAL_HOOKS_DIR}/${path.slice(CLINE_HOOKS_DIR.length + 1)}`;\n }\n if (path.startsWith(`${CLINE_WORKFLOWS_DIR}/`)) {\n return `${CLINE_GLOBAL_WORKFLOWS_DIR}/${path.slice(CLINE_WORKFLOWS_DIR.length + 1)}`;\n }\n if (path.startsWith(`${CLINE_RULES_DIR}/`)) {\n return `${CLINE_GLOBAL_RULES_DIR}/${path.slice(CLINE_RULES_DIR.length + 1)}`;\n }\n return path;\n },\n mirrorGlobalPath(path, _activeTargets) {\n if (path.startsWith(`${CLINE_SKILLS_DIR}/`)) {\n return `.agents/skills/${path.slice(CLINE_SKILLS_DIR.length + 1)}`;\n }\n return null;\n },\n paths: {\n rulePath(slug, _rule) {\n return `${CLINE_GLOBAL_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${CLINE_GLOBAL_WORKFLOWS_DIR}/${name}.md`;\n },\n agentPath(name, config: ValidatedConfig) {\n return shouldConvertAgentsToSkills(config, 'cline')\n ? `.cline/skills/${projectedAgentSkillDirName(name)}/SKILL.md`\n : null;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'native',\n commands: cap('native', 'workflows'),\n agents: 'embedded',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'cline',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: cap('native', 'workflows'),\n agents: 'embedded',\n skills: 'native',\n mcp: 'native',\n hooks: 'native',\n ignore: 'native',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Cline config found (.clinerules, .clineignore, .cline/cline_mcp_settings.json, or .cline/skills).',\n supportsConversion: { agents: true },\n lintRules,\n lint: {\n commands: lintCommands,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n CLINE_GLOBAL_RULES_DIR,\n CLINE_GLOBAL_WORKFLOWS_DIR,\n CLINE_GLOBAL_HOOKS_DIR,\n CLINE_SKILLS_DIR,\n CLINE_MCP_SETTINGS,\n CLINE_IGNORE,\n ],\n layout: globalLayout,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildClineImportPaths,\n detectionPaths: ['.clinerules', '.cline'],\n} satisfies TargetDescriptor;\n","/**\n * Codex CLI target constants.\n * Codex uses AGENTS.md (primary instructions), .agents/skills/ (skills),\n * .codex/skills/ (fallback skills layout), and .codex/config.toml (MCP).\n */\n\nexport const CODEX_TARGET = 'codex-cli';\n\n/** Primary instructions file */\nexport const CODEX_MD = 'codex.md';\n\n/** Shared GitHub Agents format — AGENTS.md is the primary per official docs */\nexport const AGENTS_MD = 'AGENTS.md';\nexport const CODEX_GLOBAL_AGENTS_MD = '.codex/AGENTS.md';\nexport const CODEX_GLOBAL_AGENTS_OVERRIDE_MD = '.codex/AGENTS.override.md';\n\n/** Skills directory (repo-level, scanned from CWD up to repo root) */\nexport const CODEX_SKILLS_DIR = '.agents/skills';\n\n/** Fallback skills directory used by some Codex skill libraries */\nexport const CODEX_SKILLS_FALLBACK_DIR = '.codex/skills';\n\n/** Project-level config file (MCP servers and other overrides) */\nexport const CODEX_CONFIG_TOML = '.codex/config.toml';\n\n/** Canonical markdown mirrors for additional generated rules */\nexport const CODEX_INSTRUCTIONS_DIR = '.codex/instructions';\n\n/** Starlark execution rules (`.rules`) + legacy `.md` import */\nexport const CODEX_RULES_DIR = '.codex/rules';\n\n/** Project custom agents (native TOML format) */\nexport const CODEX_AGENTS_DIR = '.codex/agents';\n\nexport const CODEX_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const CODEX_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const CODEX_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const CODEX_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\nexport const CODEX_CANONICAL_MCP = '.agentsmesh/mcp.json';\n\nexport const CODEX_RULE_EMBED_MARKER = 'am-codex-rule:v1';\nexport const CODEX_RULE_EMBED_JSON_PREFIX = '# am-json: ';\nexport const CODEX_RULE_EMBED_B64_BEGIN = '# am-body-b64-begin';\nexport const CODEX_RULE_EMBED_B64_END = '# am-body-b64-end';\nexport const CODEX_RULE_EMBED_B64_LINE = '# am64:';\n\nexport const CODEX_RULE_INDEX_START = '<!-- agentsmesh:codex-rule-index:start -->';\nexport const CODEX_RULE_INDEX_END = '<!-- agentsmesh:codex-rule-index:end -->';\n","import { basename } from 'node:path';\nimport type { CanonicalRule } from '../../core/types.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n CODEX_INSTRUCTIONS_DIR,\n CODEX_RULE_INDEX_END,\n CODEX_RULE_INDEX_START,\n CODEX_RULES_DIR,\n} from './constants.js';\n\nfunction ruleSlug(source: string): string {\n return basename(source, '.md');\n}\n\nexport function codexInstructionMirrorPath(rule: Pick<CanonicalRule, 'source'>): string {\n return `${CODEX_INSTRUCTIONS_DIR}/${ruleSlug(rule.source)}.md`;\n}\n\nexport function serializeCodexInstructionMirror(rule: CanonicalRule): string {\n const frontmatter: Record<string, unknown> = {\n root: rule.root,\n description: rule.description || undefined,\n globs: rule.globs.length > 0 ? rule.globs : undefined,\n targets: rule.targets.length > 0 ? rule.targets : undefined,\n codex_emit: rule.codexEmit || undefined,\n codex_instruction:\n rule.codexInstructionVariant && rule.codexInstructionVariant !== 'default'\n ? rule.codexInstructionVariant\n : undefined,\n };\n Object.keys(frontmatter).forEach((key) => {\n if (frontmatter[key] === undefined) delete frontmatter[key];\n });\n return serializeFrontmatter(frontmatter, rule.body.trim() || '');\n}\n\nfunction summarizeRule(rule: CanonicalRule): string {\n const scopes: string[] = [];\n if (rule.root) {\n scopes.push('Applies to the whole project.');\n } else if (rule.globs.length > 0) {\n scopes.push(`Applies to ${rule.globs.map((glob) => `\\`${glob}\\``).join(', ')}.`);\n } else {\n scopes.push('General guidance with no file glob restriction.');\n }\n\n if (rule.codexInstructionVariant === 'override') {\n scopes.push('Override guidance when this rule conflicts with broader instructions.');\n }\n if (rule.codexEmit === 'execution') {\n scopes.push(`Enforced in \\`${CODEX_RULES_DIR}/${ruleSlug(rule.source)}.rules\\`.`);\n }\n if (rule.targets.length > 0) {\n scopes.push(`Targeted to ${rule.targets.map((target) => `\\`${target}\\``).join(', ')}.`);\n }\n\n return scopes.join(' ');\n}\n\nexport function appendCodexRuleIndex(rootBody: string, rules: CanonicalRule[]): string {\n const trimmed = rootBody.trim();\n const additionalRules = rules.filter((rule) => !rule.root);\n if (additionalRules.length === 0) return trimmed;\n\n const entries = additionalRules.map((rule) => {\n const label = rule.description || ruleSlug(rule.source);\n return `- [${label}](${codexInstructionMirrorPath(rule)}): ${summarizeRule(rule)}`;\n });\n\n const section = [\n CODEX_RULE_INDEX_START,\n '## Additional Rule Files',\n ...entries,\n CODEX_RULE_INDEX_END,\n ].join('\\n');\n\n return trimmed ? `${trimmed}\\n\\n${section}` : section;\n}\n\nexport function stripCodexRuleIndex(content: string): string {\n const escapedStart = CODEX_RULE_INDEX_START.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const escapedEnd = CODEX_RULE_INDEX_END.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n return content\n .replace(new RegExp(`\\\\n?${escapedStart}[\\\\s\\\\S]*?${escapedEnd}\\\\n?`, 'g'), '\\n')\n .trim();\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { basename } from 'node:path';\nimport { appendEmbeddedRulesBlock } from '../../projection/managed-blocks.js';\nimport { AGENTS_MD, CODEX_RULES_DIR } from '../constants.js';\nimport {\n appendCodexRuleIndex,\n codexInstructionMirrorPath,\n serializeCodexInstructionMirror,\n} from '../instruction-mirror.js';\nimport type { RulesOutput } from './types.js';\n\nfunction looksLikeCodexRulesDsl(body: string): boolean {\n return /(^|\\n)\\s*[A-Za-z_][A-Za-z0-9_]*\\s*\\(/.test(body);\n}\n\nfunction toCodexRulesComments(body: string): string {\n return body\n .split('\\n')\n .map((line) => (line.length > 0 ? `# ${line}` : '#'))\n .join('\\n');\n}\n\nfunction toSafeCodexRulesContent(body: string): string {\n const trimmed = body.trim();\n if (!trimmed) return '';\n if (looksLikeCodexRulesDsl(trimmed)) return `${trimmed}\\n`;\n const lines: string[] = [\n '# agentsmesh: canonical execution rule body is not Codex DSL',\n '# The original body is preserved below as comments.',\n '# Replace with Codex rules DSL (for example prefix_rule(...)) to enforce behavior.',\n '#',\n ...toCodexRulesComments(trimmed).split('\\n'),\n '#',\n '# Example template:',\n '# prefix_rule(',\n '# pattern = [\"git\", \"status\"],',\n '# decision = \"allow\",',\n '# justification = \"Allow safe status checks\",',\n '# )',\n ];\n return `${lines.join('\\n')}\\n`;\n}\n\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const root = canonical.rules.find((r) => r.root);\n const outputs: RulesOutput[] = [];\n if (root) {\n outputs.push({ path: AGENTS_MD, content: appendCodexRuleIndex(root.body, canonical.rules) });\n }\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n const slug = basename(rule.source, '.md');\n if (rule.targets.length > 0 && !rule.targets.includes('codex-cli')) continue;\n if (rule.codexEmit === 'execution') {\n outputs.push({\n path: `${CODEX_RULES_DIR}/${slug}.rules`,\n content: toSafeCodexRulesContent(rule.body),\n });\n }\n outputs.push({\n path: codexInstructionMirrorPath(rule),\n content: serializeCodexInstructionMirror(rule),\n });\n }\n\n return outputs;\n}\n\nexport function renderCodexGlobalInstructions(canonical: CanonicalFiles): string {\n const root = canonical.rules.find((rule) => rule.root);\n const nonRootRules = canonical.rules.filter((rule) => {\n if (rule.root) return false;\n if (rule.codexEmit === 'execution') return false;\n return rule.targets.length === 0 || rule.targets.includes('codex-cli');\n });\n\n return appendEmbeddedRulesBlock(root?.body.trim() ?? '', nonRootRules);\n}\n","import type { CanonicalCommand, CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { CODEX_SKILLS_DIR } from '../constants.js';\nimport { commandSkillDirName, serializeCommandSkill } from '../command-skill.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const skillContent = serializeFrontmatter(frontmatter, skill.body.trim() || '');\n outputs.push({\n path: `${CODEX_SKILLS_DIR}/${skill.name}/SKILL.md`,\n content: skillContent,\n });\n for (const file of skill.supportingFiles) {\n const relPath = file.relativePath.replace(/\\\\/g, '/');\n outputs.push({\n path: `${CODEX_SKILLS_DIR}/${skill.name}/${relPath}`,\n content: file.content,\n });\n }\n }\n return outputs;\n}\n\nfunction commandToSkillOutput(command: CanonicalCommand): RulesOutput {\n return {\n path: `${CODEX_SKILLS_DIR}/${commandSkillDirName(command.name)}/SKILL.md`,\n content: serializeCommandSkill(command),\n };\n}\n\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map(commandToSkillOutput);\n}\n","import type { CanonicalAgent, CanonicalFiles } from '../../../core/types.js';\nimport { CODEX_AGENTS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => ({\n path: `${CODEX_AGENTS_DIR}/${agent.name}.toml`,\n content: serializeAgentToCodexToml(agent),\n }));\n}\n\nfunction serializeAgentToCodexToml(agent: CanonicalAgent): string {\n const lines: string[] = [];\n lines.push(`name = ${JSON.stringify(agent.name)}`);\n if (agent.description) {\n lines.push(`description = ${JSON.stringify(agent.description)}`);\n }\n if (agent.model) {\n lines.push(`model = ${JSON.stringify(agent.model)}`);\n }\n if (agent.permissionMode === 'read-only' || agent.permissionMode === 'deny') {\n lines.push('sandbox_mode = \"read-only\"');\n } else if (agent.permissionMode === 'allow') {\n lines.push('sandbox_mode = \"workspace-write\"');\n }\n const body = agent.body.trim() || '';\n if (body.includes(\"'''\")) {\n const escaped = body.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n lines.push(`developer_instructions = \"\"\"\\n${escaped}\\n\"\"\"`);\n } else {\n lines.push(`developer_instructions = '''\\n${body}\\n'''`);\n }\n return lines.join('\\n') + '\\n';\n}\n","import type { CanonicalFiles, StdioMcpServer } from '../../../core/types.js';\nimport { isStdioMcpServer } from '../../../core/mcp-servers.js';\nimport { CODEX_CONFIG_TOML } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateMcp(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n const stdioServers: Record<string, StdioMcpServer> = Object.fromEntries(\n Object.entries(canonical.mcp.mcpServers).flatMap(([name, server]) =>\n isStdioMcpServer(server) ? [[name, server] as const] : [],\n ),\n );\n if (Object.keys(stdioServers).length === 0) return [];\n const content = serializeMcpToToml(stdioServers);\n return [{ path: CODEX_CONFIG_TOML, content }];\n}\n\nfunction serializeMcpToToml(mcpServers: Record<string, StdioMcpServer>): string {\n const sections: string[] = [];\n\n for (const [name, server] of Object.entries(mcpServers)) {\n const quotedName = needsTomlQuoting(name) ? `\"${name}\"` : name;\n const lines: string[] = [];\n lines.push(`[mcp_servers.${quotedName}]`);\n lines.push(`command = ${JSON.stringify(server.command)}`);\n const argsToml = '[' + server.args.map((arg) => JSON.stringify(arg)).join(', ') + ']';\n lines.push(`args = ${argsToml}`);\n\n const envEntries = Object.entries(server.env);\n if (envEntries.length > 0) {\n const envParts = envEntries\n .map(([k, v]) => `${needsTomlQuoting(k) ? JSON.stringify(k) : k} = ${JSON.stringify(v)}`)\n .join(', ');\n lines.push(`env = { ${envParts} }`);\n }\n\n sections.push(lines.join('\\n'));\n }\n\n return sections.join('\\n\\n') + '\\n';\n}\n\nfunction needsTomlQuoting(key: string): boolean {\n return !/^[A-Za-z0-9_-]+$/.test(key);\n}\n","/**\n * Codex CLI MCP helpers — TOML server mapping and MCP config import.\n */\n\nimport { join } from 'node:path';\nimport { parse as parseToml } from 'smol-toml';\nimport type { ImportResult } from '../../core/types.js';\nimport type { McpServer } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { CODEX_TARGET, CODEX_CONFIG_TOML, CODEX_CANONICAL_MCP } from './constants.js';\n\nexport function mapTomlServerToCanonical(raw: unknown): McpServer | null {\n if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return null;\n const obj = raw as Record<string, unknown>;\n\n const command = typeof obj.command === 'string' ? obj.command : '';\n if (!command) return null;\n\n const args = Array.isArray(obj.args)\n ? obj.args.filter((x): x is string => typeof x === 'string')\n : [];\n\n const envRaw = obj.env;\n const env: Record<string, string> =\n envRaw !== null && typeof envRaw === 'object' && !Array.isArray(envRaw)\n ? Object.fromEntries(\n Object.entries(envRaw as Record<string, unknown>).filter(\n (entry): entry is [string, string] => typeof entry[1] === 'string',\n ),\n )\n : {};\n\n return {\n type: 'stdio',\n command,\n args,\n env,\n };\n}\n\nexport async function importMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const configPath = join(projectRoot, CODEX_CONFIG_TOML);\n const content = await readFileSafe(configPath);\n if (content === null) return;\n\n let parsed: Record<string, unknown>;\n try {\n parsed = parseToml(content) as Record<string, unknown>;\n } catch {\n return;\n }\n\n const rawServers = parsed.mcp_servers;\n if (\n !rawServers ||\n typeof rawServers !== 'object' ||\n Array.isArray(rawServers) ||\n Object.keys(rawServers).length === 0\n ) {\n return;\n }\n\n const mcpServers: Record<string, McpServer> = {};\n for (const [name, val] of Object.entries(rawServers as Record<string, unknown>)) {\n const server = mapTomlServerToCanonical(val);\n if (server) mcpServers[name] = server;\n }\n\n if (Object.keys(mcpServers).length === 0) return;\n\n await mkdirp(join(projectRoot, '.agentsmesh'));\n await writeFileAtomic(\n join(projectRoot, CODEX_CANONICAL_MCP),\n JSON.stringify({ mcpServers }, null, 2),\n );\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: configPath,\n toPath: CODEX_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n","import { rm } from 'node:fs/promises';\n\nexport function shouldImportScopedAgentsRule(relDir: string): boolean {\n const segments = relDir.split('/').filter(Boolean);\n if (segments.length === 0) return false;\n if (segments.some((segment) => segment.startsWith('.'))) return false;\n\n const relPath = segments.join('/');\n return !relPath.startsWith('tests/e2e/fixtures/');\n}\n\nexport async function removePathIfExists(path: string): Promise<void> {\n await rm(path, { recursive: true, force: true });\n}\n","/**\n * Codex CLI skills import adapter - handles command skills, agent projections, and regular skills.\n */\n\nimport { readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { parseCommandSkillFrontmatter, serializeImportedCommand } from './command-skill.js';\nimport {\n parseProjectedAgentSkillFrontmatter,\n serializeImportedAgent,\n} from '../projection/projected-agent-skill.js';\nimport { removePathIfExists } from '../import/scoped-agents-import.js';\nimport {\n importDirectorySkill,\n type SkillImportOptions,\n} from '../import/shared/skill-import-pipeline.js';\nimport {\n CODEX_TARGET,\n CODEX_SKILLS_DIR,\n CODEX_SKILLS_FALLBACK_DIR,\n CODEX_CANONICAL_COMMANDS_DIR,\n CODEX_CANONICAL_AGENTS_DIR,\n CODEX_CANONICAL_SKILLS_DIR,\n} from './constants.js';\n\nexport async function importSkills(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const options: SkillImportOptions = {\n projectRoot,\n sourceSkillsDir: CODEX_SKILLS_DIR,\n destCanonicalSkillsDir: CODEX_CANONICAL_SKILLS_DIR,\n targetName: CODEX_TARGET,\n normalize,\n results,\n };\n\n for (const skillsRoot of [CODEX_SKILLS_DIR, CODEX_SKILLS_FALLBACK_DIR]) {\n const skillsDir = join(projectRoot, skillsRoot);\n const entries = await readdir(skillsDir, {\n encoding: 'utf8',\n withFileTypes: true,\n }).catch(() => null);\n if (entries === null) continue;\n\n let importedAny = false;\n for (const ent of entries) {\n if (!ent.isDirectory() && !ent.isSymbolicLink()) continue;\n const skillPath = join(skillsDir, ent.name);\n const skillMdPath = join(skillPath, 'SKILL.md');\n const skillMdContent = await readFileSafe(skillMdPath);\n if (!skillMdContent) continue;\n importedAny = true;\n\n const skillName = ent.name;\n const destSkillPath = join(projectRoot, CODEX_CANONICAL_SKILLS_DIR, skillName, 'SKILL.md');\n const normalized = normalize(skillMdContent, skillMdPath, destSkillPath);\n const { frontmatter, body } = parseFrontmatter(normalized);\n\n // Check if this is a command skill\n const command = parseCommandSkillFrontmatter(frontmatter, ent.name);\n if (command) {\n await removePathIfExists(join(projectRoot, CODEX_CANONICAL_SKILLS_DIR, skillName));\n const destCommandsDir = join(projectRoot, CODEX_CANONICAL_COMMANDS_DIR);\n await mkdirp(destCommandsDir);\n const commandPath = join(destCommandsDir, `${command.name}.md`);\n await writeFileAtomic(\n commandPath,\n serializeImportedCommand(command, normalize(body, skillMdPath, commandPath)),\n );\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: skillMdPath,\n toPath: `${CODEX_CANONICAL_COMMANDS_DIR}/${command.name}.md`,\n feature: 'commands',\n });\n continue;\n }\n\n // Check if this is a projected agent skill\n const projectedAgent = parseProjectedAgentSkillFrontmatter(frontmatter, ent.name);\n if (projectedAgent) {\n await removePathIfExists(join(projectRoot, CODEX_CANONICAL_SKILLS_DIR, skillName));\n const destAgentsDir = join(projectRoot, CODEX_CANONICAL_AGENTS_DIR);\n await mkdirp(destAgentsDir);\n const agentPath = join(destAgentsDir, `${projectedAgent.name}.md`);\n await writeFileAtomic(\n agentPath,\n serializeImportedAgent(projectedAgent, normalize(body, skillMdPath, agentPath)),\n );\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: skillMdPath,\n toPath: `${CODEX_CANONICAL_AGENTS_DIR}/${projectedAgent.name}.md`,\n feature: 'agents',\n });\n continue;\n }\n\n // Regular skill - use shared pipeline\n await importDirectorySkill(skillName, skillPath, options);\n }\n\n if (importedAny) return;\n }\n}\n","import { basename, join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { serializeImportedAgent } from '../projection/projected-agent-skill.js';\nimport { CODEX_TARGET, CODEX_AGENTS_DIR, CODEX_CANONICAL_AGENTS_DIR } from './constants.js';\nimport { parse as parseToml } from 'smol-toml';\n\nexport async function importCodexAgentsFromToml(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const agentsPath = join(projectRoot, CODEX_AGENTS_DIR);\n const agentsDestDir = join(projectRoot, CODEX_CANONICAL_AGENTS_DIR);\n try {\n const agentFiles = await readDirRecursive(agentsPath);\n const tomlFiles = agentFiles.filter((f) => f.endsWith('.toml'));\n for (const srcPath of tomlFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const parsed = parseToml(content) as Record<string, unknown> | null;\n if (!parsed || typeof parsed !== 'object') continue;\n const name = typeof parsed.name === 'string' ? parsed.name : basename(srcPath, '.toml');\n const description = typeof parsed.description === 'string' ? parsed.description : '';\n const body =\n typeof parsed.developer_instructions === 'string'\n ? parsed.developer_instructions.trim()\n : '';\n const model = typeof parsed.model === 'string' ? parsed.model : '';\n const sandbox = typeof parsed.sandbox_mode === 'string' ? parsed.sandbox_mode : '';\n const permissionMode =\n sandbox === 'read-only' ? 'read-only' : sandbox === 'workspace-write' ? 'allow' : '';\n const mcpServers: string[] = Array.isArray(parsed.mcp_servers)\n ? parsed.mcp_servers.filter((s): s is string => typeof s === 'string')\n : [];\n await mkdirp(agentsDestDir);\n const destPath = join(agentsDestDir, `${name}.md`);\n const normalizedBody = normalize(body, srcPath, destPath);\n const agent = {\n name,\n description,\n tools: [],\n disallowedTools: [],\n model,\n permissionMode,\n maxTurns: 0,\n mcpServers,\n hooks: {},\n skills: [],\n memory: '',\n };\n const outContent = serializeImportedAgent(agent, normalizedBody);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: srcPath,\n toPath: `${CODEX_CANONICAL_AGENTS_DIR}/${name}.md`,\n feature: 'agents',\n });\n }\n } catch {\n /* CODEX_AGENTS_DIR may not exist */\n }\n}\n","/**\n * Legacy embedded advisory payload inside `.rules` (import-only).\n * Current generator emits advisory rules as nested `AGENTS.md` per codex-cli-project-level-advanced.md.\n * @see https://developers.openai.com/codex/rules/\n */\n\nimport { Buffer } from 'node:buffer';\nimport {\n CODEX_RULE_EMBED_MARKER,\n CODEX_RULE_EMBED_JSON_PREFIX,\n CODEX_RULE_EMBED_B64_BEGIN,\n CODEX_RULE_EMBED_B64_END,\n CODEX_RULE_EMBED_B64_LINE,\n} from './constants.js';\n\nexport interface EmbeddedCodexRuleMeta {\n description: string;\n globs: string[];\n}\n\n/** @deprecated Generator no longer emits this; kept so older repos still import. */\nexport function serializeCanonicalRuleToCodexRulesFile(rule: {\n description: string;\n globs: string[];\n body: string;\n}): string {\n const meta: EmbeddedCodexRuleMeta = {\n description: rule.description ?? '',\n globs: rule.globs ?? [],\n };\n const metaJson = JSON.stringify(meta);\n const b64 = Buffer.from(rule.body.trim(), 'utf8').toString('base64');\n const lines: string[] = [\n `# ${CODEX_RULE_EMBED_MARKER}`,\n `${CODEX_RULE_EMBED_JSON_PREFIX}${metaJson}`,\n '#',\n '# Embedded canonical rule (agentsmesh) — base64 body between am-body-b64 markers.',\n '# Add active Starlark prefix_rule() calls below (uncomment/edit). Docs:',\n '# https://developers.openai.com/codex/rules/',\n '#',\n CODEX_RULE_EMBED_B64_BEGIN,\n ];\n for (let i = 0; i < b64.length; i += 76) {\n lines.push(`${CODEX_RULE_EMBED_B64_LINE}${b64.slice(i, i + 76)}`);\n }\n lines.push(CODEX_RULE_EMBED_B64_END);\n lines.push('');\n lines.push('# Example prefix_rule (from Codex documentation; commented — not active):');\n lines.push('# prefix_rule(');\n lines.push('# pattern = [\"gh\", \"pr\", \"view\"],');\n lines.push('# decision = \"prompt\",');\n lines.push('# justification = \"Viewing PRs is allowed with approval\",');\n lines.push('# )');\n lines.push('');\n return `${lines.join('\\n')}\\n`;\n}\n\n/** If this is an agentsmesh-generated `.rules` file, return meta + body; else null. */\nexport function tryParseEmbeddedCanonicalFromCodexRules(content: string): {\n meta: EmbeddedCodexRuleMeta;\n body: string;\n} | null {\n if (!content.includes(CODEX_RULE_EMBED_MARKER)) return null;\n const jsonLine = content.split('\\n').find((l) => l.startsWith(CODEX_RULE_EMBED_JSON_PREFIX));\n if (!jsonLine) return null;\n let parsed: unknown;\n try {\n parsed = JSON.parse(jsonLine.slice(CODEX_RULE_EMBED_JSON_PREFIX.length)) as unknown;\n } catch {\n return null;\n }\n if (!parsed || typeof parsed !== 'object') return null;\n const rec = parsed as Record<string, unknown>;\n const description = typeof rec.description === 'string' ? rec.description : '';\n const globs = Array.isArray(rec.globs)\n ? rec.globs.filter((g): g is string => typeof g === 'string')\n : [];\n const chunks: string[] = [];\n let inB64 = false;\n for (const line of content.split('\\n')) {\n const t = line.trimEnd();\n if (t === CODEX_RULE_EMBED_B64_BEGIN) {\n inB64 = true;\n continue;\n }\n if (t === CODEX_RULE_EMBED_B64_END) {\n inB64 = false;\n continue;\n }\n if (inB64 && t.startsWith(CODEX_RULE_EMBED_B64_LINE)) {\n chunks.push(t.slice(CODEX_RULE_EMBED_B64_LINE.length));\n }\n }\n if (chunks.length === 0) return null;\n try {\n const body = Buffer.from(chunks.join(''), 'base64').toString('utf8');\n return { meta: { description, globs }, body };\n } catch {\n return null;\n }\n}\n","/**\n * Import `.codex/rules/*.md` and agentsmesh-embedded `.codex/rules/*.rules` into canonical rules.\n */\n\nimport { join, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { CODEX_TARGET, CODEX_RULES_DIR, CODEX_CANONICAL_RULES_DIR } from './constants.js';\nimport { tryParseEmbeddedCanonicalFromCodexRules } from './codex-rules-embed.js';\n\nexport async function importCodexNonRootRuleFiles(\n projectRoot: string,\n destDir: string,\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<ImportResult[]> {\n const results: ImportResult[] = [];\n const codexRulesPath = join(projectRoot, CODEX_RULES_DIR);\n try {\n const ruleFiles = await readDirRecursive(codexRulesPath);\n const mdFiles = ruleFiles.filter((f) => f.endsWith('.md'));\n for (const srcPath of mdFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const relativePath = relative(codexRulesPath, srcPath).replace(/\\\\/g, '/');\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalize(content, srcPath, destPath));\n await mkdirp(destDir);\n const outFm = frontmatter.root === true ? frontmatter : { ...frontmatter, root: false };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: srcPath,\n toPath: `${CODEX_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n });\n }\n const starlarkFiles = ruleFiles.filter((f) => f.endsWith('.rules'));\n for (const srcPath of starlarkFiles) {\n const raw = await readFileSafe(srcPath);\n if (!raw) continue;\n const relativePath = relative(codexRulesPath, srcPath)\n .replace(/\\\\/g, '/')\n .replace(/\\.rules$/i, '.md');\n const destPath = join(destDir, relativePath);\n await mkdirp(destDir);\n const embedded = tryParseEmbeddedCanonicalFromCodexRules(raw);\n if (embedded) {\n const outContent = await serializeImportedRuleWithFallback(\n destPath,\n {\n description: embedded.meta.description,\n globs: embedded.meta.globs,\n root: false,\n },\n normalize(embedded.body, srcPath, destPath),\n );\n await writeFileAtomic(destPath, outContent);\n } else {\n const outContent = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: false,\n description: '',\n globs: [],\n codex_emit: 'execution',\n },\n normalize(raw.trim(), srcPath, destPath),\n );\n await writeFileAtomic(destPath, outContent);\n }\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: srcPath,\n toPath: `${CODEX_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n });\n }\n } catch {\n /* CODEX_RULES_DIR may not exist */\n }\n return results;\n}\n","import { dirname, join, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { splitEmbeddedRulesToCanonical } from '../import/embedded-rules.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport {\n shouldImportScopedAgentsRule,\n removePathIfExists,\n} from '../import/scoped-agents-import.js';\nimport {\n CODEX_TARGET,\n CODEX_MD,\n AGENTS_MD,\n CODEX_GLOBAL_AGENTS_MD,\n CODEX_GLOBAL_AGENTS_OVERRIDE_MD,\n CODEX_CANONICAL_RULES_DIR,\n CODEX_INSTRUCTIONS_DIR,\n} from './constants.js';\nimport { importCodexNonRootRuleFiles } from './import-codex-non-root-rules.js';\nimport { stripCodexRuleIndex } from './instruction-mirror.js';\n\nexport async function importCodexRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n normalizeWindsurf: (content: string, sourceFile: string, destinationFile: string) => string,\n layoutScope: TargetLayoutScope,\n): Promise<void> {\n const codexPath = join(projectRoot, CODEX_MD);\n const agentsPath = join(projectRoot, AGENTS_MD);\n const globalOverridePath = join(projectRoot, CODEX_GLOBAL_AGENTS_OVERRIDE_MD);\n const globalAgentsPath = join(projectRoot, CODEX_GLOBAL_AGENTS_MD);\n\n const globalOverrideContent =\n layoutScope === 'global' ? await readFileSafe(globalOverridePath) : null;\n const globalAgentsContent =\n layoutScope === 'global' ? await readFileSafe(globalAgentsPath) : null;\n const agentsContent = layoutScope === 'project' ? await readFileSafe(agentsPath) : null;\n const codexContent = layoutScope === 'project' ? await readFileSafe(codexPath) : null;\n\n const sourcePath =\n globalOverrideContent !== null\n ? globalOverridePath\n : globalAgentsContent !== null\n ? globalAgentsPath\n : agentsContent !== null\n ? agentsPath\n : codexPath;\n const destDir = join(projectRoot, CODEX_CANONICAL_RULES_DIR);\n const content = globalOverrideContent ?? globalAgentsContent ?? agentsContent ?? codexContent;\n if (content !== null) {\n await mkdirp(destDir);\n const destPath = join(destDir, '_root.md');\n const stripped =\n sourcePath === agentsPath ||\n sourcePath === globalAgentsPath ||\n sourcePath === globalOverridePath\n ? stripCodexRuleIndex(content)\n : content;\n const split = await splitEmbeddedRulesToCanonical({\n content: stripped,\n projectRoot,\n rulesDir: CODEX_CANONICAL_RULES_DIR,\n sourcePath,\n fromTool: 'codex-cli',\n normalize,\n });\n results.push(...split.results);\n const normalizedContent =\n sourcePath === agentsPath ||\n sourcePath === globalAgentsPath ||\n sourcePath === globalOverridePath\n ? normalize(\n normalizeWindsurf(split.rootContent, sourcePath, destPath),\n sourcePath,\n destPath,\n )\n : normalize(split.rootContent, sourcePath, destPath);\n const { frontmatter, body } = parseFrontmatter(normalizedContent);\n const outFm = frontmatter.root === true ? frontmatter : { ...frontmatter, root: true };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n\n results.push({\n fromTool: 'codex-cli',\n fromPath: sourcePath,\n toPath: `${CODEX_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n\n await importInstructionMirrors(projectRoot, destDir, results, normalize);\n results.push(...(await importCodexNonRootRuleFiles(projectRoot, destDir, normalize)));\n\n if (layoutScope !== 'global') {\n results.push(\n ...(await importFileDirectory({\n srcDir: projectRoot,\n destDir,\n extensions: ['AGENTS.md', 'AGENTS.override.md'],\n fromTool: 'codex-cli',\n normalize,\n mapEntry: async ({ srcPath, normalizeTo }) => {\n const relDir = relative(projectRoot, dirname(srcPath)).replace(/\\\\/g, '/');\n const isOverride = srcPath.endsWith('/AGENTS.override.md');\n if (!relDir || relDir === '.') return null;\n if (!isOverride && !srcPath.endsWith('/AGENTS.md')) return null;\n const ruleName = relDir.replace(/\\//g, '-');\n if (!shouldImportScopedAgentsRule(relDir)) {\n await removePathIfExists(join(destDir, `${ruleName}.md`));\n return null;\n }\n const destPath = join(destDir, `${ruleName}.md`);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n return {\n destPath,\n toPath: `${CODEX_CANONICAL_RULES_DIR}/${ruleName}.md`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(\n destPath,\n {\n ...frontmatter,\n root: false,\n globs: [`${relDir}/**`],\n ...(isOverride ? { codex_instruction: 'override' } : {}),\n },\n body,\n ),\n };\n },\n })),\n );\n }\n}\n\nasync function importInstructionMirrors(\n projectRoot: string,\n destDir: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n try {\n const files = await readDirRecursive(join(projectRoot, CODEX_INSTRUCTIONS_DIR));\n const instructionFiles = files.filter((file) => file.endsWith('.md'));\n const instructionsRoot = join(projectRoot, CODEX_INSTRUCTIONS_DIR);\n for (const srcPath of instructionFiles) {\n const relativePath = relative(instructionsRoot, srcPath).replace(/\\\\/g, '/');\n if (relativePath === '_root.md') continue;\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalize(content, srcPath, destPath));\n await mkdirp(destDir);\n const outFm = frontmatter.root === true ? frontmatter : { ...frontmatter, root: false };\n const outContent = await serializeImportedRuleWithFallback(destPath, outFm, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: CODEX_TARGET,\n fromPath: srcPath,\n toPath: `${CODEX_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n });\n }\n } catch {\n /* CODEX_INSTRUCTIONS_DIR may not exist */\n }\n}\n","/**\n * Codex CLI importer — imports canonical config from Codex project files.\n *\n * Sources imported:\n * AGENTS.md (preferred) / codex.md (fallback) → .agentsmesh/rules/_root.md\n * .codex/instructions/*.md → .agentsmesh/rules/*.md\n * .agents/skills/am-command-{name}/SKILL.md → .agentsmesh/commands/{name}.md\n * .agents/skills/{name}/SKILL.md → .agentsmesh/skills/{name}/SKILL.md\n * .codex/config.toml → .agentsmesh/mcp.json (mcp_servers section)\n * .codex/rules/*.rules (embed) → .agentsmesh/rules/*.md (agentsmesh block)\n * .codex/rules/*.md (legacy) → .agentsmesh/rules/*.md\n * nested AGENTS.md → .agentsmesh/rules (scoped)\n */\n\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { CODEX_TARGET } from './constants.js';\nimport { importMcp } from './mcp-helpers.js';\nimport { importSkills } from './skills-adapter.js';\nimport { importCodexAgentsFromToml } from './importer-agents.js';\nimport { importCodexRules } from './importer-rules.js';\n\n/**\n * Import Codex config into canonical .agentsmesh/.\n *\n * @param projectRoot - Project root directory (repo root, or user home for global scope)\n * @param options - When `scope` is `global`, skips recursive nested `AGENTS.md` discovery under `projectRoot` (must not scan the entire home directory).\n * @returns Import results for each imported file\n */\nexport async function importFromCodex(\n projectRoot: string,\n options?: { scope?: TargetLayoutScope },\n): Promise<ImportResult[]> {\n const layoutScope: TargetLayoutScope = options?.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(CODEX_TARGET, projectRoot, layoutScope);\n const normalizeWindsurf = await createImportReferenceNormalizer(\n 'windsurf',\n projectRoot,\n layoutScope,\n );\n\n await importCodexRules(projectRoot, results, normalize, normalizeWindsurf, layoutScope);\n await importSkills(projectRoot, results, normalize);\n await importCodexAgentsFromToml(projectRoot, results, normalize);\n await importMcp(projectRoot, results);\n\n return results;\n}\n","/**\n * Codex CLI target linter — validates canonical files for Codex.\n * Codex needs a root rule for AGENTS.md generation and otherwise relies on feature-specific\n * generators for commands, projected agents, skills, and MCP.\n */\n\nimport { relative } from 'node:path';\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { CODEX_TARGET } from './constants.js';\n\n/**\n * Lint rules for Codex target.\n * Codex requires a root rule to generate AGENTS.md.\n * Uses warning (not error) when no root because Codex generation is still useful for other\n * features, but AGENTS.md remains the primary project instruction file.\n *\n * @param canonical - Loaded canonical files\n * @param projectRoot - Project root (for relative paths)\n * @param _projectFiles - Unused here (nested advisory paths derive from globs at generate time)\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n _projectFiles: string[],\n): LintDiagnostic[] {\n const { rules } = canonical;\n if (rules.length === 0) return [];\n\n const hasRoot = rules.some((r) => r.root);\n if (!hasRoot) {\n return [\n {\n level: 'warning',\n file: relative(projectRoot, rules[0]!.source),\n target: CODEX_TARGET,\n message: 'Codex needs a root rule to generate AGENTS.md. Add root: true to a rule.',\n },\n ];\n }\n return [];\n}\n","/**\n * Codex CLI-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintMcp(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n\n const diagnostics: LintDiagnostic[] = [];\n for (const [name, server] of Object.entries(canonical.mcp.mcpServers)) {\n if (typeof server.description === 'string' && server.description) {\n diagnostics.push(\n createWarning(\n '.agentsmesh/mcp.json',\n 'codex-cli',\n `MCP server \"${name}\" has a description, but codex-cli does not project MCP descriptions into .codex/config.toml.`,\n ),\n );\n }\n\n if ('url' in server || 'type' in server) {\n const type = 'type' in server ? server.type : 'url';\n diagnostics.push(\n createWarning(\n '.agentsmesh/mcp.json',\n 'codex-cli',\n `MCP server \"${name}\" uses ${type} transport; codex-cli only generates stdio MCP servers.`,\n ),\n );\n }\n }\n return diagnostics;\n}\n","/**\n * Codex rule markdown mirrors live under `.codex/instructions/`.\n * Native execution enforcement still projects to `.codex/rules/*.rules`.\n */\n\nimport type { CanonicalRule } from '../../core/types.js';\nimport { codexInstructionMirrorPath } from './instruction-mirror.js';\n\n/**\n * Relative path for a markdown mirror of a canonical rule.\n */\nexport function codexAdvisoryInstructionPath(rule: CanonicalRule): string {\n return codexInstructionMirrorPath(rule);\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport type { ValidatedConfig } from '../../config/core/schema.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n renderCodexGlobalInstructions,\n} from './generator.js';\nimport {\n AGENTS_MD,\n CODEX_GLOBAL_AGENTS_MD,\n CODEX_SKILLS_DIR,\n CODEX_AGENTS_DIR,\n CODEX_INSTRUCTIONS_DIR,\n CODEX_RULES_DIR,\n} from './constants.js';\nimport { importFromCodex } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { lintMcp } from './lint.js';\nimport { buildCodexCliImportPaths } from '../../core/reference/import-map-builders.js';\nimport { shouldConvertCommandsToSkills } from '../../config/core/conversions.js';\nimport { codexAdvisoryInstructionPath } from './codex-rule-paths.js';\nimport { commandSkillDirName } from './command-skill.js';\n\nexport const target: TargetGenerators = {\n name: 'codex-cli',\n primaryRootInstructionPath: AGENTS_MD,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n importFrom: importFromCodex,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: AGENTS_MD,\n skillDir: '.agents/skills',\n managedOutputs: {\n dirs: ['.agents/skills', '.codex/agents', '.codex/instructions'],\n files: ['AGENTS.md', '.codex/config.toml'],\n },\n paths: {\n rulePath(_slug, rule) {\n return codexAdvisoryInstructionPath(rule);\n },\n commandPath(name, config: ValidatedConfig) {\n return shouldConvertCommandsToSkills(config, 'codex-cli')\n ? `${CODEX_SKILLS_DIR}/${commandSkillDirName(name)}/SKILL.md`\n : null;\n },\n agentPath(name, _config) {\n return `${CODEX_AGENTS_DIR}/${name}.toml`;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: CODEX_GLOBAL_AGENTS_MD,\n renderPrimaryRootInstruction: renderCodexGlobalInstructions,\n skillDir: CODEX_SKILLS_DIR,\n managedOutputs: {\n dirs: ['.agents/skills', '.codex/agents', '.codex/rules'],\n files: [CODEX_GLOBAL_AGENTS_MD, '.codex/config.toml'],\n },\n rewriteGeneratedPath(path) {\n if (path === AGENTS_MD) return CODEX_GLOBAL_AGENTS_MD;\n if (path.startsWith(`${CODEX_INSTRUCTIONS_DIR}/`)) return null;\n return path;\n },\n paths: {\n rulePath(slug, rule) {\n return rule.codexEmit === 'execution'\n ? `${CODEX_RULES_DIR}/${slug}.rules`\n : CODEX_GLOBAL_AGENTS_MD;\n },\n commandPath(name, config: ValidatedConfig) {\n return shouldConvertCommandsToSkills(config, 'codex-cli')\n ? `${CODEX_SKILLS_DIR}/${commandSkillDirName(name)}/SKILL.md`\n : null;\n },\n agentPath(name, _config) {\n return `${CODEX_AGENTS_DIR}/${name}.toml`;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'embedded',\n commands: 'embedded',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'codex-cli',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'embedded',\n agents: 'native',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n },\n emptyImportMessage: 'No Codex config found (codex.md or AGENTS.md).',\n supportsConversion: { commands: true },\n lintRules,\n lint: {\n mcp: lintMcp,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n '.codex/AGENTS.md',\n '.codex/AGENTS.override.md',\n '.codex/config.toml',\n '.codex/agents',\n '.codex/rules',\n '.agents/skills',\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildCodexCliImportPaths,\n sharedArtifacts: {\n '.agents/skills/': 'owner',\n },\n detectionPaths: [\n 'codex.md',\n 'AGENTS.md',\n 'AGENTS.override.md',\n '.codex/config.toml',\n '.codex/agents',\n '.codex/rules',\n ],\n} satisfies TargetDescriptor;\n","/**\n * Windsurf target constants.\n * Windsurf uses AGENTS.md (root), .windsurf/rules/*.md (modular), and .codeiumignore.\n */\n\nexport const WINDSURF_TARGET = 'windsurf';\n\n/** Root rules file (flat, no frontmatter) */\nexport const WINDSURF_RULES_ROOT = '.windsurfrules';\n\n/** Modular rules directory */\nexport const WINDSURF_RULES_DIR = '.windsurf/rules';\n\n/** Ignore file path (agentsmesh legacy / community) */\nexport const WINDSURF_IGNORE = '.windsurfignore';\n\n/** Official Windsurf/Codeium ignore file (docs.windsurf.com) */\nexport const CODEIUM_IGNORE = '.codeiumignore';\n\n/** AGENTS.md root rule (shared with GitHub Agents spec) */\nexport const WINDSURF_AGENTS_MD = 'AGENTS.md';\n\n/** Windsurf hooks file */\nexport const WINDSURF_HOOKS_FILE = '.windsurf/hooks.json';\n\n/** Windsurf MCP example config path used for project-owned setup snippets */\nexport const WINDSURF_MCP_EXAMPLE_FILE = '.windsurf/mcp_config.example.json';\n\n/** Windsurf MCP primary config path (import fallback only) */\nexport const WINDSURF_MCP_CONFIG_FILE = '.windsurf/mcp_config.json';\n\n/** Workflows directory (.windsurf/workflows/*.md → canonical commands) */\nexport const WINDSURF_WORKFLOWS_DIR = '.windsurf/workflows';\n\n/** Skills directory (.windsurf/skills/{name}/ → canonical skills) */\nexport const WINDSURF_SKILLS_DIR = '.windsurf/skills';\n\nexport const WINDSURF_CANONICAL_RULES_DIR = '.agentsmesh/rules';\nexport const WINDSURF_CANONICAL_COMMANDS_DIR = '.agentsmesh/commands';\nexport const WINDSURF_CANONICAL_AGENTS_DIR = '.agentsmesh/agents';\nexport const WINDSURF_CANONICAL_SKILLS_DIR = '.agentsmesh/skills';\nexport const WINDSURF_CANONICAL_IGNORE = '.agentsmesh/ignore';\nexport const WINDSURF_CANONICAL_HOOKS = '.agentsmesh/hooks.yaml';\nexport const WINDSURF_CANONICAL_MCP = '.agentsmesh/mcp.json';\n\n/** Global mode paths (user-level ~/.codeium/windsurf/) */\nexport const WINDSURF_GLOBAL_RULES = '.codeium/windsurf/memories/global_rules.md';\nexport const WINDSURF_GLOBAL_SKILLS_DIR = '.codeium/windsurf/skills';\nexport const WINDSURF_GLOBAL_WORKFLOWS_DIR = '.codeium/windsurf/global_workflows';\nexport const WINDSURF_GLOBAL_HOOKS_FILE = '.codeium/windsurf/hooks.json';\nexport const WINDSURF_GLOBAL_MCP_FILE = '.codeium/windsurf/mcp_config.json';\nexport const WINDSURF_GLOBAL_IGNORE = '.codeium/.codeiumignore';\n\n/** Compatibility mirror path for skills */\nexport const WINDSURF_GLOBAL_AGENTS_SKILLS_DIR = '.agents/skills';\n","import { basename } from 'node:path';\nimport type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { WINDSURF_RULES_DIR, WINDSURF_AGENTS_MD } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nfunction ruleSlug(source: string): string {\n const name = basename(source, '.md');\n return name === '_root' ? 'root' : name;\n}\n\nfunction directoryScopedRuleDir(globs: string[]): string | null {\n if (globs.length === 0) return null;\n const dirs = globs\n .map((glob) => glob.split('/')[0] ?? '')\n .filter((segment) => /^[A-Za-z0-9._-]+$/.test(segment));\n if (dirs.length !== globs.length) return null;\n return dirs.every((dir) => dir === dirs[0]) ? dirs[0]! : null;\n}\n\nexport function generateRules(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n const root = canonical.rules.find((r) => r.root);\n if (!root) return [];\n\n outputs.push({\n path: WINDSURF_AGENTS_MD,\n content: root.body.trim(),\n });\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('windsurf')) continue;\n const slug = ruleSlug(rule.source);\n const normalizedTrigger = rule.trigger || (rule.globs.length > 0 ? 'glob' : undefined);\n const frontmatter: Record<string, unknown> = {\n description: rule.description || undefined,\n trigger: normalizedTrigger,\n glob: rule.globs.length === 1 ? rule.globs[0] : undefined,\n globs: rule.globs.length > 1 ? rule.globs : undefined,\n };\n Object.keys(frontmatter).forEach((k) => {\n if (frontmatter[k] === undefined) delete frontmatter[k];\n });\n const content =\n Object.keys(frontmatter).length > 0\n ? serializeFrontmatter(frontmatter, rule.body.trim() || '')\n : rule.body.trim() || '';\n outputs.push({ path: `${WINDSURF_RULES_DIR}/${slug}.md`, content });\n\n const dir = directoryScopedRuleDir(rule.globs);\n if (dir) {\n if (dir !== slug) {\n outputs.push({ path: `${WINDSURF_RULES_DIR}/${dir}.md`, content });\n }\n outputs.push({ path: `${dir}/AGENTS.md`, content: rule.body.trim() || '' });\n }\n }\n\n return outputs;\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { CODEIUM_IGNORE } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateIgnore(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.ignore || canonical.ignore.length === 0) return [];\n return [{ path: CODEIUM_IGNORE, content: canonical.ignore.join('\\n') }];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { WINDSURF_WORKFLOWS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateCommands(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.commands.map((cmd) => {\n const frontmatter: Record<string, unknown> = {\n description: cmd.description.trim() || undefined,\n allowedTools: cmd.allowedTools.length > 0 ? cmd.allowedTools : undefined,\n };\n Object.keys(frontmatter).forEach((key) => {\n if (frontmatter[key] === undefined) delete frontmatter[key];\n });\n const content =\n Object.keys(frontmatter).length > 0\n ? serializeFrontmatter(frontmatter, cmd.body.trim() || '')\n : cmd.body.trim();\n return {\n path: `${WINDSURF_WORKFLOWS_DIR}/${cmd.name}.md`,\n content,\n };\n });\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport {\n projectedAgentSkillDirName,\n serializeProjectedAgentSkill,\n} from '../../projection/projected-agent-skill.js';\nimport { WINDSURF_SKILLS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateAgents(canonical: CanonicalFiles): RulesOutput[] {\n return canonical.agents.map((agent) => ({\n path: `${WINDSURF_SKILLS_DIR}/${projectedAgentSkillDirName(agent.name)}/SKILL.md`,\n content: serializeProjectedAgentSkill(agent),\n }));\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { WINDSURF_MCP_EXAMPLE_FILE } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateMcp(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n return [\n {\n path: WINDSURF_MCP_EXAMPLE_FILE,\n content: JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2),\n },\n ];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { getHookCommand, getHookPrompt, hasHookText } from '../../../core/hook-command.js';\nimport { WINDSURF_HOOKS_FILE } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nfunction windsurfEventName(event: string): string {\n const explicit: Record<string, string> = {\n PreToolUse: 'pre_tool_use',\n PostToolUse: 'post_tool_use',\n Notification: 'notification',\n UserPromptSubmit: 'user_prompt_submit',\n SubagentStart: 'subagent_start',\n SubagentStop: 'subagent_stop',\n };\n if (explicit[event]) return explicit[event];\n return event\n .replace(/([a-z0-9])([A-Z])/g, '$1_$2')\n .replace(/[-\\s]+/g, '_')\n .toLowerCase();\n}\n\nfunction toWindsurfHooks(hooks: import('../../../core/types.js').Hooks): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const [event, entries] of Object.entries(hooks)) {\n if (!Array.isArray(entries)) continue;\n const translated: Array<Record<string, unknown>> = [];\n for (const entry of entries) {\n if (!hasHookText(entry)) continue;\n const command = getHookCommand(entry);\n const prompt = getHookPrompt(entry);\n const value = entry.type === 'prompt' ? prompt || command : command || prompt;\n if (!value) continue;\n translated.push({ command: value, show_output: true });\n }\n if (translated.length > 0) result[windsurfEventName(event)] = translated;\n }\n return result;\n}\n\nexport function generateHooks(canonical: CanonicalFiles): RulesOutput[] {\n if (!canonical.hooks || Object.keys(canonical.hooks).length === 0) return [];\n const hooks = toWindsurfHooks(canonical.hooks);\n if (Object.keys(hooks).length === 0) return [];\n return [{ path: WINDSURF_HOOKS_FILE, content: JSON.stringify({ hooks }, null, 2) }];\n}\n","import type { CanonicalFiles } from '../../../core/types.js';\nimport { serializeFrontmatter } from '../../../utils/text/markdown.js';\nimport { WINDSURF_SKILLS_DIR } from '../constants.js';\nimport type { RulesOutput } from './types.js';\n\nexport function generateSkills(canonical: CanonicalFiles): RulesOutput[] {\n const outputs: RulesOutput[] = [];\n for (const skill of canonical.skills) {\n const frontmatter: Record<string, unknown> = {\n name: skill.name,\n description: skill.description || undefined,\n };\n if (frontmatter.description === undefined) delete frontmatter.description;\n const content =\n Object.keys(frontmatter).length > 0\n ? serializeFrontmatter(frontmatter, skill.body.trim() || '')\n : skill.body.trim() || '';\n outputs.push({ path: `${WINDSURF_SKILLS_DIR}/${skill.name}/SKILL.md`, content });\n for (const sf of skill.supportingFiles) {\n outputs.push({\n path: `${WINDSURF_SKILLS_DIR}/${skill.name}/${sf.relativePath}`,\n content: sf.content,\n });\n }\n }\n return outputs;\n}\n","/**\n * Import Windsurf `.windsurf/workflows/*.md` into canonical commands.\n */\n\nimport { join, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport {\n readFileSafe,\n readDirRecursive,\n writeFileAtomic,\n mkdirp,\n} from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedCommandWithFallback } from '../import/import-metadata.js';\nimport {\n WINDSURF_TARGET,\n WINDSURF_WORKFLOWS_DIR,\n WINDSURF_CANONICAL_COMMANDS_DIR,\n} from './constants.js';\n\nfunction toStringArray(value: unknown): string[] {\n if (Array.isArray(value)) {\n return value\n .filter((entry): entry is string => typeof entry === 'string')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n if (typeof value === 'string') {\n return value\n .split(',')\n .map((entry) => entry.trim())\n .filter(Boolean);\n }\n return [];\n}\n\nexport async function importWorkflows(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const workflowsDir = join(projectRoot, WINDSURF_WORKFLOWS_DIR);\n const workflowFiles = await readDirRecursive(workflowsDir);\n const workflowMdFiles = workflowFiles.filter((f) => f.endsWith('.md'));\n const destCommandsDir = join(projectRoot, WINDSURF_CANONICAL_COMMANDS_DIR);\n for (const srcPath of workflowMdFiles) {\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n const relativePath = relative(workflowsDir, srcPath).replace(/\\\\/g, '/');\n await mkdirp(destCommandsDir);\n const destPath = join(destCommandsDir, relativePath);\n const normalized = normalize(content, srcPath, destPath);\n const { frontmatter, body } = parseFrontmatter(normalized);\n const outContent = await serializeImportedCommandWithFallback(\n destPath,\n {\n description: typeof frontmatter.description === 'string' ? frontmatter.description : '',\n hasDescription: Object.prototype.hasOwnProperty.call(frontmatter, 'description'),\n allowedTools: (() => {\n const fromCamel = toStringArray(frontmatter.allowedTools);\n return fromCamel.length > 0 ? fromCamel : toStringArray(frontmatter['allowed-tools']);\n })(),\n hasAllowedTools:\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowedTools') ||\n Object.prototype.hasOwnProperty.call(frontmatter, 'allowed-tools'),\n },\n body,\n );\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: WINDSURF_TARGET,\n fromPath: srcPath,\n toPath: `${WINDSURF_CANONICAL_COMMANDS_DIR}/${relativePath}`,\n feature: 'commands',\n });\n }\n}\n","/**\n * Windsurf skills import adapter - handles projected agent skills and regular skills.\n */\n\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport {\n parseProjectedAgentSkillFrontmatter,\n serializeImportedAgent,\n} from '../projection/projected-agent-skill.js';\nimport { removePathIfExists } from '../import/scoped-agents-import.js';\nimport {\n findDirectorySkills,\n importDirectorySkill,\n type SkillImportOptions,\n} from '../import/shared/skill-import-pipeline.js';\nimport {\n WINDSURF_SKILLS_DIR,\n WINDSURF_CANONICAL_AGENTS_DIR,\n WINDSURF_CANONICAL_SKILLS_DIR,\n} from './constants.js';\n\nexport async function importSkills(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n skillsRelDir: string = WINDSURF_SKILLS_DIR,\n): Promise<void> {\n const skillsDir = join(projectRoot, skillsRelDir);\n const directorySkills = await findDirectorySkills(skillsDir);\n\n const options: SkillImportOptions = {\n projectRoot,\n sourceSkillsDir: skillsRelDir,\n destCanonicalSkillsDir: WINDSURF_CANONICAL_SKILLS_DIR,\n targetName: 'windsurf',\n normalize,\n results,\n };\n\n // Check each skill to see if it's a projected agent skill\n for (const [skillName, skillDir] of directorySkills) {\n const skillMdPath = join(skillDir, 'SKILL.md');\n const content = await readFileSafe(skillMdPath);\n if (!content) continue;\n\n const rawParsed = parseFrontmatter(content);\n const projectedAgent = parseProjectedAgentSkillFrontmatter(rawParsed.frontmatter, skillName);\n\n if (projectedAgent) {\n // Import as agent, not skill\n await removePathIfExists(join(projectRoot, WINDSURF_CANONICAL_SKILLS_DIR, skillName));\n const destAgentsDir = join(projectRoot, WINDSURF_CANONICAL_AGENTS_DIR);\n await mkdirp(destAgentsDir);\n const agentPath = join(destAgentsDir, `${projectedAgent.name}.md`);\n await writeFileAtomic(\n agentPath,\n serializeImportedAgent(projectedAgent, normalize(rawParsed.body, skillMdPath, agentPath)),\n );\n results.push({\n fromTool: 'windsurf',\n fromPath: skillMdPath,\n toPath: `${WINDSURF_CANONICAL_AGENTS_DIR}/${projectedAgent.name}.md`,\n feature: 'agents',\n });\n continue;\n }\n\n // Regular skill - use shared pipeline\n await importDirectorySkill(skillName, skillDir, options);\n }\n}\n","import { dirname, join } from 'node:path';\nimport { stringify as yamlStringify } from 'yaml';\nimport type { ImportResult } from '../../core/types.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport {\n WINDSURF_TARGET,\n WINDSURF_HOOKS_FILE,\n WINDSURF_MCP_EXAMPLE_FILE,\n WINDSURF_MCP_CONFIG_FILE,\n WINDSURF_CANONICAL_HOOKS,\n WINDSURF_CANONICAL_MCP,\n} from './constants.js';\n\nexport async function importWindsurfHooks(\n projectRoot: string,\n results: ImportResult[],\n): Promise<void> {\n const hooksPath = join(projectRoot, WINDSURF_HOOKS_FILE);\n const hooksContent = await readFileSafe(hooksPath);\n if (!hooksContent) return;\n try {\n const parsed = JSON.parse(hooksContent) as Record<string, unknown>;\n if (!parsed.hooks || typeof parsed.hooks !== 'object' || Array.isArray(parsed.hooks)) return;\n const canonical = windsurfHooksToCanonical(parsed.hooks as Record<string, unknown>);\n if (Object.keys(canonical).length === 0) return;\n const destPath = join(projectRoot, WINDSURF_CANONICAL_HOOKS);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, yamlStringify(canonical));\n results.push({\n fromTool: WINDSURF_TARGET,\n fromPath: hooksPath,\n toPath: WINDSURF_CANONICAL_HOOKS,\n feature: 'hooks',\n });\n } catch {\n // Invalid hooks JSON should not fail import.\n }\n}\n\nfunction canonicalHookEventName(event: string): string {\n const explicit: Record<string, string> = {\n pre_tool_use: 'PreToolUse',\n post_tool_use: 'PostToolUse',\n notification: 'Notification',\n user_prompt_submit: 'UserPromptSubmit',\n subagent_start: 'SubagentStart',\n subagent_stop: 'SubagentStop',\n };\n return explicit[event] ?? event;\n}\n\nfunction windsurfHooksToCanonical(hooks: Record<string, unknown>): Record<string, unknown[]> {\n const result: Record<string, unknown[]> = {};\n for (const [event, entries] of Object.entries(hooks)) {\n if (!Array.isArray(entries)) continue;\n const mappedEvent = canonicalHookEventName(event);\n const canonicalEntries: Array<Record<string, unknown>> = [];\n for (const entry of entries) {\n if (!entry || typeof entry !== 'object') continue;\n const e = entry as Record<string, unknown>;\n\n if (typeof e.command === 'string' && e.command.trim()) {\n canonicalEntries.push({\n matcher: '.*',\n type: 'command',\n command: e.command,\n });\n continue;\n }\n\n const matcher = typeof e.matcher === 'string' && e.matcher.trim() ? e.matcher : '.*';\n const hooksList = Array.isArray(e.hooks) ? e.hooks : [];\n for (const item of hooksList) {\n if (!item || typeof item !== 'object') continue;\n const hook = item as Record<string, unknown>;\n const command =\n typeof hook.command === 'string'\n ? hook.command\n : typeof hook.prompt === 'string'\n ? hook.prompt\n : '';\n if (!command.trim()) continue;\n const canonical: Record<string, unknown> = {\n matcher,\n type: hook.type === 'prompt' ? 'prompt' : 'command',\n command,\n };\n if (typeof hook.timeout === 'number') canonical.timeout = hook.timeout;\n canonicalEntries.push(canonical);\n }\n }\n if (canonicalEntries.length > 0) result[mappedEvent] = canonicalEntries;\n }\n return result;\n}\n\nexport async function importWindsurfMcp(\n projectRoot: string,\n results: ImportResult[],\n): Promise<void> {\n const sourceCandidates = [WINDSURF_MCP_EXAMPLE_FILE, WINDSURF_MCP_CONFIG_FILE];\n for (const relPath of sourceCandidates) {\n const srcPath = join(projectRoot, relPath);\n const content = await readFileSafe(srcPath);\n if (!content) continue;\n try {\n const parsed = JSON.parse(content) as Record<string, unknown>;\n if (!parsed.mcpServers || typeof parsed.mcpServers !== 'object') continue;\n const destPath = join(projectRoot, WINDSURF_CANONICAL_MCP);\n await mkdirp(dirname(destPath));\n await writeFileAtomic(destPath, JSON.stringify({ mcpServers: parsed.mcpServers }, null, 2));\n results.push({\n fromTool: WINDSURF_TARGET,\n fromPath: srcPath,\n toPath: WINDSURF_CANONICAL_MCP,\n feature: 'mcp',\n });\n return;\n } catch {\n // Invalid MCP JSON should not fail import.\n }\n }\n}\n","/**\n * Windsurf target importer — .windsurfrules, .windsurf/rules/*.md, .windsurfignore → canonical.\n * .windsurfrules is flat (no frontmatter); we add root: true on import.\n * .windsurf/rules/*.md preserves frontmatter.\n */\n\nimport { join, dirname, relative } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport {\n removePathIfExists,\n shouldImportScopedAgentsRule,\n} from '../import/scoped-agents-import.js';\nimport {\n WINDSURF_TARGET,\n WINDSURF_RULES_ROOT,\n WINDSURF_RULES_DIR,\n WINDSURF_IGNORE,\n CODEIUM_IGNORE,\n WINDSURF_AGENTS_MD,\n WINDSURF_CANONICAL_RULES_DIR,\n WINDSURF_CANONICAL_IGNORE,\n} from './constants.js';\nimport { importWorkflows } from './importer-workflows.js';\nimport { importSkills } from './skills-adapter.js';\nimport { importWindsurfHooks, importWindsurfMcp } from './importer-hooks-mcp.js';\n\n/**\n * Import Windsurf config into canonical .agentsmesh/.\n * Sources: .windsurfrules (root), .windsurf/rules/*.md (rules), .windsurfignore (ignore).\n *\n * @param projectRoot - Project root directory (repo root, or user home for global scope)\n * @param options - When `scope` is `global`, skips recursive nested `AGENTS.md` discovery under `projectRoot`.\n * @returns Import results for each imported file\n */\nexport async function importFromWindsurf(\n projectRoot: string,\n options?: { scope?: TargetLayoutScope },\n): Promise<ImportResult[]> {\n const layoutScope: TargetLayoutScope = options?.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(WINDSURF_TARGET, projectRoot);\n const normalizeCodex = await createImportReferenceNormalizer('codex-cli', projectRoot);\n const destRulesDir = join(projectRoot, WINDSURF_CANONICAL_RULES_DIR);\n\n const rootPath = join(projectRoot, WINDSURF_RULES_ROOT);\n const rootContent = await readFileSafe(rootPath);\n if (rootContent !== null) {\n await mkdirp(destRulesDir);\n const destPath = join(destRulesDir, '_root.md');\n const body = normalize(rootContent, rootPath, destPath).trim();\n const outContent = await serializeImportedRuleWithFallback(destPath, { root: true }, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'windsurf',\n fromPath: rootPath,\n toPath: `${WINDSURF_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n\n // Fallback: AGENTS.md when .windsurfrules absent\n if (rootContent === null) {\n const agentsMdPath = join(projectRoot, WINDSURF_AGENTS_MD);\n const agentsMdContent = await readFileSafe(agentsMdPath);\n if (agentsMdContent !== null) {\n await mkdirp(destRulesDir);\n const destPath = join(destRulesDir, '_root.md');\n const body = normalize(\n normalizeCodex(agentsMdContent, agentsMdPath, destPath),\n agentsMdPath,\n destPath,\n ).trim();\n const outContent = await serializeImportedRuleWithFallback(destPath, { root: true }, body);\n await writeFileAtomic(destPath, outContent);\n results.push({\n fromTool: 'windsurf',\n fromPath: agentsMdPath,\n toPath: `${WINDSURF_CANONICAL_RULES_DIR}/_root.md`,\n feature: 'rules',\n });\n }\n }\n\n if (layoutScope !== 'global') {\n results.push(\n ...(await importFileDirectory({\n srcDir: projectRoot,\n destDir: destRulesDir,\n extensions: ['AGENTS.md'],\n fromTool: 'windsurf',\n normalize,\n mapEntry: async ({ srcPath, normalizeTo }) => {\n const relDir = relative(projectRoot, dirname(srcPath)).replace(/\\\\/g, '/');\n if (!relDir || relDir === '.' || !srcPath.endsWith('/AGENTS.md')) return null;\n const ruleName = relDir.replace(/\\//g, '-');\n if (!shouldImportScopedAgentsRule(relDir)) {\n await removePathIfExists(join(destRulesDir, `${ruleName}.md`));\n return null;\n }\n const destPath = join(destRulesDir, `${ruleName}.md`);\n return {\n destPath,\n toPath: `${WINDSURF_CANONICAL_RULES_DIR}/${ruleName}.md`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(\n destPath,\n { root: false, globs: [`${relDir}/**`] },\n normalizeTo(destPath),\n ),\n };\n },\n })),\n );\n }\n\n const rulesDir = join(projectRoot, WINDSURF_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir: rulesDir,\n destDir: destRulesDir,\n extensions: ['.md'],\n fromTool: 'windsurf',\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n if (relativePath === '_root.md' && rootContent !== null) return null;\n const destPath = join(destRulesDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const normalizedFrontmatter: Record<string, unknown> = { ...frontmatter };\n if (typeof normalizedFrontmatter.glob === 'string' && normalizedFrontmatter.glob.trim()) {\n normalizedFrontmatter.globs = [normalizedFrontmatter.glob];\n delete normalizedFrontmatter.glob;\n }\n return {\n destPath,\n toPath: `${WINDSURF_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: await serializeImportedRuleWithFallback(\n destPath,\n { ...normalizedFrontmatter, root: false },\n body,\n ),\n };\n },\n })),\n );\n\n let ignorePath = join(projectRoot, WINDSURF_IGNORE);\n let ignoreContent = await readFileSafe(ignorePath);\n if (ignoreContent === null || !ignoreContent.trim()) {\n ignorePath = join(projectRoot, CODEIUM_IGNORE);\n ignoreContent = await readFileSafe(ignorePath);\n }\n if (ignoreContent !== null && ignoreContent.trim()) {\n const lines = ignoreContent.split(/\\r?\\n/);\n const patterns: string[] = [];\n for (const line of lines) {\n const t = line.trim();\n if (t && !t.startsWith('#')) patterns.push(t);\n }\n if (patterns.length > 0) {\n await mkdirp(join(projectRoot, '.agentsmesh'));\n const destIgnorePath = join(projectRoot, WINDSURF_CANONICAL_IGNORE);\n await writeFileAtomic(destIgnorePath, patterns.join('\\n'));\n results.push({\n fromTool: 'windsurf',\n fromPath: ignorePath,\n toPath: WINDSURF_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n }\n }\n\n await importWorkflows(projectRoot, results, normalize);\n await importSkills(projectRoot, results, normalize);\n await importWindsurfHooks(projectRoot, results);\n await importWindsurfMcp(projectRoot, results);\n\n return results;\n}\n","/**\n * Windsurf target linter — validates canonical files for Windsurf.\n * Windsurf supports rules, workflows, skills, hooks, and embedded agents. Warns when no root rule\n * and for features that still have no project-level mapping.\n */\n\nimport { relative } from 'node:path';\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { WINDSURF_TARGET } from './constants.js';\n\n/**\n * Lint rules for Windsurf target.\n * Warns when no root rule and for canonical features Windsurf still cannot project natively\n * or via embedded mappings.\n *\n * @param canonical - Loaded canonical files\n * @param projectRoot - Project root (for relative paths)\n * @param _projectFiles - Unused (Windsurf uses validateRules via globs in non-root rules)\n * @returns Diagnostics for this target\n */\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n _projectFiles: string[],\n): LintDiagnostic[] {\n const diags: LintDiagnostic[] = [];\n const { rules } = canonical;\n\n if (rules.length > 0) {\n const hasRoot = rules.some((r) => r.root);\n if (!hasRoot) {\n diags.push({\n level: 'warning',\n file: relative(projectRoot, rules[0]!.source),\n target: WINDSURF_TARGET,\n message: 'Windsurf needs a root rule to generate AGENTS.md. Add root: true to a rule.',\n });\n }\n }\n\n const unsupported: string[] = [];\n if (\n canonical.permissions &&\n (canonical.permissions.allow.length > 0 || canonical.permissions.deny.length > 0)\n )\n unsupported.push('permissions');\n\n if (unsupported.length > 0) {\n diags.push({\n level: 'warning',\n file: '.agentsmesh',\n target: WINDSURF_TARGET,\n message: `Windsurf cannot project these features yet: ${unsupported.join(', ')}.`,\n });\n }\n\n return diags;\n}\n","/**\n * Windsurf-specific lint hooks.\n */\n\nimport type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { createWarning } from '../../core/lint/shared/helpers.js';\n\nexport function lintCommands(canonical: CanonicalFiles): LintDiagnostic[] {\n return canonical.commands\n .filter((command) => command.description.length > 0 || command.allowedTools.length > 0)\n .map((command) =>\n createWarning(\n command.source,\n 'windsurf',\n 'windsurf workflow files are plain Markdown; command description and allowed-tools metadata are not projected.',\n ),\n );\n}\n\nexport function lintMcp(canonical: CanonicalFiles): LintDiagnostic[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n\n return [\n createWarning(\n '.agentsmesh/mcp.json',\n 'windsurf',\n 'Windsurf MCP is partial; generated .windsurf/mcp_config.example.json is a reference artifact and may require manual setup.',\n ),\n ];\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport type { ValidatedConfig } from '../../config/core/schema.js';\nimport {\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateIgnore,\n generateMcp,\n generateHooks,\n} from './generator.js';\nimport { cap } from '../catalog/capabilities.js';\nimport {\n WINDSURF_AGENTS_MD,\n WINDSURF_RULES_DIR,\n WINDSURF_WORKFLOWS_DIR,\n WINDSURF_SKILLS_DIR,\n WINDSURF_HOOKS_FILE,\n WINDSURF_MCP_EXAMPLE_FILE,\n CODEIUM_IGNORE,\n WINDSURF_GLOBAL_RULES,\n WINDSURF_GLOBAL_SKILLS_DIR,\n WINDSURF_GLOBAL_WORKFLOWS_DIR,\n WINDSURF_GLOBAL_HOOKS_FILE,\n WINDSURF_GLOBAL_MCP_FILE,\n WINDSURF_GLOBAL_IGNORE,\n WINDSURF_GLOBAL_AGENTS_SKILLS_DIR,\n} from './constants.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\nimport { importFromWindsurf } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { lintCommands, lintMcp } from './lint.js';\nimport { buildWindsurfImportPaths } from '../../core/reference/import-map-builders.js';\nimport { shouldConvertAgentsToSkills } from '../../config/core/conversions.js';\nimport { projectedAgentSkillDirName } from '../projection/projected-agent-skill.js';\n\nexport const target: TargetGenerators = {\n name: 'windsurf',\n primaryRootInstructionPath: WINDSURF_AGENTS_MD,\n generateRules,\n generateCommands,\n generateAgents,\n generateSkills,\n generateMcp,\n generateHooks,\n generateIgnore,\n importFrom: importFromWindsurf,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: WINDSURF_AGENTS_MD,\n skillDir: WINDSURF_SKILLS_DIR,\n managedOutputs: {\n dirs: ['.windsurf/rules', '.windsurf/skills', '.windsurf/workflows'],\n files: [\n 'AGENTS.md',\n '.codeiumignore',\n '.windsurf/hooks.json',\n '.windsurf/mcp_config.example.json',\n ],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${WINDSURF_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${WINDSURF_WORKFLOWS_DIR}/${name}.md`;\n },\n agentPath(name, config: ValidatedConfig) {\n return shouldConvertAgentsToSkills(config, 'windsurf')\n ? `.windsurf/skills/${projectedAgentSkillDirName(name)}/SKILL.md`\n : null;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: WINDSURF_GLOBAL_RULES,\n skillDir: WINDSURF_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n WINDSURF_GLOBAL_SKILLS_DIR,\n WINDSURF_GLOBAL_WORKFLOWS_DIR,\n WINDSURF_GLOBAL_AGENTS_SKILLS_DIR,\n ],\n files: [\n WINDSURF_GLOBAL_RULES,\n WINDSURF_GLOBAL_HOOKS_FILE,\n WINDSURF_GLOBAL_MCP_FILE,\n WINDSURF_GLOBAL_IGNORE,\n ],\n },\n rewriteGeneratedPath(path) {\n // Transform project-level paths to global ~/.codeium/windsurf/ paths\n if (path === WINDSURF_AGENTS_MD) {\n return WINDSURF_GLOBAL_RULES;\n }\n if (path.startsWith(`${WINDSURF_RULES_DIR}/`) || /\\/AGENTS\\.md$/.test(path)) {\n return null; // Per-rule files and directory-scoped AGENTS.md suppressed; root AGENTS.md provides primary content\n }\n if (path.startsWith(`${WINDSURF_SKILLS_DIR}/`)) {\n return path.replace(`${WINDSURF_SKILLS_DIR}/`, `${WINDSURF_GLOBAL_SKILLS_DIR}/`);\n }\n if (path.startsWith(`${WINDSURF_WORKFLOWS_DIR}/`)) {\n return path.replace(`${WINDSURF_WORKFLOWS_DIR}/`, `${WINDSURF_GLOBAL_WORKFLOWS_DIR}/`);\n }\n if (path === WINDSURF_HOOKS_FILE) {\n return WINDSURF_GLOBAL_HOOKS_FILE;\n }\n if (path === WINDSURF_MCP_EXAMPLE_FILE) {\n return WINDSURF_GLOBAL_MCP_FILE;\n }\n if (path === CODEIUM_IGNORE) {\n return WINDSURF_GLOBAL_IGNORE;\n }\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, '.codeium/windsurf/skills', activeTargets);\n },\n paths: {\n rulePath(_slug, _rule) {\n return WINDSURF_GLOBAL_RULES; // All rules go to global_rules.md\n },\n commandPath(name, _config) {\n return `${WINDSURF_GLOBAL_WORKFLOWS_DIR}/${name}.md`;\n },\n agentPath(name, config: ValidatedConfig) {\n return shouldConvertAgentsToSkills(config, 'windsurf')\n ? `${WINDSURF_GLOBAL_SKILLS_DIR}/${projectedAgentSkillDirName(name)}/SKILL.md`\n : null;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'partial',\n commands: cap('native', 'workflows'),\n agents: 'embedded',\n skills: 'native',\n mcp: 'partial',\n hooks: 'native',\n ignore: 'native',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'windsurf',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: cap('native', 'workflows'),\n agents: 'embedded',\n skills: 'native',\n mcp: 'partial',\n hooks: 'native',\n ignore: 'native',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Windsurf config found (.windsurfrules, .windsurf/rules, .windsurfignore, or .codeiumignore).',\n supportsConversion: { agents: true },\n lintRules,\n lint: {\n commands: lintCommands,\n mcp: lintMcp,\n },\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n WINDSURF_GLOBAL_RULES,\n WINDSURF_GLOBAL_SKILLS_DIR,\n WINDSURF_GLOBAL_WORKFLOWS_DIR,\n WINDSURF_GLOBAL_HOOKS_FILE,\n WINDSURF_GLOBAL_MCP_FILE,\n WINDSURF_GLOBAL_IGNORE,\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildWindsurfImportPaths,\n detectionPaths: ['.windsurfrules', '.windsurf'],\n} satisfies TargetDescriptor;\n","import { basename } from 'node:path';\nimport type { CanonicalFiles } from '../../core/types.js';\nimport { generateEmbeddedSkills } from '../import/embedded-skill.js';\nimport { appendEmbeddedRulesBlock } from '../projection/managed-blocks.js';\nimport {\n ANTIGRAVITY_GLOBAL_ROOT,\n ANTIGRAVITY_MCP_CONFIG,\n ANTIGRAVITY_RULES_ROOT,\n ANTIGRAVITY_RULES_DIR,\n ANTIGRAVITY_WORKFLOWS_DIR,\n ANTIGRAVITY_SKILLS_DIR,\n} from './constants.js';\n\nexport interface AntigravityOutput {\n path: string;\n content: string;\n}\n\nexport function generateRules(canonical: CanonicalFiles): AntigravityOutput[] {\n const root = canonical.rules.find((r) => r.root);\n if (!root) return [];\n\n const outputs: AntigravityOutput[] = [\n { path: ANTIGRAVITY_RULES_ROOT, content: root.body.trim() || '' },\n ];\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes('antigravity')) continue;\n const slug = basename(rule.source, '.md');\n outputs.push({\n path: `${ANTIGRAVITY_RULES_DIR}/${slug}.md`,\n content: rule.body.trim() || '',\n });\n }\n\n return outputs;\n}\n\nexport function generateCommands(canonical: CanonicalFiles): AntigravityOutput[] {\n return canonical.commands.map((cmd) => {\n const intro = cmd.description.trim();\n const body = cmd.body.trim();\n const content =\n intro && body && !body.startsWith(intro) ? `${intro}\\n\\n${body}` : body || intro;\n return {\n path: `${ANTIGRAVITY_WORKFLOWS_DIR}/${cmd.name}.md`,\n content,\n };\n });\n}\n\nexport function generateSkills(canonical: CanonicalFiles): AntigravityOutput[] {\n return generateEmbeddedSkills(canonical, ANTIGRAVITY_SKILLS_DIR);\n}\n\nexport function generateMcp(canonical: CanonicalFiles): AntigravityOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n return [\n {\n path: ANTIGRAVITY_MCP_CONFIG,\n content: JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2),\n },\n ];\n}\n\nexport function renderAntigravityGlobalInstructions(canonical: CanonicalFiles): string {\n const root = canonical.rules.find((rule) => rule.root);\n const nonRootRules = canonical.rules.filter((rule) => {\n if (rule.root) return false;\n return rule.targets.length === 0 || rule.targets.includes('antigravity');\n });\n\n return appendEmbeddedRulesBlock(root?.body.trim() ?? '', nonRootRules);\n}\n\nexport { ANTIGRAVITY_GLOBAL_ROOT };\n","import { basename, join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic, mkdirp } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { importEmbeddedSkills } from '../import/embedded-skill.js';\nimport {\n serializeImportedRuleWithFallback,\n serializeImportedCommandWithFallback,\n} from '../import/import-metadata.js';\nimport { splitEmbeddedRulesToCanonical } from '../import/embedded-rules.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport {\n ANTIGRAVITY_TARGET,\n ANTIGRAVITY_RULES_ROOT,\n ANTIGRAVITY_RULES_ROOT_LEGACY,\n ANTIGRAVITY_RULES_DIR,\n ANTIGRAVITY_WORKFLOWS_DIR,\n ANTIGRAVITY_SKILLS_DIR,\n ANTIGRAVITY_GLOBAL_ROOT,\n ANTIGRAVITY_GLOBAL_SKILLS_DIR,\n ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR,\n ANTIGRAVITY_GLOBAL_MCP_CONFIG,\n ANTIGRAVITY_CANONICAL_ROOT_RULE,\n ANTIGRAVITY_CANONICAL_RULES_DIR,\n ANTIGRAVITY_CANONICAL_COMMANDS_DIR,\n ANTIGRAVITY_CANONICAL_MCP,\n} from './constants.js';\n\nasync function importRootRule(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n scope: TargetLayoutScope,\n): Promise<void> {\n const primary =\n scope === 'global'\n ? join(projectRoot, ANTIGRAVITY_GLOBAL_ROOT)\n : join(projectRoot, ANTIGRAVITY_RULES_ROOT);\n const legacy = join(projectRoot, ANTIGRAVITY_RULES_ROOT_LEGACY);\n let srcPath = primary;\n let content = await readFileSafe(primary);\n if (scope === 'project' && content === null) {\n srcPath = legacy;\n content = await readFileSafe(legacy);\n }\n if (content === null) return;\n\n const destPath = join(projectRoot, ANTIGRAVITY_CANONICAL_ROOT_RULE);\n const split = await splitEmbeddedRulesToCanonical({\n content,\n projectRoot,\n rulesDir: ANTIGRAVITY_CANONICAL_RULES_DIR,\n sourcePath: srcPath,\n fromTool: ANTIGRAVITY_TARGET,\n normalize,\n });\n results.push(...split.results);\n const { body } = parseFrontmatter(normalize(split.rootContent, srcPath, destPath));\n const output = await serializeImportedRuleWithFallback(destPath, { root: true }, body);\n await mkdirp(join(projectRoot, ANTIGRAVITY_CANONICAL_RULES_DIR));\n await writeFileAtomic(destPath, output);\n results.push({\n fromTool: ANTIGRAVITY_TARGET,\n fromPath: srcPath,\n toPath: ANTIGRAVITY_CANONICAL_ROOT_RULE,\n feature: 'rules',\n });\n}\n\nasync function importNonRootRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const srcDir = join(projectRoot, ANTIGRAVITY_RULES_DIR);\n const destDir = join(projectRoot, ANTIGRAVITY_CANONICAL_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: ANTIGRAVITY_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n if (basename(relativePath) === 'general.md' || basename(relativePath) === '_root.md')\n return null;\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const output = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: false,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n },\n body,\n );\n return {\n destPath,\n toPath: `${ANTIGRAVITY_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: output,\n };\n },\n })),\n );\n}\n\nasync function importWorkflows(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n scope: TargetLayoutScope,\n): Promise<void> {\n const workflowsRel =\n scope === 'global' ? ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR : ANTIGRAVITY_WORKFLOWS_DIR;\n const srcDir = join(projectRoot, workflowsRel);\n const destDir = join(projectRoot, ANTIGRAVITY_CANONICAL_COMMANDS_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: ANTIGRAVITY_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const normalized = await serializeImportedCommandWithFallback(\n destPath,\n {\n hasDescription: typeof frontmatter.description === 'string',\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n hasAllowedTools: false,\n allowedTools: [],\n },\n body,\n );\n return {\n destPath,\n toPath: `${ANTIGRAVITY_CANONICAL_COMMANDS_DIR}/${relativePath}`,\n feature: 'commands',\n content: normalized,\n };\n },\n })),\n );\n}\n\nasync function importMcp(projectRoot: string, results: ImportResult[]): Promise<void> {\n const mcpPath = join(projectRoot, ANTIGRAVITY_GLOBAL_MCP_CONFIG);\n const content = await readFileSafe(mcpPath);\n if (!content) return;\n let parsed: unknown;\n try {\n parsed = JSON.parse(content);\n } catch {\n return;\n }\n if (!parsed || typeof parsed !== 'object' || !('mcpServers' in (parsed as object))) return;\n const destPath = join(projectRoot, ANTIGRAVITY_CANONICAL_MCP);\n await mkdirp(join(projectRoot, '.agentsmesh'));\n await writeFileAtomic(destPath, content);\n results.push({\n fromTool: ANTIGRAVITY_TARGET,\n fromPath: mcpPath,\n toPath: ANTIGRAVITY_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n\nexport async function importFromAntigravity(\n projectRoot: string,\n options: { scope?: TargetLayoutScope } = {},\n): Promise<ImportResult[]> {\n const scope = options.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(ANTIGRAVITY_TARGET, projectRoot, scope);\n await importRootRule(projectRoot, results, normalize, scope);\n if (scope === 'project') {\n await importNonRootRules(projectRoot, results, normalize);\n } else {\n await importMcp(projectRoot, results);\n }\n await importWorkflows(projectRoot, results, normalize, scope);\n await importEmbeddedSkills(\n projectRoot,\n scope === 'global' ? ANTIGRAVITY_GLOBAL_SKILLS_DIR : ANTIGRAVITY_SKILLS_DIR,\n ANTIGRAVITY_TARGET,\n results,\n normalize,\n );\n return results;\n}\n","import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { ANTIGRAVITY_TARGET } from './constants.js';\n\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n return validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n }).map((diagnostic) => ({\n ...diagnostic,\n target: ANTIGRAVITY_TARGET,\n }));\n}\n","import type { TargetCapabilities, TargetGenerators } from '../catalog/target.interface.js';\nimport type { TargetDescriptor, TargetLayout } from '../catalog/target-descriptor.js';\nimport { cap } from '../catalog/capabilities.js';\nimport {\n generateRules,\n generateCommands,\n generateSkills,\n generateMcp,\n renderAntigravityGlobalInstructions,\n} from './generator.js';\nimport {\n ANTIGRAVITY_GLOBAL_MCP_CONFIG,\n ANTIGRAVITY_GLOBAL_ROOT,\n ANTIGRAVITY_GLOBAL_SKILLS_DIR,\n ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR,\n ANTIGRAVITY_MCP_CONFIG,\n ANTIGRAVITY_RULES_ROOT,\n ANTIGRAVITY_RULES_DIR,\n ANTIGRAVITY_WORKFLOWS_DIR,\n} from './constants.js';\nimport { importFromAntigravity } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { buildAntigravityImportPaths } from '../../core/reference/import-map-builders.js';\n\nexport const target: TargetGenerators = {\n name: 'antigravity',\n primaryRootInstructionPath: ANTIGRAVITY_RULES_ROOT,\n generateRules,\n generateCommands,\n generateSkills,\n generateMcp,\n importFrom: importFromAntigravity,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: ANTIGRAVITY_RULES_ROOT,\n skillDir: '.agents/skills',\n rewriteGeneratedPath(path) {\n if (path === ANTIGRAVITY_MCP_CONFIG) return null;\n return path;\n },\n paths: {\n rulePath(slug, _rule) {\n return `${ANTIGRAVITY_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${ANTIGRAVITY_WORKFLOWS_DIR}/${name}.md`;\n },\n agentPath(_name, _config) {\n return null;\n },\n },\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: ANTIGRAVITY_GLOBAL_ROOT,\n renderPrimaryRootInstruction: renderAntigravityGlobalInstructions,\n skillDir: ANTIGRAVITY_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [ANTIGRAVITY_GLOBAL_SKILLS_DIR, ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR],\n files: [ANTIGRAVITY_GLOBAL_ROOT, ANTIGRAVITY_GLOBAL_MCP_CONFIG],\n },\n rewriteGeneratedPath(path) {\n if (path === ANTIGRAVITY_RULES_ROOT) return ANTIGRAVITY_GLOBAL_ROOT;\n if (path.startsWith(`${ANTIGRAVITY_RULES_DIR}/`)) return null;\n if (path.startsWith('.agents/skills/')) {\n return path.replace('.agents/skills', ANTIGRAVITY_GLOBAL_SKILLS_DIR);\n }\n if (path.startsWith(`${ANTIGRAVITY_WORKFLOWS_DIR}/`)) {\n return path.replace(ANTIGRAVITY_WORKFLOWS_DIR, ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR);\n }\n if (path === ANTIGRAVITY_MCP_CONFIG) return ANTIGRAVITY_GLOBAL_MCP_CONFIG;\n return path;\n },\n paths: {\n rulePath(_slug, _rule) {\n return ANTIGRAVITY_GLOBAL_ROOT;\n },\n commandPath(name, _config) {\n return `${ANTIGRAVITY_GLOBAL_WORKFLOWS_DIR}/${name}.md`;\n },\n agentPath(_name, _config) {\n return null;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'embedded',\n commands: cap('partial', 'workflows'),\n agents: 'none',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'antigravity',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: cap('partial', 'workflows'),\n agents: 'none',\n skills: 'native',\n mcp: 'none',\n hooks: 'none',\n ignore: 'none',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Antigravity config found (.agents/rules/, .agents/skills/, or .agents/workflows/).',\n lintRules,\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n '.gemini/antigravity/GEMINI.md',\n '.gemini/antigravity/skills',\n '.gemini/antigravity/workflows',\n '.gemini/antigravity/mcp_config.json',\n ],\n layout: global,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildAntigravityImportPaths,\n detectionPaths: [\n '.agents/rules/general.md',\n '.agents/rules/',\n '.agents/skills/',\n '.agents/workflows/',\n ],\n} satisfies TargetDescriptor;\n","import { basename } from 'node:path';\nimport { stringify as yamlStringify } from 'yaml';\nimport type { CanonicalFiles } from '../../core/types.js';\nimport { generateEmbeddedSkills } from '../import/embedded-skill.js';\nimport { serializeFrontmatter } from '../../utils/text/markdown.js';\nimport {\n ROO_CODE_TARGET,\n ROO_CODE_ROOT_RULE,\n ROO_CODE_RULES_DIR,\n ROO_CODE_COMMANDS_DIR,\n ROO_CODE_SKILLS_DIR,\n ROO_CODE_MCP_FILE,\n ROO_CODE_IGNORE,\n ROO_CODE_MODES_FILE,\n} from './constants.js';\n\nexport interface RooCodeOutput {\n path: string;\n content: string;\n}\n\nexport function generateRules(canonical: CanonicalFiles): RooCodeOutput[] {\n const outputs: RooCodeOutput[] = [];\n const root = canonical.rules.find((rule) => rule.root);\n\n if (root) {\n outputs.push({\n path: ROO_CODE_ROOT_RULE,\n content: root.body.trim() || '',\n });\n }\n\n for (const rule of canonical.rules) {\n if (rule.root) continue;\n if (rule.targets.length > 0 && !rule.targets.includes(ROO_CODE_TARGET)) continue;\n const slug = basename(rule.source, '.md');\n outputs.push({\n path: `${ROO_CODE_RULES_DIR}/${slug}.md`,\n content: rule.body.trim() || '',\n });\n }\n\n return outputs;\n}\n\nexport function generateCommands(canonical: CanonicalFiles): RooCodeOutput[] {\n return canonical.commands.map((command) => {\n const frontmatter: Record<string, unknown> = {};\n if (command.description) frontmatter.description = command.description;\n return {\n path: `${ROO_CODE_COMMANDS_DIR}/${command.name}.md`,\n content: serializeFrontmatter(frontmatter, command.body.trim() || ''),\n };\n });\n}\n\nexport function generateMcp(canonical: CanonicalFiles): RooCodeOutput[] {\n if (!canonical.mcp || Object.keys(canonical.mcp.mcpServers).length === 0) return [];\n return [\n {\n path: ROO_CODE_MCP_FILE,\n content: JSON.stringify({ mcpServers: canonical.mcp.mcpServers }, null, 2),\n },\n ];\n}\n\nexport function generateIgnore(canonical: CanonicalFiles): RooCodeOutput[] {\n if (canonical.ignore.length === 0) return [];\n return [{ path: ROO_CODE_IGNORE, content: canonical.ignore.join('\\n') }];\n}\n\nexport function generateSkills(canonical: CanonicalFiles): RooCodeOutput[] {\n return generateEmbeddedSkills(canonical, ROO_CODE_SKILLS_DIR);\n}\n\nexport function generateAgents(canonical: CanonicalFiles): RooCodeOutput[] {\n if (canonical.agents.length === 0) return [];\n const customModes = canonical.agents.map((agent) => {\n const slug = basename(agent.source, '.md');\n const mode: Record<string, unknown> = { slug, name: agent.name };\n if (agent.description) mode.description = agent.description;\n if (agent.body.trim()) mode.roleDefinition = agent.body.trim();\n return mode;\n });\n return [{ path: ROO_CODE_MODES_FILE, content: yamlStringify({ customModes }) }];\n}\n","import { join } from 'node:path';\nimport type { ImportResult, McpServer } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { serializeImportedCommandWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport { toStringArray, toStringRecord } from '../import/shared-import-helpers.js';\nimport {\n ROO_CODE_TARGET,\n ROO_CODE_COMMANDS_DIR,\n ROO_CODE_MCP_FILE,\n ROO_CODE_GLOBAL_MCP_FILE,\n ROO_CODE_IGNORE,\n ROO_CODE_CANONICAL_COMMANDS_DIR,\n ROO_CODE_CANONICAL_MCP,\n ROO_CODE_CANONICAL_IGNORE,\n} from './constants.js';\n\nfunction readMcpServers(content: string): Record<string, McpServer> {\n const parsed = JSON.parse(content) as Record<string, unknown>;\n const rawServers = parsed.mcpServers;\n if (!rawServers || typeof rawServers !== 'object' || Array.isArray(rawServers)) return {};\n\n const servers: Record<string, McpServer> = {};\n for (const [name, value] of Object.entries(rawServers)) {\n if (!value || typeof value !== 'object' || Array.isArray(value)) continue;\n const server = value as Record<string, unknown>;\n if (typeof server.command === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'stdio',\n command: server.command,\n args: toStringArray(server.args),\n env: toStringRecord(server.env),\n description: typeof server.description === 'string' ? server.description : undefined,\n };\n continue;\n }\n if (typeof server.url === 'string') {\n servers[name] = {\n type: typeof server.type === 'string' ? server.type : 'http',\n url: server.url,\n headers: toStringRecord(server.headers),\n env: toStringRecord(server.env),\n description: typeof server.description === 'string' ? server.description : undefined,\n };\n }\n }\n return servers;\n}\n\nexport async function importRooCommands(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const srcDir = join(projectRoot, ROO_CODE_COMMANDS_DIR);\n const destDir = join(projectRoot, ROO_CODE_CANONICAL_COMMANDS_DIR);\n\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: ROO_CODE_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const output = await serializeImportedCommandWithFallback(\n destPath,\n {\n hasDescription: true,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n hasAllowedTools: false,\n allowedTools: [],\n },\n body,\n );\n return {\n destPath,\n toPath: `${ROO_CODE_CANONICAL_COMMANDS_DIR}/${relativePath}`,\n feature: 'commands',\n content: output,\n };\n },\n })),\n );\n}\n\nexport async function importRooMcp(\n projectRoot: string,\n results: ImportResult[],\n scope: TargetLayoutScope,\n): Promise<void> {\n const srcPath =\n scope === 'global'\n ? join(projectRoot, ROO_CODE_GLOBAL_MCP_FILE)\n : join(projectRoot, ROO_CODE_MCP_FILE);\n const content = await readFileSafe(srcPath);\n if (content === null) return;\n\n const servers = readMcpServers(content);\n if (Object.keys(servers).length === 0) return;\n\n await writeFileAtomic(\n join(projectRoot, ROO_CODE_CANONICAL_MCP),\n JSON.stringify({ mcpServers: servers }, null, 2),\n );\n results.push({\n fromTool: ROO_CODE_TARGET,\n fromPath: srcPath,\n toPath: ROO_CODE_CANONICAL_MCP,\n feature: 'mcp',\n });\n}\n\nexport async function importRooIgnore(projectRoot: string, results: ImportResult[]): Promise<void> {\n const srcPath = join(projectRoot, ROO_CODE_IGNORE);\n const content = await readFileSafe(srcPath);\n if (content === null) return;\n\n await writeFileAtomic(join(projectRoot, ROO_CODE_CANONICAL_IGNORE), content.trimEnd());\n results.push({\n fromTool: ROO_CODE_TARGET,\n fromPath: srcPath,\n toPath: ROO_CODE_CANONICAL_IGNORE,\n feature: 'ignore',\n });\n}\n","import { readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport type { ImportResult } from '../../core/types.js';\nimport type { TargetLayoutScope } from '../catalog/target-descriptor.js';\nimport { createImportReferenceNormalizer } from '../../core/reference/import-rewriter.js';\nimport { readFileSafe, writeFileAtomic } from '../../utils/filesystem/fs.js';\nimport { parseFrontmatter } from '../../utils/text/markdown.js';\nimport { importEmbeddedSkills } from '../import/embedded-skill.js';\nimport { serializeImportedRuleWithFallback } from '../import/import-metadata.js';\nimport { importFileDirectory } from '../import/import-orchestrator.js';\nimport {\n importRooCommands,\n importRooIgnore,\n importRooMcp,\n} from './importer-commands-mcp-ignore.js';\nimport {\n ROO_CODE_TARGET,\n ROO_CODE_DIR,\n ROO_CODE_ROOT_RULE,\n ROO_CODE_ROOT_RULE_FALLBACK,\n ROO_CODE_RULES_DIR,\n ROO_CODE_SKILLS_DIR,\n ROO_CODE_GLOBAL_AGENTS_MD,\n ROO_CODE_CANONICAL_ROOT_RULE,\n ROO_CODE_CANONICAL_RULES_DIR,\n} from './constants.js';\n\nasync function importRootRule(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n scope: TargetLayoutScope,\n): Promise<void> {\n const destPath = join(projectRoot, ROO_CODE_CANONICAL_ROOT_RULE);\n const sources =\n scope === 'global'\n ? [ROO_CODE_GLOBAL_AGENTS_MD, ROO_CODE_ROOT_RULE, ROO_CODE_ROOT_RULE_FALLBACK]\n : [ROO_CODE_ROOT_RULE, ROO_CODE_ROOT_RULE_FALLBACK];\n\n for (const relPath of sources) {\n const srcPath = join(projectRoot, relPath);\n const content = await readFileSafe(srcPath);\n if (content === null) continue;\n const { frontmatter, body } = parseFrontmatter(normalize(content, srcPath, destPath));\n const output = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: true,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n },\n body,\n );\n await writeFileAtomic(destPath, output);\n results.push({\n fromTool: ROO_CODE_TARGET,\n fromPath: srcPath,\n toPath: ROO_CODE_CANONICAL_ROOT_RULE,\n feature: 'rules',\n });\n return;\n }\n}\n\nasync function importNonRootRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const srcDir = join(projectRoot, ROO_CODE_RULES_DIR);\n const destDir = join(projectRoot, ROO_CODE_CANONICAL_RULES_DIR);\n const rootRuleName = '00-root.md';\n\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: ROO_CODE_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n if (relativePath === rootRuleName) return null;\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const output = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: false,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n },\n body,\n );\n return {\n destPath,\n toPath: `${ROO_CODE_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: output,\n };\n },\n })),\n );\n}\n\nasync function importPerModeRules(\n projectRoot: string,\n results: ImportResult[],\n normalize: (content: string, sourceFile: string, destinationFile: string) => string,\n): Promise<void> {\n const rooDir = join(projectRoot, ROO_CODE_DIR);\n let entries;\n try {\n entries = await readdir(rooDir, { withFileTypes: true });\n } catch {\n return;\n }\n\n const modeRuleDirs = entries\n .filter((e) => e.isDirectory() && e.name.startsWith('rules-'))\n .map((e) => e.name);\n\n for (const dirName of modeRuleDirs) {\n const srcDir = join(rooDir, dirName);\n const destDir = join(projectRoot, ROO_CODE_CANONICAL_RULES_DIR);\n results.push(\n ...(await importFileDirectory({\n srcDir,\n destDir,\n extensions: ['.md'],\n fromTool: ROO_CODE_TARGET,\n normalize,\n mapEntry: async ({ relativePath, normalizeTo }) => {\n const destPath = join(destDir, relativePath);\n const { frontmatter, body } = parseFrontmatter(normalizeTo(destPath));\n const output = await serializeImportedRuleWithFallback(\n destPath,\n {\n root: false,\n description:\n typeof frontmatter.description === 'string' ? frontmatter.description : undefined,\n globs: Array.isArray(frontmatter.globs) ? frontmatter.globs : undefined,\n },\n body,\n );\n return {\n destPath,\n toPath: `${ROO_CODE_CANONICAL_RULES_DIR}/${relativePath}`,\n feature: 'rules',\n content: output,\n };\n },\n })),\n );\n }\n}\n\nexport async function importFromRooCode(\n projectRoot: string,\n options: { scope?: TargetLayoutScope } = {},\n): Promise<ImportResult[]> {\n const scope = options.scope ?? 'project';\n const results: ImportResult[] = [];\n const normalize = await createImportReferenceNormalizer(ROO_CODE_TARGET, projectRoot, scope);\n await importRootRule(projectRoot, results, normalize, scope);\n await importNonRootRules(projectRoot, results, normalize);\n await importPerModeRules(projectRoot, results, normalize);\n await importRooCommands(projectRoot, results, normalize);\n await importEmbeddedSkills(projectRoot, ROO_CODE_SKILLS_DIR, ROO_CODE_TARGET, results, normalize);\n await importRooMcp(projectRoot, results, scope);\n await importRooIgnore(projectRoot, results);\n return results;\n}\n","import type { CanonicalFiles, LintDiagnostic } from '../../core/types.js';\nimport { validateRules } from '../../core/lint/validate-rules.js';\nimport { ROO_CODE_TARGET } from './constants.js';\n\nexport function lintRules(\n canonical: CanonicalFiles,\n projectRoot: string,\n projectFiles: string[],\n options?: { scope?: 'project' | 'global' },\n): LintDiagnostic[] {\n return validateRules(canonical, projectRoot, projectFiles, {\n checkGlobMatches: options?.scope !== 'global',\n }).map((diagnostic) => ({\n ...diagnostic,\n target: ROO_CODE_TARGET,\n }));\n}\n","import { join, basename } from 'node:path';\nimport { stringify as yamlStringify } from 'yaml';\nimport type { TargetGenerators, TargetCapabilities } from '../catalog/target.interface.js';\nimport type {\n TargetDescriptor,\n TargetLayout,\n ScopeExtrasFn,\n} from '../catalog/target-descriptor.js';\nimport type { GenerateResult } from '../../core/types.js';\nimport { readFileSafe } from '../../utils/filesystem/fs.js';\nimport {\n generateRules,\n generateCommands,\n generateSkills,\n generateMcp,\n generateIgnore,\n generateAgents,\n} from './generator.js';\nimport {\n ROO_CODE_ROOT_RULE,\n ROO_CODE_RULES_DIR,\n ROO_CODE_COMMANDS_DIR,\n ROO_CODE_SKILLS_DIR,\n ROO_CODE_MCP_FILE,\n ROO_CODE_IGNORE,\n ROO_CODE_MODES_FILE,\n ROO_CODE_GLOBAL_RULES_DIR,\n ROO_CODE_GLOBAL_COMMANDS_DIR,\n ROO_CODE_GLOBAL_SKILLS_DIR,\n ROO_CODE_GLOBAL_MCP_FILE,\n ROO_CODE_GLOBAL_IGNORE,\n ROO_CODE_GLOBAL_AGENTS_MD,\n ROO_CODE_GLOBAL_AGENTS_SKILLS_DIR,\n ROO_CODE_GLOBAL_MODES_FILE,\n} from './constants.js';\nimport { mirrorSkillsToAgents } from '../catalog/skill-mirror.js';\nimport { importFromRooCode } from './importer.js';\nimport { lintRules } from './linter.js';\nimport { buildRooCodeImportPaths } from '../../core/reference/import-map-builders.js';\n\nexport const target: TargetGenerators = {\n name: 'roo-code',\n primaryRootInstructionPath: ROO_CODE_ROOT_RULE,\n generateRules,\n generateCommands,\n generateSkills,\n generateMcp,\n generateIgnore,\n generateAgents,\n importFrom: importFromRooCode,\n};\n\nconst project: TargetLayout = {\n rootInstructionPath: ROO_CODE_ROOT_RULE,\n skillDir: '.roo/skills',\n managedOutputs: {\n dirs: ['.roo/rules', '.roo/commands', '.roo/skills'],\n files: ['.roo/mcp.json', '.rooignore', '.roorules', ROO_CODE_MODES_FILE],\n },\n paths: {\n rulePath(slug, _rule) {\n return `${ROO_CODE_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${ROO_CODE_COMMANDS_DIR}/${name}.md`;\n },\n agentPath(_name, _config) {\n return null;\n },\n },\n};\n\nfunction computeStatus(existing: string | null, content: string): GenerateResult['status'] {\n if (existing === null) return 'created';\n if (existing !== content) return 'updated';\n return 'unchanged';\n}\n\nconst generateRooGlobalExtras: ScopeExtrasFn = async (\n canonical,\n projectRoot,\n scope,\n enabledFeatures,\n) => {\n if (scope !== 'global') return [];\n if (!enabledFeatures.has('agents') || canonical.agents.length === 0) return [];\n\n const customModes = canonical.agents.map((agent) => {\n const slug = basename(agent.source, '.md');\n const mode: Record<string, unknown> = { slug, name: agent.name };\n if (agent.description) mode.description = agent.description;\n if (agent.body.trim()) mode.roleDefinition = agent.body.trim();\n return mode;\n });\n\n const content = yamlStringify({ customModes });\n const existing = await readFileSafe(join(projectRoot, ROO_CODE_GLOBAL_MODES_FILE));\n return [\n {\n target: 'roo-code',\n path: ROO_CODE_GLOBAL_MODES_FILE,\n content,\n currentContent: existing ?? undefined,\n status: computeStatus(existing, content),\n },\n ];\n};\n\nconst global: TargetLayout = {\n rootInstructionPath: ROO_CODE_GLOBAL_AGENTS_MD,\n skillDir: ROO_CODE_GLOBAL_SKILLS_DIR,\n managedOutputs: {\n dirs: [\n ROO_CODE_GLOBAL_RULES_DIR,\n ROO_CODE_GLOBAL_COMMANDS_DIR,\n ROO_CODE_GLOBAL_SKILLS_DIR,\n ROO_CODE_GLOBAL_AGENTS_SKILLS_DIR,\n ],\n files: [\n ROO_CODE_GLOBAL_AGENTS_MD,\n ROO_CODE_GLOBAL_MCP_FILE,\n ROO_CODE_GLOBAL_IGNORE,\n ROO_CODE_GLOBAL_MODES_FILE,\n ],\n },\n rewriteGeneratedPath(path) {\n // Transform project-level paths to global ~/.roo/ paths\n if (path === ROO_CODE_ROOT_RULE) {\n return ROO_CODE_GLOBAL_AGENTS_MD;\n }\n if (path === ROO_CODE_MODES_FILE) {\n // Suppress .roomodes in global mode; scopeExtras emits settings/custom_modes.yaml instead\n return null;\n }\n if (path.startsWith(`${ROO_CODE_RULES_DIR}/`)) {\n return path.replace(`${ROO_CODE_RULES_DIR}/`, `${ROO_CODE_GLOBAL_RULES_DIR}/`);\n }\n if (path.startsWith(`${ROO_CODE_COMMANDS_DIR}/`)) {\n return path.replace(`${ROO_CODE_COMMANDS_DIR}/`, `${ROO_CODE_GLOBAL_COMMANDS_DIR}/`);\n }\n if (path.startsWith(`${ROO_CODE_SKILLS_DIR}/`)) {\n return path.replace(`${ROO_CODE_SKILLS_DIR}/`, `${ROO_CODE_GLOBAL_SKILLS_DIR}/`);\n }\n if (path === ROO_CODE_MCP_FILE) {\n return ROO_CODE_GLOBAL_MCP_FILE;\n }\n if (path === ROO_CODE_IGNORE) {\n return ROO_CODE_GLOBAL_IGNORE;\n }\n return path;\n },\n mirrorGlobalPath(path, activeTargets) {\n return mirrorSkillsToAgents(path, ROO_CODE_GLOBAL_SKILLS_DIR, activeTargets);\n },\n paths: {\n rulePath(slug, _rule) {\n return `${ROO_CODE_GLOBAL_RULES_DIR}/${slug}.md`;\n },\n commandPath(name, _config) {\n return `${ROO_CODE_GLOBAL_COMMANDS_DIR}/${name}.md`;\n },\n agentPath(_name, _config) {\n return null;\n },\n },\n};\n\nconst globalCapabilities: TargetCapabilities = {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'partial',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'native',\n permissions: 'none',\n};\n\nexport const descriptor = {\n id: 'roo-code',\n generators: target,\n capabilities: {\n rules: 'native',\n additionalRules: 'native',\n commands: 'native',\n agents: 'partial',\n skills: 'native',\n mcp: 'native',\n hooks: 'none',\n ignore: 'native',\n permissions: 'none',\n },\n emptyImportMessage:\n 'No Roo Code config found (.roo/rules, .roo/commands, .roo/skills, .roo/mcp.json, .rooignore, or .roorules).',\n lintRules,\n project,\n globalSupport: {\n capabilities: globalCapabilities,\n detectionPaths: [\n ROO_CODE_GLOBAL_RULES_DIR,\n ROO_CODE_GLOBAL_COMMANDS_DIR,\n ROO_CODE_GLOBAL_SKILLS_DIR,\n ROO_CODE_GLOBAL_MCP_FILE,\n ROO_CODE_GLOBAL_IGNORE,\n ROO_CODE_GLOBAL_AGENTS_MD,\n ROO_CODE_GLOBAL_MODES_FILE,\n ],\n layout: global,\n scopeExtras: generateRooGlobalExtras,\n },\n skillDir: project.skillDir,\n paths: project.paths,\n buildImportPaths: buildRooCodeImportPaths,\n detectionPaths: [\n '.roo/rules',\n '.roo/commands',\n '.roo/skills',\n '.roo/mcp.json',\n '.rooignore',\n '.roorules',\n ROO_CODE_MODES_FILE,\n ],\n} satisfies TargetDescriptor;\n","import type { SupportLevel } from '../../core/types.js';\nimport type { ValidatedConfig } from '../../config/core/schema.js';\nimport {\n shouldConvertAgentsToSkills,\n shouldConvertCommandsToSkills,\n} from '../../config/core/conversions.js';\nimport type { FeatureGeneratorFn, TargetCapabilities } from './target.interface.js';\nimport {\n type CapabilityFeatureKey,\n normalizeTargetCapabilities,\n type TargetCapabilityValue,\n} from './capabilities.js';\nimport type {\n TargetDescriptor,\n TargetLayout,\n TargetLayoutScope,\n TargetManagedOutputs,\n} from './target-descriptor.js';\nimport { getDescriptor } from './registry.js';\nimport { assertSharedArtifactOwnersUnique } from './shared-artifact-owner.js';\nimport { TARGET_IDS, type BuiltinTargetId, isBuiltinTargetId } from './target-ids.js';\nimport { descriptor as claudeCode } from '../claude-code/index.js';\nimport { descriptor as cursor } from '../cursor/index.js';\nimport { descriptor as copilot } from '../copilot/index.js';\nimport { descriptor as continueTarget } from '../continue/index.js';\nimport { descriptor as junie } from '../junie/index.js';\nimport { descriptor as kiro } from '../kiro/index.js';\nimport { descriptor as geminiCli } from '../gemini-cli/index.js';\nimport { descriptor as cline } from '../cline/index.js';\nimport { descriptor as codexCli } from '../codex-cli/index.js';\nimport { descriptor as windsurf } from '../windsurf/index.js';\nimport { descriptor as antigravity } from '../antigravity/index.js';\nimport { descriptor as rooCode } from '../roo-code/index.js';\n\ntype TargetFeature = keyof TargetCapabilities;\n\n/** @deprecated Use TargetDescriptor from target-descriptor.ts instead */\nexport type BuiltinTargetDefinition = TargetDescriptor;\n\nexport const BUILTIN_TARGETS: readonly TargetDescriptor[] = [\n claudeCode,\n cursor,\n copilot,\n continueTarget,\n junie,\n kiro,\n geminiCli,\n cline,\n codexCli,\n windsurf,\n antigravity,\n rooCode,\n];\n\n// Lazily initialized to avoid circular-dependency issues during module load.\nlet _builtinTargetsMap: Map<string, TargetDescriptor> | undefined;\nfunction builtinTargetsMap(): Map<string, TargetDescriptor> {\n if (!_builtinTargetsMap) {\n // Fail fast if two builtins claim the same/overlapping shared-artifact owner\n // prefix — would otherwise silently depend on iteration order in the rewriter.\n assertSharedArtifactOwnersUnique(BUILTIN_TARGETS);\n _builtinTargetsMap = new Map(BUILTIN_TARGETS.map((d) => [d.id, d]));\n }\n return _builtinTargetsMap;\n}\n\n// Re-export from target-ids.ts for backward compatibility\nexport { TARGET_IDS, type BuiltinTargetId, isBuiltinTargetId };\n\nexport function getBuiltinTargetDefinition(target: string): TargetDescriptor | undefined {\n return builtinTargetsMap().get(target);\n}\n\nexport function getTargetCapabilities(\n target: string,\n scope: TargetLayoutScope = 'project',\n): Record<CapabilityFeatureKey, TargetCapabilityValue> | undefined {\n const descriptor = getBuiltinTargetDefinition(target) ?? getDescriptor(target);\n if (!descriptor) return undefined;\n const raw =\n scope === 'global'\n ? (descriptor.globalSupport?.capabilities ??\n descriptor.globalCapabilities ??\n descriptor.capabilities)\n : descriptor.capabilities;\n return normalizeTargetCapabilities(raw);\n}\n\nexport function getTargetDetectionPaths(\n target: string,\n scope: TargetLayoutScope = 'project',\n): readonly string[] {\n const descriptor = getBuiltinTargetDefinition(target) ?? getDescriptor(target);\n if (!descriptor) return [];\n if (scope === 'global') {\n return descriptor.globalSupport?.detectionPaths ?? descriptor.globalDetectionPaths ?? [];\n }\n return descriptor.detectionPaths;\n}\n\nexport function getTargetLayout(\n target: string,\n scope: TargetLayoutScope = 'project',\n): TargetLayout | undefined {\n const descriptor = getBuiltinTargetDefinition(target) ?? getDescriptor(target);\n if (!descriptor) return undefined;\n if (scope === 'global') {\n return descriptor.globalSupport?.layout ?? descriptor.global;\n }\n return descriptor.project;\n}\n\nexport function getTargetPrimaryRootInstructionPath(\n target: string,\n scope: TargetLayoutScope = 'project',\n): string | undefined {\n return getTargetLayout(target, scope)?.rootInstructionPath;\n}\n\nexport function getTargetSkillDir(\n target: string,\n scope: TargetLayoutScope = 'project',\n): string | undefined {\n return getTargetLayout(target, scope)?.skillDir;\n}\n\nexport function getTargetManagedOutputs(\n target: string,\n scope: TargetLayoutScope = 'project',\n): TargetManagedOutputs | undefined {\n return getTargetLayout(target, scope)?.managedOutputs;\n}\n\nexport function rewriteGeneratedOutputPath(\n target: string,\n path: string,\n scope: TargetLayoutScope = 'project',\n): string | null {\n const layout = getTargetLayout(target, scope);\n if (!layout) return null;\n return layout.rewriteGeneratedPath ? layout.rewriteGeneratedPath(path) : path;\n}\n\nexport function getEffectiveTargetSupportLevel(\n target: string,\n feature: keyof TargetCapabilities,\n config: ValidatedConfig,\n scope: TargetLayoutScope = 'project',\n): SupportLevel {\n const baseLevel = getTargetCapabilities(target, scope)?.[feature]?.level ?? 'none';\n if (baseLevel !== 'embedded') return baseLevel;\n const descriptor = getBuiltinTargetDefinition(target) ?? getDescriptor(target);\n if (feature === 'commands' && descriptor?.supportsConversion?.commands) {\n return shouldConvertCommandsToSkills(config, target, true, scope) ? 'embedded' : 'none';\n }\n if (feature === 'agents' && descriptor?.supportsConversion?.agents) {\n return shouldConvertAgentsToSkills(config, target, true, scope) ? 'embedded' : 'none';\n }\n return baseLevel;\n}\n\nexport function resolveTargetFeatureGenerator(\n target: string,\n feature: TargetFeature,\n config?: ValidatedConfig,\n scope: TargetLayoutScope = 'project',\n): FeatureGeneratorFn | undefined {\n const descriptor = getBuiltinTargetDefinition(target) ?? getDescriptor(target);\n const generators = descriptor?.generators;\n if (!generators) return undefined;\n\n switch (feature) {\n case 'rules':\n return generators.generateRules;\n case 'additionalRules':\n return undefined;\n case 'commands':\n if (\n config &&\n descriptor?.supportsConversion?.commands &&\n !shouldConvertCommandsToSkills(config, target, true, scope)\n ) {\n return undefined;\n }\n return generators.generateCommands;\n case 'agents':\n if (\n config &&\n descriptor?.supportsConversion?.agents &&\n !shouldConvertAgentsToSkills(config, target, true, scope)\n ) {\n return undefined;\n }\n return generators.generateAgents;\n case 'skills':\n return generators.generateSkills;\n case 'mcp':\n return generators.generateMcp;\n case 'permissions':\n return generators.generatePermissions;\n case 'hooks':\n return generators.generateHooks;\n case 'ignore':\n return generators.generateIgnore;\n }\n}\n","/**\n * Public API — built-in target catalog and plugin registration (package.json \"exports\".\"./targets\").\n */\n\nimport { BUILTIN_TARGETS } from '../targets/catalog/builtin-targets.js';\nimport type { TargetDescriptor } from '../targets/catalog/target-descriptor.js';\n\nexport {\n registerTargetDescriptor,\n getDescriptor,\n getAllDescriptors,\n} from '../targets/catalog/registry.js';\n\nexport type {\n TargetDescriptor,\n TargetLayout,\n TargetLayoutScope,\n TargetOutputFamily,\n TargetPathResolvers,\n TargetManagedOutputs,\n TargetLintHooks,\n FeatureLinter,\n RuleLinter,\n ScopeExtrasFn,\n ImportPathBuilder,\n GlobalTargetSupport,\n} from '../targets/catalog/target-descriptor.js';\n\nexport type { TargetCapabilities, TargetGenerators } from '../targets/catalog/target.interface.js';\n\nexport function getTargetCatalog(): readonly TargetDescriptor[] {\n return BUILTIN_TARGETS;\n}\n"]}