autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
56 lines (55 loc) • 1.78 kB
TypeScript
/**
* MCP Handler — autosnippet_evolve (批量 Recipe 进化决策)
*
* 双入口工具:
* - Rescan 模式: 每个维度内先 evolve 再 gap-fill,与内部 Agent Pipeline 一致
* - 独立模式: 用户通过提示词触发,验证已有 Recipe 的有效性
*
* 三种决策委托给 evolution-tools.ts 中已有的 handler 实现:
* - propose_evolution → ProposalRepository.create (观察窗口)
* - confirm_deprecation → RecipeLifecycleSupervisor.transition → deprecated (优先) / KnowledgeService.deprecate (回退)
* - skip → 不变更状态,skip(still_valid) 刷新 stats.lastVerifiedAt
*
* @module handlers/evolve-external
*/
import type { ServiceContainer } from '#inject/ServiceContainer.js';
import type { EvolveInput } from '#shared/schemas/mcp-tools.js';
/** MCP handler context */
/** MCP handler context */
interface McpContext {
container: ServiceContainer;
logger: {
info(msg: string, meta?: Record<string, unknown>): void;
warn(msg: string, meta?: Record<string, unknown>): void;
};
startedAt?: number;
[key: string]: unknown;
}
interface EvolveResult {
processed: number;
proposed: number;
deprecated: number;
skipped: number;
refreshed: number;
quotaChange: {
freed: number;
occupied: number;
};
errors: Array<{
recipeId: string;
error: string;
}>;
}
export declare function evolveExternal(ctx: McpContext, args: EvolveInput): Promise<{
success: boolean;
errorCode: string | null;
message: string;
data: EvolveResult | null;
meta: {
source?: string | undefined;
responseTimeMs?: number | undefined;
version: string;
tool?: string | undefined;
};
}>;
export {};