genaicode 0.9.1 → 0.9.3
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/ai-studio.js +1 -1
- package/dist/ai-service/ai-studio.js.map +1 -1
- package/dist/ai-service/common-types.d.ts +1 -0
- package/dist/ai-service/openai.js +1 -1
- package/dist/ai-service/service-configurations.js +3 -3
- package/dist/ai-service/service-configurations.js.map +1 -1
- package/dist/ai-service/vertex-ai.js +1 -1
- package/dist/ai-service/vertex-ai.js.map +1 -1
- package/dist/files/source-code-utils.js +2 -1
- package/dist/files/source-code-utils.js.map +1 -1
- package/dist/main/ui/frontend/assets/{index-D8KFdZaU.js → index-CSR1NiB_.js} +1 -1
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/prompt/function-calling.js +2 -0
- package/dist/prompt/function-calling.js.map +1 -1
- package/dist/prompt/function-defs/ask-question.js +4 -0
- package/dist/prompt/function-defs/ask-question.js.map +1 -1
- package/dist/prompt/function-defs/context-compression.d.ts +27 -0
- package/dist/prompt/function-defs/context-compression.js +34 -0
- package/dist/prompt/function-defs/context-compression.js.map +1 -0
- package/dist/prompt/prompt-service.js +1 -0
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +44 -14
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-compression.d.ts +2 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-compression.js +33 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-context-compression.js.map +1 -0
- package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js +35 -45
- 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 +35 -36
- package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +26 -18
- 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 -1
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +2 -0
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-context-compression.d.ts +8 -0
- package/dist/prompt/steps/step-context-compression.js +121 -0
- package/dist/prompt/steps/step-context-compression.js.map +1 -0
- package/dist/prompt/steps/step-ensure-context.js +3 -7
- package/dist/prompt/steps/step-ensure-context.js.map +1 -1
- package/dist/prompt/steps/step-generate-codegen-summary.js +0 -3
- package/dist/prompt/steps/step-generate-codegen-summary.js.map +1 -1
- package/dist/prompt/steps/step-generate-summary.js +1 -0
- package/dist/prompt/steps/step-generate-summary.js.map +1 -1
- package/dist/prompt/systemprompt.js +1 -0
- package/dist/prompt/systemprompt.js.map +1 -1
- package/package.json +1 -1
|
@@ -29,61 +29,51 @@ export async function handlePullAppContext({ generateContentFn, prompt, options,
|
|
|
29
29
|
? `Retrieved context value for key "${key}": ${JSON.stringify(contextValue, null, 2)}`
|
|
30
30
|
: `No context value found for key "${key}"`;
|
|
31
31
|
const reasonInfo = reason ? `\nReason for retrieval: ${reason}` : '';
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
32
|
+
putSystemMessage('Context retrieved successfully', {
|
|
33
|
+
contextKey: key,
|
|
34
|
+
contextValue: contextValue,
|
|
35
|
+
reason,
|
|
36
|
+
operation: 'get',
|
|
37
|
+
});
|
|
38
|
+
prompt.push({
|
|
39
|
+
type: 'assistant',
|
|
40
|
+
text: `${contextInfo}${reasonInfo}`,
|
|
41
|
+
functionCalls: [pullAppContextCall],
|
|
42
|
+
}, {
|
|
43
|
+
type: 'user',
|
|
44
|
+
functionResponses: [
|
|
36
45
|
{
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
functionCalls: [pullAppContextCall],
|
|
41
|
-
},
|
|
42
|
-
user: {
|
|
43
|
-
type: 'user',
|
|
44
|
-
text: 'Context retrieved successfully.',
|
|
45
|
-
functionResponses: [
|
|
46
|
-
{
|
|
47
|
-
name: 'pullAppContext',
|
|
48
|
-
call_id: pullAppContextCall.id,
|
|
49
|
-
content: JSON.stringify({ contextKey: key, contextValue, reason, operation: 'get' }),
|
|
50
|
-
},
|
|
51
|
-
],
|
|
52
|
-
data: {
|
|
53
|
-
contextKey: key,
|
|
54
|
-
contextValue: contextValue,
|
|
55
|
-
reason,
|
|
56
|
-
operation: 'get',
|
|
57
|
-
},
|
|
58
|
-
},
|
|
46
|
+
name: 'pullAppContext',
|
|
47
|
+
call_id: pullAppContextCall.id,
|
|
48
|
+
content: JSON.stringify({ contextKey: key, contextValue, reason, operation: 'get' }),
|
|
59
49
|
},
|
|
60
50
|
],
|
|
51
|
+
});
|
|
52
|
+
// Return the action result with context information
|
|
53
|
+
return {
|
|
54
|
+
breakLoop: false,
|
|
55
|
+
items: [],
|
|
61
56
|
};
|
|
62
57
|
}
|
|
63
58
|
catch (error) {
|
|
64
59
|
// Handle any errors that occur during context retrieval
|
|
65
60
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
|
|
66
|
-
putSystemMessage(`Error retrieving context
|
|
61
|
+
putSystemMessage(`Error retrieving context`, {
|
|
62
|
+
contextKey: key,
|
|
63
|
+
error: errorMessage,
|
|
64
|
+
reason,
|
|
65
|
+
operation: 'get',
|
|
66
|
+
});
|
|
67
|
+
prompt.push({
|
|
68
|
+
type: 'assistant',
|
|
69
|
+
text: `Failed to retrieve context for key "${key}": ${errorMessage}`,
|
|
70
|
+
}, {
|
|
71
|
+
type: 'user',
|
|
72
|
+
text: 'Context retrieval failed.',
|
|
73
|
+
});
|
|
67
74
|
return {
|
|
68
75
|
breakLoop: false,
|
|
69
|
-
items: [
|
|
70
|
-
{
|
|
71
|
-
assistant: {
|
|
72
|
-
type: 'assistant',
|
|
73
|
-
text: `Failed to retrieve context for key "${key}": ${errorMessage}`,
|
|
74
|
-
},
|
|
75
|
-
user: {
|
|
76
|
-
type: 'user',
|
|
77
|
-
text: 'Context retrieval failed.',
|
|
78
|
-
data: {
|
|
79
|
-
contextKey: key,
|
|
80
|
-
error: errorMessage,
|
|
81
|
-
reason,
|
|
82
|
-
operation: 'get',
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
],
|
|
76
|
+
items: [],
|
|
87
77
|
};
|
|
88
78
|
}
|
|
89
79
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-pull-app-context.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-pull-app-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,iBAAiB,EACjB,MAAM,EACN,OAAO,GACY;IACnB,gBAAgB,CAAC,uBAAuB,CAAC,CAAC;IAC1C,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,iBAAiB,CACnD,MAAM,EACN,eAAe,EAAE,EACjB,gBAAgB,EAChB,GAAG,EACH,SAAS,CAAC,KAAK,EACf,OAAO,CACR,CAAmD,CAAC;IAErD,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAC9B,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;QAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAEhD,IAAI,CAAC;QACH,iBAAiB;QACjB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,qCAAqC;QACrC,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;QAEhD,uCAAuC;QACvC,MAAM,WAAW,GAAG,YAAY;YAC9B,CAAC,CAAC,oCAAoC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YACtF,CAAC,CAAC,mCAAmC,GAAG,GAAG,CAAC;QAE9C,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAErE,
|
|
1
|
+
{"version":3,"file":"handle-pull-app-context.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-pull-app-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,55 +36,54 @@ export async function handlePushAppContext({ generateContentFn, prompt, options,
|
|
|
36
36
|
// Note: setContextValue includes value validation internally
|
|
37
37
|
await setContextValue(key, value);
|
|
38
38
|
// Format success message
|
|
39
|
-
const updateInfo = `Successfully updated context key "${key}"
|
|
39
|
+
const updateInfo = `Successfully updated context key "${key}"`;
|
|
40
40
|
const reasonInfo = reason ? `\nReason for update: ${reason}` : '';
|
|
41
|
+
putSystemMessage('Context updated successfully.', {
|
|
42
|
+
contextKey: key,
|
|
43
|
+
contextValue: value,
|
|
44
|
+
reason,
|
|
45
|
+
operation: 'set',
|
|
46
|
+
});
|
|
47
|
+
prompt.push({
|
|
48
|
+
type: 'assistant',
|
|
49
|
+
text: `${updateInfo}${reasonInfo}`,
|
|
50
|
+
functionCalls: [pushAppContextCall],
|
|
51
|
+
}, {
|
|
52
|
+
type: 'user',
|
|
53
|
+
functionResponses: [{ name: 'pushAppContext', call_id: pushAppContextCall.id, content: '' }],
|
|
54
|
+
});
|
|
41
55
|
// Return the action result with update confirmation
|
|
42
56
|
return {
|
|
43
57
|
breakLoop: false,
|
|
44
|
-
items: [
|
|
45
|
-
{
|
|
46
|
-
assistant: {
|
|
47
|
-
type: 'assistant',
|
|
48
|
-
text: `${updateInfo}${reasonInfo}`,
|
|
49
|
-
},
|
|
50
|
-
user: {
|
|
51
|
-
type: 'user',
|
|
52
|
-
text: 'Context updated successfully.',
|
|
53
|
-
data: {
|
|
54
|
-
contextKey: key,
|
|
55
|
-
contextValue: value,
|
|
56
|
-
reason,
|
|
57
|
-
operation: 'set',
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
],
|
|
58
|
+
items: [],
|
|
62
59
|
};
|
|
63
60
|
}
|
|
64
61
|
catch (error) {
|
|
65
62
|
// Handle any errors that occur during context update
|
|
66
63
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
|
|
67
64
|
putSystemMessage(`Error updating context: ${errorMessage}`);
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
prompt.push({
|
|
66
|
+
type: 'assistant',
|
|
67
|
+
functionCalls: [pushAppContextCall],
|
|
68
|
+
}, {
|
|
69
|
+
type: 'user',
|
|
70
|
+
text: 'Context update failed.',
|
|
71
|
+
functionResponses: [
|
|
71
72
|
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
contextKey: key,
|
|
81
|
-
error: errorMessage,
|
|
82
|
-
reason,
|
|
83
|
-
operation: 'set',
|
|
84
|
-
},
|
|
85
|
-
},
|
|
73
|
+
name: 'pushAppContext',
|
|
74
|
+
call_id: pushAppContextCall.id,
|
|
75
|
+
content: JSON.stringify({
|
|
76
|
+
contextKey: key,
|
|
77
|
+
error: errorMessage,
|
|
78
|
+
reason,
|
|
79
|
+
operation: 'set',
|
|
80
|
+
}),
|
|
86
81
|
},
|
|
87
82
|
],
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
breakLoop: false,
|
|
86
|
+
items: [],
|
|
88
87
|
};
|
|
89
88
|
}
|
|
90
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handle-push-app-context.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-push-app-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,iBAAiB,EACjB,MAAM,EACN,OAAO,GACY;IACnB,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAExC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,iBAAiB,CACnD,MAAM,EACN,eAAe,EAAE,EACjB,gBAAgB,EAChB,GAAG,EACH,SAAS,CAAC,KAAK,EACf,OAAO,CACR,CAAuC,CAAC;IAEzC,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAC9B,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;QAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAChD,IAAI,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAExC,IAAI,CAAC;QACH,iBAAiB;QACjB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;QAED,sCAAsC;QACtC,6DAA6D;QAC7D,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAElC,yBAAyB;QACzB,MAAM,UAAU,GAAG,qCAAqC,GAAG,
|
|
1
|
+
{"version":3,"file":"handle-push-app-context.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-push-app-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { getSourceCode } from '../../../../files/read-files.js';
|
|
|
4
4
|
import { getExpandedContextPaths } from '../../../../files/source-code-utils.js';
|
|
5
5
|
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
6
6
|
import { getFunctionDefs } from '../../../function-calling.js';
|
|
7
|
+
import { validateAndRecoverSingleResult } from '../../step-validate-recover.js';
|
|
7
8
|
export async function handleRequestFilesContent({ askQuestionCall, options, prompt, generateContentFn, }) {
|
|
8
9
|
let requestFilesContentCall = await generateRequestFilesContentCall(generateContentFn, prompt, askQuestionCall, options, ModelType.CHEAP);
|
|
9
10
|
if (!requestFilesContentCall) {
|
|
@@ -103,17 +104,26 @@ ${illegitimateFiles.map((path) => `- ${path}`).join('\n')}`
|
|
|
103
104
|
return { breakLoop: false, items: [] };
|
|
104
105
|
}
|
|
105
106
|
export async function generateRequestFilesContentCall(generateContentFn, prompt, askQuestionCall, options, modelType) {
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
107
|
+
const req = [
|
|
108
|
+
[
|
|
109
|
+
...prompt,
|
|
110
|
+
{
|
|
111
|
+
type: 'assistant',
|
|
112
|
+
text: askQuestionCall.args?.message ?? '',
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: 'user',
|
|
116
|
+
text: 'Yes, you can request the files contents.',
|
|
117
|
+
},
|
|
118
|
+
],
|
|
119
|
+
getFunctionDefs(),
|
|
120
|
+
'requestFilesContent',
|
|
121
|
+
0.7,
|
|
122
|
+
modelType,
|
|
123
|
+
options,
|
|
124
|
+
];
|
|
125
|
+
const result = await generateContentFn(...req);
|
|
126
|
+
const [requestFilesContentCall] = (await validateAndRecoverSingleResult(req, result, generateContentFn));
|
|
117
127
|
return requestFilesContentCall;
|
|
118
128
|
}
|
|
119
129
|
/**
|
|
@@ -132,13 +142,11 @@ function isFileContentAlreadyProvided(filePath, prompt) {
|
|
|
132
142
|
return false;
|
|
133
143
|
}
|
|
134
144
|
try {
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
'content' in sourceCodeTree[dirPath][fileName] &&
|
|
141
|
-
sourceCodeTree[dirPath][fileName].content !== null);
|
|
145
|
+
const sourceCodeMap = JSON.parse(response.content);
|
|
146
|
+
return (sourceCodeMap[filePath] &&
|
|
147
|
+
sourceCodeMap[filePath] &&
|
|
148
|
+
'content' in sourceCodeMap[filePath] &&
|
|
149
|
+
sourceCodeMap[filePath].content !== null);
|
|
142
150
|
}
|
|
143
151
|
catch (error) {
|
|
144
152
|
console.warn('Error parsing getSourceCode response:', error);
|
|
@@ -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":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAEjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"request-files-content.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/request-files-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import { PromptItemImage } from '../../../ai-service/common-types.js';
|
|
|
5
5
|
import { FunctionCall } from '../../../ai-service/common-types.js';
|
|
6
6
|
import { CodegenOptions } from '../../../main/codegen-types.js';
|
|
7
7
|
import { PluginActionType } from '../../../ai-service/service-configurations-types.js';
|
|
8
|
-
export type ActionType = 'codeGeneration' | 'sendMessage' | 'generateImage' | 'requestPermissions' | 'requestFilesContent' | 'removeFilesFromContext' | 'confirmCodeGeneration' | 'endConversation' | 'contextOptimization' | 'searchCode' | 'lint' | 'updateFile' | 'performAnalysis' | 'createFile' | 'pullAppContext' | 'genaicodeHelp' | 'pushAppContext' | 'reasoningInference' | PluginActionType;
|
|
8
|
+
export type ActionType = 'codeGeneration' | 'sendMessage' | 'generateImage' | 'requestPermissions' | 'requestFilesContent' | 'removeFilesFromContext' | 'confirmCodeGeneration' | 'endConversation' | 'contextOptimization' | 'contextCompression' | 'searchCode' | 'lint' | 'updateFile' | 'performAnalysis' | 'createFile' | 'pullAppContext' | 'genaicodeHelp' | 'pushAppContext' | 'reasoningInference' | PluginActionType;
|
|
9
9
|
type AskQuestionArgs = {
|
|
10
10
|
actionType: ActionType;
|
|
11
11
|
message: string;
|
|
@@ -21,6 +21,7 @@ import { handlePullAppContext } from './handlers/handle-pull-app-context.js';
|
|
|
21
21
|
import { handlePushAppContext } from './handlers/handle-push-app-context.js';
|
|
22
22
|
import { handleReasoningInference } from './handlers/handle-reasoning-inference.js';
|
|
23
23
|
import { handleGenaicodeHelp } from './handlers/handle-genaicode-help.js';
|
|
24
|
+
import { handleContextCompression } from './handlers/handle-context-compression.js';
|
|
24
25
|
export async function executeStepAskQuestion(generateContentFn, generateImageFn, prompt, functionDefs, waitIfPaused, temperature, options) {
|
|
25
26
|
putSystemMessage('Allowing the assistant to ask a question...');
|
|
26
27
|
while (!abortController?.signal.aborted) {
|
|
@@ -120,6 +121,7 @@ function getActionHandler(actionType) {
|
|
|
120
121
|
genaicodeHelp: handleGenaicodeHelp,
|
|
121
122
|
reasoningInference: handleReasoningInference,
|
|
122
123
|
pushAppContext: handlePushAppContext,
|
|
124
|
+
contextCompression: handleContextCompression,
|
|
123
125
|
};
|
|
124
126
|
return handlers[actionType] || handleSendMessage;
|
|
125
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-ask-question.js","sourceRoot":"","sources":["../../../../src/prompt/steps/step-ask-question/step-ask-question.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAEhE,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,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,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;
|
|
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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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GenerateContentFunction, PromptItem } from '../../ai-service/common-types.js';
|
|
2
|
+
import { CodegenOptions } from '../../main/codegen-types.js';
|
|
3
|
+
import { StepResult } from './steps-types.js';
|
|
4
|
+
export declare 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.\n\nKey Principles:\n1. Preserve Rich Context: Maintain detailed information about the conversation, especially for expensive operations like reasoning inference, code analysis, or complex decision-making.\n2. Token Efficiency: Aim for a meaningful compression (e.g., 5k tokens for a 100k token conversation) without being overly aggressive.\n3. File Handling: Do not include file contents in the summary - use filePaths array for this purpose.\n4. Temporal Context: Preserve chronological progression of important decisions and changes.\n\nRequired Information to Preserve:\n1. Conversation Flow:\n - Initial problem statement or task\n - Key questions asked and answers received\n - Important decisions made and their rationale\n - Results of expensive operations (reasoning inference, analysis)\n - Critical user preferences or constraints\n - Any errors or issues encountered\n\n2. Technical Details:\n - Code changes proposed or implemented\n - Architecture decisions\n - Performance considerations\n - Security implications\n - Dependencies identified\n - Testing requirements\n\n3. Implementation Status:\n - Current stage of development\n - Completed steps\n - Pending tasks\n - Known issues or challenges\n - Validation results\n\nFormat your response as a structured JSON object with:\n- conversationSummary: Detailed summary preserving rich context of the conversation's progression and key decisions\n- codegenIntent: Comprehensive description of the primary goal, constraints, and special requirements\n- filePaths: Array of file paths that are critical for the task (no file contents, just paths)\n\nExample of good summary structure:\n{\n \"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.\",\n \"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.\",\n \"filePaths\": [\"/path/to/relevant/files\"]\n}\n\nFocus on creating a summary that:\n1. Is comprehensive enough for the AI to understand the full context\n2. Preserves expensive computation results\n3. Maintains chronological flow of decisions\n4. Captures technical details and requirements\n5. Excludes file contents but includes critical file paths";
|
|
5
|
+
/**
|
|
6
|
+
* Executes the context compression step
|
|
7
|
+
*/
|
|
8
|
+
export declare function executeStepContextCompression(generateContentFn: GenerateContentFunction, prompt: PromptItem[], options: CodegenOptions): Promise<StepResult>;
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { ModelType } from '../../ai-service/common-types.js';
|
|
2
|
+
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
3
|
+
import { getFunctionDefs } from '../function-calling.js';
|
|
4
|
+
import { StepResult } from './steps-types.js';
|
|
5
|
+
import { validateAndRecoverSingleResult } from './step-validate-recover.js';
|
|
6
|
+
import { executeStepEnsureContext } from './step-ensure-context.js';
|
|
7
|
+
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
|
+
|
|
9
|
+
Key Principles:
|
|
10
|
+
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: Aim for a meaningful compression (e.g., 5k tokens for a 100k token conversation) without being overly aggressive.
|
|
12
|
+
3. File Handling: Do not include file contents in the summary - use filePaths array for this purpose.
|
|
13
|
+
4. Temporal Context: Preserve chronological progression of important decisions and changes.
|
|
14
|
+
|
|
15
|
+
Required Information to Preserve:
|
|
16
|
+
1. Conversation Flow:
|
|
17
|
+
- Initial problem statement or task
|
|
18
|
+
- Key questions asked and answers received
|
|
19
|
+
- Important decisions made and their rationale
|
|
20
|
+
- Results of expensive operations (reasoning inference, analysis)
|
|
21
|
+
- Critical user preferences or constraints
|
|
22
|
+
- Any errors or issues encountered
|
|
23
|
+
|
|
24
|
+
2. Technical Details:
|
|
25
|
+
- Code changes proposed or implemented
|
|
26
|
+
- Architecture decisions
|
|
27
|
+
- Performance considerations
|
|
28
|
+
- Security implications
|
|
29
|
+
- Dependencies identified
|
|
30
|
+
- Testing requirements
|
|
31
|
+
|
|
32
|
+
3. Implementation Status:
|
|
33
|
+
- Current stage of development
|
|
34
|
+
- Completed steps
|
|
35
|
+
- Pending tasks
|
|
36
|
+
- Known issues or challenges
|
|
37
|
+
- Validation results
|
|
38
|
+
|
|
39
|
+
Format your response as a structured JSON object with:
|
|
40
|
+
- 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
|
+
- filePaths: Array of file paths that are critical for the task (no file contents, just paths)
|
|
43
|
+
|
|
44
|
+
Example of good summary structure:
|
|
45
|
+
{
|
|
46
|
+
"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
|
+
"filePaths": ["/path/to/relevant/files"]
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
Focus on creating a summary that:
|
|
52
|
+
1. Is comprehensive enough for the AI to understand the full context
|
|
53
|
+
2. Preserves expensive computation results
|
|
54
|
+
3. Maintains chronological flow of decisions
|
|
55
|
+
4. Captures technical details and requirements
|
|
56
|
+
5. Excludes file contents but includes critical file paths`;
|
|
57
|
+
/**
|
|
58
|
+
* Executes the context compression step
|
|
59
|
+
*/
|
|
60
|
+
export async function executeStepContextCompression(generateContentFn, prompt, options) {
|
|
61
|
+
const initialPromptIndex = prompt.findIndex((item) => item.itemId === 'INITIAL_PROMPT');
|
|
62
|
+
if (initialPromptIndex === -1) {
|
|
63
|
+
putSystemMessage('Could not find initial prompt, something is wrong.');
|
|
64
|
+
return StepResult.CONTINUE;
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
putSystemMessage('Context compression is starting...');
|
|
68
|
+
const compressContextCall = await compressConversationHistory(generateContentFn, prompt, options);
|
|
69
|
+
if (!compressContextCall) {
|
|
70
|
+
putSystemMessage('Context compression did not return a result');
|
|
71
|
+
return StepResult.BREAK;
|
|
72
|
+
}
|
|
73
|
+
// Remove all items after the initial prompt
|
|
74
|
+
prompt.splice(initialPromptIndex + 1, prompt.length - initialPromptIndex - 1);
|
|
75
|
+
// Add compression result to prompt
|
|
76
|
+
prompt.push({ type: 'assistant', functionCalls: [compressContextCall] });
|
|
77
|
+
prompt.push({
|
|
78
|
+
type: 'user',
|
|
79
|
+
functionResponses: [
|
|
80
|
+
{
|
|
81
|
+
call_id: compressContextCall.id,
|
|
82
|
+
name: 'compressContext',
|
|
83
|
+
content: '',
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
cache: true,
|
|
87
|
+
});
|
|
88
|
+
// Ensure context
|
|
89
|
+
await executeStepEnsureContext(prompt, compressContextCall, options);
|
|
90
|
+
putSystemMessage('Context compression completed successfully.', compressContextCall.args);
|
|
91
|
+
return StepResult.CONTINUE;
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
putSystemMessage('An unexpected error occurred during context compression', { error });
|
|
95
|
+
return StepResult.BREAK;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Compresses the conversation history using the AI model
|
|
100
|
+
*/
|
|
101
|
+
async function compressConversationHistory(generateContentFn, prompt, options) {
|
|
102
|
+
const summaryPrompt = [
|
|
103
|
+
...prompt,
|
|
104
|
+
{
|
|
105
|
+
type: 'user',
|
|
106
|
+
text: CONTEXT_COMPRESSION_PROMPT,
|
|
107
|
+
},
|
|
108
|
+
];
|
|
109
|
+
const request = [
|
|
110
|
+
summaryPrompt,
|
|
111
|
+
getFunctionDefs(),
|
|
112
|
+
'compressContext',
|
|
113
|
+
0.3, // Use a lower temperature for more focused summaries
|
|
114
|
+
ModelType.CHEAP,
|
|
115
|
+
options,
|
|
116
|
+
];
|
|
117
|
+
let result = (await generateContentFn(...request));
|
|
118
|
+
result = (await validateAndRecoverSingleResult(request, result, generateContentFn));
|
|
119
|
+
return result[0];
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=step-context-compression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"step-context-compression.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-context-compression.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,7 +45,6 @@ export async function executeStepEnsureContext(prompt, functionCall, options) {
|
|
|
45
45
|
},
|
|
46
46
|
],
|
|
47
47
|
});
|
|
48
|
-
putSystemMessage('Context completeness check completed successfully.');
|
|
49
48
|
return StepResult.CONTINUE;
|
|
50
49
|
}
|
|
51
50
|
catch (error) {
|
|
@@ -100,12 +99,9 @@ function getExistingContextPaths(prompt) {
|
|
|
100
99
|
continue;
|
|
101
100
|
try {
|
|
102
101
|
const sourceCode = JSON.parse(sourceCodeResponse.content);
|
|
103
|
-
for (const [
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
if (fileInfo && typeof fileInfo === 'object' && 'content' in fileInfo && fileInfo.content !== null) {
|
|
107
|
-
existingPaths.add(fullPath);
|
|
108
|
-
}
|
|
102
|
+
for (const [fullPath, fileInfo] of Object.entries(sourceCode)) {
|
|
103
|
+
if (fileInfo && typeof fileInfo === 'object' && 'content' in fileInfo && fileInfo.content !== null) {
|
|
104
|
+
existingPaths.add(fullPath);
|
|
109
105
|
}
|
|
110
106
|
}
|
|
111
107
|
}
|
|
@@ -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;AAE9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAoH,EACpH,YAA0B,EAC1B,OAAuB;IAEvB,IAAI,CAAC;QACH,6BAA6B;QAC7B,MAAM,aAAa,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;YACnD,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC7B,CAAC;QAED,wCAAwC;QACxC,MAAM,aAAa,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAEtD,2CAA2C;QAC3C,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;YAC/D,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC7B,CAAC;QAED,oCAAoC;QACpC,gBAAgB,CAAC,yCAAyC,YAAY,CAAC,MAAM,iBAAiB,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;QAClH,MAAM,UAAU,GAAG,aAAa,CAC9B,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EACzE,OAAO,CACR,CAAC;QAEF,4DAA4D;QAC5D,MAAM,CAAC,IAAI,CACT;YACE,IAAI,EAAE,WAAW;YACjB,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE;wBACJ,SAAS,EAAE,YAAY;qBACxB;iBACF;aACF;SACF,EACD;YACE,IAAI,EAAE,MAAM;YACZ,iBAAiB,EAAE;gBACjB;oBACE,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;iBACpC;aACF;SACF,CACF,CAAC;
|
|
1
|
+
{"version":3,"file":"step-ensure-context.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ensure-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import { executeStepEnsureContext } from './step-ensure-context.js';
|
|
|
5
5
|
import { StepResult } from './steps-types.js';
|
|
6
6
|
import assert from 'node:assert';
|
|
7
7
|
import { PROMPT_CODEGEN_SUMMARY, PROMPT_CODEGEN_SUMMARY_ASSISTANT } from './step-generate-codegen-summary-prompt.js';
|
|
8
|
-
import { getExpandedContextPaths } from '../../files/source-code-utils.js';
|
|
9
8
|
/**
|
|
10
9
|
* Generates and validates the codegen summary.
|
|
11
10
|
* This is the first part of the original executeStepCodegenSummary function.
|
|
@@ -42,8 +41,6 @@ export async function generateCodegenSummary(generateContentFn, prompt, function
|
|
|
42
41
|
// Sometimes the result happens to be a string
|
|
43
42
|
assert(Array.isArray(codegenSummaryRequest?.args?.fileUpdates), 'fileUpdates is not an array');
|
|
44
43
|
assert(Array.isArray(codegenSummaryRequest?.args.contextPaths), 'contextPaths is not an array');
|
|
45
|
-
// Expand context paths
|
|
46
|
-
codegenSummaryRequest.args.contextPaths = getExpandedContextPaths(codegenSummaryRequest.args.contextPaths, options);
|
|
47
44
|
// Ensure all necessary files are in context
|
|
48
45
|
const contextResult = await executeStepEnsureContext(prompt, codegenSummaryRequest, options);
|
|
49
46
|
if (contextResult === StepResult.BREAK) {
|
|
@@ -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,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,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;
|
|
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,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC5E,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,IAAI,UAAU,GAAG,MAAM,iBAAiB,CAAC,GAAG,WAAW,CAAC,CAAC;IACzD,UAAU,GAAG,MAAM,8BAA8B,CAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;IAC9F,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"}
|
|
@@ -27,6 +27,7 @@ export async function executeStepGenerateSummary(generateContentFn, prompt, opti
|
|
|
27
27
|
const summaryExplanation = summaryResult.find((call) => call.name === 'explanation');
|
|
28
28
|
if (summaryExplanation && summaryExplanation.args && typeof summaryExplanation.args.text === 'string') {
|
|
29
29
|
const conversationSummary = summaryExplanation.args.text;
|
|
30
|
+
// TODO: this should be the final message in the UI
|
|
30
31
|
putSystemMessage('Generated conversation summary', conversationSummary, [ChatMessageFlags.CONVERSATION_SUMMARY]);
|
|
31
32
|
}
|
|
32
33
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-generate-summary.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-generate-summary.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,iBAA0C,EAC1C,MAAoB,EACpB,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;QACxC,gBAAgB,CAAC,uEAAuE,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAwB;QAC1C;YACE,GAAG,MAAM;YACT,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oCAAoC,EAAE;YACjE;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,kHAAkH;aACzH;SACF;QACD,eAAe,EAAE;QACjB,aAAa;QACb,GAAG,EAAE,qDAAqD;QAC1D,SAAS,CAAC,KAAK;QACf,OAAO;KACR,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,cAAc,CAAC,CAAC;QACjE,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAErF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,IAAI,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtG,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACzD,gBAAgB,CAAC,gCAAgC,EAAE,mBAAmB,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,gBAAgB,CAAC,0CAA0C,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"step-generate-summary.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-generate-summary.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,iBAA0C,EAC1C,MAAoB,EACpB,OAAuB;IAEvB,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC;QACxC,gBAAgB,CAAC,uEAAuE,CAAC,CAAC;QAC1F,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAwB;QAC1C;YACE,GAAG,MAAM;YACT,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,oCAAoC,EAAE;YACjE;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,kHAAkH;aACzH;SACF;QACD,eAAe,EAAE;QACjB,aAAa;QACb,GAAG,EAAE,qDAAqD;QAC1D,SAAS,CAAC,KAAK;QACf,OAAO;KACR,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,cAAc,CAAC,CAAC;QACjE,MAAM,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;QAErF,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,IAAI,IAAI,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtG,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;YACzD,mDAAmD;YACnD,gBAAgB,CAAC,gCAAgC,EAAE,mBAAmB,EAAE,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;QAC/D,gBAAgB,CAAC,0CAA0C,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;AACH,CAAC"}
|
|
@@ -56,6 +56,7 @@ To have conversation with me use the \`askQuestion\` function. This function all
|
|
|
56
56
|
- **Perform Code Generation**: Once you have all the necessary information, you can propose code changes.
|
|
57
57
|
- **Update Files**: If you need to make small changes to a file, you can request to update it.
|
|
58
58
|
- **Lint Code**: If you want to check the code for errors, you can request linting
|
|
59
|
+
- **Use Context Compression**: Autonomously initiate context compression when the conversation history becomes large or complex, or the topic of conversation changes. Always inform the user before compressing and explain the benefits.
|
|
59
60
|
|
|
60
61
|
Also additional actions can be added by plugins, and their names will be prefixed with \`plugin:\`.
|
|
61
62
|
|