fix(skill-loader): respect disabledSkills in async skill resolution
This commit is contained in:
parent
953b1f98c9
commit
224afadbdb
@ -19,8 +19,13 @@ function clearSkillCache(): void {
|
|||||||
|
|
||||||
async function getAllSkills(options?: SkillResolutionOptions): Promise<LoadedSkill[]> {
|
async function getAllSkills(options?: SkillResolutionOptions): Promise<LoadedSkill[]> {
|
||||||
const cacheKey = options?.browserProvider ?? "playwright"
|
const cacheKey = options?.browserProvider ?? "playwright"
|
||||||
const cached = cachedSkillsByProvider.get(cacheKey)
|
const hasDisabledSkills = options?.disabledSkills && options.disabledSkills.size > 0
|
||||||
if (cached) return cached
|
|
||||||
|
// Skip cache if disabledSkills is provided (varies between calls)
|
||||||
|
if (!hasDisabledSkills) {
|
||||||
|
const cached = cachedSkillsByProvider.get(cacheKey)
|
||||||
|
if (cached) return cached
|
||||||
|
}
|
||||||
|
|
||||||
const [discoveredSkills, builtinSkillDefs] = await Promise.all([
|
const [discoveredSkills, builtinSkillDefs] = await Promise.all([
|
||||||
discoverSkills({ includeClaudeCodePaths: true }),
|
discoverSkills({ includeClaudeCodePaths: true }),
|
||||||
@ -53,8 +58,15 @@ async function getAllSkills(options?: SkillResolutionOptions): Promise<LoadedSki
|
|||||||
const discoveredNames = new Set(discoveredSkills.map((s) => s.name))
|
const discoveredNames = new Set(discoveredSkills.map((s) => s.name))
|
||||||
const uniqueBuiltins = builtinSkillsAsLoaded.filter((s) => !discoveredNames.has(s.name))
|
const uniqueBuiltins = builtinSkillsAsLoaded.filter((s) => !discoveredNames.has(s.name))
|
||||||
|
|
||||||
const allSkills = [...discoveredSkills, ...uniqueBuiltins]
|
let allSkills = [...discoveredSkills, ...uniqueBuiltins]
|
||||||
cachedSkillsByProvider.set(cacheKey, allSkills)
|
|
||||||
|
// Filter discovered skills by disabledSkills (builtin skills are already filtered by createBuiltinSkills)
|
||||||
|
if (hasDisabledSkills) {
|
||||||
|
allSkills = allSkills.filter((s) => !options!.disabledSkills!.has(s.name))
|
||||||
|
} else {
|
||||||
|
cachedSkillsByProvider.set(cacheKey, allSkills)
|
||||||
|
}
|
||||||
|
|
||||||
return allSkills
|
return allSkills
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user