genaicode 0.2.0 → 0.3.0
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/README.md +2 -0
- package/bin/genaicode-dev.js +2 -1
- package/bin/genaicode.cjs +4 -4
- package/dist/ai-service/ai-studio.js +8 -2
- package/dist/ai-service/ai-studio.js.map +1 -1
- package/dist/ai-service/anthropic.js +21 -8
- package/dist/ai-service/anthropic.js.map +1 -1
- package/dist/ai-service/chat-gpt.js +21 -10
- package/dist/ai-service/chat-gpt.js.map +1 -1
- package/dist/ai-service/common.d.ts +9 -5
- package/dist/ai-service/common.js +6 -4
- package/dist/ai-service/common.js.map +1 -1
- package/dist/ai-service/common.test.js +3 -3
- package/dist/ai-service/common.test.js.map +1 -1
- package/dist/ai-service/vertex-ai-claude.js +5 -4
- package/dist/ai-service/vertex-ai-claude.js.map +1 -1
- package/dist/ai-service/vertex-ai.js +11 -2
- package/dist/ai-service/vertex-ai.js.map +1 -1
- package/dist/cli/cli-params.d.ts +2 -0
- package/dist/cli/cli-params.js +14 -2
- package/dist/cli/cli-params.js.map +1 -1
- package/dist/cli/validate-cli-params.js +3 -1
- package/dist/cli/validate-cli-params.js.map +1 -1
- package/dist/files/find-files.d.ts +1 -0
- package/dist/files/find-files.js +7 -2
- package/dist/files/find-files.js.map +1 -1
- package/dist/files/read-files.d.ts +2 -2
- package/dist/files/read-files.js +2 -2
- package/dist/files/read-files.js.map +1 -1
- package/dist/files/read-files.test.js +1 -1
- package/dist/files/read-files.test.js.map +1 -1
- package/dist/main/codegen-types.d.ts +13 -0
- package/dist/main/codegen.d.ts +2 -2
- package/dist/main/codegen.js +86 -52
- package/dist/main/codegen.js.map +1 -1
- package/dist/main/codegen.test.js +7 -4
- package/dist/main/codegen.test.js.map +1 -1
- package/dist/main/common/content-bus-types.d.ts +16 -0
- package/dist/main/common/content-bus-types.js +7 -0
- package/dist/main/common/content-bus-types.js.map +1 -0
- package/dist/main/common/content-bus.d.ts +9 -0
- package/dist/main/common/content-bus.js +25 -0
- package/dist/main/common/content-bus.js.map +1 -0
- package/dist/main/common/cost-collector.d.ts +15 -0
- package/dist/main/common/cost-collector.js +24 -0
- package/dist/main/common/cost-collector.js.map +1 -0
- package/dist/main/common/user-actions.d.ts +7 -0
- package/dist/main/common/user-actions.js +15 -0
- package/dist/main/common/user-actions.js.map +1 -0
- package/dist/main/config-lib.d.ts +19 -0
- package/dist/main/config-lib.js.map +1 -1
- package/dist/main/config.d.ts +2 -1
- package/dist/main/config.js +3 -0
- package/dist/main/config.js.map +1 -1
- package/dist/main/interactive/codegen-interactive.js +8 -2
- package/dist/main/interactive/codegen-interactive.js.map +1 -1
- package/dist/main/interactive/codegen-worker.d.ts +1 -1
- package/dist/main/interactive/codegen-worker.js +5 -2
- package/dist/main/interactive/codegen-worker.js.map +1 -1
- package/dist/main/interactive/task-file.js +9 -2
- package/dist/main/interactive/task-file.js.map +1 -1
- package/dist/main/interactive/user-action-handlers.d.ts +1 -0
- package/dist/main/interactive/user-action-handlers.js +13 -0
- package/dist/main/interactive/user-action-handlers.js.map +1 -0
- package/dist/main/interactive/user-interrupt.js +1 -1
- package/dist/main/interactive/user-interrupt.js.map +1 -1
- package/dist/main/ui/backend/api-utils.d.ts +2 -0
- package/dist/main/ui/backend/api-utils.js +18 -0
- package/dist/main/ui/backend/api-utils.js.map +1 -0
- package/dist/main/ui/backend/api.d.ts +2 -0
- package/dist/main/ui/backend/api.js +186 -0
- package/dist/main/ui/backend/api.js.map +1 -0
- package/dist/main/ui/backend/server.d.ts +2 -0
- package/dist/main/ui/backend/server.js +81 -0
- package/dist/main/ui/backend/server.js.map +1 -0
- package/dist/main/ui/backend/service.d.ts +47 -0
- package/dist/main/ui/backend/service.js +161 -0
- package/dist/main/ui/backend/service.js.map +1 -0
- package/dist/main/ui/codegen-ui.d.ts +2 -0
- package/dist/main/ui/codegen-ui.js +13 -0
- package/dist/main/ui/codegen-ui.js.map +1 -0
- package/dist/main/ui/frontend/assets/index-D9wcaSJU.js +598 -0
- package/dist/main/ui/frontend/assets/index-S_ocA1xG.css +1 -0
- package/dist/main/ui/frontend/assets/logo-BGHkG1-J.png +0 -0
- package/dist/main/ui/frontend/assets/logo-dark-KAsU1C78.png +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-cyrillic-400-normal-oElOGqNf.woff2 +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-cyrillic-ext-400-normal-COIQET2s.woff2 +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-greek-400-normal-DUIT0YPZ.woff2 +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-latin-400-normal-BKfmdmKK.woff +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-latin-400-normal-xj9lRvVs.woff2 +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-latin-ext-400-normal-B18ub5-k.woff +0 -0
- package/dist/main/ui/frontend/assets/press-start-2p-latin-ext-400-normal-DDIa4im3.woff2 +0 -0
- package/dist/main/ui/frontend/index.html +16 -0
- package/dist/main/ui/user-action-handlers.d.ts +2 -0
- package/dist/main/ui/user-action-handlers.js +9 -0
- package/dist/main/ui/user-action-handlers.js.map +1 -0
- package/dist/prompt/ai-service-fallback.d.ts +3 -0
- package/dist/prompt/ai-service-fallback.js +79 -0
- package/dist/prompt/ai-service-fallback.js.map +1 -0
- package/dist/prompt/function-calling.js +3 -1
- package/dist/prompt/function-calling.js.map +1 -1
- package/dist/prompt/function-defs/ask-question.d.ts +16 -13
- package/dist/prompt/function-defs/ask-question.js +16 -14
- package/dist/prompt/function-defs/ask-question.js.map +1 -1
- package/dist/prompt/function-defs/codegen-summary.d.ts +23 -21
- package/dist/prompt/function-defs/codegen-summary.js +28 -28
- package/dist/prompt/function-defs/codegen-summary.js.map +1 -1
- package/dist/prompt/function-defs/create-file.d.ts +4 -4
- package/dist/prompt/function-defs/create-file.js +4 -4
- package/dist/prompt/function-defs/create-file.js.map +1 -1
- package/dist/prompt/function-defs/delete-file.d.ts +4 -4
- package/dist/prompt/function-defs/delete-file.js +4 -4
- package/dist/prompt/function-defs/delete-file.js.map +1 -1
- package/dist/prompt/function-defs/generate-image.d.ts +4 -4
- package/dist/prompt/function-defs/generate-image.js +4 -4
- package/dist/prompt/function-defs/generate-image.js.map +1 -1
- package/dist/prompt/function-defs/get-source-code.d.ts +1 -1
- package/dist/prompt/function-defs/get-source-code.js +2 -1
- package/dist/prompt/function-defs/get-source-code.js.map +1 -1
- package/dist/prompt/function-defs/move-file.d.ts +4 -4
- package/dist/prompt/function-defs/move-file.js +4 -4
- package/dist/prompt/function-defs/move-file.js.map +1 -1
- package/dist/prompt/function-defs/optimize-context.d.ts +41 -0
- package/dist/prompt/function-defs/optimize-context.js +42 -0
- package/dist/prompt/function-defs/optimize-context.js.map +1 -0
- package/dist/prompt/function-defs/patch-file.d.ts +4 -4
- package/dist/prompt/function-defs/patch-file.js +4 -4
- package/dist/prompt/function-defs/patch-file.js.map +1 -1
- package/dist/prompt/function-defs/update-file.d.ts +4 -4
- package/dist/prompt/function-defs/update-file.js +4 -4
- package/dist/prompt/function-defs/update-file.js.map +1 -1
- package/dist/prompt/limits.d.ts +3 -3
- package/dist/prompt/limits.js +10 -8
- package/dist/prompt/limits.js.map +1 -1
- package/dist/prompt/limits.test.js +6 -6
- package/dist/prompt/limits.test.js.map +1 -1
- package/dist/prompt/prompt-codegen.js +38 -23
- package/dist/prompt/prompt-codegen.js.map +1 -1
- package/dist/prompt/prompt-codegen.test.js +2 -2
- package/dist/prompt/prompt-codegen.test.js.map +1 -1
- package/dist/prompt/prompt-service-ask-question.test.js +12 -5
- package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
- package/dist/prompt/prompt-service.d.ts +3 -9
- package/dist/prompt/prompt-service.js +37 -12
- package/dist/prompt/prompt-service.js.map +1 -1
- package/dist/prompt/prompt-service.test.js +40 -25
- package/dist/prompt/prompt-service.test.js.map +1 -1
- package/dist/prompt/steps/step-ask-question.d.ts +1 -1
- package/dist/prompt/steps/step-ask-question.js +35 -20
- package/dist/prompt/steps/step-ask-question.js.map +1 -1
- package/dist/prompt/steps/step-context-optimization.d.ts +6 -0
- package/dist/prompt/steps/step-context-optimization.js +146 -0
- package/dist/prompt/steps/step-context-optimization.js.map +1 -0
- package/dist/prompt/systemprompt.d.ts +1 -1
- package/dist/prompt/systemprompt.js +82 -32
- package/dist/prompt/systemprompt.js.map +1 -1
- package/dist/prompt/systemprompt.test.js +5 -8
- package/dist/prompt/systemprompt.test.js.map +1 -1
- package/dist/prompt/token-estimator.d.ts +8 -0
- package/dist/prompt/token-estimator.js +31 -0
- package/dist/prompt/token-estimator.js.map +1 -0
- package/package.json +24 -4
- package/dist/main/codegen-interactive-utils.d.ts +0 -8
- package/dist/main/codegen-interactive-utils.js +0 -148
- package/dist/main/codegen-interactive-utils.js.map +0 -1
- package/dist/main/codegen-interactive.d.ts +0 -2
- package/dist/main/codegen-interactive.js +0 -68
- package/dist/main/codegen-interactive.js.map +0 -1
- package/dist/main/interactive/worker-script.d.ts +0 -1
- package/dist/main/interactive/worker-script.js +0 -24
- package/dist/main/interactive/worker-script.js.map +0 -1
- package/dist/main/interactive/worker.d.ts +0 -2
- package/dist/main/interactive/worker.js +0 -55
- package/dist/main/interactive/worker.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-service.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prompt-service.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@ import { FunctionCall, FunctionDef, PromptItem } from '../../ai-service/common.j
|
|
|
2
2
|
import { StepResult } from './steps-types.js';
|
|
3
3
|
import { CodegenOptions } from '../../main/codegen-types.js';
|
|
4
4
|
export declare function executeStepAskQuestion(generateContentFn: (prompt: PromptItem[], functionDefs: FunctionDef[], requiredFunctionName: string, temperature: number, cheap: boolean, options: CodegenOptions) => Promise<FunctionCall[]>, prompt: PromptItem[], functionDefs: FunctionDef[], temperature: number, cheap: boolean, messages: {
|
|
5
|
-
contextSourceCode: (paths: string[]) => string;
|
|
5
|
+
contextSourceCode: (paths: string[], pathsOnly: boolean) => string;
|
|
6
6
|
}, options: CodegenOptions): Promise<StepResult>;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { input, confirm } from '@inquirer/prompts';
|
|
2
1
|
import { StepResult } from './steps-types.js';
|
|
2
|
+
import { askUserForConfirmation, askUserForInput } from '../../main/common/user-actions.js';
|
|
3
|
+
import { putAssistantMessage, putSystemMessage, putUserMessage } from '../../main/common/content-bus.js';
|
|
4
|
+
import { abortController } from '../../main/interactive/codegen-worker.js';
|
|
3
5
|
export async function executeStepAskQuestion(generateContentFn, prompt, functionDefs, temperature, cheap, messages, options) {
|
|
4
6
|
console.log('Allowing the assistant to ask a question...');
|
|
5
7
|
const questionAsked = false;
|
|
@@ -8,36 +10,32 @@ export async function executeStepAskQuestion(generateContentFn, prompt, function
|
|
|
8
10
|
const askQuestionCall = askQuestionResult.find((call) => call.name === 'askQuestion');
|
|
9
11
|
if (askQuestionCall) {
|
|
10
12
|
console.log('Assistant asks:', askQuestionCall.args);
|
|
13
|
+
if (askQuestionCall.args?.content) {
|
|
14
|
+
putAssistantMessage(askQuestionCall.args?.content, askQuestionCall.args);
|
|
15
|
+
}
|
|
11
16
|
if (askQuestionCall.args?.stopCodegen) {
|
|
12
|
-
|
|
17
|
+
putSystemMessage('Assistant requested to stop code generation. Exiting...');
|
|
13
18
|
return StepResult.BREAK;
|
|
14
19
|
}
|
|
15
20
|
else if (!askQuestionCall.args?.shouldPrompt) {
|
|
16
|
-
|
|
21
|
+
putSystemMessage('Proceeding with code generation.');
|
|
17
22
|
break;
|
|
18
23
|
}
|
|
19
24
|
const fileContentRequested = (askQuestionCall.args?.requestFilesContent?.length ?? 0) > 0;
|
|
20
25
|
const permissionsRequested = Object.entries(askQuestionCall.args?.requestPermissions ?? {}).filter(([, enabled]) => enabled).length > 0;
|
|
21
26
|
const userAnswer = askQuestionCall.args?.shouldPrompt
|
|
22
27
|
? fileContentRequested
|
|
23
|
-
? (await
|
|
24
|
-
message: 'The assistant is requesting file contents. Do you want to provide them?',
|
|
25
|
-
default: true,
|
|
26
|
-
}))
|
|
28
|
+
? (await askUserForConfirmation('The assistant is requesting file contents. Do you want to provide them?', true))
|
|
27
29
|
? 'Providing requested files content.'
|
|
28
30
|
: 'Request for file contents denied.'
|
|
29
31
|
: permissionsRequested
|
|
30
|
-
? (await
|
|
31
|
-
message: 'The assistant is requesting additional permissions. Do you want to grant them?',
|
|
32
|
-
default: false,
|
|
33
|
-
}))
|
|
32
|
+
? (await askUserForConfirmation('The assistant is requesting additional permissions. Do you want to grant them?', false))
|
|
34
33
|
? 'Permissions granted.'
|
|
35
34
|
: 'Permission request denied.'
|
|
36
|
-
: await
|
|
35
|
+
: await askUserForInput('Your answer', askQuestionCall.args?.content)
|
|
37
36
|
: "Let's proceed with code generation.";
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
userAnswer === 'Permission request denied.') {
|
|
37
|
+
putUserMessage(userAnswer);
|
|
38
|
+
if (permissionsRequested && askQuestionCall.args?.requestPermissions && userAnswer === 'Permissions granted.') {
|
|
41
39
|
if (askQuestionCall.args?.requestPermissions.enableImagen) {
|
|
42
40
|
options.imagen = options.aiService === 'chat-gpt' ? 'dall-e' : 'vertex-ai';
|
|
43
41
|
}
|
|
@@ -57,20 +55,37 @@ export async function executeStepAskQuestion(generateContentFn, prompt, function
|
|
|
57
55
|
options.allowFileMove = true;
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
|
-
|
|
58
|
+
const assistantItem = { type: 'assistant', functionCalls: [askQuestionCall] };
|
|
59
|
+
const userItem = {
|
|
61
60
|
type: 'user',
|
|
62
61
|
text: userAnswer,
|
|
63
62
|
functionResponses: [
|
|
64
63
|
{
|
|
65
64
|
name: 'askQuestion',
|
|
66
65
|
call_id: askQuestionCall.id,
|
|
67
|
-
content:
|
|
68
|
-
? messages.contextSourceCode(askQuestionCall.args.requestFilesContent)
|
|
69
|
-
: undefined,
|
|
66
|
+
content: undefined,
|
|
70
67
|
},
|
|
71
68
|
],
|
|
72
|
-
}
|
|
69
|
+
};
|
|
70
|
+
prompt.push(assistantItem, userItem);
|
|
71
|
+
const fileContentProvided = fileContentRequested && userAnswer === 'Providing requested files content.';
|
|
72
|
+
if (fileContentProvided) {
|
|
73
|
+
assistantItem.functionCalls.push({
|
|
74
|
+
name: 'getSourceCode',
|
|
75
|
+
args: { filePaths: askQuestionCall.args.requestFilesContent },
|
|
76
|
+
id: askQuestionCall.id + '_src',
|
|
77
|
+
});
|
|
78
|
+
userItem.functionResponses.push({
|
|
79
|
+
name: 'getSourceCode',
|
|
80
|
+
content: messages.contextSourceCode(askQuestionCall.args.requestFilesContent, true),
|
|
81
|
+
call_id: askQuestionCall.id + '_src',
|
|
82
|
+
});
|
|
83
|
+
console.log('File content provided.');
|
|
84
|
+
}
|
|
73
85
|
console.log('The question was answered', userAnswer);
|
|
86
|
+
if (abortController?.signal.aborted) {
|
|
87
|
+
return StepResult.BREAK;
|
|
88
|
+
}
|
|
74
89
|
}
|
|
75
90
|
else {
|
|
76
91
|
console.log('Assistant did not ask a question. Proceeding with code generation.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"step-ask-question.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ask-question.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"step-ask-question.js","sourceRoot":"","sources":["../../../src/prompt/steps/step-ask-question.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GenerateContentFunction, PromptItem } from '../../ai-service/common.js';
|
|
2
|
+
import { CodegenOptions } from '../../main/codegen-types.js';
|
|
3
|
+
import { StepResult } from './steps-types.js';
|
|
4
|
+
export declare function executeStepContextOptimization(generateContentFn: GenerateContentFunction, prompt: PromptItem[], sourceCode: Record<string, {
|
|
5
|
+
content: string | null;
|
|
6
|
+
}>, options: CodegenOptions): Promise<StepResult>;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { putSystemMessage } from '../../main/common/content-bus.js';
|
|
2
|
+
import { getSourceCode } from '../../files/read-files.js';
|
|
3
|
+
import { functionDefs } from '../function-calling.js';
|
|
4
|
+
import { StepResult } from './steps-types.js';
|
|
5
|
+
import { estimateTokenCount } from '../token-estimator.js';
|
|
6
|
+
const OPTIMIZATION_PROMPT = `You're correct, we need to optimize the context for code generation. Please perform the following tasks and respond by calling the \`optimizeContext\` function with the appropriate arguments:
|
|
7
|
+
|
|
8
|
+
1. **Summarization**:
|
|
9
|
+
- For each file listed below, provide a **brief one-sentence summary** of its content.
|
|
10
|
+
- The summary should accurately reflect the main purpose or functionality of the file.
|
|
11
|
+
- **Use only the content provided**; do not infer or assume additional information.
|
|
12
|
+
|
|
13
|
+
2. **Relevance Rating**:
|
|
14
|
+
- Rate the **relevance** of each file to the user's prompt on a scale from **0 to 1**, using the following guidelines:
|
|
15
|
+
- **0.0 – 0.2 (Not Relevant)**: The file has no apparent connection to the user's prompt.
|
|
16
|
+
- **0.3 – 0.5 (Somewhat Relevant)**: The file has minor or indirect relevance to the prompt.
|
|
17
|
+
- **0.6 – 0.8 (Moderately Relevant)**: The file is related and could contribute to addressing the prompt.
|
|
18
|
+
- **0.9 – 1.0 (Highly Relevant)**: The file is directly related and is important for addressing the prompt.
|
|
19
|
+
- **Evaluation Criteria**:
|
|
20
|
+
- **Keyword Matching**: Does the file contain keywords or topics mentioned in the user's prompt?
|
|
21
|
+
- **Functional Alignment**: Does the file implement features or functionalities requested by the user?
|
|
22
|
+
- **Dependency**: Is the file a dependency of other relevant modules?
|
|
23
|
+
|
|
24
|
+
3. **Function Call Response**:
|
|
25
|
+
- Respond by **calling the \`optimizeContext\` function**.
|
|
26
|
+
- The function should have the following parameters:
|
|
27
|
+
- \`"userPrompt"\`: The user's original prompt.
|
|
28
|
+
- \`"optimizedContext"\`: An array of objects, each containing:
|
|
29
|
+
- \`"path"\`: The file path.
|
|
30
|
+
- \`"summary"\`: The one-sentence summary of the file.
|
|
31
|
+
- \`"relevance"\`: The relevance rating as a number between 0 and 1.
|
|
32
|
+
|
|
33
|
+
**Important Guidelines**:
|
|
34
|
+
|
|
35
|
+
- **Do not assign a relevance score of 1 to all files**; evaluate each file individually based on the criteria above.
|
|
36
|
+
- **Do not include** any information not present in the file content.
|
|
37
|
+
- **Avoid assumptions or hallucinations**; stick strictly to the provided data.
|
|
38
|
+
- Ensure the **function call is properly formatted** and **valid**.
|
|
39
|
+
- **Provide the response in valid JSON format**.
|
|
40
|
+
- **Do not include any extra text** outside of the function call.
|
|
41
|
+
- **Ensure the JSON is properly formatted** and **does not contain strings representing JSON** (i.e., do not stringify the JSON).
|
|
42
|
+
|
|
43
|
+
**Example Function Call**:
|
|
44
|
+
|
|
45
|
+
\`\`\`json
|
|
46
|
+
{
|
|
47
|
+
"function": "optimizeContext",
|
|
48
|
+
"arguments": {
|
|
49
|
+
"optimizedContext": [
|
|
50
|
+
{
|
|
51
|
+
"path": "src/utils/helpers.js",
|
|
52
|
+
"summary": "Provides utility functions for data manipulation.",
|
|
53
|
+
"relevance": 0.7
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"path": "src/components/LoginForm.jsx",
|
|
57
|
+
"summary": "Defines the login form component for user authentication.",
|
|
58
|
+
"relevance": 0.9
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
**Files to Analyze**:\n`;
|
|
66
|
+
export async function executeStepContextOptimization(generateContentFn, prompt, sourceCode, options) {
|
|
67
|
+
const optimizationPrompt = [
|
|
68
|
+
...prompt,
|
|
69
|
+
{
|
|
70
|
+
type: 'assistant',
|
|
71
|
+
text: 'Thank you for describing the task, I have noticed you have provided a very large context for your question. The amount of source code is very big in particular. Can we do something about it?',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
type: 'user',
|
|
75
|
+
text: `${OPTIMIZATION_PROMPT}:\n${Object.entries(sourceCode)
|
|
76
|
+
.map(([path, { content }]) => `${path}: ${content ? content.substring(0, 200) + '...' : 'Content not available'}`)
|
|
77
|
+
.join('\n\n')}`,
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
try {
|
|
81
|
+
putSystemMessage('Context optimization is starting');
|
|
82
|
+
const result = await generateContentFn(optimizationPrompt, functionDefs, 'optimizeContext', 0.2, true, options);
|
|
83
|
+
const fileRelevance = parseOptimizationResult(result);
|
|
84
|
+
if (!fileRelevance || fileRelevance.length === 0) {
|
|
85
|
+
putSystemMessage('Warning: Context optimization failed to produce useful summaries. Proceeding with full context.');
|
|
86
|
+
return StepResult.CONTINUE;
|
|
87
|
+
}
|
|
88
|
+
const tokensBefore = estimateTokenCount(JSON.stringify(sourceCode));
|
|
89
|
+
putSystemMessage('Context optimization in progress.', fileRelevance);
|
|
90
|
+
const optimizedSourceCode = optimizeSourceCode(sourceCode, getSourceCode({ forceAll: true }, options), fileRelevance);
|
|
91
|
+
const tokensAfter = estimateTokenCount(JSON.stringify(optimizedSourceCode));
|
|
92
|
+
const percentageReduced = ((tokensBefore - tokensAfter) / tokensBefore) * 100;
|
|
93
|
+
// Update the getSourceCode function response in the prompt
|
|
94
|
+
const getSourceCodeResponse = prompt.find((item) => item.type === 'user' && item.functionResponses?.some((resp) => resp.name === 'getSourceCode'));
|
|
95
|
+
if (getSourceCodeResponse && getSourceCodeResponse.functionResponses) {
|
|
96
|
+
const sourceCodeResponseIndex = getSourceCodeResponse.functionResponses.findIndex((resp) => resp.name === 'getSourceCode');
|
|
97
|
+
if (sourceCodeResponseIndex !== -1) {
|
|
98
|
+
getSourceCodeResponse.functionResponses[sourceCodeResponseIndex].content = JSON.stringify(optimizedSourceCode);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
putSystemMessage('Context optimization completed successfully.', {
|
|
102
|
+
tokensBefore,
|
|
103
|
+
tokensAfter,
|
|
104
|
+
percentageReduced: percentageReduced.toFixed(2) + '%',
|
|
105
|
+
});
|
|
106
|
+
return StepResult.CONTINUE;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
putSystemMessage('Warning: Context optimization failed. Proceeding with full context.');
|
|
110
|
+
console.error('Context optimization error:', error);
|
|
111
|
+
return StepResult.CONTINUE;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
function parseOptimizationResult(result) {
|
|
115
|
+
const explanationCall = result.find((call) => call.name === 'optimizeContext');
|
|
116
|
+
if (!explanationCall || !explanationCall.args || !explanationCall.args.optimizedContext) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
return explanationCall.args.optimizedContext;
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
console.error('Failed to parse optimization result:', error);
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
function optimizeSourceCode(sourceCode, fullSourceCode, fileRelevance) {
|
|
128
|
+
const optimizedSourceCode = {};
|
|
129
|
+
for (const [path, { content }] of Object.entries(sourceCode)) {
|
|
130
|
+
const relevanceInfo = fileRelevance.find((file) => file.path === path);
|
|
131
|
+
if (relevanceInfo && relevanceInfo.relevance > 0.6) {
|
|
132
|
+
optimizedSourceCode[path] = {
|
|
133
|
+
summary: relevanceInfo.summary,
|
|
134
|
+
content: content ?? fullSourceCode[path]?.content ?? null,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
optimizedSourceCode[path] = {
|
|
139
|
+
summary: relevanceInfo ? relevanceInfo.summary : undefined,
|
|
140
|
+
content: null,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return optimizedSourceCode;
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=step-context-optimization.js.map
|
|
@@ -0,0 +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,3 +1,3 @@
|
|
|
1
1
|
import { CodegenOptions } from '../main/codegen-types.js';
|
|
2
2
|
/** Generates a system prompt */
|
|
3
|
-
export declare function getSystemPrompt({ verbose, askQuestion, interactive }: CodegenOptions): string;
|
|
3
|
+
export declare function getSystemPrompt({ verbose, askQuestion, interactive, ui }: CodegenOptions): string;
|
|
@@ -2,40 +2,90 @@ import { CODEGEN_TRIGGER } from './prompt-consts.js';
|
|
|
2
2
|
import { verifySystemPromptLimit } from './limits.js';
|
|
3
3
|
import { rcConfig } from '../main/config.js';
|
|
4
4
|
/** Generates a system prompt */
|
|
5
|
-
export function getSystemPrompt({ verbose, askQuestion, interactive }) {
|
|
5
|
+
export function getSystemPrompt({ verbose, askQuestion, interactive, ui }) {
|
|
6
6
|
console.log('Generate system prompt');
|
|
7
7
|
let systemPrompt = `
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
8
|
+
You are a code generation assistant tasked with helping me implement my ideas into my application's source code.
|
|
9
|
+
|
|
10
|
+
You can generate new code or modify existing code based on the instructions I provide.
|
|
11
|
+
|
|
12
|
+
Instructions may be given directly via messages, through files, or using the ${CODEGEN_TRIGGER} comment in the code.
|
|
13
|
+
|
|
14
|
+
Your responsibilities include:
|
|
15
|
+
|
|
16
|
+
1. **Analyzing the Task**: Understand the requirements based on the provided instructions and code.
|
|
17
|
+
|
|
18
|
+
2. **Summarizing Proposed Updates**: Before making any code changes, summarize the proposed updates by calling the \`codegenSummary\` function with the appropriate arguments.
|
|
19
|
+
|
|
20
|
+
- Ensure that you include:
|
|
21
|
+
- **\`explanation\`**: A brief description of the planned changes or reasoning for no changes.
|
|
22
|
+
- **\`fileUpdates\`**: A list of proposed file updates, each with required properties:
|
|
23
|
+
- **\`path\`**: Absolute file path to be updated.
|
|
24
|
+
- **\`updateToolName\`**: The tool to be used for the update (e.g., \`createFile\`, \`updateFile\`).
|
|
25
|
+
- **\`prompt\`**: A detailed prompt summarizing the planned changes for this file.
|
|
26
|
+
- **\`contextPaths\`**: A list of file paths that should be used as context for the code generation requests.
|
|
27
|
+
|
|
28
|
+
3. **Generating Code**: After the summary is approved, proceed to generate or modify code as needed.
|
|
29
|
+
|
|
30
|
+
Please limit any changes to the root directory of my application, which is \`${rcConfig.rootDir}\`.
|
|
31
|
+
|
|
32
|
+
## Important Guidelines:
|
|
33
|
+
|
|
34
|
+
- **Use Absolute Paths**: Always use absolute file paths exactly as provided when suggesting changes. Do not modify the paths to avoid errors.
|
|
35
|
+
|
|
36
|
+
- **Return Working Code**: Aim to return fully functional code at all times.
|
|
37
|
+
|
|
38
|
+
- **Avoid Incomplete Code Snippets**: Do not include commented-out fragments like \`// ... (keep other existing functions)\`; ensure your code is complete and ready to use.
|
|
39
|
+
|
|
40
|
+
- **Handle Large Files Appropriately**: For large files, prefer to use the \`patchFile\` function to suggest modifications.
|
|
41
|
+
|
|
42
|
+
- **Suggest File Splitting When Relevant**: If it makes sense for the current task, suggest splitting large files to improve maintainability.
|
|
43
|
+
|
|
44
|
+
- **Verify Permissions**: At the start of the conversation, I will specify what actions you are allowed to perform (e.g., create files, move files, generate images). Ensure you have the necessary permissions before proceeding.
|
|
45
|
+
|
|
46
|
+
- **Error Handling**: If the instructions are unclear or something seems wrong, consider failing the task with an explanation rather than proceeding incorrectly.
|
|
47
|
+
|
|
48
|
+
- **Produce Necessary Code Only**: Do not generate unnecessary code. Ensure that all code you produce will be utilized once all changes are completed.
|
|
49
|
+
|
|
50
|
+
- **Request Context When Needed**: Always ask for sufficient context paths in the code generation summary. If additional files or information are needed to complete the task, request them explicitly.
|
|
51
|
+
|
|
52
|
+
- **Please remember:**
|
|
53
|
+
|
|
54
|
+
- When calling functions, provide the arguments as a JSON object without extra text.
|
|
55
|
+
- Do not include JSON strings within the JSON object; the data should be properly structured.
|
|
56
|
+
- Follow the provided function schemas exactly.
|
|
57
|
+
`;
|
|
58
|
+
if (askQuestion && (interactive || ui)) {
|
|
59
|
+
systemPrompt += `\nYou have the ability to ask me questions at the beginning of the conversation if you need more information or clarification.
|
|
60
|
+
Use this feature wisely to gather any crucial information that would help you better understand the task or provide more accurate code generation.
|
|
61
|
+
|
|
62
|
+
To ask a question, use the \`askQuestion\` function. This function allows you to:
|
|
63
|
+
|
|
64
|
+
- **Express Your Thoughts**: Inform me about your considerations or concerns regarding the task.
|
|
65
|
+
|
|
66
|
+
- **Seek Clarification**: Ask questions or provide suggestions to ensure you fully understand the requirements.
|
|
67
|
+
|
|
68
|
+
- **Request File Access**: If certain files are important for the task but haven't been provided, you can request access to their content. Please request only the files that are truly necessary.
|
|
69
|
+
|
|
70
|
+
- Use the \`requestFilesContent\` parameter in the \`askQuestion\` function call to specify a list of absolute file paths you need.
|
|
71
|
+
|
|
72
|
+
- **Request Additional Permissions**: If you need permissions for operations that were initially restricted but are important for completing the task, you may request them.
|
|
73
|
+
|
|
74
|
+
- **Proceeding After Receiving Information**:
|
|
75
|
+
- Once you have received the necessary information or permissions, **proceed with the task without asking additional questions**.
|
|
76
|
+
- **Do not repeatedly ask the same question** if I have already provided an answer. Move forward based on the information given.
|
|
77
|
+
|
|
78
|
+
- **Control Code Generation Flow**:
|
|
79
|
+
|
|
80
|
+
- To **start code generation**, first call the \`codegenSummary\` function to summarize the proposed changes.
|
|
81
|
+
|
|
82
|
+
- If you require more information before proceeding, set the \`shouldPrompt\` parameter to **\`true\`** in the \`askQuestion\` function.
|
|
83
|
+
|
|
84
|
+
- To **cancel code generation**, set the \`stopCodegen\` parameter to **\`true\`**.
|
|
85
|
+
|
|
86
|
+
- **Important**: Only set \`shouldPrompt\` to **\`true\`** if you genuinely need a response from me before you can proceed.
|
|
87
|
+
|
|
88
|
+
`;
|
|
39
89
|
}
|
|
40
90
|
if (verbose) {
|
|
41
91
|
console.log('System prompt:');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemprompt.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAkB;
|
|
1
|
+
{"version":3,"file":"systemprompt.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAkB;IACvF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,YAAY,GAAG;;;;;+EAK0D,eAAe;;;;;;;;;;;;;;;;;;+EAkBf,QAAQ,CAAC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B9F,CAAC;IAEA,IAAI,WAAW,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;QACvC,YAAY,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BnB,CAAC;IACA,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEtC,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -27,19 +27,16 @@ describe('getSystemPrompt', () => {
|
|
|
27
27
|
});
|
|
28
28
|
it('generates correct system prompt', () => {
|
|
29
29
|
const systemPrompt = getSystemPrompt({ aiService: 'vertex-ai' });
|
|
30
|
-
expect(systemPrompt).toContain('You are a code generation assistant
|
|
31
|
-
expect(systemPrompt).toContain('You can generate new code
|
|
32
|
-
expect(systemPrompt).toContain('
|
|
33
|
-
|
|
34
|
-
'CODEGEN comment in the code.');
|
|
35
|
-
expect(systemPrompt).toContain('The root directory of my application is `/mocked/root/dir` and you should limit the changes only to this path.');
|
|
36
|
-
expect(systemPrompt).toContain('When suggesting changes always use absolute file paths');
|
|
30
|
+
expect(systemPrompt).toContain('You are a code generation assistant');
|
|
31
|
+
expect(systemPrompt).toContain('You can generate new code or modify existing');
|
|
32
|
+
expect(systemPrompt).toContain('Please limit any changes to the root directory of my application, which is `/mocked/root/dir`');
|
|
33
|
+
expect(systemPrompt).toContain('Always use absolute file paths exactly as provided');
|
|
37
34
|
});
|
|
38
35
|
it('verifies system prompt limit', () => {
|
|
39
36
|
const consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
40
37
|
getSystemPrompt({ aiService: 'vertex-ai', verbose: true });
|
|
41
38
|
expect(consoleSpy).toHaveBeenCalledWith('System prompt:');
|
|
42
|
-
expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('You are a code generation assistant
|
|
39
|
+
expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('You are a code generation assistant'));
|
|
43
40
|
consoleSpy.mockRestore();
|
|
44
41
|
});
|
|
45
42
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"systemprompt.test.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAChC,OAAO,mBAAmB,CAAC;AAE3B,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,KAAK;IAC3B,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;CAC1C,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"systemprompt.test.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAChC,OAAO,mBAAmB,CAAC;AAE3B,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,KAAK;IAC3B,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;CAC1C,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,qCAAqC,CAAC,CAAC;QACtE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,8CAA8C,CAAC,CAAC;QAC/E,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,+FAA+F,CAChG,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,oDAAoD,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzE,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAExG,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estimates the token count of a given string.
|
|
3
|
+
* Uses average token-to-word ratios for plain text and code.
|
|
4
|
+
*
|
|
5
|
+
* @param input - The string to estimate token count for
|
|
6
|
+
* @returns The estimated token count
|
|
7
|
+
*/
|
|
8
|
+
export declare function estimateTokenCount(input: string): number;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Estimates the token count of a given string.
|
|
3
|
+
* Uses average token-to-word ratios for plain text and code.
|
|
4
|
+
*
|
|
5
|
+
* @param input - The string to estimate token count for
|
|
6
|
+
* @returns The estimated token count
|
|
7
|
+
*/
|
|
8
|
+
export function estimateTokenCount(input) {
|
|
9
|
+
// Trim and check for empty input
|
|
10
|
+
const trimmedInput = input.trim();
|
|
11
|
+
if (!trimmedInput)
|
|
12
|
+
return 0;
|
|
13
|
+
// Determine if the input is code or plain text
|
|
14
|
+
const isCode = containsCode(trimmedInput);
|
|
15
|
+
// Split the input into words
|
|
16
|
+
const words = trimmedInput.split(/\s+/);
|
|
17
|
+
// Use average tokens per word based on content type
|
|
18
|
+
const averageTokensPerWord = isCode ? 1.25 : 0.65;
|
|
19
|
+
// Estimate token count
|
|
20
|
+
const tokenCount = Math.ceil(words.length * averageTokensPerWord);
|
|
21
|
+
return tokenCount;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Heuristically determines if the text contains code.
|
|
25
|
+
*/
|
|
26
|
+
function containsCode(text) {
|
|
27
|
+
// Check for code indicators
|
|
28
|
+
const codeIndicators = /[{}()[\];,.<>+\-*/%=&|^!~?:#@]|function|const|let|var|if|else|for|while|return|import|export/;
|
|
29
|
+
return codeIndicators.test(text);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=token-estimator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-estimator.js","sourceRoot":"","sources":["../../src/prompt/token-estimator.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,iCAAiC;IACjC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,YAAY;QAAE,OAAO,CAAC,CAAC;IAE5B,+CAA+C;IAC/C,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAExC,oDAAoD;IACpD,MAAM,oBAAoB,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAElD,uBAAuB;IACvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC;IAElE,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,4BAA4B;IAC5B,MAAM,cAAc,GAAG,8FAA8F,CAAC;IACtH,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC"}
|