UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

121 lines (120 loc) 3.73 kB
/** * rescan-internal.ts 内部 Agent 增量扫描 * * rescan-external.ts(为外部 IDE Agent 生成 Mission Briefing)不同, * 本文件由内置 AI pipeline(fillDimensionsV3)在服务端自动完成知识补齐。 * * 流程: * 1. snapshotRecipes 快照保留知识 * 2. rescanClean 清理衍生缓存 * 2.5 Recipe 文件 DB 一致性恢复 * 3. Phase 1-4 全量分析(文件收集→AST→依赖→Guard→维度) * 4. RecipeRelevanceAuditor 证据验证 + 快速衰退 * 5. 计算 gap 维度(需要补齐的维度) * 5.5 BootstrapSessionManager 缓存 Phase 结果供复用 * 6. 快速返回骨架 异步 fillDimensionsV3 填充 gap 维度 * 7. 前端通过 Socket.io 接收维度完成进度 * * @module handlers/rescan-internal */ import type { RescanInput } from '#shared/schemas/mcp-tools.js'; import type { McpContext } from './types.js'; interface RescanLogger { info(...args: unknown[]): void; warn(...args: unknown[]): void; error(...args: unknown[]): void; } interface RescanMcpContext extends McpContext { logger: RescanLogger; } interface RescanInternalArgs extends RescanInput { /** 跳过异步填充(测试用) */ skipAsyncFill?: boolean; } /** * rescanInternal 内部 Agent 增量扫描 * * 同步返回骨架(含 audit 摘要 + 异步会话 ID), * 后台通过 fillDimensionsV3 gap 维度执行 AI 补齐。 */ export declare function rescanInternal(ctx: RescanMcpContext, args: RescanInternalArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: { message: string; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; } | { success: boolean; errorCode: string | null; message: string; data: { rescan: { preservedRecipes: number; cleanedTables: number; cleanedFiles: number; reason: string | null; }; relevanceAudit: { totalAudited: number; healthy: number; watch: number; decay: number; severe: number; dead: number; proposalsCreated: number; immediateDeprecated: number; }; gapAnalysis: { totalDimensions: number; gapDimensions: number; skippedDimensions: string[]; gaps: { dimensionId: string; label: string | undefined; existing: number; gap: number; }[]; }; languageStats: Record<string, number>; primaryLanguage: string | null; guardSummary: { totalViolations: number; errors: number; warnings: number; } | null; astSummary: { classes: number; protocols: number; categories: number; } | null; codeEntityGraph: { totalEntities: number; totalEdges: number; } | null; callGraph: { entitiesUpserted: number; edgesCreated: number; } | null; panorama: Record<string, unknown> | null; bootstrapSession: Record<string, unknown> | null; sessionId: string | null; asyncFill: boolean; status: string; files: number; targets: number; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; export {};