autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
100 lines (99 loc) • 3.33 kB
TypeScript
/**
* MCP Handlers — Skills 加载与发现
*
* 为 MCP 外部 Agent 提供 Skills 访问能力,使其能按需获取领域操作指南。
* Skills 是 Agent 的知识增强文档,指导如何正确使用 AutoSnippet 工具。
*
* 设计原则:
* - Skills 是只读文档,不涉及 AI 调用,不需要 Gateway gating
* - 外部 Agent 应根据当前任务类型选择加载合适的 Skill
* - list_skills 返回摘要帮助 Agent 判断该加载哪个 Skill
*/
import type { McpContext } from './types.js';
/**
* 列出所有可用 Skills 及其摘要描述
*
* @returns JSON envelope
*/
export declare function listSkills(ctx?: McpContext | null): string;
/**
* 加载指定 Skill 的完整文档内容
*
* @param _ctx MCP context(未使用,保持签名一致)
* @param args { skillName: string, section?: string }
* @returns JSON envelope
*/
export declare function loadSkill(ctx: McpContext | null, args: {
skillName?: string;
section?: string;
}): string;
/**
* 创建项目级 Skill — 写入 {projectRoot}/AutoSnippet/skills/<name>/SKILL.md
* 创建后自动 regenerate 编辑器索引(.cursor/rules/autosnippet-skills.mdc)
*
* @param _ctx MCP context
* @param args { name, description, content, overwrite? }
* @returns JSON envelope
*/
interface CreateSkillArgs {
name?: string;
description?: string;
content?: string;
overwrite?: boolean;
createdBy?: string;
title?: string;
}
export declare function createSkill(ctx: McpContext | null, args: CreateSkillArgs): string;
/**
* 删除项目级 Skill — 移除 {projectRoot}/AutoSnippet/skills/<name>/ 整个目录
* 内置 Skill 不可删除。删除后自动 regenerate 编辑器索引。
*
* @param _ctx MCP context
* @param args { name: string }
* @returns JSON envelope
*/
export declare function deleteSkill(ctx: McpContext | null, args: {
name?: string;
}): string;
/**
* 更新项目级 Skill — 修改 description 和/或 content
* 内置 Skill 不可更新。更新后自动 regenerate 编辑器索引。
*
* @param _ctx MCP context
* @param args { name, description?, content? }
* @returns JSON envelope
*/
interface UpdateSkillArgs {
name?: string;
description?: string;
content?: string;
}
export declare function updateSkill(ctx: McpContext | null, args: UpdateSkillArgs): string;
/**
* 基于项目使用模式分析,推荐创建 Skill
*
* 分析维度:Guard 违规模式、Memory 偏好积累、Recipe 分布缺口、候选积压
* Agent 可根据推荐结果自行决定是否调用 createSkill 创建
*
* @param ctx MCP context(含 container)
* @returns JSON envelope
*/
export declare function suggestSkills(ctx: McpContext): Promise<string>;
/**
* 记录推荐反馈
*
* operation: 'feedback'
* @param args.recommendationId 推荐 ID
* @param args.action 'adopted' | 'dismissed' | 'expired' | 'viewed' | 'modified'
* @param args.reason 可选 — 忽略原因
* @param args.source 可选 — 推荐来源
* @param args.category 可选 — 推荐类别
*/
export declare function recordFeedback(ctx: McpContext, args: {
recommendationId?: string;
action?: string;
reason?: string;
source?: string;
category?: string;
}): Promise<string>;
export {};