@tanstack/ai-skills
Version:
Portable Agent Skills (SKILL.md) as a first-class chat() middleware for TanStack AI.
18 lines (17 loc) • 885 B
JavaScript
//#region src/catalog.ts
/** Sort skills into a stable, cache-friendly order. */
function sortSkills(skills) {
return [...skills].sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
}
function escapeXml(s) {
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
}
/** Render the skill catalog for a model family. Skills are sorted by name. */
function renderCatalog(skills, family) {
const sorted = sortSkills(skills);
if (family === "anthropic") return `<available_skills>\n${sorted.map((s) => ` <skill name="${escapeXml(s.name)}">${escapeXml(s.description)}</skill>`).join("\n")}\n</available_skills>`;
return `## Available skills\n\n${sorted.map((s) => `- **${s.name}**: ${s.description}`).join("\n")}`;
}
//#endregion
export { renderCatalog, sortSkills };
//# sourceMappingURL=catalog.js.map