UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

110 lines (109 loc) 3.26 kB
/** * MCP Handlers — Cursor-Native Wiki 生成 * * - wikiPlan: 数据收集 + 主题发现 → 返回写作规划 * - wikiFinalize: Agent 写完所有文章后调用 → meta.json + 去重 + 验证 * * 设计理念: * 现有 WikiGenerator 的核心价值在于 **数据收集 + 主题发现**(AST、模块图、知识库)。 * 文章撰写由外部 Agent 完成(200K+ context),AutoSnippet 只做规划和元数据。 * bootstrap Phase 1-4 的分析缓存可被 wikiPlan 复用,避免重复计算。 * * @module handlers/wiki-external */ import type { McpContext } from './types.js'; /** wikiPlan 参数 */ interface WikiPlanArgs { language?: 'zh' | 'en'; sessionId?: string; [key: string]: unknown; } /** wikiFinalize 参数 */ interface WikiFinalizeArgs { articlesWritten?: string[]; [key: string]: unknown; } /** * 统一 Wiki 路由入口 (autosnippet_wiki) * * @param args.operation 'plan' | 'finalize' */ export declare function wikiRouter(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; }; }>; /** * 规划 Wiki 文档生成 (autosnippet_wiki operation=plan) * * 复用 WikiGenerator 的数据收集和主题发现逻辑(Phase 1-5), * 但不撰写文章,只返回规划清单和每个主题的数据包。 * * @param ctx { container, logger, startedAt } * @param args { language?: 'zh'|'en', sessionId?: string } */ export declare function wikiPlan(ctx: McpContext, args: WikiPlanArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: { wikiDir: string; absoluteWikiDir: string; topicCount: number; topics: { id: string; path: string; title: string; type: string; priority: number; writingGuide: string; dataBundle: Record<string, unknown>; }[]; writingGuidelines: { language: string; style: string; minChars: number; format: string[]; navigation: string; }; cacheHit: boolean; } | null; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; /** * 完成 Wiki 生成 (autosnippet_wiki_finalize) * * Agent 写完所有文章后调用。负责: * 1. 验证文件存在性 * 2. 去重检查(内容相似度) * 3. 写入 meta.json * 4. 同步 Cursor 端文档(可选) * * @param ctx { container, logger, startedAt } * @param args { articlesWritten: string[] } */ export declare function wikiFinalize(ctx: McpContext, args: WikiFinalizeArgs): Promise<{ success: boolean; errorCode: string | null; message: string; data: unknown; meta: { source?: string | undefined; responseTimeMs?: number | undefined; version: string; tool?: string | undefined; }; }>; export {};