genaicode 0.2.1 → 0.4.1

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 (232) hide show
  1. package/README.md +11 -0
  2. package/bin/genaicode-dev.js +2 -1
  3. package/bin/genaicode.cjs +4 -4
  4. package/dist/ai-service/ai-studio.js +65 -10
  5. package/dist/ai-service/ai-studio.js.map +1 -1
  6. package/dist/ai-service/anthropic.js +22 -8
  7. package/dist/ai-service/anthropic.js.map +1 -1
  8. package/dist/ai-service/chat-gpt.js +22 -10
  9. package/dist/ai-service/chat-gpt.js.map +1 -1
  10. package/dist/ai-service/common.d.ts +20 -7
  11. package/dist/ai-service/common.js +9 -6
  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/unescape-function-call.d.ts +7 -0
  16. package/dist/ai-service/unescape-function-call.js +59 -0
  17. package/dist/ai-service/unescape-function-call.js.map +1 -0
  18. package/dist/ai-service/unescape-function-call.test.js +18 -0
  19. package/dist/ai-service/unescape-function-call.test.js.map +1 -0
  20. package/dist/ai-service/vertex-ai-claude.js +11 -4
  21. package/dist/ai-service/vertex-ai-claude.js.map +1 -1
  22. package/dist/ai-service/vertex-ai.d.ts +1 -1
  23. package/dist/ai-service/vertex-ai.js +73 -14
  24. package/dist/ai-service/vertex-ai.js.map +1 -1
  25. package/dist/cli/cli-options.js +8 -0
  26. package/dist/cli/cli-options.js.map +1 -1
  27. package/dist/cli/cli-params.d.ts +6 -0
  28. package/dist/cli/cli-params.js +25 -4
  29. package/dist/cli/cli-params.js.map +1 -1
  30. package/dist/cli/validate-cli-params.js +11 -1
  31. package/dist/cli/validate-cli-params.js.map +1 -1
  32. package/dist/files/cache-file.d.ts +3 -0
  33. package/dist/files/cache-file.js +36 -0
  34. package/dist/files/cache-file.js.map +1 -0
  35. package/dist/files/find-files.d.ts +1 -0
  36. package/dist/files/find-files.js +7 -2
  37. package/dist/files/find-files.js.map +1 -1
  38. package/dist/files/read-files.d.ts +6 -3
  39. package/dist/files/read-files.js +7 -5
  40. package/dist/files/read-files.js.map +1 -1
  41. package/dist/files/read-files.test.js +2 -1
  42. package/dist/files/read-files.test.js.map +1 -1
  43. package/dist/files/update-files.js +1 -4
  44. package/dist/files/update-files.js.map +1 -1
  45. package/dist/main/codegen-types.d.ts +15 -0
  46. package/dist/main/codegen.d.ts +2 -2
  47. package/dist/main/codegen.js +91 -52
  48. package/dist/main/codegen.js.map +1 -1
  49. package/dist/main/codegen.test.d.ts +1 -0
  50. package/dist/main/codegen.test.js +24 -8
  51. package/dist/main/codegen.test.js.map +1 -1
  52. package/dist/main/common/content-bus-types.d.ts +16 -0
  53. package/dist/main/common/content-bus-types.js +7 -0
  54. package/dist/main/common/content-bus-types.js.map +1 -0
  55. package/dist/main/common/content-bus.d.ts +9 -0
  56. package/dist/main/common/content-bus.js +25 -0
  57. package/dist/main/common/content-bus.js.map +1 -0
  58. package/dist/main/common/cost-collector.d.ts +11 -0
  59. package/dist/main/common/cost-collector.js +90 -0
  60. package/dist/main/common/cost-collector.js.map +1 -0
  61. package/dist/main/common/user-actions.d.ts +7 -0
  62. package/dist/main/common/user-actions.js +15 -0
  63. package/dist/main/common/user-actions.js.map +1 -0
  64. package/dist/main/config-lib.d.ts +19 -0
  65. package/dist/main/config-lib.js.map +1 -1
  66. package/dist/main/config.d.ts +2 -1
  67. package/dist/main/config.js +3 -0
  68. package/dist/main/config.js.map +1 -1
  69. package/dist/main/interactive/codegen-interactive.js +8 -2
  70. package/dist/main/interactive/codegen-interactive.js.map +1 -1
  71. package/dist/main/interactive/codegen-interactive.test.d.ts +1 -0
  72. package/dist/main/interactive/codegen-interactive.test.js +2 -0
  73. package/dist/main/interactive/codegen-interactive.test.js.map +1 -1
  74. package/dist/main/interactive/codegen-worker.d.ts +1 -1
  75. package/dist/main/interactive/codegen-worker.js +10 -4
  76. package/dist/main/interactive/codegen-worker.js.map +1 -1
  77. package/dist/main/interactive/task-file.js +9 -2
  78. package/dist/main/interactive/task-file.js.map +1 -1
  79. package/dist/main/interactive/user-action-handlers.d.ts +1 -0
  80. package/dist/main/interactive/user-action-handlers.js +13 -0
  81. package/dist/main/interactive/user-action-handlers.js.map +1 -0
  82. package/dist/main/interactive/user-interrupt.js +1 -1
  83. package/dist/main/interactive/user-interrupt.js.map +1 -1
  84. package/dist/main/ui/backend/api-utils.d.ts +2 -0
  85. package/dist/main/ui/backend/api-utils.js +18 -0
  86. package/dist/main/ui/backend/api-utils.js.map +1 -0
  87. package/dist/main/ui/backend/api.d.ts +2 -0
  88. package/dist/main/ui/backend/api.js +186 -0
  89. package/dist/main/ui/backend/api.js.map +1 -0
  90. package/dist/main/ui/backend/server.d.ts +2 -0
  91. package/dist/main/ui/backend/server.js +85 -0
  92. package/dist/main/ui/backend/server.js.map +1 -0
  93. package/dist/main/ui/backend/service.d.ts +48 -0
  94. package/dist/main/ui/backend/service.js +161 -0
  95. package/dist/main/ui/backend/service.js.map +1 -0
  96. package/dist/main/ui/codegen-ui.d.ts +2 -0
  97. package/dist/main/ui/codegen-ui.js +13 -0
  98. package/dist/main/ui/codegen-ui.js.map +1 -0
  99. package/dist/main/ui/frontend/assets/index-Bj9ZkmiD.js +638 -0
  100. package/dist/main/ui/frontend/assets/index-S_ocA1xG.css +1 -0
  101. package/dist/main/ui/frontend/assets/logo-BGHkG1-J.png +0 -0
  102. package/dist/main/ui/frontend/assets/logo-dark-KAsU1C78.png +0 -0
  103. package/dist/main/ui/frontend/assets/press-start-2p-cyrillic-400-normal-oElOGqNf.woff2 +0 -0
  104. package/dist/main/ui/frontend/assets/press-start-2p-cyrillic-ext-400-normal-COIQET2s.woff2 +0 -0
  105. package/dist/main/ui/frontend/assets/press-start-2p-greek-400-normal-DUIT0YPZ.woff2 +0 -0
  106. package/dist/main/ui/frontend/assets/press-start-2p-latin-400-normal-BKfmdmKK.woff +0 -0
  107. package/dist/main/ui/frontend/assets/press-start-2p-latin-400-normal-xj9lRvVs.woff2 +0 -0
  108. package/dist/main/ui/frontend/assets/press-start-2p-latin-ext-400-normal-B18ub5-k.woff +0 -0
  109. package/dist/main/ui/frontend/assets/press-start-2p-latin-ext-400-normal-DDIa4im3.woff2 +0 -0
  110. package/dist/main/ui/frontend/index.html +16 -0
  111. package/dist/main/ui/user-action-handlers.d.ts +2 -0
  112. package/dist/main/ui/user-action-handlers.js +9 -0
  113. package/dist/main/ui/user-action-handlers.js.map +1 -0
  114. package/dist/prompt/ai-service-fallback.d.ts +3 -0
  115. package/dist/prompt/ai-service-fallback.js +84 -0
  116. package/dist/prompt/ai-service-fallback.js.map +1 -0
  117. package/dist/prompt/function-calling-validate.js +70 -4
  118. package/dist/prompt/function-calling-validate.js.map +1 -1
  119. package/dist/prompt/function-calling.js +11 -1
  120. package/dist/prompt/function-calling.js.map +1 -1
  121. package/dist/prompt/function-defs/ask-question-reflect.d.ts +20 -0
  122. package/dist/prompt/function-defs/ask-question-reflect.js +21 -0
  123. package/dist/prompt/function-defs/ask-question-reflect.js.map +1 -0
  124. package/dist/prompt/function-defs/ask-question.d.ts +31 -20
  125. package/dist/prompt/function-defs/ask-question.js +51 -21
  126. package/dist/prompt/function-defs/ask-question.js.map +1 -1
  127. package/dist/prompt/function-defs/codegen-summary.d.ts +23 -21
  128. package/dist/prompt/function-defs/codegen-summary.js +28 -28
  129. package/dist/prompt/function-defs/codegen-summary.js.map +1 -1
  130. package/dist/prompt/function-defs/create-file.d.ts +4 -4
  131. package/dist/prompt/function-defs/create-file.js +4 -4
  132. package/dist/prompt/function-defs/create-file.js.map +1 -1
  133. package/dist/prompt/function-defs/delete-file.d.ts +4 -4
  134. package/dist/prompt/function-defs/delete-file.js +4 -4
  135. package/dist/prompt/function-defs/delete-file.js.map +1 -1
  136. package/dist/prompt/function-defs/generate-image.d.ts +4 -4
  137. package/dist/prompt/function-defs/generate-image.js +4 -4
  138. package/dist/prompt/function-defs/generate-image.js.map +1 -1
  139. package/dist/prompt/function-defs/get-source-code.d.ts +1 -1
  140. package/dist/prompt/function-defs/get-source-code.js +2 -1
  141. package/dist/prompt/function-defs/get-source-code.js.map +1 -1
  142. package/dist/prompt/function-defs/move-file.d.ts +4 -4
  143. package/dist/prompt/function-defs/move-file.js +4 -4
  144. package/dist/prompt/function-defs/move-file.js.map +1 -1
  145. package/dist/prompt/function-defs/optimize-context.d.ts +46 -0
  146. package/dist/prompt/function-defs/optimize-context.js +47 -0
  147. package/dist/prompt/function-defs/optimize-context.js.map +1 -0
  148. package/dist/prompt/function-defs/patch-file.d.ts +4 -4
  149. package/dist/prompt/function-defs/patch-file.js +4 -4
  150. package/dist/prompt/function-defs/patch-file.js.map +1 -1
  151. package/dist/prompt/function-defs/read-history.d.ts +13 -0
  152. package/dist/prompt/function-defs/read-history.js +14 -0
  153. package/dist/prompt/function-defs/read-history.js.map +1 -0
  154. package/dist/prompt/function-defs/set-summaries.d.ts +31 -0
  155. package/dist/prompt/function-defs/set-summaries.js +32 -0
  156. package/dist/prompt/function-defs/set-summaries.js.map +1 -0
  157. package/dist/prompt/function-defs/update-file.d.ts +4 -4
  158. package/dist/prompt/function-defs/update-file.js +4 -4
  159. package/dist/prompt/function-defs/update-file.js.map +1 -1
  160. package/dist/prompt/function-defs/update-history.d.ts +21 -0
  161. package/dist/prompt/function-defs/update-history.js +22 -0
  162. package/dist/prompt/function-defs/update-history.js.map +1 -0
  163. package/dist/prompt/limits.d.ts +3 -3
  164. package/dist/prompt/limits.js +10 -8
  165. package/dist/prompt/limits.js.map +1 -1
  166. package/dist/prompt/limits.test.js +6 -6
  167. package/dist/prompt/limits.test.js.map +1 -1
  168. package/dist/prompt/prompt-codegen.js +52 -25
  169. package/dist/prompt/prompt-codegen.js.map +1 -1
  170. package/dist/prompt/prompt-codegen.test.js +2 -2
  171. package/dist/prompt/prompt-codegen.test.js.map +1 -1
  172. package/dist/prompt/prompt-service-ask-question.test.d.ts +1 -0
  173. package/dist/prompt/prompt-service-ask-question.test.js +86 -13
  174. package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
  175. package/dist/prompt/prompt-service.d.ts +3 -10
  176. package/dist/prompt/prompt-service.js +66 -23
  177. package/dist/prompt/prompt-service.js.map +1 -1
  178. package/dist/prompt/prompt-service.test.d.ts +1 -0
  179. package/dist/prompt/prompt-service.test.js +73 -48
  180. package/dist/prompt/prompt-service.test.js.map +1 -1
  181. package/dist/prompt/steps/step-ask-question-handlers.d.ts +10 -0
  182. package/dist/prompt/steps/step-ask-question-handlers.js +265 -0
  183. package/dist/prompt/steps/step-ask-question-handlers.js.map +1 -0
  184. package/dist/prompt/steps/step-ask-question-reflect.d.ts +4 -0
  185. package/dist/prompt/steps/step-ask-question-reflect.js +40 -0
  186. package/dist/prompt/steps/step-ask-question-reflect.js.map +1 -0
  187. package/dist/prompt/steps/step-ask-question-types.d.ts +60 -0
  188. package/dist/prompt/steps/step-ask-question-types.js +2 -0
  189. package/dist/prompt/steps/step-ask-question-types.js.map +1 -0
  190. package/dist/prompt/steps/step-ask-question.d.ts +3 -3
  191. package/dist/prompt/steps/step-ask-question.js +69 -69
  192. package/dist/prompt/steps/step-ask-question.js.map +1 -1
  193. package/dist/prompt/steps/step-context-optimization.d.ts +4 -0
  194. package/dist/prompt/steps/step-context-optimization.js +193 -0
  195. package/dist/prompt/steps/step-context-optimization.js.map +1 -0
  196. package/dist/prompt/steps/step-history-update.d.ts +5 -0
  197. package/dist/prompt/steps/step-history-update.js +54 -0
  198. package/dist/prompt/steps/step-history-update.js.map +1 -0
  199. package/dist/prompt/steps/step-summarization.d.ts +8 -0
  200. package/dist/prompt/steps/step-summarization.js +75 -0
  201. package/dist/prompt/steps/step-summarization.js.map +1 -0
  202. package/dist/prompt/steps/step-validate-recover.d.ts +2 -13
  203. package/dist/prompt/steps/step-validate-recover.js +3 -3
  204. package/dist/prompt/steps/step-validate-recover.js.map +1 -1
  205. package/dist/prompt/steps/step-verify-patch.d.ts +1 -2
  206. package/dist/prompt/steps/step-verify-patch.js +3 -10
  207. package/dist/prompt/steps/step-verify-patch.js.map +1 -1
  208. package/dist/prompt/steps/steps-types.d.ts +16 -0
  209. package/dist/prompt/steps/steps-utils.d.ts +7 -0
  210. package/dist/prompt/steps/steps-utils.js +11 -0
  211. package/dist/prompt/steps/steps-utils.js.map +1 -0
  212. package/dist/prompt/systemprompt.d.ts +1 -1
  213. package/dist/prompt/systemprompt.js +194 -32
  214. package/dist/prompt/systemprompt.js.map +1 -1
  215. package/dist/prompt/systemprompt.test.js +5 -8
  216. package/dist/prompt/systemprompt.test.js.map +1 -1
  217. package/dist/prompt/token-estimator.d.ts +8 -0
  218. package/dist/prompt/token-estimator.js +31 -0
  219. package/dist/prompt/token-estimator.js.map +1 -0
  220. package/package.json +28 -4
  221. package/dist/main/codegen-interactive-utils.d.ts +0 -8
  222. package/dist/main/codegen-interactive-utils.js +0 -148
  223. package/dist/main/codegen-interactive-utils.js.map +0 -1
  224. package/dist/main/codegen-interactive.d.ts +0 -2
  225. package/dist/main/codegen-interactive.js +0 -68
  226. package/dist/main/codegen-interactive.js.map +0 -1
  227. package/dist/main/interactive/worker-script.js +0 -24
  228. package/dist/main/interactive/worker-script.js.map +0 -1
  229. package/dist/main/interactive/worker.d.ts +0 -2
  230. package/dist/main/interactive/worker.js +0 -55
  231. package/dist/main/interactive/worker.js.map +0 -1
  232. /package/dist/{main/interactive/worker-script.d.ts → ai-service/unescape-function-call.test.d.ts} +0 -0
@@ -4,9 +4,11 @@ import * as vertexAi from '../ai-service/vertex-ai.js';
4
4
  import * as prompts from '@inquirer/prompts';
5
5
  import { CancelablePromise } from '@inquirer/type';
6
6
  import '../cli/cli-params.js';
7
+ import '../files/cache-file.js';
7
8
  import '../files/read-files.js';
8
9
  import '../files/find-files.js';
9
10
  import { getCodeGenPrompt } from './prompt-codegen.js';
11
+ import { registerUserActionHandlers } from '../main/interactive/user-action-handlers.js';
10
12
  vi.mock('../ai-service/vertex-ai.js', () => ({ generateContent: vi.fn() }));
11
13
  vi.mock('@inquirer/prompts', () => ({
12
14
  input: vi.fn(),
@@ -28,6 +30,7 @@ vi.mock('../cli/cli-params.js', () => ({
28
30
  cheap: false,
29
31
  askQuestion: true,
30
32
  }));
33
+ vi.mock('../files/cache-file.js');
31
34
  // Mock find-files module
32
35
  vi.mock('../files/find-files.js', () => ({
33
36
  getSourceFiles: () => [],
@@ -52,6 +55,7 @@ describe('promptService with askQuestion', () => {
52
55
  beforeEach(() => {
53
56
  vi.resetAllMocks();
54
57
  console.log = vi.fn();
58
+ registerUserActionHandlers();
55
59
  });
56
60
  afterEach(() => {
57
61
  vi.clearAllMocks();
@@ -62,9 +66,8 @@ describe('promptService with askQuestion', () => {
62
66
  name: 'askQuestion',
63
67
  args: {
64
68
  content: 'Do you want to proceed with code generation?',
65
- shouldPrompt: true,
69
+ actionType: 'requestAnswer',
66
70
  promptNecessity: 80,
67
- stopCodegen: false,
68
71
  },
69
72
  },
70
73
  ];
@@ -73,9 +76,8 @@ describe('promptService with askQuestion', () => {
73
76
  name: 'askQuestion',
74
77
  args: {
75
78
  content: 'Ok lets go',
76
- shouldPrompt: false,
79
+ actionType: 'startCodeGeneration',
77
80
  promptNecessity: 80,
78
- stopCodegen: false,
79
81
  },
80
82
  },
81
83
  ];
@@ -94,11 +96,16 @@ describe('promptService with askQuestion', () => {
94
96
  .mockResolvedValueOnce(mockAskQuestionCall2)
95
97
  .mockResolvedValueOnce(mockCodegenSummary);
96
98
  vi.mocked(prompts.input).mockImplementationOnce(() => CancelablePromise.resolve('Yes'));
97
- await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({ aiService: 'vertex-ai', interactive: true, askQuestion: true }));
99
+ await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({
100
+ aiService: 'vertex-ai',
101
+ disableContextOptimization: true,
102
+ interactive: true,
103
+ askQuestion: true,
104
+ }));
98
105
  expect(vertexAi.generateContent).toHaveBeenCalledTimes(3);
99
106
  expect(prompts.input).toHaveBeenCalledWith({ message: 'Your answer' });
100
107
  expect(console.log).toHaveBeenCalledWith('Assistant asks:', expect.any(Object));
101
- expect(console.log).toHaveBeenCalledWith('The question was answered');
108
+ expect(console.log).toHaveBeenCalledWith('Proceeding with code generation.', undefined);
102
109
  });
103
110
  it('should stop code generation when askQuestion returns stopCodegen: true', async () => {
104
111
  const mockAskQuestionCall = [
@@ -106,19 +113,18 @@ describe('promptService with askQuestion', () => {
106
113
  name: 'askQuestion',
107
114
  args: {
108
115
  content: 'Stopping code generation as requested.',
109
- shouldPrompt: false,
110
116
  promptNecessity: 100,
111
- stopCodegen: true,
117
+ actionType: 'cancelCodeGeneration',
112
118
  },
113
119
  },
114
120
  ];
115
121
  vi.mocked(vertexAi.generateContent).mockResolvedValueOnce(mockAskQuestionCall);
116
- const result = await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({ aiService: 'vertex-ai', interactive: true }));
122
+ const result = await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({ aiService: 'vertex-ai', disableContextOptimization: true, interactive: true }));
117
123
  expect(vertexAi.generateContent).toHaveBeenCalledTimes(1);
118
124
  expect(result).toEqual([]);
119
- expect(console.log).toHaveBeenCalledWith('Assistant requested to stop code generation. Exiting...');
125
+ expect(console.log).toHaveBeenCalledWith('Assistant requested to stop code generation. Exiting...', undefined);
120
126
  });
121
- it('should proceed with code generation when askQuestion returns shouldPrompt: false', async () => {
127
+ it('should not proceed with code generation when no askQuestion requests', async () => {
122
128
  const mockAskQuestionCall = [];
123
129
  const mockCodegenSummary = [
124
130
  {
@@ -131,12 +137,79 @@ describe('promptService with askQuestion', () => {
131
137
  },
132
138
  ];
133
139
  vi.mocked(vertexAi.generateContent)
140
+ .mockResolvedValueOnce(mockAskQuestionCall)
134
141
  .mockResolvedValueOnce(mockAskQuestionCall)
135
142
  .mockResolvedValueOnce(mockCodegenSummary);
136
- await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({ aiService: 'vertex-ai', interactive: true }));
143
+ await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({ aiService: 'vertex-ai', disableContextOptimization: true, interactive: true }));
137
144
  expect(vertexAi.generateContent).toHaveBeenCalledTimes(2);
138
145
  expect(prompts.input).not.toHaveBeenCalled();
139
- expect(console.log).toHaveBeenCalledWith('Assistant did not ask a question. Proceeding with code generation.');
146
+ });
147
+ it('should handle self-reflection mechanism', async () => {
148
+ const mockAskQuestionCall = [
149
+ {
150
+ name: 'askQuestion',
151
+ args: {
152
+ content: 'Do you want to proceed with code generation?',
153
+ actionType: 'requestAnswer',
154
+ promptNecessity: 80,
155
+ },
156
+ },
157
+ ];
158
+ const mockAskQuestionReflectCall = [
159
+ {
160
+ name: 'askQuestionReflect',
161
+ args: {
162
+ shouldEscalate: 70,
163
+ reason: 'The response requires more advanced processing.',
164
+ },
165
+ },
166
+ ];
167
+ const mockAskQuestionReflectCall2 = [
168
+ {
169
+ name: 'askQuestionReflect',
170
+ args: {
171
+ shouldEscalate: 30,
172
+ reason: 'The response is ok.',
173
+ },
174
+ },
175
+ ];
176
+ const mockAskQuestionCall2 = [
177
+ {
178
+ name: 'askQuestion',
179
+ args: {
180
+ content: 'Startin code generation',
181
+ actionType: 'startCodeGeneration',
182
+ promptNecessity: 80,
183
+ },
184
+ },
185
+ ];
186
+ const mockCodegenSummary = [
187
+ {
188
+ name: 'codegenSummary',
189
+ args: {
190
+ fileUpdates: [],
191
+ contextPaths: [],
192
+ explanation: 'No updates needed',
193
+ },
194
+ },
195
+ ];
196
+ vi.mocked(vertexAi.generateContent)
197
+ .mockResolvedValueOnce(mockAskQuestionCall)
198
+ .mockResolvedValueOnce(mockAskQuestionReflectCall)
199
+ .mockResolvedValueOnce(mockAskQuestionCall)
200
+ .mockResolvedValueOnce(mockAskQuestionCall2)
201
+ .mockResolvedValueOnce(mockAskQuestionReflectCall2)
202
+ .mockResolvedValueOnce(mockCodegenSummary);
203
+ vi.mocked(prompts.input).mockImplementationOnce(() => CancelablePromise.resolve('Yes'));
204
+ await promptService(GENERATE_CONTENT_FNS, GENERATE_IMAGE_FNS, getCodeGenPrompt({
205
+ aiService: 'vertex-ai',
206
+ disableContextOptimization: true,
207
+ interactive: true,
208
+ askQuestion: true,
209
+ selfReflectionEnabled: true,
210
+ }));
211
+ expect(vertexAi.generateContent).toHaveBeenCalledTimes(6);
212
+ expect(console.log).toHaveBeenCalledWith('Received codegen summary, will collect partial updates', expect.any(Object));
140
213
  });
141
214
  });
142
215
  //# sourceMappingURL=prompt-service-ask-question.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service-ask-question.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-service-ask-question.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service-ask-question.test.js","sourceRoot":"","sources":["../../src/prompt/prompt-service-ask-question.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,8 @@
1
- import { FunctionCall, GenerateContentFunction } from '../ai-service/common.js';
1
+ import { FunctionCall, GenerateContentFunction, GenerateImageFunction } from '../ai-service/common.js';
2
2
  import { AiServiceType, ImagenType } from '../main/codegen-types.js';
3
- interface GenerateImageFunction {
4
- (prompt: string, contextImagePath: string | undefined, size: {
5
- width: number;
6
- height: number;
7
- }, cheap: boolean): Promise<string>;
8
- }
9
3
  import { CodegenPrompt } from './prompt-codegen.js';
10
4
  /** A function that communicates with model using */
11
- export declare function promptService(generateContentFns: Record<AiServiceType, GenerateContentFunction>, generateImageFns: Record<ImagenType, GenerateImageFunction>, codegenPrompt: CodegenPrompt): Promise<FunctionCall[]>;
5
+ export declare function promptService(generateContentFns: Record<AiServiceType, GenerateContentFunction>, generateImageFns: Record<ImagenType, GenerateImageFunction>, codegenPrompt: CodegenPrompt, waitIfPaused?: () => Promise<void>): Promise<FunctionCall[]>;
12
6
  export type PromptMessages = ReturnType<typeof prepareMessages>;
13
7
  /**
14
8
  * Function to prepare messages for AI services
@@ -20,9 +14,8 @@ declare function prepareMessages(codegen: CodegenPrompt): {
20
14
  requestImageAssets: string;
21
15
  prompt: string;
22
16
  sourceCode: string;
23
- contextSourceCode: (paths: string[]) => string;
17
+ contextSourceCode: (paths: string[], pathsOnly?: boolean) => string;
24
18
  imageAssets: string;
25
19
  partialPromptTemplate(path: string): string;
26
- invalidFunctionCall: string;
27
20
  };
28
21
  export {};
@@ -9,25 +9,50 @@ import { executeStepAskQuestion } from './steps/step-ask-question.js';
9
9
  import { validateAndRecoverSingleResult } from './steps/step-validate-recover.js';
10
10
  import { executeStepVerifyPatch } from './steps/step-verify-patch.js';
11
11
  import { executeStepGenerateImage } from './steps/step-generate-image.js';
12
+ import { executeStepContextOptimization } from './steps/step-context-optimization.js';
12
13
  import { StepResult } from './steps/steps-types.js';
14
+ import { putSystemMessage } from '../main/common/content-bus.js';
15
+ import { handleAiServiceFallback } from './ai-service-fallback.js';
16
+ import { summarizeSourceCode } from './steps/step-summarization.js';
17
+ import { executeStepHistoryUpdate, getCurrentHistory } from './steps/step-history-update.js';
13
18
  /** A function that communicates with model using */
14
- export async function promptService(generateContentFns, generateImageFns, codegenPrompt) {
15
- const messages = prepareMessages(codegenPrompt);
16
- const generateContentFn = (...args) => generateContentFns[codegenPrompt.options.aiService](...args);
19
+ export async function promptService(generateContentFns, generateImageFns, codegenPrompt, waitIfPaused = () => Promise.resolve()) {
20
+ const generateContentFn = async (...args) => {
21
+ return await handleAiServiceFallback(generateContentFns, codegenPrompt.options.aiService, codegenPrompt.options, ...args);
22
+ };
17
23
  const generateImageFn = (...args) => {
18
24
  assert(codegenPrompt.options.imagen, 'imagen value must be provided');
19
25
  return generateImageFns[codegenPrompt.options.imagen](...args);
20
26
  };
21
- // First stage: generate code generation summary, which should not take a lot of output tokens
27
+ const { result, prompt } = await executePromptService(generateContentFn, generateImageFn, codegenPrompt, waitIfPaused);
28
+ if (codegenPrompt.options.historyEnabled) {
29
+ await executeStepHistoryUpdate(generateContentFn, prompt, codegenPrompt.options);
30
+ }
31
+ return result;
32
+ }
33
+ async function executePromptService(generateContentFn, generateImageFn, codegenPrompt, waitIfPaused = () => Promise.resolve()) {
34
+ const messages = prepareMessages(codegenPrompt);
35
+ // First stage: summarize the source code
36
+ if (!codegenPrompt.options.disableContextOptimization) {
37
+ await summarizeSourceCode(generateContentFn, getSourceCode({ forceAll: true }, codegenPrompt.options), codegenPrompt.options);
38
+ }
39
+ // Second stage: generate code generation summary, which should not take a lot of output tokens
22
40
  const getSourceCodeRequest = { name: 'getSourceCode' };
23
41
  const prompt = [
24
42
  { type: 'systemPrompt', systemPrompt: getSystemPrompt(codegenPrompt.options) },
25
43
  { type: 'user', text: messages.suggestSourceCode },
26
- { type: 'assistant', text: messages.requestSourceCode, functionCalls: [getSourceCodeRequest] },
44
+ {
45
+ type: 'assistant',
46
+ text: messages.requestSourceCode,
47
+ functionCalls: [getSourceCodeRequest, ...(codegenPrompt.options.historyEnabled ? [{ name: 'readHistory' }] : [])],
48
+ },
27
49
  ];
28
50
  const getSourceCodeResponse = {
29
51
  type: 'user',
30
- functionResponses: [{ name: 'getSourceCode', content: messages.sourceCode }],
52
+ functionResponses: [
53
+ { name: 'getSourceCode', content: messages.sourceCode },
54
+ ...(codegenPrompt.options.historyEnabled ? [{ name: 'readHistory', content: getCurrentHistory() }] : []),
55
+ ],
31
56
  cache: true,
32
57
  };
33
58
  prompt.push(getSourceCodeResponse);
@@ -36,11 +61,26 @@ export async function promptService(generateContentFns, generateImageFns, codege
36
61
  prompt.push({ type: 'assistant', text: messages.requestImageAssets, functionCalls: [{ name: 'getImageAssets' }] }, { type: 'user', functionResponses: [{ name: 'getImageAssets', content: messages.imageAssets }] });
37
62
  }
38
63
  prompt.slice(-1)[0].text = messages.prompt;
64
+ // Add uploaded images to the prompt if available
65
+ if (codegenPrompt.options.images && codegenPrompt.options.images.length > 0 && codegenPrompt.options.vision) {
66
+ prompt.slice(-1)[0].images = codegenPrompt.options.images.map((img) => ({
67
+ base64url: img.base64url,
68
+ mediaType: img.mediaType,
69
+ }));
70
+ }
71
+ // Execute the context optimization step
72
+ if (!codegenPrompt.options.disableContextOptimization) {
73
+ const optimizationResult = await executeStepContextOptimization(generateContentFn, prompt, codegenPrompt.options);
74
+ if (optimizationResult === StepResult.BREAK) {
75
+ return { result: [], prompt };
76
+ }
77
+ }
39
78
  // Execute the ask question step
40
- if (codegenPrompt.options.askQuestion !== false &&
41
- codegenPrompt.options.interactive &&
42
- (await executeStepAskQuestion(generateContentFn, prompt, functionDefs, codegenPrompt.options.temperature ?? 0.7, codegenPrompt.options.cheap ?? false, messages, codegenPrompt.options)) === StepResult.BREAK) {
43
- return [];
79
+ if (codegenPrompt.options.askQuestion !== false && (codegenPrompt.options.interactive || codegenPrompt.options.ui)) {
80
+ const askQuestionResult = await executeStepAskQuestion(generateContentFn, prompt, functionDefs, codegenPrompt.options.temperature ?? 0.7, messages, codegenPrompt.options);
81
+ if (askQuestionResult === StepResult.BREAK) {
82
+ return { result: [], prompt };
83
+ }
44
84
  }
45
85
  else if (codegenPrompt.options.askQuestion === false) {
46
86
  console.log('Ask question is not enabled.');
@@ -57,8 +97,8 @@ export async function promptService(generateContentFns, generateImageFns, codege
57
97
  let codegenSummaryRequest = baseResult.find((call) => call.name === 'codegenSummary');
58
98
  if (codegenSummaryRequest) {
59
99
  // Second stage: for each file request the actual code updates
60
- console.log('Received codegen summary, will collect partial updates', codegenSummaryRequest.args);
61
- baseResult = await validateAndRecoverSingleResult(baseRequest, baseResult, messages, generateContentFn);
100
+ putSystemMessage('Received codegen summary, will collect partial updates', codegenSummaryRequest.args);
101
+ baseResult = await validateAndRecoverSingleResult(baseRequest, baseResult, generateContentFn);
62
102
  codegenSummaryRequest = baseResult.find((call) => call.name === 'codegenSummary');
63
103
  // Sometimes the result happens to be a string
64
104
  assert(Array.isArray(codegenSummaryRequest?.args?.fileUpdates), 'fileUpdates is not an array');
@@ -68,7 +108,7 @@ export async function promptService(generateContentFns, generateImageFns, codege
68
108
  // Monkey patch the initial getSourceCode, do not send parts of source code that are consider irrelevant
69
109
  getSourceCodeRequest.args = {
70
110
  filePaths: [
71
- ...codegenSummaryRequest.args.fileUpdates.map((file) => file.path),
111
+ ...codegenSummaryRequest.args.fileUpdates.map((file) => file.filePath),
72
112
  ...codegenSummaryRequest.args.contextPaths,
73
113
  ...(importantContext.files ?? []),
74
114
  ],
@@ -85,19 +125,21 @@ export async function promptService(generateContentFns, generateImageFns, codege
85
125
  });
86
126
  const result = [];
87
127
  for (const file of codegenSummaryRequest.args.fileUpdates) {
88
- console.log('Collecting partial update for: ' + file.path + ' using tool: ' + file.updateToolName);
128
+ putSystemMessage('Collecting partial update for: ' + file.filePath + ' using tool: ' + file.updateToolName, file);
89
129
  console.log('- Prompt:', file.prompt);
90
130
  console.log('- Temperature', file.temperature);
91
131
  console.log('- Cheap', file.cheap);
92
132
  if (codegenPrompt.options.vision) {
93
133
  console.log('- Context image assets', file.contextImageAssets);
94
134
  }
135
+ // Check if execution is paused before proceeding
136
+ await waitIfPaused();
95
137
  // this is needed, otherwise we will get an error
96
138
  if (prompt.slice(-1)[0].type === 'user') {
97
- prompt.slice(-1)[0].text = file.prompt ?? messages.partialPromptTemplate(file.path);
139
+ prompt.slice(-1)[0].text = file.prompt ?? messages.partialPromptTemplate(file.filePath);
98
140
  }
99
141
  else {
100
- prompt.push({ type: 'user', text: file.prompt ?? messages.partialPromptTemplate(file.path) });
142
+ prompt.push({ type: 'user', text: file.prompt ?? messages.partialPromptTemplate(file.filePath) });
101
143
  }
102
144
  if (codegenPrompt.options.vision && file.contextImageAssets) {
103
145
  prompt.slice(-1)[0].images = file.contextImageAssets.map((path) => ({
@@ -115,8 +157,9 @@ export async function promptService(generateContentFns, generateImageFns, codege
115
157
  codegenPrompt.options,
116
158
  ];
117
159
  let partialResult = await generateContentFn(...partialRequest);
160
+ putSystemMessage('Received partial update', partialResult);
118
161
  // Validate if function call is compliant with the schema
119
- partialResult = await validateAndRecoverSingleResult(partialRequest, partialResult, messages, generateContentFn);
162
+ partialResult = await validateAndRecoverSingleResult(partialRequest, partialResult, generateContentFn);
120
163
  // Handle image generation requests
121
164
  const generateImageCall = partialResult.find((call) => call.name === 'generateImage');
122
165
  if (generateImageCall) {
@@ -125,21 +168,22 @@ export async function promptService(generateContentFns, generateImageFns, codege
125
168
  // Verify if patchFile is one of the functions called, and test if patch is valid and can be applied successfully
126
169
  const patchFileCall = partialResult.find((call) => call.name === 'patchFile');
127
170
  if (patchFileCall) {
128
- partialResult = await executeStepVerifyPatch(patchFileCall.args, generateContentFn, prompt, functionDefs, file.temperature ?? codegenPrompt.options.temperature, file.cheap === true, messages, codegenPrompt.options);
171
+ partialResult = await executeStepVerifyPatch(patchFileCall.args, generateContentFn, prompt, functionDefs, file.temperature ?? codegenPrompt.options.temperature, file.cheap === true, codegenPrompt.options);
129
172
  }
130
173
  // add the code gen result to the context, as the subsequent code gen may depend on the result
131
174
  prompt.push({ type: 'assistant', functionCalls: partialResult }, {
132
175
  type: 'user',
176
+ text: 'Update applied.',
133
177
  functionResponses: partialResult.map((call) => ({ name: call.name, call_id: call.id })),
134
178
  });
135
179
  result.push(...partialResult);
136
180
  }
137
- return result;
181
+ return { result, prompt };
138
182
  }
139
183
  else {
140
184
  // This is unexpected, if happens probably means no code updates.
141
- console.log('Did not receive codegen summary, returning result.');
142
- return baseResult;
185
+ putSystemMessage('Did not receive codegen summary, returning result.');
186
+ return { result: baseResult, prompt };
143
187
  }
144
188
  }
145
189
  /**
@@ -154,12 +198,11 @@ function prepareMessages(codegen) {
154
198
  prompt: codegen.prompt +
155
199
  '\n Start from generating codegen summary, this summary will be used as a context to generate updates, so make sure that it contains useful information.',
156
200
  sourceCode: JSON.stringify(getSourceCode({ taskFile: codegen.options.taskFile }, codegen.options)),
157
- contextSourceCode: (paths) => JSON.stringify(getSourceCode({ filterPaths: paths, taskFile: codegen.options.taskFile, forceAll: true }, codegen.options)),
201
+ contextSourceCode: (paths, pathsOnly = false) => JSON.stringify(Object.fromEntries(Object.entries(getSourceCode({ filterPaths: paths, taskFile: codegen.options.taskFile, forceAll: true }, codegen.options)).filter(([path]) => !pathsOnly || paths.includes(path)))),
158
202
  imageAssets: JSON.stringify(getImageAssets()),
159
203
  partialPromptTemplate(path) {
160
204
  return `Thank you for providing the summary, now suggest changes for the \`${path}\` file using appropriate tools.`;
161
205
  },
162
- invalidFunctionCall: 'Function call was invalid, please analyze the error and respond with corrected function call.',
163
206
  };
164
207
  }
165
208
  //# sourceMappingURL=prompt-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-service.js","sourceRoot":"","sources":["../../src/prompt/prompt-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ import '../files/cache-file.js';
1
2
  import '../files/find-files.js';