genaicode 0.7.0 → 0.8.1
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/cli/cli-params.d.ts +1 -1
- package/dist/cli/cli-params.js +1 -1
- package/dist/cli/cli-params.js.map +1 -1
- package/dist/eval/codegen-summary.test.js +3 -1
- package/dist/eval/codegen-summary.test.js.map +1 -1
- package/dist/eval/data/current-prompt.d.ts +0 -17
- package/dist/eval/data/current-prompt.js +23 -23
- package/dist/eval/data/current-prompt.js.map +1 -1
- package/dist/eval/prompt-debug.test.js +6 -1
- package/dist/eval/prompt-debug.test.js.map +1 -1
- package/dist/files/read-files.d.ts +27 -4
- package/dist/files/read-files.js +20 -5
- package/dist/files/read-files.js.map +1 -1
- package/dist/files/read-files.test.js +4 -4
- package/dist/files/read-files.test.js.map +1 -1
- package/dist/files/source-code-tree.d.ts +11 -6
- package/dist/files/source-code-tree.js +45 -2
- package/dist/files/source-code-tree.js.map +1 -1
- package/dist/main/codegen-types.d.ts +1 -1
- package/dist/main/config-lib.js +20 -2
- package/dist/main/config-lib.js.map +1 -1
- package/dist/main/config.js +4 -28
- package/dist/main/config.js.map +1 -1
- package/dist/main/interactive/codegen-interactive.test.js +1 -1
- package/dist/main/interactive/codegen-interactive.test.js.map +1 -1
- package/dist/main/plugin-loader.d.ts +5 -0
- package/dist/main/plugin-loader.js +53 -0
- package/dist/main/plugin-loader.js.map +1 -1
- package/dist/main/ui/frontend/assets/index-QOcNx5ac.js +812 -0
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/project-profiles/detection.d.ts +40 -0
- package/dist/project-profiles/detection.js +131 -0
- package/dist/project-profiles/detection.js.map +1 -0
- package/dist/project-profiles/index.d.ts +35 -0
- package/dist/project-profiles/index.js +72 -0
- package/dist/project-profiles/index.js.map +1 -0
- package/dist/project-profiles/profiles/golang.d.ts +65 -0
- package/dist/project-profiles/profiles/golang.js +208 -0
- package/dist/project-profiles/profiles/golang.js.map +1 -0
- package/dist/project-profiles/profiles/java-maven.d.ts +80 -0
- package/dist/project-profiles/profiles/java-maven.js +165 -0
- package/dist/project-profiles/profiles/java-maven.js.map +1 -0
- package/dist/project-profiles/profiles/javascript-npm.d.ts +40 -0
- package/dist/project-profiles/profiles/javascript-npm.js +118 -0
- package/dist/project-profiles/profiles/javascript-npm.js.map +1 -0
- package/dist/project-profiles/profiles/javascript-react.d.ts +46 -0
- package/dist/project-profiles/profiles/javascript-react.js +147 -0
- package/dist/project-profiles/profiles/javascript-react.js.map +1 -0
- package/dist/project-profiles/profiles/python-django.d.ts +58 -0
- package/dist/project-profiles/profiles/python-django.js +200 -0
- package/dist/project-profiles/profiles/python-django.js.map +1 -0
- package/dist/project-profiles/types.d.ts +122 -0
- package/dist/project-profiles/types.js +77 -0
- package/dist/project-profiles/types.js.map +1 -0
- package/dist/prompt/function-defs/set-summaries.js +20 -1
- package/dist/prompt/function-defs/set-summaries.js.map +1 -1
- package/dist/prompt/prompt-codegen.test.js +5 -4
- package/dist/prompt/prompt-codegen.test.js.map +1 -1
- package/dist/prompt/prompt-service-ask-question.test.js +2 -0
- package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
- package/dist/prompt/prompt-service.js +13 -106
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +58 -0
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js +1 -3
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/default-action.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/default-action.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js +0 -6
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +0 -2
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js +0 -3
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +2 -5
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js +0 -3
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +4 -3
- package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +2 -3
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +20 -6
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +1 -1
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-codegen-summary.d.ts +7 -0
- package/dist/prompt/steps/step-codegen-summary.js +106 -0
- package/dist/prompt/steps/step-codegen-summary.js.map +1 -0
- package/dist/prompt/steps/step-codegen-summary.test.d.ts +1 -0
- package/dist/prompt/steps/step-codegen-summary.test.js +136 -0
- package/dist/prompt/steps/step-codegen-summary.test.js.map +1 -0
- package/dist/prompt/steps/step-context-optimization.js +159 -71
- package/dist/prompt/steps/step-context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-context-optimization.test.js +24 -5
- package/dist/prompt/steps/step-context-optimization.test.js.map +1 -1
- package/dist/prompt/steps/step-ensure-context.d.ts +15 -0
- package/dist/prompt/steps/step-ensure-context.js +102 -0
- package/dist/prompt/steps/step-ensure-context.js.map +1 -0
- package/dist/prompt/steps/step-ensure-context.test.d.ts +1 -0
- package/dist/prompt/steps/step-ensure-context.test.js +242 -0
- package/dist/prompt/steps/step-ensure-context.test.js.map +1 -0
- package/dist/prompt/steps/step-summarization.d.ts +2 -1
- package/dist/prompt/steps/step-summarization.js +44 -11
- package/dist/prompt/steps/step-summarization.js.map +1 -1
- package/dist/prompt/steps/steps-types.d.ts +2 -0
- package/dist/prompt/steps/steps-types.js.map +1 -1
- package/dist/prompt/systemprompt.test.js +2 -2
- package/dist/prompt/systemprompt.test.js.map +1 -1
- package/package.json +6 -2
- package/dist/main/ui/frontend/assets/index-5e3ykhy6.js +0 -808
|
@@ -9,84 +9,72 @@ import { getSourceCodeResponse } from './steps-utils.js';
|
|
|
9
9
|
import { getSourceCodeTree, parseSourceCodeTree } from '../../files/source-code-tree.js';
|
|
10
10
|
const OPTIMIZATION_PROMPT = `You're correct, we need to optimize the context for code generation. Please perform the following tasks and respond by calling the \`optimizeContext\` function with the appropriate arguments:
|
|
11
11
|
|
|
12
|
-
1. **Relevance and
|
|
12
|
+
1. **Relevance and Dependency Analysis**:
|
|
13
13
|
- Rate the **relevance** of each file to the user's prompt on a scale from **0 to 1**, using the following guidelines:
|
|
14
14
|
- **0.0 – 0.3 (Not Relevant)**: The file has no apparent connection to the user's prompt.
|
|
15
15
|
- **0.3 – 0.7 (Somewhat Relevant)**: The file has minor or indirect relevance to the prompt.
|
|
16
16
|
- **0.7 – 0.9 (Moderately Relevant)**: The file is related and could contribute to addressing the prompt.
|
|
17
17
|
- **0.9 – 1.0 (Highly Relevant)**: The file is directly related and is important for addressing the prompt.
|
|
18
|
+
|
|
18
19
|
- **Evaluation Criteria**:
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
- **
|
|
22
|
-
|
|
23
|
-
- Consider the cost of adding more tokens; prioritize files where the relevance justifies the token usage.
|
|
20
|
+
- **Direct Relevance**: Does the file directly implement features mentioned in the prompt?
|
|
21
|
+
- **Dependency Chain**: Is the file part of a dependency chain of relevant files?
|
|
22
|
+
- **Keyword Matching**: Does the file contain keywords or topics from the prompt?
|
|
23
|
+
- **Dependency Importance**: Is the file a critical dependency for other relevant files?
|
|
24
24
|
|
|
25
|
-
2. **
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
|
|
25
|
+
2. **Dependency-Aware Optimization**:
|
|
26
|
+
- Consider both direct and indirect dependencies
|
|
27
|
+
- Prioritize files that are:
|
|
28
|
+
- Directly relevant to the prompt
|
|
29
|
+
- Dependencies of highly relevant files
|
|
30
|
+
- Part of important dependency chains
|
|
31
|
+
- Handle dependency chains intelligently:
|
|
32
|
+
- Include critical dependencies even if they seem less relevant
|
|
33
|
+
- Consider the full dependency tree when evaluating relevance
|
|
34
|
+
- Avoid breaking dependency chains of important files
|
|
29
35
|
|
|
30
|
-
3. **
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- \`"filePath"\`: The absolute file path.
|
|
36
|
-
- \`"relevance"\`: The calculated relevance score (0 to 1).
|
|
36
|
+
3. **Token-Aware Optimization**:
|
|
37
|
+
- Balance relevance against token usage
|
|
38
|
+
- Consider the combined token cost of dependency chains
|
|
39
|
+
- Prioritize files where the relevance justifies the token usage
|
|
40
|
+
- Consider the token cost of including entire dependency chains
|
|
37
41
|
|
|
38
|
-
**
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
- **Provide the response in valid JSON format**.
|
|
45
|
-
- **Do not include any extra text** outside of the function call.
|
|
46
|
-
- **Ensure the JSON is properly formatted** and **does not contain strings representing JSON** (i.e., do not stringify the JSON, do not wrap strings into quotes).
|
|
47
|
-
- **Do not return files which are not relevant to the user prompt. Use relevance rating to judge that**
|
|
48
|
-
- **Formulate full file paths correctly using directoryPath and filePath from the \`getSourceCode\` function response**.
|
|
49
|
-
|
|
50
|
-
**Example of valid Function Call**:
|
|
42
|
+
4. **Function Call Response**:
|
|
43
|
+
- Call the \`optimizeContext\` function with:
|
|
44
|
+
- \`"userPrompt"\`: The original prompt
|
|
45
|
+
- \`"optimizedContext"\`: Array of objects containing:
|
|
46
|
+
- \`"filePath"\`: Absolute file path
|
|
47
|
+
- \`"relevance"\`: Calculated relevance score (0 to 1)
|
|
51
48
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
"path": "/home/src/utils/math.js",
|
|
64
|
-
"relevance": 0.4,
|
|
65
|
-
}
|
|
66
|
-
]
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
\`\`\`
|
|
49
|
+
**Important Guidelines**:
|
|
50
|
+
- **Only include files from \`getSourceCode\` response**
|
|
51
|
+
- **Do not guess or infer additional files**
|
|
52
|
+
- **Evaluate each file individually and as part of dependency chains**
|
|
53
|
+
- **Consider both direct and indirect dependencies**
|
|
54
|
+
- **Ensure proper JSON formatting**
|
|
55
|
+
- **Include full file paths**
|
|
56
|
+
- **Filter out low-relevance files (< 0.5)**
|
|
57
|
+
- **Maintain dependency chain integrity**
|
|
70
58
|
|
|
71
59
|
Now could you please analyze the source code and return me the optimized context?
|
|
72
60
|
`;
|
|
73
|
-
// const BATCH_SIZE = 100;
|
|
74
61
|
const MAX_TOTAL_TOKENS = 10000;
|
|
75
62
|
export async function executeStepContextOptimization(generateContentFn, prompt, options) {
|
|
76
63
|
const fullSourceCode = getSourceCode({ forceAll: true }, options);
|
|
77
64
|
const tokensBefore = estimateTokenCount(JSON.stringify(fullSourceCode));
|
|
78
|
-
if (tokensBefore < MAX_TOTAL_TOKENS) {
|
|
79
|
-
putSystemMessage('Context optimization is not needed, because the code base is small.');
|
|
80
|
-
return StepResult.CONTINUE;
|
|
81
|
-
}
|
|
82
65
|
const sourceCodeResponse = getSourceCodeResponse(prompt);
|
|
83
66
|
if (!sourceCodeResponse || !sourceCodeResponse.content) {
|
|
84
67
|
console.warn('Could not find source code response, something is wrong, but lets continue anyway.');
|
|
85
68
|
return StepResult.CONTINUE;
|
|
86
69
|
}
|
|
70
|
+
if (tokensBefore < MAX_TOTAL_TOKENS) {
|
|
71
|
+
putSystemMessage('Context optimization is not needed, because the code base is small.');
|
|
72
|
+
sourceCodeResponse.content = JSON.stringify(getSourceCodeTree(fullSourceCode));
|
|
73
|
+
return StepResult.CONTINUE;
|
|
74
|
+
}
|
|
87
75
|
const sourceCode = parseSourceCodeTree(JSON.parse(sourceCodeResponse.content));
|
|
88
76
|
try {
|
|
89
|
-
putSystemMessage('Context optimization is starting');
|
|
77
|
+
putSystemMessage('Context optimization is starting for large codebase');
|
|
90
78
|
const optimizationPrompt = [
|
|
91
79
|
...prompt,
|
|
92
80
|
{
|
|
@@ -101,7 +89,7 @@ export async function executeStepContextOptimization(generateContentFn, prompt,
|
|
|
101
89
|
const request = [optimizationPrompt, getFunctionDefs(), 'optimizeContext', 0.2, true, options];
|
|
102
90
|
let result = await generateContentFn(...request);
|
|
103
91
|
result = await validateAndRecoverSingleResult(request, result, generateContentFn);
|
|
104
|
-
const optimizedContext = parseOptimizationResult(fullSourceCode, result);
|
|
92
|
+
const [optimizedContext, irrelevantFiles] = parseOptimizationResult(fullSourceCode, result);
|
|
105
93
|
if (!optimizedContext) {
|
|
106
94
|
putSystemMessage(`Warning: Context optimization failed. We need to abort.`);
|
|
107
95
|
return StepResult.BREAK;
|
|
@@ -111,14 +99,13 @@ export async function executeStepContextOptimization(generateContentFn, prompt,
|
|
|
111
99
|
return StepResult.CONTINUE;
|
|
112
100
|
}
|
|
113
101
|
putSystemMessage('Context optimization in progress.', Array.from(optimizedContext));
|
|
114
|
-
const [optimizedSourceCode, contentTokenCount, summaryTokenCount] = optimizeSourceCode(sourceCode, fullSourceCode, Array.from(optimizedContext));
|
|
102
|
+
const [optimizedSourceCode, contentTokenCount, summaryTokenCount] = optimizeSourceCode(sourceCode, fullSourceCode, Array.from(optimizedContext), irrelevantFiles);
|
|
115
103
|
const tokensAfter = estimateTokenCount(JSON.stringify(optimizedSourceCode));
|
|
116
104
|
const percentageReduced = ((tokensBefore - tokensAfter) / tokensBefore) * 100;
|
|
117
105
|
// Clear previous getSourceCode responses
|
|
118
|
-
clearPreviousSourceCodeResponses(prompt);
|
|
106
|
+
clearPreviousSourceCodeResponses(prompt, irrelevantFiles);
|
|
119
107
|
prompt.push({
|
|
120
108
|
type: 'assistant',
|
|
121
|
-
// we may want to put text question here
|
|
122
109
|
functionCalls: [
|
|
123
110
|
{
|
|
124
111
|
name: 'requestFilesContent',
|
|
@@ -135,7 +122,6 @@ export async function executeStepContextOptimization(generateContentFn, prompt,
|
|
|
135
122
|
],
|
|
136
123
|
}, {
|
|
137
124
|
type: 'user',
|
|
138
|
-
// we may want to put text answer here
|
|
139
125
|
functionResponses: [
|
|
140
126
|
{
|
|
141
127
|
name: 'requestFilesContent',
|
|
@@ -166,42 +152,84 @@ export async function executeStepContextOptimization(generateContentFn, prompt,
|
|
|
166
152
|
function parseOptimizationResult(fullSourceCode, calls) {
|
|
167
153
|
const optimizeCall = calls.find((call) => call.name === 'optimizeContext');
|
|
168
154
|
if (!optimizeCall || !optimizeCall.args || !optimizeCall.args.optimizedContext) {
|
|
169
|
-
return
|
|
155
|
+
return [[], new Set()];
|
|
170
156
|
}
|
|
171
157
|
let totalTokens = 0;
|
|
172
158
|
const result = [];
|
|
159
|
+
const relevantFiles = new Set();
|
|
160
|
+
const irrelevantFiles = new Set();
|
|
161
|
+
// First pass: collect initially relevant files and track irrelevant ones
|
|
162
|
+
for (const item of optimizeCall.args.optimizedContext) {
|
|
163
|
+
if (item.relevance >= 0.5) {
|
|
164
|
+
relevantFiles.add(item.filePath);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
irrelevantFiles.add(item.filePath);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Add files which are in full source and are not in the optimized context
|
|
171
|
+
for (const filePath in fullSourceCode) {
|
|
172
|
+
if (!relevantFiles.has(filePath) && !irrelevantFiles.has(filePath)) {
|
|
173
|
+
irrelevantFiles.add(filePath);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Second pass: calculate final relevance including dependency weights
|
|
173
177
|
for (const item of optimizeCall.args.optimizedContext.sort((a, b) => a.relevance > b.relevance ? -1 : 1)) {
|
|
174
178
|
const { filePath, relevance } = item;
|
|
175
179
|
if (relevance < 0.5) {
|
|
176
180
|
break;
|
|
177
181
|
}
|
|
182
|
+
// Calculate dependency weight (0-0.3) and add to base relevance
|
|
183
|
+
const depWeight = calculateDependencyWeight(filePath, fullSourceCode, relevantFiles);
|
|
184
|
+
const finalRelevance = Math.min(1, relevance + depWeight);
|
|
178
185
|
const content = (fullSourceCode[filePath] && 'content' in fullSourceCode[filePath]
|
|
179
186
|
? fullSourceCode[filePath]?.content
|
|
180
187
|
: undefined) ?? '';
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
188
|
+
// Get all dependencies for token counting
|
|
189
|
+
const allDeps = getAllDependencies(filePath, fullSourceCode);
|
|
190
|
+
const depsContent = Array.from(allDeps)
|
|
191
|
+
.map((dep) => (fullSourceCode[dep] && 'content' in fullSourceCode[dep] ? fullSourceCode[dep]?.content : undefined) ?? '')
|
|
192
|
+
.join('');
|
|
193
|
+
totalTokens += estimateTokenCount(content + depsContent);
|
|
194
|
+
result.push([item.filePath, finalRelevance]);
|
|
195
|
+
// Break if we exceed token limit and the file isn't highly relevant
|
|
196
|
+
if (totalTokens > MAX_TOTAL_TOKENS && finalRelevance < 0.7) {
|
|
184
197
|
break;
|
|
185
198
|
}
|
|
186
199
|
}
|
|
187
|
-
return result;
|
|
200
|
+
return [result, irrelevantFiles];
|
|
188
201
|
}
|
|
189
|
-
function optimizeSourceCode(sourceCode, fullSourceCode, optimizedContext) {
|
|
202
|
+
function optimizeSourceCode(sourceCode, fullSourceCode, optimizedContext, irrelevantFiles) {
|
|
190
203
|
const optimizedSourceCode = {};
|
|
191
204
|
let contentTokenCount = 0;
|
|
192
205
|
let summaryTokenCount = 0;
|
|
206
|
+
// Create a set of all required files (including dependencies)
|
|
207
|
+
const requiredFiles = new Set();
|
|
208
|
+
for (const [path] of optimizedContext) {
|
|
209
|
+
requiredFiles.add(path);
|
|
210
|
+
// Add all dependencies
|
|
211
|
+
const deps = getAllDependencies(path, fullSourceCode);
|
|
212
|
+
deps.forEach((dep) => requiredFiles.add(dep));
|
|
213
|
+
}
|
|
193
214
|
for (const [path] of Object.entries(fullSourceCode)) {
|
|
194
|
-
const
|
|
215
|
+
const isRequired = requiredFiles.has(path);
|
|
216
|
+
const isIrrelevant = irrelevantFiles.has(path);
|
|
195
217
|
const summary = getSummary(path);
|
|
196
218
|
const content = (fullSourceCode[path] && 'content' in fullSourceCode[path] ? fullSourceCode[path]?.content : undefined) ?? null;
|
|
197
|
-
|
|
219
|
+
const dependencies = fullSourceCode[path] && 'dependencies' in fullSourceCode[path] ? fullSourceCode[path]?.dependencies : undefined;
|
|
220
|
+
if (isRequired && content && !(sourceCode[path] && 'content' in sourceCode[path])) {
|
|
198
221
|
contentTokenCount += estimateTokenCount(content);
|
|
199
222
|
optimizedSourceCode[path] = {
|
|
200
223
|
content,
|
|
224
|
+
...(dependencies && !isIrrelevant && { dependencies }),
|
|
201
225
|
};
|
|
202
226
|
}
|
|
203
|
-
else {
|
|
204
|
-
summaryTokenCount += estimateTokenCount(summary
|
|
227
|
+
else if (summary && !isIrrelevant) {
|
|
228
|
+
summaryTokenCount += estimateTokenCount(summary.summary);
|
|
229
|
+
optimizedSourceCode[path] = {
|
|
230
|
+
...summary,
|
|
231
|
+
...(dependencies && { dependencies }),
|
|
232
|
+
};
|
|
205
233
|
}
|
|
206
234
|
}
|
|
207
235
|
return [optimizedSourceCode, contentTokenCount, summaryTokenCount];
|
|
@@ -209,7 +237,7 @@ function optimizeSourceCode(sourceCode, fullSourceCode, optimizedContext) {
|
|
|
209
237
|
/**
|
|
210
238
|
* Helper function to clear content from previous getSourceCode responses while preserving the conversation structure
|
|
211
239
|
*/
|
|
212
|
-
function clearPreviousSourceCodeResponses(prompt) {
|
|
240
|
+
function clearPreviousSourceCodeResponses(prompt, irrelevantFiles) {
|
|
213
241
|
for (const item of prompt) {
|
|
214
242
|
if (item.type === 'user' && item.functionResponses) {
|
|
215
243
|
for (const response of item.functionResponses) {
|
|
@@ -218,7 +246,19 @@ function clearPreviousSourceCodeResponses(prompt) {
|
|
|
218
246
|
const sourceCode = parseSourceCodeTree(JSON.parse(response.content));
|
|
219
247
|
for (const path in sourceCode) {
|
|
220
248
|
if ('content' in sourceCode[path]) {
|
|
221
|
-
|
|
249
|
+
sourceCode[path].content = null;
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
// Zero out content for irrelevant files
|
|
253
|
+
const file = sourceCode[path];
|
|
254
|
+
file.content = null;
|
|
255
|
+
}
|
|
256
|
+
if (irrelevantFiles.has(path) && sourceCode[path]) {
|
|
257
|
+
// Remove summary and dependencies for irrelevant files
|
|
258
|
+
if ('summary' in sourceCode[path]) {
|
|
259
|
+
delete sourceCode[path].summary;
|
|
260
|
+
}
|
|
261
|
+
delete sourceCode[path].dependencies;
|
|
222
262
|
}
|
|
223
263
|
}
|
|
224
264
|
response.content = JSON.stringify(getSourceCodeTree(sourceCode));
|
|
@@ -227,4 +267,52 @@ function clearPreviousSourceCodeResponses(prompt) {
|
|
|
227
267
|
}
|
|
228
268
|
}
|
|
229
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* Calculate dependency chain weight for a file
|
|
272
|
+
* Returns a value between 0 and 0.3 based on dependency importance
|
|
273
|
+
*/
|
|
274
|
+
function calculateDependencyWeight(filePath, sourceCode, relevantFiles, visited = new Set()) {
|
|
275
|
+
if (visited.has(filePath)) {
|
|
276
|
+
return 0; // Prevent circular dependency loops
|
|
277
|
+
}
|
|
278
|
+
visited.add(filePath);
|
|
279
|
+
const fileData = sourceCode[filePath];
|
|
280
|
+
if (!fileData || !('dependencies' in fileData) || !fileData.dependencies) {
|
|
281
|
+
return 0;
|
|
282
|
+
}
|
|
283
|
+
let weight = 0;
|
|
284
|
+
for (const dep of fileData.dependencies) {
|
|
285
|
+
if (dep.type === 'local' && relevantFiles.has(dep.path)) {
|
|
286
|
+
// Direct dependency of a relevant file gets higher weight
|
|
287
|
+
weight = Math.max(weight, 0.2);
|
|
288
|
+
// Recursively check dependencies with diminishing weight
|
|
289
|
+
const depWeight = calculateDependencyWeight(dep.path, sourceCode, relevantFiles, visited) * 0.7;
|
|
290
|
+
weight = Math.max(weight, depWeight);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
return weight;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get all dependencies for a file, including transitive ones
|
|
297
|
+
*/
|
|
298
|
+
function getAllDependencies(filePath, sourceCode, visited = new Set()) {
|
|
299
|
+
if (visited.has(filePath)) {
|
|
300
|
+
return new Set(); // Prevent circular dependency loops
|
|
301
|
+
}
|
|
302
|
+
visited.add(filePath);
|
|
303
|
+
const deps = new Set();
|
|
304
|
+
const fileData = sourceCode[filePath];
|
|
305
|
+
if (!fileData || !('dependencies' in fileData) || !fileData.dependencies) {
|
|
306
|
+
return deps;
|
|
307
|
+
}
|
|
308
|
+
for (const dep of fileData.dependencies) {
|
|
309
|
+
if (dep.type === 'local') {
|
|
310
|
+
deps.add(dep.path);
|
|
311
|
+
// Add transitive dependencies
|
|
312
|
+
const transitiveDeps = getAllDependencies(dep.path, sourceCode, visited);
|
|
313
|
+
transitiveDeps.forEach((d) => deps.add(d));
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return deps;
|
|
317
|
+
}
|
|
230
318
|
//# sourceMappingURL=step-context-optimization.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-context-optimization.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-optimization.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"step-context-optimization.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-optimization.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ vi.mock('../token-estimator', () => ({
|
|
|
20
20
|
}),
|
|
21
21
|
}));
|
|
22
22
|
vi.mock('./step-summarization', () => ({
|
|
23
|
-
getSummary: vi.fn().mockReturnValue({ summary: 'Test summary' }),
|
|
23
|
+
getSummary: vi.fn().mockReturnValue({ summary: 'Test summary', dependencies: [{ path: 'test-dep', type: 'local' }] }),
|
|
24
24
|
}));
|
|
25
25
|
vi.mock('../../main/config.js', () => ({
|
|
26
26
|
rootDir: '/test',
|
|
@@ -35,6 +35,7 @@ describe('executeStepContextOptimization', () => {
|
|
|
35
35
|
const mockGenerateContentFn = vi.fn();
|
|
36
36
|
const mockOptions = {
|
|
37
37
|
aiService: 'vertex-ai',
|
|
38
|
+
askQuestion: false,
|
|
38
39
|
};
|
|
39
40
|
beforeEach(() => {
|
|
40
41
|
vi.clearAllMocks();
|
|
@@ -113,6 +114,10 @@ describe('executeStepContextOptimization', () => {
|
|
|
113
114
|
});
|
|
114
115
|
});
|
|
115
116
|
describe('Multiple getSourceCode responses handling', () => {
|
|
117
|
+
// This test verifies that when clearing previous getSourceCode responses:
|
|
118
|
+
// 1. Directory structure is preserved
|
|
119
|
+
// 2. File content is set to null
|
|
120
|
+
// 3. The overall structure of the conversation remains intact
|
|
116
121
|
it('should clear previous getSourceCode responses while preserving structure', async () => {
|
|
117
122
|
const mockSourceCode = {
|
|
118
123
|
'/test/file1.ts': { content: 'content1' + Array.from(Array(10000).keys()).join(',') },
|
|
@@ -158,8 +163,13 @@ describe('executeStepContextOptimization', () => {
|
|
|
158
163
|
];
|
|
159
164
|
const result = await executeStepContextOptimization(mockGenerateContentFn, prompt, mockOptions);
|
|
160
165
|
expect(result).toBe(StepResult.CONTINUE);
|
|
161
|
-
// Verify that previous responses
|
|
162
|
-
|
|
166
|
+
// Verify that previous responses maintain structure but clear content
|
|
167
|
+
const expectedStructure = {
|
|
168
|
+
'/test': {
|
|
169
|
+
'old-file.ts': { content: null },
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
expect(JSON.parse(prompt[0].functionResponses[0].content)).toEqual(expectedStructure);
|
|
163
173
|
// Verify that structure was preserved
|
|
164
174
|
expect(prompt[0].type).toBe('user');
|
|
165
175
|
expect(prompt[0].functionResponses[0].name).toBe('getSourceCode');
|
|
@@ -167,6 +177,10 @@ describe('executeStepContextOptimization', () => {
|
|
|
167
177
|
expect(prompt[1].type).toBe('assistant');
|
|
168
178
|
expect(prompt[1].text).toBe('Some response');
|
|
169
179
|
});
|
|
180
|
+
// This test verifies that when handling multiple responses:
|
|
181
|
+
// 1. Each response maintains its directory structure
|
|
182
|
+
// 2. Content is cleared (set to null) for all previous responses
|
|
183
|
+
// 3. The latest response remains unchanged
|
|
170
184
|
it('should handle multiple responses with different content', async () => {
|
|
171
185
|
const mockSourceCode = {
|
|
172
186
|
'/test/file1.ts': { content: 'content1' + Array.from(Array(10000).keys()).join(',') },
|
|
@@ -222,11 +236,16 @@ describe('executeStepContextOptimization', () => {
|
|
|
222
236
|
];
|
|
223
237
|
const result = await executeStepContextOptimization(mockGenerateContentFn, prompt, mockOptions);
|
|
224
238
|
expect(result).toBe(StepResult.CONTINUE);
|
|
225
|
-
// Verify that
|
|
239
|
+
// Verify that previous responses maintain structure but clear content
|
|
226
240
|
prompt.slice(0, -1).forEach((item) => {
|
|
227
241
|
if (item.type === 'user' && item.functionResponses) {
|
|
228
242
|
const response = item.functionResponses.find((r) => r.name === 'getSourceCode');
|
|
229
|
-
|
|
243
|
+
const parsedContent = JSON.parse(response.content);
|
|
244
|
+
// Check that structure is preserved but content is null
|
|
245
|
+
expect(parsedContent).toHaveProperty('/test');
|
|
246
|
+
Object.values(parsedContent['/test']).forEach((file) => {
|
|
247
|
+
expect(file.content).toBe(null);
|
|
248
|
+
});
|
|
230
249
|
}
|
|
231
250
|
});
|
|
232
251
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-context-optimization.test.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-optimization.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"step-context-optimization.test.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-optimization.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FunctionCall } from '../../ai-service/common.js';
|
|
2
|
+
import { CodegenOptions } from '../../main/codegen-types.js';
|
|
3
|
+
import { StepResult } from './steps-types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Executes the context completeness check step.
|
|
6
|
+
* Ensures all necessary files are included in the conversation context.
|
|
7
|
+
*/
|
|
8
|
+
export declare function executeStepEnsureContext(prompt: {
|
|
9
|
+
type: string;
|
|
10
|
+
functionResponses?: {
|
|
11
|
+
name: string;
|
|
12
|
+
content?: string;
|
|
13
|
+
}[];
|
|
14
|
+
functionCalls?: FunctionCall[];
|
|
15
|
+
}[], codegenSummaryCall: FunctionCall, options: CodegenOptions): Promise<StepResult>;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { importantContext } from '../../main/config.js';
|
|
2
|
+
import { getSourceCode } from '../../files/read-files.js';
|
|
3
|
+
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
4
|
+
import { StepResult } from './steps-types.js';
|
|
5
|
+
import { getSourceCodeTree } from '../../files/source-code-tree.js';
|
|
6
|
+
/**
|
|
7
|
+
* Executes the context completeness check step.
|
|
8
|
+
* Ensures all necessary files are included in the conversation context.
|
|
9
|
+
*/
|
|
10
|
+
export async function executeStepEnsureContext(prompt, codegenSummaryCall, options) {
|
|
11
|
+
try {
|
|
12
|
+
// Extract all required paths
|
|
13
|
+
const requiredPaths = extractRequiredPaths(codegenSummaryCall);
|
|
14
|
+
if (requiredPaths.length === 0) {
|
|
15
|
+
putSystemMessage('No paths to ensure in context.');
|
|
16
|
+
return StepResult.CONTINUE;
|
|
17
|
+
}
|
|
18
|
+
// Get paths that are already in context
|
|
19
|
+
const existingPaths = getExistingContextPaths(prompt);
|
|
20
|
+
// Find paths that are missing from context
|
|
21
|
+
const missingPaths = requiredPaths.filter((path) => !existingPaths.has(path));
|
|
22
|
+
if (missingPaths.length === 0) {
|
|
23
|
+
putSystemMessage('All required paths are already in context.');
|
|
24
|
+
return StepResult.CONTINUE;
|
|
25
|
+
}
|
|
26
|
+
// Get source code for missing paths
|
|
27
|
+
putSystemMessage(`Ensuring context completeness. Adding ${missingPaths.length} missing files.`, { missingPaths });
|
|
28
|
+
const sourceCode = getSourceCode({ filterPaths: missingPaths }, options);
|
|
29
|
+
// Append getSourceCode function call/response to the prompt
|
|
30
|
+
prompt.push({
|
|
31
|
+
type: 'assistant',
|
|
32
|
+
functionCalls: [
|
|
33
|
+
{
|
|
34
|
+
name: 'getSourceCode',
|
|
35
|
+
args: {
|
|
36
|
+
filePaths: missingPaths,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
}, {
|
|
41
|
+
type: 'user',
|
|
42
|
+
functionResponses: [
|
|
43
|
+
{
|
|
44
|
+
name: 'getSourceCode',
|
|
45
|
+
content: JSON.stringify(getSourceCodeTree(sourceCode)),
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
putSystemMessage('Context completeness check completed successfully.');
|
|
50
|
+
return StepResult.CONTINUE;
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
putSystemMessage('Error: Context completeness check failed. This is unexpected.');
|
|
54
|
+
console.error('Context completeness check error:', error);
|
|
55
|
+
return StepResult.BREAK;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Extract all required file paths from codegenSummary function call
|
|
60
|
+
*/
|
|
61
|
+
function extractRequiredPaths(codegenSummaryCall) {
|
|
62
|
+
if (!codegenSummaryCall.args?.fileUpdates || !codegenSummaryCall.args?.contextPaths) {
|
|
63
|
+
throw new Error('Invalid codegenSummary call: missing fileUpdates or contextPaths');
|
|
64
|
+
}
|
|
65
|
+
// Ensure fileUpdates is an array and has the correct type
|
|
66
|
+
const fileUpdatePaths = Array.isArray(codegenSummaryCall.args.fileUpdates)
|
|
67
|
+
? codegenSummaryCall.args.fileUpdates.map((update) => update.filePath)
|
|
68
|
+
: [];
|
|
69
|
+
const contextPaths = codegenSummaryCall.args.contextPaths;
|
|
70
|
+
const importantPaths = importantContext.files ?? [];
|
|
71
|
+
// Use Set to deduplicate paths
|
|
72
|
+
return Array.from(new Set([...fileUpdatePaths, ...contextPaths, ...importantPaths]));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get paths that are already present in the conversation context
|
|
76
|
+
*/
|
|
77
|
+
function getExistingContextPaths(prompt) {
|
|
78
|
+
const existingPaths = new Set();
|
|
79
|
+
for (const item of prompt) {
|
|
80
|
+
if (!item.functionResponses)
|
|
81
|
+
continue;
|
|
82
|
+
const sourceCodeResponse = item.functionResponses.find((response) => response.name === 'getSourceCode');
|
|
83
|
+
if (!sourceCodeResponse?.content)
|
|
84
|
+
continue;
|
|
85
|
+
try {
|
|
86
|
+
const sourceCode = JSON.parse(sourceCodeResponse.content);
|
|
87
|
+
for (const [dirPath, files] of Object.entries(sourceCode)) {
|
|
88
|
+
for (const [fileName, fileInfo] of Object.entries(files)) {
|
|
89
|
+
const fullPath = `${dirPath}/${fileName}`;
|
|
90
|
+
if (fileInfo && typeof fileInfo === 'object' && 'content' in fileInfo && fileInfo.content !== null) {
|
|
91
|
+
existingPaths.add(fullPath);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
console.warn('Failed to parse getSourceCode response:', error);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return existingPaths;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=step-ensure-context.js.map
|