genaicode 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/dist/ai-service/ai-studio.d.ts +2 -18
  2. package/dist/ai-service/ai-studio.js +88 -32
  3. package/dist/ai-service/ai-studio.js.map +1 -1
  4. package/dist/ai-service/anthropic.js +87 -45
  5. package/dist/ai-service/anthropic.js.map +1 -1
  6. package/dist/ai-service/common-types.d.ts +36 -3
  7. package/dist/ai-service/common-types.js +0 -2
  8. package/dist/ai-service/common-types.js.map +1 -1
  9. package/dist/ai-service/common.js +0 -2
  10. package/dist/ai-service/common.js.map +1 -1
  11. package/dist/ai-service/files-api.d.ts +33 -0
  12. package/dist/ai-service/files-api.js +239 -0
  13. package/dist/ai-service/files-api.js.map +1 -0
  14. package/dist/ai-service/github-models.js +0 -2
  15. package/dist/ai-service/github-models.js.map +1 -1
  16. package/dist/ai-service/local-llm.js +0 -4
  17. package/dist/ai-service/local-llm.js.map +1 -1
  18. package/dist/ai-service/openai-responses.js +62 -16
  19. package/dist/ai-service/openai-responses.js.map +1 -1
  20. package/dist/ai-service/openai.js +157 -54
  21. package/dist/ai-service/openai.js.map +1 -1
  22. package/dist/ai-service/service-configurations-types.d.ts +0 -1
  23. package/dist/ai-service/service-configurations.js +19 -20
  24. package/dist/ai-service/service-configurations.js.map +1 -1
  25. package/dist/ai-service/vertex-ai.js +2 -1
  26. package/dist/ai-service/vertex-ai.js.map +1 -1
  27. package/dist/cli/cli-params.js +2 -2
  28. package/dist/cli/cli-params.js.map +1 -1
  29. package/dist/files/file-id-utils.js +1 -1
  30. package/dist/files/file-id-utils.js.map +1 -1
  31. package/dist/files/read-files.js +10 -6
  32. package/dist/files/read-files.js.map +1 -1
  33. package/dist/files/source-code-types.d.ts +9 -5
  34. package/dist/files/source-code-utils.d.ts +2 -1
  35. package/dist/files/source-code-utils.js +30 -12
  36. package/dist/files/source-code-utils.js.map +1 -1
  37. package/dist/files/summary-cache.d.ts +6 -4
  38. package/dist/files/summary-cache.js +3 -2
  39. package/dist/files/summary-cache.js.map +1 -1
  40. package/dist/index.d.ts +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/main/codegen-types.d.ts +2 -2
  44. package/dist/main/common/content-bus-types.d.ts +14 -0
  45. package/dist/main/common/content-bus.d.ts +3 -1
  46. package/dist/main/common/content-bus.js +28 -3
  47. package/dist/main/common/content-bus.js.map +1 -1
  48. package/dist/main/common/user-actions.d.ts +1 -1
  49. package/dist/main/config-types.d.ts +0 -3
  50. package/dist/main/config-types.js.map +1 -1
  51. package/dist/main/config.js +1 -1
  52. package/dist/main/config.js.map +1 -1
  53. package/dist/main/plugin-loader.d.ts +1 -1
  54. package/dist/main/ui/backend/endpoints/compress-context-endpoint.d.ts +1 -0
  55. package/dist/main/ui/backend/endpoints/compress-context-endpoint.js +18 -0
  56. package/dist/main/ui/backend/endpoints/compress-context-endpoint.js.map +1 -0
  57. package/dist/main/ui/backend/endpoints/config-endpoint.js +1 -1
  58. package/dist/main/ui/backend/endpoints/config-endpoint.js.map +1 -1
  59. package/dist/main/ui/backend/endpoints/context-endpoint.js +102 -0
  60. package/dist/main/ui/backend/endpoints/context-endpoint.js.map +1 -1
  61. package/dist/main/ui/backend/endpoints/edit-message-endpoint.js +9 -6
  62. package/dist/main/ui/backend/endpoints/edit-message-endpoint.js.map +1 -1
  63. package/dist/main/ui/backend/endpoints/index.d.ts +1 -0
  64. package/dist/main/ui/backend/endpoints/index.js +1 -0
  65. package/dist/main/ui/backend/endpoints/index.js.map +1 -1
  66. package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js +1 -1
  67. package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js.map +1 -1
  68. package/dist/main/ui/backend/service.d.ts +68 -7
  69. package/dist/main/ui/backend/service.js +301 -28
  70. package/dist/main/ui/backend/service.js.map +1 -1
  71. package/dist/main/ui/codegen-ui.js +2 -2
  72. package/dist/main/ui/codegen-ui.js.map +1 -1
  73. package/dist/main/ui/common/api-types.d.ts +6 -2
  74. package/dist/main/ui/common/api-types.js.map +1 -1
  75. package/dist/main/ui/frontend/assets/index-DAM_kJhM.js +3445 -0
  76. package/dist/main/ui/frontend/index.html +1 -1
  77. package/dist/prompt/context-utils.d.ts +7 -0
  78. package/dist/prompt/context-utils.js +33 -0
  79. package/dist/prompt/context-utils.js.map +1 -0
  80. package/dist/prompt/function-calling.js +4 -5
  81. package/dist/prompt/function-calling.js.map +1 -1
  82. package/dist/prompt/function-defs/code-execution.d.ts +7 -0
  83. package/dist/prompt/function-defs/code-execution.js +27 -0
  84. package/dist/prompt/function-defs/code-execution.js.map +1 -0
  85. package/dist/prompt/function-defs/conversation-graph.d.ts +1 -1
  86. package/dist/prompt/function-defs/conversation-graph.js +1 -1
  87. package/dist/prompt/function-defs/conversation-graph.js.map +1 -1
  88. package/dist/prompt/function-defs/get-source-code.js +3 -3
  89. package/dist/prompt/function-defs/iterate.d.ts +20 -0
  90. package/dist/prompt/function-defs/iterate.js +373 -0
  91. package/dist/prompt/function-defs/iterate.js.map +1 -0
  92. package/dist/prompt/function-defs/set-summaries.js +6 -2
  93. package/dist/prompt/function-defs/set-summaries.js.map +1 -1
  94. package/dist/prompt/limits.js +1 -1
  95. package/dist/prompt/prompt-service.js +13 -10
  96. package/dist/prompt/prompt-service.js.map +1 -1
  97. package/dist/prompt/source-code-optimize.d.ts +2 -0
  98. package/dist/prompt/source-code-optimize.js +27 -0
  99. package/dist/prompt/source-code-optimize.js.map +1 -0
  100. package/dist/prompt/steps/step-ask-question/step-ask-question.js +7 -1
  101. package/dist/prompt/steps/step-ask-question/step-ask-question.js.map +1 -1
  102. package/dist/prompt/steps/step-codegen-planning.js +6 -2
  103. package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
  104. package/dist/prompt/steps/step-context-compression.js +5 -0
  105. package/dist/prompt/steps/step-context-compression.js.map +1 -1
  106. package/dist/prompt/steps/step-context-optimization.js +6 -3
  107. package/dist/prompt/steps/step-context-optimization.js.map +1 -1
  108. package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.d.ts +7 -0
  109. package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.js +301 -0
  110. package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.js.map +1 -0
  111. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.d.ts +4 -0
  112. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.js +49 -0
  113. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.js.map +1 -0
  114. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.d.ts +4 -0
  115. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.js +190 -0
  116. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.js.map +1 -0
  117. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.d.ts +4 -0
  118. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.js +139 -0
  119. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.js.map +1 -0
  120. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.d.ts +10 -0
  121. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.js +93 -0
  122. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.js.map +1 -0
  123. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.d.ts +4 -0
  124. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.js +72 -0
  125. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.js.map +1 -0
  126. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.d.ts +10 -0
  127. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.js +125 -0
  128. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.js.map +1 -0
  129. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.d.ts +19 -0
  130. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.js +33 -0
  131. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.js.map +1 -0
  132. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.d.ts +8 -0
  133. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.js +85 -0
  134. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.js.map +1 -0
  135. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.d.ts +6 -0
  136. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.js +122 -0
  137. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.js.map +1 -0
  138. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.d.ts +7 -0
  139. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.js +146 -0
  140. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.js.map +1 -0
  141. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.d.ts +4 -0
  142. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.js +56 -0
  143. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.js.map +1 -0
  144. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.d.ts +4 -0
  145. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.js +56 -0
  146. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.js.map +1 -0
  147. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.d.ts +4 -0
  148. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.js +39 -0
  149. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.js.map +1 -0
  150. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.d.ts +10 -0
  151. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.js +95 -0
  152. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.js.map +1 -0
  153. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.d.ts +2 -0
  154. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.js +96 -0
  155. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.js.map +1 -0
  156. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.d.ts +4 -0
  157. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.js +123 -0
  158. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.js.map +1 -0
  159. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.d.ts +11 -0
  160. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.js +50 -0
  161. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.js.map +1 -0
  162. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.d.ts +28 -0
  163. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.js +2 -0
  164. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.js.map +1 -0
  165. package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.d.ts +2 -0
  166. package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.js +202 -0
  167. package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.js.map +1 -0
  168. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.d.ts +4 -0
  169. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.js +15 -0
  170. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.js.map +1 -0
  171. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.d.ts +50 -0
  172. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.js +358 -0
  173. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.js.map +1 -0
  174. package/dist/prompt/steps/step-iterate/handlers/file-request-utils.d.ts +47 -0
  175. package/dist/prompt/steps/step-iterate/handlers/file-request-utils.js +114 -0
  176. package/dist/prompt/steps/step-iterate/handlers/file-request-utils.js.map +1 -0
  177. package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.d.ts +1 -0
  178. package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.js +133 -0
  179. package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.js.map +1 -0
  180. package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.d.ts +4 -0
  181. package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.js +177 -0
  182. package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.js.map +1 -0
  183. package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.d.ts +20 -0
  184. package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.js +305 -0
  185. package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.js.map +1 -0
  186. package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.d.ts +2 -0
  187. package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.js +40 -0
  188. package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.js.map +1 -0
  189. package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.d.ts +2 -0
  190. package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.js +35 -0
  191. package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.js.map +1 -0
  192. package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.d.ts +2 -0
  193. package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.js +34 -0
  194. package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.js.map +1 -0
  195. package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.d.ts +11 -0
  196. package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.js +503 -0
  197. package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.js.map +1 -0
  198. package/dist/prompt/steps/step-iterate/handlers/handle-create-file.d.ts +2 -0
  199. package/dist/prompt/steps/step-iterate/handlers/handle-create-file.js +159 -0
  200. package/dist/prompt/steps/step-iterate/handlers/handle-create-file.js.map +1 -0
  201. package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.d.ts +2 -0
  202. package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.js +30 -0
  203. package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.js.map +1 -0
  204. package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.d.ts +2 -0
  205. package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.js +280 -0
  206. package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.js.map +1 -0
  207. package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.d.ts +8 -0
  208. package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.js +105 -0
  209. package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.js.map +1 -0
  210. package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.d.ts +2 -0
  211. package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.js +110 -0
  212. package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.js.map +1 -0
  213. package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.d.ts +6 -0
  214. package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.js +110 -0
  215. package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.js.map +1 -0
  216. package/dist/prompt/steps/step-iterate/handlers/handle-project-command.d.ts +2 -0
  217. package/dist/prompt/steps/step-iterate/handlers/handle-project-command.js +280 -0
  218. package/dist/prompt/steps/step-iterate/handlers/handle-project-command.js.map +1 -0
  219. package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.d.ts +9 -0
  220. package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.js +94 -0
  221. package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.js.map +1 -0
  222. package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.d.ts +2 -0
  223. package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.js +174 -0
  224. package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.js.map +1 -0
  225. package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.d.ts +9 -0
  226. package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.js +104 -0
  227. package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.js.map +1 -0
  228. package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.d.ts +2 -0
  229. package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.js +149 -0
  230. package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.js.map +1 -0
  231. package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.d.ts +7 -0
  232. package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.js +119 -0
  233. package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.js.map +1 -0
  234. package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.d.ts +2 -0
  235. package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.js +100 -0
  236. package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.js.map +1 -0
  237. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.d.ts +8 -0
  238. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.js +146 -0
  239. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.js.map +1 -0
  240. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.d.ts +8 -0
  241. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.js +197 -0
  242. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.js.map +1 -0
  243. package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.d.ts +3 -0
  244. package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.js +251 -0
  245. package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.js.map +1 -0
  246. package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.d.ts +2 -0
  247. package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.js +83 -0
  248. package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.js.map +1 -0
  249. package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.d.ts +2 -0
  250. package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.js +185 -0
  251. package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.js.map +1 -0
  252. package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.d.ts +2 -0
  253. package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.js +7 -0
  254. package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.js.map +1 -0
  255. package/dist/prompt/steps/step-iterate/handlers/handle-search-code.d.ts +2 -0
  256. package/dist/prompt/steps/step-iterate/handlers/handle-search-code.js +96 -0
  257. package/dist/prompt/steps/step-iterate/handlers/handle-search-code.js.map +1 -0
  258. package/dist/prompt/steps/step-iterate/handlers/handle-send-message.d.ts +2 -0
  259. package/dist/prompt/steps/step-iterate/handlers/handle-send-message.js +21 -0
  260. package/dist/prompt/steps/step-iterate/handlers/handle-send-message.js.map +1 -0
  261. package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.d.ts +1 -0
  262. package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.js +72 -0
  263. package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.js.map +1 -0
  264. package/dist/prompt/steps/step-iterate/handlers/handle-update-file.d.ts +2 -0
  265. package/dist/prompt/steps/step-iterate/handlers/handle-update-file.js +161 -0
  266. package/dist/prompt/steps/step-iterate/handlers/handle-update-file.js.map +1 -0
  267. package/dist/prompt/steps/step-iterate/handlers/handle-web-search.d.ts +1 -0
  268. package/dist/prompt/steps/step-iterate/handlers/handle-web-search.js +85 -0
  269. package/dist/prompt/steps/step-iterate/handlers/handle-web-search.js.map +1 -0
  270. package/dist/prompt/steps/step-iterate/iterate-handler.d.ts +4 -0
  271. package/dist/prompt/steps/step-iterate/iterate-handler.js +14 -0
  272. package/dist/prompt/steps/step-iterate/iterate-handler.js.map +1 -0
  273. package/dist/prompt/steps/step-iterate/step-iterate-handlers.d.ts +3 -0
  274. package/dist/prompt/steps/step-iterate/step-iterate-handlers.js +5 -0
  275. package/dist/prompt/steps/step-iterate/step-iterate-handlers.js.map +1 -0
  276. package/dist/prompt/steps/step-iterate/step-iterate-types.d.ts +255 -0
  277. package/dist/prompt/steps/step-iterate/step-iterate-types.js +2 -0
  278. package/dist/prompt/steps/step-iterate/step-iterate-types.js.map +1 -0
  279. package/dist/prompt/steps/step-iterate/step-iterate.d.ts +37 -0
  280. package/dist/prompt/steps/step-iterate/step-iterate.js +132 -0
  281. package/dist/prompt/steps/step-iterate/step-iterate.js.map +1 -0
  282. package/dist/prompt/steps/step-summarization.js +9 -19
  283. package/dist/prompt/steps/step-summarization.js.map +1 -1
  284. package/dist/prompt/systemprompt.js +93 -168
  285. package/dist/prompt/systemprompt.js.map +1 -1
  286. package/dist/prompt/token-estimator.js +1 -1
  287. package/dist/prompt/token-estimator.js.map +1 -1
  288. package/dist/vite-genaicode/console-interceptor.d.ts +19 -6
  289. package/dist/vite-genaicode/console-interceptor.js +45 -13
  290. package/dist/vite-genaicode/console-interceptor.js.map +1 -1
  291. package/dist/vite-genaicode/vite-genaicode-frontend.js +1 -1
  292. package/dist/vite-genaicode/vite-genaicode-frontend.js.map +1 -1
  293. package/package.json +7 -6
  294. package/dist/main/ui/frontend/assets/index-5-emJmrg.js +0 -2881
@@ -0,0 +1,358 @@
1
+ import path from 'path';
2
+ import fs from 'fs';
3
+ import tar from 'tar-stream';
4
+ import { putContainerLog, putSystemMessage } from '../../../../../../main/common/content-bus.js';
5
+ import { rcConfig } from '../../../../../../main/config.js';
6
+ import { cacheContainerId, clearCachedContainerIds, getCachedContainerIds, removeCachedContainerId, } from '../../../../../../files/cache-file.js';
7
+ import { isProjectPath } from '../../../../../../files/path-utils.js';
8
+ import { isIgnoredPath } from '../../../../../../files/find-files.js';
9
+ /**
10
+ * Pull a Docker image
11
+ */
12
+ export async function pullImage(docker, image) {
13
+ putContainerLog('info', `Pulling Docker image: ${image}`, undefined, 'docker');
14
+ return new Promise((resolve, reject) => {
15
+ docker
16
+ .pull(image)
17
+ .then((stream) => {
18
+ docker.modem.followProgress(stream, (err) => {
19
+ if (err) {
20
+ putContainerLog('error', `Failed to pull Docker image: ${err.message}`, undefined, 'docker');
21
+ reject(err);
22
+ }
23
+ else {
24
+ putContainerLog('success', `Successfully pulled Docker image: ${image}`, undefined, 'docker');
25
+ putSystemMessage(`✅ Successfully pulled Docker image: ${image}`);
26
+ resolve();
27
+ }
28
+ });
29
+ })
30
+ .catch((error) => {
31
+ putContainerLog('error', `Failed to pull Docker image: ${error.message}`, undefined, 'docker');
32
+ putSystemMessage(`❌ Failed to pull Docker image: ${error.message}`);
33
+ reject(error);
34
+ });
35
+ });
36
+ }
37
+ /**
38
+ * Create and start a Docker container
39
+ */
40
+ export async function createAndStartContainer(docker, image) {
41
+ const container = await docker.createContainer({
42
+ Image: image,
43
+ Tty: true,
44
+ HostConfig: {
45
+ AutoRemove: true,
46
+ },
47
+ });
48
+ await container.start();
49
+ putContainerLog('info', `Container started (ID: ${container.id.substring(0, 12)})`, { image }, 'docker');
50
+ cacheContainerId(container.id);
51
+ putSystemMessage(`✅ Container started successfully (ID: ${container.id.substring(0, 12)})`);
52
+ return container;
53
+ }
54
+ /**
55
+ * Execute a command in a Docker container
56
+ */
57
+ export async function executeCommand(container, shell, command, stdin, workingDir, abortSignal) {
58
+ putContainerLog('info', `Executing command in ${workingDir}: ${command}`, { stdin: !!stdin }, 'command');
59
+ const exec = await container.exec({
60
+ Cmd: [shell, '-c', command],
61
+ WorkingDir: workingDir,
62
+ AttachStdin: true,
63
+ Tty: false,
64
+ AttachStdout: true,
65
+ AttachStderr: true,
66
+ });
67
+ const stream = await exec.start({ hijack: true, stdin: true });
68
+ if (stdin) {
69
+ stream.write(stdin);
70
+ }
71
+ stream.end();
72
+ abortSignal?.addEventListener('abort', async () => {
73
+ const killExec = await container.exec({
74
+ Cmd: ['pkill', '-9', '-f', command],
75
+ AttachStdout: true,
76
+ AttachStderr: true,
77
+ });
78
+ await killExec.start({});
79
+ stream.destroy();
80
+ });
81
+ let output = '';
82
+ // Collect output from the stream
83
+ await new Promise((resolve) => {
84
+ stream.on('data', (chunk) => {
85
+ // Docker stream format: first 8 bytes are header, rest is data
86
+ const data = chunk.slice(8).toString();
87
+ output += data;
88
+ });
89
+ stream.on('end', () => {
90
+ resolve();
91
+ });
92
+ stream.on('error', () => {
93
+ resolve();
94
+ });
95
+ abortSignal?.addEventListener('abort', () => {
96
+ resolve();
97
+ });
98
+ });
99
+ if (abortSignal?.aborted) {
100
+ output += '\n\nAborted command execution';
101
+ }
102
+ const inspect = await exec.inspect();
103
+ putContainerLog('info', `Command finished with exit code: ${inspect.ExitCode || 0}`, { command }, 'command');
104
+ return { output: output.trim(), exitCode: inspect.ExitCode || 0 };
105
+ }
106
+ /**
107
+ * Stop and clean up a Docker container
108
+ */
109
+ export async function stopContainer(container) {
110
+ try {
111
+ await container.stop();
112
+ putContainerLog('info', 'Container stopped successfully', undefined, 'docker');
113
+ putSystemMessage('🛑 Container stopped successfully');
114
+ }
115
+ catch (error) {
116
+ putContainerLog('info', 'Container cleanup completed', undefined, 'docker');
117
+ putSystemMessage('🛑 Container cleanup completed');
118
+ }
119
+ finally {
120
+ removeCachedContainerId(container.id);
121
+ }
122
+ }
123
+ /**
124
+ * Clean up orphaned containers left over from previous runs.
125
+ */
126
+ export async function cleanupOrphanedContainers(docker) {
127
+ const containerIds = getCachedContainerIds();
128
+ if (containerIds.length === 0) {
129
+ return;
130
+ }
131
+ putContainerLog('info', `Found ${containerIds.length} potentially orphaned containers. Cleaning up...`);
132
+ putSystemMessage(`🧹 Found ${containerIds.length} potentially orphaned containers. Cleaning up...`);
133
+ const cleanupPromises = containerIds.map(async (id) => {
134
+ try {
135
+ const container = docker.getContainer(id);
136
+ const inspectInfo = await container.inspect();
137
+ if (inspectInfo.State.Running) {
138
+ await container.stop();
139
+ putContainerLog('info', `Stopped orphaned container ${id.substring(0, 12)}`);
140
+ putSystemMessage(`🛑 Stopped orphaned container ${id.substring(0, 12)}`);
141
+ }
142
+ }
143
+ catch (error) {
144
+ // Ignore errors (e.g., container not found)
145
+ }
146
+ });
147
+ await Promise.all(cleanupPromises);
148
+ clearCachedContainerIds();
149
+ putContainerLog('success', 'Orphaned container cleanup complete.');
150
+ putSystemMessage('✅ Orphaned container cleanup complete.');
151
+ }
152
+ /**
153
+ * Validates that the host path is within the project root directory.
154
+ * @param hostPath The path on the host machine. Can be absolute or relative to the project root.
155
+ * @returns The absolute, validated path.
156
+ */
157
+ function validateHostPath(hostPath) {
158
+ const absoluteHostPath = path.resolve(rcConfig.rootDir, hostPath);
159
+ if (!absoluteHostPath.startsWith(rcConfig.rootDir)) {
160
+ throw new Error(`Invalid host path: ${hostPath} is outside the project root directory.`);
161
+ }
162
+ return absoluteHostPath;
163
+ }
164
+ /**
165
+ * Recursively adds files and directories to a tar pack stream.
166
+ * @param pack The tar-stream pack instance.
167
+ * @param directoryPath The absolute path of the directory to add.
168
+ * @param relativeTo The base path for entries in the tar archive.
169
+ */
170
+ function addDirectoryToPack(pack, directoryPath, relativeTo) {
171
+ if (isIgnoredPath(directoryPath)) {
172
+ return;
173
+ }
174
+ const items = fs.readdirSync(directoryPath);
175
+ const dirStats = fs.lstatSync(directoryPath);
176
+ pack.entry({
177
+ name: relativeTo.endsWith('/') ? relativeTo : relativeTo + '/',
178
+ type: 'directory',
179
+ mode: dirStats.mode & 0o777,
180
+ mtime: dirStats.mtime,
181
+ }, () => { });
182
+ for (const item of items) {
183
+ const fullPath = path.join(directoryPath, item);
184
+ const tarPath = path.join(relativeTo, item);
185
+ const stats = fs.lstatSync(fullPath);
186
+ if (stats.isDirectory()) {
187
+ addDirectoryToPack(pack, fullPath, tarPath);
188
+ }
189
+ else if (isIgnoredPath(fullPath)) {
190
+ // Skip ignored files
191
+ }
192
+ else if (stats.isSymbolicLink()) {
193
+ const linkname = fs.readlinkSync(fullPath);
194
+ pack.entry({
195
+ name: tarPath,
196
+ type: 'symlink',
197
+ linkname,
198
+ mode: 0o777,
199
+ mtime: stats.mtime,
200
+ }, () => { });
201
+ }
202
+ else if (stats.isFile()) {
203
+ const data = fs.readFileSync(fullPath);
204
+ pack.entry({
205
+ name: tarPath,
206
+ type: 'file',
207
+ mode: stats.mode & 0o777,
208
+ size: data.length,
209
+ mtime: stats.mtime,
210
+ }, data);
211
+ }
212
+ }
213
+ }
214
+ /**
215
+ * Copy a file or directory from the host to the container.
216
+ */
217
+ export async function copyToContainer(container, hostPath, containerPath) {
218
+ try {
219
+ const absoluteHostPath = validateHostPath(hostPath);
220
+ putContainerLog('info', `Copying from host:${absoluteHostPath} to container:${containerPath}`, undefined, 'copy');
221
+ putSystemMessage(`📦 Copying from host:${absoluteHostPath} to container:${containerPath}`);
222
+ const pack = tar.pack();
223
+ const stats = fs.statSync(absoluteHostPath);
224
+ if (stats.isDirectory()) {
225
+ addDirectoryToPack(pack, absoluteHostPath, '');
226
+ }
227
+ else if (!isIgnoredPath(absoluteHostPath)) {
228
+ pack.entry({ name: path.basename(absoluteHostPath) }, fs.readFileSync(absoluteHostPath));
229
+ }
230
+ pack.finalize();
231
+ await container.putArchive(pack, { path: containerPath });
232
+ putContainerLog('success', `Successfully copied to container.`, undefined, 'copy');
233
+ putSystemMessage(`✅ Successfully copied to container.`);
234
+ }
235
+ catch (error) {
236
+ const errorMessage = error instanceof Error ? error.message : String(error);
237
+ putContainerLog('error', `Failed to copy to container: ${errorMessage}`, undefined, 'copy');
238
+ putSystemMessage(`❌ Failed to copy to container: ${errorMessage}`);
239
+ throw error;
240
+ }
241
+ }
242
+ /**
243
+ * Lists the files within a container archive without extracting them.
244
+ */
245
+ export async function listFilesInContainerArchive(container, containerPath) {
246
+ const entries = [];
247
+ try {
248
+ const stream = await container.getArchive({ path: containerPath });
249
+ const extract = tar.extract();
250
+ extract.on('entry', (header, stream, next) => {
251
+ if (header.type === 'file' || header.type === 'directory') {
252
+ entries.push({
253
+ name: header.name,
254
+ type: header.type,
255
+ });
256
+ }
257
+ stream.on('end', () => next());
258
+ stream.resume(); // Discard the stream's data
259
+ });
260
+ await new Promise((resolve, reject) => {
261
+ extract.on('finish', resolve);
262
+ extract.on('error', reject);
263
+ stream.pipe(extract);
264
+ });
265
+ putContainerLog('debug', `Listed ${entries.length} entries in archive at: ${containerPath}`, undefined, 'copy');
266
+ return entries;
267
+ }
268
+ catch (error) {
269
+ // If the path doesn't exist, getArchive throws an error. Return an empty list.
270
+ return [];
271
+ }
272
+ }
273
+ /**
274
+ * Extracts a tar stream to a specified directory, with path validation.
275
+ * @param tarStream The readable tar stream.
276
+ * @param destinationHostPath The absolute path on the host to extract files to.
277
+ * @param pathValidator A function to validate each file path before writing.
278
+ */
279
+ export async function extractTarStreamToDirectory(tarStream, destinationHostPath, pathValidator) {
280
+ const extract = tar.extract();
281
+ extract.on('entry', (header, stream, next) => {
282
+ const filePath = path.join(destinationHostPath, header.name);
283
+ const dir = path.dirname(filePath);
284
+ if (!pathValidator(filePath)) {
285
+ const errorMessage = `Refusing to write outside project root: ${filePath}`;
286
+ putContainerLog('error', errorMessage, undefined, 'copy');
287
+ // Pass an error to next() to stop the extraction process
288
+ stream.on('end', () => next(new Error(errorMessage)));
289
+ stream.resume();
290
+ return;
291
+ }
292
+ if (header.type === 'directory') {
293
+ if (!fs.existsSync(filePath)) {
294
+ fs.mkdirSync(filePath, { recursive: true });
295
+ }
296
+ stream.on('end', () => next());
297
+ stream.resume();
298
+ return;
299
+ }
300
+ // Ensure directory exists for the file
301
+ if (!fs.existsSync(dir)) {
302
+ fs.mkdirSync(dir, { recursive: true });
303
+ }
304
+ const writeStream = fs.createWriteStream(filePath);
305
+ stream.pipe(writeStream);
306
+ writeStream.on('finish', () => next());
307
+ writeStream.on('error', (err) => {
308
+ console.error(`Error writing file ${filePath}:`, err);
309
+ next(err); // Pass error to tar-stream
310
+ });
311
+ stream.on('error', (err) => {
312
+ console.error(`Error in tar stream for ${filePath}:`, err);
313
+ next(err); // Pass error to tar-stream
314
+ });
315
+ });
316
+ return new Promise((resolve, reject) => {
317
+ tarStream.on('error', reject);
318
+ extract.on('finish', resolve);
319
+ extract.on('error', reject);
320
+ tarStream.pipe(extract);
321
+ });
322
+ }
323
+ /**
324
+ * Copy a file or directory from the container to the host.
325
+ */
326
+ export async function copyFromContainer(container, containerPath, hostPath) {
327
+ try {
328
+ const absoluteHostPath = validateHostPath(hostPath);
329
+ putContainerLog('info', `Copying from container:${containerPath} to host:${absoluteHostPath}`, undefined, 'copy');
330
+ putSystemMessage(`📦 Copying from container:${containerPath} to host:${absoluteHostPath}`);
331
+ const stream = await container.getArchive({ path: containerPath });
332
+ await extractTarStreamToDirectory(stream, absoluteHostPath, isProjectPath);
333
+ putContainerLog('success', 'Successfully copied from container.', undefined, 'copy');
334
+ putSystemMessage(`✅ Successfully copied from container.`);
335
+ }
336
+ catch (error) {
337
+ const errorMessage = error instanceof Error ? error.message : String(error);
338
+ putContainerLog('error', `Failed to copy from container: ${errorMessage}`, undefined, 'copy');
339
+ putSystemMessage(`❌ Failed to copy from container: ${errorMessage}`);
340
+ throw error;
341
+ }
342
+ }
343
+ export async function checkPathExistsInContainer(container, containerPath) {
344
+ const check = await executeCommand(container, '/bin/sh', `ls ${containerPath}`, '', '/');
345
+ return check.exitCode === 0;
346
+ }
347
+ export async function getFileContentFromContainer(container, filePath) {
348
+ const { output, exitCode } = await executeCommand(container, '/bin/sh', `cat "${filePath}"`, '', '/');
349
+ if (exitCode !== 0) {
350
+ // If cat fails, it might be because the file doesn't exist, which is a valid case for patching (creating a new file).
351
+ if (output.includes('No such file or directory')) {
352
+ return '';
353
+ }
354
+ throw new Error(`Failed to read file content: ${output}`);
355
+ }
356
+ return output;
357
+ }
358
+ //# sourceMappingURL=docker-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker-utils.js","sourceRoot":"","sources":["../../../../../../../src/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { PromptItem } from '../../../../ai-service/common-types.js';
2
+ import { CodegenOptions } from '../../../../main/codegen-types.js';
3
+ /**
4
+ * Checks if a file's content is already provided in the conversation history
5
+ * @param filePath The path of the file to check
6
+ * @param prompt The conversation history
7
+ * @returns true if the file content is already available in the history
8
+ */
9
+ export declare function isFileContentAlreadyProvided(filePath: string, prompt: PromptItem[]): boolean;
10
+ /**
11
+ * Categorizes requested files into legitimate and illegitimate files
12
+ * @param requestedFiles Array of file paths to categorize
13
+ * @returns Object containing arrays of legitimate and illegitimate file paths
14
+ */
15
+ export declare function categorizeLegitimateFiles(requestedFiles: string[]): {
16
+ legitimateFiles: string[];
17
+ illegitimateFiles: string[];
18
+ };
19
+ /**
20
+ * Checks if a file path is legitimate (exists in the source files)
21
+ * @param filePath The path of the file to check
22
+ * @returns true if the file path is legitimate
23
+ */
24
+ export declare function isFilePathLegitimate(filePath: string): boolean;
25
+ /**
26
+ * Process file requests by checking if they are already provided and categorizing them
27
+ * @param requestedFiles Array of file paths to process
28
+ * @param prompt The conversation history
29
+ * @param options Codegen options
30
+ * @returns Processed file request information
31
+ */
32
+ export declare function processFileRequests(requestedFiles: string[], prompt: PromptItem[], options: CodegenOptions): {
33
+ requestedFiles: string[];
34
+ alreadyProvidedFiles: string[];
35
+ legitimateFiles: string[];
36
+ illegitimateFiles: string[];
37
+ };
38
+ /**
39
+ * Generate a user-friendly message about file processing status
40
+ * @param alreadyProvidedFiles Files already provided in conversation
41
+ * @param requestedFiles Files that were requested
42
+ * @param legitimateFiles Files that are legitimate and will be processed
43
+ * @param illegitimateFiles Files that are not legitimate
44
+ * @param type Type of content being provided ('content' or 'fragments')
45
+ * @returns A formatted message string
46
+ */
47
+ export declare function generateFilesContentPrompt(alreadyProvidedFiles: string[], requestedFiles: string[], legitimateFiles: string[], illegitimateFiles: string[], type: 'content' | 'fragments'): string;
@@ -0,0 +1,114 @@
1
+ import { getSourceFiles } from '../../../../files/find-files.js';
2
+ import { refreshFiles } from '../../../../files/find-files.js';
3
+ import { getExpandedContextPaths } from '../../../../files/source-code-utils.js';
4
+ import { putSystemMessage } from '../../../../main/common/content-bus.js';
5
+ /**
6
+ * Checks if a file's content is already provided in the conversation history
7
+ * @param filePath The path of the file to check
8
+ * @param prompt The conversation history
9
+ * @returns true if the file content is already available in the history
10
+ */
11
+ export function isFileContentAlreadyProvided(filePath, prompt) {
12
+ return prompt.some((item) => {
13
+ if (item.type !== 'user' || !item.functionResponses) {
14
+ return false;
15
+ }
16
+ return item.functionResponses.some((response) => {
17
+ if (response.name !== 'getSourceCode' || !response.content) {
18
+ return false;
19
+ }
20
+ try {
21
+ const sourceCodeMap = JSON.parse(response.content);
22
+ return (sourceCodeMap[filePath] &&
23
+ sourceCodeMap[filePath] &&
24
+ 'content' in sourceCodeMap[filePath] &&
25
+ sourceCodeMap[filePath].content !== null);
26
+ }
27
+ catch (error) {
28
+ console.warn('Error parsing getSourceCode response:', error);
29
+ return false;
30
+ }
31
+ });
32
+ });
33
+ }
34
+ /**
35
+ * Categorizes requested files into legitimate and illegitimate files
36
+ * @param requestedFiles Array of file paths to categorize
37
+ * @returns Object containing arrays of legitimate and illegitimate file paths
38
+ */
39
+ export function categorizeLegitimateFiles(requestedFiles) {
40
+ const legitimateFiles = [];
41
+ const illegitimateFiles = [];
42
+ requestedFiles.forEach((filePath) => {
43
+ if (isFilePathLegitimate(filePath)) {
44
+ legitimateFiles.push(filePath);
45
+ }
46
+ else {
47
+ illegitimateFiles.push(filePath);
48
+ }
49
+ });
50
+ return { legitimateFiles, illegitimateFiles };
51
+ }
52
+ /**
53
+ * Checks if a file path is legitimate (exists in the source files)
54
+ * @param filePath The path of the file to check
55
+ * @returns true if the file path is legitimate
56
+ */
57
+ export function isFilePathLegitimate(filePath) {
58
+ return getSourceFiles().includes(filePath);
59
+ }
60
+ /**
61
+ * Process file requests by checking if they are already provided and categorizing them
62
+ * @param requestedFiles Array of file paths to process
63
+ * @param prompt The conversation history
64
+ * @param options Codegen options
65
+ * @returns Processed file request information
66
+ */
67
+ export function processFileRequests(requestedFiles, prompt, options) {
68
+ // Expand context paths
69
+ requestedFiles = getExpandedContextPaths(requestedFiles, options);
70
+ // Check which files are already provided in the conversation history
71
+ const alreadyProvidedFiles = requestedFiles.filter((file) => isFileContentAlreadyProvided(file, prompt));
72
+ // Filter out already provided files
73
+ requestedFiles = requestedFiles.filter((file) => !isFileContentAlreadyProvided(file, prompt));
74
+ // Refresh files in case new files appeared
75
+ refreshFiles();
76
+ // Categorize files into legitimate and illegitimate
77
+ const { legitimateFiles, illegitimateFiles } = categorizeLegitimateFiles(requestedFiles);
78
+ putSystemMessage('Processing file requests', {
79
+ requestedFiles,
80
+ alreadyProvidedFiles,
81
+ legitimateFiles,
82
+ illegitimateFiles,
83
+ });
84
+ return {
85
+ requestedFiles,
86
+ alreadyProvidedFiles,
87
+ legitimateFiles,
88
+ illegitimateFiles,
89
+ };
90
+ }
91
+ /**
92
+ * Generate a user-friendly message about file processing status
93
+ * @param alreadyProvidedFiles Files already provided in conversation
94
+ * @param requestedFiles Files that were requested
95
+ * @param legitimateFiles Files that are legitimate and will be processed
96
+ * @param illegitimateFiles Files that are not legitimate
97
+ * @param type Type of content being provided ('content' or 'fragments')
98
+ * @returns A formatted message string
99
+ */
100
+ export function generateFilesContentPrompt(alreadyProvidedFiles, requestedFiles, legitimateFiles, illegitimateFiles, type) {
101
+ return ((alreadyProvidedFiles.length > 0
102
+ ? `Some files were already provided in the conversation history:
103
+ ${alreadyProvidedFiles.map((path) => `- ${path}`).join('\n')}
104
+
105
+ Providing ${type} for the remaining files:
106
+ ${requestedFiles.map((path) => `- ${path}`).join('\n')}`
107
+ : `All requested file ${type} have been provided:
108
+ ${legitimateFiles.map((path) => `- ${path}`).join('\n')}`) +
109
+ (illegitimateFiles.length > 0
110
+ ? `\n\nSome files are not legitimate and their ${type} cannot be provided:
111
+ ${illegitimateFiles.map((path) => `- ${path}`).join('\n')}`
112
+ : ''));
113
+ }
114
+ //# sourceMappingURL=file-request-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-request-utils.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/file-request-utils.ts"],"names":[],"mappings":"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"}