Files
continue/core/tools/implementations/readSkill.ts
2026-01-15 19:00:09 +05:30

44 lines
1.1 KiB
TypeScript

import { ToolImpl } from ".";
import { loadMarkdownSkills } from "../../config/markdown/loadMarkdownSkills";
import { ContinueError, ContinueErrorReason } from "../../util/errors";
import { getStringArg } from "../parseArgs";
export const readSkillImpl: ToolImpl = async (args, extras) => {
const skillName = getStringArg(args, "skillName");
const { skills } = await loadMarkdownSkills(extras.ide);
const skill = skills.find((s) => s.name === skillName);
if (!skill) {
const availableSkills = skills.map((s) => s.name).join(", ");
throw new ContinueError(
ContinueErrorReason.SkillNotFound,
`Skill "${skillName}" not found. Available skills: ${availableSkills || "none"}`,
);
}
let content = skill.content;
if (skill.files.length > 0) {
content += `\n
## Supporting files
Skill directory:
${skill.files.join("\n")}
Use the read file tool to access these files as needed.`;
}
return [
{
name: `Skill: ${skill.name}`,
description: skill.description,
content,
uri: {
type: "file",
value: skill.path,
},
},
];
};