repoburg 1.3.9 → 1.3.11

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 (300) hide show
  1. package/backend/dist/bin/grammar/tree-sitter-bash.wasm +0 -0
  2. package/backend/dist/bin/grammar/tree-sitter-css.wasm +0 -0
  3. package/backend/dist/bin/grammar/tree-sitter-html.wasm +0 -0
  4. package/backend/dist/bin/grammar/tree-sitter-javascript.wasm +0 -0
  5. package/backend/dist/bin/grammar/tree-sitter-json.wasm +0 -0
  6. package/backend/dist/bin/grammar/tree-sitter-python.wasm +0 -0
  7. package/backend/dist/bin/grammar/tree-sitter-rust.wasm +0 -0
  8. package/backend/dist/bin/grammar/tree-sitter-toml.wasm +0 -0
  9. package/backend/dist/bin/grammar/tree-sitter-tsx.wasm +0 -0
  10. package/backend/dist/bin/grammar/tree-sitter-typescript.wasm +0 -0
  11. package/backend/dist/bin/grammar/tree-sitter-yaml.wasm +0 -0
  12. package/backend/dist/packages/tokenpatch/index.d.ts +1 -0
  13. package/backend/dist/packages/tokenpatch/index.js +52 -0
  14. package/backend/dist/packages/tokenpatch/index.js.map +1 -0
  15. package/backend/dist/packages/tokenpatch/parser.d.ts +2 -0
  16. package/backend/dist/packages/tokenpatch/parser.js +17 -0
  17. package/backend/dist/packages/tokenpatch/parser.js.map +1 -0
  18. package/backend/dist/packages/tokenpatch/patcher.d.ts +11 -0
  19. package/backend/dist/packages/tokenpatch/patcher.js +189 -0
  20. package/backend/dist/packages/tokenpatch/patcher.js.map +1 -0
  21. package/backend/dist/packages/tokenpatch/tokens.d.ts +6 -0
  22. package/backend/dist/packages/tokenpatch/tokens.js +49 -0
  23. package/backend/dist/packages/tokenpatch/tokens.js.map +1 -0
  24. package/backend/dist/packages/tokenpatch/types.d.ts +8 -0
  25. package/backend/dist/packages/tokenpatch/types.js +3 -0
  26. package/backend/dist/packages/tokenpatch/types.js.map +1 -0
  27. package/backend/dist/src/ai-actions/ai-actions.service.d.ts +1 -0
  28. package/backend/dist/src/ai-actions/ai-actions.service.js +2 -0
  29. package/backend/dist/src/ai-actions/ai-actions.service.js.map +1 -1
  30. package/backend/dist/src/llm-orchestration/action-handlers/action-handler.interface.d.ts +1 -0
  31. package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.d.ts +1 -0
  32. package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js +35 -0
  33. package/backend/dist/src/llm-orchestration/action-handlers/apply-diff.handler.js.map +1 -1
  34. package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.d.ts +1 -0
  35. package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js +48 -0
  36. package/backend/dist/src/llm-orchestration/action-handlers/create-file.handler.js.map +1 -1
  37. package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.d.ts +1 -0
  38. package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js +21 -0
  39. package/backend/dist/src/llm-orchestration/action-handlers/delete-file.handler.js.map +1 -1
  40. package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.d.ts +2 -0
  41. package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.js +7 -0
  42. package/backend/dist/src/llm-orchestration/action-handlers/dto/howto.args.dto.js.map +1 -0
  43. package/backend/dist/src/llm-orchestration/action-handlers/dto/patch.args.dto.d.ts +4 -0
  44. package/backend/dist/src/llm-orchestration/action-handlers/dto/patch.args.dto.js +29 -0
  45. package/backend/dist/src/llm-orchestration/action-handlers/dto/patch.args.dto.js.map +1 -0
  46. package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.d.ts +1 -0
  47. package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.js +55 -0
  48. package/backend/dist/src/llm-orchestration/action-handlers/edit-file.handler.js.map +1 -1
  49. package/backend/dist/src/llm-orchestration/action-handlers/final.handler.d.ts +1 -0
  50. package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js +20 -0
  51. package/backend/dist/src/llm-orchestration/action-handlers/final.handler.js.map +1 -1
  52. package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.d.ts +9 -0
  53. package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.js +85 -0
  54. package/backend/dist/src/llm-orchestration/action-handlers/howto.handler.js.map +1 -0
  55. package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.d.ts +1 -0
  56. package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js +21 -0
  57. package/backend/dist/src/llm-orchestration/action-handlers/new-session.handler.js.map +1 -1
  58. package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.d.ts +13 -0
  59. package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js +247 -0
  60. package/backend/dist/src/llm-orchestration/action-handlers/patch.handler.js.map +1 -0
  61. package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.d.ts +1 -0
  62. package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js +53 -0
  63. package/backend/dist/src/llm-orchestration/action-handlers/quick-edit.handler.js.map +1 -1
  64. package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.d.ts +1 -0
  65. package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js +30 -0
  66. package/backend/dist/src/llm-orchestration/action-handlers/request-context.handler.js.map +1 -1
  67. package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.d.ts +1 -0
  68. package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js +45 -0
  69. package/backend/dist/src/llm-orchestration/action-handlers/run-command.handler.js.map +1 -1
  70. package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.d.ts +1 -0
  71. package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js +29 -0
  72. package/backend/dist/src/llm-orchestration/action-handlers/use-mcp-tool.handler.js.map +1 -1
  73. package/backend/dist/src/llm-orchestration/llm-orchestration.module.js +6 -2
  74. package/backend/dist/src/llm-orchestration/llm-orchestration.module.js.map +1 -1
  75. package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js +1 -0
  76. package/backend/dist/src/llm-orchestration/llm-turn-processor.service.js.map +1 -1
  77. package/backend/dist/src/seeding/data/custom-snippets/eta-for.d.ts +4 -0
  78. package/backend/dist/src/seeding/data/custom-snippets/eta-for.js +8 -0
  79. package/backend/dist/src/seeding/data/custom-snippets/eta-for.js.map +1 -0
  80. package/backend/dist/src/seeding/data/custom-snippets/eta-if.d.ts +4 -0
  81. package/backend/dist/src/seeding/data/custom-snippets/eta-if.js +8 -0
  82. package/backend/dist/src/seeding/data/custom-snippets/eta-if.js.map +1 -0
  83. package/backend/dist/src/seeding/data/custom-snippets/eta-ifelse.d.ts +4 -0
  84. package/backend/dist/src/seeding/data/custom-snippets/eta-ifelse.js +8 -0
  85. package/backend/dist/src/seeding/data/custom-snippets/eta-ifelse.js.map +1 -0
  86. package/backend/dist/src/seeding/data/custom-snippets/it-mcp.d.ts +4 -0
  87. package/backend/dist/src/seeding/data/custom-snippets/it-mcp.js +8 -0
  88. package/backend/dist/src/seeding/data/custom-snippets/it-mcp.js.map +1 -0
  89. package/backend/dist/src/seeding/data/custom-snippets/it-tools.d.ts +4 -0
  90. package/backend/dist/src/seeding/data/custom-snippets/it-tools.js +8 -0
  91. package/backend/dist/src/seeding/data/custom-snippets/it-tools.js.map +1 -0
  92. package/backend/dist/src/seeding/data/system-prompts/default_master-agent.d.ts +1 -1
  93. package/backend/dist/src/seeding/data/system-prompts/default_master-agent.js +1 -1
  94. package/backend/dist/src/seeding/data/system-prompts/experimental_eta_master-agent.d.ts +2 -0
  95. package/backend/dist/src/seeding/data/system-prompts/experimental_eta_master-agent.js +62 -0
  96. package/backend/dist/src/seeding/data/system-prompts/experimental_eta_master-agent.js.map +1 -0
  97. package/backend/dist/src/seeding/data/system-prompts/experimental_patch_master-agent.d.ts +2 -0
  98. package/backend/dist/src/seeding/data/system-prompts/experimental_patch_master-agent.js +463 -0
  99. package/backend/dist/src/seeding/data/system-prompts/experimental_patch_master-agent.js.map +1 -0
  100. package/backend/dist/src/system-prompts/dto/system-prompt.dto.d.ts +6 -0
  101. package/backend/dist/src/system-prompts/dto/system-prompt.dto.js +12 -1
  102. package/backend/dist/src/system-prompts/dto/system-prompt.dto.js.map +1 -1
  103. package/backend/dist/src/system-prompts/system-prompts.controller.d.ts +3 -1
  104. package/backend/dist/src/system-prompts/system-prompts.controller.js +20 -0
  105. package/backend/dist/src/system-prompts/system-prompts.controller.js.map +1 -1
  106. package/backend/dist/src/system-prompts/system-prompts.module.js +11 -1
  107. package/backend/dist/src/system-prompts/system-prompts.module.js.map +1 -1
  108. package/backend/dist/src/system-prompts/system-prompts.service.d.ts +11 -3
  109. package/backend/dist/src/system-prompts/system-prompts.service.js +39 -12
  110. package/backend/dist/src/system-prompts/system-prompts.service.js.map +1 -1
  111. package/backend/dist/src/utils/ai-format-generator.d.ts +1 -0
  112. package/backend/dist/src/utils/ai-format-generator.js +23 -0
  113. package/backend/dist/src/utils/ai-format-generator.js.map +1 -0
  114. package/backend/dist/src/utils/index.d.ts +1 -0
  115. package/backend/dist/src/utils/index.js +1 -0
  116. package/backend/dist/src/utils/index.js.map +1 -1
  117. package/backend/dist/tsconfig.build.tsbuildinfo +1 -1
  118. package/backend/package.json +6 -3
  119. package/backend/packages/tokenpatch/grammar/tree-sitter-tsx.wasm +0 -0
  120. package/backend/packages/tokenpatch/grammar/tree-sitter-typescript.wasm +0 -0
  121. package/backend/packages/tokenpatch/index.spec.ts +579 -0
  122. package/backend/packages/tokenpatch/index.ts +80 -0
  123. package/backend/packages/tokenpatch/parser.ts +18 -0
  124. package/backend/packages/tokenpatch/patcher.spec.ts +194 -0
  125. package/backend/packages/tokenpatch/patcher.ts +300 -0
  126. package/backend/packages/tokenpatch/tokens.spec.ts +84 -0
  127. package/backend/packages/tokenpatch/tokens.ts +50 -0
  128. package/backend/packages/tokenpatch/types.ts +9 -0
  129. package/package.json +13 -12
  130. package/backend/coverage/clover.xml +0 -3434
  131. package/backend/coverage/coverage-final.json +0 -120
  132. package/backend/coverage/lcov-report/base.css +0 -224
  133. package/backend/coverage/lcov-report/block-navigation.js +0 -87
  134. package/backend/coverage/lcov-report/favicon.png +0 -0
  135. package/backend/coverage/lcov-report/index.html +0 -701
  136. package/backend/coverage/lcov-report/prettify.css +0 -1
  137. package/backend/coverage/lcov-report/prettify.js +0 -2
  138. package/backend/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  139. package/backend/coverage/lcov-report/sorter.js +0 -196
  140. package/backend/coverage/lcov-report/src/action-execution/action-execution.module.ts.html +0 -109
  141. package/backend/coverage/lcov-report/src/action-execution/action-execution.service.ts.html +0 -448
  142. package/backend/coverage/lcov-report/src/action-execution/index.html +0 -131
  143. package/backend/coverage/lcov-report/src/ai-actions/ai-action-batch.service.ts.html +0 -940
  144. package/backend/coverage/lcov-report/src/ai-actions/ai-action-creation.service.ts.html +0 -1243
  145. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.controller.ts.html +0 -664
  146. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.module.ts.html +0 -154
  147. package/backend/coverage/lcov-report/src/ai-actions/ai-actions.service.ts.html +0 -859
  148. package/backend/coverage/lcov-report/src/ai-actions/index.html +0 -176
  149. package/backend/coverage/lcov-report/src/app.controller.ts.html +0 -151
  150. package/backend/coverage/lcov-report/src/app.module.ts.html +0 -373
  151. package/backend/coverage/lcov-report/src/app.service.ts.html +0 -196
  152. package/backend/coverage/lcov-report/src/application-state/application-state.controller.ts.html +0 -319
  153. package/backend/coverage/lcov-report/src/application-state/application-state.module.ts.html +0 -124
  154. package/backend/coverage/lcov-report/src/application-state/application-state.service.ts.html +0 -439
  155. package/backend/coverage/lcov-report/src/application-state/dto/index.html +0 -161
  156. package/backend/coverage/lcov-report/src/application-state/dto/set-auto-context-fetch-enabled.dto.ts.html +0 -103
  157. package/backend/coverage/lcov-report/src/application-state/dto/set-orchestration-timeout.dto.ts.html +0 -103
  158. package/backend/coverage/lcov-report/src/application-state/dto/set-theme.dto.ts.html +0 -106
  159. package/backend/coverage/lcov-report/src/application-state/dto/set-websocket-enabled.dto.ts.html +0 -103
  160. package/backend/coverage/lcov-report/src/application-state/index.html +0 -146
  161. package/backend/coverage/lcov-report/src/context-generation/context-generation.module.ts.html +0 -118
  162. package/backend/coverage/lcov-report/src/context-generation/context-generation.service.ts.html +0 -1348
  163. package/backend/coverage/lcov-report/src/context-generation/index.html +0 -131
  164. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.controller.ts.html +0 -289
  165. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.module.ts.html +0 -136
  166. package/backend/coverage/lcov-report/src/context-snippets/context-snippets.service.ts.html +0 -400
  167. package/backend/coverage/lcov-report/src/context-snippets/dto/context-snippet.dto.ts.html +0 -211
  168. package/backend/coverage/lcov-report/src/context-snippets/dto/index.html +0 -116
  169. package/backend/coverage/lcov-report/src/context-snippets/index.html +0 -146
  170. package/backend/coverage/lcov-report/src/context-templates/context-templates.controller.ts.html +0 -397
  171. package/backend/coverage/lcov-report/src/context-templates/context-templates.module.ts.html +0 -136
  172. package/backend/coverage/lcov-report/src/context-templates/context-templates.service.ts.html +0 -835
  173. package/backend/coverage/lcov-report/src/context-templates/dto/context-template.dto.ts.html +0 -358
  174. package/backend/coverage/lcov-report/src/context-templates/dto/index.html +0 -116
  175. package/backend/coverage/lcov-report/src/context-templates/index.html +0 -146
  176. package/backend/coverage/lcov-report/src/core-entities/ai-action.entity.ts.html +0 -241
  177. package/backend/coverage/lcov-report/src/core-entities/application-state.entity.ts.html +0 -115
  178. package/backend/coverage/lcov-report/src/core-entities/base.entity.ts.html +0 -145
  179. package/backend/coverage/lcov-report/src/core-entities/context-snippet.entity.ts.html +0 -130
  180. package/backend/coverage/lcov-report/src/core-entities/context-template.entity.ts.html +0 -223
  181. package/backend/coverage/lcov-report/src/core-entities/custom-snippet.entity.ts.html +0 -136
  182. package/backend/coverage/lcov-report/src/core-entities/execution-log.entity.ts.html +0 -157
  183. package/backend/coverage/lcov-report/src/core-entities/index.html +0 -281
  184. package/backend/coverage/lcov-report/src/core-entities/index.ts.html +0 -118
  185. package/backend/coverage/lcov-report/src/core-entities/project.entity.ts.html +0 -130
  186. package/backend/coverage/lcov-report/src/core-entities/session-input.entity.ts.html +0 -289
  187. package/backend/coverage/lcov-report/src/core-entities/session.entity.ts.html +0 -280
  188. package/backend/coverage/lcov-report/src/core-entities/system-prompt.entity.ts.html +0 -148
  189. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.controller.ts.html +0 -277
  190. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.module.ts.html +0 -124
  191. package/backend/coverage/lcov-report/src/custom-snippets/custom-snippets.service.ts.html +0 -304
  192. package/backend/coverage/lcov-report/src/custom-snippets/dto/custom-snippet.dto.ts.html +0 -205
  193. package/backend/coverage/lcov-report/src/custom-snippets/dto/index.html +0 -116
  194. package/backend/coverage/lcov-report/src/custom-snippets/index.html +0 -146
  195. package/backend/coverage/lcov-report/src/events/events.gateway.ts.html +0 -292
  196. package/backend/coverage/lcov-report/src/events/events.module.ts.html +0 -109
  197. package/backend/coverage/lcov-report/src/events/index.html +0 -131
  198. package/backend/coverage/lcov-report/src/execution-logs/dto/execution-log.dto.ts.html +0 -130
  199. package/backend/coverage/lcov-report/src/execution-logs/dto/index.html +0 -116
  200. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.controller.ts.html +0 -130
  201. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.module.ts.html +0 -124
  202. package/backend/coverage/lcov-report/src/execution-logs/execution-logs.service.ts.html +0 -238
  203. package/backend/coverage/lcov-report/src/execution-logs/index.html +0 -146
  204. package/backend/coverage/lcov-report/src/http-exception.filter.ts.html +0 -340
  205. package/backend/coverage/lcov-report/src/index.html +0 -191
  206. package/backend/coverage/lcov-report/src/llm-response-parser/dto/ai-action.dto.ts.html +0 -400
  207. package/backend/coverage/lcov-report/src/llm-response-parser/dto/index.html +0 -116
  208. package/backend/coverage/lcov-report/src/llm-response-parser/errors/index.html +0 -116
  209. package/backend/coverage/lcov-report/src/llm-response-parser/errors/parsing.error.ts.html +0 -118
  210. package/backend/coverage/lcov-report/src/llm-response-parser/index.html +0 -146
  211. package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.module.ts.html +0 -109
  212. package/backend/coverage/lcov-report/src/llm-response-parser/llm-response-parser.service.ts.html +0 -808
  213. package/backend/coverage/lcov-report/src/llm-response-parser/parsing.constants.ts.html +0 -139
  214. package/backend/coverage/lcov-report/src/llm-responses/dto/index.html +0 -116
  215. package/backend/coverage/lcov-report/src/llm-responses/dto/submit-llm-response.dto.ts.html +0 -172
  216. package/backend/coverage/lcov-report/src/llm-responses/index.html +0 -146
  217. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.controller.ts.html +0 -154
  218. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.module.ts.html +0 -166
  219. package/backend/coverage/lcov-report/src/llm-responses/llm-responses.service.ts.html +0 -787
  220. package/backend/coverage/lcov-report/src/main.ts.html +0 -382
  221. package/backend/coverage/lcov-report/src/orchestration/dto/index.html +0 -116
  222. package/backend/coverage/lcov-report/src/orchestration/dto/orchestration.dto.ts.html +0 -169
  223. package/backend/coverage/lcov-report/src/orchestration/index.html +0 -191
  224. package/backend/coverage/lcov-report/src/orchestration/orchestration-fs.service.ts.html +0 -595
  225. package/backend/coverage/lcov-report/src/orchestration/orchestration-parser.service.ts.html +0 -142
  226. package/backend/coverage/lcov-report/src/orchestration/orchestration.controller.ts.html +0 -406
  227. package/backend/coverage/lcov-report/src/orchestration/orchestration.module.ts.html +0 -169
  228. package/backend/coverage/lcov-report/src/orchestration/orchestration.service.ts.html +0 -1093
  229. package/backend/coverage/lcov-report/src/orchestration/orchestration.types.ts.html +0 -175
  230. package/backend/coverage/lcov-report/src/projects/dto/index.html +0 -116
  231. package/backend/coverage/lcov-report/src/projects/dto/project.dto.ts.html +0 -154
  232. package/backend/coverage/lcov-report/src/projects/index.html +0 -146
  233. package/backend/coverage/lcov-report/src/projects/projects.controller.ts.html +0 -232
  234. package/backend/coverage/lcov-report/src/projects/projects.module.ts.html +0 -124
  235. package/backend/coverage/lcov-report/src/projects/projects.service.ts.html +0 -223
  236. package/backend/coverage/lcov-report/src/seeding/context-template-seeding.service.ts.html +0 -355
  237. package/backend/coverage/lcov-report/src/seeding/custom-snippet-seeding.service.ts.html +0 -271
  238. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-followup_ad-hoc-focused-context.ts.html +0 -136
  239. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_condensed-project-context.ts.html +0 -148
  240. package/backend/coverage/lcov-report/src/seeding/data/context-templates/default-initial_full-project-context.ts.html +0 -247
  241. package/backend/coverage/lcov-report/src/seeding/data/context-templates/index.html +0 -190
  242. package/backend/coverage/lcov-report/src/seeding/data/context-templates/pm-context.ts.html +0 -250
  243. package/backend/coverage/lcov-report/src/seeding/data/context-templates/pr-description.ts.html +0 -186
  244. package/backend/coverage/lcov-report/src/seeding/data/context-templates/sample_focused-tree.ts.html +0 -124
  245. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/default_rglob.ts.html +0 -94
  246. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/git-diff.ts.html +0 -94
  247. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/index.html +0 -236
  248. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-exclude.ts.html +0 -94
  249. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search-glob.ts.html +0 -94
  250. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/rg-search.ts.html +0 -94
  251. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/run-command.ts.html +0 -94
  252. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/tree.ts.html +0 -94
  253. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-adhoc-incl.ts.html +0 -100
  254. package/backend/coverage/lcov-report/src/seeding/data/custom-snippets/usr-input-incl.ts.html +0 -94
  255. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/codebase-explorer.ts.html +0 -331
  256. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/default_multi-file-action-generator-with-requester.ts.html +0 -675
  257. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/index.html +0 -160
  258. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/multi-file-action-generator.ts.html +0 -550
  259. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/packup.ts.html +0 -184
  260. package/backend/coverage/lcov-report/src/seeding/data/system-prompts/refactor-split.ts.html +0 -244
  261. package/backend/coverage/lcov-report/src/seeding/index.html +0 -176
  262. package/backend/coverage/lcov-report/src/seeding/seeding.module.ts.html +0 -145
  263. package/backend/coverage/lcov-report/src/seeding/seeding.service.ts.html +0 -151
  264. package/backend/coverage/lcov-report/src/seeding/system-prompt-seeding.service.ts.html +0 -289
  265. package/backend/coverage/lcov-report/src/session-followup/index.html +0 -131
  266. package/backend/coverage/lcov-report/src/session-followup/session-followup.module.ts.html +0 -130
  267. package/backend/coverage/lcov-report/src/session-followup/session-followup.service.ts.html +0 -670
  268. package/backend/coverage/lcov-report/src/session-inputs/dto/index.html +0 -116
  269. package/backend/coverage/lcov-report/src/session-inputs/dto/session-input.dto.ts.html +0 -247
  270. package/backend/coverage/lcov-report/src/session-inputs/index.html +0 -161
  271. package/backend/coverage/lcov-report/src/session-inputs/session-input-context.service.ts.html +0 -763
  272. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.controller.ts.html +0 -337
  273. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.module.ts.html +0 -205
  274. package/backend/coverage/lcov-report/src/session-inputs/session-inputs.service.ts.html +0 -1621
  275. package/backend/coverage/lcov-report/src/session-transfer/index.html +0 -131
  276. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.module.ts.html +0 -172
  277. package/backend/coverage/lcov-report/src/session-transfer/session-transfer.service.ts.html +0 -574
  278. package/backend/coverage/lcov-report/src/sessions/dto/index.html +0 -116
  279. package/backend/coverage/lcov-report/src/sessions/dto/session.dto.ts.html +0 -340
  280. package/backend/coverage/lcov-report/src/sessions/index.html +0 -146
  281. package/backend/coverage/lcov-report/src/sessions/sessions.controller.ts.html +0 -457
  282. package/backend/coverage/lcov-report/src/sessions/sessions.module.ts.html +0 -214
  283. package/backend/coverage/lcov-report/src/sessions/sessions.service.ts.html +0 -844
  284. package/backend/coverage/lcov-report/src/system-prompts/dto/index.html +0 -116
  285. package/backend/coverage/lcov-report/src/system-prompts/dto/system-prompt.dto.ts.html +0 -217
  286. package/backend/coverage/lcov-report/src/system-prompts/index.html +0 -146
  287. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.controller.ts.html +0 -298
  288. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.module.ts.html +0 -127
  289. package/backend/coverage/lcov-report/src/system-prompts/system-prompts.service.ts.html +0 -352
  290. package/backend/coverage/lcov-report/src/timeout.interceptor.ts.html +0 -178
  291. package/backend/coverage/lcov-report/src/utils/fuzzy-search.ts.html +0 -310
  292. package/backend/coverage/lcov-report/src/utils/index.html +0 -131
  293. package/backend/coverage/lcov-report/src/utils/index.ts.html +0 -88
  294. package/backend/coverage/lcov-report/src/workspace/dto/index.html +0 -116
  295. package/backend/coverage/lcov-report/src/workspace/dto/search-workspace.dto.ts.html +0 -193
  296. package/backend/coverage/lcov-report/src/workspace/index.html +0 -146
  297. package/backend/coverage/lcov-report/src/workspace/workspace.controller.ts.html +0 -247
  298. package/backend/coverage/lcov-report/src/workspace/workspace.module.ts.html +0 -121
  299. package/backend/coverage/lcov-report/src/workspace/workspace.service.ts.html +0 -745
  300. package/backend/coverage/lcov.info +0 -5590
@@ -0,0 +1,247 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var PatchHandler_1;
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PatchHandler = void 0;
11
+ const common_1 = require("@nestjs/common");
12
+ const fs = require("fs/promises");
13
+ const fs_1 = require("fs");
14
+ const path = require("path");
15
+ const class_transformer_1 = require("class-transformer");
16
+ const class_validator_1 = require("class-validator");
17
+ const handler_validation_error_1 = require("../errors/handler-validation.error");
18
+ const patch_args_dto_1 = require("./dto/patch.args.dto");
19
+ const tokenpatch_1 = require("../../../packages/tokenpatch");
20
+ const utils_1 = require("../../utils");
21
+ const grammarMap = {
22
+ '.js': 'tree-sitter-javascript.wasm',
23
+ '.jsx': 'tree-sitter-javascript.wasm',
24
+ '.ts': 'tree-sitter-typescript.wasm',
25
+ '.tsx': 'tree-sitter-tsx.wasm',
26
+ '.json': 'tree-sitter-json.wasm',
27
+ '.html': 'tree-sitter-html.wasm',
28
+ '.css': 'tree-sitter-css.wasm',
29
+ '.py': 'tree-sitter-python.wasm',
30
+ '.rs': 'tree-sitter-rust.wasm',
31
+ '.toml': 'tree-sitter-toml.wasm',
32
+ '.yaml': 'tree-sitter-yaml.wasm',
33
+ '.yml': 'tree-sitter-yaml.wasm',
34
+ '.sh': 'tree-sitter-bash.wasm',
35
+ };
36
+ let PatchHandler = PatchHandler_1 = class PatchHandler {
37
+ constructor() {
38
+ this.toolName = 'patch';
39
+ this.logger = new common_1.Logger(PatchHandler_1.name);
40
+ this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
41
+ this.grammarDir = (() => {
42
+ const prodPath = path.resolve(__dirname, '../../../bin/grammar/');
43
+ if ((0, fs_1.existsSync)(prodPath)) {
44
+ return prodPath;
45
+ }
46
+ const devPath = path.resolve(__dirname, '../../bin/grammar/');
47
+ if ((0, fs_1.existsSync)(devPath)) {
48
+ return devPath;
49
+ }
50
+ console.warn(`[PatchHandler] Grammar directory not found. Looked for ${prodPath} and ${devPath}. The patch tool may not function correctly.`);
51
+ return prodPath;
52
+ })();
53
+ }
54
+ getDefinition() {
55
+ const goodAnchorExample = (0, utils_1.generateToolCall)({
56
+ tool_name: this.toolName,
57
+ file_path: 'src/services/config.ts',
58
+ patch_code: `\`\`\`typescript
59
+ const config = {
60
+ port: 9000,
61
+ host: 'localhost',
62
+ protocol: 'https'
63
+ };
64
+
65
+ function connect() {
66
+ \`\`\``,
67
+ });
68
+ const badAnchorExample = (0, utils_1.generateToolCall)({
69
+ tool_name: this.toolName,
70
+ file_path: 'src/services/config.ts',
71
+ patch_code: `\`\`\`typescript
72
+ const config = {
73
+ port: 9000,
74
+ host: 'localhost',
75
+ protocol: 'https'
76
+ };
77
+ \`\`\``,
78
+ });
79
+ const appendExample = (0, utils_1.generateToolCall)({
80
+ tool_name: this.toolName,
81
+ file_path: 'src/utils/math.ts',
82
+ patch_code: `\`\`\`typescript
83
+ export { calculate };
84
+ export { sum };
85
+ // @end-of-file
86
+ \`\`\``,
87
+ });
88
+ const prependExample = (0, utils_1.generateToolCall)({
89
+ tool_name: this.toolName,
90
+ file_path: 'src/main.ts',
91
+ patch_code: `\`\`\`typescript
92
+ // @begin-of-file
93
+ import fs from 'fs';
94
+ import { ModuleA } from './moduleA';
95
+ \`\`\``,
96
+ });
97
+ const definition = `
98
+ <${this.toolName}>
99
+ Applies an intelligent, context-aware patch to a code file. This is the most robust and preferred method for modifying code.
100
+
101
+ The algorithm works by treating your 'patch_code' as a snippet of the file's **final desired state**. It finds a unique location in the original file that matches the prefix and suffix of your snippet and replaces the content between them.
102
+
103
+ **CRITICAL RULES:**
104
+ 1. **The 'patch_code' is a literal replacement**: The entire content of your 'patch_code' will replace the section of the original file that it matches. It is not a diff or a partial change.
105
+ 2. **Provide valid, parsable code**: The snippet in 'patch_code' must be syntactically correct. Do not provide incomplete lines or half-finished code blocks, as the parser will fail.
106
+ 3. **Include unique anchors**: Your 'patch_code' MUST include enough surrounding, unchanged context (a few lines before and after your change) to serve as a unique anchor. If the context is not unique, the patch will fail.
107
+
108
+ Special Markers for Edge Cases:
109
+ - To add code to the very beginning of a file, start 'patch_code' with: \`// @begin-of-file\`
110
+ - To add code to the very end of a file, end 'patch_code' with: \`// @end-of-file\`
111
+
112
+ Parameters:
113
+ - "file_path": (string) The relative path to the file to be patched.
114
+ - "patch_code": (string) A code snippet containing your changes, with enough surrounding context to serve as a unique anchor.
115
+
116
+ <example_good_anchoring>
117
+ Explanation: This example shows how to correctly modify the first 'config' object in a file that has two similar objects. Notice the 'patch_code' includes the 'function connect()' line below the changes. This provides a unique "suffix anchor" to ensure the correct 'config' object is targeted.
118
+
119
+ Original File Content:
120
+ \`\`\`typescript
121
+ const config = {
122
+ port: 8080,
123
+ host: 'localhost',
124
+ };
125
+
126
+ function connect() {
127
+ // uses config
128
+ }
129
+
130
+ const config2 = {
131
+ port: 3000,
132
+ host: 'remote',
133
+ };
134
+ \`\`\`
135
+
136
+ ${goodAnchorExample}
137
+ </example_good_anchoring>
138
+
139
+ <example_bad_anchoring>
140
+ Explanation: This is a **bad example**. The 'patch_code' does not include the unique 'function connect()' suffix. If the file contains another object that looks similar, the patcher won't know which one to modify and the patch will likely fail for being ambiguous.
141
+
142
+ ${badAnchorExample}
143
+ </example_bad_anchoring>
144
+
145
+ <example_append>
146
+ Explanation: Use the '// @end-of-file' marker to add content to the end of a file.
147
+ ${appendExample}
148
+ </example_append>
149
+
150
+ <example_prepend>
151
+ Explanation: Use the '// @begin-of-file' marker to add content to the beginning of a file.
152
+ ${prependExample}
153
+ </example_prepend>
154
+ </${this.toolName}>
155
+ `;
156
+ return definition.trim();
157
+ }
158
+ resolveAndValidatePath(unsafePath) {
159
+ const normalizedPath = path.normalize(unsafePath);
160
+ if (path.isAbsolute(normalizedPath)) {
161
+ throw new common_1.BadRequestException(`Absolute paths are not allowed: ${unsafePath}`);
162
+ }
163
+ const resolvedPath = path.resolve(this.projectRoot, normalizedPath);
164
+ if (!resolvedPath.startsWith(this.projectRoot)) {
165
+ throw new common_1.BadRequestException(`Path traversal is not allowed: ${unsafePath}`);
166
+ }
167
+ return resolvedPath;
168
+ }
169
+ async execute(args, context) {
170
+ const validatedArgs = (0, class_transformer_1.plainToClass)(patch_args_dto_1.PatchArgsDto, args);
171
+ const errors = await (0, class_validator_1.validate)(validatedArgs);
172
+ if (errors.length > 0) {
173
+ const errorMessages = errors
174
+ .map((err) => Object.values(err.constraints || {}).join(', '))
175
+ .join('; ');
176
+ throw new handler_validation_error_1.HandlerValidationError(errorMessages);
177
+ }
178
+ const { file_path, patch_code } = validatedArgs;
179
+ const safePath = this.resolveAndValidatePath(file_path);
180
+ const fileExtension = path.extname(file_path);
181
+ const grammarFile = grammarMap[fileExtension];
182
+ if (!grammarFile) {
183
+ const errorMessage = `Unsupported file type for 'patch' tool: ${fileExtension}. Supported extensions are: ${Object.keys(grammarMap).join(', ')}`;
184
+ context.feedback.validationErrors.push({
185
+ tool_name: this.toolName,
186
+ error: errorMessage,
187
+ });
188
+ return {
189
+ status: 'FAILURE',
190
+ summary: `Patch on "${file_path}" failed: Unsupported file type.`,
191
+ error_message: errorMessage,
192
+ persisted_args: validatedArgs,
193
+ };
194
+ }
195
+ const grammarPath = path.join(this.grammarDir, grammarFile);
196
+ const originalContent = await fs
197
+ .readFile(safePath, 'utf8')
198
+ .catch((error) => {
199
+ if (error.code === 'ENOENT') {
200
+ return null;
201
+ }
202
+ throw error;
203
+ });
204
+ if (originalContent === null) {
205
+ const errorMessage = `File "${file_path}" not found.`;
206
+ context.feedback.validationErrors.push({
207
+ tool_name: this.toolName,
208
+ error: errorMessage,
209
+ });
210
+ return {
211
+ status: 'FAILURE',
212
+ summary: `Patch on "${file_path}" failed: File not found.`,
213
+ error_message: errorMessage,
214
+ persisted_args: validatedArgs,
215
+ };
216
+ }
217
+ try {
218
+ const newFileContent = await (0, tokenpatch_1.applySnippetPatch)(originalContent, patch_code, grammarPath);
219
+ await fs.writeFile(safePath, newFileContent, 'utf8');
220
+ return {
221
+ status: 'SUCCESS',
222
+ summary: `File "${file_path}" successfully modified with patch.`,
223
+ persisted_args: { ...validatedArgs, content: newFileContent },
224
+ original_content_for_revert: originalContent,
225
+ };
226
+ }
227
+ catch (error) {
228
+ this.logger.error(`Failed to apply patch for ${file_path}: ${error.message}`);
229
+ const errorMessage = `Failed to apply patch for "${file_path}": ${error.message}\n\n**CORRECTION HINT:** The patch could not be applied. This is often because the prefix or suffix anchors in the patch code could not be uniquely located in the original file. Use \`request_context\` on \`'${file_path}'\` to get the latest version and try again with a more specific patch.`;
230
+ context.feedback.validationErrors.push({
231
+ tool_name: this.toolName,
232
+ error: errorMessage,
233
+ });
234
+ return {
235
+ status: 'FAILURE',
236
+ summary: `Patch on "${file_path}" failed: ${error.message}`,
237
+ error_message: errorMessage,
238
+ persisted_args: validatedArgs,
239
+ };
240
+ }
241
+ }
242
+ };
243
+ exports.PatchHandler = PatchHandler;
244
+ exports.PatchHandler = PatchHandler = PatchHandler_1 = __decorate([
245
+ (0, common_1.Injectable)()
246
+ ], PatchHandler);
247
+ //# sourceMappingURL=patch.handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/patch.handler.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export declare class QuickEditHandler implements ActionHandler {
4
4
  readonly toolName = "quick_edit";
5
5
  private readonly logger;
6
6
  private readonly projectRoot;
7
+ getDefinition(): string;
7
8
  private resolveAndValidatePath;
8
9
  private formatError;
9
10
  execute(args: {
@@ -15,12 +15,65 @@ const class_transformer_1 = require("class-transformer");
15
15
  const class_validator_1 = require("class-validator");
16
16
  const handler_validation_error_1 = require("../errors/handler-validation.error");
17
17
  const quick_edit_args_dto_1 = require("./dto/quick-edit.args.dto");
18
+ const utils_1 = require("../../utils");
18
19
  let QuickEditHandler = QuickEditHandler_1 = class QuickEditHandler {
19
20
  constructor() {
20
21
  this.toolName = 'quick_edit';
21
22
  this.logger = new common_1.Logger(QuickEditHandler_1.name);
22
23
  this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
23
24
  }
25
+ getDefinition() {
26
+ const insertAfterExample = (0, utils_1.generateToolCall)({
27
+ tool_name: this.toolName,
28
+ file_path: 'src/components/Header.tsx',
29
+ action: 'insert_after',
30
+ search_block: `import React from 'react';`,
31
+ new_content: `import { useTheme } from '@emotion/react';`,
32
+ });
33
+ const replaceExample = (0, utils_1.generateToolCall)({
34
+ tool_name: this.toolName,
35
+ file_path: 'src/config.ts',
36
+ action: 'replace',
37
+ search_block: `export const API_TIMEOUT = 5000;`,
38
+ new_content: `export const API_TIMEOUT = 10000; // Increased timeout`,
39
+ });
40
+ const deleteExample = (0, utils_1.generateToolCall)({
41
+ tool_name: this.toolName,
42
+ file_path: 'src/utils/legacy.js',
43
+ action: 'delete_block',
44
+ search_block: `
45
+ function oldUnusedFunction() {
46
+ return 'hello';
47
+ }
48
+ `.trim(),
49
+ });
50
+ const definition = `
51
+ <${this.toolName}>
52
+ Makes small, targeted changes to a file by finding a unique block of text and inserting, replacing, or deleting it.
53
+ The 'search_block' must be an **exact, character-for-character match** and must be **unique** within the file.
54
+ If the block is not found or is not unique, the tool will fail.
55
+
56
+ Parameters:
57
+ - "file_path": (string) The relative path to the file to be modified.
58
+ - "action": (enum) The operation to perform. Allowed values: 'insert_after', 'insert_before', 'replace', 'delete_block'.
59
+ - "search_block": (string) A unique and exact block of code to locate the position for the edit.
60
+ - "new_content": (string, optional) The new code to be added. Required for 'insert_after', 'insert_before', and 'replace'.
61
+
62
+ <example_insert>
63
+ ${insertAfterExample}
64
+ </example_insert>
65
+
66
+ <example_replace>
67
+ ${replaceExample}
68
+ </example_replace>
69
+
70
+ <example_delete>
71
+ ${deleteExample}
72
+ </example_delete>
73
+ </${this.toolName}>
74
+ `;
75
+ return definition.trim();
76
+ }
24
77
  resolveAndValidatePath(unsafePath) {
25
78
  const normalizedPath = path.normalize(unsafePath);
26
79
  if (path.isAbsolute(normalizedPath)) {
@@ -1 +1 @@
1
- {"version":3,"file":"quick-edit.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/quick-edit.handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quick-edit.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/quick-edit.handler.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ActionHandler } from './action-handler.interface';
2
2
  import { ActionExecutionResult, PlanExecutionContext } from '../llm-orchestration.interfaces';
3
3
  export declare class RequestContextHandler implements ActionHandler {
4
4
  readonly toolName = "request_context";
5
+ getDefinition(): string;
5
6
  execute(args: {
6
7
  [key: string]: any;
7
8
  }, context: PlanExecutionContext): Promise<ActionExecutionResult>;
@@ -12,10 +12,40 @@ const request_context_args_dto_1 = require("./dto/request-context.args.dto");
12
12
  const class_transformer_1 = require("class-transformer");
13
13
  const class_validator_1 = require("class-validator");
14
14
  const handler_validation_error_1 = require("../errors/handler-validation.error");
15
+ const utils_1 = require("../../utils");
15
16
  let RequestContextHandler = class RequestContextHandler {
16
17
  constructor() {
17
18
  this.toolName = 'request_context';
18
19
  }
20
+ getDefinition() {
21
+ const filesExample = (0, utils_1.generateToolCall)({
22
+ tool_name: this.toolName,
23
+ files: 'src/App.tsx,src/theme/ThemeProvider.tsx,src/store/session.slice.ts,src/lib/api/client.ts',
24
+ });
25
+ const foldersExample = (0, utils_1.generateToolCall)({
26
+ tool_name: this.toolName,
27
+ folders: 'src/components/common,src/hooks',
28
+ });
29
+ const definition = `
30
+ <${this.toolName}>
31
+ Requests the content of files or entire folders to build context before making changes.
32
+ This is a crucial exploration tool. It is efficient to request many files at once.
33
+
34
+ Parameters:
35
+ - "files": (string, optional) A comma-separated list of relative file paths to read.
36
+ - "folders": (string, optional) A comma-separated list of relative folder paths to read.
37
+
38
+ <example>
39
+ ${filesExample}
40
+ </example>
41
+
42
+ <example>
43
+ ${foldersExample}
44
+ </example>
45
+ </${this.toolName}>
46
+ `;
47
+ return definition.trim();
48
+ }
19
49
  async execute(args, context) {
20
50
  const validatedArgs = (0, class_transformer_1.plainToClass)(request_context_args_dto_1.RequestContextArgsDto, args);
21
51
  const errors = await (0, class_validator_1.validate)(validatedArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/request-context.handler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAM5C,6EAAuE;AACvE,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;AAGrE,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QACI,aAAQ,GAAG,iBAAiB,CAAC;IAiCxC,CAAC;IA/BC,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,gDAAqB,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,iDAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAChD,OAAO,CAAC,cAAc,GAAG;YACvB,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE;gBACJ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;aAChE;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,0CAA0C;YACnD,cAAc,EAAE,aAAa;SAC9B,CAAC;IACJ,CAAC;CACF,CAAA;AAlCY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAkCjC"}
1
+ {"version":3,"file":"request-context.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/request-context.handler.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAM5C,6EAAuE;AACvE,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;AAC5E,uCAA+C;AAGxC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QACI,aAAQ,GAAG,iBAAiB,CAAC;IAkExC,CAAC;IAhEC,aAAa;QACX,MAAM,YAAY,GAAG,IAAA,wBAAgB,EAAC;YACpC,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,KAAK,EACH,0FAA0F;SAC7F,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,IAAA,wBAAgB,EAAC;YACtC,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,OAAO,EAAE,iCAAiC;SAC3C,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;GACpB,IAAI,CAAC,QAAQ;;;;;;;;;EASd,YAAY;;;;EAIZ,cAAc;;IAEZ,IAAI,CAAC,QAAQ;CAChB,CAAC;QACE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,gDAAqB,EAAE,IAAI,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,iDAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,mBAAmB,CAAC;QAChD,OAAO,CAAC,cAAc,GAAG;YACvB,IAAI,EAAE,oBAAoB;YAC1B,IAAI,EAAE;gBACJ,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;gBACzD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;aAChE;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,0CAA0C;YACnD,cAAc,EAAE,aAAa;SAC9B,CAAC;IACJ,CAAC;CACF,CAAA;AAnEY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;GACA,qBAAqB,CAmEjC"}
@@ -4,6 +4,7 @@ export declare class RunCommandHandler implements ActionHandler {
4
4
  readonly toolName = "run_command";
5
5
  private readonly logger;
6
6
  private readonly projectRoot;
7
+ getDefinition(): string;
7
8
  execute(args: {
8
9
  [key: string]: any;
9
10
  }, context: PlanExecutionContext): Promise<ActionExecutionResult>;
@@ -15,6 +15,7 @@ const run_command_args_dto_1 = require("./dto/run-command.args.dto");
15
15
  const class_transformer_1 = require("class-transformer");
16
16
  const class_validator_1 = require("class-validator");
17
17
  const handler_validation_error_1 = require("../errors/handler-validation.error");
18
+ const utils_1 = require("../../utils");
18
19
  const execAsync = (0, util_1.promisify)(child_process_1.exec);
19
20
  let RunCommandHandler = RunCommandHandler_1 = class RunCommandHandler {
20
21
  constructor() {
@@ -22,6 +23,50 @@ let RunCommandHandler = RunCommandHandler_1 = class RunCommandHandler {
22
23
  this.logger = new common_1.Logger(RunCommandHandler_1.name);
23
24
  this.projectRoot = process.env.REPOBURG_PROJECT_PATH || process.cwd();
24
25
  }
26
+ getDefinition() {
27
+ const treeExample = (0, utils_1.generateToolCall)({
28
+ tool_name: this.toolName,
29
+ command_string: 'tree -L 2 src',
30
+ });
31
+ const rgExample1 = (0, utils_1.generateToolCall)({
32
+ tool_name: this.toolName,
33
+ command_string: 'rg "TODO|FIXME" .',
34
+ });
35
+ const rgExample2 = (0, utils_1.generateToolCall)({
36
+ tool_name: this.toolName,
37
+ command_string: 'rg "function App" .',
38
+ });
39
+ const rgExample3 = (0, utils_1.generateToolCall)({
40
+ tool_name: this.toolName,
41
+ command_string: `rg --files-with-matches "from '../utils'" .`,
42
+ });
43
+ const definition = `
44
+ <${this.toolName}>
45
+ Executes a shell command in the root of the project.
46
+ Used for exploration and gathering information (e.g., 'tree -L 2', 'rg "pattern" .').
47
+
48
+ Parameters:
49
+ - "command_string": (string) The shell command to execute.
50
+
51
+ <example>
52
+ ${treeExample}
53
+ </example>
54
+
55
+ <example>
56
+ ${rgExample1}
57
+ </example>
58
+
59
+ <example>
60
+ ${rgExample2}
61
+ </example>
62
+
63
+ <example>
64
+ ${rgExample3}
65
+ </example>
66
+ </${this.toolName}>
67
+ `;
68
+ return definition.trim();
69
+ }
25
70
  async execute(args, context) {
26
71
  const validatedArgs = (0, class_transformer_1.plainToClass)(run_command_args_dto_1.RunCommandArgsDto, args);
27
72
  const errors = await (0, class_validator_1.validate)(validatedArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"run-command.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/run-command.handler.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoD;AAMpD,iDAAqC;AACrC,+BAAiC;AACjC,qEAA+D;AAC/D,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;AAE5E,MAAM,SAAS,GAAG,IAAA,gBAAS,EAAC,oBAAI,CAAC,CAAC;AAG3B,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAAvB;QACI,aAAQ,GAAG,aAAa,CAAC;QACjB,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;QAC5C,gBAAW,GAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAqDvD,CAAC;IAnDC,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,wCAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,iDAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC;QACzC,IAAI,aAAqB,CAAC;QAC1B,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,GAA0B,SAAS,CAAC;QAC9C,IAAI,YAAgC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,cAAc,EAAE;gBACzD,GAAG,EAAE,IAAI,CAAC,WAAW;gBACrB,SAAS,EAAE,GAAG,GAAG,IAAI,GAAG,IAAI;gBAC5B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,aAAa,GAAG,MAAM,IAAI,MAAM,IAAI,8BAA8B,CAAC;YACnE,OAAO,GAAG,YAAY,cAAc,aAAa,CAAC;QACpD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAAY,CAAC;YAC/B,aAAa,GAAG,mBAAmB,SAAS,CAAC,OAAO,gBAClD,SAAS,CAAC,MAAM,IAAI,KACtB,gBAAgB,SAAS,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;YAC5C,OAAO,GAAG,YAAY,cAAc,WAAW,CAAC;YAChD,MAAM,GAAG,SAAS,CAAC;YACnB,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,aAAa,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC5B,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,MAAM;YACN,OAAO,EAAE,GAAG,OAAO,mBAAmB;YACtC,cAAc,EAAE,EAAE,cAAc,EAAE;YAClC,aAAa,EAAE,YAAY;YAC3B,aAAa,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE;SACtE,CAAC;IACJ,CAAC;CACF,CAAA;AAzDY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;GACA,iBAAiB,CAyD7B"}
1
+ {"version":3,"file":"run-command.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/run-command.handler.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare class UseMcpToolHandler implements ActionHandler {
6
6
  readonly toolName = "use_mcp_tool";
7
7
  private readonly logger;
8
8
  constructor(mcpService: McpService);
9
+ getDefinition(): string;
9
10
  execute(args: {
10
11
  [key: string]: any;
11
12
  }, context: PlanExecutionContext): Promise<ActionExecutionResult>;
@@ -17,12 +17,41 @@ const use_mcp_tool_args_dto_1 = require("./dto/use-mcp-tool.args.dto");
17
17
  const class_transformer_1 = require("class-transformer");
18
18
  const class_validator_1 = require("class-validator");
19
19
  const handler_validation_error_1 = require("../errors/handler-validation.error");
20
+ const utils_1 = require("../../utils");
20
21
  let UseMcpToolHandler = UseMcpToolHandler_1 = class UseMcpToolHandler {
21
22
  constructor(mcpService) {
22
23
  this.mcpService = mcpService;
23
24
  this.toolName = 'use_mcp_tool';
24
25
  this.logger = new common_1.Logger(UseMcpToolHandler_1.name);
25
26
  }
27
+ getDefinition() {
28
+ const exampleArgs = `{
29
+ "verbose": true
30
+ }`;
31
+ const example = (0, utils_1.generateToolCall)({
32
+ tool_name: this.toolName,
33
+ server_name: 'chrome-devtools',
34
+ mcp_tool_name: 'take_snapshot',
35
+ arguments: exampleArgs,
36
+ });
37
+ const definition = `
38
+ <${this.toolName}>
39
+ Executes a tool from a connected Model Context Protocol (MCP) server.
40
+ This enables interaction with external services like linters, browsers, etc.
41
+ The available servers and tools are injected dynamically into the prompt.
42
+
43
+ Parameters:
44
+ - "server_name": (string) The name of the MCP server providing the tool.
45
+ - "mcp_tool_name": (string) The name of the tool to execute on that server.
46
+ - "arguments": (string) A JSON string containing the tool's input parameters, following the tool's specific schema.
47
+
48
+ <example>
49
+ ${example}
50
+ </example>
51
+ </${this.toolName}>
52
+ `;
53
+ return definition.trim();
54
+ }
26
55
  async execute(args, context) {
27
56
  const validatedArgs = (0, class_transformer_1.plainToClass)(use_mcp_tool_args_dto_1.UseMcpToolArgsDto, args);
28
57
  const errors = await (0, class_validator_1.validate)(validatedArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"use-mcp-tool.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/use-mcp-tool.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAMpD,uDAAmD;AACnD,uEAAgE;AAChE,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;AAGrE,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAI5B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,aAAQ,GAAG,cAAc,CAAC;QAClB,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAEP,CAAC;IAEvD,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,yCAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,iDAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;QAC3E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,WAAW,EACX,aAAa,EACb,SAAS,CACV,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,IAAI,MAAM,IAAI,2BAA2B,CAAC;QACtE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7B,SAAS,EAAE,GAAG,WAAW,IAAI,aAAa,EAAE;YAC5C,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,aAAa,WAAW,IAAI,aAAa,8BAA8B;YAChF,cAAc,EAAE;gBACd,WAAW;gBACX,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACrC;YACD,aAAa,EAAE;gBACb,MAAM,EAAE,aAAa;aACtB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA7CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAK8B,wBAAU;GAJxC,iBAAiB,CA6C7B"}
1
+ {"version":3,"file":"use-mcp-tool.handler.js","sourceRoot":"","sources":["../../../../src/llm-orchestration/action-handlers/use-mcp-tool.handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAMpD,uDAAmD;AACnD,uEAAgE;AAChE,yDAAiD;AACjD,qDAA2C;AAC3C,iFAA4E;AAC5E,uCAA+C;AAGxC,IAAM,iBAAiB,yBAAvB,MAAM,iBAAiB;IAI5B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAH1C,aAAQ,GAAG,cAAc,CAAC;QAClB,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAiB,CAAC,IAAI,CAAC,CAAC;IAEP,CAAC;IAEvD,aAAa;QACX,MAAM,WAAW,GAAG;;EAEtB,CAAC;QACC,MAAM,OAAO,GAAG,IAAA,wBAAgB,EAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,QAAQ;YACxB,WAAW,EAAE,iBAAiB;YAC9B,aAAa,EAAE,eAAe;YAC9B,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG;GACpB,IAAI,CAAC,QAAQ;;;;;;;;;;;EAWd,OAAO;;IAEL,IAAI,CAAC,QAAQ;CAChB,CAAC;QACE,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,OAA6B;QAE7B,MAAM,aAAa,GAAG,IAAA,gCAAY,EAAC,yCAAiB,EAAE,IAAI,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,aAAa,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7D,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,MAAM,IAAI,iDAAsB,CAAC,aAAa,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;QAC3E,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,CAC7D,WAAW,EACX,aAAa,EACb,SAAS,CACV,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,IAAI,MAAM,IAAI,2BAA2B,CAAC;QACtE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;YAC7B,SAAS,EAAE,GAAG,WAAW,IAAI,aAAa,EAAE;YAC5C,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,aAAa,WAAW,IAAI,aAAa,8BAA8B;YAChF,cAAc,EAAE;gBACd,WAAW;gBACX,SAAS,EAAE,aAAa;gBACxB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACrC;YACD,aAAa,EAAE;gBACb,MAAM,EAAE,aAAa;aACtB;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AA3EY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;qCAK8B,wBAAU;GAJxC,iBAAiB,CA2E7B"}
@@ -33,18 +33,22 @@ const delete_file_handler_1 = require("./action-handlers/delete-file.handler");
33
33
  const execution_logs_module_1 = require("../execution-logs/execution-logs.module");
34
34
  const quick_edit_handler_1 = require("./action-handlers/quick-edit.handler");
35
35
  const invalid_tool_feedback_hook_1 = require("./hooks/invalid-tool-feedback.hook");
36
+ const patch_handler_1 = require("./action-handlers/patch.handler");
36
37
  const apply_diff_handler_1 = require("./action-handlers/apply-diff.handler");
38
+ const howto_handler_1 = require("./action-handlers/howto.handler");
37
39
  const actionHandlers = [
38
40
  create_file_handler_1.CreateFileHandler,
39
41
  edit_file_handler_1.EditFileHandler,
40
42
  delete_file_handler_1.DeleteFileHandler,
41
43
  quick_edit_handler_1.QuickEditHandler,
42
44
  apply_diff_handler_1.ApplyDiffHandler,
45
+ patch_handler_1.PatchHandler,
43
46
  run_command_handler_1.RunCommandHandler,
44
47
  use_mcp_tool_handler_1.UseMcpToolHandler,
45
48
  request_context_handler_1.RequestContextHandler,
46
49
  new_session_handler_1.NewSessionHandler,
47
50
  final_handler_1.FinalHandler,
51
+ howto_handler_1.HowtoHandler,
48
52
  ];
49
53
  const postExecutionHooks = [
50
54
  invalid_tool_feedback_hook_1.InvalidToolFeedbackHook,
@@ -63,7 +67,7 @@ exports.LlmOrchestrationModule = LlmOrchestrationModule = __decorate([
63
67
  (0, common_1.forwardRef)(() => chat_module_1.InteractiveChatModule),
64
68
  (0, common_1.forwardRef)(() => session_inputs_module_1.SessionInputsModule),
65
69
  events_module_1.EventsModule,
66
- system_prompts_module_1.SystemPromptsModule,
70
+ (0, common_1.forwardRef)(() => system_prompts_module_1.SystemPromptsModule),
67
71
  sessions_module_1.SessionsModule,
68
72
  mcp_module_1.McpModule,
69
73
  execution_logs_module_1.ExecutionLogsModule,
@@ -88,7 +92,7 @@ exports.LlmOrchestrationModule = LlmOrchestrationModule = __decorate([
88
92
  inject: postExecutionHooks,
89
93
  },
90
94
  ],
91
- exports: [llm_turn_processor_service_1.LlmTurnProcessorService],
95
+ exports: [llm_turn_processor_service_1.LlmTurnProcessorService, 'ACTION_HANDLER_REGISTRY'],
92
96
  })
93
97
  ], LlmOrchestrationModule);
94
98
  //# sourceMappingURL=llm-orchestration.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm-orchestration.module.js","sourceRoot":"","sources":["../../../src/llm-orchestration/llm-orchestration.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,oDAA0D;AAC1D,kFAA4E;AAC5E,6EAAuE;AACvE,yFAAkF;AAClF,yFAAkF;AAClF,4FAAuF;AACvF,iEAAwE;AACxE,mFAA8E;AAC9E,2DAAuD;AACvD,mFAA8E;AAC9E,iEAA6D;AAC7D,+EAA0E;AAC1E,iFAA2E;AAC3E,uFAAkF;AAClF,+EAA0E;AAC1E,mEAA+D;AAC/D,kDAA8C;AAE9C,mFAA8E;AAC9E,+EAA0E;AAC1E,2EAAsE;AACtE,+EAA0E;AAC1E,mFAA8E;AAC9E,6EAAwE;AACxE,mFAA6E;AAC7E,6EAAwE;AAGxE,MAAM,cAAc,GAAG;IACrB,uCAAiB;IACjB,mCAAe;IACf,uCAAiB;IACjB,qCAAgB;IAChB,qCAAgB;IAChB,uCAAiB;IACjB,wCAAiB;IACjB,+CAAqB;IACrB,uCAAiB;IACjB,4BAAY;CACb,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,oDAAuB;IACvB,yDAAyB;IACzB,yDAAyB;IACzB,qDAAwB;CACzB,CAAC;AAqCK,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,wDAAsB;iCAAtB,sBAAsB;IAlClC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAQ,EAAE,4BAAY,CAAC,CAAC;YAClD,iDAAsB;YACtB,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAqB,CAAC;YACvC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;YACrC,4BAAY;YACZ,2CAAmB;YACnB,gCAAc;YACd,sBAAS;YACT,2CAAmB;SACpB;QACD,SAAS,EAAE;YACT,kDAAsB;YACtB,oDAAuB;YACvB,GAAG,cAAc;YACjB,GAAG,kBAAkB;YACrB;gBACE,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE,CAAC,GAAG,QAAyB,EAAE,EAAE;oBAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;oBAClD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBACvE,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,MAAM,EAAE,cAAc;aACvB;YACD;gBACE,OAAO,EAAE,sBAAsB;gBAC/B,UAAU,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,KAAK;gBAC/B,MAAM,EAAE,kBAAkB;aAC3B;SACF;QACD,OAAO,EAAE,CAAC,oDAAuB,CAAC;KACnC,CAAC;GACW,sBAAsB,CAAG"}
1
+ {"version":3,"file":"llm-orchestration.module.js","sourceRoot":"","sources":["../../../src/llm-orchestration/llm-orchestration.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,oDAA0D;AAC1D,kFAA4E;AAC5E,6EAAuE;AACvE,yFAAkF;AAClF,yFAAkF;AAClF,4FAAuF;AACvF,iEAAwE;AACxE,mFAA8E;AAC9E,2DAAuD;AACvD,mFAA8E;AAC9E,iEAA6D;AAC7D,+EAA0E;AAC1E,iFAA2E;AAC3E,uFAAkF;AAClF,+EAA0E;AAC1E,mEAA+D;AAC/D,kDAA8C;AAE9C,mFAA8E;AAC9E,+EAA0E;AAC1E,2EAAsE;AACtE,+EAA0E;AAC1E,mFAA8E;AAC9E,6EAAwE;AACxE,mFAA6E;AAC7E,mEAA+D;AAC/D,6EAAwE;AACxE,mEAA+D;AAG/D,MAAM,cAAc,GAAG;IACrB,uCAAiB;IACjB,mCAAe;IACf,uCAAiB;IACjB,qCAAgB;IAChB,qCAAgB;IAChB,4BAAY;IACZ,uCAAiB;IACjB,wCAAiB;IACjB,+CAAqB;IACrB,uCAAiB;IACjB,4BAAY;IACZ,4BAAY;CACb,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,oDAAuB;IACvB,yDAAyB;IACzB,yDAAyB;IACzB,qDAAwB;CACzB,CAAC;AAqCK,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAAG,CAAA;AAAzB,wDAAsB;iCAAtB,sBAAsB;IAlClC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAQ,EAAE,4BAAY,CAAC,CAAC;YAClD,iDAAsB;YACtB,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,mCAAqB,CAAC;YACvC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;YACrC,4BAAY;YACZ,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,2CAAmB,CAAC;YACrC,gCAAc;YACd,sBAAS;YACT,2CAAmB;SACpB;QACD,SAAS,EAAE;YACT,kDAAsB;YACtB,oDAAuB;YACvB,GAAG,cAAc;YACjB,GAAG,kBAAkB;YACrB;gBACE,OAAO,EAAE,yBAAyB;gBAClC,UAAU,EAAE,CAAC,GAAG,QAAyB,EAAE,EAAE;oBAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;oBAClD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;oBACvE,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBACD,MAAM,EAAE,cAAc;aACvB;YACD;gBACE,OAAO,EAAE,sBAAsB;gBAC/B,UAAU,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC,KAAK;gBAC/B,MAAM,EAAE,kBAAkB;aAC3B;SACF;QACD,OAAO,EAAE,CAAC,oDAAuB,EAAE,yBAAyB,CAAC;KAC9D,CAAC;GACW,sBAAsB,CAAG"}
@@ -41,6 +41,7 @@ let LlmTurnProcessorService = LlmTurnProcessorService_1 = class LlmTurnProcessor
41
41
  const actionOrder = [
42
42
  'create_file',
43
43
  'quick_edit',
44
+ 'patch',
44
45
  'edit_file',
45
46
  'delete_file',
46
47
  'final',