fix: register native OpenCode skills

This commit is contained in:
lofyer
2026-08-10 11:31:02 +08:00
parent be82caebc4
commit a9ae00a845
7 changed files with 646 additions and 196 deletions
+26
View File
@@ -0,0 +1,26 @@
import { cp, mkdir, rm } from 'node:fs/promises'
import { join } from 'node:path'
import type { RuntimeSkillPackage } from '../capabilities/capability-service'
export async function stageRuntimeSkillPackages(
root: string,
skillPackages: readonly RuntimeSkillPackage[],
runtimeLabel: 'Continue' | 'OpenCode'
): Promise<string> {
const skillsRoot = join(root, 'skills')
try {
await mkdir(skillsRoot, { recursive: true, mode: 0o700 })
for (const skill of skillPackages) {
await cp(skill.directory, join(skillsRoot, skill.id), {
recursive: true,
errorOnExist: true,
force: false,
verbatimSymlinks: true
})
}
return skillsRoot
} catch (error) {
await rm(root, { recursive: true, force: true })
throw new Error(`${runtimeLabel} Skill 注册失败`, { cause: error })
}
}