feat(sync): add Claude home sync parity across providers
This commit is contained in:
21
src/sync/skills.ts
Normal file
21
src/sync/skills.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import path from "path"
|
||||
import type { ClaudeSkill } from "../types/claude"
|
||||
import { ensureDir } from "../utils/files"
|
||||
import { forceSymlink, isValidSkillName } from "../utils/symlink"
|
||||
|
||||
export async function syncSkills(
|
||||
skills: ClaudeSkill[],
|
||||
skillsDir: string,
|
||||
): Promise<void> {
|
||||
await ensureDir(skillsDir)
|
||||
|
||||
for (const skill of skills) {
|
||||
if (!isValidSkillName(skill.name)) {
|
||||
console.warn(`Skipping skill with invalid name: ${skill.name}`)
|
||||
continue
|
||||
}
|
||||
|
||||
const target = path.join(skillsDir, skill.name)
|
||||
await forceSymlink(skill.sourceDir, target)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user