genaicode 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/chat-gpt.js +1 -1
- package/dist/eval/data/current-prompt.d.ts +93 -0
- package/dist/eval/data/current-prompt.js +239 -29
- package/dist/eval/data/current-prompt.js.map +1 -1
- package/dist/eval/prompt-debug.test.js +20 -3
- package/dist/eval/prompt-debug.test.js.map +1 -1
- package/dist/main/codegen.d.ts +3 -1
- package/dist/main/codegen.js +12 -6
- package/dist/main/codegen.js.map +1 -1
- package/dist/main/ui/backend/api.js +32 -0
- package/dist/main/ui/backend/api.js.map +1 -1
- package/dist/main/ui/backend/service.d.ts +3 -0
- package/dist/main/ui/backend/service.js +34 -1
- package/dist/main/ui/backend/service.js.map +1 -1
- package/dist/main/ui/frontend/assets/index-qlaz_iM9.js +1014 -0
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/operations/create-file/create-file-def.js +3 -1
- package/dist/operations/create-file/create-file-def.js.map +1 -1
- package/dist/prompt/function-defs/codegen-summary.js +6 -6
- package/dist/prompt/function-defs/codegen-summary.js.map +1 -1
- package/dist/prompt/static-prompts.d.ts +1 -1
- package/dist/prompt/static-prompts.js +1 -1
- package/dist/prompt/static-prompts.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +11 -2
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +24 -8
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +1 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +2 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +8 -2
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-ensure-context.d.ts +1 -1
- package/dist/prompt/steps/step-ensure-context.js +29 -15
- package/dist/prompt/steps/step-ensure-context.js.map +1 -1
- package/dist/prompt/steps/step-ensure-context.test.js +94 -10
- package/dist/prompt/steps/step-ensure-context.test.js.map +1 -1
- package/package.json +2 -2
- package/dist/main/ui/frontend/assets/index-QOcNx5ac.js +0 -812
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<meta name="keywords" content="GenAIcode, AI, code generation, programming" />
|
|
8
8
|
<title>GenAIcode - AI-Powered Code Generation</title>
|
|
9
9
|
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-qlaz_iM9.js"></script>
|
|
11
11
|
<link rel="stylesheet" crossorigin href="/assets/index-S_ocA1xG.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body data-security-token="__SECURITY_TOKEN__">
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const createFileDef = {
|
|
5
5
|
name: 'createFile',
|
|
6
|
-
description:
|
|
6
|
+
description: `Create a new file with specified content. The file will be created inside of project folder structure.
|
|
7
|
+
- This tool should not be used of creation of image files
|
|
8
|
+
- Use this tool for file paths that are not yet present in the project (not added to any getSourceCode function call in the conversation context)`,
|
|
7
9
|
parameters: {
|
|
8
10
|
type: 'object',
|
|
9
11
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-file-def.js","sourceRoot":"","sources":["../../../src/operations/create-file/create-file-def.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,
|
|
1
|
+
{"version":3,"file":"create-file-def.js","sourceRoot":"","sources":["../../../src/operations/create-file/create-file-def.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE;;sJAEuI;IACpJ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8DAA8D;aAC5E;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,4DAA4D;aAC1E;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gEAAgE;aAC9E;SACF;QACD,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;KACrC;CACF,CAAC"}
|
|
@@ -23,19 +23,19 @@ export const getCodegenSummaryDef = () => ({
|
|
|
23
23
|
type: 'object',
|
|
24
24
|
description: 'An object representing a proposed update to a file, containing properties like the absolute file path, the update tool name, and other important properties.',
|
|
25
25
|
properties: {
|
|
26
|
-
filePath: {
|
|
27
|
-
type: 'string',
|
|
28
|
-
description: 'An absolute path of the project file that will be updated. This must be an absolute file path.',
|
|
29
|
-
},
|
|
30
26
|
prompt: {
|
|
31
27
|
type: 'string',
|
|
32
28
|
description: 'A detailed prompt that will be passed to the model request together with the tool request. It summarizes the planned changes for this particular file.',
|
|
33
29
|
},
|
|
30
|
+
filePath: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'An absolute path of the project file that will be updated. This must be an absolute file path.',
|
|
33
|
+
},
|
|
34
34
|
updateToolName: {
|
|
35
35
|
type: 'string',
|
|
36
36
|
enum: [
|
|
37
|
-
'createFile',
|
|
38
37
|
'updateFile',
|
|
38
|
+
'createFile',
|
|
39
39
|
'patchFile',
|
|
40
40
|
'deleteFile',
|
|
41
41
|
'createDirectory',
|
|
@@ -65,7 +65,7 @@ export const getCodegenSummaryDef = () => ({
|
|
|
65
65
|
items: { type: 'string' },
|
|
66
66
|
},
|
|
67
67
|
},
|
|
68
|
-
required: ['
|
|
68
|
+
required: ['prompt', 'filePath', 'updateToolName'],
|
|
69
69
|
},
|
|
70
70
|
},
|
|
71
71
|
contextPaths: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen-summary.js","sourceRoot":"","sources":["../../../src/prompt/function-defs/codegen-summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAgB,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,+DAA+D;QAC/D,mHAAmH;QACnH,oGAAoG;QACpG,0GAA0G;QAC1G,kGAAkG;IACpG,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0FAA0F;aACxG;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,sFAAsF;gBACnG,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8JAA8J;oBAChK,UAAU,EAAE;wBACV,
|
|
1
|
+
{"version":3,"file":"codegen-summary.js","sourceRoot":"","sources":["../../../src/prompt/function-defs/codegen-summary.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAgB,EAAE,CAAC,CAAC;IACtD,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACT,+DAA+D;QAC/D,mHAAmH;QACnH,oGAAoG;QACpG,0GAA0G;QAC1G,kGAAkG;IACpG,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,0FAA0F;aACxG;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,sFAAsF;gBACnG,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,8JAA8J;oBAChK,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,wJAAwJ;yBAC3J;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,gGAAgG;yBACnG;wBACD,cAAc,EAAE;4BACd,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE;gCACJ,YAAY;gCACZ,YAAY;gCACZ,WAAW;gCACX,YAAY;gCACZ,iBAAiB;gCACjB,UAAU;gCACV,eAAe;gCACf,cAAc;gCACd,YAAY;gCACZ,aAAa;gCACb,uBAAuB;gCACvB,GAAG,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;6BACpE;4BACD,WAAW,EAAE,+DAA+D;yBAC7E;wBACD,WAAW,EAAE;4BACX,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,oIAAoI;4BACtI,OAAO,EAAE,GAAG;4BACZ,OAAO,EAAE,GAAG;yBACb;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,SAAS;4BACf,WAAW,EACT,4JAA4J;yBAC/J;wBACD,kBAAkB,EAAE;4BAClB,IAAI,EAAE,OAAO;4BACb,WAAW,EACT,8JAA8J;4BAChK,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC1B;qBACF;oBACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,gBAAgB,CAAC;iBACnD;aACF;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,gLAAgL;gBAClL,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;iBACf;aACF;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC;KACzD;CACF,CAAC,CAAC"}
|
|
@@ -11,6 +11,6 @@ export declare const SOURCE_CODE_RESPONSE = "Sure, here is the application sourc
|
|
|
11
11
|
/** Assistant's acknowledgment after receiving source code */
|
|
12
12
|
export declare const READY_TO_ASSIST = "Thank you, I'm ready to assist you with your request.";
|
|
13
13
|
/** Assistant's response when generating code */
|
|
14
|
-
export declare const CODEGEN_SUMMARY_PROMPT = "Planning phase completed.
|
|
14
|
+
export declare const CODEGEN_SUMMARY_PROMPT = "Planning phase completed. Would you like to proceed with the planned changes?";
|
|
15
15
|
/** Template for partial prompt when requesting changes for a specific file */
|
|
16
16
|
export declare const getPartialPromptTemplate: (path: string) => string;
|
|
@@ -16,7 +16,7 @@ export const SOURCE_CODE_RESPONSE = 'Sure, here is the application source code,
|
|
|
16
16
|
/** Assistant's acknowledgment after receiving source code */
|
|
17
17
|
export const READY_TO_ASSIST = "Thank you, I'm ready to assist you with your request.";
|
|
18
18
|
/** Assistant's response when generating code */
|
|
19
|
-
export const CODEGEN_SUMMARY_PROMPT = 'Planning phase completed.
|
|
19
|
+
export const CODEGEN_SUMMARY_PROMPT = 'Planning phase completed. Would you like to proceed with the planned changes?';
|
|
20
20
|
/** Template for partial prompt when requesting changes for a specific file */
|
|
21
21
|
export const getPartialPromptTemplate = (path) => `Please now generate update for the \`${path}\` file using appropriate tools according to code generation summary.`;
|
|
22
22
|
//# sourceMappingURL=static-prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-prompts.js","sourceRoot":"","sources":["../../src/prompt/static-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEpD,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;aAKtB,CAAC;AAEd,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,2EAA2E,CAAC;AAEhH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,uDAAuD,CAAC;AAEvF,gDAAgD;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,
|
|
1
|
+
{"version":3,"file":"static-prompts.js","sourceRoot":"","sources":["../../src/prompt/static-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEpD,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;aAKtB,CAAC;AAEd,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,2EAA2E,CAAC;AAEhH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,uDAAuD,CAAC;AAEvF,gDAAgD;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,+EAA+E,CAAC;AAEtH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAY,EAAU,EAAE,CAC/D,wCAAwC,IAAI,uEAAuE,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { putAssistantMessage, putUserMessage } from '../../../../main/common/content-bus.js';
|
|
2
2
|
import { askUserForConfirmationWithAnswer } from '../../../../main/common/user-actions.js';
|
|
3
3
|
import { getFunctionDefs } from '../../../function-calling.js';
|
|
4
|
+
import { CODEGEN_SUMMARY_PROMPT } from '../../../static-prompts.js';
|
|
4
5
|
import { executeStepCodegenPlanning } from '../../step-codegen-planning.js';
|
|
5
6
|
import { executeStepCodegenSummary } from '../../step-codegen-summary.js';
|
|
6
7
|
import { StepResult } from '../../steps-types.js';
|
|
@@ -22,7 +23,7 @@ export async function handleCodeGeneration({ generateContentFn, generateImageFn,
|
|
|
22
23
|
{
|
|
23
24
|
assistant: {
|
|
24
25
|
type: 'assistant',
|
|
25
|
-
text:
|
|
26
|
+
text: CODEGEN_SUMMARY_PROMPT,
|
|
26
27
|
functionCalls: [],
|
|
27
28
|
},
|
|
28
29
|
user: {
|
|
@@ -34,7 +35,15 @@ export async function handleCodeGeneration({ generateContentFn, generateImageFn,
|
|
|
34
35
|
};
|
|
35
36
|
}
|
|
36
37
|
putAssistantMessage('Planning phase completed. Would you like to proceed with the planned changes?');
|
|
37
|
-
putUserMessage('Accept planning and continue');
|
|
38
|
+
putUserMessage(planningConfirmation.answer || 'Accept planning and continue');
|
|
39
|
+
// Add user's planning confirmation answer to prompt history
|
|
40
|
+
prompt.push({
|
|
41
|
+
type: 'assistant',
|
|
42
|
+
text: CODEGEN_SUMMARY_PROMPT,
|
|
43
|
+
}, {
|
|
44
|
+
type: 'user',
|
|
45
|
+
text: planningConfirmation.answer || 'Accept planning and continue',
|
|
46
|
+
});
|
|
38
47
|
// Execute the codegen summary step
|
|
39
48
|
const result = await executeStepCodegenSummary(generateContentFn, prompt, getFunctionDefs(), options, waitIfPaused, generateImageFn);
|
|
40
49
|
const confirmed = await askUserForConfirmationWithAnswer('Code changes are generated, now what?', 'Apply code changes', 'Continue conversation', true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,OAAO,GACY;IACnB,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5F,IAAI,cAAc,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,oBAAoB,GAAG,MAAM,gCAAgC,CACjE,+EAA+E,EAC/E,8BAA8B,EAC9B,4CAA4C,EAC5C,IAAI,CACL,CAAC;IAEF,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;QACpC,qDAAqD;QACrD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL;oBACE,SAAS,EAAE;wBACT,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC7F,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,OAAO,GACY;IACnB,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5F,IAAI,cAAc,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,oBAAoB,GAAG,MAAM,gCAAgC,CACjE,+EAA+E,EAC/E,8BAA8B,EAC9B,4CAA4C,EAC5C,IAAI,CACL,CAAC;IAEF,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,CAAC;QACpC,qDAAqD;QACrD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL;oBACE,SAAS,EAAE;wBACT,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,sBAAsB;wBAC5B,aAAa,EAAE,EAAE;qBAClB;oBACD,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oBAAoB,CAAC,MAAM,IAAI,+CAA+C;qBACrF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,mBAAmB,CAAC,+EAA+E,CAAC,CAAC;IACrG,cAAc,CAAC,oBAAoB,CAAC,MAAM,IAAI,8BAA8B,CAAC,CAAC;IAE9E,4DAA4D;IAC5D,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,sBAAsB;KAC7B,EACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,oBAAoB,CAAC,MAAM,IAAI,8BAA8B;KACpE,CACF,CAAC;IAEF,mCAAmC;IACnC,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,iBAAiB,EACjB,MAAM,EACN,eAAe,EAAE,EACjB,OAAO,EACP,YAAY,EACZ,eAAe,CAChB,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,gCAAgC,CACtD,uCAAuC,EACvC,oBAAoB,EACpB,uBAAuB,EACvB,IAAI,CACL,CAAC;IAEF,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,IAAI;QACtC,UAAU,EAAE,MAAM;QAClB,KAAK,EAAE;YACL;gBACE,SAAS,EAAE;oBACT,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,uCAAuC;iBAC9C;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS,CAAC,MAAM,IAAI,qBAAqB;iBAChD;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getSourceFiles, refreshFiles } from '../../../../files/find-files.js';
|
|
2
2
|
import { getSourceCode } from '../../../../files/read-files.js';
|
|
3
3
|
import { getSourceCodeTree } from '../../../../files/source-code-tree.js';
|
|
4
|
+
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
4
5
|
import { getFunctionDefs } from '../../../function-calling.js';
|
|
5
6
|
/**
|
|
6
7
|
* Checks if a file's content is already provided in the conversation history
|
|
@@ -21,7 +22,10 @@ function isFileContentAlreadyProvided(filePath, prompt) {
|
|
|
21
22
|
const sourceCodeTree = JSON.parse(response.content);
|
|
22
23
|
const dirPath = filePath.substring(0, filePath.lastIndexOf('/'));
|
|
23
24
|
const fileName = filePath.substring(filePath.lastIndexOf('/') + 1);
|
|
24
|
-
return (sourceCodeTree[dirPath] &&
|
|
25
|
+
return (sourceCodeTree[dirPath] &&
|
|
26
|
+
sourceCodeTree[dirPath][fileName] &&
|
|
27
|
+
'content' in sourceCodeTree[dirPath][fileName] &&
|
|
28
|
+
sourceCodeTree[dirPath][fileName].content !== null);
|
|
25
29
|
}
|
|
26
30
|
catch (error) {
|
|
27
31
|
console.warn('Error parsing getSourceCode response:', error);
|
|
@@ -39,6 +43,7 @@ export async function handleRequestFilesContent({ askQuestionCall, options, prom
|
|
|
39
43
|
};
|
|
40
44
|
}
|
|
41
45
|
let requestedFiles = requestFilesContentCall.args?.filePaths ?? [];
|
|
46
|
+
putSystemMessage('Requesting files content', requestFilesContentCall.args);
|
|
42
47
|
// Check which files are already provided in the conversation history
|
|
43
48
|
const alreadyProvidedFiles = requestedFiles.filter((file) => isFileContentAlreadyProvided(file, prompt));
|
|
44
49
|
if (alreadyProvidedFiles.length === requestedFiles.length) {
|
|
@@ -51,6 +56,7 @@ export async function handleRequestFilesContent({ askQuestionCall, options, prom
|
|
|
51
56
|
const user = {
|
|
52
57
|
type: 'user',
|
|
53
58
|
text: 'The requested file contents are already provided in the conversation history.',
|
|
59
|
+
data: { requestedFiles },
|
|
54
60
|
functionResponses: [
|
|
55
61
|
{
|
|
56
62
|
name: 'requestFilesContent',
|
|
@@ -68,7 +74,9 @@ export async function handleRequestFilesContent({ askQuestionCall, options, prom
|
|
|
68
74
|
refreshFiles();
|
|
69
75
|
let { legitimateFiles, illegitimateFiles } = categorizeLegitimateFiles(requestedFiles);
|
|
70
76
|
if (illegitimateFiles.length > 0) {
|
|
71
|
-
requestFilesContentCall = await generateRequestFilesContentCall(generateContentFn, prompt, askQuestionCall, options,
|
|
77
|
+
requestFilesContentCall = await generateRequestFilesContentCall(generateContentFn, prompt, askQuestionCall, options,
|
|
78
|
+
// use non cheap mode, as maybe the cheap mode didn't provide correct files
|
|
79
|
+
false);
|
|
72
80
|
if (!requestFilesContentCall) {
|
|
73
81
|
return {
|
|
74
82
|
breakLoop: true,
|
|
@@ -92,16 +100,24 @@ export async function handleRequestFilesContent({ askQuestionCall, options, prom
|
|
|
92
100
|
const sourceCode = getSourceCodeTree(getSourceCode({ filterPaths: legitimateFiles, forceAll: true, ignoreImportantFiles: true }, options));
|
|
93
101
|
const user = {
|
|
94
102
|
type: 'user',
|
|
95
|
-
text:
|
|
96
|
-
? `Some files
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
text: (alreadyProvidedFiles.length > 0
|
|
104
|
+
? `Some files were already provided in the conversation history:
|
|
105
|
+
${alreadyProvidedFiles.map((path) => `- ${path}`).join('\n')}
|
|
106
|
+
|
|
107
|
+
Providing content for the remaining files:
|
|
108
|
+
${requestedFiles.map((path) => `- ${path}`).join('\n')}`
|
|
109
|
+
: `All requested file contents have been provided:
|
|
110
|
+
${requestedFiles.map((path) => `- ${path}`).join('\n')}`) +
|
|
111
|
+
(illegitimateFiles.length > 0
|
|
112
|
+
? `\n\nSome files are not legitimate and their content cannot be provided:
|
|
113
|
+
${illegitimateFiles.map((path) => `- ${path}`).join('\n')}`
|
|
114
|
+
: ''),
|
|
115
|
+
data: { legitimateFiles, illegitimateFiles },
|
|
100
116
|
functionResponses: [
|
|
101
117
|
{
|
|
102
118
|
name: 'requestFilesContent',
|
|
103
119
|
call_id: requestFilesContentCall.id,
|
|
104
|
-
content: JSON.stringify({ filePaths:
|
|
120
|
+
content: JSON.stringify({ filePaths: legitimateFiles }),
|
|
105
121
|
},
|
|
106
122
|
{
|
|
107
123
|
name: 'getSourceCode',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-files-content.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/request-files-content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,QAAgB,EAAE,MAAoB;IAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnE,OAAO,CACL,cAAc,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"request-files-content.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/request-files-content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAU/D;;;;;GAKG;AACH,SAAS,4BAA4B,CAAC,QAAgB,EAAE,MAAoB;IAC1E,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACpD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9C,IAAI,QAAQ,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC3D,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEnE,OAAO,CACL,cAAc,CAAC,OAAO,CAAC;oBACvB,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;oBACjC,SAAS,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;oBAC9C,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,KAAK,IAAI,CACnD,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,EAC9C,eAAe,EACf,OAAO,EACP,MAAM,EACN,iBAAiB,GACE;IACnB,IAAI,uBAAuB,GAAG,MAAM,+BAA+B,CACjE,iBAAiB,EACjB,MAAM,EACN,eAAe,EACf,OAAO,EACP,KAAK,CACN,CAAC;IAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,IAAI,cAAc,GAAG,uBAAuB,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAEnE,gBAAgB,CAAC,0BAA0B,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE3E,qEAAqE;IACrE,MAAM,oBAAoB,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzG,IAAI,oBAAoB,CAAC,MAAM,KAAK,cAAc,CAAC,MAAM,EAAE,CAAC;QAC1D,2CAA2C;QAC3C,MAAM,SAAS,GAAkB;YAC/B,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;YACzC,aAAa,EAAE,CAAC,uBAAuB,CAAC;SACzC,CAAC;QAEF,MAAM,IAAI,GAAa;YACrB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,+EAA+E;YACrF,IAAI,EAAE,EAAE,cAAc,EAAE;YACxB,iBAAiB,EAAE;gBACjB;oBACE,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,uBAAuB,CAAC,EAAE;oBACnC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;iBACvD;aACF;YACD,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC5D,CAAC;IAED,oCAAoC;IACpC,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,4BAA4B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAE9F,4EAA4E;IAC5E,YAAY,EAAE,CAAC;IAEf,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;IAEvF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,uBAAuB,GAAG,MAAM,+BAA+B,CAC7D,iBAAiB,EACjB,MAAM,EACN,eAAe,EACf,OAAO;QACP,2EAA2E;QAC3E,KAAK,CACN,CAAC;QAEF,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,EAAE;aACV,CAAC;QACJ,CAAC;QAED,cAAc,GAAG,uBAAuB,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;QAC/D,MAAM,WAAW,GAAG,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAC9D,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;QAC9C,iBAAiB,GAAG,WAAW,CAAC,iBAAiB,CAAC;IACpD,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,eAAe,CAAC,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAC9E,MAAM,SAAS,GAAkB;QAC/B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;QACzC,aAAa,EAAE;YACb,uBAAuB;YACvB,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE;SAClF;KACF,CAAC;IAEF,MAAM,UAAU,GAAG,iBAAiB,CAClC,aAAa,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,OAAO,CAAC,CACrG,CAAC;IACF,MAAM,IAAI,GAAa;QACrB,IAAI,EAAE,MAAM;QACZ,IAAI,EACF,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC;YAC9B,CAAC,CAAC;EACR,oBAAoB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG1D,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAChD,CAAC,CAAC;EACR,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC;gBAC3B,CAAC,CAAC;EACR,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;QACT,IAAI,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE;QAC5C,iBAAiB,EAAE;YACjB;gBACE,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,uBAAuB,CAAC,EAAE;gBACnC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;aACxD;YACD;gBACE,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;aACpC;SACF;QACD,KAAK,EAAE,IAAI;KACZ,CAAC;IAEF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,KAAK,UAAU,+BAA+B,CAC5C,iBAA0C,EAC1C,MAAoB,EACpB,eAAgC,EAChC,OAAuB,EACvB,KAAc;IAEd,MAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,iBAAiB,CACxD;QACE,GAAG,MAAM;QACT;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;SAC1C;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,0CAA0C;SACjD;KACF,EACD,eAAe,EAAE,EACjB,qBAAqB,EACrB,GAAG,EACH,KAAK,EACL,OAAO,CACR,CAAwD,CAAC;IAE1D,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,SAAS,yBAAyB,CAAC,cAAwB;IAIzD,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,MAAM,iBAAiB,GAAa,EAAE,CAAC;IAEvC,cAAc,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAClC,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,CAAC;AAChD,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAgB;IAC5C,OAAO,cAAc,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -36,7 +36,8 @@ export async function executeStepAskQuestion(generateContentFn, generateImageFn,
|
|
|
36
36
|
waitIfPaused,
|
|
37
37
|
});
|
|
38
38
|
// This is important to display the content to the user interface (ui or interactive cli)
|
|
39
|
-
|
|
39
|
+
const lastItem = result.items.slice(-1)[0];
|
|
40
|
+
putUserMessage(lastItem.user.text, lastItem.user.data);
|
|
40
41
|
prompt.push(...result.items.map(({ assistant, user }) => [assistant, user]).flat());
|
|
41
42
|
if (result.executeCodegen) {
|
|
42
43
|
result = await getActionHandler('codeGeneration')({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-ask-question.js","sourceRoot":"","sources":["../../../../src/prompt/steps/step-ask-question/step-ask-question.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AAE7E,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8CAA8C,CAAC;AAC1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,iBAA0C,EAC1C,eAAsC,EACtC,MAAoB,EACpB,YAA2B,EAC3B,YAAiC,EACjC,WAAmB,EACnB,OAAuB;IAEvB,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;YAEhH,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM;YACR,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;gBAClC,mBAAmB,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC;YAC1E,CAAC;YAED,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,EAAE,UAAU,CAAC;YACpD,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,aAAa,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;gBACnD,IAAI,MAAM,GAAG,MAAM,aAAa,CAAC;oBAC/B,eAAe;oBACf,MAAM;oBACN,OAAO;oBACP,iBAAiB;oBACjB,eAAe;oBACf,YAAY;iBACb,CAAC,CAAC;gBAEH,yFAAyF;gBACzF,
|
|
1
|
+
{"version":3,"file":"step-ask-question.js","sourceRoot":"","sources":["../../../../src/prompt/steps/step-ask-question/step-ask-question.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { getFunctionDefs } from '../function-calling.js';
|
|
|
2
2
|
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
3
3
|
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
4
4
|
import { StepResult } from './steps-types.js';
|
|
5
|
-
import {
|
|
5
|
+
import { executeStepEnsureContext } from './step-ensure-context.js';
|
|
6
6
|
export const PLANNING_PROMPT = `Please analyze the conversation so far and help plan the implementation:
|
|
7
7
|
|
|
8
8
|
1. Review the conversation history and requirements
|
|
@@ -45,13 +45,19 @@ export async function executeStepCodegenPlanning(generateContentFn, prompt, opti
|
|
|
45
45
|
planningResult = await validateAndRecoverSingleResult(planningRequest, planningResult, generateContentFn);
|
|
46
46
|
const codegenPlanningRequest = planningResult.find((call) => call.name === 'codegenPlanning');
|
|
47
47
|
if (codegenPlanningRequest) {
|
|
48
|
+
putSystemMessage('Planning phase completed, ensuring context completeness...');
|
|
49
|
+
// Ensure all necessary files are in context
|
|
50
|
+
const contextResult = await executeStepEnsureContext(prompt, codegenPlanningRequest, options);
|
|
51
|
+
if (contextResult === StepResult.BREAK) {
|
|
52
|
+
putSystemMessage('Failed to ensure context completeness during planning phase');
|
|
53
|
+
return StepResult.BREAK;
|
|
54
|
+
}
|
|
48
55
|
putSystemMessage('Planning phase completed successfully', codegenPlanningRequest);
|
|
49
56
|
// Store the planning response in conversation history
|
|
50
57
|
prompt.push({ type: 'assistant', functionCalls: planningResult });
|
|
51
58
|
prompt.push({
|
|
52
59
|
type: 'user',
|
|
53
60
|
functionResponses: planningResult.map((call) => ({ name: call.name, call_id: call.id })),
|
|
54
|
-
text: CODEGEN_SUMMARY_PROMPT,
|
|
55
61
|
cache: true,
|
|
56
62
|
});
|
|
57
63
|
return StepResult.CONTINUE;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-codegen-planning.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-codegen-planning.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"step-codegen-planning.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-codegen-planning.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,4 +12,4 @@ export declare function executeStepEnsureContext(prompt: {
|
|
|
12
12
|
content?: string;
|
|
13
13
|
}[];
|
|
14
14
|
functionCalls?: FunctionCall[];
|
|
15
|
-
}[],
|
|
15
|
+
}[], functionCall: FunctionCall, options: CodegenOptions): Promise<StepResult>;
|
|
@@ -7,11 +7,11 @@ import { getSourceCodeTree } from '../../files/source-code-tree.js';
|
|
|
7
7
|
* Executes the context completeness check step.
|
|
8
8
|
* Ensures all necessary files are included in the conversation context.
|
|
9
9
|
*/
|
|
10
|
-
export async function executeStepEnsureContext(prompt,
|
|
10
|
+
export async function executeStepEnsureContext(prompt, functionCall, options) {
|
|
11
11
|
try {
|
|
12
12
|
// Extract all required paths
|
|
13
|
-
const requiredPaths = extractRequiredPaths(
|
|
14
|
-
if (requiredPaths.length === 0) {
|
|
13
|
+
const requiredPaths = extractRequiredPaths(functionCall);
|
|
14
|
+
if (!requiredPaths || requiredPaths.length === 0) {
|
|
15
15
|
putSystemMessage('No paths to ensure in context.');
|
|
16
16
|
return StepResult.CONTINUE;
|
|
17
17
|
}
|
|
@@ -25,7 +25,7 @@ export async function executeStepEnsureContext(prompt, codegenSummaryCall, optio
|
|
|
25
25
|
}
|
|
26
26
|
// Get source code for missing paths
|
|
27
27
|
putSystemMessage(`Ensuring context completeness. Adding ${missingPaths.length} missing files.`, { missingPaths });
|
|
28
|
-
const sourceCode = getSourceCode({ filterPaths: missingPaths }, options);
|
|
28
|
+
const sourceCode = getSourceCode({ filterPaths: missingPaths, forceAll: true, ignoreImportantFiles: true }, options);
|
|
29
29
|
// Append getSourceCode function call/response to the prompt
|
|
30
30
|
prompt.push({
|
|
31
31
|
type: 'assistant',
|
|
@@ -56,20 +56,34 @@ export async function executeStepEnsureContext(prompt, codegenSummaryCall, optio
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
/**
|
|
59
|
-
* Extract all required file paths from
|
|
59
|
+
* Extract all required file paths from function call using flexible extraction strategies
|
|
60
60
|
*/
|
|
61
|
-
function extractRequiredPaths(
|
|
62
|
-
|
|
63
|
-
|
|
61
|
+
function extractRequiredPaths(functionCall) {
|
|
62
|
+
const paths = [];
|
|
63
|
+
// Extract paths from function call arguments
|
|
64
|
+
if (functionCall.args) {
|
|
65
|
+
// Handle codegenSummary specific structure (backward compatibility)
|
|
66
|
+
if (functionCall.name === 'codegenSummary') {
|
|
67
|
+
if (Array.isArray(functionCall.args.fileUpdates)) {
|
|
68
|
+
paths.push(...functionCall.args.fileUpdates
|
|
69
|
+
.filter((update) => typeof update === 'object' && update !== null)
|
|
70
|
+
.map((update) => update.filePath));
|
|
71
|
+
}
|
|
72
|
+
if (Array.isArray(functionCall.args.contextPaths)) {
|
|
73
|
+
paths.push(...functionCall.args.contextPaths.filter((path) => typeof path === 'string'));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (functionCall.name === 'codegenPlanning') {
|
|
77
|
+
if (Array.isArray(functionCall.args.affectedFiles)) {
|
|
78
|
+
paths.push(...functionCall.args.affectedFiles.map((file) => [file.filePath, ...(file.dependencies ?? [])]).flat());
|
|
79
|
+
}
|
|
80
|
+
}
|
|
64
81
|
}
|
|
65
|
-
//
|
|
66
|
-
const fileUpdatePaths = Array.isArray(codegenSummaryCall.args.fileUpdates)
|
|
67
|
-
? codegenSummaryCall.args.fileUpdates.map((update) => update.filePath)
|
|
68
|
-
: [];
|
|
69
|
-
const contextPaths = codegenSummaryCall.args.contextPaths;
|
|
82
|
+
// Add important context paths
|
|
70
83
|
const importantPaths = importantContext.files ?? [];
|
|
71
|
-
|
|
72
|
-
|
|
84
|
+
paths.push(...importantPaths);
|
|
85
|
+
// Deduplicate and filter out empty/invalid paths
|
|
86
|
+
return Array.from(new Set(paths)).filter((path) => typeof path === 'string' && path.length > 0);
|
|
73
87
|
}
|
|
74
88
|
/**
|
|
75
89
|
* Get paths that are already present in the conversation context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-ensure-context.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ensure-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAEpE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAoH,EACpH,
|
|
1
|
+
{"version":3,"file":"step-ensure-context.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ensure-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -76,7 +76,100 @@ describe('executeStepEnsureContext', () => {
|
|
|
76
76
|
const prompt = [];
|
|
77
77
|
const result = await executeStepEnsureContext(prompt, mockCodegenSummary, mockOptions);
|
|
78
78
|
expect(result).toBe(StepResult.CONTINUE);
|
|
79
|
-
expect(putSystemMessage).toHaveBeenCalledWith(
|
|
79
|
+
expect(putSystemMessage).toHaveBeenCalledWith('No paths to ensure in context.');
|
|
80
|
+
expect(getSourceCode).not.toHaveBeenCalled();
|
|
81
|
+
});
|
|
82
|
+
it('should handle missing args in codegenSummary', async () => {
|
|
83
|
+
importantContext.files = [];
|
|
84
|
+
const mockCodegenSummary = {
|
|
85
|
+
name: 'codegenSummary',
|
|
86
|
+
args: undefined,
|
|
87
|
+
};
|
|
88
|
+
const prompt = [];
|
|
89
|
+
const result = await executeStepEnsureContext(prompt, mockCodegenSummary, mockOptions);
|
|
90
|
+
expect(result).toBe(StepResult.CONTINUE);
|
|
91
|
+
expect(putSystemMessage).toHaveBeenCalledWith('No paths to ensure in context.');
|
|
92
|
+
expect(getSourceCode).not.toHaveBeenCalled();
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
describe('Path extraction from codegenPlanning', () => {
|
|
96
|
+
it('should extract paths from affectedFiles including dependencies', async () => {
|
|
97
|
+
const mockCodegenPlanning = {
|
|
98
|
+
name: 'codegenPlanning',
|
|
99
|
+
args: {
|
|
100
|
+
affectedFiles: [
|
|
101
|
+
{
|
|
102
|
+
filePath: '/test/main.ts',
|
|
103
|
+
dependencies: ['/test/util1.ts', '/test/util2.ts'],
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
filePath: '/test/component.ts',
|
|
107
|
+
dependencies: ['/test/shared.ts'],
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
vi.mocked(getSourceCode).mockReturnValue({
|
|
113
|
+
'/test/main.ts': { content: 'main content' },
|
|
114
|
+
'/test/util1.ts': { content: 'util1 content' },
|
|
115
|
+
'/test/util2.ts': { content: 'util2 content' },
|
|
116
|
+
'/test/component.ts': { content: 'component content' },
|
|
117
|
+
'/test/shared.ts': { content: 'shared content' },
|
|
118
|
+
'/test/important.ts': { content: 'important content' },
|
|
119
|
+
});
|
|
120
|
+
const prompt = [];
|
|
121
|
+
const result = await executeStepEnsureContext(prompt, mockCodegenPlanning, mockOptions);
|
|
122
|
+
expect(result).toBe(StepResult.CONTINUE);
|
|
123
|
+
expect(getSourceCode).toHaveBeenCalledWith(expect.objectContaining({
|
|
124
|
+
filterPaths: expect.arrayContaining([
|
|
125
|
+
'/test/main.ts',
|
|
126
|
+
'/test/util1.ts',
|
|
127
|
+
'/test/util2.ts',
|
|
128
|
+
'/test/component.ts',
|
|
129
|
+
'/test/shared.ts',
|
|
130
|
+
'/test/important.ts',
|
|
131
|
+
]),
|
|
132
|
+
}), mockOptions);
|
|
133
|
+
// Verify that all paths are included in the getSourceCode function call
|
|
134
|
+
expect(prompt[0].functionCalls?.[0].args?.filePaths).toEqual(expect.arrayContaining([
|
|
135
|
+
'/test/main.ts',
|
|
136
|
+
'/test/util1.ts',
|
|
137
|
+
'/test/util2.ts',
|
|
138
|
+
'/test/component.ts',
|
|
139
|
+
'/test/shared.ts',
|
|
140
|
+
'/test/important.ts',
|
|
141
|
+
]));
|
|
142
|
+
// Verify the source code response is properly formatted
|
|
143
|
+
expect(prompt[1].functionResponses?.[0].name).toBe('getSourceCode');
|
|
144
|
+
const responseContent = JSON.parse(prompt[1].functionResponses?.[0].content ?? '');
|
|
145
|
+
expect(responseContent['/test']).toBeDefined();
|
|
146
|
+
expect(Object.keys(responseContent['/test'])).toHaveLength(6); // All files should be included
|
|
147
|
+
});
|
|
148
|
+
it('should handle empty affectedFiles in codegenPlanning', async () => {
|
|
149
|
+
importantContext.files = [];
|
|
150
|
+
const mockCodegenPlanning = {
|
|
151
|
+
name: 'codegenPlanning',
|
|
152
|
+
args: {
|
|
153
|
+
affectedFiles: [],
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
const prompt = [];
|
|
157
|
+
const result = await executeStepEnsureContext(prompt, mockCodegenPlanning, mockOptions);
|
|
158
|
+
expect(result).toBe(StepResult.CONTINUE);
|
|
159
|
+
expect(putSystemMessage).toHaveBeenCalledWith('No paths to ensure in context.');
|
|
160
|
+
expect(getSourceCode).not.toHaveBeenCalled();
|
|
161
|
+
});
|
|
162
|
+
it('should handle missing affectedFiles in codegenPlanning', async () => {
|
|
163
|
+
importantContext.files = [];
|
|
164
|
+
const mockCodegenPlanning = {
|
|
165
|
+
name: 'codegenPlanning',
|
|
166
|
+
args: {},
|
|
167
|
+
};
|
|
168
|
+
const prompt = [];
|
|
169
|
+
const result = await executeStepEnsureContext(prompt, mockCodegenPlanning, mockOptions);
|
|
170
|
+
expect(result).toBe(StepResult.CONTINUE);
|
|
171
|
+
expect(putSystemMessage).toHaveBeenCalledWith('No paths to ensure in context.');
|
|
172
|
+
expect(getSourceCode).not.toHaveBeenCalled();
|
|
80
173
|
});
|
|
81
174
|
});
|
|
82
175
|
describe('Context checking in conversation', () => {
|
|
@@ -211,15 +304,6 @@ describe('executeStepEnsureContext', () => {
|
|
|
211
304
|
expect(result).toBe(StepResult.CONTINUE);
|
|
212
305
|
expect(console.warn).toHaveBeenCalledWith('Failed to parse getSourceCode response:', expect.any(Error));
|
|
213
306
|
});
|
|
214
|
-
it('should handle missing args in codegenSummary', async () => {
|
|
215
|
-
const mockCodegenSummary = {
|
|
216
|
-
name: 'codegenSummary',
|
|
217
|
-
args: {},
|
|
218
|
-
};
|
|
219
|
-
const prompt = [];
|
|
220
|
-
const result = await executeStepEnsureContext(prompt, mockCodegenSummary, mockOptions);
|
|
221
|
-
expect(result).toEqual(StepResult.BREAK);
|
|
222
|
-
});
|
|
223
307
|
it('should handle getSourceCode errors', async () => {
|
|
224
308
|
const mockCodegenSummary = {
|
|
225
309
|
name: 'codegenSummary',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-ensure-context.test.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ensure-context.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"step-ensure-context.test.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ensure-context.test.ts"],"names":[],"mappings":"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"}
|