autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
331 lines (330 loc) • 8.41 kB
TypeScript
/**
* lifecycle.js — 生命周期操作类工具 (10)
*
* 16. submit_knowledge 提交候选项
* 17. approve_candidate 批准候选
* 18. reject_candidate 驳回候选
* 19. publish_recipe 发布 Recipe
* 20. deprecate_recipe 弃用 Recipe
* 21. update_recipe 更新 Recipe
* 22. record_usage 记录使用
* 23. quality_score 质量评分
* 24. validate_candidate 候选校验
* 25. get_feedback_stats 反馈统计
*/
import { type ToolHandlerContext } from './_shared.js';
export interface SubmitKnowledgeParams {
content?: {
markdown?: string;
pattern?: string;
rationale?: string;
[key: string]: unknown;
};
title?: string;
description?: string;
tags?: string[];
trigger?: string;
kind?: string;
topicHint?: string;
whenClause?: string;
doClause?: string;
dontClause?: string;
coreCode?: string;
reasoning?: {
whyStandard?: string;
sources?: string[];
confidence?: number;
};
scope?: string;
complexity?: string;
headers?: string[];
knowledgeType?: string;
usageGuide?: string;
sourceFile?: string;
_category?: string;
/** 被替代的旧 Recipe ID(进化架构入口) */
supersedes?: string;
[key: string]: unknown;
}
export declare const submitCandidate: {
name: string;
description: string;
parameters: {
type: string;
properties: {
content: {
type: string;
description: string;
};
title: {
type: string;
description: string;
};
description: {
type: string;
description: string;
};
tags: {
type: string;
items: {
type: string;
};
description: string;
};
trigger: {
type: string;
description: string;
};
kind: {
type: string;
enum: string[];
description: string;
};
topicHint: {
type: string;
enum: string[];
description: string;
};
whenClause: {
type: string;
description: string;
};
doClause: {
type: string;
description: string;
};
dontClause: {
type: string;
description: string;
};
coreCode: {
type: string;
description: string;
};
reasoning: {
type: string;
description: string;
};
scope: {
type: string;
enum: string[];
description: string;
};
complexity: {
type: string;
enum: string[];
description: string;
};
headers: {
type: string;
items: {
type: string;
};
description: string;
};
knowledgeType: {
type: string;
description: string;
};
usageGuide: {
type: string;
description: string;
};
sourceFile: {
type: string;
description: string;
};
supersedes: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: SubmitKnowledgeParams, ctx: ToolHandlerContext) => Promise<Record<string, unknown>>;
};
export declare const approveCandidate: {
name: string;
description: string;
parameters: {
type: string;
properties: {
candidateId: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
candidateId: string;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const rejectCandidate: {
name: string;
description: string;
parameters: {
type: string;
properties: {
candidateId: {
type: string;
description: string;
};
reason: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
candidateId: string;
reason: string;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const publishRecipe: {
name: string;
description: string;
parameters: {
type: string;
properties: {
recipeId: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
recipeId: string;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const deprecateRecipe: {
name: string;
description: string;
parameters: {
type: string;
properties: {
recipeId: {
type: string;
description: string;
};
reason: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
recipeId: string;
reason: string;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const updateRecipe: {
name: string;
description: string;
parameters: {
type: string;
properties: {
recipeId: {
type: string;
description: string;
};
updates: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
recipeId: string;
updates: Record<string, unknown>;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const recordUsage: {
name: string;
description: string;
parameters: {
type: string;
properties: {
recipeId: {
type: string;
description: string;
};
type: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
recipeId: string;
type?: string;
}, ctx: ToolHandlerContext) => Promise<{
success: boolean;
recipeId: string;
type: string;
}>;
};
export declare const qualityScore: {
name: string;
description: string;
parameters: {
type: string;
properties: {
recipeId: {
type: string;
description: string;
};
recipe: {
type: string;
description: string;
};
};
};
handler: (params: {
recipeId?: string;
recipe?: Record<string, unknown>;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const validateCandidate: {
name: string;
description: string;
parameters: {
type: string;
properties: {
candidate: {
type: string;
description: string;
};
};
required: string[];
};
handler: (params: {
candidate: Record<string, unknown>;
}, ctx: ToolHandlerContext) => Promise<any>;
};
export declare const getFeedbackStats: {
name: string;
description: string;
parameters: {
type: string;
properties: {
recipeId: {
type: string;
description: string;
};
topN: {
type: string;
description: string;
};
};
};
handler: (params: {
recipeId?: string;
topN?: number;
}, ctx: ToolHandlerContext) => Promise<Record<string, unknown>>;
};