genaicode 0.0.37 → 0.2.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 +3 -1
- package/bin/genaicode-dev.js +11 -0
- package/bin/genaicode.cjs +15 -1
- package/dist/ai-service/ai-studio.d.ts +6 -0
- package/dist/ai-service/ai-studio.js +135 -0
- package/dist/ai-service/ai-studio.js.map +1 -0
- package/dist/ai-service/anthropic.d.ts +6 -0
- package/dist/ai-service/anthropic.js +135 -0
- package/dist/ai-service/anthropic.js.map +1 -0
- package/dist/ai-service/chat-gpt.d.ts +5 -0
- package/dist/ai-service/chat-gpt.js +132 -0
- package/dist/ai-service/chat-gpt.js.map +1 -0
- package/dist/ai-service/common.d.ts +58 -0
- package/dist/ai-service/common.js +38 -0
- package/dist/ai-service/common.js.map +1 -0
- package/dist/ai-service/common.test.d.ts +1 -0
- package/dist/ai-service/common.test.js +85 -0
- package/dist/ai-service/common.test.js.map +1 -0
- package/dist/ai-service/dall-e.d.ts +14 -0
- package/dist/ai-service/dall-e.js +48 -0
- package/dist/ai-service/dall-e.js.map +1 -0
- package/dist/ai-service/vertex-ai-claude.d.ts +5 -0
- package/dist/ai-service/vertex-ai-claude.js +94 -0
- package/dist/ai-service/vertex-ai-claude.js.map +1 -0
- package/dist/ai-service/vertex-ai-imagen.d.ts +14 -0
- package/dist/ai-service/vertex-ai-imagen.js +77 -0
- package/dist/ai-service/vertex-ai-imagen.js.map +1 -0
- package/dist/ai-service/vertex-ai.d.ts +7 -0
- package/dist/ai-service/vertex-ai.js +142 -0
- package/dist/ai-service/vertex-ai.js.map +1 -0
- package/dist/cli/cli-options.d.ts +10 -0
- package/dist/cli/cli-options.js +124 -0
- package/dist/cli/cli-options.js.map +1 -0
- package/dist/cli/cli-options.test.d.ts +1 -0
- package/dist/cli/cli-options.test.js +34 -0
- package/dist/cli/cli-options.test.js.map +1 -0
- package/dist/cli/cli-params.d.ts +30 -0
- package/dist/cli/cli-params.js +109 -0
- package/dist/cli/cli-params.js.map +1 -0
- package/dist/cli/cli-params.test.d.ts +1 -0
- package/dist/cli/cli-params.test.js +38 -0
- package/dist/cli/cli-params.test.js.map +1 -0
- package/dist/cli/service-autodetect.d.ts +2 -0
- package/dist/cli/service-autodetect.js +17 -0
- package/dist/cli/service-autodetect.js.map +1 -0
- package/dist/cli/service-autodetect.test.d.ts +1 -0
- package/dist/cli/service-autodetect.test.js +38 -0
- package/dist/cli/service-autodetect.test.js.map +1 -0
- package/dist/cli/validate-cli-params.d.ts +18 -0
- package/dist/cli/validate-cli-params.js +129 -0
- package/dist/cli/validate-cli-params.js.map +1 -0
- package/dist/cli/validate-cli-params.test.d.ts +1 -0
- package/dist/cli/validate-cli-params.test.js +106 -0
- package/dist/cli/validate-cli-params.test.js.map +1 -0
- package/dist/files/file-utils.d.ts +2 -0
- package/dist/files/file-utils.js +7 -0
- package/dist/files/file-utils.js.map +1 -0
- package/dist/files/file-utils.test.d.ts +1 -0
- package/dist/files/file-utils.test.js +18 -0
- package/dist/files/file-utils.test.js.map +1 -0
- package/dist/files/find-files.d.ts +8 -0
- package/dist/files/find-files.js +76 -0
- package/dist/files/find-files.js.map +1 -0
- package/dist/files/read-files.d.ts +18 -0
- package/dist/files/read-files.js +66 -0
- package/dist/files/read-files.js.map +1 -0
- package/dist/files/read-files.test.d.ts +1 -0
- package/dist/files/read-files.test.js +88 -0
- package/dist/files/read-files.test.js.map +1 -0
- package/dist/files/temp-buffer.d.ts +2 -0
- package/dist/files/temp-buffer.js +12 -0
- package/dist/files/temp-buffer.js.map +1 -0
- package/dist/files/update-files.d.ts +6 -0
- package/dist/files/update-files.js +197 -0
- package/dist/files/update-files.js.map +1 -0
- package/dist/images/ensure-alpha.d.ts +1 -0
- package/dist/images/ensure-alpha.js +5 -0
- package/dist/images/ensure-alpha.js.map +1 -0
- package/dist/images/imgly-remove-background.d.ts +2 -0
- package/dist/images/imgly-remove-background.js +21 -0
- package/dist/images/imgly-remove-background.js.map +1 -0
- package/dist/images/resize-image.d.ts +19 -0
- package/dist/images/resize-image.js +22 -0
- package/dist/images/resize-image.js.map +1 -0
- package/dist/images/split-image.d.ts +18 -0
- package/dist/images/split-image.js +25 -0
- package/dist/images/split-image.js.map +1 -0
- package/dist/main/codegen-interactive-utils.d.ts +8 -0
- package/dist/main/codegen-interactive-utils.js +148 -0
- package/dist/main/codegen-interactive-utils.js.map +1 -0
- package/dist/main/codegen-interactive.d.ts +2 -0
- package/dist/main/codegen-interactive.js +68 -0
- package/dist/main/codegen-interactive.js.map +1 -0
- package/dist/main/codegen-types.d.ts +28 -0
- package/dist/main/codegen-types.js +2 -0
- package/dist/main/codegen-types.js.map +1 -0
- package/dist/main/codegen.d.ts +4 -0
- package/dist/main/codegen.js +164 -0
- package/dist/main/codegen.js.map +1 -0
- package/dist/main/codegen.test.d.ts +2 -0
- package/dist/main/codegen.test.js +273 -0
- package/dist/main/codegen.test.js.map +1 -0
- package/dist/main/config-lib.d.ts +16 -0
- package/dist/main/config-lib.js +28 -0
- package/dist/main/config-lib.js.map +1 -0
- package/dist/main/config-lib.test.d.ts +1 -0
- package/dist/main/config-lib.test.js +64 -0
- package/dist/main/config-lib.test.js.map +1 -0
- package/dist/main/config.d.ts +6 -0
- package/{src → dist}/main/config.js +28 -22
- package/dist/main/config.js.map +1 -0
- package/dist/main/interactive/codegen-interactive.d.ts +2 -0
- package/dist/main/interactive/codegen-interactive.js +55 -0
- package/dist/main/interactive/codegen-interactive.js.map +1 -0
- package/dist/main/interactive/codegen-interactive.test.d.ts +4 -0
- package/dist/main/interactive/codegen-interactive.test.js +77 -0
- package/dist/main/interactive/codegen-interactive.test.js.map +1 -0
- package/dist/main/interactive/codegen-worker.d.ts +3 -0
- package/dist/main/interactive/codegen-worker.js +47 -0
- package/dist/main/interactive/codegen-worker.js.map +1 -0
- package/dist/main/interactive/common.d.ts +5 -0
- package/dist/main/interactive/common.js +51 -0
- package/dist/main/interactive/common.js.map +1 -0
- package/dist/main/interactive/configure.d.ts +2 -0
- package/dist/main/interactive/configure.js +99 -0
- package/dist/main/interactive/configure.js.map +1 -0
- package/dist/main/interactive/error-handling.d.ts +4 -0
- package/dist/main/interactive/error-handling.js +49 -0
- package/dist/main/interactive/error-handling.js.map +1 -0
- package/dist/main/interactive/help.d.ts +1 -0
- package/dist/main/interactive/help.js +22 -0
- package/dist/main/interactive/help.js.map +1 -0
- package/dist/main/interactive/process-comments.d.ts +2 -0
- package/dist/main/interactive/process-comments.js +39 -0
- package/dist/main/interactive/process-comments.js.map +1 -0
- package/dist/main/interactive/select-ai-service.d.ts +2 -0
- package/dist/main/interactive/select-ai-service.js +27 -0
- package/dist/main/interactive/select-ai-service.js.map +1 -0
- package/dist/main/interactive/task-file.d.ts +2 -0
- package/dist/main/interactive/task-file.js +28 -0
- package/dist/main/interactive/task-file.js.map +1 -0
- package/dist/main/interactive/text-prompt.d.ts +2 -0
- package/dist/main/interactive/text-prompt.js +18 -0
- package/dist/main/interactive/text-prompt.js.map +1 -0
- package/dist/main/interactive/user-interrupt.d.ts +1 -0
- package/dist/main/interactive/user-interrupt.js +36 -0
- package/dist/main/interactive/user-interrupt.js.map +1 -0
- package/dist/main/interactive/worker-script.d.ts +1 -0
- package/dist/main/interactive/worker-script.js +24 -0
- package/dist/main/interactive/worker-script.js.map +1 -0
- package/dist/main/interactive/worker.d.ts +2 -0
- package/dist/main/interactive/worker.js +55 -0
- package/dist/main/interactive/worker.js.map +1 -0
- package/dist/prompt/function-calling-validate.d.ts +3 -0
- package/dist/prompt/function-calling-validate.js +33 -0
- package/dist/prompt/function-calling-validate.js.map +1 -0
- package/dist/prompt/function-calling.d.ts +5 -0
- package/{src → dist}/prompt/function-calling.js +25 -24
- package/dist/prompt/function-calling.js.map +1 -0
- package/dist/prompt/function-defs/ask-question.d.ts +65 -0
- package/dist/prompt/function-defs/ask-question.js +67 -0
- package/dist/prompt/function-defs/ask-question.js.map +1 -0
- package/dist/prompt/function-defs/codegen-summary.d.ts +63 -0
- package/dist/prompt/function-defs/codegen-summary.js +80 -0
- package/dist/prompt/function-defs/codegen-summary.js.map +1 -0
- package/dist/prompt/function-defs/create-directory.d.ts +21 -0
- package/dist/prompt/function-defs/create-directory.js +22 -0
- package/dist/prompt/function-defs/create-directory.js.map +1 -0
- package/dist/prompt/function-defs/create-file.d.ts +25 -0
- package/dist/prompt/function-defs/create-file.js +26 -0
- package/dist/prompt/function-defs/create-file.js.map +1 -0
- package/dist/prompt/function-defs/delete-file.d.ts +21 -0
- package/dist/prompt/function-defs/delete-file.js +22 -0
- package/dist/prompt/function-defs/delete-file.js.map +1 -0
- package/dist/prompt/function-defs/download-file.d.ts +25 -0
- package/dist/prompt/function-defs/download-file.js +26 -0
- package/dist/prompt/function-defs/download-file.js.map +1 -0
- package/dist/prompt/function-defs/explanation.d.ts +17 -0
- package/dist/prompt/function-defs/explanation.js +18 -0
- package/dist/prompt/function-defs/explanation.js.map +1 -0
- package/dist/prompt/function-defs/generate-image.d.ts +41 -0
- package/dist/prompt/function-defs/generate-image.js +42 -0
- package/dist/prompt/function-defs/generate-image.js.map +1 -0
- package/dist/prompt/function-defs/get-image-assets.d.ts +20 -0
- package/dist/prompt/function-defs/get-image-assets.js +21 -0
- package/dist/prompt/function-defs/get-image-assets.js.map +1 -0
- package/dist/prompt/function-defs/get-source-code.d.ts +20 -0
- package/dist/prompt/function-defs/get-source-code.js +21 -0
- package/dist/prompt/function-defs/get-source-code.js.map +1 -0
- package/dist/prompt/function-defs/imgly-remove-background.d.ts +25 -0
- package/dist/prompt/function-defs/imgly-remove-background.js +26 -0
- package/dist/prompt/function-defs/imgly-remove-background.js.map +1 -0
- package/dist/prompt/function-defs/move-file.d.ts +25 -0
- package/dist/prompt/function-defs/move-file.js +26 -0
- package/dist/prompt/function-defs/move-file.js.map +1 -0
- package/dist/prompt/function-defs/patch-file.d.ts +25 -0
- package/dist/prompt/function-defs/patch-file.js +39 -0
- package/dist/prompt/function-defs/patch-file.js.map +1 -0
- package/dist/prompt/function-defs/resize-image.d.ts +36 -0
- package/dist/prompt/function-defs/resize-image.js +37 -0
- package/dist/prompt/function-defs/resize-image.js.map +1 -0
- package/dist/prompt/function-defs/split-image.d.ts +57 -0
- package/dist/prompt/function-defs/split-image.js +46 -0
- package/dist/prompt/function-defs/split-image.js.map +1 -0
- package/dist/prompt/function-defs/update-file.d.ts +25 -0
- package/dist/prompt/function-defs/update-file.js +26 -0
- package/dist/prompt/function-defs/update-file.js.map +1 -0
- package/dist/prompt/limits.d.ts +3 -0
- package/dist/prompt/limits.js +19 -0
- package/dist/prompt/limits.js.map +1 -0
- package/dist/prompt/limits.test.d.ts +1 -0
- package/dist/prompt/limits.test.js +35 -0
- package/dist/prompt/limits.test.js.map +1 -0
- package/dist/prompt/prompt-codegen.d.ts +9 -0
- package/dist/prompt/prompt-codegen.js +90 -0
- package/dist/prompt/prompt-codegen.js.map +1 -0
- package/dist/prompt/prompt-codegen.test.d.ts +1 -0
- package/dist/prompt/prompt-codegen.test.js +98 -0
- package/dist/prompt/prompt-codegen.test.js.map +1 -0
- package/dist/prompt/prompt-consts.d.ts +1 -0
- package/{src → dist}/prompt/prompt-consts.js +1 -0
- package/dist/prompt/prompt-consts.js.map +1 -0
- package/dist/prompt/prompt-service-ask-question.test.d.ts +3 -0
- package/dist/prompt/prompt-service-ask-question.test.js +142 -0
- package/dist/prompt/prompt-service-ask-question.test.js.map +1 -0
- package/dist/prompt/prompt-service.d.ts +28 -0
- package/dist/prompt/prompt-service.js +163 -0
- package/dist/prompt/prompt-service.js.map +1 -0
- package/dist/prompt/prompt-service.test.d.ts +1 -0
- package/dist/prompt/prompt-service.test.js +531 -0
- package/dist/prompt/prompt-service.test.js.map +1 -0
- package/dist/prompt/steps/step-ask-question.d.ts +6 -0
- package/dist/prompt/steps/step-ask-question.js +82 -0
- package/dist/prompt/steps/step-ask-question.js.map +1 -0
- package/dist/prompt/steps/step-generate-image.d.ts +2 -0
- package/dist/prompt/steps/step-generate-image.js +29 -0
- package/dist/prompt/steps/step-generate-image.js.map +1 -0
- package/dist/prompt/steps/step-validate-recover.d.ts +13 -0
- package/dist/prompt/steps/step-validate-recover.js +51 -0
- package/dist/prompt/steps/step-validate-recover.js.map +1 -0
- package/dist/prompt/steps/step-verify-patch.d.ts +7 -0
- package/dist/prompt/steps/step-verify-patch.js +41 -0
- package/dist/prompt/steps/step-verify-patch.js.map +1 -0
- package/dist/prompt/steps/steps-types.d.ts +4 -0
- package/dist/prompt/steps/steps-types.js +6 -0
- package/dist/prompt/steps/steps-types.js.map +1 -0
- package/dist/prompt/systemprompt.d.ts +3 -0
- package/dist/prompt/systemprompt.js +47 -0
- package/dist/prompt/systemprompt.js.map +1 -0
- package/dist/prompt/systemprompt.test.d.ts +3 -0
- package/dist/prompt/systemprompt.test.js +46 -0
- package/dist/prompt/systemprompt.test.js.map +1 -0
- package/package.json +15 -5
- package/bin/genaicode.js +0 -5
- package/bin/vertex-monkey-patch.cjs +0 -33
- package/src/ai-service/anthropic.js +0 -126
- package/src/ai-service/chat-gpt.js +0 -126
- package/src/ai-service/common.js +0 -49
- package/src/ai-service/common.test.js +0 -107
- package/src/ai-service/dall-e.js +0 -50
- package/src/ai-service/vertex-ai-claude.js +0 -99
- package/src/ai-service/vertex-ai-imagen.js +0 -78
- package/src/ai-service/vertex-ai.js +0 -156
- package/src/cli/cli-options.js +0 -132
- package/src/cli/cli-options.test.js +0 -50
- package/src/cli/cli-params.js +0 -114
- package/src/cli/cli-params.test.js +0 -43
- package/src/cli/service-autodetect.js +0 -11
- package/src/cli/service-autodetect.test.js +0 -43
- package/src/cli/validate-cli-params.js +0 -137
- package/src/cli/validate-cli-params.test.js +0 -134
- package/src/files/file-utils.js +0 -7
- package/src/files/file-utils.test.js +0 -21
- package/src/files/find-files.js +0 -86
- package/src/files/read-files.js +0 -65
- package/src/files/read-files.test.js +0 -103
- package/src/files/temp-buffer.js +0 -13
- package/src/files/update-files.js +0 -205
- package/src/images/ensure-alpha.js +0 -5
- package/src/images/imgly-remove-background.js +0 -23
- package/src/images/resize-image.js +0 -23
- package/src/images/split-image.js +0 -26
- package/src/main/codegen.js +0 -120
- package/src/main/codegen.test.js +0 -335
- package/src/main/config-lib.js +0 -33
- package/src/main/config-lib.test.js +0 -80
- package/src/prompt/function-calling-validate.js +0 -25
- package/src/prompt/function-defs/ask-question.js +0 -33
- package/src/prompt/function-defs/codegen-summary.js +0 -87
- package/src/prompt/function-defs/create-directory.js +0 -21
- package/src/prompt/function-defs/create-file.js +0 -26
- package/src/prompt/function-defs/delete-file.js +0 -21
- package/src/prompt/function-defs/download-file.js +0 -25
- package/src/prompt/function-defs/explanation.js +0 -17
- package/src/prompt/function-defs/generate-image.js +0 -51
- package/src/prompt/function-defs/get-image-assets.js +0 -21
- package/src/prompt/function-defs/get-source-code.js +0 -21
- package/src/prompt/function-defs/imgly-remove-background.js +0 -25
- package/src/prompt/function-defs/move-file.js +0 -25
- package/src/prompt/function-defs/patch-file.js +0 -39
- package/src/prompt/function-defs/resize-image.js +0 -36
- package/src/prompt/function-defs/split-image.js +0 -45
- package/src/prompt/function-defs/update-file.js +0 -26
- package/src/prompt/limits.js +0 -23
- package/src/prompt/limits.test.js +0 -40
- package/src/prompt/prompt-codegen.js +0 -106
- package/src/prompt/prompt-codegen.test.js +0 -116
- package/src/prompt/prompt-service-ask-question.test.js +0 -163
- package/src/prompt/prompt-service.js +0 -335
- package/src/prompt/prompt-service.test.js +0 -602
- package/src/prompt/systemprompt.js +0 -39
- package/src/prompt/systemprompt.test.js +0 -64
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import assert from 'node:assert';
|
|
4
|
+
import * as diff from 'diff';
|
|
5
|
+
import { getSourceFiles } from './find-files.js';
|
|
6
|
+
import { isAncestorDirectory } from './file-utils.js';
|
|
7
|
+
import { rcConfig } from '../main/config.js';
|
|
8
|
+
import { getTempBuffer } from './temp-buffer.js';
|
|
9
|
+
import { imglyRemoveBackground } from '../images/imgly-remove-background.js';
|
|
10
|
+
import { splitImage } from '../images/split-image.js';
|
|
11
|
+
import { resizeImageFile } from '../images/resize-image.js';
|
|
12
|
+
/**
|
|
13
|
+
* @param functionCalls Result of the code generation, a map of file paths to new content
|
|
14
|
+
*/
|
|
15
|
+
export async function updateFiles(functionCalls, options) {
|
|
16
|
+
const { allowDirectoryCreate, allowFileCreate, allowFileDelete, allowFileMove } = options;
|
|
17
|
+
for (const { name, args } of functionCalls) {
|
|
18
|
+
let { filePath, newContent, source, destination, inputFilePath, outputFilePath } = args;
|
|
19
|
+
const { patch, parts, size } = args;
|
|
20
|
+
// Check if filePath is absolute, if not use rootDir as baseline
|
|
21
|
+
if (name !== 'moveFile' && name !== 'imglyRemoveBackground' && name !== 'splitImage') {
|
|
22
|
+
assert(filePath);
|
|
23
|
+
filePath = path.isAbsolute(filePath) ? filePath : path.join(rcConfig.rootDir, filePath);
|
|
24
|
+
}
|
|
25
|
+
else if (name === 'moveFile') {
|
|
26
|
+
assert(source);
|
|
27
|
+
source = path.isAbsolute(source) ? source : path.join(rcConfig.rootDir, source);
|
|
28
|
+
assert(destination);
|
|
29
|
+
destination = path.isAbsolute(destination) ? destination : path.join(rcConfig.rootDir, destination);
|
|
30
|
+
}
|
|
31
|
+
else if (name === 'imglyRemoveBackground' || name === 'splitImage') {
|
|
32
|
+
assert(inputFilePath);
|
|
33
|
+
inputFilePath = path.isAbsolute(inputFilePath) ? inputFilePath : path.join(rcConfig.rootDir, inputFilePath);
|
|
34
|
+
if (name === 'imglyRemoveBackground') {
|
|
35
|
+
assert(outputFilePath);
|
|
36
|
+
outputFilePath = path.isAbsolute(outputFilePath) ? outputFilePath : path.join(rcConfig.rootDir, outputFilePath);
|
|
37
|
+
}
|
|
38
|
+
else if (name === 'splitImage') {
|
|
39
|
+
parts?.forEach((part) => (part.outputFilePath = part.outputFilePath
|
|
40
|
+
? path.isAbsolute(part.outputFilePath)
|
|
41
|
+
? part.outputFilePath
|
|
42
|
+
: path.join(rcConfig.rootDir, part.outputFilePath)
|
|
43
|
+
: undefined));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ignore files which are not located inside project directory (sourceFiles)
|
|
47
|
+
if ((name !== 'moveFile' && name !== 'imglyRemoveBackground' && name !== 'splitImage' && !isProjectPath(filePath)) ||
|
|
48
|
+
(name === 'moveFile' && (!isProjectPath(source) || !isProjectPath(destination))) ||
|
|
49
|
+
(name === 'imglyRemoveBackground' && (!isProjectPath(inputFilePath) || !isProjectPath(outputFilePath))) ||
|
|
50
|
+
(name === 'splitImage' &&
|
|
51
|
+
(!isProjectPath(inputFilePath) ||
|
|
52
|
+
parts.some((part) => part.outputFilePath && !isProjectPath(part.outputFilePath))))) {
|
|
53
|
+
console.log(`Skipping file: ${filePath || source || inputFilePath}`);
|
|
54
|
+
throw new Error(`File ${filePath || source || inputFilePath} is not located inside project directory, something is wrong?`);
|
|
55
|
+
}
|
|
56
|
+
if (name === 'deleteFile') {
|
|
57
|
+
assert(filePath);
|
|
58
|
+
assert(allowFileDelete, 'File delete option was not enabled');
|
|
59
|
+
console.log(`Removing file: ${filePath}`);
|
|
60
|
+
fs.unlinkSync(filePath);
|
|
61
|
+
}
|
|
62
|
+
else if (name === 'createDirectory') {
|
|
63
|
+
assert(filePath);
|
|
64
|
+
assert(allowDirectoryCreate, 'Directory create option was not enabled');
|
|
65
|
+
console.log(`Creating directory: ${filePath}`);
|
|
66
|
+
fs.mkdirSync(filePath, { recursive: true });
|
|
67
|
+
}
|
|
68
|
+
else if (name === 'updateFile' || name === 'createFile' || name === 'patchFile') {
|
|
69
|
+
assert(filePath);
|
|
70
|
+
if (name === 'patchFile') {
|
|
71
|
+
assert(patch);
|
|
72
|
+
console.log(`Applying a patch: ${filePath} content`);
|
|
73
|
+
newContent = diff.applyPatch(fs.readFileSync(filePath, 'utf-8'), patch) || '';
|
|
74
|
+
assert(!!newContent, 'Patch was not successful');
|
|
75
|
+
}
|
|
76
|
+
assert(!!newContent, 'newContent must not be empty');
|
|
77
|
+
if (name === 'createFile') {
|
|
78
|
+
console.log(`Creating file: ${filePath}`);
|
|
79
|
+
assert(allowFileCreate, 'File create option was not enabled');
|
|
80
|
+
assert(!fs.existsSync(filePath), 'File already exists');
|
|
81
|
+
if (allowDirectoryCreate) {
|
|
82
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.log(`Updating file: ${filePath}`);
|
|
87
|
+
assert(fs.existsSync(filePath), 'File does not exist');
|
|
88
|
+
}
|
|
89
|
+
fs.writeFileSync(filePath, options.aiService === 'vertex-ai' || options.aiService === 'ai-studio'
|
|
90
|
+
? // Fixing a problem caused by vertex function calling. Possibly not a good fix
|
|
91
|
+
newContent.replace(/\\n/g, '\n').replace(/\\'/g, "'")
|
|
92
|
+
: newContent, 'utf-8');
|
|
93
|
+
}
|
|
94
|
+
else if (name === 'moveFile') {
|
|
95
|
+
console.log(`Moving file from ${source} to ${destination}`);
|
|
96
|
+
assert(source);
|
|
97
|
+
assert(destination);
|
|
98
|
+
assert(fs.existsSync(source), 'Source file does not exist');
|
|
99
|
+
assert(!fs.existsSync(destination), 'Destination file already exists');
|
|
100
|
+
assert(allowFileMove, 'File move option was not enabled');
|
|
101
|
+
if (allowDirectoryCreate) {
|
|
102
|
+
fs.mkdirSync(path.dirname(destination), { recursive: true });
|
|
103
|
+
}
|
|
104
|
+
fs.renameSync(source, destination);
|
|
105
|
+
}
|
|
106
|
+
else if (name === 'downloadFile') {
|
|
107
|
+
console.log(`Downloading image: ${filePath}`);
|
|
108
|
+
assert(filePath);
|
|
109
|
+
assert(fs.existsSync(filePath) || allowFileCreate, 'File create option was not enabled and file does not exist');
|
|
110
|
+
if (allowDirectoryCreate) {
|
|
111
|
+
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
|
112
|
+
}
|
|
113
|
+
try {
|
|
114
|
+
const downloadUrl = args?.downloadUrl;
|
|
115
|
+
assert(downloadUrl, 'image url is not empty');
|
|
116
|
+
if (downloadUrl.startsWith('temp://')) {
|
|
117
|
+
assert(getTempBuffer(downloadUrl), 'Temp buffer not present but expected');
|
|
118
|
+
fs.writeFileSync(filePath, getTempBuffer(downloadUrl));
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
const imageResponse = await fetch(downloadUrl);
|
|
122
|
+
const arrayBuffer = await imageResponse.arrayBuffer();
|
|
123
|
+
const buffer = Buffer.from(arrayBuffer);
|
|
124
|
+
fs.writeFileSync(filePath, buffer);
|
|
125
|
+
}
|
|
126
|
+
console.log(`Image download and saved to: ${filePath}`);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
console.error('Failed to download image:', error);
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
else if (name === 'imglyRemoveBackground') {
|
|
134
|
+
console.log(`Removing background from image: ${inputFilePath}`);
|
|
135
|
+
assert(inputFilePath);
|
|
136
|
+
assert(outputFilePath);
|
|
137
|
+
assert(fs.existsSync(inputFilePath), 'Input file does not exist');
|
|
138
|
+
assert(allowFileCreate || fs.existsSync(outputFilePath), 'File create option was not enabled and output file does not exist');
|
|
139
|
+
if (allowDirectoryCreate) {
|
|
140
|
+
fs.mkdirSync(path.dirname(outputFilePath), { recursive: true });
|
|
141
|
+
}
|
|
142
|
+
try {
|
|
143
|
+
await imglyRemoveBackground(inputFilePath, outputFilePath);
|
|
144
|
+
console.log(`Background removed and image saved to: ${outputFilePath}`);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
console.error('Failed to remove background', error);
|
|
148
|
+
throw error;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
else if (name === 'splitImage') {
|
|
152
|
+
console.log(`Splitting image: ${inputFilePath}`, parts);
|
|
153
|
+
assert(inputFilePath);
|
|
154
|
+
assert(fs.existsSync(inputFilePath), 'Input file does not exist');
|
|
155
|
+
assert(Array.isArray(parts) && parts.length > 0, 'Parts array must not be empty');
|
|
156
|
+
for (const part of parts) {
|
|
157
|
+
assert(part.outputFilePath);
|
|
158
|
+
assert(allowFileCreate || fs.existsSync(part.outputFilePath), 'File create option was not enabled and output file does not exist');
|
|
159
|
+
if (allowDirectoryCreate) {
|
|
160
|
+
fs.mkdirSync(path.dirname(part.outputFilePath), { recursive: true });
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
await splitImage(inputFilePath, parts.map((part) => ({ outputFilePath: part.outputFilePath, rect: part.rect })));
|
|
165
|
+
console.log(`Image split successfully`);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error('Failed to split image', error);
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
else if (name === 'resizeImage') {
|
|
173
|
+
console.log(`Resizing image: ${filePath}`, size);
|
|
174
|
+
assert(filePath);
|
|
175
|
+
assert(size);
|
|
176
|
+
assert(size.width);
|
|
177
|
+
assert(size.height);
|
|
178
|
+
assert(fs.existsSync(filePath), 'Input file does not exist');
|
|
179
|
+
try {
|
|
180
|
+
await resizeImageFile(filePath, { width: size.width, height: size.height });
|
|
181
|
+
console.log(`Image resized successfully`);
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
console.error('Failed to resize image', error);
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
function isProjectPath(filePath) {
|
|
191
|
+
const sourceFiles = getSourceFiles();
|
|
192
|
+
return (isAncestorDirectory(rcConfig.rootDir, filePath) ||
|
|
193
|
+
sourceFiles.includes(filePath) ||
|
|
194
|
+
!sourceFiles.some((sourceFile) => path.dirname(filePath) === path.dirname(sourceFile) ||
|
|
195
|
+
isAncestorDirectory(path.dirname(sourceFile), path.dirname(filePath))));
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=update-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-files.js","sourceRoot":"","sources":["../../src/files/update-files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ensureAlpha(image: string | Buffer): Promise<Buffer>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ensure-alpha.js","sourceRoot":"","sources":["../../src/images/ensure-alpha.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAsB;IACtD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { removeBackground } from '@imgly/background-removal-node';
|
|
4
|
+
/** Converts white color to transparency on a image and saves to destination path */
|
|
5
|
+
export async function imglyRemoveBackground(inputFilePath, outputFilePath) {
|
|
6
|
+
try {
|
|
7
|
+
console.log(`Removing background for image: ${inputFilePath}`);
|
|
8
|
+
const publicPath = 'file://' + createRequire(import.meta.url).resolve('@imgly/background-removal-node');
|
|
9
|
+
const blob = await removeBackground(inputFilePath, {
|
|
10
|
+
publicPath,
|
|
11
|
+
});
|
|
12
|
+
fs.writeFileSync(outputFilePath, Buffer.from(await blob.arrayBuffer()));
|
|
13
|
+
console.log(`Background removed successfully. Saved to: ${outputFilePath}`);
|
|
14
|
+
return outputFilePath;
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
console.error('Error removing background:', error);
|
|
18
|
+
throw error;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=imgly-remove-background.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imgly-remove-background.js","sourceRoot":"","sources":["../../src/images/imgly-remove-background.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,oFAAoF;AACpF,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,aAAqB,EAAE,cAAsB;IACvF,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,kCAAkC,aAAa,EAAE,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACxG,MAAM,IAAI,GAAS,MAAM,gBAAgB,CAAC,aAAa,EAAE;YACvD,UAAU;SACX,CAAC,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAExE,OAAO,CAAC,GAAG,CAAC,8CAA8C,cAAc,EAAE,CAAC,CAAC;QAC5E,OAAO,cAAc,CAAC;IACxB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
interface ImageSize {
|
|
2
|
+
width: number;
|
|
3
|
+
height: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Resize an image buffer to the desired size
|
|
7
|
+
* @param {Buffer} input - The input image buffer
|
|
8
|
+
* @param {ImageSize} size - The desired size of the image
|
|
9
|
+
* @returns {Promise<Buffer>} - The resized image buffer
|
|
10
|
+
*/
|
|
11
|
+
export declare function resizeImageBuffer(input: Buffer, size: ImageSize): Promise<Buffer>;
|
|
12
|
+
/**
|
|
13
|
+
* Resize an image file to the desired size and save it back to the same file
|
|
14
|
+
* @param {string} filePath - The path of the image file to resize
|
|
15
|
+
* @param {ImageSize} size - The desired size of the image
|
|
16
|
+
* @returns {Promise<void>}
|
|
17
|
+
*/
|
|
18
|
+
export declare function resizeImageFile(filePath: string, size: ImageSize): Promise<void>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import sharp from 'sharp';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
/**
|
|
4
|
+
* Resize an image buffer to the desired size
|
|
5
|
+
* @param {Buffer} input - The input image buffer
|
|
6
|
+
* @param {ImageSize} size - The desired size of the image
|
|
7
|
+
* @returns {Promise<Buffer>} - The resized image buffer
|
|
8
|
+
*/
|
|
9
|
+
export async function resizeImageBuffer(input, size) {
|
|
10
|
+
return await sharp(input).resize(size.width, size.height).toBuffer();
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Resize an image file to the desired size and save it back to the same file
|
|
14
|
+
* @param {string} filePath - The path of the image file to resize
|
|
15
|
+
* @param {ImageSize} size - The desired size of the image
|
|
16
|
+
* @returns {Promise<void>}
|
|
17
|
+
*/
|
|
18
|
+
export async function resizeImageFile(filePath, size) {
|
|
19
|
+
const buffer = await resizeImageBuffer(await fs.promises.readFile(filePath), size);
|
|
20
|
+
await fs.promises.writeFile(filePath, buffer);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=resize-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resize-image.js","sourceRoot":"","sources":["../../src/images/resize-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AAOpB;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,IAAe;IACpE,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;AACvE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,IAAe;IACrE,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACnF,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
interface Rect {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
}
|
|
7
|
+
interface Part {
|
|
8
|
+
rect: Rect;
|
|
9
|
+
outputFilePath: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* This function opens the input file, and splits its into parts, extracting parts of the input image, and saving to outputFilePaths
|
|
13
|
+
*
|
|
14
|
+
* @param {string} inputFilePath
|
|
15
|
+
* @param {Part[]} parts
|
|
16
|
+
*/
|
|
17
|
+
export declare function splitImage(inputFilePath: string, parts: Part[]): Promise<void>;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import sharp from 'sharp';
|
|
2
|
+
/**
|
|
3
|
+
* This function opens the input file, and splits its into parts, extracting parts of the input image, and saving to outputFilePaths
|
|
4
|
+
*
|
|
5
|
+
* @param {string} inputFilePath
|
|
6
|
+
* @param {Part[]} parts
|
|
7
|
+
*/
|
|
8
|
+
export async function splitImage(inputFilePath, parts) {
|
|
9
|
+
try {
|
|
10
|
+
// Process each part
|
|
11
|
+
for (const part of parts) {
|
|
12
|
+
const { rect, outputFilePath } = part;
|
|
13
|
+
const { x, y, width, height } = rect;
|
|
14
|
+
// Extract the specified rectangle from the input image
|
|
15
|
+
console.log('Extracting', rect, outputFilePath);
|
|
16
|
+
await sharp(inputFilePath).extract({ left: x, top: y, width, height }).toFile(outputFilePath);
|
|
17
|
+
}
|
|
18
|
+
console.log('Image splitting completed successfully.');
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
console.error('Error splitting image:', error);
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=split-image.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-image.js","sourceRoot":"","sources":["../../src/images/split-image.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAc1B;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,aAAqB,EAAE,KAAa;IACnE,IAAI,CAAC;QACH,oBAAoB;QACpB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;YACtC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAErC,uDAAuD;YACvD,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAChG,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AiServiceType, CodegenOptions } from './codegen-types.js';
|
|
2
|
+
export declare const displayWelcome: () => void;
|
|
3
|
+
type UserAction = 'text_prompt' | 'task_file' | 'process_comments' | 'select_ai_service' | 'configure' | 'help' | 'exit';
|
|
4
|
+
export declare const getUserAction: () => Promise<UserAction>;
|
|
5
|
+
export declare const getUserOptions: (options: CodegenOptions) => Promise<CodegenOptions>;
|
|
6
|
+
export declare const checkForCodegenComments: () => boolean;
|
|
7
|
+
export declare const selectAiService: (defaultAiService: AiServiceType | undefined) => Promise<AiServiceType>;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import { select, checkbox, Separator, input, confirm } from '@inquirer/prompts';
|
|
3
|
+
import { getSourceFiles } from '../files/find-files.js';
|
|
4
|
+
import { CODEGEN_TRIGGER } from '../prompt/prompt-consts.js';
|
|
5
|
+
import { createRequire } from 'module';
|
|
6
|
+
const require = createRequire(import.meta.url);
|
|
7
|
+
const packageJson = require('../../package.json');
|
|
8
|
+
// Function to display the welcome message
|
|
9
|
+
export const displayWelcome = () => {
|
|
10
|
+
console.log(`Welcome to Genaicode v${packageJson.version}`);
|
|
11
|
+
};
|
|
12
|
+
// Function to get user action
|
|
13
|
+
export const getUserAction = async () => {
|
|
14
|
+
const choices = [
|
|
15
|
+
{ name: 'Enter a text prompt', value: 'text_prompt' },
|
|
16
|
+
{ name: 'Select a task file', value: 'task_file' },
|
|
17
|
+
{ name: `Process ${CODEGEN_TRIGGER} comments`, value: 'process_comments' },
|
|
18
|
+
new Separator(),
|
|
19
|
+
{ name: 'Select AI service', value: 'select_ai_service' },
|
|
20
|
+
{ name: 'Configuration', value: 'configure' },
|
|
21
|
+
{ name: 'Print help', value: 'help' },
|
|
22
|
+
new Separator(),
|
|
23
|
+
{ name: 'Exit', value: 'exit' },
|
|
24
|
+
];
|
|
25
|
+
const action = await select({
|
|
26
|
+
message: 'What would you like to do?',
|
|
27
|
+
pageSize: choices.length,
|
|
28
|
+
choices,
|
|
29
|
+
});
|
|
30
|
+
return action;
|
|
31
|
+
};
|
|
32
|
+
// Function to get user options
|
|
33
|
+
export const getUserOptions = async (options) => {
|
|
34
|
+
const updatedOptions = { ...options };
|
|
35
|
+
// General options
|
|
36
|
+
const generalOptions = await checkbox({
|
|
37
|
+
message: 'Select general options:',
|
|
38
|
+
choices: [
|
|
39
|
+
{ name: 'Consider all files', value: 'considerAllFiles', checked: options.considerAllFiles },
|
|
40
|
+
{ name: 'Dry run', value: 'dryRun', checked: options.dryRun },
|
|
41
|
+
{ name: 'Verbose', value: 'verbose', checked: options.verbose },
|
|
42
|
+
{ name: 'Require explanations', value: 'requireExplanations', checked: options.requireExplanations },
|
|
43
|
+
{ name: 'Disable initial lint', value: 'disableInitialLint', checked: options.disableInitialLint },
|
|
44
|
+
{ name: 'Ask questions', value: 'askQuestion', checked: options.askQuestion },
|
|
45
|
+
{ name: 'Disable cache', value: 'disableCache', checked: options.disableCache },
|
|
46
|
+
],
|
|
47
|
+
});
|
|
48
|
+
updatedOptions.considerAllFiles = generalOptions.includes('considerAllFiles');
|
|
49
|
+
updatedOptions.dryRun = generalOptions.includes('dryRun');
|
|
50
|
+
updatedOptions.verbose = generalOptions.includes('verbose');
|
|
51
|
+
updatedOptions.requireExplanations = generalOptions.includes('requireExplanations');
|
|
52
|
+
updatedOptions.disableInitialLint = generalOptions.includes('disableInitialLint');
|
|
53
|
+
updatedOptions.askQuestion = generalOptions.includes('askQuestion');
|
|
54
|
+
updatedOptions.disableCache = generalOptions.includes('disableCache');
|
|
55
|
+
// File operation options
|
|
56
|
+
const fileOptions = await checkbox({
|
|
57
|
+
message: 'Select file operation options:',
|
|
58
|
+
choices: [
|
|
59
|
+
{ name: 'Allow file creation', value: 'allowFileCreate', checked: options.allowFileCreate },
|
|
60
|
+
{ name: 'Allow file deletion', value: 'allowFileDelete', checked: options.allowFileDelete },
|
|
61
|
+
{ name: 'Allow directory creation', value: 'allowDirectoryCreate', checked: options.allowDirectoryCreate },
|
|
62
|
+
{ name: 'Allow file moving', value: 'allowFileMove', checked: options.allowFileMove },
|
|
63
|
+
],
|
|
64
|
+
});
|
|
65
|
+
updatedOptions.allowFileCreate = fileOptions.includes('allowFileCreate');
|
|
66
|
+
updatedOptions.allowFileDelete = fileOptions.includes('allowFileDelete');
|
|
67
|
+
updatedOptions.allowDirectoryCreate = fileOptions.includes('allowDirectoryCreate');
|
|
68
|
+
updatedOptions.allowFileMove = fileOptions.includes('allowFileMove');
|
|
69
|
+
// AI model options
|
|
70
|
+
updatedOptions.disableContextOptimization = await confirm({
|
|
71
|
+
message: 'Disable context optimization?',
|
|
72
|
+
default: options.disableContextOptimization || false,
|
|
73
|
+
});
|
|
74
|
+
updatedOptions.temperature = parseFloat(await input({
|
|
75
|
+
message: 'Enter temperature (0.0 - 2.0):',
|
|
76
|
+
default: options.temperature?.toString() || '0.7',
|
|
77
|
+
validate: (value) => {
|
|
78
|
+
const num = parseFloat(value);
|
|
79
|
+
return (num >= 0 && num <= 2) || 'Please enter a number between 0 and 2';
|
|
80
|
+
},
|
|
81
|
+
}));
|
|
82
|
+
updatedOptions.cheap = await confirm({
|
|
83
|
+
message: 'Use cheaper, faster model?',
|
|
84
|
+
default: options.cheap || false,
|
|
85
|
+
});
|
|
86
|
+
updatedOptions.geminiBlockNone = await confirm({
|
|
87
|
+
message: 'Disable safety settings for Gemini Pro model?',
|
|
88
|
+
default: options.geminiBlockNone || false,
|
|
89
|
+
});
|
|
90
|
+
// Vision and image generation options
|
|
91
|
+
updatedOptions.vision = await confirm({
|
|
92
|
+
message: 'Enable vision capabilities?',
|
|
93
|
+
default: options.vision || false,
|
|
94
|
+
});
|
|
95
|
+
if (await confirm({ message: 'Enable image generation?', default: !!options.imagen })) {
|
|
96
|
+
updatedOptions.imagen = await select({
|
|
97
|
+
message: 'Select image generation service:',
|
|
98
|
+
choices: [
|
|
99
|
+
{ name: 'Vertex AI', value: 'vertex-ai' },
|
|
100
|
+
{ name: 'DALL-E', value: 'dall-e' },
|
|
101
|
+
],
|
|
102
|
+
default: options.imagen || 'vertex-ai',
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
updatedOptions.imagen = undefined;
|
|
107
|
+
}
|
|
108
|
+
// Content mask and ignore patterns
|
|
109
|
+
updatedOptions.contentMask = await input({
|
|
110
|
+
message: 'Enter content mask (prefix of path relative to rootDir):',
|
|
111
|
+
default: options.contentMask || '',
|
|
112
|
+
});
|
|
113
|
+
const ignorePatterns = await input({
|
|
114
|
+
message: 'Enter ignore patterns (comma-separated):',
|
|
115
|
+
default: options.ignorePatterns?.join(',') || '',
|
|
116
|
+
});
|
|
117
|
+
updatedOptions.ignorePatterns = ignorePatterns ? ignorePatterns.split(',').map(p => p.trim()) : undefined;
|
|
118
|
+
return updatedOptions;
|
|
119
|
+
};
|
|
120
|
+
// Function to check for CODEGEN comments in source files
|
|
121
|
+
export const checkForCodegenComments = () => {
|
|
122
|
+
const sourceFiles = getSourceFiles();
|
|
123
|
+
for (const file of sourceFiles) {
|
|
124
|
+
const content = fs.readFileSync(file, 'utf-8');
|
|
125
|
+
if (content.includes(CODEGEN_TRIGGER)) {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return false;
|
|
130
|
+
};
|
|
131
|
+
// Function to select AI service
|
|
132
|
+
export const selectAiService = async (defaultAiService) => {
|
|
133
|
+
const choices = [
|
|
134
|
+
{ name: 'Vertex AI (Gemini)', value: 'vertex-ai' },
|
|
135
|
+
{ name: 'AI Studio (Gemini)', value: 'ai-studio' },
|
|
136
|
+
{ name: 'ChatGPT', value: 'chat-gpt' },
|
|
137
|
+
{ name: 'Anthropic Claude', value: 'anthropic' },
|
|
138
|
+
{ name: 'Claude via Vertex AI', value: 'vertex-ai-claude' },
|
|
139
|
+
];
|
|
140
|
+
const selectedAiService = await select({
|
|
141
|
+
message: 'Select the AI model you want to use:',
|
|
142
|
+
pageSize: choices.length,
|
|
143
|
+
choices: choices.map((choice) => ({ ...choice, checked: defaultAiService === choice.value })),
|
|
144
|
+
default: defaultAiService,
|
|
145
|
+
});
|
|
146
|
+
return selectedAiService;
|
|
147
|
+
};
|
|
148
|
+
//# sourceMappingURL=codegen-interactive-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-interactive-utils.js","sourceRoot":"","sources":["../../src/main/codegen-interactive-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { input } from '@inquirer/prompts';
|
|
2
|
+
import fileSelector from 'inquirer-file-selector';
|
|
3
|
+
import { runCodegenIteration } from './codegen.js';
|
|
4
|
+
import { CODEGEN_TRIGGER } from '../prompt/prompt-consts.js';
|
|
5
|
+
import { displayWelcome, getUserAction, getUserOptions, checkForCodegenComments, selectAiService, } from './codegen-interactive-utils.js';
|
|
6
|
+
import { rcConfig } from './config.js';
|
|
7
|
+
import { printHelpMessage } from '../cli/cli-options.js';
|
|
8
|
+
// Main function for interactive mode
|
|
9
|
+
export const runInteractiveMode = async (options) => {
|
|
10
|
+
displayWelcome();
|
|
11
|
+
const runNext = true;
|
|
12
|
+
while (runNext) {
|
|
13
|
+
const action = await getUserAction();
|
|
14
|
+
if (action === 'exit') {
|
|
15
|
+
console.log('Exiting Genaicode Interactive Mode. Goodbye!');
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
switch (action) {
|
|
19
|
+
case 'process_comments':
|
|
20
|
+
await runProcessComments(options);
|
|
21
|
+
break;
|
|
22
|
+
case 'text_prompt':
|
|
23
|
+
await runTextPrompt(options);
|
|
24
|
+
break;
|
|
25
|
+
case 'task_file':
|
|
26
|
+
await runTaskFile(options);
|
|
27
|
+
break;
|
|
28
|
+
case 'select_ai_service':
|
|
29
|
+
options.aiService = await selectAiService(options.aiService);
|
|
30
|
+
console.log(`Selected AI service: ${options.aiService}`);
|
|
31
|
+
break;
|
|
32
|
+
case 'configure':
|
|
33
|
+
options = await getUserOptions(options);
|
|
34
|
+
break;
|
|
35
|
+
case 'help':
|
|
36
|
+
printHelpMessage();
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
console.log('Task completed. Returning to main menu...\n');
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
async function runProcessComments(options) {
|
|
43
|
+
const hasCodegenComments = checkForCodegenComments();
|
|
44
|
+
if (!hasCodegenComments) {
|
|
45
|
+
console.warn(`Warning: No ${CODEGEN_TRIGGER} comments found in the source code.`);
|
|
46
|
+
}
|
|
47
|
+
console.log(`Processing ${CODEGEN_TRIGGER} comments...`);
|
|
48
|
+
await runCodegenIteration({ ...options, considerAllFiles: false });
|
|
49
|
+
}
|
|
50
|
+
async function runTextPrompt(options) {
|
|
51
|
+
const prompt = await input({ message: 'Enter your text prompt:' });
|
|
52
|
+
console.log(`Executing prompt: ${prompt}`);
|
|
53
|
+
await runCodegenIteration({ ...options, explicitPrompt: prompt });
|
|
54
|
+
}
|
|
55
|
+
async function runTaskFile(options) {
|
|
56
|
+
const taskFile = await fileSelector({
|
|
57
|
+
message: 'Select task file:',
|
|
58
|
+
path: rcConfig.rootDir,
|
|
59
|
+
});
|
|
60
|
+
if (taskFile) {
|
|
61
|
+
console.log(`Selected task file: ${taskFile}`);
|
|
62
|
+
await runCodegenIteration({ ...options, taskFile });
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
console.log('No task file selected.');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=codegen-interactive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codegen-interactive.js","sourceRoot":"","sources":["../../src/main/codegen-interactive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type AiServiceType = 'vertex-ai' | 'ai-studio' | 'vertex-ai-claude' | 'chat-gpt' | 'anthropic';
|
|
2
|
+
export type ImagenType = 'vertex-ai' | 'dall-e';
|
|
3
|
+
export interface CodegenOptions {
|
|
4
|
+
explicitPrompt?: string;
|
|
5
|
+
taskFile?: string;
|
|
6
|
+
considerAllFiles?: boolean;
|
|
7
|
+
allowFileCreate?: boolean;
|
|
8
|
+
allowFileDelete?: boolean;
|
|
9
|
+
allowDirectoryCreate?: boolean;
|
|
10
|
+
allowFileMove?: boolean;
|
|
11
|
+
vision?: boolean;
|
|
12
|
+
imagen?: ImagenType;
|
|
13
|
+
aiService: AiServiceType;
|
|
14
|
+
disableContextOptimization?: boolean;
|
|
15
|
+
temperature?: number;
|
|
16
|
+
cheap?: boolean;
|
|
17
|
+
dryRun?: boolean;
|
|
18
|
+
verbose?: boolean;
|
|
19
|
+
requireExplanations?: boolean;
|
|
20
|
+
geminiBlockNone?: boolean;
|
|
21
|
+
disableInitialLint?: boolean;
|
|
22
|
+
contentMask?: string;
|
|
23
|
+
ignorePatterns?: string[];
|
|
24
|
+
askQuestion?: boolean;
|
|
25
|
+
interactive?: boolean;
|
|
26
|
+
disableCache?: boolean;
|
|
27
|
+
dependencyTree?: boolean;
|
|
28
|
+
}
|