UNPKG

autosnippet

Version:

Extract code patterns into a knowledge base for AI coding assistants

78 lines (77 loc) 2.28 kB
/** * forced-summary.js — 强制退出后的摘要生成 * * 强制退出后的摘要生成独立模块, * 供 AgentRuntime.reactLoop() 在循环退出后调用。 * * 支持三种模式 (根据 source + tracker.pipelineType 判断): * - system + analyst: 输出 Markdown 分析报告 (供 Quality Gate 评估) * - system + bootstrap: 输出 dimensionDigest JSON (供维度编排消费) * - user: 输出人类可读的 Markdown 结构化总结 (前端 AI Chat 展示) * * @module forced-summary */ import type { AiProvider } from '#external/ai/AiProvider.js'; /** Known tool-call argument fields accessed in this module */ interface ToolCallArgs { title?: string; category?: string; filePath?: string; filePaths?: string[]; patterns?: string[]; query?: string; pattern?: string; className?: string; name?: string; protocolName?: string; rootClass?: string; directory?: string; [key: string]: unknown; } /** A recorded tool invocation */ interface ToolCallRecord { tool: string; args?: ToolCallArgs; params?: ToolCallArgs; result?: unknown; durationMs?: number; name?: string; } /** Token usage accumulator */ interface TokenUsage { input: number; output: number; } /** Options for {@link produceForcedSummary} */ interface ForcedSummaryOpts { aiProvider: AiProvider; source?: string; toolCalls?: ToolCallRecord[]; tracker?: { iteration?: number; pipelineType?: string; }; contextWindow?: unknown; prompt: string; tokenUsage?: TokenUsage; } /** * 生成强制摘要 * * @param opts.aiProvider LLM 提供商 * @param [opts.source] 'user' | 'system' * @param opts.toolCalls 工具调用记录 * @param [opts.tracker] ExplorationTracker 实例 * @param [opts.contextWindow] ContextWindow 实例 (用于避免超出 token) * @param opts.prompt 原始用户 prompt * @param [opts.tokenUsage] token 用量 (会被修改) * @returns }>} */ export declare function produceForcedSummary({ aiProvider, source, toolCalls, tracker, contextWindow, prompt, tokenUsage, }: ForcedSummaryOpts): Promise<{ reply: string; tokenUsage: { input: number; output: number; }; }>; export default produceForcedSummary;