genaicode 0.2.1 → 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.
Files changed (174) hide show
  1. package/README.md +2 -0
  2. package/bin/genaicode-dev.js +2 -1
  3. package/bin/genaicode.cjs +4 -4
  4. package/dist/ai-service/ai-studio.js +8 -2
  5. package/dist/ai-service/ai-studio.js.map +1 -1
  6. package/dist/ai-service/anthropic.js +21 -8
  7. package/dist/ai-service/anthropic.js.map +1 -1
  8. package/dist/ai-service/chat-gpt.js +21 -10
  9. package/dist/ai-service/chat-gpt.js.map +1 -1
  10. package/dist/ai-service/common.d.ts +9 -5
  11. package/dist/ai-service/common.js +6 -4
  12. package/dist/ai-service/common.js.map +1 -1
  13. package/dist/ai-service/common.test.js +3 -3
  14. package/dist/ai-service/common.test.js.map +1 -1
  15. package/dist/ai-service/vertex-ai-claude.js +5 -4
  16. package/dist/ai-service/vertex-ai-claude.js.map +1 -1
  17. package/dist/ai-service/vertex-ai.js +11 -2
  18. package/dist/ai-service/vertex-ai.js.map +1 -1
  19. package/dist/cli/cli-params.d.ts +2 -0
  20. package/dist/cli/cli-params.js +14 -2
  21. package/dist/cli/cli-params.js.map +1 -1
  22. package/dist/cli/validate-cli-params.js +3 -1
  23. package/dist/cli/validate-cli-params.js.map +1 -1
  24. package/dist/files/find-files.d.ts +1 -0
  25. package/dist/files/find-files.js +7 -2
  26. package/dist/files/find-files.js.map +1 -1
  27. package/dist/files/read-files.d.ts +2 -2
  28. package/dist/files/read-files.js +2 -2
  29. package/dist/files/read-files.js.map +1 -1
  30. package/dist/files/read-files.test.js +1 -1
  31. package/dist/files/read-files.test.js.map +1 -1
  32. package/dist/main/codegen-types.d.ts +13 -0
  33. package/dist/main/codegen.d.ts +2 -2
  34. package/dist/main/codegen.js +86 -52
  35. package/dist/main/codegen.js.map +1 -1
  36. package/dist/main/codegen.test.js +7 -4
  37. package/dist/main/codegen.test.js.map +1 -1
  38. package/dist/main/common/content-bus-types.d.ts +16 -0
  39. package/dist/main/common/content-bus-types.js +7 -0
  40. package/dist/main/common/content-bus-types.js.map +1 -0
  41. package/dist/main/common/content-bus.d.ts +9 -0
  42. package/dist/main/common/content-bus.js +25 -0
  43. package/dist/main/common/content-bus.js.map +1 -0
  44. package/dist/main/common/cost-collector.d.ts +15 -0
  45. package/dist/main/common/cost-collector.js +24 -0
  46. package/dist/main/common/cost-collector.js.map +1 -0
  47. package/dist/main/common/user-actions.d.ts +7 -0
  48. package/dist/main/common/user-actions.js +15 -0
  49. package/dist/main/common/user-actions.js.map +1 -0
  50. package/dist/main/config-lib.d.ts +19 -0
  51. package/dist/main/config-lib.js.map +1 -1
  52. package/dist/main/config.d.ts +2 -1
  53. package/dist/main/config.js +3 -0
  54. package/dist/main/config.js.map +1 -1
  55. package/dist/main/interactive/codegen-interactive.js +8 -2
  56. package/dist/main/interactive/codegen-interactive.js.map +1 -1
  57. package/dist/main/interactive/codegen-worker.d.ts +1 -1
  58. package/dist/main/interactive/codegen-worker.js +5 -2
  59. package/dist/main/interactive/codegen-worker.js.map +1 -1
  60. package/dist/main/interactive/task-file.js +9 -2
  61. package/dist/main/interactive/task-file.js.map +1 -1
  62. package/dist/main/interactive/user-action-handlers.d.ts +1 -0
  63. package/dist/main/interactive/user-action-handlers.js +13 -0
  64. package/dist/main/interactive/user-action-handlers.js.map +1 -0
  65. package/dist/main/interactive/user-interrupt.js +1 -1
  66. package/dist/main/interactive/user-interrupt.js.map +1 -1
  67. package/dist/main/ui/backend/api-utils.d.ts +2 -0
  68. package/dist/main/ui/backend/api-utils.js +18 -0
  69. package/dist/main/ui/backend/api-utils.js.map +1 -0
  70. package/dist/main/ui/backend/api.d.ts +2 -0
  71. package/dist/main/ui/backend/api.js +186 -0
  72. package/dist/main/ui/backend/api.js.map +1 -0
  73. package/dist/main/ui/backend/server.d.ts +2 -0
  74. package/dist/main/ui/backend/server.js +81 -0
  75. package/dist/main/ui/backend/server.js.map +1 -0
  76. package/dist/main/ui/backend/service.d.ts +47 -0
  77. package/dist/main/ui/backend/service.js +161 -0
  78. package/dist/main/ui/backend/service.js.map +1 -0
  79. package/dist/main/ui/codegen-ui.d.ts +2 -0
  80. package/dist/main/ui/codegen-ui.js +13 -0
  81. package/dist/main/ui/codegen-ui.js.map +1 -0
  82. package/dist/main/ui/frontend/assets/index-D9wcaSJU.js +598 -0
  83. package/dist/main/ui/frontend/assets/index-S_ocA1xG.css +1 -0
  84. package/dist/main/ui/frontend/assets/logo-BGHkG1-J.png +0 -0
  85. package/dist/main/ui/frontend/assets/logo-dark-KAsU1C78.png +0 -0
  86. package/dist/main/ui/frontend/assets/press-start-2p-cyrillic-400-normal-oElOGqNf.woff2 +0 -0
  87. package/dist/main/ui/frontend/assets/press-start-2p-cyrillic-ext-400-normal-COIQET2s.woff2 +0 -0
  88. package/dist/main/ui/frontend/assets/press-start-2p-greek-400-normal-DUIT0YPZ.woff2 +0 -0
  89. package/dist/main/ui/frontend/assets/press-start-2p-latin-400-normal-BKfmdmKK.woff +0 -0
  90. package/dist/main/ui/frontend/assets/press-start-2p-latin-400-normal-xj9lRvVs.woff2 +0 -0
  91. package/dist/main/ui/frontend/assets/press-start-2p-latin-ext-400-normal-B18ub5-k.woff +0 -0
  92. package/dist/main/ui/frontend/assets/press-start-2p-latin-ext-400-normal-DDIa4im3.woff2 +0 -0
  93. package/dist/main/ui/frontend/index.html +16 -0
  94. package/dist/main/ui/user-action-handlers.d.ts +2 -0
  95. package/dist/main/ui/user-action-handlers.js +9 -0
  96. package/dist/main/ui/user-action-handlers.js.map +1 -0
  97. package/dist/prompt/ai-service-fallback.d.ts +3 -0
  98. package/dist/prompt/ai-service-fallback.js +79 -0
  99. package/dist/prompt/ai-service-fallback.js.map +1 -0
  100. package/dist/prompt/function-calling.js +3 -1
  101. package/dist/prompt/function-calling.js.map +1 -1
  102. package/dist/prompt/function-defs/ask-question.d.ts +13 -13
  103. package/dist/prompt/function-defs/ask-question.js +13 -14
  104. package/dist/prompt/function-defs/ask-question.js.map +1 -1
  105. package/dist/prompt/function-defs/codegen-summary.d.ts +23 -21
  106. package/dist/prompt/function-defs/codegen-summary.js +28 -28
  107. package/dist/prompt/function-defs/codegen-summary.js.map +1 -1
  108. package/dist/prompt/function-defs/create-file.d.ts +4 -4
  109. package/dist/prompt/function-defs/create-file.js +4 -4
  110. package/dist/prompt/function-defs/create-file.js.map +1 -1
  111. package/dist/prompt/function-defs/delete-file.d.ts +4 -4
  112. package/dist/prompt/function-defs/delete-file.js +4 -4
  113. package/dist/prompt/function-defs/delete-file.js.map +1 -1
  114. package/dist/prompt/function-defs/generate-image.d.ts +4 -4
  115. package/dist/prompt/function-defs/generate-image.js +4 -4
  116. package/dist/prompt/function-defs/generate-image.js.map +1 -1
  117. package/dist/prompt/function-defs/get-source-code.d.ts +1 -1
  118. package/dist/prompt/function-defs/get-source-code.js +2 -1
  119. package/dist/prompt/function-defs/get-source-code.js.map +1 -1
  120. package/dist/prompt/function-defs/move-file.d.ts +4 -4
  121. package/dist/prompt/function-defs/move-file.js +4 -4
  122. package/dist/prompt/function-defs/move-file.js.map +1 -1
  123. package/dist/prompt/function-defs/optimize-context.d.ts +41 -0
  124. package/dist/prompt/function-defs/optimize-context.js +42 -0
  125. package/dist/prompt/function-defs/optimize-context.js.map +1 -0
  126. package/dist/prompt/function-defs/patch-file.d.ts +4 -4
  127. package/dist/prompt/function-defs/patch-file.js +4 -4
  128. package/dist/prompt/function-defs/patch-file.js.map +1 -1
  129. package/dist/prompt/function-defs/update-file.d.ts +4 -4
  130. package/dist/prompt/function-defs/update-file.js +4 -4
  131. package/dist/prompt/function-defs/update-file.js.map +1 -1
  132. package/dist/prompt/limits.d.ts +3 -3
  133. package/dist/prompt/limits.js +10 -8
  134. package/dist/prompt/limits.js.map +1 -1
  135. package/dist/prompt/limits.test.js +6 -6
  136. package/dist/prompt/limits.test.js.map +1 -1
  137. package/dist/prompt/prompt-codegen.js +38 -23
  138. package/dist/prompt/prompt-codegen.js.map +1 -1
  139. package/dist/prompt/prompt-codegen.test.js +2 -2
  140. package/dist/prompt/prompt-codegen.test.js.map +1 -1
  141. package/dist/prompt/prompt-service-ask-question.test.js +12 -5
  142. package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
  143. package/dist/prompt/prompt-service.d.ts +3 -9
  144. package/dist/prompt/prompt-service.js +30 -7
  145. package/dist/prompt/prompt-service.js.map +1 -1
  146. package/dist/prompt/prompt-service.test.js +40 -25
  147. package/dist/prompt/prompt-service.test.js.map +1 -1
  148. package/dist/prompt/steps/step-ask-question.d.ts +1 -1
  149. package/dist/prompt/steps/step-ask-question.js +34 -17
  150. package/dist/prompt/steps/step-ask-question.js.map +1 -1
  151. package/dist/prompt/steps/step-context-optimization.d.ts +6 -0
  152. package/dist/prompt/steps/step-context-optimization.js +146 -0
  153. package/dist/prompt/steps/step-context-optimization.js.map +1 -0
  154. package/dist/prompt/systemprompt.d.ts +1 -1
  155. package/dist/prompt/systemprompt.js +82 -32
  156. package/dist/prompt/systemprompt.js.map +1 -1
  157. package/dist/prompt/systemprompt.test.js +5 -8
  158. package/dist/prompt/systemprompt.test.js.map +1 -1
  159. package/dist/prompt/token-estimator.d.ts +8 -0
  160. package/dist/prompt/token-estimator.js +31 -0
  161. package/dist/prompt/token-estimator.js.map +1 -0
  162. package/package.json +24 -4
  163. package/dist/main/codegen-interactive-utils.d.ts +0 -8
  164. package/dist/main/codegen-interactive-utils.js +0 -148
  165. package/dist/main/codegen-interactive-utils.js.map +0 -1
  166. package/dist/main/codegen-interactive.d.ts +0 -2
  167. package/dist/main/codegen-interactive.js +0 -68
  168. package/dist/main/codegen-interactive.js.map +0 -1
  169. package/dist/main/interactive/worker-script.d.ts +0 -1
  170. package/dist/main/interactive/worker-script.js +0 -24
  171. package/dist/main/interactive/worker-script.js.map +0 -1
  172. package/dist/main/interactive/worker.d.ts +0 -2
  173. package/dist/main/interactive/worker.js +0 -55
  174. package/dist/main/interactive/worker.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genaicode",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "author": "Grzegorz Tańczyk",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,30 +25,45 @@
25
25
  "LICENSE"
26
26
  ],
27
27
  "scripts": {
28
- "lint": "eslint . --ext js,ts --report-unused-disable-directives --max-warnings 0",
28
+ "lint": "eslint . --ext js,ts,tsx --report-unused-disable-directives --max-warnings 0",
29
29
  "test": "vitest",
30
30
  "coverage": "vitest run --coverage",
31
- "prepare": "husky install",
31
+ "prepare": "husky install || true",
32
32
  "type-check": "tsc --noEmit",
33
- "build": "tsc",
33
+ "build": "tsc && npm run build-frontend",
34
+ "build-frontend": "vite build src/main/ui/frontend",
34
35
  "prepublishOnly": "npm run build"
35
36
  },
36
37
  "devDependencies": {
38
+ "@types/cors": "^2.8.13",
39
+ "@types/express": "^4.17.21",
40
+ "@types/helmet": "^4.0.0",
41
+ "@types/multer": "^1.4.12",
42
+ "@types/react": "^18.3.5",
43
+ "@types/react-dom": "^18.3.0",
37
44
  "@typescript-eslint/eslint-plugin": "^7.17.0",
45
+ "@vitejs/plugin-react": "^4.3.1",
38
46
  "@vitest/coverage-v8": "^2.0.5",
47
+ "axios": "^1.7.7",
39
48
  "eslint": "^8.54.0",
40
49
  "eslint-config-prettier": "^9.0.0",
41
50
  "eslint-plugin-import": "^2.29.0",
42
51
  "husky": "^9.1.1",
43
52
  "lint-staged": "^15.2.7",
44
53
  "prettier": "^3.1.0",
54
+ "react": "^18.3.1",
55
+ "react-dom": "^18.3.1",
56
+ "styled-components": "^6.1.13",
45
57
  "ts-node": "^10.9.2",
46
58
  "typescript": "^5.0.0",
59
+ "vite": "^5.4.7",
60
+ "vite-plugin-checker": "^0.8.0",
47
61
  "vitest": "^2.0.4"
48
62
  },
49
63
  "dependencies": {
50
64
  "@anthropic-ai/sdk": "^0.26.1",
51
65
  "@anthropic-ai/vertex-sdk": "^0.4.1",
66
+ "@fontsource/press-start-2p": "^5.1.0",
52
67
  "@google-cloud/aiplatform": "^3.25.0",
53
68
  "@google-cloud/vertexai": "^1.6.0",
54
69
  "@google/generative-ai": "^0.17.1",
@@ -57,12 +72,17 @@
57
72
  "@types/diff": "^5.2.1",
58
73
  "@types/mime-types": "^2.1.4",
59
74
  "@types/node": "^18.0.0",
75
+ "@types/styled-components": "^5.1.34",
76
+ "cors": "^2.8.5",
60
77
  "diff": "^5.2.0",
78
+ "express": "^4.21.0",
61
79
  "glob-regex": "^0.3.2",
80
+ "helmet": "^7.1.0",
62
81
  "image-size": "^1.1.1",
63
82
  "inquirer-file-selector": "^0.4.0",
64
83
  "jsonschema": "^1.4.1",
65
84
  "mime-types": "^2.1.35",
85
+ "multer": "^1.4.5-lts.1",
66
86
  "openai": "^4.52.7",
67
87
  "please-upgrade-node": "^3.2.0",
68
88
  "sharp": "^0.33.4"
@@ -1,8 +0,0 @@
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 {};
@@ -1,148 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen-interactive-utils.js","sourceRoot":"","sources":["../../src/main/codegen-interactive-utils.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { CodegenOptions } from './codegen-types.js';
2
- export declare const runInteractiveMode: (options: CodegenOptions) => Promise<void>;
@@ -1,68 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"codegen-interactive.js","sourceRoot":"","sources":["../../src/main/codegen-interactive.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,24 +0,0 @@
1
- import { parentPort } from 'worker_threads';
2
- import assert from 'node:assert';
3
- import { runCodegenIteration } from '../codegen.js';
4
- assert(parentPort, 'parentPort must be defined.');
5
- parentPort.on('message', async ({ action, options, additionalData }) => {
6
- try {
7
- switch (action) {
8
- case 'process_comments':
9
- await runCodegenIteration(options);
10
- break;
11
- case 'text_prompt':
12
- case 'task_file':
13
- await runCodegenIteration({ ...options, ...additionalData });
14
- break;
15
- default:
16
- throw new Error('Unknown action');
17
- }
18
- parentPort.postMessage('done');
19
- }
20
- catch (error) {
21
- parentPort.postMessage({ error: error.message });
22
- }
23
- });
24
- //# sourceMappingURL=worker-script.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-script.js","sourceRoot":"","sources":["../../../src/main/interactive/worker-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,CAAC,UAAU,EAAE,6BAA6B,CAAC,CAAC;AAElD,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;IACrE,IAAI,CAAC;QACH,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,kBAAkB;gBACrB,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,aAAa,CAAC;YACnB,KAAK,WAAW;gBACd,MAAM,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;gBAC7D,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtC,CAAC;QACD,UAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,UAAW,CAAC,WAAW,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/D,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- import { CodegenOptions } from '../codegen-types.js';
2
- export declare const runWorker: (action: string, options: CodegenOptions, additionalData?: Record<string, unknown>) => Promise<void>;
@@ -1,55 +0,0 @@
1
- import { SHARE_ENV, Worker } from 'worker_threads';
2
- import { handleUserInterrupt } from './common.js';
3
- import { fileURLToPath } from 'url';
4
- import path from 'path';
5
- // Helper function to create and run a worker
6
- export const runWorker = async (action, options, additionalData) => {
7
- // Define __dirname and __filename using import.meta.url
8
- const __filename = fileURLToPath(import.meta.url);
9
- const __dirname = path.dirname(__filename);
10
- // Path to the worker file
11
- const workerFile = path.join(__dirname, 'worker-script.js');
12
- console.log('Start worker...');
13
- const worker = new Worker(workerFile, {
14
- env: SHARE_ENV,
15
- });
16
- worker.postMessage({ action, options, additionalData });
17
- try {
18
- await Promise.race([
19
- new Promise((resolve, reject) => {
20
- worker.on('message', (message) => {
21
- if (message === 'done') {
22
- resolve(message);
23
- }
24
- else if (message.error) {
25
- reject(new Error(message.error));
26
- }
27
- });
28
- worker.on('error', reject);
29
- worker.on('exit', (code) => {
30
- if (code !== 0)
31
- reject(new Error(`Worker stopped with exit code ${code}`));
32
- });
33
- }),
34
- handleUserInterrupt(worker),
35
- ]);
36
- }
37
- catch (error) {
38
- if (error instanceof Error) {
39
- if (error.message === 'OPERATION_INTERRUPTED') {
40
- console.log('Operation interrupted by user. Returning to main menu...');
41
- }
42
- else {
43
- console.error(`Error during ${action}:`, error);
44
- }
45
- }
46
- else {
47
- console.log('Worker error', error);
48
- }
49
- }
50
- finally {
51
- console.log('Worker terminate.');
52
- worker.terminate();
53
- }
54
- };
55
- //# sourceMappingURL=worker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../src/main/interactive/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,MAAc,EACd,OAAuB,EACvB,cAAwC,EACzB,EAAE;IACjB,wDAAwD;IACxD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3C,0BAA0B;IAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE;QACpC,GAAG,EAAE,SAAS;KACf,CAAC,CAAC;IACH,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC;YACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC9B,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;oBAC/B,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;wBACvB,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBACzB,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC3B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;oBACzB,IAAI,IAAI,KAAK,CAAC;wBAAE,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7E,CAAC,CAAC,CAAC;YACL,CAAC,CAAC;YACF,mBAAmB,CAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,KAAK,uBAAuB,EAAE,CAAC;gBAC9C,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;YAC1E,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,gBAAgB,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,MAAM,CAAC,SAAS,EAAE,CAAC;IACrB,CAAC;AACH,CAAC,CAAC"}