UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

553 lines (552 loc) 16 kB
/** * MCP 整合 Handler 参数路由层 * * 将整合后的工具(autosnippet_search / knowledge / structure / graph / guard / skill) * operation / mode 参数路由到已有 handler 实现。 * * 不包含业务逻辑,仅做参数解构 路由 转发。 * * autosnippet_bootstrap 已迁移到 bootstrap-external.js(外部 Agent 路径)。 */ import * as guardHandlers from './guard.js'; import * as structureHandlers from './structure.js'; import type { ConsolidatedGraphArgs, ConsolidatedGuardArgs, ConsolidatedKnowledgeArgs, ConsolidatedSearchArgs, ConsolidatedSkillArgs, ConsolidatedStructureArgs, McpContext } from './types.js'; /** * 统合搜索:根据 mode 参数路由到对应搜索 handler * auto (默认) search() * keyword keywordSearch() * semantic semanticSearch() * context contextSearch() */ export declare function consolidatedSearch(ctx: McpContext, args: ConsolidatedSearchArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: { metadata?: { responseTimeMs: number; totalResults: any; kindCounts: { rule: number; pattern: number; fact: number; }; } | undefined; degraded?: boolean | undefined; degradedReason?: string | undefined; query: string; mode: any; kind: string | undefined; totalResults: any; items: any; byKind: { rule: { kind?: string; }[]; pattern: { kind?: string; }[]; fact: { kind?: string; }[]; }; kindCounts: { rule: number; pattern: number; fact: number; }; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * 知识浏览:根据 operation 参数路由 * list (默认) listByKind() listRecipes() * get getRecipe() * insights recipeInsights() * confirm_usage confirmUsage() */ export declare function consolidatedKnowledge(ctx: McpContext, args: ConsolidatedKnowledgeArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: { count: any; total: any; items: any; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { id: string; title: string; description: string | undefined; trigger: string; kind: string | undefined; language: string | undefined; category: string | undefined; knowledgeType: string | undefined; complexity: string | undefined; tags: string[] | undefined; whenClause: string | undefined; doClause: string | undefined; dontClause: string | undefined; coreCode: string | undefined; content: { steps?: unknown[] | undefined; rationale?: string | undefined; markdown?: string | undefined; pattern?: string | undefined; } | undefined; headers: string[] | undefined; reasoning: { sources?: unknown[] | undefined; confidence?: number | undefined; whyStandard?: string | undefined; } | undefined; relations: Record<string, unknown[]> | undefined; constraints: { sideEffects?: unknown[] | undefined; guards?: unknown[] | undefined; } | undefined; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { id: any; title: any; trigger: any; kind: any; lifecycle: any; language: any; category: any; knowledgeType: any; quality: { overall: any; completeness: any; adaptation: any; documentation: any; }; stats: { adoptions: any; applications: any; guardHits: any; views: any; searchHits: any; }; content: { hasPattern: boolean; hasRationale: boolean; hasMarkdown: boolean; stepsCount: any; codeChangesCount: any; }; relations: Record<string, number>; constraints: Record<string, unknown[]>; tags: any; complexity: any; scope: any; createdBy: any; createdAt: any; updatedAt: any; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { recipeId: string; usageType: string; feedback: string | null; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * 项目结构:根据 operation 参数路由 * targets (默认) getTargets() * files getTargetFiles() * metadata getTargetMetadata() */ export declare function consolidatedStructure(ctx: McpContext, args: ConsolidatedStructureArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: Record<string, unknown> | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { targets: structureHandlers.TargetInfo[]; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { targets: { name: string; packageName: string | null; type: string; inferredRole: string; fileCount: number; languageStats: Record<string, number>; }[]; summary: { targetCount: number; totalFiles: number; languageStats: Record<string, number>; }; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { targetName: string; files: { name: string; path: string; relativePath: string; language: string; size: number; content?: string | null; totalLines?: number; truncated?: boolean; }[]; fileCount: number; totalAvailable: number; languageStats: Record<string, number>; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** 调用链上下文查询:直接转发到 structure.callContext */ export declare function consolidatedCallContext(ctx: McpContext, args: ConsolidatedStructureArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: unknown; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * 知识图谱:根据 operation 参数路由 * query graphQuery() * impact graphImpact() * path graphPath() * stats graphStats() */ export declare function consolidatedGraph(ctx: McpContext, args: ConsolidatedGraphArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: any; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * Guard 检查:按参数自动路由 * operation: 'reverse_audit' guardReverseAudit() (Recipe→Code 反向验证) * operation: 'coverage_matrix' guardCoverageMatrix() (模块覆盖率矩阵) * operation: 'compliance_report' guardComplianceReport() (3D 合规报告) * 无参数 guardReview() (自动 git diff 检测 + inline recipe) * files guardReview() (指定文件 + inline recipe) files string[] {path}[] * code guardCheck() (单文件内联检查) */ export declare function consolidatedGuard(ctx: McpContext, args: ConsolidatedGuardArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: { language: string; violations: never[]; summary: { total: number; errors: number; warnings: number; }; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { warnings?: "未能识别语言,部分语言相关规则可能未执行。建议提供 language 或 filePath 参数。"[] | undefined; language: string; violations: guardHandlers.GuardViolation[]; summary: { total: number; errors: number; warnings: number; }; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { passed: boolean; files: never[]; totalViolations: number; reviewRound: any; maxRoundsReached: boolean; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { passed: boolean; files: never[]; totalViolations: number; reviewRound: any; fileSource: string; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { uncertainSummary?: { total: number; byLayer: Record<string, number>; byReason: Record<string, number>; } | undefined; uncertainResults?: unknown[] | undefined; passed: boolean; reviewRound: any; fileSource: string; files: guardHandlers.ReviewFileResult[]; totalViolations: number; summary: { total: number; errors: number; warnings: number; filesChecked: number; }; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { totalRecipes: number; healthy: number; investigate: number; decay: number; drifts: { recipeId: string; title: string; recommendation: import("../../../service/guard/ReverseGuard.js").ReverseRecommendation; signals: import("../../../service/guard/ReverseGuard.js").PatternDriftSignal[]; }[]; allResults: { recipeId: string; title: string; recommendation: import("../../../service/guard/ReverseGuard.js").ReverseRecommendation; signalCount: number; }[]; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { overallCoverage: number; zeroModules: string[]; lowModules: string[]; modules: import("../../../service/guard/CoverageAnalyzer.js").ModuleCoverage[]; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { scores: { compliance: number; coverage: number; confidence: number; }; qualityGate: { status: string; score: number; thresholds: { maxErrors: number; maxWarnings: number; minScore: number; }; }; summary: { filesScanned: number; totalViolations: number; errors: number; warnings: number; infos: number; }; uncertainSummary: { total: number; byLayer: Record<string, number>; byReason: Record<string, number>; }; boundaries: { type: string; description: string; affectedRules: string[]; suggestedAction: string; }[]; topViolations: any[]; trend: { errorsChange: number; warningsChange: number; hasHistory: boolean; }; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * Skill 管理:根据 operation 参数路由 * list listSkills() * load loadSkill() * create createSkill() * update updateSkill() * delete deleteSkill() * suggest suggestSkills() */ export declare function consolidatedSkill(ctx: McpContext, args: ConsolidatedSkillArgs): Promise<string>; /** * 统一提交管线:单条与批量走同一代码路径。 * * 流程: * 1. 限流 * 2. V3 字段增强(MCP 特有预处理) * 3. RecipeProductionGateway.create() 统一管道 * 4. Bootstrap session 追踪 * 5. 返回统一结果 * * 设计原则: * - 不降级:缺字段不自动补全,要求 Agent 一次性生成完整数据 * - 不碎片化:优先增强已有 Recipe,而非总新建 * - 不重复提交:拒绝时不创建任何记录 * - 单条/批量完全一致的校验与融合逻辑 */ export declare function enhancedSubmitKnowledge(ctx: McpContext, args: Record<string, unknown>): Promise<{ success: boolean; errorCode: string | null; message: string; data: unknown; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>;