genaicode 0.14.2 → 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 (253) hide show
  1. package/dist/ai-service/ai-studio.d.ts +2 -18
  2. package/dist/ai-service/ai-studio.js +87 -31
  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/index.d.ts +1 -1
  30. package/dist/index.js +1 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/main/codegen-types.d.ts +2 -2
  33. package/dist/main/common/content-bus-types.d.ts +14 -0
  34. package/dist/main/common/content-bus.d.ts +1 -1
  35. package/dist/main/common/content-bus.js +21 -3
  36. package/dist/main/common/content-bus.js.map +1 -1
  37. package/dist/main/common/user-actions.d.ts +1 -1
  38. package/dist/main/config-types.d.ts +0 -3
  39. package/dist/main/config-types.js.map +1 -1
  40. package/dist/main/config.js +1 -1
  41. package/dist/main/config.js.map +1 -1
  42. package/dist/main/plugin-loader.d.ts +1 -1
  43. package/dist/main/ui/backend/endpoints/config-endpoint.js +1 -1
  44. package/dist/main/ui/backend/endpoints/config-endpoint.js.map +1 -1
  45. package/dist/main/ui/backend/endpoints/edit-message-endpoint.js +9 -6
  46. package/dist/main/ui/backend/endpoints/edit-message-endpoint.js.map +1 -1
  47. package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js +1 -1
  48. package/dist/main/ui/backend/endpoints/interrupt-execution-endpoint.js.map +1 -1
  49. package/dist/main/ui/backend/service.d.ts +4 -4
  50. package/dist/main/ui/backend/service.js +49 -27
  51. package/dist/main/ui/backend/service.js.map +1 -1
  52. package/dist/main/ui/common/api-types.d.ts +1 -2
  53. package/dist/main/ui/common/api-types.js.map +1 -1
  54. package/dist/main/ui/frontend/assets/index-DAM_kJhM.js +3445 -0
  55. package/dist/main/ui/frontend/index.html +1 -1
  56. package/dist/prompt/function-calling.js +4 -5
  57. package/dist/prompt/function-calling.js.map +1 -1
  58. package/dist/prompt/function-defs/code-execution.d.ts +7 -0
  59. package/dist/prompt/function-defs/code-execution.js +27 -0
  60. package/dist/prompt/function-defs/code-execution.js.map +1 -0
  61. package/dist/prompt/function-defs/conversation-graph.d.ts +1 -1
  62. package/dist/prompt/function-defs/conversation-graph.js +1 -1
  63. package/dist/prompt/function-defs/conversation-graph.js.map +1 -1
  64. package/dist/prompt/function-defs/iterate.d.ts +20 -0
  65. package/dist/prompt/function-defs/iterate.js +373 -0
  66. package/dist/prompt/function-defs/iterate.js.map +1 -0
  67. package/dist/prompt/prompt-service.js +6 -6
  68. package/dist/prompt/prompt-service.js.map +1 -1
  69. package/dist/prompt/steps/step-codegen-planning.js +6 -2
  70. package/dist/prompt/steps/step-codegen-planning.js.map +1 -1
  71. package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.d.ts +7 -0
  72. package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.js +301 -0
  73. package/dist/prompt/steps/step-iterate/handlers/container-task/command-execution-loop.js.map +1 -0
  74. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.d.ts +4 -0
  75. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.js +49 -0
  76. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/complete-task.js.map +1 -0
  77. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.d.ts +4 -0
  78. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.js +190 -0
  79. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-from-container.js.map +1 -0
  80. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.d.ts +4 -0
  81. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.js +139 -0
  82. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/copy-to-container.js.map +1 -0
  83. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.d.ts +10 -0
  84. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.js +93 -0
  85. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/edit-file.js.map +1 -0
  86. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.d.ts +4 -0
  87. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.js +72 -0
  88. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/fail-task.js.map +1 -0
  89. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.d.ts +10 -0
  90. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.js +125 -0
  91. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/gain-knowledge.js.map +1 -0
  92. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.d.ts +19 -0
  93. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.js +33 -0
  94. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/interrupt-controller.js.map +1 -0
  95. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.d.ts +8 -0
  96. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.js +85 -0
  97. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/query-knowledge.js.map +1 -0
  98. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.d.ts +6 -0
  99. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.js +122 -0
  100. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/request-secret.js.map +1 -0
  101. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.d.ts +7 -0
  102. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.js +146 -0
  103. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/run-command.js.map +1 -0
  104. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.d.ts +4 -0
  105. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.js +56 -0
  106. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/send-message.js.map +1 -0
  107. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.d.ts +4 -0
  108. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.js +56 -0
  109. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/set-execution-plan.js.map +1 -0
  110. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.d.ts +4 -0
  111. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.js +39 -0
  112. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/update-execution-plan.js.map +1 -0
  113. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.d.ts +10 -0
  114. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.js +95 -0
  115. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/view-file.js.map +1 -0
  116. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.d.ts +2 -0
  117. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.js +96 -0
  118. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/web-search.js.map +1 -0
  119. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.d.ts +4 -0
  120. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.js +123 -0
  121. package/dist/prompt/steps/step-iterate/handlers/container-task/commands/wrap-context.js.map +1 -0
  122. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.d.ts +11 -0
  123. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.js +50 -0
  124. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-registry.js.map +1 -0
  125. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.d.ts +28 -0
  126. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.js +2 -0
  127. package/dist/prompt/steps/step-iterate/handlers/container-task/container-commands-types.js.map +1 -0
  128. package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.d.ts +2 -0
  129. package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.js +202 -0
  130. package/dist/prompt/steps/step-iterate/handlers/container-task/container-task-orchestrator.js.map +1 -0
  131. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.d.ts +4 -0
  132. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.js +15 -0
  133. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-check.js.map +1 -0
  134. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.d.ts +50 -0
  135. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.js +358 -0
  136. package/dist/prompt/steps/step-iterate/handlers/container-task/utils/docker-utils.js.map +1 -0
  137. package/dist/prompt/steps/step-iterate/handlers/file-request-utils.d.ts +47 -0
  138. package/dist/prompt/steps/step-iterate/handlers/file-request-utils.js +114 -0
  139. package/dist/prompt/steps/step-iterate/handlers/file-request-utils.js.map +1 -0
  140. package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.d.ts +1 -0
  141. package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.js +133 -0
  142. package/dist/prompt/steps/step-iterate/handlers/handle-code-execution.js.map +1 -0
  143. package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.d.ts +4 -0
  144. package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.js +177 -0
  145. package/dist/prompt/steps/step-iterate/handlers/handle-code-generation.js.map +1 -0
  146. package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.d.ts +20 -0
  147. package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.js +305 -0
  148. package/dist/prompt/steps/step-iterate/handlers/handle-compound-action.js.map +1 -0
  149. package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.d.ts +2 -0
  150. package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.js +40 -0
  151. package/dist/prompt/steps/step-iterate/handlers/handle-confirm-code-generation.js.map +1 -0
  152. package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.d.ts +2 -0
  153. package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.js +35 -0
  154. package/dist/prompt/steps/step-iterate/handlers/handle-context-compression.js.map +1 -0
  155. package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.d.ts +2 -0
  156. package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.js +34 -0
  157. package/dist/prompt/steps/step-iterate/handlers/handle-context-optimization.js.map +1 -0
  158. package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.d.ts +11 -0
  159. package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.js +503 -0
  160. package/dist/prompt/steps/step-iterate/handlers/handle-conversation-graph.js.map +1 -0
  161. package/dist/prompt/steps/step-iterate/handlers/handle-create-file.d.ts +2 -0
  162. package/dist/prompt/steps/step-iterate/handlers/handle-create-file.js +159 -0
  163. package/dist/prompt/steps/step-iterate/handlers/handle-create-file.js.map +1 -0
  164. package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.d.ts +2 -0
  165. package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.js +30 -0
  166. package/dist/prompt/steps/step-iterate/handlers/handle-end-conversation.js.map +1 -0
  167. package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.d.ts +2 -0
  168. package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.js +280 -0
  169. package/dist/prompt/steps/step-iterate/handlers/handle-explore-external-directories.js.map +1 -0
  170. package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.d.ts +8 -0
  171. package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.js +105 -0
  172. package/dist/prompt/steps/step-iterate/handlers/handle-genaicode-help.js.map +1 -0
  173. package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.d.ts +2 -0
  174. package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.js +110 -0
  175. package/dist/prompt/steps/step-iterate/handlers/handle-generate-image.js.map +1 -0
  176. package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.d.ts +6 -0
  177. package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.js +110 -0
  178. package/dist/prompt/steps/step-iterate/handlers/handle-perform-analysis.js.map +1 -0
  179. package/dist/prompt/steps/step-iterate/handlers/handle-project-command.d.ts +2 -0
  180. package/dist/prompt/steps/step-iterate/handlers/handle-project-command.js +280 -0
  181. package/dist/prompt/steps/step-iterate/handlers/handle-project-command.js.map +1 -0
  182. package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.d.ts +9 -0
  183. package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.js +94 -0
  184. package/dist/prompt/steps/step-iterate/handlers/handle-pull-app-context.js.map +1 -0
  185. package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.d.ts +2 -0
  186. package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.js +174 -0
  187. package/dist/prompt/steps/step-iterate/handlers/handle-pull-console-logs.js.map +1 -0
  188. package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.d.ts +9 -0
  189. package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.js +104 -0
  190. package/dist/prompt/steps/step-iterate/handlers/handle-push-app-context.js.map +1 -0
  191. package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.d.ts +2 -0
  192. package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.js +149 -0
  193. package/dist/prompt/steps/step-iterate/handlers/handle-read-external-files.js.map +1 -0
  194. package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.d.ts +7 -0
  195. package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.js +119 -0
  196. package/dist/prompt/steps/step-iterate/handlers/handle-reasoning-inference.js.map +1 -0
  197. package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.d.ts +2 -0
  198. package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.js +100 -0
  199. package/dist/prompt/steps/step-iterate/handlers/handle-remove-files-from-context.js.map +1 -0
  200. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.d.ts +8 -0
  201. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.js +146 -0
  202. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-content.js.map +1 -0
  203. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.d.ts +8 -0
  204. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.js +197 -0
  205. package/dist/prompt/steps/step-iterate/handlers/handle-request-files-fragments.js.map +1 -0
  206. package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.d.ts +3 -0
  207. package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.js +251 -0
  208. package/dist/prompt/steps/step-iterate/handlers/handle-request-git-context.js.map +1 -0
  209. package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.d.ts +2 -0
  210. package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.js +83 -0
  211. package/dist/prompt/steps/step-iterate/handlers/handle-request-permissions.js.map +1 -0
  212. package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.d.ts +2 -0
  213. package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.js +185 -0
  214. package/dist/prompt/steps/step-iterate/handlers/handle-run-bash-command.js.map +1 -0
  215. package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.d.ts +2 -0
  216. package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.js +7 -0
  217. package/dist/prompt/steps/step-iterate/handlers/handle-run-container-task.js.map +1 -0
  218. package/dist/prompt/steps/step-iterate/handlers/handle-search-code.d.ts +2 -0
  219. package/dist/prompt/steps/step-iterate/handlers/handle-search-code.js +96 -0
  220. package/dist/prompt/steps/step-iterate/handlers/handle-search-code.js.map +1 -0
  221. package/dist/prompt/steps/step-iterate/handlers/handle-send-message.d.ts +2 -0
  222. package/dist/prompt/steps/step-iterate/handlers/handle-send-message.js +21 -0
  223. package/dist/prompt/steps/step-iterate/handlers/handle-send-message.js.map +1 -0
  224. package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.d.ts +1 -0
  225. package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.js +72 -0
  226. package/dist/prompt/steps/step-iterate/handlers/handle-structured-question.js.map +1 -0
  227. package/dist/prompt/steps/step-iterate/handlers/handle-update-file.d.ts +2 -0
  228. package/dist/prompt/steps/step-iterate/handlers/handle-update-file.js +161 -0
  229. package/dist/prompt/steps/step-iterate/handlers/handle-update-file.js.map +1 -0
  230. package/dist/prompt/steps/step-iterate/handlers/handle-web-search.d.ts +1 -0
  231. package/dist/prompt/steps/step-iterate/handlers/handle-web-search.js +85 -0
  232. package/dist/prompt/steps/step-iterate/handlers/handle-web-search.js.map +1 -0
  233. package/dist/prompt/steps/step-iterate/iterate-handler.d.ts +4 -0
  234. package/dist/prompt/steps/step-iterate/iterate-handler.js +14 -0
  235. package/dist/prompt/steps/step-iterate/iterate-handler.js.map +1 -0
  236. package/dist/prompt/steps/step-iterate/step-iterate-handlers.d.ts +3 -0
  237. package/dist/prompt/steps/step-iterate/step-iterate-handlers.js +5 -0
  238. package/dist/prompt/steps/step-iterate/step-iterate-handlers.js.map +1 -0
  239. package/dist/prompt/steps/step-iterate/step-iterate-types.d.ts +255 -0
  240. package/dist/prompt/steps/step-iterate/step-iterate-types.js +2 -0
  241. package/dist/prompt/steps/step-iterate/step-iterate-types.js.map +1 -0
  242. package/dist/prompt/steps/step-iterate/step-iterate.d.ts +37 -0
  243. package/dist/prompt/steps/step-iterate/step-iterate.js +132 -0
  244. package/dist/prompt/steps/step-iterate/step-iterate.js.map +1 -0
  245. package/dist/prompt/systemprompt.js +6 -6
  246. package/dist/prompt/systemprompt.js.map +1 -1
  247. package/dist/vite-genaicode/console-interceptor.d.ts +19 -6
  248. package/dist/vite-genaicode/console-interceptor.js +45 -13
  249. package/dist/vite-genaicode/console-interceptor.js.map +1 -1
  250. package/dist/vite-genaicode/vite-genaicode-frontend.js +1 -1
  251. package/dist/vite-genaicode/vite-genaicode-frontend.js.map +1 -1
  252. package/package.json +7 -6
  253. package/dist/main/ui/frontend/assets/index-We_MLSaC.js +0 -3405
@@ -0,0 +1,2 @@
1
+ import { ActionHandlerProps, ActionResult } from '../step-iterate-types.js';
2
+ export declare function handlePullConsoleLogs({ iterateCall, generateContentFn, prompt, options, }: ActionHandlerProps): Promise<ActionResult>;
@@ -0,0 +1,174 @@
1
+ import { ModelType, } from '../../../../ai-service/common-types.js';
2
+ import { getContextValue } from '../../../../main/common/app-context-bus.js';
3
+ import { getFunctionDefs } from '../../../function-calling.js';
4
+ import { registerActionHandler } from '../step-iterate-handlers.js';
5
+ import { putSystemMessage } from '../../../../main/common/content-bus.js';
6
+ const MAX_OUTPUT_LENGTH = 2000;
7
+ registerActionHandler('pullConsoleLogs', handlePullConsoleLogs);
8
+ export async function handlePullConsoleLogs({ iterateCall, generateContentFn, prompt, options, }) {
9
+ const pullConsoleLogsCall = await generatePullConsoleLogsCall(generateContentFn, prompt, iterateCall, options, ModelType.CHEAP);
10
+ putSystemMessage('Retrieving console logs', { ...pullConsoleLogsCall?.args });
11
+ if (!pullConsoleLogsCall?.args) {
12
+ return {
13
+ breakLoop: false,
14
+ items: [],
15
+ };
16
+ }
17
+ const { mode, lines = 20, level, prompt: summaryPrompt } = pullConsoleLogsCall.args;
18
+ const logs = await getContextValue('__console_logs');
19
+ if (!logs || logs.length === 0) {
20
+ return {
21
+ breakLoop: false,
22
+ items: [
23
+ {
24
+ assistant: {
25
+ type: 'assistant',
26
+ text: 'I will retrieve the console logs.',
27
+ functionCalls: [pullConsoleLogsCall],
28
+ },
29
+ user: {
30
+ type: 'user',
31
+ functionResponses: [
32
+ {
33
+ name: 'pullConsoleLogs',
34
+ call_id: pullConsoleLogsCall.id,
35
+ content: 'No console logs have been captured from the application.',
36
+ },
37
+ ],
38
+ },
39
+ },
40
+ ],
41
+ };
42
+ }
43
+ let filteredLogs = logs;
44
+ if (level) {
45
+ filteredLogs = logs.filter((log) => log.level === level);
46
+ }
47
+ if (filteredLogs.length === 0) {
48
+ return {
49
+ breakLoop: false,
50
+ items: [
51
+ {
52
+ assistant: {
53
+ type: 'assistant',
54
+ text: `I will retrieve the console logs with level '${level}'.`,
55
+ functionCalls: [pullConsoleLogsCall],
56
+ },
57
+ user: {
58
+ type: 'user',
59
+ functionResponses: [
60
+ {
61
+ name: 'pullConsoleLogs',
62
+ call_id: pullConsoleLogsCall.id,
63
+ content: `No console logs found with level '${level}'.`,
64
+ },
65
+ ],
66
+ },
67
+ },
68
+ ],
69
+ };
70
+ }
71
+ let content = '';
72
+ switch (mode) {
73
+ case 'prefix':
74
+ content = filteredLogs.slice(0, lines).map(formatLogEntry).join('\n');
75
+ break;
76
+ case 'suffix':
77
+ content = filteredLogs.slice(-lines).map(formatLogEntry).join('\n');
78
+ break;
79
+ case 'summary': {
80
+ const allLogs = filteredLogs.map(formatLogEntry).join('\n');
81
+ content = await summarizeConsoleLogs(allLogs, summaryPrompt, generateContentFn, options);
82
+ break;
83
+ }
84
+ }
85
+ return {
86
+ breakLoop: false,
87
+ items: [
88
+ {
89
+ assistant: {
90
+ type: 'assistant',
91
+ text: `I will retrieve the console logs (mode: ${mode}).`,
92
+ functionCalls: [pullConsoleLogsCall],
93
+ },
94
+ user: {
95
+ type: 'user',
96
+ functionResponses: [
97
+ {
98
+ name: 'pullConsoleLogs',
99
+ call_id: pullConsoleLogsCall.id,
100
+ content: content || 'No logs to display with the given criteria.',
101
+ },
102
+ ],
103
+ },
104
+ },
105
+ ],
106
+ };
107
+ }
108
+ function formatLogEntry(entry) {
109
+ const date = new Date(entry.timestamp).toISOString();
110
+ return `[${date}] [${entry.level.toUpperCase()}] ${entry.message}`;
111
+ }
112
+ async function generatePullConsoleLogsCall(generateContentFn, prompt, iterateCall, options, modelType) {
113
+ const req = [
114
+ [
115
+ ...prompt,
116
+ {
117
+ type: 'assistant',
118
+ text: iterateCall.args?.message ?? 'I need to check the console logs.',
119
+ },
120
+ {
121
+ type: 'user',
122
+ text: 'Yes, you can pull the console logs.',
123
+ },
124
+ ],
125
+ {
126
+ functionDefs: getFunctionDefs(),
127
+ requiredFunctionName: 'pullConsoleLogs',
128
+ temperature: 0.7,
129
+ modelType,
130
+ expectedResponseType: {
131
+ text: false,
132
+ functionCall: true,
133
+ media: false,
134
+ },
135
+ },
136
+ options,
137
+ ];
138
+ const [pullConsoleLogsCall] = (await generateContentFn(...req))
139
+ .filter((item) => item.type === 'functionCall')
140
+ .map((item) => item.functionCall);
141
+ return pullConsoleLogsCall;
142
+ }
143
+ async function summarizeConsoleLogs(logs, prompt, generateContentFn, options) {
144
+ if (logs.length <= MAX_OUTPUT_LENGTH) {
145
+ return logs;
146
+ }
147
+ const summaryPrompt = [
148
+ {
149
+ type: 'user',
150
+ text: `Please summarize the following console logs:\n\n---\n\n<logs>${logs}</logs>`,
151
+ },
152
+ ];
153
+ if (prompt) {
154
+ summaryPrompt[0].text += `\n\nAdditional instructions: ${prompt}`;
155
+ }
156
+ const summaryRequest = [
157
+ summaryPrompt,
158
+ {
159
+ modelType: ModelType.LITE,
160
+ expectedResponseType: { text: true, functionCall: false, media: false },
161
+ },
162
+ options,
163
+ ];
164
+ const summaryResult = await generateContentFn(...summaryRequest);
165
+ const summaryText = summaryResult.find((part) => part.type === 'text')?.text;
166
+ if (!summaryText) {
167
+ putSystemMessage('Failed to summarize console logs, returning truncated version.');
168
+ // Return first MAX_OUTPUT_LENGTH characters as fallback
169
+ return logs.substring(0, MAX_OUTPUT_LENGTH);
170
+ }
171
+ putSystemMessage('Console logs summarized successfully.', { summaryText });
172
+ return summaryText;
173
+ }
174
+ //# sourceMappingURL=handle-pull-console-logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-pull-console-logs.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-pull-console-logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ActionResult, ActionHandlerProps } from '../step-iterate-types.js';
2
+ /**
3
+ * Handler for pushAppContext action
4
+ * Updates context value in the content-bus system with proper validation and error handling
5
+ *
6
+ * @param props Action handler properties containing the function call
7
+ * @returns ActionResult with the updated context value and conversation items
8
+ */
9
+ export declare function handlePushAppContext({ generateContentFn, prompt, options, }: ActionHandlerProps): Promise<ActionResult>;
@@ -0,0 +1,104 @@
1
+ import { ModelType } from '../../../../ai-service/common-types.js';
2
+ import { setContextValue } from '../../../../main/common/app-context-bus.js';
3
+ import { putSystemMessage } from '../../../../main/common/content-bus.js';
4
+ import { getFunctionDefs } from '../../../function-calling.js';
5
+ import { registerActionHandler } from '../step-iterate-handlers.js';
6
+ registerActionHandler('pushAppContext', handlePushAppContext);
7
+ /**
8
+ * Handler for pushAppContext action
9
+ * Updates context value in the content-bus system with proper validation and error handling
10
+ *
11
+ * @param props Action handler properties containing the function call
12
+ * @returns ActionResult with the updated context value and conversation items
13
+ */
14
+ export async function handlePushAppContext({ generateContentFn, prompt, options, }) {
15
+ putSystemMessage('Updating context...');
16
+ const [pushAppContextCall] = (await generateContentFn(prompt, {
17
+ functionDefs: getFunctionDefs(),
18
+ requiredFunctionName: 'pushAppContext',
19
+ temperature: 0.7,
20
+ modelType: ModelType.CHEAP,
21
+ expectedResponseType: {
22
+ text: false,
23
+ functionCall: true,
24
+ media: false,
25
+ },
26
+ }, options))
27
+ .filter((item) => item.type === 'functionCall')
28
+ .map((item) => item.functionCall);
29
+ if (!pushAppContextCall?.args) {
30
+ putSystemMessage('Failed to get valid pushAppContext request');
31
+ return { breakLoop: false, items: [] };
32
+ }
33
+ const { key, reason } = pushAppContextCall.args;
34
+ let { value } = pushAppContextCall.args;
35
+ try {
36
+ // Validate input
37
+ if (!key) {
38
+ throw new Error('Context key is required');
39
+ }
40
+ if (value === undefined) {
41
+ throw new Error('Context value cannot be undefined');
42
+ }
43
+ try {
44
+ value = JSON.parse(value);
45
+ }
46
+ catch {
47
+ // ignore error
48
+ }
49
+ // Set context value using content-bus
50
+ // Note: setContextValue includes value validation internally
51
+ await setContextValue(key, value);
52
+ // Format success message
53
+ const updateInfo = `Successfully updated context key "${key}"`;
54
+ const reasonInfo = reason ? `\nReason for update: ${reason}` : '';
55
+ putSystemMessage('Context updated successfully.', {
56
+ contextKey: key,
57
+ contextValue: value,
58
+ reason,
59
+ operation: 'set',
60
+ });
61
+ prompt.push({
62
+ type: 'assistant',
63
+ text: `${updateInfo}${reasonInfo}`,
64
+ functionCalls: [pushAppContextCall],
65
+ }, {
66
+ type: 'user',
67
+ functionResponses: [{ name: 'pushAppContext', call_id: pushAppContextCall.id, content: '' }],
68
+ });
69
+ // Return the action result with update confirmation
70
+ return {
71
+ breakLoop: false,
72
+ items: [],
73
+ };
74
+ }
75
+ catch (error) {
76
+ // Handle any errors that occur during context update
77
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
78
+ putSystemMessage(`Error updating context: ${errorMessage}`);
79
+ prompt.push({
80
+ type: 'assistant',
81
+ functionCalls: [pushAppContextCall],
82
+ }, {
83
+ type: 'user',
84
+ text: 'Context update failed.',
85
+ functionResponses: [
86
+ {
87
+ name: 'pushAppContext',
88
+ call_id: pushAppContextCall.id,
89
+ content: JSON.stringify({
90
+ contextKey: key,
91
+ error: errorMessage,
92
+ reason,
93
+ operation: 'set',
94
+ }),
95
+ },
96
+ ],
97
+ });
98
+ return {
99
+ breakLoop: false,
100
+ items: [],
101
+ };
102
+ }
103
+ }
104
+ //# sourceMappingURL=handle-push-app-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-push-app-context.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-push-app-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,qBAAqB,CAAC,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;AAE9D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,iBAAiB,EACjB,MAAM,EACN,OAAO,GACY;IACnB,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IAExC,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAC3B,MAAM,iBAAiB,CACrB,MAAM,EACN;QACE,YAAY,EAAE,eAAe,EAAE;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,WAAW,EAAE,GAAG;QAChB,SAAS,EAAE,SAAS,CAAC,KAAK;QAC1B,oBAAoB,EAAE;YACpB,IAAI,EAAE,KAAK;YACX,YAAY,EAAE,IAAI;YAClB,KAAK,EAAE,KAAK;SACb;KACF,EACD,OAAO,CACR,CACF;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC;SAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAuC,CAAC;IAE1E,IAAI,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;QAC9B,gBAAgB,CAAC,4CAA4C,CAAC,CAAC;QAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACzC,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAChD,IAAI,EAAE,KAAK,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC;IAExC,IAAI,CAAC;QACH,iBAAiB;QACjB,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,eAAe;QACjB,CAAC;QAED,sCAAsC;QACtC,6DAA6D;QAC7D,MAAM,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAElC,yBAAyB;QACzB,MAAM,UAAU,GAAG,qCAAqC,GAAG,GAAG,CAAC;QAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,wBAAwB,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAElE,gBAAgB,CAAC,+BAA+B,EAAE;YAChD,UAAU,EAAE,GAAG;YACf,YAAY,EAAE,KAAK;YACnB,MAAM;YACN,SAAS,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CACT;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE;YAClC,aAAa,EAAE,CAAC,kBAAkB,CAAC;SACpC,EACD;YACE,IAAI,EAAE,MAAM;YACZ,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;SAC7F,CACF,CAAC;QAEF,oDAAoD;QACpD,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qDAAqD;QACrD,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACvF,gBAAgB,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QAE5D,MAAM,CAAC,IAAI,CACT;YACE,IAAI,EAAE,WAAW;YACjB,aAAa,EAAE,CAAC,kBAAkB,CAAC;SACpC,EACD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,wBAAwB;YAC9B,iBAAiB,EAAE;gBACjB;oBACE,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,kBAAkB,CAAC,EAAE;oBAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;wBACtB,UAAU,EAAE,GAAG;wBACf,KAAK,EAAE,YAAY;wBACnB,MAAM;wBACN,SAAS,EAAE,KAAK;qBACjB,CAAC;iBACH;aACF;SACF,CACF,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,EAAE;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ActionHandlerProps, ActionResult } from '../step-iterate-types.js';
2
+ export declare function handleReadExternalFiles({ iterateCall, options, generateContentFn, prompt, }: ActionHandlerProps): Promise<ActionResult>;
@@ -0,0 +1,149 @@
1
+ import path from 'path';
2
+ import { isAncestorDirectory } from '../../../../files/file-utils.js';
3
+ import { readFileContent } from '../../../../files/read-files.js';
4
+ import { askUserForConfirmation } from '../../../../main/common/user-actions.js';
5
+ import { putSystemMessage } from '../../../../main/common/content-bus.js';
6
+ import { ModelType } from '../../../../ai-service/common-types.js';
7
+ import { registerActionHandler } from '../step-iterate-handlers.js';
8
+ import { rcConfig } from '../../../../main/config.js';
9
+ import { readExternalFiles as readExternalFilesDef } from '../../../function-defs/read-external-files.js';
10
+ import { getFunctionDefs } from '../../../function-calling.js';
11
+ registerActionHandler('readExternalFiles', handleReadExternalFiles);
12
+ export async function handleReadExternalFiles({ iterateCall, options, generateContentFn, prompt, }) {
13
+ // 1. Infer arguments using LLM
14
+ let inferredCall;
15
+ let requestedFilePaths;
16
+ let reason;
17
+ let inferredCallId;
18
+ putSystemMessage('Generating arguments for reading external files action...');
19
+ try {
20
+ const inferencePrompt = [
21
+ ...prompt,
22
+ {
23
+ type: 'assistant',
24
+ text: iterateCall.args?.message ?? '',
25
+ },
26
+ {
27
+ type: 'user',
28
+ text: 'Given the following conversation, identify the file paths and the reason for reading those files.',
29
+ },
30
+ ];
31
+ const inferenceResult = await generateContentFn(inferencePrompt, {
32
+ modelType: ModelType.CHEAP,
33
+ functionDefs: getFunctionDefs(),
34
+ requiredFunctionName: readExternalFilesDef.name,
35
+ }, options);
36
+ inferredCall = inferenceResult.find((part) => part.type === 'functionCall')?.functionCall;
37
+ if (!inferredCall || !inferredCall.args) {
38
+ putSystemMessage('Could not infer arguments for readExternalFiles action from the assistant message and context.');
39
+ return { breakLoop: false, items: [] };
40
+ }
41
+ requestedFilePaths = inferredCall.args.externalFilePaths;
42
+ reason = inferredCall.args.reason;
43
+ inferredCallId = inferredCall.id;
44
+ putSystemMessage('Generated arguments for reading external files', inferredCall.args);
45
+ if (!requestedFilePaths || requestedFilePaths.length === 0 || !reason) {
46
+ putSystemMessage('Missing filePaths or reason after inferring arguments for readExternalFiles action.');
47
+ return { breakLoop: false, items: [] };
48
+ }
49
+ }
50
+ catch (error) {
51
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error during argument inference.';
52
+ putSystemMessage(`Error inferring arguments for readExternalFiles: ${errorMessage}`);
53
+ return { breakLoop: false, items: [] };
54
+ }
55
+ // 2. Classify files and prepare for batch confirmation
56
+ const fileResults = [];
57
+ const externalFilesToConfirm = [];
58
+ const internalFilesSkipped = [];
59
+ for (const filePath of requestedFilePaths) {
60
+ const absolutePath = path.resolve(filePath);
61
+ if (isAncestorDirectory(rcConfig.rootDir, absolutePath)) {
62
+ // File is inside the project root, skip
63
+ fileResults.push({
64
+ filePath: absolutePath,
65
+ result: 'skipped, because it is not an external file, it is inside the project root',
66
+ });
67
+ internalFilesSkipped.push(absolutePath);
68
+ }
69
+ else {
70
+ // File is external, add to confirmation list
71
+ externalFilesToConfirm.push(absolutePath);
72
+ }
73
+ }
74
+ // 3. Ask for batch confirmation if external files exist
75
+ let confirmed = false;
76
+ if (externalFilesToConfirm.length > 0) {
77
+ const confirmationMessage = `The AI wants to read the following external file(s):\n${externalFilesToConfirm.join('\n')}\n\nReason: ${reason}\n\nDo you allow reading these files? Only processed information relevant to the reason will be used, not the full content.`;
78
+ const confirmationResult = await askUserForConfirmation(confirmationMessage, false, options);
79
+ confirmed = confirmationResult.confirmed ?? false;
80
+ }
81
+ // 4. Process confirmed external files or mark as denied
82
+ if (confirmed) {
83
+ putSystemMessage('Reading external files...', externalFilesToConfirm);
84
+ for (const absolutePath of externalFilesToConfirm) {
85
+ try {
86
+ const content = readFileContent(absolutePath);
87
+ // Call LLM to process the content based on the reason
88
+ const processPrompt = [
89
+ {
90
+ type: 'user',
91
+ text: `Extract information relevant to the reason: '${reason}' from the following content:\n\nContent:\n\n${content}\n\n`,
92
+ },
93
+ ];
94
+ const processResult = await generateContentFn(processPrompt, { modelType: ModelType.CHEAP }, options);
95
+ const processedText = processResult.find((part) => part.type === 'text')?.text ?? 'Could not process content.';
96
+ fileResults.push({ filePath: absolutePath, result: processedText });
97
+ }
98
+ catch (error) {
99
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error during file reading or processing.';
100
+ putSystemMessage(`Error reading or processing external file ${absolutePath}: ${errorMessage}`);
101
+ fileResults.push({
102
+ filePath: absolutePath,
103
+ result: `Error reading or processing external file: ${errorMessage}`,
104
+ });
105
+ }
106
+ }
107
+ putSystemMessage('Finished reading external files.', { fileResults });
108
+ }
109
+ else if (externalFilesToConfirm.length > 0) {
110
+ putSystemMessage('User denied access to external files.');
111
+ // User denied access for the batch
112
+ for (const absolutePath of externalFilesToConfirm) {
113
+ fileResults.push({ filePath: absolutePath, result: 'access denied by the user' });
114
+ }
115
+ }
116
+ // 5. Update conversation history
117
+ prompt.push({
118
+ type: 'assistant',
119
+ text: iterateCall.args?.message ?? '',
120
+ functionCalls: [
121
+ {
122
+ id: inferredCallId,
123
+ name: readExternalFilesDef.name,
124
+ args: {
125
+ externalFilePaths: requestedFilePaths, // Use original requested paths
126
+ reason,
127
+ },
128
+ },
129
+ ],
130
+ }, {
131
+ type: 'user',
132
+ functionResponses: [
133
+ {
134
+ name: readExternalFilesDef.name,
135
+ call_id: inferredCallId,
136
+ content: JSON.stringify({
137
+ externalFilePaths: requestedFilePaths, // Use original requested paths
138
+ reason,
139
+ fileResults: fileResults, // Contains results for all initially requested files
140
+ }),
141
+ },
142
+ ],
143
+ });
144
+ return {
145
+ breakLoop: false,
146
+ items: [],
147
+ };
148
+ }
149
+ //# sourceMappingURL=handle-read-external-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-read-external-files.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-read-external-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ActionResult, ActionHandlerProps } from '../step-iterate-types.js';
2
+ /**
3
+ * Handler for the reasoningInference action.
4
+ * This handler is designed to work with models that don't support function calling
5
+ * but provide reasoning tokens along with their responses.
6
+ */
7
+ export declare function handleReasoningInference({ iterateCall, prompt, generateContentFn, options, }: ActionHandlerProps): Promise<ActionResult>;
@@ -0,0 +1,119 @@
1
+ import { ModelType } from '../../../../ai-service/common-types.js';
2
+ import { putSystemMessage } from '../../../../main/common/content-bus.js';
3
+ import { getFunctionDefs } from '../../../function-calling.js';
4
+ import { getContextSourceCode } from '../../../../files/source-code-utils.js';
5
+ import { registerActionHandler } from '../step-iterate-handlers.js';
6
+ import { reasoningInferenceResponse } from '../../../function-defs/reasoning-inference.js';
7
+ registerActionHandler('reasoningInference', handleReasoningInference);
8
+ /**
9
+ * Handler for the reasoningInference action.
10
+ * This handler is designed to work with models that don't support function calling
11
+ * but provide reasoning tokens along with their responses.
12
+ */
13
+ export async function handleReasoningInference({ iterateCall, prompt, generateContentFn, options, }) {
14
+ try {
15
+ putSystemMessage('Reasoning inference: generating prompt');
16
+ const request = [
17
+ [
18
+ ...prompt,
19
+ {
20
+ type: 'assistant',
21
+ text: iterateCall.args.message,
22
+ },
23
+ ],
24
+ {
25
+ functionDefs: getFunctionDefs(),
26
+ requiredFunctionName: 'reasoningInference',
27
+ temperature: 0.7,
28
+ modelType: ModelType.CHEAP,
29
+ expectedResponseType: {
30
+ text: false,
31
+ functionCall: true,
32
+ media: false,
33
+ },
34
+ },
35
+ options,
36
+ ];
37
+ const [reasoningInferenceCall] = (await generateContentFn(...request))
38
+ .filter((item) => item.type === 'functionCall')
39
+ .map((item) => item.functionCall);
40
+ if (!reasoningInferenceCall?.args?.prompt) {
41
+ putSystemMessage('Failed to get valid reasoningInference request');
42
+ prompt.push({
43
+ type: 'assistant',
44
+ text: iterateCall.args.message,
45
+ }, {
46
+ type: 'user',
47
+ text: 'Failed to get valid reasoningInference request',
48
+ });
49
+ return { breakLoop: false, items: [] };
50
+ }
51
+ putSystemMessage('Reasoning inference: calling reasoning model', reasoningInferenceCall.args);
52
+ // Get expanded context using getContextSourceCode
53
+ const contextPaths = reasoningInferenceCall.args.contextPaths || [];
54
+ const expandedContextSourceCodeMap = getContextSourceCode(contextPaths, options);
55
+ // Call the reasoning model with appropriate settings
56
+ const [reasoningInferenceResponseCall] = (await generateContentFn([
57
+ {
58
+ type: 'user',
59
+ text: reasoningInferenceCall.args.prompt +
60
+ (Object.keys(expandedContextSourceCodeMap).length > 0
61
+ ? '\n\nContents of relevant files:\n' +
62
+ Object.entries(expandedContextSourceCodeMap)
63
+ .map(([path, file]) => 'content' in file && file.content ? `File: ${path}\n\`\`\`${file.content}\`\`\`` : '')
64
+ .filter(Boolean)
65
+ .join('\n\n')
66
+ : ''),
67
+ },
68
+ ], {
69
+ functionDefs: [reasoningInferenceResponse],
70
+ requiredFunctionName: 'reasoningInferenceResponse',
71
+ temperature: 0.7,
72
+ modelType: ModelType.REASONING,
73
+ expectedResponseType: {
74
+ text: false,
75
+ functionCall: true,
76
+ media: false,
77
+ },
78
+ }, options))
79
+ .filter((item) => item.type === 'functionCall')
80
+ .map((item) => item.functionCall);
81
+ putSystemMessage('Reasoning inference: received response', reasoningInferenceResponseCall.args);
82
+ prompt.push({
83
+ type: 'assistant',
84
+ text: iterateCall.args.message,
85
+ functionCalls: [reasoningInferenceCall],
86
+ }, {
87
+ type: 'user',
88
+ functionResponses: [
89
+ {
90
+ name: 'reasoningInference',
91
+ call_id: reasoningInferenceCall.id,
92
+ content: reasoningInferenceResponseCall.args?.response,
93
+ },
94
+ ],
95
+ });
96
+ return {
97
+ breakLoop: false,
98
+ items: [],
99
+ };
100
+ }
101
+ catch (error) {
102
+ // Handle errors gracefully
103
+ const errorMessage = error instanceof Error ? error.message : String(error);
104
+ putSystemMessage(`Error during reasoning inference: ${errorMessage}`);
105
+ prompt.push({
106
+ type: 'assistant',
107
+ text: iterateCall.args.message,
108
+ }, {
109
+ type: 'user',
110
+ text: `Error during reasoning inference.`,
111
+ });
112
+ return {
113
+ // TODO: rather do a retry here?
114
+ breakLoop: false,
115
+ items: [],
116
+ };
117
+ }
118
+ }
119
+ //# sourceMappingURL=handle-reasoning-inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-reasoning-inference.js","sourceRoot":"","sources":["../../../../../src/prompt/steps/step-iterate/handlers/handle-reasoning-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { ActionHandlerProps, ActionResult } from '../step-iterate-types.js';
2
+ export declare function handleRemoveFilesFromContext({ iterateCall, generateContentFn, prompt, options, }: ActionHandlerProps): Promise<ActionResult>;