genaicode 0.9.6 → 0.10.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 (175) hide show
  1. package/dist/ai-service/ai-studio.d.ts +1 -1
  2. package/dist/ai-service/ai-studio.js +114 -31
  3. package/dist/ai-service/ai-studio.js.map +1 -1
  4. package/dist/ai-service/anthropic.js +64 -28
  5. package/dist/ai-service/anthropic.js.map +1 -1
  6. package/dist/ai-service/common-types.d.ts +28 -7
  7. package/dist/ai-service/local-llm.d.ts +6 -0
  8. package/dist/ai-service/local-llm.js +77 -0
  9. package/dist/ai-service/local-llm.js.map +1 -0
  10. package/dist/ai-service/openai.d.ts +3 -13
  11. package/dist/ai-service/openai.js +107 -51
  12. package/dist/ai-service/openai.js.map +1 -1
  13. package/dist/ai-service/service-configurations-types.d.ts +14 -4
  14. package/dist/ai-service/service-configurations-types.js +0 -4
  15. package/dist/ai-service/service-configurations-types.js.map +1 -1
  16. package/dist/ai-service/service-configurations.d.ts +9 -1
  17. package/dist/ai-service/service-configurations.js +108 -12
  18. package/dist/ai-service/service-configurations.js.map +1 -1
  19. package/dist/ai-service/vertex-ai-claude.d.ts +1 -1
  20. package/dist/ai-service/vertex-ai-claude.js +80 -39
  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 +261 -155
  24. package/dist/ai-service/vertex-ai.js.map +1 -1
  25. package/dist/cli/cli-options.js +1 -1
  26. package/dist/cli/cli-options.js.map +1 -1
  27. package/dist/cli/validate-cli-params.js +1 -1
  28. package/dist/cli/validate-cli-params.js.map +1 -1
  29. package/dist/help-docs/genaicode-help-document.d.ts +1 -1
  30. package/dist/help-docs/genaicode-help-document.js +1 -0
  31. package/dist/help-docs/genaicode-help-document.js.map +1 -1
  32. package/dist/main/codegen-utils.js +9 -1
  33. package/dist/main/codegen-utils.js.map +1 -1
  34. package/dist/main/codegen.js +2 -0
  35. package/dist/main/codegen.js.map +1 -1
  36. package/dist/main/common/user-actions.d.ts +2 -0
  37. package/dist/main/common/user-actions.js.map +1 -1
  38. package/dist/main/config-schema.js +16 -0
  39. package/dist/main/config-schema.js.map +1 -1
  40. package/dist/main/config-types.d.ts +16 -0
  41. package/dist/main/config.js +9 -1
  42. package/dist/main/config.js.map +1 -1
  43. package/dist/main/interactive/select-ai-service.js +1 -0
  44. package/dist/main/interactive/select-ai-service.js.map +1 -1
  45. package/dist/main/plugin-loader.d.ts +1 -2
  46. package/dist/main/plugin-loader.js.map +1 -1
  47. package/dist/main/ui/backend/endpoints/question-endpoint.js +34 -3
  48. package/dist/main/ui/backend/endpoints/question-endpoint.js.map +1 -1
  49. package/dist/main/ui/backend/service.d.ts +6 -5
  50. package/dist/main/ui/backend/service.js +54 -17
  51. package/dist/main/ui/backend/service.js.map +1 -1
  52. package/dist/main/ui/common/api-types.d.ts +1 -0
  53. package/dist/main/ui/frontend/assets/index-C7n3IQsE.js +1896 -0
  54. package/dist/main/ui/frontend/index.html +1 -1
  55. package/dist/project-profiles/types.d.ts +1 -1
  56. package/dist/project-profiles/types.js +1 -1
  57. package/dist/project-profiles/types.js.map +1 -1
  58. package/dist/prompt/function-calling.js +8 -1
  59. package/dist/prompt/function-calling.js.map +1 -1
  60. package/dist/prompt/function-defs/ask-question.d.ts +1 -0
  61. package/dist/prompt/function-defs/ask-question.js +38 -4
  62. package/dist/prompt/function-defs/ask-question.js.map +1 -1
  63. package/dist/prompt/function-defs/conversation-summary.d.ts +2 -0
  64. package/dist/prompt/function-defs/conversation-summary.js +15 -0
  65. package/dist/prompt/function-defs/conversation-summary.js.map +1 -0
  66. package/dist/prompt/function-defs/explore-external-directories.d.ts +16 -0
  67. package/dist/prompt/function-defs/explore-external-directories.js +48 -0
  68. package/dist/prompt/function-defs/explore-external-directories.js.map +1 -0
  69. package/dist/prompt/function-defs/read-external-files.d.ts +9 -0
  70. package/dist/prompt/function-defs/read-external-files.js +30 -0
  71. package/dist/prompt/function-defs/read-external-files.js.map +1 -0
  72. package/dist/prompt/limits.js +1 -1
  73. package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.js +23 -18
  74. package/dist/prompt/steps/step-ask-question/handlers/handle-code-generation.js.map +1 -1
  75. package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.js +60 -28
  76. package/dist/prompt/steps/step-ask-question/handlers/handle-conversation-graph.js.map +1 -1
  77. package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.js +76 -73
  78. package/dist/prompt/steps/step-ask-question/handlers/handle-create-file.js.map +1 -1
  79. package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js +1 -1
  80. package/dist/prompt/steps/step-ask-question/handlers/handle-end-conversation.js.map +1 -1
  81. package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.d.ts +2 -0
  82. package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.js +277 -0
  83. package/dist/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.js.map +1 -0
  84. package/dist/prompt/steps/step-ask-question/handlers/handle-genaicode-help.js +13 -1
  85. package/dist/prompt/steps/step-ask-question/handlers/handle-genaicode-help.js.map +1 -1
  86. package/dist/prompt/steps/step-ask-question/handlers/handle-generate-image.js +13 -1
  87. package/dist/prompt/steps/step-ask-question/handlers/handle-generate-image.js.map +1 -1
  88. package/dist/prompt/steps/step-ask-question/handlers/handle-lint.d.ts +1 -1
  89. package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js +54 -61
  90. package/dist/prompt/steps/step-ask-question/handlers/handle-lint.js.map +1 -1
  91. package/dist/prompt/steps/step-ask-question/handlers/handle-perform-analysis.js +22 -10
  92. package/dist/prompt/steps/step-ask-question/handlers/handle-perform-analysis.js.map +1 -1
  93. package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js +13 -1
  94. package/dist/prompt/steps/step-ask-question/handlers/handle-pull-app-context.js.map +1 -1
  95. package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js +13 -1
  96. package/dist/prompt/steps/step-ask-question/handlers/handle-push-app-context.js.map +1 -1
  97. package/dist/prompt/steps/step-ask-question/handlers/handle-read-external-files.d.ts +2 -0
  98. package/dist/prompt/steps/step-ask-question/handlers/handle-read-external-files.js +144 -0
  99. package/dist/prompt/steps/step-ask-question/handlers/handle-read-external-files.js.map +1 -0
  100. package/dist/prompt/steps/step-ask-question/handlers/handle-reasoning-inference.js +27 -6
  101. package/dist/prompt/steps/step-ask-question/handlers/handle-reasoning-inference.js.map +1 -1
  102. package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.js +13 -1
  103. package/dist/prompt/steps/step-ask-question/handlers/handle-remove-files-from-context.js.map +1 -1
  104. package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.js +14 -5
  105. package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-content.js.map +1 -1
  106. package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.js +26 -2
  107. package/dist/prompt/steps/step-ask-question/handlers/handle-request-files-fragments.js.map +1 -1
  108. package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.d.ts +3 -0
  109. package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.js +182 -0
  110. package/dist/prompt/steps/step-ask-question/handlers/handle-request-git-context.js.map +1 -0
  111. package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.js +13 -1
  112. package/dist/prompt/steps/step-ask-question/handlers/handle-request-permissions.js.map +1 -1
  113. package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js +14 -2
  114. package/dist/prompt/steps/step-ask-question/handlers/handle-search-code.js.map +1 -1
  115. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js +1 -0
  116. package/dist/prompt/steps/step-ask-question/handlers/handle-send-message.js.map +1 -1
  117. package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.js +59 -60
  118. package/dist/prompt/steps/step-ask-question/handlers/handle-update-file.js.map +1 -1
  119. package/dist/prompt/steps/step-ask-question/step-ask-question-handlers.js +4 -1
  120. package/dist/prompt/steps/step-ask-question/step-ask-question-handlers.js.map +1 -1
  121. package/dist/prompt/steps/step-ask-question/step-ask-question-types.d.ts +11 -1
  122. package/dist/prompt/steps/step-ask-question/step-ask-question.d.ts +2 -0
  123. package/dist/prompt/steps/step-ask-question/step-ask-question.js +14 -7
  124. package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
  125. package/dist/prompt/steps/step-codegen-planning.js +14 -5
  126. package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
  127. package/dist/prompt/steps/step-context-compression.js +14 -5
  128. package/dist/prompt/steps/step-context-compression.js.map +1 -1
  129. package/dist/prompt/steps/step-context-optimization.js +10 -5
  130. package/dist/prompt/steps/step-context-optimization.js.map +1 -1
  131. package/dist/prompt/steps/step-generate-codegen-summary.js +14 -5
  132. package/dist/prompt/steps/step-generate-codegen-summary.js.map +1 -1
  133. package/dist/prompt/steps/step-generate-summary.d.ts +6 -0
  134. package/dist/prompt/steps/step-generate-summary.js +36 -16
  135. package/dist/prompt/steps/step-generate-summary.js.map +1 -1
  136. package/dist/prompt/steps/step-history-update.js +14 -5
  137. package/dist/prompt/steps/step-history-update.js.map +1 -1
  138. package/dist/prompt/steps/step-process-file-updates.js +10 -5
  139. package/dist/prompt/steps/step-process-file-updates.js.map +1 -1
  140. package/dist/prompt/steps/step-summarization.js +14 -2
  141. package/dist/prompt/steps/step-summarization.js.map +1 -1
  142. package/dist/prompt/steps/step-validate-recover.d.ts +2 -4
  143. package/dist/prompt/steps/step-validate-recover.js +18 -9
  144. package/dist/prompt/steps/step-validate-recover.js.map +1 -1
  145. package/dist/prompt/steps/step-verify-patch.js +14 -5
  146. package/dist/prompt/steps/step-verify-patch.js.map +1 -1
  147. package/dist/prompt/systemprompt.d.ts +1 -1
  148. package/dist/prompt/systemprompt.js +10 -5
  149. package/dist/prompt/systemprompt.js.map +1 -1
  150. package/package.json +5 -4
  151. package/dist/main/ui/frontend/assets/index-DI1ngpa2.js +0 -1840
  152. package/dist/prompt/steps/step-ask-question/handlers/code-generation.d.ts +0 -4
  153. package/dist/prompt/steps/step-ask-question/handlers/code-generation.js +0 -167
  154. package/dist/prompt/steps/step-ask-question/handlers/code-generation.js.map +0 -1
  155. package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.d.ts +0 -2
  156. package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js +0 -34
  157. package/dist/prompt/steps/step-ask-question/handlers/confirm-code-generation.js.map +0 -1
  158. package/dist/prompt/steps/step-ask-question/handlers/context-optimization.d.ts +0 -2
  159. package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js +0 -32
  160. package/dist/prompt/steps/step-ask-question/handlers/context-optimization.js.map +0 -1
  161. package/dist/prompt/steps/step-ask-question/handlers/genaicode-help-document.d.ts +0 -1
  162. package/dist/prompt/steps/step-ask-question/handlers/genaicode-help-document.js +0 -251
  163. package/dist/prompt/steps/step-ask-question/handlers/genaicode-help-document.js.map +0 -1
  164. package/dist/prompt/steps/step-ask-question/handlers/lint.d.ts +0 -6
  165. package/dist/prompt/steps/step-ask-question/handlers/lint.js +0 -103
  166. package/dist/prompt/steps/step-ask-question/handlers/lint.js.map +0 -1
  167. package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.d.ts +0 -2
  168. package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js +0 -82
  169. package/dist/prompt/steps/step-ask-question/handlers/remove-files-from-context.js.map +0 -1
  170. package/dist/prompt/steps/step-ask-question/handlers/request-files-content.d.ts +0 -8
  171. package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js +0 -179
  172. package/dist/prompt/steps/step-ask-question/handlers/request-files-content.js.map +0 -1
  173. package/dist/prompt/steps/step-ask-question/handlers/request-permissions.d.ts +0 -2
  174. package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js +0 -69
  175. package/dist/prompt/steps/step-ask-question/handlers/request-permissions.js.map +0 -1
@@ -40,7 +40,19 @@ export async function handleCreateFile({ askQuestionCall, options, prompt, gener
40
40
  text: 'Ok, please provide the file creation using `createFile` function. Please remember to use absolute file path.' +
41
41
  (generateConfirmation.answer ? ` ${generateConfirmation.answer}` : ''),
42
42
  },
43
- ], getFunctionDefs(), 'createFile', options.temperature ?? 0.7, ModelType.DEFAULT, options));
43
+ ], {
44
+ functionDefs: getFunctionDefs(),
45
+ requiredFunctionName: 'createFile',
46
+ temperature: options.temperature ?? 0.7,
47
+ modelType: ModelType.DEFAULT,
48
+ expectedResponseType: {
49
+ text: false,
50
+ functionCall: true,
51
+ media: false,
52
+ },
53
+ }, options))
54
+ .filter((item) => item.type === 'functionCall')
55
+ .map((item) => item.functionCall);
44
56
  if (!createFileCall || !createFileCall.args) {
45
57
  return {
46
58
  breakLoop: true,
@@ -50,20 +62,17 @@ export async function handleCreateFile({ askQuestionCall, options, prompt, gener
50
62
  const { filePath } = createFileCall.args;
51
63
  const file = getSourceCode({ filterPaths: [filePath], forceAll: true }, options)[filePath];
52
64
  if (file && 'content' in file && file.content) {
65
+ putSystemMessage('File not created. File already exists.', createFileCall);
66
+ prompt.push({
67
+ type: 'assistant',
68
+ text: askQuestionCall.args?.message ?? '',
69
+ }, {
70
+ type: 'user',
71
+ text: 'The file already exists. Please use updateFile function to modify existing files.',
72
+ });
53
73
  return {
54
74
  breakLoop: false,
55
- items: [
56
- {
57
- assistant: {
58
- type: 'assistant',
59
- text: askQuestionCall.args.message,
60
- },
61
- user: {
62
- type: 'user',
63
- text: 'The file already exists. Please use updateFile function to modify existing files.',
64
- },
65
- },
66
- ],
75
+ items: [],
67
76
  };
68
77
  }
69
78
  putSystemMessage(`The assistant has generated content for new file ${filePath}.`, {
@@ -72,84 +81,78 @@ export async function handleCreateFile({ askQuestionCall, options, prompt, gener
72
81
  });
73
82
  // Second confirmation: Ask user if they want to proceed with file creation
74
83
  const applyConfirmation = await askUserForConfirmationWithAnswer('The assistant has generated the file content. Do you want to create the file?', 'Create file', 'Cancel file creation', false, options);
84
+ if (applyConfirmation.answer) {
85
+ putUserMessage(applyConfirmation.answer);
86
+ }
75
87
  if (!applyConfirmation.confirmed) {
76
- return {
77
- breakLoop: false,
78
- items: [
88
+ putSystemMessage('File creation rejected.');
89
+ prompt.push({
90
+ type: 'assistant',
91
+ text: askQuestionCall.args.message,
92
+ functionCalls: [createFileCall],
93
+ }, {
94
+ type: 'user',
95
+ text: 'Rejecting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
96
+ functionResponses: [
79
97
  {
80
- assistant: {
81
- type: 'assistant',
82
- text: askQuestionCall.args.message,
83
- functionCalls: [createFileCall],
84
- },
85
- user: {
86
- type: 'user',
87
- text: 'Rejecting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
88
- functionResponses: [
89
- {
90
- name: 'createFile',
91
- call_id: createFileCall.id,
92
- content: '',
93
- },
94
- ],
95
- },
98
+ name: 'createFile',
99
+ call_id: createFileCall.id,
100
+ content: '',
96
101
  },
97
102
  ],
103
+ });
104
+ return {
105
+ breakLoop: false,
106
+ items: [],
98
107
  };
99
108
  }
100
109
  try {
110
+ putSystemMessage('Applying file creation');
101
111
  await executeCreateFile(createFileCall.args, options);
102
112
  refreshFiles();
103
- return {
104
- breakLoop: false,
105
- items: [
113
+ prompt.push({
114
+ type: 'assistant',
115
+ text: askQuestionCall.args.message,
116
+ functionCalls: [createFileCall],
117
+ }, {
118
+ type: 'user',
119
+ text: 'Accepting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
120
+ functionResponses: [
106
121
  {
107
- assistant: {
108
- type: 'assistant',
109
- text: askQuestionCall.args.message,
110
- functionCalls: [createFileCall],
111
- },
112
- user: {
113
- type: 'user',
114
- text: 'Accepting file creation.' + (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : ''),
115
- functionResponses: [
116
- {
117
- name: 'createFile',
118
- call_id: createFileCall.id,
119
- content: '',
120
- },
121
- ],
122
- },
122
+ name: 'createFile',
123
+ call_id: createFileCall.id,
124
+ content: '',
123
125
  },
124
126
  ],
127
+ });
128
+ return {
129
+ breakLoop: false,
130
+ items: [],
125
131
  };
126
132
  }
127
133
  catch (error) {
128
- return {
129
- breakLoop: false,
130
- items: [
134
+ putSystemMessage('File creation failed.');
135
+ prompt.push({
136
+ type: 'assistant',
137
+ text: askQuestionCall.args.message,
138
+ functionCalls: [createFileCall],
139
+ }, {
140
+ type: 'user',
141
+ text: 'Accepting file creation.' +
142
+ (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : '') +
143
+ ' Unfortunately, the file creation failed: ' +
144
+ (error instanceof Error ? error.message : 'unknown error'),
145
+ functionResponses: [
131
146
  {
132
- assistant: {
133
- type: 'assistant',
134
- text: askQuestionCall.args.message,
135
- functionCalls: [createFileCall],
136
- },
137
- user: {
138
- type: 'user',
139
- text: 'Accepting file creation.' +
140
- (applyConfirmation.answer ? ` ${applyConfirmation.answer}` : '') +
141
- ' Unfortunately, the file creation failed: ' +
142
- (error instanceof Error ? error.message : 'unknown error'),
143
- functionResponses: [
144
- {
145
- name: 'createFile',
146
- call_id: createFileCall.id,
147
- content: '',
148
- },
149
- ],
150
- },
147
+ name: 'createFile',
148
+ call_id: createFileCall.id,
149
+ content: '',
151
150
  },
152
151
  ],
152
+ });
153
+ return {
154
+ breakLoop: false,
155
+ items: [],
153
156
  };
154
157
  }
155
158
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handle-create-file.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-create-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-create-file.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-create-file.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export async function handleEndConversation({ askQuestionCall, prompt, options,
12
12
  text: askQuestionCall.args?.message ?? '',
13
13
  }, {
14
14
  type: 'user',
15
- text: 'Declined. Please continue the conversation.' + (userConfirmation.answer ? ` ${userConfirmation.answer}` : ''),
15
+ text: 'Lets continue the conversation.' + (userConfirmation.answer ? ` ${userConfirmation.answer}` : ''),
16
16
  });
17
17
  if (!userConfirmation.confirmed) {
18
18
  putSystemMessage('User declined to end the conversation.');
@@ -1 +1 @@
1
- {"version":3,"file":"handle-end-conversation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-end-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBAAqB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,eAAe,EACf,MAAM,EACN,OAAO,GACY;IACnB,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,sCAAsC,EACtC,kBAAkB,EAClB,uBAAuB,EACvB,IAAI,EACJ,OAAO,CACR,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;KAC1C,EACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EACF,6CAA6C,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACjH,CACF,CAAC;IAEF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAChC,gBAAgB,CAAC,wCAAwC,CAAC,CAAC;QAE3D,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,yDAAyD,CAAC,CAAC;IAC5E,OAAO;QACL,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"handle-end-conversation.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-end-conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC1F,OAAO,EAAE,gCAAgC,EAAE,MAAM,yCAAyC,CAAC;AAC3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAGzE,qBAAqB,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,EAC1C,eAAe,EACf,MAAM,EACN,OAAO,GACY;IACnB,MAAM,gBAAgB,GAAG,MAAM,gCAAgC,CAC7D,sCAAsC,EACtC,kBAAkB,EAClB,uBAAuB,EACvB,IAAI,EACJ,OAAO,CACR,CAAC;IAEF,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;QAC5B,cAAc,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,IAAI,CACT;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE;KAC1C,EACD;QACE,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,iCAAiC,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzG,CACF,CAAC;IAEF,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAChC,gBAAgB,CAAC,wCAAwC,CAAC,CAAC;QAE3D,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAED,gBAAgB,CAAC,yDAAyD,CAAC,CAAC;IAC5E,OAAO;QACL,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,EAAE;KACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ActionHandlerProps, ActionResult } from '../step-ask-question-types.js';
2
+ export declare function handleExploreExternalDirectories({ askQuestionCall, options, prompt, generateContentFn, }: ActionHandlerProps): Promise<ActionResult>;
@@ -0,0 +1,277 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { isAncestorDirectory } from '../../../../files/file-utils.js';
4
+ import { askUserForConfirmation } from '../../../../main/common/user-actions.js';
5
+ import { putSystemMessage } from '../../../../main/common/content-bus.js';
6
+ import { rcConfig } from '../../../../main/config.js';
7
+ import { registerActionHandler } from '../step-ask-question-handlers.js';
8
+ import { exploreExternalDirectories as exploreExternalDirectoriesDef, } from '../../../function-defs/explore-external-directories.js';
9
+ import { ModelType } from '../../../../ai-service/common-types.js';
10
+ import { getFunctionDefs } from '../../../function-calling.js';
11
+ // Threshold for triggering synthesis instead of listing all files
12
+ const SYNTHESIS_FILE_COUNT_THRESHOLD = 10;
13
+ registerActionHandler('exploreExternalDirectories', handleExploreExternalDirectories);
14
+ export async function handleExploreExternalDirectories({ askQuestionCall, options, prompt, generateContentFn, }) {
15
+ // 1. Infer arguments using LLM
16
+ const inferencePrompt = [
17
+ ...prompt,
18
+ {
19
+ type: 'assistant',
20
+ text: askQuestionCall.args?.message ?? '',
21
+ },
22
+ {
23
+ type: 'user',
24
+ text: 'Given the conversation, identify the directories, reason, and any exploration parameters (recursive, depth, searchPhrases, maxResults) for exploring external directories.',
25
+ },
26
+ ];
27
+ const inferenceResult = await generateContentFn(inferencePrompt, {
28
+ modelType: ModelType.CHEAP,
29
+ functionDefs: getFunctionDefs(),
30
+ requiredFunctionName: exploreExternalDirectoriesDef.name,
31
+ }, options);
32
+ const inferredCall = inferenceResult.find((part) => part.type === 'functionCall')?.functionCall;
33
+ if (!inferredCall || !inferredCall.args) {
34
+ putSystemMessage('Could not infer arguments for exploreExternalDirectories action from the assistant message and context.');
35
+ return { breakLoop: false, items: [] }; // Or respond with error
36
+ }
37
+ const inferredCallId = inferredCall.id;
38
+ // Ensure depth is handled correctly as it's now required
39
+ const { directories, reason: inferredReason, depth, ...restParams } = inferredCall.args;
40
+ const requestedDirectories = directories;
41
+ const reason = inferredReason;
42
+ const executorParams = { depth, ...restParams }; // Includes recursive, searchPhrases, maxResults if provided
43
+ if (!requestedDirectories || requestedDirectories.length === 0 || !reason || typeof depth !== 'number' || depth < 0) {
44
+ let errorMsg = 'Missing or invalid arguments after inferring for exploreExternalDirectories action.';
45
+ if (!requestedDirectories || requestedDirectories.length === 0)
46
+ errorMsg += ' Missing directories.';
47
+ if (!reason)
48
+ errorMsg += ' Missing reason.';
49
+ if (typeof depth !== 'number' || depth < 0)
50
+ errorMsg += ' Missing or invalid depth (must be >= 0).';
51
+ putSystemMessage(errorMsg);
52
+ // Respond with an error in the function response
53
+ prompt.push({
54
+ type: 'assistant',
55
+ text: askQuestionCall.args?.message ?? '',
56
+ functionCalls: inferredCall ? [inferredCall] : undefined, // Include the inferred call attempt
57
+ }, {
58
+ type: 'user',
59
+ functionResponses: [
60
+ {
61
+ name: exploreExternalDirectoriesDef.name,
62
+ call_id: inferredCallId,
63
+ content: JSON.stringify({
64
+ error: `Invalid arguments inferred: ${errorMsg}`,
65
+ }),
66
+ },
67
+ ],
68
+ });
69
+ return { breakLoop: false, items: [] };
70
+ }
71
+ // 2. Validate directories are external
72
+ const externalDirsToExplore = [];
73
+ const internalDirsSkipped = [];
74
+ const invalidDirs = [];
75
+ for (const dir of requestedDirectories) {
76
+ try {
77
+ const absolutePath = path.resolve(dir);
78
+ // Basic check if it's inside the project root (and not ignored)
79
+ if (isAncestorDirectory(rcConfig.rootDir, absolutePath) &&
80
+ !rcConfig.ignorePaths?.some((ignorePath) => path.join(rcConfig.rootDir, ignorePath) === absolutePath ||
81
+ isAncestorDirectory(path.join(rcConfig.rootDir, ignorePath), absolutePath))) {
82
+ internalDirsSkipped.push(absolutePath);
83
+ }
84
+ else {
85
+ // Further validation (existence, directory type) could happen here or in exploreDirectories
86
+ externalDirsToExplore.push(absolutePath);
87
+ }
88
+ }
89
+ catch (error) {
90
+ // path.resolve might throw if the path format is invalid on some OS
91
+ invalidDirs.push(`${dir} (invalid path format)`);
92
+ }
93
+ }
94
+ // Define userResponse structure
95
+ let userResponse = {};
96
+ // 3. Handle validation results and Ask for confirmation
97
+ if (invalidDirs.length > 0) {
98
+ userResponse = {
99
+ error: `Invalid or inaccessible directory paths provided: ${invalidDirs.join(', ')}`,
100
+ invalid: invalidDirs,
101
+ };
102
+ }
103
+ else if (externalDirsToExplore.length === 0) {
104
+ userResponse.error = 'No valid external directories provided to explore.';
105
+ if (internalDirsSkipped.length > 0) {
106
+ userResponse.skipped = internalDirsSkipped;
107
+ userResponse.error += ` Skipped internal directories: ${internalDirsSkipped.join(', ')}`;
108
+ }
109
+ }
110
+ else {
111
+ // Ask for confirmation
112
+ const confirmationMessage = `The AI wants to explore the following external directorie(s):\n${externalDirsToExplore.join('\n')}\nDo you allow exploring these directories?`;
113
+ const confirmationResult = await askUserForConfirmation(confirmationMessage, false, options);
114
+ if (confirmationResult.confirmed) {
115
+ try {
116
+ const filePaths = await exploreDirectories({
117
+ directories: externalDirsToExplore,
118
+ // Pass validated executorParams
119
+ recursive: executorParams.recursive,
120
+ depth: executorParams.depth,
121
+ searchPhrases: executorParams.searchPhrases,
122
+ maxResults: executorParams.maxResults,
123
+ });
124
+ userResponse.confirmed = true;
125
+ if (internalDirsSkipped.length > 0) {
126
+ userResponse.skipped = internalDirsSkipped;
127
+ }
128
+ // ---- Synthesis Logic ----
129
+ if (filePaths.length > SYNTHESIS_FILE_COUNT_THRESHOLD) {
130
+ putSystemMessage(`Found ${filePaths.length} files. Synthesizing results...`);
131
+ userResponse.fileCount = filePaths.length;
132
+ const synthesisPrompt = [
133
+ {
134
+ type: 'user',
135
+ text: `You explored directories and found ${filePaths.length} files because: ${reason}.\nFiles:\n${filePaths.join('\\n')}\n\nBased on this reason, provide a concise and helpful output. Choose the most suitable format from summary, categorized list, or plain file list.`,
136
+ },
137
+ ];
138
+ try {
139
+ const synthesisResult = await generateContentFn(synthesisPrompt, {
140
+ modelType: ModelType.CHEAP,
141
+ // Ensure we only expect text
142
+ expectedResponseType: { text: true, functionCall: false, media: false },
143
+ }, { ...options, askQuestion: false });
144
+ const synthesizedText = synthesisResult.find((part) => part.type === 'text')?.text;
145
+ if (synthesizedText) {
146
+ userResponse.synthesis = synthesizedText;
147
+ putSystemMessage(`Synthesis complete.`);
148
+ }
149
+ else {
150
+ putSystemMessage('Synthesis failed: No text content returned from LLM.');
151
+ userResponse.error = 'Exploration succeeded, but synthesis failed to generate content.';
152
+ // Fallback? Maybe include filePaths if synthesis fails?
153
+ // userResponse.filePaths = filePaths; // Or just report error
154
+ }
155
+ }
156
+ catch (synthError) {
157
+ const synthErrorMessage = synthError instanceof Error ? synthError.message : 'Unknown synthesis error.';
158
+ putSystemMessage(`Synthesis failed: ${synthErrorMessage}`);
159
+ userResponse.error = `Exploration succeeded, but synthesis failed: ${synthErrorMessage}`;
160
+ // userResponse.filePaths = filePaths; // Optional fallback
161
+ }
162
+ }
163
+ else {
164
+ // No synthesis needed, include the paths directly
165
+ userResponse.filePaths = filePaths;
166
+ }
167
+ // ---- End Synthesis Logic ----
168
+ }
169
+ catch (error) {
170
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error during execution.';
171
+ putSystemMessage(`Error exploring external directories: ${errorMessage}`);
172
+ userResponse = { ...userResponse, confirmed: true, error: `Exploration failed: ${errorMessage}` }; // Keep skipped/invalid if already set
173
+ }
174
+ }
175
+ else {
176
+ userResponse = {
177
+ ...userResponse,
178
+ confirmed: false,
179
+ error: 'User denied permission to explore external directories.',
180
+ }; // Keep skipped/invalid
181
+ }
182
+ }
183
+ // 4. Update conversation history
184
+ prompt.push({
185
+ type: 'assistant',
186
+ text: askQuestionCall.args?.message ?? '',
187
+ functionCalls: inferredCall ? [inferredCall] : undefined, // Use the inferred call
188
+ }, {
189
+ type: 'user',
190
+ functionResponses: [
191
+ {
192
+ name: exploreExternalDirectoriesDef.name,
193
+ call_id: inferredCallId, // Use the ID from the inferred call
194
+ content: JSON.stringify({
195
+ // Include original request details for context, even if modified by synthesis
196
+ requestedDirectories,
197
+ reason,
198
+ ...executorParams,
199
+ // Add the results (potentially synthesized)
200
+ ...userResponse,
201
+ }),
202
+ },
203
+ ],
204
+ });
205
+ return {
206
+ breakLoop: false,
207
+ items: [], // No immediate items to add, handled by history push
208
+ };
209
+ }
210
+ // Keep exploreDirectories function as is, ensuring it respects maxResults
211
+ async function exploreDirectories(args) {
212
+ const { directories, recursive = false, depth, searchPhrases, maxResults = 50 } = args;
213
+ const foundFiles = [];
214
+ // Depth is now required, maxDepth calculation is simpler
215
+ const maxDepth = depth;
216
+ const lowerCaseSearchPhrases = searchPhrases?.map((p) => p.toLowerCase());
217
+ async function traverse(dirPath, currentDepth) {
218
+ // Stop if max depth exceeded OR max results reached
219
+ if (currentDepth > maxDepth || foundFiles.length >= maxResults) {
220
+ return;
221
+ }
222
+ let entries;
223
+ try {
224
+ // Check access first to provide better error for invalidDirs later?
225
+ await fs.access(dirPath, fs.constants.R_OK);
226
+ entries = await fs.readdir(dirPath, { withFileTypes: true });
227
+ }
228
+ catch (error) {
229
+ // Log or handle specific errors like permission denied
230
+ // console.warn(`Could not read directory ${dirPath}: ${error}`);
231
+ // Consider throwing if it's the initial directory?
232
+ return; // Silently ignore inaccessible subdirectories
233
+ }
234
+ for (const entry of entries) {
235
+ if (foundFiles.length >= maxResults) {
236
+ break; // Stop processing entries in this directory if max results hit
237
+ }
238
+ const fullPath = path.join(dirPath, entry.name);
239
+ if (entry.isDirectory()) {
240
+ foundFiles.push(fullPath);
241
+ // Only recurse if currentDepth < maxDepth
242
+ if (recursive && currentDepth < maxDepth) {
243
+ await traverse(fullPath, currentDepth + 1);
244
+ }
245
+ }
246
+ else if (entry.isFile()) {
247
+ if (lowerCaseSearchPhrases && lowerCaseSearchPhrases.length > 0) {
248
+ try {
249
+ // Consider limiting file size read?
250
+ const content = await fs.readFile(fullPath, 'utf-8');
251
+ const lowerCaseContent = content.toLowerCase();
252
+ if (lowerCaseSearchPhrases.every((phrase) => lowerCaseContent.includes(phrase))) {
253
+ foundFiles.push(fullPath);
254
+ }
255
+ }
256
+ catch (readError) {
257
+ // Ignore file read errors?
258
+ // console.warn(`Could not read file ${fullPath}: ${readError}`);
259
+ }
260
+ }
261
+ else {
262
+ // No search phrases, just add the file
263
+ foundFiles.push(fullPath);
264
+ }
265
+ }
266
+ // Ignore other entry types (symlinks, etc.)
267
+ }
268
+ }
269
+ for (const startDir of directories) {
270
+ if (foundFiles.length < maxResults) {
271
+ // Start traversal at depth 0
272
+ await traverse(startDir, 0);
273
+ }
274
+ }
275
+ return foundFiles;
276
+ }
277
+ //# sourceMappingURL=handle-explore-external-directories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-explore-external-directories.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-explore-external-directories.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,19 @@ async function getGenaicodeHelpCall(generateContentFn, prompt) {
87
87
  `,
88
88
  },
89
89
  ...prompt,
90
- ], getFunctionDefs(), 'genaicodeHelp', 0.7, ModelType.CHEAP));
90
+ ], {
91
+ functionDefs: getFunctionDefs(),
92
+ requiredFunctionName: 'genaicodeHelp',
93
+ temperature: 0.7,
94
+ modelType: ModelType.CHEAP,
95
+ expectedResponseType: {
96
+ text: false,
97
+ functionCall: true,
98
+ media: false,
99
+ },
100
+ }, {}))
101
+ .filter((item) => item.type === 'functionCall')
102
+ .map((item) => item.functionCall);
91
103
  return [genaicodeHelpCall];
92
104
  }
93
105
  //# sourceMappingURL=handle-genaicode-help.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handle-genaicode-help.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-genaicode-help.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-genaicode-help.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-genaicode-help.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,19 @@ export async function handleGenerateImage({ askQuestionCall, options, generateCo
24
24
  type: 'user',
25
25
  text: 'Yes, you can generate an image.',
26
26
  },
27
- ], getFunctionDefs(), 'generateImage', 0.7, ModelType.CHEAP, options));
27
+ ], {
28
+ functionDefs: getFunctionDefs(),
29
+ requiredFunctionName: 'generateImage',
30
+ temperature: 0.7,
31
+ modelType: ModelType.CHEAP,
32
+ expectedResponseType: {
33
+ text: false,
34
+ functionCall: true,
35
+ media: false,
36
+ },
37
+ }, options))
38
+ .filter((item) => item.type === 'functionCall')
39
+ .map((item) => item.functionCall);
28
40
  if (!generateImageCall?.args) {
29
41
  return {
30
42
  breakLoop: true,
@@ -1 +1 @@
1
- {"version":3,"file":"handle-generate-image.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-generate-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handle-generate-image.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-ask-question/handlers/handle-generate-image.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@ import { ActionHandlerProps, ActionResult } from '../step-ask-question-types.js'
3
3
  * Handles the lint action by executing the lint command and processing its results.
4
4
  * If the lint command fails, it will ask for user confirmation to continue with code generation.
5
5
  */
6
- export declare function handleLint({ askQuestionCall }: ActionHandlerProps): Promise<ActionResult>;
6
+ export declare function handleLint({ askQuestionCall, prompt }: ActionHandlerProps): Promise<ActionResult>;