@@ -2,7 +2,7 @@ import * as vscode from 'vscode';
22import * as path from 'path' ;
33import * as fs from 'fs' ;
44import { selectFiles } from './fileSelector' ;
5- import { generateCvb , applyCvbToWorkspace , generateTimestamp , Cvb , TCVB , mergeCvb } from './cvbManager' ;
5+ import { generateCvb , applyCvbToWorkspace , generateTimestamp , Cvb , TCVB , mergeCvb , compressCvb } from './cvbManager' ;
66import { queryCodeReDesign , generateFilenameFromRequest , analyzeCode , callDeepSeekFixApi , GetLastMessageBody } from './deepseekApi' ;
77import { setupCvbAsMarkdown } from './cvbMarkdownHandler' ;
88import { registerCvbContextMenu } from './siderBar' ;
@@ -66,7 +66,16 @@ export async function doUploadCommand(cvbFilePath: string, userPrompt: string, o
6666 i ++ ;
6767 }
6868
69- const cvbContent = fs . readFileSync ( cvbFilePath , 'utf-8' ) ;
69+ let cvbContent = fs . readFileSync ( cvbFilePath , 'utf-8' ) ;
70+ const CVB_QUERY_LENGTH_LIMIT = 1024 * 2 ;
71+ if ( cvbContent . length > CVB_QUERY_LENGTH_LIMIT ) {
72+ const inputCvb = new Cvb ( cvbContent ) ;
73+ if ( ! inputCvb . getMetaData ( "compressFrom" ) ) {
74+ currentOutputChannel ?. appendLine ( "输入数据过于巨大,先进行压缩预处理..." ) ;
75+ const compressedCvb = await compressCvb ( inputCvb , userPrompt ) ;
76+ cvbContent = compressedCvb . toString ( ) ;
77+ }
78+ }
7079
7180 let apiResponse = await queryCodeReDesign ( cvbContent , userPrompt , outputChannel , CurrentOperationController . signal ) ;
7281 let processSuccess = true ;
0 commit comments