UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

189 lines (188 loc) 5 kB
/** * MCP Handlers 项目结构 & 知识图谱 * getTargets, getTargetFiles, getTargetMetadata, graphQuery, graphImpact, graphPath, graphStats */ import type { McpContext } from './types.js'; export interface TargetInfo { name: string; packageName?: string; packagePath?: string; type?: string; language?: string; framework?: string; path?: string; targetDir?: string; info?: { path?: string; sources?: string; dependencies?: unknown[]; }; metadata?: { dependencies?: unknown[]; }; [key: string]: unknown; } interface StructureArgs { targetName?: string; includeSummary?: boolean; includeContent?: boolean; contentMaxLines?: number; maxFiles?: number; [key: string]: unknown; } interface GraphArgs { nodeId?: string; nodeType?: string; direction?: string; relation?: string; fromId?: string; toId?: string; fromType?: string; toType?: string; maxDepth?: number; methodName?: string; [key: string]: unknown; } export declare function getTargets(ctx: McpContext, args?: StructureArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: { targets: 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; }; }>; export declare function getTargetFiles(ctx: McpContext, args: StructureArgs): Promise<{ 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; }; }>; export declare function getTargetMetadata(ctx: McpContext, args: StructureArgs): 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; }; }>; export declare function graphQuery(ctx: McpContext, args: GraphArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: any; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; export declare function graphImpact(ctx: McpContext, args: GraphArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: unknown; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; export declare function graphPath(ctx: McpContext, args: GraphArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: any; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * autosnippet_call_context handler * 查询方法的调用者、被调用者、影响半径 */ export declare function callContext(ctx: McpContext, args: GraphArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: unknown; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; export declare function graphStats(ctx: McpContext): Promise<{ success: boolean; errorCode: string | null; message: string; data: any; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; export {};