Files
2026-07-13 12:44:08 +08:00

48 lines
1.2 KiB
JavaScript

import path from 'node:path'
import { SkillDomainHelper } from '@/helpers/skill-domain-helper'
import { createSetupStatus } from '../setup-status'
import setupSkillsSettings from './setup-skills-settings'
import syncSkillDependencies from './sync-skill-dependencies'
/**
* Browse skills and set them up
*/
export default async function () {
const status = createSetupStatus('Setting up skills...').start()
try {
const skillNames = SkillDomainHelper.listAllSkillFoldersSync()
for (const skillName of skillNames) {
const currentSkill = await SkillDomainHelper.getNewSkillConfig(
skillName,
{ includeDisabled: true }
)
const currentSkillPath = SkillDomainHelper.getNewSkillConfigPath(
skillName,
{ includeDisabled: true }
)
if (!currentSkill || !currentSkillPath) {
continue
}
const skillContext = {
path: currentSkillPath ? path.dirname(currentSkillPath) : '',
bridge: currentSkill.bridge
}
await setupSkillsSettings(skillName, skillContext)
await syncSkillDependencies(skillName, skillContext)
}
status.succeed('Skills: ready')
} catch (e) {
status.fail('Failed to set up skills')
throw e
}
}