genaicode 0.1.1 → 0.2.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 (146) hide show
  1. package/README.md +3 -1
  2. package/bin/genaicode.cjs +7 -0
  3. package/dist/ai-service/ai-studio.d.ts +2 -1
  4. package/dist/ai-service/ai-studio.js +5 -5
  5. package/dist/ai-service/ai-studio.js.map +1 -1
  6. package/dist/ai-service/anthropic.d.ts +2 -1
  7. package/dist/ai-service/anthropic.js +6 -4
  8. package/dist/ai-service/anthropic.js.map +1 -1
  9. package/dist/ai-service/chat-gpt.js +2 -1
  10. package/dist/ai-service/chat-gpt.js.map +1 -1
  11. package/dist/ai-service/common.d.ts +4 -3
  12. package/dist/ai-service/common.js.map +1 -1
  13. package/dist/ai-service/dall-e.js +3 -2
  14. package/dist/ai-service/dall-e.js.map +1 -1
  15. package/dist/ai-service/vertex-ai-claude.js +2 -1
  16. package/dist/ai-service/vertex-ai-claude.js.map +1 -1
  17. package/dist/ai-service/vertex-ai-imagen.js +3 -0
  18. package/dist/ai-service/vertex-ai-imagen.js.map +1 -1
  19. package/dist/ai-service/vertex-ai.d.ts +3 -3
  20. package/dist/ai-service/vertex-ai.js +18 -23
  21. package/dist/ai-service/vertex-ai.js.map +1 -1
  22. package/dist/cli/cli-options.js +2 -2
  23. package/dist/cli/cli-options.js.map +1 -1
  24. package/dist/cli/cli-params.d.ts +4 -3
  25. package/dist/cli/cli-params.js +12 -6
  26. package/dist/cli/cli-params.js.map +1 -1
  27. package/dist/cli/validate-cli-params.js +2 -1
  28. package/dist/cli/validate-cli-params.js.map +1 -1
  29. package/dist/files/read-files.d.ts +6 -1
  30. package/dist/files/read-files.js +13 -8
  31. package/dist/files/read-files.js.map +1 -1
  32. package/dist/files/read-files.test.js +5 -6
  33. package/dist/files/read-files.test.js.map +1 -1
  34. package/dist/files/update-files.d.ts +2 -1
  35. package/dist/files/update-files.js +6 -6
  36. package/dist/files/update-files.js.map +1 -1
  37. package/dist/main/codegen-interactive-utils.d.ts +8 -0
  38. package/dist/main/codegen-interactive-utils.js +148 -0
  39. package/dist/main/codegen-interactive-utils.js.map +1 -0
  40. package/dist/main/codegen-interactive.d.ts +2 -0
  41. package/dist/main/codegen-interactive.js +68 -0
  42. package/dist/main/codegen-interactive.js.map +1 -0
  43. package/dist/main/codegen-types.d.ts +28 -0
  44. package/dist/main/codegen-types.js +2 -0
  45. package/dist/main/codegen-types.js.map +1 -0
  46. package/dist/main/codegen.d.ts +2 -0
  47. package/dist/main/codegen.js +88 -25
  48. package/dist/main/codegen.js.map +1 -1
  49. package/dist/main/codegen.test.js +36 -22
  50. package/dist/main/codegen.test.js.map +1 -1
  51. package/dist/main/config-lib.d.ts +8 -0
  52. package/dist/main/config-lib.js.map +1 -1
  53. package/dist/main/config.d.ts +2 -1
  54. package/dist/main/config.js +12 -0
  55. package/dist/main/config.js.map +1 -1
  56. package/dist/main/interactive/codegen-interactive.d.ts +2 -0
  57. package/dist/main/interactive/codegen-interactive.js +55 -0
  58. package/dist/main/interactive/codegen-interactive.js.map +1 -0
  59. package/dist/main/interactive/codegen-interactive.test.d.ts +4 -0
  60. package/dist/main/interactive/codegen-interactive.test.js +77 -0
  61. package/dist/main/interactive/codegen-interactive.test.js.map +1 -0
  62. package/dist/main/interactive/codegen-worker.d.ts +3 -0
  63. package/dist/main/interactive/codegen-worker.js +47 -0
  64. package/dist/main/interactive/codegen-worker.js.map +1 -0
  65. package/dist/main/interactive/common.d.ts +5 -0
  66. package/dist/main/interactive/common.js +51 -0
  67. package/dist/main/interactive/common.js.map +1 -0
  68. package/dist/main/interactive/configure.d.ts +2 -0
  69. package/dist/main/interactive/configure.js +99 -0
  70. package/dist/main/interactive/configure.js.map +1 -0
  71. package/dist/main/interactive/error-handling.d.ts +4 -0
  72. package/dist/main/interactive/error-handling.js +49 -0
  73. package/dist/main/interactive/error-handling.js.map +1 -0
  74. package/dist/main/interactive/help.d.ts +1 -0
  75. package/dist/main/interactive/help.js +22 -0
  76. package/dist/main/interactive/help.js.map +1 -0
  77. package/dist/main/interactive/process-comments.d.ts +2 -0
  78. package/dist/main/interactive/process-comments.js +39 -0
  79. package/dist/main/interactive/process-comments.js.map +1 -0
  80. package/dist/main/interactive/select-ai-service.d.ts +2 -0
  81. package/dist/main/interactive/select-ai-service.js +27 -0
  82. package/dist/main/interactive/select-ai-service.js.map +1 -0
  83. package/dist/main/interactive/task-file.d.ts +2 -0
  84. package/dist/main/interactive/task-file.js +28 -0
  85. package/dist/main/interactive/task-file.js.map +1 -0
  86. package/dist/main/interactive/text-prompt.d.ts +2 -0
  87. package/dist/main/interactive/text-prompt.js +18 -0
  88. package/dist/main/interactive/text-prompt.js.map +1 -0
  89. package/dist/main/interactive/user-interrupt.d.ts +1 -0
  90. package/dist/main/interactive/user-interrupt.js +36 -0
  91. package/dist/main/interactive/user-interrupt.js.map +1 -0
  92. package/dist/main/interactive/worker-script.d.ts +1 -0
  93. package/dist/main/interactive/worker-script.js +24 -0
  94. package/dist/main/interactive/worker-script.js.map +1 -0
  95. package/dist/main/interactive/worker.d.ts +2 -0
  96. package/dist/main/interactive/worker.js +55 -0
  97. package/dist/main/interactive/worker.js.map +1 -0
  98. package/dist/prompt/function-calling-validate.d.ts +1 -1
  99. package/dist/prompt/function-calling-validate.js +21 -15
  100. package/dist/prompt/function-calling-validate.js.map +1 -1
  101. package/dist/prompt/function-defs/ask-question.d.ts +38 -1
  102. package/dist/prompt/function-defs/ask-question.js +39 -1
  103. package/dist/prompt/function-defs/ask-question.js.map +1 -1
  104. package/dist/prompt/function-defs/codegen-summary.d.ts +5 -5
  105. package/dist/prompt/function-defs/codegen-summary.js +8 -8
  106. package/dist/prompt/function-defs/codegen-summary.js.map +1 -1
  107. package/dist/prompt/function-defs/generate-image.d.ts +8 -15
  108. package/dist/prompt/function-defs/generate-image.js +8 -15
  109. package/dist/prompt/function-defs/generate-image.js.map +1 -1
  110. package/dist/prompt/limits.js +2 -2
  111. package/dist/prompt/limits.test.js +5 -5
  112. package/dist/prompt/prompt-codegen.d.ts +7 -2
  113. package/dist/prompt/prompt-codegen.js +26 -17
  114. package/dist/prompt/prompt-codegen.js.map +1 -1
  115. package/dist/prompt/prompt-codegen.test.js +11 -7
  116. package/dist/prompt/prompt-codegen.test.js.map +1 -1
  117. package/dist/prompt/prompt-service-ask-question.test.js +14 -18
  118. package/dist/prompt/prompt-service-ask-question.test.js.map +1 -1
  119. package/dist/prompt/prompt-service.d.ts +20 -5
  120. package/dist/prompt/prompt-service.js +40 -153
  121. package/dist/prompt/prompt-service.js.map +1 -1
  122. package/dist/prompt/prompt-service.test.js +42 -22
  123. package/dist/prompt/prompt-service.test.js.map +1 -1
  124. package/dist/prompt/steps/step-ask-question.d.ts +6 -0
  125. package/dist/prompt/steps/step-ask-question.js +80 -0
  126. package/dist/prompt/steps/step-ask-question.js.map +1 -0
  127. package/dist/prompt/steps/step-generate-image.d.ts +2 -0
  128. package/dist/prompt/steps/step-generate-image.js +29 -0
  129. package/dist/prompt/steps/step-generate-image.js.map +1 -0
  130. package/dist/prompt/steps/step-validate-recover.d.ts +13 -0
  131. package/dist/prompt/steps/step-validate-recover.js +51 -0
  132. package/dist/prompt/steps/step-validate-recover.js.map +1 -0
  133. package/dist/prompt/steps/step-verify-patch.d.ts +7 -0
  134. package/dist/prompt/steps/step-verify-patch.js +41 -0
  135. package/dist/prompt/steps/step-verify-patch.js.map +1 -0
  136. package/dist/prompt/steps/steps-types.d.ts +4 -0
  137. package/dist/prompt/steps/steps-types.js +6 -0
  138. package/dist/prompt/steps/steps-types.js.map +1 -0
  139. package/dist/prompt/systemprompt.d.ts +2 -1
  140. package/dist/prompt/systemprompt.js +11 -7
  141. package/dist/prompt/systemprompt.js.map +1 -1
  142. package/dist/prompt/systemprompt.test.d.ts +1 -0
  143. package/dist/prompt/systemprompt.test.js +4 -5
  144. package/dist/prompt/systemprompt.test.js.map +1 -1
  145. package/package.json +4 -3
  146. package/bin/vertex-monkey-patch.cjs +0 -33
@@ -1,9 +1,8 @@
1
1
  import { CODEGEN_TRIGGER } from './prompt-consts.js';
2
- import { verbosePrompt, askQuestion } from '../cli/cli-params.js';
3
2
  import { verifySystemPromptLimit } from './limits.js';
4
3
  import { rcConfig } from '../main/config.js';
5
4
  /** Generates a system prompt */
6
- export function getSystemPrompt() {
5
+ export function getSystemPrompt({ verbose, askQuestion, interactive }) {
7
6
  console.log('Generate system prompt');
8
7
  let systemPrompt = `
9
8
  You are a code generation assistant. I want you to help me generate code for my ideas in my application source code.
@@ -17,7 +16,7 @@ export function getSystemPrompt() {
17
16
  The root directory of my application is \`${rcConfig.rootDir}\` and you should limit the changes only to this path.
18
17
 
19
18
  Additional suggestions, or corners cases to think about:
20
- - When suggesting changes always use absolute file paths.
19
+ - When suggesting changes always use absolute file paths, exactly as you have been provided. Modified paths will cause errors and we want to avoid that.
21
20
  - Always aim to return working code
22
21
  - Do not leave out commented out fragments like "// ... (keep other existing functions)"
23
22
  - For large files prefer to use \`patchFile\` function
@@ -25,15 +24,20 @@ export function getSystemPrompt() {
25
24
  - At the start of conversation the user will express what you are allowed to do (for example: create files, move files, generate images etc.). At the start of conversation you should ensure you have necessary allowances for the current task.
26
25
  - Consider failing the task with explanation if instructions are not clear enough, or something feels completely wrong.
27
26
  - Do not produce unnecessary code, ensure the code you generate will be used once all changes are done.
27
+ - Always ask for sufficient context paths in codegen summary, ask for files in context that is needed to completed the task
28
28
 
29
29
  `;
30
- if (askQuestion) {
30
+ if (askQuestion && interactive) {
31
31
  systemPrompt +=
32
32
  '\nYou have the ability to ask the user a question at the beginning of the conversation if you need more information or clarification. ' +
33
- 'Use this feature wisely to gather any crucial information that would help you better understand the task or provide more accurate code generation. ' +
34
- "To ask a question, use the 'askQuestion' function.";
33
+ 'Use this feature wisely to gather any crucial information that would help you better understand the task or provide more accurate code generation.\n' +
34
+ "To ask a question, use the 'askQuestion' function. This function allows you to:" +
35
+ `- inform the user about your thoughts regarding the task
36
+ - ask questions, and give suggestions to the user regarding the task
37
+ - request access to content of files if they are not provided in the conversation so far, but are important for the task
38
+ - request enablement of permissions for operations that were restricted on the start of conversation, but are important for completion of the task`;
35
39
  }
36
- if (verbosePrompt) {
40
+ if (verbose) {
37
41
  console.log('System prompt:');
38
42
  console.log(systemPrompt);
39
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"systemprompt.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,gCAAgC;AAChC,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,YAAY,GAAG;;;;;8FAKyE,eAAe;;;;8CAI/D,QAAQ,CAAC,OAAO;;;;;;;;;;;;GAY3D,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,YAAY;YACV,wIAAwI;gBACxI,qJAAqJ;gBACrJ,oDAAoD,CAAC;IACzD,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEtC,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"systemprompt.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,gCAAgC;AAChC,MAAM,UAAU,eAAe,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAkB;IACnF,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,YAAY,GAAG;;;;;8FAKyE,eAAe;;;;8CAI/D,QAAQ,CAAC,OAAO;;;;;;;;;;;;;GAa3D,CAAC;IAEF,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,YAAY;YACV,wIAAwI;gBACxI,sJAAsJ;gBACtJ,iFAAiF;gBACjF;;;yJAGmJ,CAAC;IACxJ,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAC5B,CAAC;IAED,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEtC,OAAO,YAAY,CAAC;AACtB,CAAC"}
@@ -1,2 +1,3 @@
1
+ import '../cli/cli-params.js';
1
2
  import '../files/find-files.js';
2
3
  import '../main/config.js';
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi } from 'vitest';
2
2
  import { getSystemPrompt } from './systemprompt.js';
3
- import * as cliParams from '../cli/cli-params.js';
3
+ import '../cli/cli-params.js';
4
4
  import '../files/find-files.js';
5
5
  import '../main/config.js';
6
6
  vi.mock('../cli/cli-params.js', () => ({
@@ -26,19 +26,18 @@ describe('getSystemPrompt', () => {
26
26
  vi.clearAllMocks();
27
27
  });
28
28
  it('generates correct system prompt', () => {
29
- const systemPrompt = getSystemPrompt();
29
+ const systemPrompt = getSystemPrompt({ aiService: 'vertex-ai' });
30
30
  expect(systemPrompt).toContain('You are a code generation assistant. I want you to help me generate code for my ideas in my application source code.');
31
31
  expect(systemPrompt).toContain('You can generate new code, or modify the existing one.');
32
32
  expect(systemPrompt).toContain('Instructions will be passed to you either directly via message, with a file, or using the ' +
33
33
  '@' +
34
34
  'CODEGEN comment in the code.');
35
35
  expect(systemPrompt).toContain('The root directory of my application is `/mocked/root/dir` and you should limit the changes only to this path.');
36
- expect(systemPrompt).toContain('When suggesting changes always use absolute file paths.');
36
+ expect(systemPrompt).toContain('When suggesting changes always use absolute file paths');
37
37
  });
38
38
  it('verifies system prompt limit', () => {
39
- vi.spyOn(cliParams, 'verbosePrompt', 'get').mockReturnValue(true);
40
39
  const consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
41
- getSystemPrompt();
40
+ getSystemPrompt({ aiService: 'vertex-ai', verbose: true });
42
41
  expect(consoleSpy).toHaveBeenCalledWith('System prompt:');
43
42
  expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('You are a code generation assistant. I want you to help me generate code for my ideas'));
44
43
  consoleSpy.mockRestore();
@@ -1 +1 @@
1
- {"version":3,"file":"systemprompt.test.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,wBAAwB,CAAC;AAChC,OAAO,mBAAmB,CAAC;AAE3B,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,KAAK;IAC3B,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;CAC1C,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QAEvC,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,sHAAsH,CACvH,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;QACzF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,4FAA4F;YAC1F,GAAG;YACH,8BAA8B,CACjC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,gHAAgH,CACjH,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,yDAAyD,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAClE,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzE,eAAe,EAAE,CAAC;QAElB,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,MAAM,CAAC,gBAAgB,CAAC,uFAAuF,CAAC,CACjH,CAAC;QAEF,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"systemprompt.test.js","sourceRoot":"","sources":["../../src/prompt/systemprompt.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,sBAAsB,CAAC;AAC9B,OAAO,wBAAwB,CAAC;AAChC,OAAO,mBAAmB,CAAC;AAE3B,EAAE,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,CAAC;IACrC,mBAAmB,EAAE,KAAK;IAC1B,gBAAgB,EAAE,KAAK;IACvB,cAAc,EAAE,KAAK;IACrB,cAAc,EAAE,KAAK;IACrB,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,KAAK;IACtB,oBAAoB,EAAE,KAAK;IAC3B,aAAa,EAAE,KAAK;IACpB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,CAAC;IACvC,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;CACxB,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,CAAC;IAClC,QAAQ,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE;CAC1C,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,YAAY,GAAG,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAEjE,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,sHAAsH,CACvH,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;QACzF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,4FAA4F;YAC1F,GAAG;YACH,8BAA8B,CACjC,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAC5B,gHAAgH,CACjH,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,wDAAwD,CAAC,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAEzE,eAAe,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CACrC,MAAM,CAAC,gBAAgB,CAAC,uFAAuF,CAAC,CACjH,CAAC;QAEF,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genaicode",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "author": "Grzegorz Tańczyk",
5
5
  "repository": {
6
6
  "type": "git",
@@ -29,7 +29,6 @@
29
29
  "test": "vitest",
30
30
  "coverage": "vitest run --coverage",
31
31
  "prepare": "husky install",
32
- "postinstall": "node ./bin/vertex-monkey-patch.cjs",
33
32
  "type-check": "tsc --noEmit",
34
33
  "build": "tsc",
35
34
  "prepublishOnly": "npm run build"
@@ -51,15 +50,17 @@
51
50
  "@anthropic-ai/sdk": "^0.26.1",
52
51
  "@anthropic-ai/vertex-sdk": "^0.4.1",
53
52
  "@google-cloud/aiplatform": "^3.25.0",
54
- "@google-cloud/vertexai": "^1.3.0",
53
+ "@google-cloud/vertexai": "^1.6.0",
55
54
  "@google/generative-ai": "^0.17.1",
56
55
  "@imgly/background-removal-node": "^1.4.5",
56
+ "@inquirer/prompts": "^5.3.8",
57
57
  "@types/diff": "^5.2.1",
58
58
  "@types/mime-types": "^2.1.4",
59
59
  "@types/node": "^18.0.0",
60
60
  "diff": "^5.2.0",
61
61
  "glob-regex": "^0.3.2",
62
62
  "image-size": "^1.1.1",
63
+ "inquirer-file-selector": "^0.4.0",
63
64
  "jsonschema": "^1.4.1",
64
65
  "mime-types": "^2.1.35",
65
66
  "openai": "^4.52.7",
@@ -1,33 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- const fs = require('fs');
4
-
5
- // Add node version check
6
- const pkg = require('../package.json');
7
- const pleaseUpgradeNode = require('please-upgrade-node');
8
- pleaseUpgradeNode(pkg);
9
-
10
- const MONKEY_PATCH_FILE = '@google-cloud/vertexai/build/src/functions/generate_content.js';
11
- const MONKEY_PATCH_TOOL_CONFIG = `// MONKEY PATCH TOOL_CONFIG`;
12
-
13
- console.log('Apply vertex monkey patch');
14
- const path = require.resolve(MONKEY_PATCH_FILE);
15
- const content = fs.readFileSync(path, 'utf-8');
16
-
17
- if (!content) {
18
- console.log('Could not find file:', path);
19
- return;
20
- }
21
-
22
- if (content.includes(MONKEY_PATCH_TOOL_CONFIG)) {
23
- console.log('Patch already applied');
24
- return;
25
- }
26
-
27
- const newContent = content.replaceAll(
28
- 'data: generateContentRequest,',
29
- `// MONKEY PATCH TOOL_CONFIG
30
- data: {...generateContentRequest,tool_config: {function_calling_config: { mode: request.toolConfig?.functionCallingConfig?.mode, allowed_function_names: request.toolConfig?.functionCallingConfig.allowedFunctionNames }}},`,
31
- );
32
- fs.writeFileSync(path, newContent, 'utf-8');
33
- console.log('Vertex monkey patch applied');