genaicode 0.9.3 → 0.9.5
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/anthropic.js +4 -1
- package/dist/ai-service/anthropic.js.map +1 -1
- package/dist/ai-service/common.js +1 -1
- package/dist/ai-service/common.js.map +1 -1
- package/dist/ai-service/openai.js +1 -1
- package/dist/ai-service/openai.js.map +1 -1
- package/dist/ai-service/service-configurations.js +1 -1
- package/dist/ai-service/service-configurations.js.map +1 -1
- package/dist/files/cache-file.d.ts +4 -1
- package/dist/files/cache-file.js.map +1 -1
- package/dist/files/file-id-utils.d.ts +7 -0
- package/dist/files/file-id-utils.js +25 -0
- package/dist/files/file-id-utils.js.map +1 -0
- package/dist/files/read-files.js +8 -8
- package/dist/files/read-files.js.map +1 -1
- package/dist/files/source-code-tree.js +3 -3
- package/dist/files/source-code-tree.js.map +1 -1
- package/dist/files/source-code-types.d.ts +21 -3
- package/dist/files/summary-cache.d.ts +3 -2
- package/dist/files/summary-cache.js +1 -1
- package/dist/files/summary-cache.js.map +1 -1
- package/dist/main/common/content-bus-types.d.ts +1 -1
- package/dist/main/common/content-bus.js +1 -1
- package/dist/main/common/content-bus.js.map +1 -1
- package/dist/main/config-schema.js +1 -1
- package/dist/main/config-schema.js.map +1 -1
- package/dist/main/ui/frontend/assets/{index-CSR1NiB_.js → index-Dizqxzws.js} +226 -187
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/prompt/ai-service-fallback.js +5 -1
- package/dist/prompt/ai-service-fallback.js.map +1 -1
- package/dist/prompt/function-calling.js +8 -1
- package/dist/prompt/function-calling.js.map +1 -1
- package/dist/prompt/function-defs/ask-question.d.ts +3 -0
- package/dist/prompt/function-defs/ask-question.js +43 -1
- package/dist/prompt/function-defs/ask-question.js.map +1 -1
- package/dist/prompt/function-defs/context-compression.d.ts +25 -5
- package/dist/prompt/function-defs/context-compression.js +23 -8
- package/dist/prompt/function-defs/context-compression.js.map +1 -1
- package/dist/prompt/function-defs/conversation-graph.d.ts +33 -0
- package/dist/prompt/function-defs/conversation-graph.js +110 -0
- package/dist/prompt/function-defs/conversation-graph.js.map +1 -0
- package/dist/prompt/function-defs/extract-file-fragments.d.ts +27 -0
- package/dist/prompt/function-defs/extract-file-fragments.js +36 -0
- package/dist/prompt/function-defs/extract-file-fragments.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/ask-question-handler.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/ask-question-handler.js +12 -0
- package/dist/prompt/steps/step-ask-question/ask-question-handler.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/file-request-utils.d.ts +47 -0
- package/dist/prompt/steps/step-ask-question/handlers/file-request-utils.js +114 -0
- package/dist/prompt/steps/step-ask-question/handlers/file-request-utils.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.d.ts +4 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.js +169 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-confirm-code-generation.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-confirm-code-generation.js +40 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-confirm-code-generation.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-compression.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-compression.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-optimization.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-optimization.js +34 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-optimization.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.d.ts +12 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.js +243 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.d.ts +2 -2
- package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.js +5 -3
- package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-genaicode-help.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-genaicode-help.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-generate-image.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-generate-image.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-lint.d.ts +6 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js +105 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-perform-analysis.js +4 -5
- package/dist/prompt/steps/step-ask-question/handlers/handle-perform-analysis.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-reasoning-inference.js +3 -3
- package/dist/prompt/steps/step-ask-question/handlers/handle-reasoning-inference.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.js +88 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.d.ts +8 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.js +136 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.d.ts +8 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.js +173 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.js +71 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.d.ts +0 -3
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js +2 -3
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.d.ts +2 -2
- package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.js +6 -4
- package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +7 -3
- 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-handlers.d.ts +3 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question-handlers.js +5 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question-handlers.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +13 -2
- package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +21 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +30 -71
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +1 -3
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-context-compression.d.ts +1 -1
- package/dist/prompt/steps/step-context-compression.js +130 -34
- package/dist/prompt/steps/step-context-compression.js.map +1 -1
- package/dist/prompt/steps/step-context-optimization.js +7 -68
- package/dist/prompt/steps/step-context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-generate-codegen-summary.js +1 -3
- package/dist/prompt/steps/step-generate-codegen-summary.js.map +1 -1
- package/dist/prompt/steps/step-history-update.js +1 -3
- package/dist/prompt/steps/step-history-update.js.map +1 -1
- package/dist/prompt/steps/step-process-file-updates.js +0 -3
- package/dist/prompt/steps/step-process-file-updates.js.map +1 -1
- package/dist/prompt/steps/step-summarization.d.ts +2 -1
- package/dist/prompt/steps/step-summarization.js +6 -5
- package/dist/prompt/steps/step-summarization.js.map +1 -1
- package/dist/prompt/steps/step-verify-patch.js +1 -3
- package/dist/prompt/steps/step-verify-patch.js.map +1 -1
- package/dist/prompt/systemprompt.js +5 -3
- package/dist/prompt/systemprompt.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,49 +2,153 @@ import { ModelType } from '../../ai-service/common-types.js';
|
|
|
2
2
|
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
3
3
|
import { getFunctionDefs } from '../function-calling.js';
|
|
4
4
|
import { StepResult } from './steps-types.js';
|
|
5
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
6
5
|
import { executeStepEnsureContext } from './step-ensure-context.js';
|
|
7
6
|
export const CONTEXT_COMPRESSION_PROMPT = `Analyze the conversation history and source code dependencies to create a comprehensive context summary that preserves essential information while maintaining reasonable token efficiency.
|
|
8
7
|
|
|
9
8
|
Key Principles:
|
|
10
9
|
1. Preserve Rich Context: Maintain detailed information about the conversation, especially for expensive operations like reasoning inference, code analysis, or complex decision-making.
|
|
11
|
-
2. Token Efficiency:
|
|
10
|
+
2. Token Efficiency: Target a 50-80% reduction in tokens while preserving critical information. For example:
|
|
11
|
+
- Long conversations (>50k tokens): Aim for 75-80% reduction
|
|
12
|
+
- Medium conversations (10k-50k tokens): Aim for 60-75% reduction
|
|
13
|
+
- Short conversations (<10k tokens): Aim for 50-60% reduction
|
|
12
14
|
3. File Handling: Do not include file contents in the summary - use filePaths array for this purpose.
|
|
13
15
|
4. Temporal Context: Preserve chronological progression of important decisions and changes.
|
|
14
16
|
|
|
15
17
|
Required Information to Preserve:
|
|
18
|
+
|
|
16
19
|
1. Conversation Flow:
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
- Important decisions made and their rationale
|
|
20
|
+
**High Priority:**
|
|
21
|
+
- Initial problem statement and core requirements
|
|
20
22
|
- Results of expensive operations (reasoning inference, analysis)
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
+
- Key architectural and design decisions with rationale
|
|
24
|
+
- Critical constraints or requirements
|
|
25
|
+
- Major changes in direction or approach
|
|
26
|
+
|
|
27
|
+
**Medium Priority:**
|
|
28
|
+
- Important clarifying questions and answers
|
|
29
|
+
- User preferences affecting implementation
|
|
30
|
+
- Significant technical discussions
|
|
31
|
+
- Error handling requirements
|
|
32
|
+
|
|
33
|
+
**Optional:**
|
|
34
|
+
- General feedback or observations
|
|
35
|
+
- Minor clarifications
|
|
36
|
+
- Non-critical issues encountered
|
|
37
|
+
- Routine confirmations
|
|
23
38
|
|
|
24
39
|
2. Technical Details:
|
|
25
|
-
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
- Security
|
|
29
|
-
-
|
|
40
|
+
**High Priority:**
|
|
41
|
+
- Specific code changes proposed or implemented
|
|
42
|
+
- Critical architectural decisions
|
|
43
|
+
- Security considerations
|
|
44
|
+
- Performance requirements
|
|
45
|
+
- Core dependencies and their relationships
|
|
46
|
+
|
|
47
|
+
**Medium Priority:**
|
|
30
48
|
- Testing requirements
|
|
49
|
+
- Code organization decisions
|
|
50
|
+
- Implementation patterns chosen
|
|
51
|
+
- File structure changes
|
|
52
|
+
|
|
53
|
+
**Optional:**
|
|
54
|
+
- Alternative approaches considered
|
|
55
|
+
- Code style preferences
|
|
56
|
+
- Non-critical optimizations
|
|
57
|
+
- Documentation suggestions
|
|
31
58
|
|
|
32
59
|
3. Implementation Status:
|
|
33
|
-
|
|
60
|
+
**High Priority:**
|
|
61
|
+
- Current development stage
|
|
62
|
+
- Blocking issues or challenges
|
|
63
|
+
- Critical validation results
|
|
64
|
+
- Required next steps
|
|
65
|
+
|
|
66
|
+
**Medium Priority:**
|
|
34
67
|
- Completed steps
|
|
35
68
|
- Pending tasks
|
|
36
|
-
-
|
|
37
|
-
|
|
69
|
+
- Test results
|
|
70
|
+
|
|
71
|
+
**Optional:**
|
|
72
|
+
- Nice-to-have features
|
|
73
|
+
- Non-blocking improvements
|
|
74
|
+
- Future considerations
|
|
75
|
+
|
|
76
|
+
Priority Conflict Resolution:
|
|
77
|
+
1. When multiple items compete for inclusion:
|
|
78
|
+
- Always preserve items marked as "High Priority"
|
|
79
|
+
- Include "Medium Priority" items if they directly relate to "High Priority" items
|
|
80
|
+
- Include "Optional" items only if they provide crucial context for "High Priority" items
|
|
81
|
+
2. When facing token limits:
|
|
82
|
+
- First, compress or remove "Optional" items
|
|
83
|
+
- Then, selectively compress "Medium Priority" items
|
|
84
|
+
- Finally, if necessary, compress (but never remove) "High Priority" items
|
|
85
|
+
3. When items span multiple categories:
|
|
86
|
+
- Preserve items that appear in multiple "High Priority" sections
|
|
87
|
+
- Combine related items to reduce redundancy while maintaining context
|
|
88
|
+
|
|
89
|
+
Deduplication Guidance:
|
|
90
|
+
1. Identify and remove redundant information:
|
|
91
|
+
Example - Before:
|
|
92
|
+
"User asked about error handling. Assistant explained error handling approach. User requested clarification about error handling. Assistant provided more details about error handling."
|
|
93
|
+
After:
|
|
94
|
+
"Discussion of error handling approach: Initial explanation followed by clarification of specific details."
|
|
95
|
+
|
|
96
|
+
2. Merge related technical decisions:
|
|
97
|
+
Example - Before:
|
|
98
|
+
"Decided to use async/await. Later discussed error handling with try/catch. Then added discussion about Promise rejection handling."
|
|
99
|
+
After:
|
|
100
|
+
"Implemented asynchronous operations using async/await pattern, incorporating comprehensive error handling (try/catch and Promise rejections)."
|
|
101
|
+
|
|
102
|
+
3. Combine similar requirements:
|
|
103
|
+
Example - Before:
|
|
104
|
+
"Need to handle network errors. Should retry failed requests. Must implement timeout for requests. Should handle offline mode."
|
|
105
|
+
After:
|
|
106
|
+
"Network handling requirements: Error recovery with retries, request timeouts, and offline mode support."
|
|
107
|
+
|
|
108
|
+
File Path Inclusion Criteria:
|
|
109
|
+
1. Always Include:
|
|
110
|
+
- Files directly targeted for modification
|
|
111
|
+
- Files containing code being analyzed or referenced
|
|
112
|
+
- Critical dependencies of modified files
|
|
113
|
+
- Configuration files affecting the changes
|
|
114
|
+
|
|
115
|
+
2. Include Based on Context:
|
|
116
|
+
- Files containing relevant examples or patterns
|
|
117
|
+
- Test files for affected components
|
|
118
|
+
- Related documentation files
|
|
119
|
+
|
|
120
|
+
3. Do Not Include:
|
|
121
|
+
- Files only mentioned in passing
|
|
122
|
+
- Deprecated or unused files
|
|
123
|
+
- Files from rejected approaches
|
|
124
|
+
- Files outside the current task scope
|
|
125
|
+
|
|
126
|
+
Handling Complex Technical Discussions:
|
|
127
|
+
1. For Code Analysis:
|
|
128
|
+
- Preserve detailed reasoning about algorithmic choices
|
|
129
|
+
- Keep performance considerations and trade-offs
|
|
130
|
+
- Maintain security-related discussions
|
|
131
|
+
- Retain architectural decisions and their rationale
|
|
132
|
+
|
|
133
|
+
2. For Multi-File Dependencies:
|
|
134
|
+
- Document relationships between files
|
|
135
|
+
- Preserve dependency chain reasoning
|
|
136
|
+
- Keep critical implementation order requirements
|
|
137
|
+
- Maintain context about shared components
|
|
138
|
+
|
|
139
|
+
3. For Technical Decisions:
|
|
140
|
+
- Preserve core decision points and rationale
|
|
141
|
+
- Keep relevant constraints and requirements
|
|
142
|
+
- Maintain important trade-off discussions
|
|
143
|
+
- Retain technical debt considerations
|
|
38
144
|
|
|
39
145
|
Format your response as a structured JSON object with:
|
|
40
146
|
- conversationSummary: Detailed summary preserving rich context of the conversation's progression and key decisions
|
|
41
|
-
- codegenIntent: Comprehensive description of the primary goal, constraints, and special requirements
|
|
42
147
|
- filePaths: Array of file paths that are critical for the task (no file contents, just paths)
|
|
43
148
|
|
|
44
149
|
Example of good summary structure:
|
|
45
150
|
{
|
|
46
151
|
"conversationSummary": "Started: User requested CONTEXT_COMPRESSION_PROMPT improvement. Analysis: Current compression too aggressive (100k->100 tokens). Key Decision: Allow larger summaries (5k tokens ok). Reasoning inference revealed importance of preserving expensive operation results. Implementation: Updating compression logic in step-context-compression.ts. Requirements: 1) Less aggressive compression, 2) Rich conversation preservation, 3) No file contents in summary.",
|
|
47
|
-
"codegenIntent": "Enhance context compression to preserve more information (up to 5k tokens) while maintaining efficiency. Focus on rich conversation details, especially expensive operations like reasoning inference. Exclude file contents from summary/intent, using filePaths instead. Goal: Better balance between compression and information preservation.",
|
|
48
152
|
"filePaths": ["/path/to/relevant/files"]
|
|
49
153
|
}
|
|
50
154
|
|
|
@@ -65,25 +169,18 @@ export async function executeStepContextCompression(generateContentFn, prompt, o
|
|
|
65
169
|
}
|
|
66
170
|
try {
|
|
67
171
|
putSystemMessage('Context compression is starting...');
|
|
68
|
-
const compressContextCall = await compressConversationHistory(generateContentFn, prompt, options);
|
|
172
|
+
const compressContextCall = await compressConversationHistory(generateContentFn, prompt.slice(initialPromptIndex, prompt.length), options);
|
|
69
173
|
if (!compressContextCall) {
|
|
70
174
|
putSystemMessage('Context compression did not return a result');
|
|
71
175
|
return StepResult.BREAK;
|
|
72
176
|
}
|
|
73
|
-
//
|
|
74
|
-
prompt.splice(initialPromptIndex
|
|
177
|
+
// Replace the initial prompt with the context compression call response
|
|
178
|
+
prompt.splice(initialPromptIndex, prompt.length - initialPromptIndex);
|
|
75
179
|
// Add compression result to prompt
|
|
76
|
-
prompt.push({ type: 'assistant', functionCalls: [compressContextCall] });
|
|
77
180
|
prompt.push({
|
|
78
181
|
type: 'user',
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
call_id: compressContextCall.id,
|
|
82
|
-
name: 'compressContext',
|
|
83
|
-
content: '',
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
cache: true,
|
|
182
|
+
itemId: 'INITIAL_PROMPT',
|
|
183
|
+
text: 'This is summary of our conversation:\n\n' + compressContextCall.args.conversationSummary,
|
|
87
184
|
});
|
|
88
185
|
// Ensure context
|
|
89
186
|
await executeStepEnsureContext(prompt, compressContextCall, options);
|
|
@@ -100,11 +197,11 @@ export async function executeStepContextCompression(generateContentFn, prompt, o
|
|
|
100
197
|
*/
|
|
101
198
|
async function compressConversationHistory(generateContentFn, prompt, options) {
|
|
102
199
|
const summaryPrompt = [
|
|
103
|
-
...prompt,
|
|
104
200
|
{
|
|
105
|
-
type: '
|
|
106
|
-
|
|
201
|
+
type: 'systemPrompt',
|
|
202
|
+
systemPrompt: CONTEXT_COMPRESSION_PROMPT,
|
|
107
203
|
},
|
|
204
|
+
...prompt,
|
|
108
205
|
];
|
|
109
206
|
const request = [
|
|
110
207
|
summaryPrompt,
|
|
@@ -114,8 +211,7 @@ async function compressConversationHistory(generateContentFn, prompt, options) {
|
|
|
114
211
|
ModelType.CHEAP,
|
|
115
212
|
options,
|
|
116
213
|
];
|
|
117
|
-
|
|
118
|
-
result = (await validateAndRecoverSingleResult(request, result, generateContentFn));
|
|
214
|
+
const result = (await generateContentFn(...request));
|
|
119
215
|
return result[0];
|
|
120
216
|
}
|
|
121
217
|
//# sourceMappingURL=step-context-compression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-context-compression.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-compression.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-context-compression.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-compression.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4D,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAEvH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DA0JiB,CAAC;AAE5D;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,iBAA0C,EAC1C,MAAoB,EACpB,OAAuB;IAEvB,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,CAAC;IACxF,IAAI,kBAAkB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC9B,gBAAgB,CAAC,oDAAoD,CAAC,CAAC;QACvE,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC;QACH,gBAAgB,CAAC,oCAAoC,CAAC,CAAC;QACvD,MAAM,mBAAmB,GAAG,MAAM,2BAA2B,CAC3D,iBAAiB,EACjB,MAAM,CAAC,KAAK,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,CAAC,EAC/C,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,gBAAgB,CAAC,6CAA6C,CAAC,CAAC;YAChE,OAAO,UAAU,CAAC,KAAK,CAAC;QAC1B,CAAC;QAED,wEAAwE;QACxE,MAAM,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,CAAC;QAEtE,mCAAmC;QACnC,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,0CAA0C,GAAG,mBAAmB,CAAC,IAAK,CAAC,mBAAmB;SACjG,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,wBAAwB,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAErE,gBAAgB,CAAC,6CAA6C,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAE1F,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gBAAgB,CAAC,yDAAyD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACvF,OAAO,UAAU,CAAC,KAAK,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,2BAA2B,CACxC,iBAA0C,EAC1C,MAAoB,EACpB,OAAuB;IAEvB,MAAM,aAAa,GAAiB;QAClC;YACE,IAAI,EAAE,cAAc;YACpB,YAAY,EAAE,0BAA0B;SACzC;QACD,GAAG,MAAM;KACV,CAAC;IAEF,MAAM,OAAO,GAAwB;QACnC,aAAa;QACb,eAAe,EAAE;QACjB,iBAAiB;QACjB,GAAG,EAAE,qDAAqD;QAC1D,SAAS,CAAC,KAAK;QACf,OAAO;KACR,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,MAAM,iBAAiB,CAAC,GAAG,OAAO,CAAC,CAA6B,CAAC;IACjF,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC"}
|
|
@@ -4,11 +4,10 @@ import { getSourceCode } from '../../files/read-files.js';
|
|
|
4
4
|
import { getFunctionDefs } from '../function-calling.js';
|
|
5
5
|
import { StepResult } from './steps-types.js';
|
|
6
6
|
import { estimateTokenCount } from '../token-estimator.js';
|
|
7
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
8
7
|
import { getSourceCodeResponse } from './steps-utils.js';
|
|
9
8
|
import { importantContext } from '../../main/config.js';
|
|
10
9
|
import { getSummary } from '../../files/summary-cache.js';
|
|
11
|
-
import {
|
|
10
|
+
import { generateFileId } from '../../files/file-id-utils.js';
|
|
12
11
|
export const OPTIMIZATION_PROMPT = `You need to analyze the provided source code files and determine their relevance to the user's prompt. You will then call the \`optimizeContext\` function with the results.
|
|
13
12
|
|
|
14
13
|
**Crucially, only include files in the \`optimizedContext\` array of the \`optimizeContext\` function call if their calculated relevance score is 0.5 or greater.**
|
|
@@ -101,8 +100,7 @@ export async function executeStepContextOptimization(generateContentFn, prompt,
|
|
|
101
100
|
ModelType.CHEAP,
|
|
102
101
|
options,
|
|
103
102
|
];
|
|
104
|
-
|
|
105
|
-
result = await validateAndRecoverSingleResult(request, result, generateContentFn);
|
|
103
|
+
const result = await generateContentFn(...request);
|
|
106
104
|
const [optimizedContext, irrelevantFiles] = parseOptimizationResult(fullSourceCode, result);
|
|
107
105
|
if (!optimizedContext) {
|
|
108
106
|
putSystemMessage(`Warning: Context optimization failed. We need to abort.`);
|
|
@@ -196,21 +194,13 @@ function parseOptimizationResult(fullSourceCode, calls) {
|
|
|
196
194
|
// Preserving important files
|
|
197
195
|
continue;
|
|
198
196
|
}
|
|
199
|
-
// Calculate dependency weight (0-0.3) and add to base relevance
|
|
200
|
-
const depWeight = calculateDependencyWeight(filePath, fullSourceCode, relevantFiles);
|
|
201
|
-
const finalRelevance = Math.min(1, relevance + depWeight);
|
|
202
197
|
const content = (fullSourceCode[filePath] && 'content' in fullSourceCode[filePath]
|
|
203
198
|
? fullSourceCode[filePath]?.content
|
|
204
199
|
: undefined) ?? '';
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
const depsContent = Array.from(allDeps)
|
|
208
|
-
.map((dep) => (fullSourceCode[dep] && 'content' in fullSourceCode[dep] ? fullSourceCode[dep]?.content : undefined) ?? '')
|
|
209
|
-
.join('');
|
|
210
|
-
totalTokens += estimateTokenCount(content + depsContent);
|
|
211
|
-
result.push([item.filePath, finalRelevance]);
|
|
200
|
+
totalTokens += estimateTokenCount(content);
|
|
201
|
+
result.push([item.filePath, relevance]);
|
|
212
202
|
// Break if we exceed token limit and the file isn't highly relevant
|
|
213
|
-
if (totalTokens > MAX_TOTAL_TOKENS &&
|
|
203
|
+
if (totalTokens > MAX_TOTAL_TOKENS && relevance < 0.7) {
|
|
214
204
|
break;
|
|
215
205
|
}
|
|
216
206
|
}
|
|
@@ -224,9 +214,6 @@ function optimizeSourceCode(sourceCode, fullSourceCode, optimizedContext, irrele
|
|
|
224
214
|
const requiredFiles = new Set();
|
|
225
215
|
for (const [path] of optimizedContext) {
|
|
226
216
|
requiredFiles.add(path);
|
|
227
|
-
// Add all dependencies
|
|
228
|
-
const deps = getAllDependencies(path, fullSourceCode);
|
|
229
|
-
deps.forEach((dep) => requiredFiles.add(dep));
|
|
230
217
|
}
|
|
231
218
|
for (const [path] of Object.entries(fullSourceCode)) {
|
|
232
219
|
const isRequired = requiredFiles.has(path);
|
|
@@ -239,7 +226,7 @@ function optimizeSourceCode(sourceCode, fullSourceCode, optimizedContext, irrele
|
|
|
239
226
|
!(sourceCode[path] && 'content' in sourceCode[path] && sourceCode[path].content !== null)) {
|
|
240
227
|
contentTokenCount += estimateTokenCount(content);
|
|
241
228
|
optimizedSourceCode[path] = {
|
|
242
|
-
fileId:
|
|
229
|
+
fileId: generateFileId(path),
|
|
243
230
|
content,
|
|
244
231
|
...(dependencies && !isIrrelevant && { dependencies }),
|
|
245
232
|
};
|
|
@@ -247,7 +234,7 @@ function optimizeSourceCode(sourceCode, fullSourceCode, optimizedContext, irrele
|
|
|
247
234
|
else if (summary && !isIrrelevant) {
|
|
248
235
|
summaryTokenCount += estimateTokenCount(summary.summary);
|
|
249
236
|
optimizedSourceCode[path] = {
|
|
250
|
-
fileId:
|
|
237
|
+
fileId: generateFileId(path),
|
|
251
238
|
...summary,
|
|
252
239
|
...(dependencies && { dependencies }),
|
|
253
240
|
};
|
|
@@ -291,52 +278,4 @@ function clearPreviousSourceCodeResponses(prompt, irrelevantFiles) {
|
|
|
291
278
|
}
|
|
292
279
|
}
|
|
293
280
|
}
|
|
294
|
-
/**
|
|
295
|
-
* Calculate dependency chain weight for a file
|
|
296
|
-
* Returns a value between 0 and 0.3 based on dependency importance
|
|
297
|
-
*/
|
|
298
|
-
function calculateDependencyWeight(filePath, sourceCode, relevantFiles, visited = new Set()) {
|
|
299
|
-
if (visited.has(filePath)) {
|
|
300
|
-
return 0; // Prevent circular dependency loops
|
|
301
|
-
}
|
|
302
|
-
visited.add(filePath);
|
|
303
|
-
const fileData = sourceCode[filePath];
|
|
304
|
-
if (!fileData || !('dependencies' in fileData) || !fileData.dependencies) {
|
|
305
|
-
return 0;
|
|
306
|
-
}
|
|
307
|
-
let weight = 0;
|
|
308
|
-
for (const dep of fileData.dependencies) {
|
|
309
|
-
if (dep.type === 'local' && relevantFiles.has(dep.path)) {
|
|
310
|
-
// Direct dependency of a relevant file gets higher weight
|
|
311
|
-
weight = Math.max(weight, 0.2);
|
|
312
|
-
// Recursively check dependencies with diminishing weight
|
|
313
|
-
const depWeight = calculateDependencyWeight(dep.path, sourceCode, relevantFiles, visited) * 0.7;
|
|
314
|
-
weight = Math.max(weight, depWeight);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
return weight;
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Get all dependencies for a file, including transitive ones
|
|
321
|
-
*/
|
|
322
|
-
function getAllDependencies(filePath, sourceCode, visited = new Set()) {
|
|
323
|
-
if (visited.has(filePath)) {
|
|
324
|
-
return new Set(); // Prevent circular dependency loops
|
|
325
|
-
}
|
|
326
|
-
visited.add(filePath);
|
|
327
|
-
const deps = new Set();
|
|
328
|
-
const fileData = sourceCode[filePath];
|
|
329
|
-
if (!fileData || !('dependencies' in fileData) || !fileData.dependencies) {
|
|
330
|
-
return deps;
|
|
331
|
-
}
|
|
332
|
-
for (const dep of fileData.dependencies) {
|
|
333
|
-
if (dep.type === 'local') {
|
|
334
|
-
deps.add(dep.path);
|
|
335
|
-
// Add transitive dependencies
|
|
336
|
-
const transitiveDeps = getAllDependencies(dep.path, sourceCode, visited);
|
|
337
|
-
transitiveDeps.forEach((d) => deps.add(d));
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
return deps;
|
|
341
|
-
}
|
|
342
281
|
//# 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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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ModelType } from '../../ai-service/common-types.js';
|
|
2
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
3
2
|
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
4
3
|
import { executeStepEnsureContext } from './step-ensure-context.js';
|
|
5
4
|
import { StepResult } from './steps-types.js';
|
|
@@ -29,8 +28,7 @@ export async function generateCodegenSummary(generateContentFn, prompt, function
|
|
|
29
28
|
options.cheap ? ModelType.CHEAP : ModelType.DEFAULT,
|
|
30
29
|
options,
|
|
31
30
|
];
|
|
32
|
-
|
|
33
|
-
baseResult = await validateAndRecoverSingleResult(baseRequest, baseResult, generateContentFn);
|
|
31
|
+
const baseResult = await generateContentFn(...baseRequest);
|
|
34
32
|
const codegenSummaryRequest = baseResult.find((call) => call.name === 'codegenSummary');
|
|
35
33
|
if (!codegenSummaryRequest) {
|
|
36
34
|
// This is unexpected, if happens probably means no code updates.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-generate-codegen-summary.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-generate-codegen-summary.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"step-generate-codegen-summary.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-generate-codegen-summary.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAErH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,iBAA0C,EAC1C,MAAoB,EACpB,YAA2B,EAC3B,OAAuB;IAKvB,MAAM,WAAW,GAA6E;QAC5F;YACE,GAAG,MAAM;YACT;gBACE,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,gCAAgC;aACvC;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,sBAAsB;aAC7B;SACF;QACD,YAAY;QACZ,gBAAgB;QAChB,OAAO,CAAC,WAAW,IAAI,GAAG;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO;QACnD,OAAO;KACR,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,WAAW,CAAC,CAAC;IAC3D,MAAM,qBAAqB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,gBAAgB,CAEzE,CAAC;IAEd,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,iEAAiE;QACjE,gBAAgB,CAAC,oDAAoD,CAAC,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjD,CAAC;IAED,gBAAgB,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,CAAC;IAEpE,8CAA8C;IAC9C,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAC/F,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE,8BAA8B,CAAC,CAAC;IAEhG,4CAA4C;IAC5C,MAAM,aAAa,GAAG,MAAM,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAC7F,IAAI,aAAa,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,IAAI,CAAC;QACV,IAAI,EAAE,MAAM;QACZ,iBAAiB,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpF,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,OAAO;QACL,qBAAqB;QACrB,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -3,7 +3,6 @@ import { readCache, writeCache } from '../../files/cache-file.js';
|
|
|
3
3
|
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
4
4
|
import { getFunctionDefs } from '../function-calling.js';
|
|
5
5
|
import { StepResult } from './steps-types.js';
|
|
6
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
7
6
|
export async function executeStepHistoryUpdate(generateContentFn, prompt, options) {
|
|
8
7
|
const currentHistory = getCurrentHistory();
|
|
9
8
|
const optimizationPrompt = [
|
|
@@ -47,8 +46,7 @@ ${currentHistory}
|
|
|
47
46
|
ModelType.CHEAP,
|
|
48
47
|
options,
|
|
49
48
|
];
|
|
50
|
-
|
|
51
|
-
result = await validateAndRecoverSingleResult(request, result, generateContentFn);
|
|
49
|
+
const result = await generateContentFn(...request);
|
|
52
50
|
const { newHistoryContent, recentConversationSummary } = result.find((call) => call.name === 'updateHistory')?.args ?? {};
|
|
53
51
|
if (newHistoryContent) {
|
|
54
52
|
putSystemMessage('History updated', { newHistoryContent, recentConversationSummary });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-history-update.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-history-update.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"step-history-update.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-history-update.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,iBAA0C,EAC1C,MAAoB,EACpB,OAAuB;IAEvB,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;IAE3C,MAAM,kBAAkB,GAAiB;QACvC,GAAG,MAAM;QACT;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,qEAAqE;SAC5E;QACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE;;wBAEY,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;;;;EAkB9C,cAAc;;CAEf;SACI;KACF,CAAC;IAEF,MAAM,OAAO,GAAwB;QACnC,kBAAkB;QAClB,eAAe,EAAE;QACjB,eAAe;QACf,CAAC;QACD,SAAS,CAAC,KAAK;QACf,OAAO;KACR,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,OAAO,CAAC,CAAC;IACnD,MAAM,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,GACpD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IACnE,IAAI,iBAAiB,EAAE,CAAC;QACtB,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACtF,UAAU,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,UAAU,CAAC,QAAQ,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,SAAS,CAAC,SAAS,EAAE,0DAA0D,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import mime from 'mime-types';
|
|
3
3
|
import { ModelType } from '../../ai-service/common-types.js';
|
|
4
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
5
4
|
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
6
5
|
import { executeStepGenerateImage } from './step-generate-image.js';
|
|
7
6
|
import { executeStepVerifyPatch } from './step-verify-patch.js';
|
|
@@ -73,8 +72,6 @@ async function processFileUpdate(file, generateContentFn, generateImageFn, promp
|
|
|
73
72
|
options,
|
|
74
73
|
];
|
|
75
74
|
let partialResult = await generateContentFn(...partialRequest);
|
|
76
|
-
// Validate function call compliance
|
|
77
|
-
partialResult = await validateAndRecoverSingleResult(partialRequest, partialResult, generateContentFn);
|
|
78
75
|
// Verify patch file operations
|
|
79
76
|
const patchFileCall = partialResult.find((call) => call.name === 'patchFile');
|
|
80
77
|
if (patchFileCall) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-process-file-updates.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-process-file-updates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,YAAY,CAAC;AAO9B,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"step-process-file-updates.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-process-file-updates.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { GenerateContentFunction } from '../../ai-service/common-types.js';
|
|
2
2
|
import { PromptItem } from '../../ai-service/common-types.js';
|
|
3
3
|
import { CodegenOptions } from '../../main/codegen-types.js';
|
|
4
|
-
import { SourceCodeMap } from '../../files/source-code-types.js';
|
|
4
|
+
import { FileId, SourceCodeMap } from '../../files/source-code-types.js';
|
|
5
5
|
export declare function getSummarizationPrefix(items: {
|
|
6
6
|
path: string;
|
|
7
7
|
content: string | null;
|
|
8
|
+
fileId: FileId;
|
|
8
9
|
}[], allFilePaths: string[]): PromptItem[];
|
|
9
10
|
export declare function summarizeSourceCode(generateContentFn: GenerateContentFunction, sourceCode: SourceCodeMap, options: CodegenOptions): Promise<void>;
|
|
@@ -3,9 +3,9 @@ import { getFunctionDefs } from '../function-calling.js';
|
|
|
3
3
|
import { md5, writeCache } from '../../files/cache-file.js';
|
|
4
4
|
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
5
5
|
import { estimateTokenCount } from '../token-estimator.js';
|
|
6
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
7
6
|
import { refreshFiles } from '../../files/find-files.js';
|
|
8
7
|
import { summaryCache, CACHE_VERSION } from '../../files/summary-cache.js';
|
|
8
|
+
import { generateFileId } from '../../files/file-id-utils.js';
|
|
9
9
|
const BATCH_SIZE = 50;
|
|
10
10
|
const MAX_SUMMARY_TOKENS = 10;
|
|
11
11
|
const SUMMARIZATION_PROMPT = `Your role is to summarize content of files in ${MAX_SUMMARY_TOKENS} tokens or fewer while also detecting dependencies.
|
|
@@ -26,6 +26,7 @@ For dependencies:
|
|
|
26
26
|
- Classify dependencies as either 'local' or 'external'
|
|
27
27
|
- Provide your response using the \`setSummaries\` function.
|
|
28
28
|
- The file path must be absolute, exactly the same as you receive in the \`getSourceCode\` function responses.
|
|
29
|
+
- Deduplicate dependencies if they are repeated in the code
|
|
29
30
|
`;
|
|
30
31
|
export function getSummarizationPrefix(items, allFilePaths) {
|
|
31
32
|
return [
|
|
@@ -46,7 +47,7 @@ export function getSummarizationPrefix(items, allFilePaths) {
|
|
|
46
47
|
functionResponses: [
|
|
47
48
|
{
|
|
48
49
|
name: 'getSourceCode',
|
|
49
|
-
content: JSON.stringify(Object.fromEntries(allFilePaths.map((path) => [path, { fileId:
|
|
50
|
+
content: JSON.stringify(Object.fromEntries(allFilePaths.map((path) => [path, { fileId: generateFileId(path), content: null }]))),
|
|
50
51
|
},
|
|
51
52
|
],
|
|
52
53
|
cache: true,
|
|
@@ -77,7 +78,7 @@ export function getSummarizationPrefix(items, allFilePaths) {
|
|
|
77
78
|
functionResponses: [
|
|
78
79
|
{
|
|
79
80
|
name: 'getSourceCode',
|
|
80
|
-
content: JSON.stringify(Object.fromEntries(items.map((item) => [item.path, { fileId:
|
|
81
|
+
content: JSON.stringify(Object.fromEntries(items.map((item) => [item.path, { fileId: generateFileId(item.path), content: item.content }]))),
|
|
81
82
|
},
|
|
82
83
|
],
|
|
83
84
|
},
|
|
@@ -88,6 +89,7 @@ export async function summarizeSourceCode(generateContentFn, sourceCode, options
|
|
|
88
89
|
path,
|
|
89
90
|
content: 'content' in file ? file.content : null,
|
|
90
91
|
dependencies: 'dependencies' in file ? file.dependencies : undefined,
|
|
92
|
+
fileId: file.fileId,
|
|
91
93
|
}));
|
|
92
94
|
await summarizeBatch(generateContentFn, items, sourceCode, options);
|
|
93
95
|
refreshFiles();
|
|
@@ -105,8 +107,7 @@ async function summarizeBatch(generateContentFn, items, allSourceCodeMap, option
|
|
|
105
107
|
const batch = uncachedItems.slice(i, i + BATCH_SIZE);
|
|
106
108
|
const prompt = getSummarizationPrefix(batch, Object.keys(allSourceCodeMap));
|
|
107
109
|
const request = [prompt, getFunctionDefs(), 'setSummaries', 0.2, ModelType.CHEAP, options];
|
|
108
|
-
|
|
109
|
-
result = await validateAndRecoverSingleResult(request, result, generateContentFn);
|
|
110
|
+
const result = await generateContentFn(...request);
|
|
110
111
|
const batchSummaries = parseSummarizationResult(result);
|
|
111
112
|
batchSummaries.forEach((file) => {
|
|
112
113
|
const item = items.find((item) => item.path === file.filePath);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-summarization.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-summarization.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAI7D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"step-summarization.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-summarization.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import * as diff from 'diff';
|
|
3
3
|
import { ModelType } from '../../ai-service/common-types.js';
|
|
4
|
-
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
5
4
|
export async function executeStepVerifyPatch({ filePath, patch, explanation }, generateContentFn, prompt, functionDefs, temperature, cheap, options) {
|
|
6
5
|
console.log('Verification of patch for file:', filePath);
|
|
7
6
|
let updatedContent = false;
|
|
@@ -23,8 +22,7 @@ export async function executeStepVerifyPatch({ filePath, patch, explanation }, g
|
|
|
23
22
|
cheap ? ModelType.CHEAP : ModelType.DEFAULT,
|
|
24
23
|
options,
|
|
25
24
|
];
|
|
26
|
-
|
|
27
|
-
partialResult = await validateAndRecoverSingleResult(partialRequest, partialResult, generateContentFn);
|
|
25
|
+
const partialResult = await generateContentFn(...partialRequest);
|
|
28
26
|
const getSourceCodeCall = partialResult.find((call) => call.name === 'getSourceCode');
|
|
29
27
|
if (getSourceCodeCall) {
|
|
30
28
|
throw new Error('Unexpected getSourceCode: ' + JSON.stringify(getSourceCodeCall));
|