autosnippet
Version:
Extract code patterns into a knowledge base for AI coding assistants
110 lines (109 loc) • 3.26 kB
TypeScript
/**
* 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 {};