genaicode 0.8.3 → 0.8.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 +1 -1
- package/dist/ai-service/anthropic.js.map +1 -1
- package/dist/ai-service/common.d.ts +2 -1
- package/dist/ai-service/common.js +1 -2
- package/dist/ai-service/common.js.map +1 -1
- package/dist/ai-service/openai.d.ts +8 -0
- package/dist/ai-service/openai.js +182 -0
- package/dist/ai-service/openai.js.map +1 -0
- package/dist/ai-service/service-configurations.js +9 -3
- package/dist/ai-service/service-configurations.js.map +1 -1
- package/dist/cli/cli-options.js +1 -1
- package/dist/cli/cli-options.js.map +1 -1
- package/dist/cli/service-autodetect.js +1 -1
- package/dist/cli/service-autodetect.js.map +1 -1
- package/dist/cli/validate-cli-params.js +1 -1
- package/dist/cli/validate-cli-params.js.map +1 -1
- package/dist/files/find-files.js +5 -2
- package/dist/files/find-files.js.map +1 -1
- package/dist/files/read-files.d.ts +1 -0
- package/dist/files/read-files.js +13 -5
- package/dist/files/read-files.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/main/codegen-types.d.ts +56 -4
- package/dist/main/codegen-utils.js +1 -1
- package/dist/main/codegen-utils.js.map +1 -1
- package/dist/main/codegen.js +5 -5
- package/dist/main/codegen.js.map +1 -1
- package/dist/main/common/content-bus-types.d.ts +1 -1
- package/dist/main/config-lib.d.ts +8 -5
- package/dist/main/config-lib.js +4 -1
- package/dist/main/config-lib.js.map +1 -1
- package/dist/main/config-schema.d.ts +14 -0
- package/dist/main/config-schema.js +145 -0
- package/dist/main/config-schema.js.map +1 -0
- package/dist/main/config.d.ts +1 -0
- package/dist/main/config.js +13 -5
- package/dist/main/config.js.map +1 -1
- package/dist/main/interactive/select-ai-service.js +1 -1
- package/dist/main/interactive/select-ai-service.js.map +1 -1
- package/dist/main/plugin-loader.d.ts +18 -3
- package/dist/main/plugin-loader.js +155 -48
- package/dist/main/plugin-loader.js.map +1 -1
- package/dist/main/ui/backend/api-handlers.d.ts +6 -0
- package/dist/main/ui/backend/api-handlers.js +5 -0
- package/dist/main/ui/backend/api-handlers.js.map +1 -0
- package/dist/main/ui/backend/api.d.ts +1 -0
- package/dist/main/ui/backend/api.js +6 -313
- package/dist/main/ui/backend/api.js.map +1 -1
- package/dist/main/ui/backend/endpoints/config-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/config-endpoint.js +39 -0
- package/dist/main/ui/backend/endpoints/config-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/content-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/content-endpoint.js +14 -0
- package/dist/main/ui/backend/endpoints/content-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/edit-message-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/edit-message-endpoint.js +34 -0
- package/dist/main/ui/backend/endpoints/edit-message-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/execute-codegen-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/execute-codegen-endpoint.js +44 -0
- package/dist/main/ui/backend/endpoints/execute-codegen-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/execution-status-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/execution-status-endpoint.js +37 -0
- package/dist/main/ui/backend/endpoints/execution-status-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/generate-content-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/generate-content-endpoint.js +29 -0
- package/dist/main/ui/backend/endpoints/generate-content-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/index.d.ts +11 -0
- package/dist/main/ui/backend/endpoints/index.js +12 -0
- package/dist/main/ui/backend/endpoints/index.js.map +1 -0
- package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js +14 -0
- package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/iteration-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/iteration-endpoint.js +16 -0
- package/dist/main/ui/backend/endpoints/iteration-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/question-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/question-endpoint.js +37 -0
- package/dist/main/ui/backend/endpoints/question-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/service-configuration-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/service-configuration-endpoint.js +54 -0
- package/dist/main/ui/backend/endpoints/service-configuration-endpoint.js.map +1 -0
- package/dist/main/ui/backend/endpoints/usage-endpoint.d.ts +1 -0
- package/dist/main/ui/backend/endpoints/usage-endpoint.js +15 -0
- package/dist/main/ui/backend/endpoints/usage-endpoint.js.map +1 -0
- package/dist/main/ui/common/api-types.d.ts +5 -1
- package/dist/main/ui/frontend/assets/index-DY7-_JMu.js +1759 -0
- package/dist/main/ui/frontend/index.html +1 -1
- package/dist/prompt/ai-service-fallback.js +10 -3
- package/dist/prompt/ai-service-fallback.js.map +1 -1
- package/dist/prompt/function-calling-validate.d.ts +1 -1
- package/dist/prompt/function-calling-validate.js +13 -5
- package/dist/prompt/function-calling-validate.js.map +1 -1
- package/dist/prompt/function-defs/ask-question.js +80 -39
- package/dist/prompt/function-defs/ask-question.js.map +1 -1
- package/dist/prompt/limits.js +2 -2
- package/dist/prompt/prompt-service.js +2 -1
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/prompt-service.test-utils.d.ts +1 -1
- package/dist/prompt/prompt-service.test-utils.js +1 -1
- package/dist/prompt/prompt-service.test-utils.js.map +1 -1
- package/dist/prompt/static-prompts.d.ts +2 -1
- package/dist/prompt/static-prompts.js +2 -1
- package/dist/prompt/static-prompts.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/cancel-code-generation.js +2 -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.js +15 -15
- package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js +3 -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.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js +2 -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.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/default-action.js +2 -2
- package/dist/prompt/steps/step-ask-question/handlers/default-action.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js +5 -5
- 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-with-image.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message-with-image.js +4 -4
- 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.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +3 -3
- package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/lint.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/lint.js +4 -4
- package/dist/prompt/steps/step-ask-question/handlers/lint.js.map +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js +3 -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.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +7 -7
- 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.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js +4 -4
- 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 +15 -3
- package/dist/prompt/steps/step-ask-question/step-ask-question.js +12 -7
- package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-codegen-planning.js +63 -3
- package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
- package/dist/prompt/steps/step-context-optimization.js +11 -1
- package/dist/prompt/steps/step-context-optimization.js.map +1 -1
- package/dist/prompt/steps/step-generate-codegen-summary.js +3 -5
- package/dist/prompt/steps/step-generate-codegen-summary.js.map +1 -1
- package/dist/prompt/steps/step-process-file-updates.js +56 -10
- package/dist/prompt/steps/step-process-file-updates.js.map +1 -1
- package/dist/prompt/steps/step-summarization.js +2 -0
- package/dist/prompt/steps/step-summarization.js.map +1 -1
- package/dist/prompt/steps/step-validate-recover.js +5 -5
- package/dist/prompt/steps/step-validate-recover.js.map +1 -1
- package/dist/prompt/systemprompt.js +6 -3
- package/dist/prompt/systemprompt.js.map +1 -1
- package/dist/vite-genaicode/vite-genaicode-plugin.d.ts +4 -2
- package/dist/vite-genaicode/vite-genaicode-plugin.js +41 -24
- package/dist/vite-genaicode/vite-genaicode-plugin.js.map +1 -1
- package/package.json +7 -7
- package/dist/main/ui/frontend/assets/index-jwSqt8cG.js +0 -1337
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<meta name="keywords" content="GenAIcode, AI, code generation, programming" />
|
|
8
8
|
<title>GenAIcode - AI-Powered Code Generation</title>
|
|
9
9
|
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
|
|
10
|
-
<script type="module" crossorigin src="/assets/index-
|
|
10
|
+
<script type="module" crossorigin src="/assets/index-DY7-_JMu.js"></script>
|
|
11
11
|
<link rel="stylesheet" crossorigin href="/assets/index-S_ocA1xG.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body data-security-token="__SECURITY_TOKEN__">
|
|
@@ -4,7 +4,7 @@ import { abortController } from '../main/interactive/codegen-worker.js';
|
|
|
4
4
|
const AI_SERVICES_MAP = [
|
|
5
5
|
[() => process.env.ANTHROPIC_API_KEY, 'anthropic'],
|
|
6
6
|
[() => process.env.GOOGLE_CLOUD_PROJECT && process.env.GOOGLE_CLOUD_REGION, 'vertex-ai-claude'],
|
|
7
|
-
[() => process.env.OPENAI_API_KEY, '
|
|
7
|
+
[() => process.env.OPENAI_API_KEY, 'openai'],
|
|
8
8
|
[() => process.env.GOOGLE_CLOUD_PROJECT, 'vertex-ai'],
|
|
9
9
|
[() => process.env.API_KEY, 'ai-studio'],
|
|
10
10
|
];
|
|
@@ -29,14 +29,21 @@ export async function handleAiServiceFallback(generateContentFns, currentService
|
|
|
29
29
|
putSystemMessage(`Operation interrupted for ${permanentService}`);
|
|
30
30
|
throw error; // Re-throw the interruption error
|
|
31
31
|
}
|
|
32
|
+
if (!options.disableAiServiceFallback && (options.interactive || options.ui)) {
|
|
33
|
+
putSystemMessage(`Content generation failed for ${permanentService}`, { error });
|
|
34
|
+
const shouldRetry = await askUserForConfirmation(`Content generation failed, do you want to retry?`, true);
|
|
35
|
+
if (shouldRetry.confirmed) {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
32
39
|
if (error.message.includes('Rate limit exceeded')) {
|
|
33
40
|
putSystemMessage(`Rate limit exceeded for ${permanentService}`);
|
|
34
|
-
if (options.disableAiServiceFallback) {
|
|
41
|
+
if (!options.disableAiServiceFallback) {
|
|
35
42
|
if (options.interactive || options.ui) {
|
|
36
43
|
const nextService = getNextAiService(permanentService);
|
|
37
44
|
if (nextService) {
|
|
38
45
|
const shouldSwitch = await askUserForConfirmation(`Rate limit exceeded for ${permanentService}. Would you like to switch to ${nextService}?`, true);
|
|
39
|
-
if (shouldSwitch) {
|
|
46
|
+
if (shouldSwitch.confirmed) {
|
|
40
47
|
putSystemMessage(`Switching to ${nextService} due to rate limiting.`);
|
|
41
48
|
permanentService = nextService;
|
|
42
49
|
retryCount++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-service-fallback.js","sourceRoot":"","sources":["../../src/prompt/ai-service-fallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,MAAM,eAAe,GAAG;IACtB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,CAAC;IAClD,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;IAC/F,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"ai-service-fallback.js","sourceRoot":"","sources":["../../src/prompt/ai-service-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ValidatorResult } from 'jsonschema';
|
|
2
2
|
import { FunctionCall } from '../ai-service/common.js';
|
|
3
|
-
export declare function validateFunctionCall(call: FunctionCall | undefined, requiredFunctionName: string): Omit<ValidatorResult, 'addError'> | undefined;
|
|
3
|
+
export declare function validateFunctionCall(call: FunctionCall | undefined, requiredFunctionName: string, calls: FunctionCall[]): Omit<ValidatorResult, 'addError'> | undefined;
|
|
@@ -2,18 +2,26 @@ import { Validator } from 'jsonschema';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { getFunctionDefs } from './function-calling.js';
|
|
4
4
|
import { rcConfig } from '../main/config.js';
|
|
5
|
-
export function validateFunctionCall(call, requiredFunctionName) {
|
|
5
|
+
export function validateFunctionCall(call, requiredFunctionName, calls) {
|
|
6
6
|
const validator = new Validator();
|
|
7
7
|
const functionDef = getFunctionDefs().find((def) => def.name === call?.name);
|
|
8
|
-
//
|
|
9
|
-
if (!call
|
|
8
|
+
// Check if a function was called
|
|
9
|
+
if (!call) {
|
|
10
10
|
return makeError(`Function "${requiredFunctionName}" was not called.`, call, '');
|
|
11
11
|
}
|
|
12
|
-
//
|
|
12
|
+
// Check if only one function was called
|
|
13
|
+
if (calls.length !== 1) {
|
|
14
|
+
return makeError(`You called too many functions(${calls.length})! Only one function(${requiredFunctionName}) should be called.`, calls, '');
|
|
15
|
+
}
|
|
16
|
+
// Check if the function name is correct
|
|
17
|
+
if (call.name !== requiredFunctionName) {
|
|
18
|
+
return makeError(`Function "${call.name}" was called, while the expectation was to get "${requiredFunctionName}" function call.`, call, '');
|
|
19
|
+
}
|
|
20
|
+
// Check if the function is defined
|
|
13
21
|
if (!functionDef) {
|
|
14
22
|
return makeError(`Function "${call.name}" is not defined.`, call, '');
|
|
15
23
|
}
|
|
16
|
-
//
|
|
24
|
+
// Validate against the schema
|
|
17
25
|
const validationResult = validator.validate(call.args, functionDef.parameters);
|
|
18
26
|
if (validationResult.errors.length > 0) {
|
|
19
27
|
return validationResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function-calling-validate.js","sourceRoot":"","sources":["../../src/prompt/function-calling-validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA4C,MAAM,YAAY,CAAC;AACjF,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,UAAU,oBAAoB,CAClC,IAA8B,EAC9B,oBAA4B;
|
|
1
|
+
{"version":3,"file":"function-calling-validate.js","sourceRoot":"","sources":["../../src/prompt/function-calling-validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,53 @@ Detailed Explanation of actionTypes:
|
|
|
19
19
|
${rcConfig.lintCommand ? '- lint: Use to check the code for errors and provide feedback on the quality of the code.' : ''}
|
|
20
20
|
${pluginDescriptions}`;
|
|
21
21
|
}
|
|
22
|
+
const actionTypeOptions = [
|
|
23
|
+
'sendMessage',
|
|
24
|
+
'sendMessageWithImage',
|
|
25
|
+
'requestPermissions',
|
|
26
|
+
'requestFilesContent',
|
|
27
|
+
'removeFilesFromContext',
|
|
28
|
+
'confirmCodeGeneration',
|
|
29
|
+
'cancelCodeGeneration',
|
|
30
|
+
'contextOptimization',
|
|
31
|
+
'searchCode',
|
|
32
|
+
...(rcConfig.lintCommand ? ['lint'] : []),
|
|
33
|
+
...Array.from(getRegisteredActionHandlers().keys()),
|
|
34
|
+
];
|
|
35
|
+
const getStepsDescription = () => `
|
|
36
|
+
- If "type" = "decisionMakingProcess":
|
|
37
|
+
A detailed reasoning framework describing how you chose the action.
|
|
38
|
+
It must include the following steps:
|
|
39
|
+
|
|
40
|
+
1. **Contextual Analysis**:
|
|
41
|
+
Assess the current information, including available permissions,
|
|
42
|
+
the current context, and task requirements. Identify any missing elements
|
|
43
|
+
that are critical to task completion.
|
|
44
|
+
|
|
45
|
+
2. **Options Evaluation**:
|
|
46
|
+
Evaluate each possible \`actionType\`(${actionTypeOptions.join(', ')}), considering the task requirements, for each action type think if this is the right action to take right now.
|
|
47
|
+
|
|
48
|
+
3. **Decision Justification**:
|
|
49
|
+
State the reasoning for the proposed action, considering whether planning,
|
|
50
|
+
clarification, or a direct action is required. If there's any ambiguity,
|
|
51
|
+
prefer a confirmatory action (e.g., "confirmCodeGeneration").
|
|
52
|
+
|
|
53
|
+
4. **Minimal Action Selection**:
|
|
54
|
+
Determine the minimal action that can make progress toward the task goal.
|
|
55
|
+
Avoid requesting unnecessary permissions or context that isn't strictly needed.
|
|
56
|
+
|
|
57
|
+
5. **Evaluation of Action Choice**:
|
|
58
|
+
Double-check if the selected action aligns with the task requirements
|
|
59
|
+
and the user-provided constraints.
|
|
60
|
+
|
|
61
|
+
- If "type" = "actionType":
|
|
62
|
+
Must be one of [${actionTypeOptions.join(', ')}].
|
|
63
|
+
This represents the action chosen after the above decision-making process.
|
|
64
|
+
${getActionTypeDescription()}
|
|
65
|
+
|
|
66
|
+
- If "type" = "message":
|
|
67
|
+
The message to display to the user, which must align with the chosen "actionType".
|
|
68
|
+
`;
|
|
22
69
|
/**
|
|
23
70
|
* Function definition for askQuestion
|
|
24
71
|
*
|
|
@@ -33,11 +80,11 @@ export const getAskQuestionDef = () => ({
|
|
|
33
80
|
|
|
34
81
|
The desired format of parameters is as follows:
|
|
35
82
|
\`\`\`
|
|
36
|
-
|
|
37
|
-
"decisionMakingProcess": "...", // A detailed decision-making framework the assistant followed before selecting an action.",
|
|
38
|
-
"actionType": "...", // The type of action to perform.
|
|
39
|
-
"message": "..." // The message to display to the user.
|
|
40
|
-
|
|
83
|
+
[
|
|
84
|
+
{ type: "decisionMakingProcess", value: "..." }, // A detailed decision-making framework the assistant followed before selecting an action.",
|
|
85
|
+
{ type: "actionType", value: "..." }, // The type of action to perform.
|
|
86
|
+
{ type: "message", value: "..." } // The message to display to the user.
|
|
87
|
+
]
|
|
41
88
|
\`\`\`
|
|
42
89
|
|
|
43
90
|
**IMPORTANT**: Mind the order of the parameters, as the decision-making process must be provided first to ensure clarity in decision-making.
|
|
@@ -45,43 +92,37 @@ export const getAskQuestionDef = () => ({
|
|
|
45
92
|
parameters: {
|
|
46
93
|
type: 'object',
|
|
47
94
|
properties: {
|
|
48
|
-
|
|
49
|
-
type: '
|
|
50
|
-
description: `
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
2. **Decision Justification**: State the reasoning for the proposed action, considering whether planning, clarification, or action is required. If there's any ambiguity, prefer a confirmatory action (\`confirmCodeGeneration\`).
|
|
55
|
-
|
|
56
|
-
3. **Minimal Action Selection**: Determine the minimal action that can make progress toward the task goal. Avoid requesting unnecessary permissions or context that isn't strictly needed.
|
|
57
|
-
|
|
58
|
-
4. **Evaluation of Action Choice**: Double-check if the selected action aligns with task requirements and user-provided constraints.
|
|
95
|
+
steps: {
|
|
96
|
+
type: 'array',
|
|
97
|
+
description: `
|
|
98
|
+
An array of exactly 3 objects. Each object must have:
|
|
99
|
+
- "type": one of "decisionMakingProcess", "actionType", "message"
|
|
100
|
+
- "value": a string
|
|
59
101
|
|
|
60
|
-
|
|
61
|
-
}
|
|
62
|
-
actionType:
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
'
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
description: 'The message to display to the user.',
|
|
102
|
+
The order of these items MUST be:
|
|
103
|
+
1) { "type": "decisionMakingProcess", "value": "..." }
|
|
104
|
+
2) { "type": "actionType", "value": "..." }
|
|
105
|
+
3) { "type": "message", "value": "..." }
|
|
106
|
+
`,
|
|
107
|
+
minItems: 3,
|
|
108
|
+
maxItems: 3,
|
|
109
|
+
items: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
type: {
|
|
113
|
+
type: 'string',
|
|
114
|
+
enum: ['decisionMakingProcess', 'actionType', 'message'],
|
|
115
|
+
},
|
|
116
|
+
value: {
|
|
117
|
+
type: 'string',
|
|
118
|
+
description: getStepsDescription(),
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
required: ['type', 'value'],
|
|
122
|
+
},
|
|
82
123
|
},
|
|
83
124
|
},
|
|
84
|
-
required: ['
|
|
125
|
+
required: ['steps'],
|
|
85
126
|
},
|
|
86
127
|
});
|
|
87
128
|
// requestFilesContent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ask-question.js","sourceRoot":"","sources":["../../../src/prompt/function-defs/ask-question.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,sCAAsC,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAC;AAElH,SAAS,wBAAwB;IAC/B,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,OAAO,EAAE,CAAC;SACtF,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,MAAM,UAAU,KAAK,WAAW,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;;;;;;;;EAYP,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,2FAA2F,CAAC,CAAC,CAAC,EAAE;EACvH,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAgB,EAAE,CAAC,CAAC;IACnD,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE;;;;;;;;;;;;;;GAcZ;IACD,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,
|
|
1
|
+
{"version":3,"file":"ask-question.js","sourceRoot":"","sources":["../../../src/prompt/function-defs/ask-question.ts"],"names":[],"mappings":"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"}
|
package/dist/prompt/limits.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import assert from 'node:assert';
|
|
2
2
|
import { estimateTokenCount } from './token-estimator.js';
|
|
3
3
|
const SYSTEM_PROMPT_LIMIT = 3500;
|
|
4
|
-
const CODEGEN_PROMPT_LIMIT =
|
|
5
|
-
const SOURCE_CODE_LIMIT =
|
|
4
|
+
const CODEGEN_PROMPT_LIMIT = 1600;
|
|
5
|
+
const SOURCE_CODE_LIMIT = 110000;
|
|
6
6
|
function verifyPromptLimit(promptType, prompt, limit) {
|
|
7
7
|
const tokenCount = estimateTokenCount(prompt);
|
|
8
8
|
console.log(`${promptType} prompt estimated token count: ${tokenCount}`);
|
|
@@ -38,11 +38,12 @@ export async function promptService(generateContentFns, generateImageFns, codege
|
|
|
38
38
|
return result;
|
|
39
39
|
}
|
|
40
40
|
async function executePromptService(generateContentFn, generateImageFn, codegenPrompt, waitIfPaused = () => Promise.resolve()) {
|
|
41
|
-
const messages = prepareMessages(codegenPrompt);
|
|
42
41
|
// First stage: summarize the source code
|
|
43
42
|
if (!codegenPrompt.options.disableContextOptimization) {
|
|
44
43
|
await summarizeSourceCode(generateContentFn, getSourceCode({ forceAll: true }, codegenPrompt.options), codegenPrompt.options);
|
|
45
44
|
}
|
|
45
|
+
// Prepare messages for AI services
|
|
46
|
+
const messages = prepareMessages(codegenPrompt);
|
|
46
47
|
// Second stage: generate code generation summary, which should not take a lot of output tokens
|
|
47
48
|
const getSourceCodeRequest = { name: 'getSourceCode' };
|
|
48
49
|
const prompt = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGvE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gDAAgD,CAAC;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAC9E,OAAO,EAAE,iCAAiC,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEjF,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,kBAAkE,EAClE,gBAA2D,EAC3D,aAA4B,EAC5B,eAAoC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;IAE3D,MAAM,iBAAiB,GAA4B,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACnE,0CAA0C;QAC1C,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAC1C,kBAAkB,EAClB,aAAa,CAAC,OAAO,CAAC,SAAS,EAC/B,aAAa,CAAC,OAAO,EACrB,GAAG,IAAI,CACR,CAAC;QAEF,kDAAkD;QAClD,KAAK,MAAM,IAAI,IAAI,iCAAiC,EAAE,EAAE,CAAC;YACvD,MAAM,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,eAAe,GAA0B,CAAC,GAAG,IAAI,EAAE,EAAE;QACzD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,+BAA+B,CAAC,CAAC;QACtE,OAAO,gBAAgB,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CACnD,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,YAAY,CACb,CAAC;IAEF,IAAI,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QACzC,MAAM,wBAAwB,CAAC,iBAAiB,EAAE,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,iBAA0C,EAC1C,eAAsC,EACtC,aAA4B,EAC5B,eAAoC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;IAE3D,
|
|
1
|
+
{"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-service.test-utils.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.test-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"prompt-service.test-utils.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.test-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Static prompts used in the prompt-service module.
|
|
3
3
|
* These prompts are used in the initial conversation with the AI service.
|
|
4
4
|
*/
|
|
5
|
+
import { FileUpdate } from '../main/codegen-types';
|
|
5
6
|
/** Initial greeting from the user */
|
|
6
7
|
export declare const INITIAL_GREETING = "Hello, GenAIcode!";
|
|
7
8
|
/** Assistant's response asking for source code and other assets */
|
|
@@ -13,4 +14,4 @@ export declare const READY_TO_ASSIST = "Thank you, I'm ready to assist you with
|
|
|
13
14
|
/** Assistant's response when generating code */
|
|
14
15
|
export declare const CODEGEN_SUMMARY_PROMPT = "Planning phase completed. Would you like to proceed with the planned changes?";
|
|
15
16
|
/** Template for partial prompt when requesting changes for a specific file */
|
|
16
|
-
export declare const getPartialPromptTemplate: (
|
|
17
|
+
export declare const getPartialPromptTemplate: (file: FileUpdate) => string;
|
|
@@ -18,5 +18,6 @@ export const READY_TO_ASSIST = "Thank you, I'm ready to assist you with your req
|
|
|
18
18
|
/** Assistant's response when generating code */
|
|
19
19
|
export const CODEGEN_SUMMARY_PROMPT = 'Planning phase completed. Would you like to proceed with the planned changes?';
|
|
20
20
|
/** Template for partial prompt when requesting changes for a specific file */
|
|
21
|
-
export const getPartialPromptTemplate = (
|
|
21
|
+
export const getPartialPromptTemplate = (file) => `Please now generate update for the \`${file.filePath}\` file using \`${file.updateToolName}\`.` +
|
|
22
|
+
(file.prompt ? `\n\n${file.prompt}` : '');
|
|
22
23
|
//# sourceMappingURL=static-prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static-prompts.js","sourceRoot":"","sources":["../../src/prompt/static-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"static-prompts.js","sourceRoot":"","sources":["../../src/prompt/static-prompts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,qCAAqC;AACrC,MAAM,CAAC,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEpD,mEAAmE;AACnE,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;aAKtB,CAAC;AAEd,4DAA4D;AAC5D,MAAM,CAAC,MAAM,oBAAoB,GAAG,2EAA2E,CAAC;AAEhH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,eAAe,GAAG,uDAAuD,CAAC;AAEvF,gDAAgD;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,+EAA+E,CAAC;AAEtH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,IAAgB,EAAU,EAAE,CACnE,wCAAwC,IAAI,CAAC,QAAQ,mBAAmB,IAAI,CAAC,cAAc,KAAK;IAChG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ActionHandlerProps, ActionResult } from '../step-ask-question-types.js';
|
|
2
|
-
export declare function handleCancelCodeGeneration({
|
|
2
|
+
export declare function handleCancelCodeGeneration({ askQuestionMessage }: ActionHandlerProps): Promise<ActionResult>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
2
|
-
export async function handleCancelCodeGeneration({
|
|
2
|
+
export async function handleCancelCodeGeneration({ askQuestionMessage }) {
|
|
3
3
|
putSystemMessage('Assistant requested to stop code generation. Exiting...');
|
|
4
4
|
return {
|
|
5
5
|
breakLoop: true,
|
|
6
6
|
items: [
|
|
7
7
|
{
|
|
8
|
-
assistant: { type: 'assistant', text:
|
|
8
|
+
assistant: { type: 'assistant', text: askQuestionMessage ?? '' },
|
|
9
9
|
user: { type: 'user', text: 'Code generation cancelled.' },
|
|
10
10
|
},
|
|
11
11
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel-code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/cancel-code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"cancel-code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/cancel-code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAG1E,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAAC,EAAE,kBAAkB,EAAsB;IACzF,gBAAgB,CAAC,yDAAyD,CAAC,CAAC;IAC5E,OAAO;QACL,SAAS,EAAE,IAAI;QACf,KAAK,EAAE;YACL;gBACE,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,IAAI,EAAE,EAAE;gBAChE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,4BAA4B,EAAE;aAC3D;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -16,7 +16,7 @@ export async function handleCodeGeneration({ generateContentFn, generateImageFn,
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
// Ask user to confirm the planning result
|
|
19
|
-
const planningConfirmation = await askUserForConfirmationWithAnswer(
|
|
19
|
+
const planningConfirmation = await askUserForConfirmationWithAnswer(CODEGEN_SUMMARY_PROMPT, 'Accept planning and continue', 'Reject planning and return to conversation', true);
|
|
20
20
|
if (!planningConfirmation.confirmed) {
|
|
21
21
|
// User rejected the planning, return to conversation
|
|
22
22
|
return {
|
|
@@ -72,6 +72,8 @@ export async function handleCodeGeneration({ generateContentFn, generateImageFn,
|
|
|
72
72
|
],
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
+
putAssistantMessage('Codegen summary is generated. Would you like to proceed with the code changes?');
|
|
76
|
+
putUserMessage(codegenSummaryConfirmation.answer || 'Accept codegen summary and continue');
|
|
75
77
|
prompt.push({
|
|
76
78
|
type: 'assistant',
|
|
77
79
|
text: 'Codegen summary is generated. Would you like to proceed with the code changes?',
|
|
@@ -83,6 +85,15 @@ export async function handleCodeGeneration({ generateContentFn, generateImageFn,
|
|
|
83
85
|
const updateResults = await processFileUpdates(generateContentFn, prompt, getFunctionDefs(), options, codegenSummaryRequest, waitIfPaused, generateImageFn);
|
|
84
86
|
const functionCalls = [...baseResult, ...updateResults];
|
|
85
87
|
const confirmed = await askUserForConfirmationWithAnswer('Code changes are generated, now what?', 'Apply code changes', 'Continue conversation', true);
|
|
88
|
+
putAssistantMessage('Code changes are generated, now what?');
|
|
89
|
+
putUserMessage(confirmed.answer || 'Apply code changes.');
|
|
90
|
+
prompt.push({
|
|
91
|
+
type: 'assistant',
|
|
92
|
+
text: 'Code changes are generated, now what?',
|
|
93
|
+
}, {
|
|
94
|
+
type: 'user',
|
|
95
|
+
text: confirmed.answer || 'Apply code changes.',
|
|
96
|
+
});
|
|
86
97
|
if (confirmed.confirmed) {
|
|
87
98
|
putSystemMessage('Applying code changes...');
|
|
88
99
|
if (options.dryRun) {
|
|
@@ -90,31 +101,20 @@ export async function handleCodeGeneration({ generateContentFn, generateImageFn,
|
|
|
90
101
|
}
|
|
91
102
|
else {
|
|
92
103
|
// Apply the code changes
|
|
93
|
-
await updateFiles(functionCalls.filter((call) => call.name !== 'explanation' && call.name !== 'getSourceCode'), options);
|
|
104
|
+
await updateFiles(functionCalls.filter((call) => call.name !== 'explanation' && call.name !== 'getSourceCode' && call.name !== 'codegenSummary'), options);
|
|
94
105
|
putSystemMessage('Code changes applied successfully');
|
|
95
106
|
}
|
|
96
107
|
}
|
|
97
108
|
return {
|
|
98
109
|
breakLoop: confirmed.confirmed ?? true,
|
|
99
110
|
stepResult: functionCalls,
|
|
100
|
-
items: [
|
|
101
|
-
{
|
|
102
|
-
assistant: {
|
|
103
|
-
type: 'assistant',
|
|
104
|
-
text: 'Code changes are generated, now what?',
|
|
105
|
-
},
|
|
106
|
-
user: {
|
|
107
|
-
type: 'user',
|
|
108
|
-
text: confirmed.answer || 'Apply code changes.',
|
|
109
|
-
},
|
|
110
|
-
},
|
|
111
|
-
],
|
|
111
|
+
items: [],
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
114
|
catch (error) {
|
|
115
115
|
putSystemMessage(`Error during code generation: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
116
116
|
return {
|
|
117
|
-
breakLoop:
|
|
117
|
+
breakLoop: true,
|
|
118
118
|
items: [
|
|
119
119
|
{
|
|
120
120
|
assistant: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC/G,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,MAAM,EACN,OAAO,GACY;IACnB,MAAM,cAAc,GAAG,MAAM,0BAA0B,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5F,IAAI,cAAc,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC;QACxC,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,0CAA0C;IAC1C,MAAM,oBAAoB,GAAG,MAAM,gCAAgC,CACjE
|
|
1
|
+
{"version":3,"file":"code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/code-generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ActionHandlerProps, ActionResult } from '../step-ask-question-types.js';
|
|
2
|
-
export declare function handleConfirmCodeGeneration({
|
|
2
|
+
export declare function handleConfirmCodeGeneration({ askQuestionMessage, options, }: ActionHandlerProps): Promise<ActionResult>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
2
2
|
import { askUserForConfirmationWithAnswer } from '../../../../main/common/user-actions.js';
|
|
3
|
-
export async function handleConfirmCodeGeneration({
|
|
3
|
+
export async function handleConfirmCodeGeneration({ askQuestionMessage, options, }) {
|
|
4
4
|
const userConfirmation = await askUserForConfirmationWithAnswer('The assistant is ready to start code generation. Do you want to proceed?', 'Start code generation', 'Continue conversation', true);
|
|
5
5
|
if (userConfirmation.options?.aiService) {
|
|
6
6
|
options.aiService = userConfirmation.options.aiService;
|
|
@@ -13,7 +13,7 @@ export async function handleConfirmCodeGeneration({ askQuestionCall, options, })
|
|
|
13
13
|
executeCodegen: true,
|
|
14
14
|
items: [
|
|
15
15
|
{
|
|
16
|
-
assistant: { type: 'assistant', text:
|
|
16
|
+
assistant: { type: 'assistant', text: askQuestionMessage ?? '', functionCalls: [] },
|
|
17
17
|
user: { type: 'user', text: userConfirmation.answer || 'Confirmed. Proceed with code generation.' },
|
|
18
18
|
},
|
|
19
19
|
],
|
|
@@ -25,7 +25,7 @@ export async function handleConfirmCodeGeneration({ askQuestionCall, options, })
|
|
|
25
25
|
breakLoop: false,
|
|
26
26
|
items: [
|
|
27
27
|
{
|
|
28
|
-
assistant: { type: 'assistant', text:
|
|
28
|
+
assistant: { type: 'assistant', text: askQuestionMessage ?? '' },
|
|
29
29
|
user: {
|
|
30
30
|
type: 'user',
|
|
31
31
|
text: userConfirmation.answer || 'Declined. Please continue the conversation.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confirm-code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/confirm-code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAG3F,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,EAChD,
|
|
1
|
+
{"version":3,"file":"confirm-code-generation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/confirm-code-generation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAG3F,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,EAChD,kBAAkB,EAClB,OAAO,GACY;IACnB,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,0EAA0E,EAC1E,uBAAuB,EACvB,uBAAuB,EACvB,IAAI,CACL,CAAC;IACF,IAAI,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;QACxC,OAAO,CAAC,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC;QACvD,OAAO,CAAC,KAAK,GAAG,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;IACjD,CAAC;IACD,IAAI,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAC/B,gBAAgB,CAAC,kCAAkC,CAAC,CAAC;QACrD,OAAO;YACL,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE;gBACL;oBACE,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,IAAI,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;oBACnF,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,CAAC,MAAM,IAAI,0CAA0C,EAAE;iBACpG;aACF;SACF,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,gBAAgB,CAAC,wCAAwC,CAAC,CAAC;QAC3D,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE;gBACL;oBACE,SAAS,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,IAAI,EAAE,EAAE;oBAChE,IAAI,EAAE;wBACJ,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gBAAgB,CAAC,MAAM,IAAI,6CAA6C;qBAC/E;iBACF;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { ActionHandlerProps, ActionResult } from '../step-ask-question-types.js';
|
|
2
|
-
export declare function handleContextOptimization({
|
|
2
|
+
export declare function handleContextOptimization({ askQuestionMessage, prompt, options, generateContentFn, }: ActionHandlerProps): Promise<ActionResult>;
|
|
@@ -2,7 +2,7 @@ import { refreshFiles } from '../../../../files/find-files.js';
|
|
|
2
2
|
import { putSystemMessage } from '../../../../main/common/content-bus.js';
|
|
3
3
|
import { askUserForConfirmation } from '../../../../main/common/user-actions.js';
|
|
4
4
|
import { executeStepContextOptimization } from '../../step-context-optimization.js';
|
|
5
|
-
export async function handleContextOptimization({
|
|
5
|
+
export async function handleContextOptimization({ askQuestionMessage, prompt, options, generateContentFn, }) {
|
|
6
6
|
const userConfirmation = await askUserForConfirmation('The assistant suggests optimizing the context to reduce token usage, cost, and latency. Do you want to proceed?', false);
|
|
7
7
|
if (userConfirmation.options?.aiService) {
|
|
8
8
|
options.aiService = userConfirmation.options.aiService;
|
|
@@ -14,7 +14,7 @@ export async function handleContextOptimization({ askQuestionCall, prompt, optio
|
|
|
14
14
|
};
|
|
15
15
|
const assistant = {
|
|
16
16
|
type: 'assistant',
|
|
17
|
-
text:
|
|
17
|
+
text: askQuestionMessage ?? '',
|
|
18
18
|
};
|
|
19
19
|
if (userConfirmation.confirmed) {
|
|
20
20
|
// the request may be caused be an appearance of a new file, so lets refresh
|