fix(skill): eagerly build description for preloaded skills

This commit is contained in:
Bo Li
2026-02-19 01:16:57 +08:00
committed by YeonGyu-Kim
parent e00275c07d
commit 05d7c3f462
2 changed files with 7 additions and 4 deletions

View File

@@ -101,7 +101,7 @@ describe("skill tool - synchronous description", () => {
const tool = createSkillTool({ skills: [] })
// then
expect(tool.description).toContain("No skills are currently available")
expect(tool.description).toContain("No skills or commands are currently available")
})
})

View File

@@ -171,10 +171,13 @@ export function createSkillTool(options: SkillLoadOptions = {}): ToolDefinition
return cachedDescription
}
// Eagerly build description if possible
if (options.skills && options.commands !== undefined) {
// Eagerly build description when callers pre-provide skills/commands.
if (options.skills !== undefined) {
const skillInfos = options.skills.map(loadedSkillToInfo)
cachedDescription = formatCombinedDescription(skillInfos, options.commands)
const commandsForDescription = options.commands ?? []
cachedDescription = formatCombinedDescription(skillInfos, commandsForDescription)
} else if (options.commands !== undefined) {
cachedDescription = formatCombinedDescription([], options.commands)
} else {
void buildDescription()
}