@empiricalrun/test-gen 0.73.1 → 0.74.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 (313) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/actions/utils/index.d.ts.map +1 -1
  3. package/dist/actions/utils/index.js +1 -2
  4. package/dist/agent/browsing/index.d.ts.map +1 -1
  5. package/dist/agent/browsing/index.js +9 -7
  6. package/dist/agent/browsing/utils.d.ts.map +1 -1
  7. package/dist/agent/browsing/utils.js +3 -4
  8. package/dist/agent/chat/agent-loop.d.ts +7 -8
  9. package/dist/agent/chat/agent-loop.d.ts.map +1 -1
  10. package/dist/agent/chat/agent-loop.js +13 -17
  11. package/dist/agent/chat/exports.d.ts +5 -4
  12. package/dist/agent/chat/exports.d.ts.map +1 -1
  13. package/dist/agent/chat/exports.js +9 -4
  14. package/dist/agent/chat/filesystem-cache.d.ts +12 -0
  15. package/dist/agent/chat/filesystem-cache.d.ts.map +1 -0
  16. package/dist/agent/chat/filesystem-cache.js +101 -0
  17. package/dist/agent/chat/index.d.ts +4 -1
  18. package/dist/agent/chat/index.d.ts.map +1 -1
  19. package/dist/agent/chat/index.js +44 -22
  20. package/dist/agent/chat/models.d.ts +2 -1
  21. package/dist/agent/chat/models.d.ts.map +1 -1
  22. package/dist/agent/chat/models.js +25 -3
  23. package/dist/agent/chat/prompt/index.d.ts +3 -1
  24. package/dist/agent/chat/prompt/index.d.ts.map +1 -1
  25. package/dist/agent/chat/prompt/index.js +77 -2
  26. package/dist/agent/chat/prompt/repo.d.ts.map +1 -1
  27. package/dist/agent/chat/prompt/repo.js +1 -0
  28. package/dist/agent/chat/state.d.ts +6 -5
  29. package/dist/agent/chat/state.d.ts.map +1 -1
  30. package/dist/agent/chat/state.js +35 -5
  31. package/dist/agent/chat/utils.d.ts +1 -0
  32. package/dist/agent/chat/utils.d.ts.map +1 -1
  33. package/dist/agent/chat/utils.js +16 -3
  34. package/dist/agent/cua/index.js +1 -1
  35. package/dist/agent/cua/model.js +1 -1
  36. package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts.map +1 -1
  37. package/dist/agent/cua/pw-codegen/pw-pause/index.js +0 -1
  38. package/dist/agent/master/browser-tests/fixtures.d.ts.map +1 -1
  39. package/dist/agent/master/browser-tests/fixtures.js +0 -1
  40. package/dist/agent/master/element-annotation.d.ts.map +1 -1
  41. package/dist/agent/master/element-annotation.js +1 -2
  42. package/dist/agent/master/execute-browser-action.d.ts.map +1 -1
  43. package/dist/agent/master/execute-browser-action.js +8 -6
  44. package/dist/agent/master/icon-descriptor/index.js +2 -2
  45. package/dist/agent/master/next-action.js +1 -1
  46. package/dist/agent/master/planner.js +1 -1
  47. package/dist/agent/master/scroller.js +2 -2
  48. package/dist/agent/master/with-hints.d.ts.map +1 -1
  49. package/dist/agent/master/with-hints.js +6 -5
  50. package/dist/agent/planner/run-time-planner.js +1 -1
  51. package/dist/agent/planner/run.d.ts.map +1 -1
  52. package/dist/agent/planner/run.js +4 -2
  53. package/dist/auth/cli-auth.js +1 -1
  54. package/dist/auth/token-store.d.ts.map +1 -1
  55. package/dist/auth/token-store.js +4 -6
  56. package/dist/bin/index.js +30 -163
  57. package/dist/bin/utils/context.js +1 -1
  58. package/dist/bin/utils/index.d.ts +0 -12
  59. package/dist/bin/utils/index.d.ts.map +1 -1
  60. package/dist/bin/utils/index.js +0 -70
  61. package/dist/bin/utils/platform/web/index.d.ts +2 -2
  62. package/dist/bin/utils/platform/web/index.d.ts.map +1 -1
  63. package/dist/bin/utils/platform/web/index.js +7 -5
  64. package/dist/bin/utils/scenarios/index.d.ts +11 -3
  65. package/dist/bin/utils/scenarios/index.d.ts.map +1 -1
  66. package/dist/browser-injected-scripts/annotate-elements.spec.js +0 -5
  67. package/dist/browser-injected-scripts/annotate-elements.spec.ts +0 -5
  68. package/dist/dashboard/client.d.ts +2 -2
  69. package/dist/dashboard/client.d.ts.map +1 -1
  70. package/dist/dashboard/client.js +4 -1
  71. package/dist/file-info/adapters/file-system/index.d.ts +9 -0
  72. package/dist/file-info/adapters/file-system/index.d.ts.map +1 -0
  73. package/dist/file-info/adapters/file-system/index.js +25 -0
  74. package/dist/file-info/adapters/file-system/reader.d.ts +6 -0
  75. package/dist/file-info/adapters/file-system/reader.d.ts.map +1 -0
  76. package/dist/file-info/{file-system.js → adapters/file-system/reader.js} +16 -0
  77. package/dist/file-info/adapters/github/index.d.ts +11 -0
  78. package/dist/file-info/adapters/github/index.d.ts.map +1 -0
  79. package/dist/file-info/adapters/github/index.js +29 -0
  80. package/dist/file-info/adapters/github/reader.d.ts +16 -0
  81. package/dist/file-info/adapters/github/reader.d.ts.map +1 -0
  82. package/dist/file-info/adapters/github/reader.js +185 -0
  83. package/dist/file-info/index.d.ts +4 -0
  84. package/dist/file-info/index.d.ts.map +1 -0
  85. package/dist/file-info/index.js +10 -0
  86. package/dist/index.d.ts +2 -0
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +6 -1
  89. package/dist/recorder/index.d.ts +7 -3
  90. package/dist/recorder/index.d.ts.map +1 -1
  91. package/dist/recorder/index.js +181 -64
  92. package/dist/recorder/temp-files.d.ts +1 -1
  93. package/dist/recorder/temp-files.d.ts.map +1 -1
  94. package/dist/recorder/temp-files.js +2 -2
  95. package/dist/recorder/upload.d.ts +1 -1
  96. package/dist/recorder/upload.d.ts.map +1 -1
  97. package/dist/recorder/upload.js +3 -3
  98. package/dist/tools/{commit-and-create-pr.d.ts → commit-and-create-pr/index.d.ts} +1 -1
  99. package/dist/tools/commit-and-create-pr/index.d.ts.map +1 -0
  100. package/dist/tools/{commit-and-create-pr.js → commit-and-create-pr/index.js} +8 -28
  101. package/dist/tools/definitions/commit-and-create-pr.d.ts +3 -0
  102. package/dist/tools/definitions/commit-and-create-pr.d.ts.map +1 -0
  103. package/dist/tools/definitions/commit-and-create-pr.js +31 -0
  104. package/dist/tools/definitions/delete-file.d.ts +3 -0
  105. package/dist/tools/definitions/delete-file.d.ts.map +1 -0
  106. package/dist/tools/definitions/delete-file.js +20 -0
  107. package/dist/tools/{download-build.d.ts → definitions/download-build.d.ts} +2 -2
  108. package/dist/tools/definitions/download-build.d.ts.map +1 -0
  109. package/dist/tools/definitions/download-build.js +18 -0
  110. package/dist/tools/definitions/fetch-video-analysis.d.ts +11 -0
  111. package/dist/tools/definitions/fetch-video-analysis.d.ts.map +1 -0
  112. package/dist/tools/definitions/fetch-video-analysis.js +26 -0
  113. package/dist/tools/definitions/grep.d.ts +3 -0
  114. package/dist/tools/definitions/grep.d.ts.map +1 -0
  115. package/dist/tools/definitions/grep.js +29 -0
  116. package/dist/tools/definitions/merge-conflicts.d.ts +3 -0
  117. package/dist/tools/definitions/merge-conflicts.d.ts.map +1 -0
  118. package/dist/tools/definitions/merge-conflicts.js +24 -0
  119. package/dist/tools/definitions/run-test.d.ts +2 -2
  120. package/dist/tools/definitions/run-test.d.ts.map +1 -1
  121. package/dist/tools/definitions/run-test.js +4 -7
  122. package/dist/tools/definitions/str_replace_editor.d.ts.map +1 -1
  123. package/dist/tools/definitions/str_replace_editor.js +9 -5
  124. package/dist/tools/definitions/test-gen-browser.d.ts +5 -5
  125. package/dist/tools/definitions/test-gen-browser.d.ts.map +1 -1
  126. package/dist/tools/definitions/test-gen-browser.js +4 -7
  127. package/dist/tools/definitions/upgrade-packages.d.ts +36 -0
  128. package/dist/tools/definitions/upgrade-packages.d.ts.map +1 -0
  129. package/dist/tools/definitions/upgrade-packages.js +21 -0
  130. package/dist/tools/definitions/utils.d.ts +15 -0
  131. package/dist/tools/definitions/utils.d.ts.map +1 -0
  132. package/dist/tools/definitions/utils.js +16 -0
  133. package/dist/tools/{delete-file.d.ts → delete-file/index.d.ts} +1 -1
  134. package/dist/tools/delete-file/index.d.ts.map +1 -0
  135. package/dist/tools/{delete-file.js → delete-file/index.js} +4 -16
  136. package/dist/tools/diagnosis-fetcher.d.ts.map +1 -1
  137. package/dist/tools/diagnosis-fetcher.js +13 -11
  138. package/dist/tools/download-build/index.d.ts +3 -0
  139. package/dist/tools/download-build/index.d.ts.map +1 -0
  140. package/dist/tools/{download-build.js → download-build/index.js} +4 -14
  141. package/dist/tools/executor/index.d.ts.map +1 -1
  142. package/dist/tools/executor/index.js +19 -4
  143. package/dist/tools/executor/utils/git.js +1 -1
  144. package/dist/tools/executor/utils/pr-description.d.ts +1 -1
  145. package/dist/tools/executor/utils/pr-description.d.ts.map +1 -1
  146. package/dist/tools/fetch-image/index.d.ts +10 -1
  147. package/dist/tools/fetch-image/index.d.ts.map +1 -1
  148. package/dist/tools/fetch-image/index.js +1 -0
  149. package/dist/tools/fetch-last-successful-test-run/index.d.ts +3 -0
  150. package/dist/tools/fetch-last-successful-test-run/index.d.ts.map +1 -0
  151. package/dist/tools/fetch-last-successful-test-run/index.js +60 -0
  152. package/dist/tools/fetch-video-analysis/index.d.ts +5 -0
  153. package/dist/tools/fetch-video-analysis/index.d.ts.map +1 -0
  154. package/dist/tools/fetch-video-analysis/index.js +89 -0
  155. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts +24 -0
  156. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.d.ts.map +1 -0
  157. package/dist/tools/fetch-video-analysis/local-ffmpeg-client.js +209 -0
  158. package/dist/tools/fetch-video-analysis/utils.d.ts +10 -0
  159. package/dist/tools/fetch-video-analysis/utils.d.ts.map +1 -0
  160. package/dist/tools/fetch-video-analysis/utils.js +72 -0
  161. package/dist/tools/fetch-video-analysis/video-analysis.d.ts +7 -0
  162. package/dist/tools/fetch-video-analysis/video-analysis.d.ts.map +1 -0
  163. package/dist/tools/fetch-video-analysis/video-analysis.js +54 -0
  164. package/dist/tools/file-operations/create.d.ts +11 -0
  165. package/dist/tools/file-operations/create.d.ts.map +1 -0
  166. package/dist/tools/file-operations/create.js +60 -0
  167. package/dist/tools/file-operations/index.d.ts +15 -0
  168. package/dist/tools/file-operations/index.d.ts.map +1 -0
  169. package/dist/tools/file-operations/index.js +143 -0
  170. package/dist/tools/file-operations/insert.d.ts +11 -0
  171. package/dist/tools/file-operations/insert.d.ts.map +1 -0
  172. package/dist/tools/file-operations/insert.js +61 -0
  173. package/dist/tools/file-operations/replace.d.ts +11 -0
  174. package/dist/tools/file-operations/replace.d.ts.map +1 -0
  175. package/dist/tools/file-operations/replace.js +80 -0
  176. package/dist/tools/file-operations/shared/git-helper.d.ts +4 -0
  177. package/dist/tools/file-operations/shared/git-helper.d.ts.map +1 -0
  178. package/dist/tools/file-operations/shared/git-helper.js +29 -0
  179. package/dist/tools/file-operations/shared/helpers.d.ts +19 -0
  180. package/dist/tools/file-operations/shared/helpers.d.ts.map +1 -0
  181. package/dist/tools/file-operations/shared/helpers.js +133 -0
  182. package/dist/tools/file-operations/view/index.d.ts +14 -0
  183. package/dist/tools/file-operations/view/index.d.ts.map +1 -0
  184. package/dist/tools/file-operations/view/index.js +56 -0
  185. package/dist/tools/grep/index.d.ts.map +1 -1
  186. package/dist/tools/grep/index.js +2 -9
  187. package/dist/tools/grep/ripgrep/index.d.ts +2 -2
  188. package/dist/tools/grep/ripgrep/index.d.ts.map +1 -1
  189. package/dist/tools/grep/ripgrep/index.js +3 -3
  190. package/dist/tools/grep/types.d.ts.map +1 -0
  191. package/dist/tools/index.d.ts +7 -2
  192. package/dist/tools/index.d.ts.map +1 -1
  193. package/dist/tools/index.js +66 -22
  194. package/dist/tools/issues/create-issue.d.ts +3 -0
  195. package/dist/tools/issues/create-issue.d.ts.map +1 -0
  196. package/dist/tools/issues/create-issue.js +76 -0
  197. package/dist/tools/issues/index.d.ts +4 -0
  198. package/dist/tools/issues/index.d.ts.map +1 -0
  199. package/dist/tools/issues/index.js +9 -0
  200. package/dist/tools/issues/list-issues.d.ts +3 -0
  201. package/dist/tools/issues/list-issues.d.ts.map +1 -0
  202. package/dist/tools/issues/list-issues.js +32 -0
  203. package/dist/tools/issues/metadata-schema.d.ts +24 -0
  204. package/dist/tools/issues/metadata-schema.d.ts.map +1 -0
  205. package/dist/tools/issues/metadata-schema.js +22 -0
  206. package/dist/tools/issues/update-issue.d.ts +3 -0
  207. package/dist/tools/issues/update-issue.d.ts.map +1 -0
  208. package/dist/tools/issues/update-issue.js +75 -0
  209. package/dist/tools/issues/utils.d.ts +5 -0
  210. package/dist/tools/issues/utils.d.ts.map +1 -0
  211. package/dist/tools/issues/utils.js +26 -0
  212. package/dist/tools/list-environments.d.ts.map +1 -1
  213. package/dist/tools/list-environments.js +4 -0
  214. package/dist/tools/{merge-conflicts.d.ts → merge-conflicts/index.d.ts} +1 -1
  215. package/dist/tools/merge-conflicts/index.d.ts.map +1 -0
  216. package/dist/tools/{merge-conflicts.js → merge-conflicts/index.js} +3 -19
  217. package/dist/tools/test-gen-browser.js +4 -4
  218. package/dist/tools/test-run-fetcher/index.d.ts.map +1 -1
  219. package/dist/tools/test-run-fetcher/index.js +4 -0
  220. package/dist/tools/trace-dot-zip/index.d.ts +3 -0
  221. package/dist/tools/trace-dot-zip/index.d.ts.map +1 -0
  222. package/dist/tools/trace-dot-zip/index.js +48 -0
  223. package/dist/tools/trace-dot-zip/types.d.ts +86 -0
  224. package/dist/tools/trace-dot-zip/types.d.ts.map +1 -0
  225. package/dist/tools/trace-dot-zip/types.js +2 -0
  226. package/dist/tools/trace-dot-zip/utils/console-trace.d.ts +7 -0
  227. package/dist/tools/trace-dot-zip/utils/console-trace.d.ts.map +1 -0
  228. package/dist/tools/trace-dot-zip/utils/console-trace.js +34 -0
  229. package/dist/tools/trace-dot-zip/utils/extract-zip.d.ts +21 -0
  230. package/dist/tools/trace-dot-zip/utils/extract-zip.d.ts.map +1 -0
  231. package/dist/tools/trace-dot-zip/utils/extract-zip.js +174 -0
  232. package/dist/tools/trace-dot-zip/utils/network-trace.d.ts +21 -0
  233. package/dist/tools/trace-dot-zip/utils/network-trace.d.ts.map +1 -0
  234. package/dist/tools/trace-dot-zip/utils/network-trace.js +189 -0
  235. package/dist/tools/triage-summary/index.d.ts +3 -0
  236. package/dist/tools/triage-summary/index.d.ts.map +1 -0
  237. package/dist/tools/triage-summary/index.js +51 -0
  238. package/dist/tools/triage-summary/types.d.ts +5 -0
  239. package/dist/tools/triage-summary/types.d.ts.map +1 -0
  240. package/dist/tools/triage-summary/types.js +2 -0
  241. package/dist/tools/triage-summary/utils.d.ts +4 -0
  242. package/dist/tools/triage-summary/utils.d.ts.map +1 -0
  243. package/dist/tools/triage-summary/utils.js +16 -0
  244. package/dist/tools/upgrade-packages/index.d.ts.map +1 -1
  245. package/dist/tools/upgrade-packages/index.js +5 -15
  246. package/dist/tools/view-failed-test-run-report/index.d.ts +12 -0
  247. package/dist/tools/view-failed-test-run-report/index.d.ts.map +1 -0
  248. package/dist/tools/view-failed-test-run-report/index.js +163 -0
  249. package/dist/trace-utils/index.d.ts +4 -0
  250. package/dist/trace-utils/index.d.ts.map +1 -0
  251. package/dist/trace-utils/index.js +10 -0
  252. package/dist/utils/dedup-image-fs.d.ts +27 -0
  253. package/dist/utils/dedup-image-fs.d.ts.map +1 -0
  254. package/dist/utils/dedup-image-fs.js +88 -0
  255. package/dist/utils/dedup-image.d.ts +25 -0
  256. package/dist/utils/dedup-image.d.ts.map +1 -0
  257. package/dist/utils/dedup-image.js +80 -0
  258. package/dist/utils/env.d.ts.map +1 -1
  259. package/dist/utils/env.js +0 -1
  260. package/dist/utils/json.js +1 -1
  261. package/dist/utils/model.d.ts +3 -0
  262. package/dist/utils/model.d.ts.map +1 -0
  263. package/dist/utils/model.js +18 -0
  264. package/dist/utils/playwright-report-parser.d.ts +13 -0
  265. package/dist/utils/playwright-report-parser.d.ts.map +1 -0
  266. package/dist/utils/playwright-report-parser.js +138 -0
  267. package/dist/utils/slug.d.ts +1 -0
  268. package/dist/utils/slug.d.ts.map +1 -1
  269. package/dist/utils/slug.js +9 -1
  270. package/dist/utils/stripAnsi.d.ts.map +1 -1
  271. package/dist/utils/stripAnsi.js +1 -3
  272. package/eslint.config.mjs +43 -0
  273. package/package.json +22 -6
  274. package/tsconfig.tsbuildinfo +1 -1
  275. package/dist/agent/codegen/generate-code-apply-changes.d.ts +0 -13
  276. package/dist/agent/codegen/generate-code-apply-changes.d.ts.map +0 -1
  277. package/dist/agent/codegen/generate-code-apply-changes.js +0 -379
  278. package/dist/agent/codegen/repo-edit.d.ts +0 -23
  279. package/dist/agent/codegen/repo-edit.d.ts.map +0 -1
  280. package/dist/agent/codegen/repo-edit.js +0 -81
  281. package/dist/agent/codegen/run.d.ts +0 -20
  282. package/dist/agent/codegen/run.d.ts.map +0 -1
  283. package/dist/agent/codegen/run.js +0 -116
  284. package/dist/agent/enrich-prompt/index.d.ts +0 -12
  285. package/dist/agent/enrich-prompt/index.d.ts.map +0 -1
  286. package/dist/agent/enrich-prompt/index.js +0 -80
  287. package/dist/agent/enrich-prompt/utils.d.ts +0 -6
  288. package/dist/agent/enrich-prompt/utils.d.ts.map +0 -1
  289. package/dist/agent/enrich-prompt/utils.js +0 -11
  290. package/dist/agent/infer-agent/index.d.ts +0 -10
  291. package/dist/agent/infer-agent/index.d.ts.map +0 -1
  292. package/dist/agent/infer-agent/index.js +0 -60
  293. package/dist/evals/add-scenario-agent.evals.d.ts +0 -4
  294. package/dist/evals/add-scenario-agent.evals.d.ts.map +0 -1
  295. package/dist/evals/add-scenario-agent.evals.js +0 -44
  296. package/dist/evals/infer-master-or-code-agent.evals.d.ts +0 -4
  297. package/dist/evals/infer-master-or-code-agent.evals.d.ts.map +0 -1
  298. package/dist/evals/infer-master-or-code-agent.evals.js +0 -22
  299. package/dist/file-info/file-system.d.ts +0 -3
  300. package/dist/file-info/file-system.d.ts.map +0 -1
  301. package/dist/file-info/github.d.ts +0 -3
  302. package/dist/file-info/github.d.ts.map +0 -1
  303. package/dist/file-info/github.js +0 -107
  304. package/dist/tools/commit-and-create-pr.d.ts.map +0 -1
  305. package/dist/tools/delete-file.d.ts.map +0 -1
  306. package/dist/tools/download-build.d.ts.map +0 -1
  307. package/dist/tools/grep/ripgrep/types.d.ts.map +0 -1
  308. package/dist/tools/merge-conflicts.d.ts.map +0 -1
  309. package/dist/tools/str_replace_editor.d.ts +0 -22
  310. package/dist/tools/str_replace_editor.d.ts.map +0 -1
  311. package/dist/tools/str_replace_editor.js +0 -429
  312. /package/dist/tools/grep/{ripgrep/types.d.ts → types.d.ts} +0 -0
  313. /package/dist/tools/grep/{ripgrep/types.js → types.js} +0 -0
@@ -1,4 +1,9 @@
1
- import { ServicePayload, SupportedChatModels } from "@empiricalrun/shared-types";
2
- export declare function availableTools(model?: SupportedChatModels): import("@empiricalrun/shared-types").ToolDefinition[];
1
+ import { PendingToolCall, ServicePayload, SupportedChatModels, Tool, ToolDefinition } from "@empiricalrun/shared-types";
2
+ type ToolOrToolDefinition = Tool | ToolDefinition;
3
+ export declare const allToolsDefinitions: ToolOrToolDefinition[];
4
+ export declare function availableTools(model?: SupportedChatModels, isTriage?: boolean): Array<ToolDefinition | Tool>;
5
+ export declare function toolsNeedBrowser(toolCalls: PendingToolCall[]): boolean;
6
+ export declare function nameForTelemetry(toolCall: PendingToolCall): string;
3
7
  export declare function sendToolRequestToRemoteQueue(payload: ServicePayload): Promise<void>;
8
+ export {};
4
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAkBpC,wBAAgB,cAAc,CAAC,KAAK,CAAC,EAAE,mBAAmB,yDAoBzD;AAUD,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,cAAc,iBAoBzE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACf,MAAM,4BAA4B,CAAC;AAwBpC,KAAK,oBAAoB,GAAG,IAAI,GAAG,cAAc,CAAC;AAiClD,eAAO,MAAM,mBAAmB,EAAE,oBAAoB,EAIrD,CAAC;AAEF,wBAAgB,cAAc,CAC5B,KAAK,CAAC,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,OAAO,GACjB,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC,CAW9B;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,eAAe,EAAE,WAM5D;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAQlE;AAED,wBAAsB,4BAA4B,CAAC,OAAO,EAAE,cAAc,iBAoBzE"}
@@ -1,39 +1,73 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.allToolsDefinitions = void 0;
3
4
  exports.availableTools = availableTools;
5
+ exports.toolsNeedBrowser = toolsNeedBrowser;
6
+ exports.nameForTelemetry = nameForTelemetry;
4
7
  exports.sendToolRequestToRemoteQueue = sendToolRequestToRemoteQueue;
5
8
  const chat_1 = require("@empiricalrun/llm/chat");
6
9
  const SQSClient_1 = require("../utils/SQSClient");
7
- const commit_and_create_pr_1 = require("./commit-and-create-pr");
10
+ const commit_and_create_pr_1 = require("./definitions/commit-and-create-pr");
11
+ const delete_file_1 = require("./definitions/delete-file");
12
+ const download_build_1 = require("./definitions/download-build");
13
+ const fetch_video_analysis_1 = require("./definitions/fetch-video-analysis");
14
+ const grep_1 = require("./definitions/grep");
15
+ const merge_conflicts_1 = require("./definitions/merge-conflicts");
8
16
  const run_test_1 = require("./definitions/run-test");
9
17
  const str_replace_editor_1 = require("./definitions/str_replace_editor");
10
18
  const test_gen_browser_1 = require("./definitions/test-gen-browser");
11
- const delete_file_1 = require("./delete-file");
19
+ const upgrade_packages_1 = require("./definitions/upgrade-packages");
12
20
  const diagnosis_fetcher_1 = require("./diagnosis-fetcher");
13
- const download_build_1 = require("./download-build");
14
21
  const fetch_image_1 = require("./fetch-image");
15
- const grep_1 = require("./grep");
22
+ const fetch_last_successful_test_run_1 = require("./fetch-last-successful-test-run");
23
+ const issues_1 = require("./issues");
16
24
  const list_environments_1 = require("./list-environments");
17
- const merge_conflicts_1 = require("./merge-conflicts");
18
25
  const test_run_fetcher_1 = require("./test-run-fetcher");
19
- const upgrade_packages_1 = require("./upgrade-packages");
26
+ const trace_dot_zip_1 = require("./trace-dot-zip");
27
+ const triage_summary_1 = require("./triage-summary");
20
28
  const queue_1 = require("./utils/queue");
21
- function availableTools(model) {
22
- // TODO: Keep this list in sync with the ToolExecutor
23
- const tools = [
24
- run_test_1.runTestTool,
25
- test_gen_browser_1.generateTestWithBrowserAgent,
26
- grep_1.grepTool,
27
- test_run_fetcher_1.fetchTestRunReportTool,
28
- diagnosis_fetcher_1.fetchDiagnosisReportTool,
29
- commit_and_create_pr_1.createPullRequestTool,
30
- merge_conflicts_1.mergeConflictsTool,
31
- list_environments_1.listEnvironmentsTool,
32
- download_build_1.downloadBuildTool,
33
- upgrade_packages_1.upgradePackagesTool,
34
- fetch_image_1.fetchImageTool,
35
- delete_file_1.deleteFileTool,
36
- ];
29
+ const view_failed_test_run_report_1 = require("./view-failed-test-run-report");
30
+ // TODO: Keep this list in sync with the ToolExecutor
31
+ // Search for "Tool Executor Tools List"
32
+ const commonTools = [
33
+ run_test_1.runTestTool,
34
+ grep_1.grepTool,
35
+ diagnosis_fetcher_1.fetchDiagnosisReportTool,
36
+ list_environments_1.listEnvironmentsTool,
37
+ download_build_1.downloadBuildTool,
38
+ fetch_image_1.fetchImageTool,
39
+ trace_dot_zip_1.traceDotZipTool,
40
+ ];
41
+ const testGenerationTools = [
42
+ test_gen_browser_1.generateTestWithBrowserAgent,
43
+ commit_and_create_pr_1.createPullRequestTool,
44
+ merge_conflicts_1.mergeConflictsTool,
45
+ delete_file_1.deleteFileTool,
46
+ upgrade_packages_1.upgradePackagesTool,
47
+ test_run_fetcher_1.fetchTestRunReportTool,
48
+ ];
49
+ const triageOnlyTools = [
50
+ issues_1.listIssuesTool,
51
+ issues_1.createIssueTool,
52
+ issues_1.updateIssueTool,
53
+ view_failed_test_run_report_1.viewFailedTestRunReportTool,
54
+ fetch_video_analysis_1.fetchVideoAnalysis,
55
+ fetch_last_successful_test_run_1.fetchLastSuccessfulTestRunTool,
56
+ triage_summary_1.sendTriageSummaryTool,
57
+ ];
58
+ exports.allToolsDefinitions = [
59
+ ...commonTools,
60
+ ...testGenerationTools,
61
+ ...triageOnlyTools,
62
+ ];
63
+ function availableTools(model, isTriage) {
64
+ let tools = [...commonTools];
65
+ if (isTriage) {
66
+ tools = [...tools, ...triageOnlyTools];
67
+ }
68
+ else {
69
+ tools = [...tools, ...testGenerationTools];
70
+ }
37
71
  if (model && (0, chat_1.getProviderForModel)(model) !== "claude") {
38
72
  tools.push(...Object.values(str_replace_editor_1.textEditorTools));
39
73
  }
@@ -43,6 +77,16 @@ function toolsNeedBrowser(toolCalls) {
43
77
  const allTools = availableTools();
44
78
  return toolCalls.some((toolCall) => allTools.find((t) => t.schema.name === toolCall.name)?.needsBrowser);
45
79
  }
80
+ function nameForTelemetry(toolCall) {
81
+ const toolName = toolCall.name;
82
+ const isTextEditorTool = !!toolCall.input["command"];
83
+ if (isTextEditorTool && toolCall.input["command"]) {
84
+ return `${toolName}: ${toolCall.input["command"]}`;
85
+ }
86
+ else {
87
+ return toolName;
88
+ }
89
+ }
46
90
  async function sendToolRequestToRemoteQueue(payload) {
47
91
  const needsBrowser = toolsNeedBrowser(payload.toolCalls);
48
92
  const queueUrl = (0, queue_1.getQueueUrl)(payload.toolCalls, needsBrowser);
@@ -0,0 +1,3 @@
1
+ import type { Tool } from "@empiricalrun/shared-types";
2
+ export declare const createIssueTool: Tool;
3
+ //# sourceMappingURL=create-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-issue.d.ts","sourceRoot":"","sources":["../../../src/tools/issues/create-issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AA2BvD,eAAO,MAAM,eAAe,EAAE,IAmE7B,CAAC"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createIssueTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const metadata_schema_1 = require("./metadata-schema");
6
+ const utils_1 = require("./utils");
7
+ const createIssueSchema = zod_1.z.object({
8
+ title: zod_1.z.string().describe("A short, descriptive title for the issue"),
9
+ description: zod_1.z
10
+ .string()
11
+ .describe("A detailed description of the issue. Include context, steps to reproduce, expected vs actual behavior, and any relevant information."),
12
+ issue_type: zod_1.z
13
+ .enum(["app", "test", "unknown"])
14
+ .describe("The type of issue. Options: app, test, unknown. You can use 'unknown' if you are unsure about the type."),
15
+ test_issue_prompt: zod_1.z
16
+ .string()
17
+ .optional()
18
+ .describe("A prompt that suggests how to fix test type issues. This prompt is used to modify the test to adapt to the new state of the app."),
19
+ ...metadata_schema_1.issueMetadataFields,
20
+ });
21
+ exports.createIssueTool = {
22
+ schema: {
23
+ name: "createIssue",
24
+ description: `This tool allows you to create an issue in the project's issue tracking system. You MUST check if a similar issue already exists with the list issue before creating a new one.`,
25
+ parameters: createIssueSchema,
26
+ },
27
+ needsBrowser: false,
28
+ isInlineTool: true,
29
+ execute: async ({ input, apiClient, chatSession }) => {
30
+ try {
31
+ const { title, description, issue_type = "unknown", test_issue_prompt, test_cases_affected = [], test_run_info = [], } = input;
32
+ if (!chatSession?.id) {
33
+ throw new Error("Cannot create issue without a chat session ID.");
34
+ }
35
+ if (issue_type === "test" && !test_issue_prompt) {
36
+ throw new Error("test_issue_prompt is required for test type issues.");
37
+ }
38
+ if (!apiClient) {
39
+ throw new Error("Dashboard API client is not available.");
40
+ }
41
+ const response = await (0, utils_1.createIssue)(apiClient, {
42
+ title,
43
+ description,
44
+ issue_type,
45
+ test_issue_prompt,
46
+ triage_session_id: chatSession?.id,
47
+ test_cases_affected,
48
+ test_run_info,
49
+ });
50
+ if (!response.data?.issue) {
51
+ return {
52
+ isError: true,
53
+ result: `Failed to create issue: ${response.error?.message}`,
54
+ };
55
+ }
56
+ const issue = response.data?.issue;
57
+ const baseUrl = apiClient.getBaseUrl();
58
+ const issueUrl = `${baseUrl}/issues?issueId=${issue?.id}`;
59
+ const result = `Successfully created issue #${issue?.id}: ${issue?.title}
60
+ Issue URL: ${issueUrl}
61
+ Issue JSON:
62
+ ${JSON.stringify(issue, null, 2)}
63
+ `;
64
+ return {
65
+ isError: false,
66
+ result,
67
+ };
68
+ }
69
+ catch (error) {
70
+ return {
71
+ isError: true,
72
+ result: `Failed to create issue: ${error instanceof Error ? error.message : String(error)}`,
73
+ };
74
+ }
75
+ },
76
+ };
@@ -0,0 +1,4 @@
1
+ export { createIssueTool } from "./create-issue";
2
+ export { listIssuesTool } from "./list-issues";
3
+ export { updateIssueTool } from "./update-issue";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/issues/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateIssueTool = exports.listIssuesTool = exports.createIssueTool = void 0;
4
+ var create_issue_1 = require("./create-issue");
5
+ Object.defineProperty(exports, "createIssueTool", { enumerable: true, get: function () { return create_issue_1.createIssueTool; } });
6
+ var list_issues_1 = require("./list-issues");
7
+ Object.defineProperty(exports, "listIssuesTool", { enumerable: true, get: function () { return list_issues_1.listIssuesTool; } });
8
+ var update_issue_1 = require("./update-issue");
9
+ Object.defineProperty(exports, "updateIssueTool", { enumerable: true, get: function () { return update_issue_1.updateIssueTool; } });
@@ -0,0 +1,3 @@
1
+ import type { Tool } from "@empiricalrun/shared-types";
2
+ export declare const listIssuesTool: Tool;
3
+ //# sourceMappingURL=list-issues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-issues.d.ts","sourceRoot":"","sources":["../../../src/tools/issues/list-issues.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAKvD,eAAO,MAAM,cAAc,EAAE,IA2B5B,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.listIssuesTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const utils_1 = require("./utils");
6
+ exports.listIssuesTool = {
7
+ schema: {
8
+ name: "listIssues",
9
+ description: `This tool allows you to list all open issues. You MUST use this tool before creating new issues to identify whether the issue already exists, and if it does you MUST NOT create a new issue.`,
10
+ parameters: zod_1.z.object({}),
11
+ },
12
+ needsBrowser: false,
13
+ isInlineTool: true,
14
+ execute: async ({ apiClient }) => {
15
+ try {
16
+ if (!apiClient) {
17
+ throw new Error("Dashboard API client is not available.");
18
+ }
19
+ const response = await (0, utils_1.fetchIssues)(apiClient);
20
+ return {
21
+ isError: false,
22
+ result: JSON.stringify(response.data?.issues),
23
+ };
24
+ }
25
+ catch (error) {
26
+ return {
27
+ isError: true,
28
+ result: `Failed to list issues: ${error instanceof Error ? error.message : String(error)}`,
29
+ };
30
+ }
31
+ },
32
+ };
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ export declare const issueMetadataFields: {
3
+ test_cases_affected: z.ZodArray<z.ZodObject<{
4
+ name: z.ZodString;
5
+ suites: z.ZodArray<z.ZodString, "many">;
6
+ file_path: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ name: string;
9
+ suites: string[];
10
+ file_path: string;
11
+ }, {
12
+ name: string;
13
+ suites: string[];
14
+ file_path: string;
15
+ }>, "many">;
16
+ test_run_info: z.ZodArray<z.ZodObject<{
17
+ test_run_id: z.ZodNumber;
18
+ }, "strip", z.ZodTypeAny, {
19
+ test_run_id: number;
20
+ }, {
21
+ test_run_id: number;
22
+ }>, "many">;
23
+ };
24
+ //# sourceMappingURL=metadata-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-schema.d.ts","sourceRoot":"","sources":["../../../src/tools/issues/metadata-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;CAwB/B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.issueMetadataFields = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.issueMetadataFields = {
6
+ test_cases_affected: zod_1.z
7
+ .array(zod_1.z.object({
8
+ name: zod_1.z.string().describe("The test case name"),
9
+ suites: zod_1.z
10
+ .array(zod_1.z.string())
11
+ .describe("The nested suite names (describe blocks) leading to this test"),
12
+ file_path: zod_1.z.string().describe("The file path of the test case"),
13
+ }))
14
+ .describe("An array of test cases that are affected by this issue"),
15
+ test_run_info: zod_1.z
16
+ .array(zod_1.z.object({
17
+ test_run_id: zod_1.z
18
+ .number()
19
+ .describe("The ID of the test run in which this issue was observed"),
20
+ }))
21
+ .describe("An array of test runs where this issue occurred"),
22
+ };
@@ -0,0 +1,3 @@
1
+ import type { Tool } from "@empiricalrun/shared-types";
2
+ export declare const updateIssueTool: Tool;
3
+ //# sourceMappingURL=update-issue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-issue.d.ts","sourceRoot":"","sources":["../../../src/tools/issues/update-issue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAwBvD,eAAO,MAAM,eAAe,EAAE,IA4D7B,CAAC"}
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateIssueTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const metadata_schema_1 = require("./metadata-schema");
6
+ const utils_1 = require("./utils");
7
+ const updateIssueSchema = zod_1.z.object({
8
+ id: zod_1.z.number().describe("The ID of the issue to update"),
9
+ title: zod_1.z.string().optional().describe("Updated title of the issue"),
10
+ description: zod_1.z
11
+ .string()
12
+ .optional()
13
+ .describe("Updated description of the issue"),
14
+ issue_type: zod_1.z
15
+ .enum(["app", "test", "unknown"])
16
+ .optional()
17
+ .describe("Updated issue type"),
18
+ test_issue_prompt: zod_1.z
19
+ .string()
20
+ .optional()
21
+ .describe("Updated test issue prompt"),
22
+ ...metadata_schema_1.issueMetadataFields,
23
+ });
24
+ exports.updateIssueTool = {
25
+ schema: {
26
+ name: "updateIssue",
27
+ description: `This tool allows you to update an existing issue in the project's issue tracking system. You can update the title, description, issue type, or test issue prompt. use this tool to update existing issue to prevent duplication of issues.`,
28
+ parameters: updateIssueSchema,
29
+ },
30
+ needsBrowser: false,
31
+ isInlineTool: true,
32
+ execute: async ({ input, apiClient }) => {
33
+ try {
34
+ const { id, title, description, issue_type, test_issue_prompt, test_cases_affected = [], test_run_info = [], } = input;
35
+ if (!apiClient) {
36
+ throw new Error("Dashboard API client is not available.");
37
+ }
38
+ const updateData = {
39
+ test_cases_affected,
40
+ test_run_info,
41
+ };
42
+ if (title !== undefined)
43
+ updateData.title = title;
44
+ if (description !== undefined)
45
+ updateData.description = description;
46
+ if (issue_type !== undefined)
47
+ updateData.issue_type = issue_type;
48
+ if (test_issue_prompt !== undefined)
49
+ updateData.test_issue_prompt = test_issue_prompt;
50
+ const response = await (0, utils_1.updateIssue)(apiClient, id, updateData);
51
+ if (!response.data?.issue) {
52
+ return {
53
+ isError: true,
54
+ result: `Failed to update issue: ${response.error?.message}`,
55
+ };
56
+ }
57
+ const issue = response.data?.issue;
58
+ const result = `Successfully updated issue #${issue?.id}: ${issue?.title}
59
+
60
+ Updated Issue JSON:
61
+ ${JSON.stringify(issue, null, 2)}
62
+ `;
63
+ return {
64
+ isError: false,
65
+ result,
66
+ };
67
+ }
68
+ catch (error) {
69
+ return {
70
+ isError: true,
71
+ result: `Failed to update issue: ${error instanceof Error ? error.message : String(error)}`,
72
+ };
73
+ }
74
+ },
75
+ };
@@ -0,0 +1,5 @@
1
+ import type { CreateIssueApiResponse, GetIssuesApiResponse, IDashboardAPIClient, Issue, UpdateIssueApiResponse } from "@empiricalrun/shared-types";
2
+ export declare function fetchIssues(apiClient: IDashboardAPIClient): Promise<GetIssuesApiResponse<Issue>>;
3
+ export declare function createIssue(apiClient: IDashboardAPIClient, issueData: Omit<Issue, "id" | "created_at" | "updated_at" | "status" | "project_id">): Promise<CreateIssueApiResponse<Issue>>;
4
+ export declare function updateIssue(apiClient: IDashboardAPIClient, issueId: number, updateData: Partial<Omit<Issue, "id" | "created_at" | "updated_at" | "project_id">>): Promise<UpdateIssueApiResponse<Issue>>;
5
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/issues/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,EACL,sBAAsB,EACvB,MAAM,4BAA4B,CAAC;AAEpC,wBAAsB,WAAW,CAC/B,SAAS,EAAE,mBAAmB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAStC;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,mBAAmB,EAC9B,SAAS,EAAE,IAAI,CACb,KAAK,EACL,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,QAAQ,GAAG,YAAY,CAC7D,GACA,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CASxC;AAED,wBAAsB,WAAW,CAC/B,SAAS,EAAE,mBAAmB,EAC9B,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,CACjB,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,YAAY,GAAG,YAAY,GAAG,YAAY,CAAC,CAC/D,GACA,OAAO,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CASxC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchIssues = fetchIssues;
4
+ exports.createIssue = createIssue;
5
+ exports.updateIssue = updateIssue;
6
+ async function fetchIssues(apiClient) {
7
+ const response = await apiClient.request(`/api/issues`, { method: "GET", params: { status: "open" } });
8
+ if (!response || !response.data || !response.data.issues) {
9
+ throw new Error("Failed to fetch issues: No response data received.");
10
+ }
11
+ return response;
12
+ }
13
+ async function createIssue(apiClient, issueData) {
14
+ const response = await apiClient.request("/api/issues", { method: "POST", body: issueData });
15
+ if (!response || !response.data || !response.data.issue) {
16
+ throw new Error("Failed to create issue: No response data received.");
17
+ }
18
+ return response;
19
+ }
20
+ async function updateIssue(apiClient, issueId, updateData) {
21
+ const response = await apiClient.request(`/api/issues/${issueId}`, { method: "PATCH", body: updateData });
22
+ if (!response || !response.data || !response.data.issue) {
23
+ throw new Error("Failed to update issue: No response data received.");
24
+ }
25
+ return response;
26
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"list-environments.d.ts","sourceRoot":"","sources":["../../src/tools/list-environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGvD,eAAO,MAAM,oBAAoB,EAAE,IA2ClC,CAAC"}
1
+ {"version":3,"file":"list-environments.d.ts","sourceRoot":"","sources":["../../src/tools/list-environments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAGvD,eAAO,MAAM,oBAAoB,EAAE,IAgDlC,CAAC"}
@@ -9,8 +9,12 @@ exports.listEnvironmentsTool = {
9
9
  parameters: zod_1.z.object({}),
10
10
  },
11
11
  needsBrowser: false,
12
+ isInlineTool: true,
12
13
  execute: async ({ apiClient }) => {
13
14
  let response;
15
+ if (!apiClient) {
16
+ throw new Error("Dashboard API client is not available.");
17
+ }
14
18
  try {
15
19
  response = await apiClient.request(`/api/environments/list`, {
16
20
  method: "GET",
@@ -1,3 +1,3 @@
1
1
  import type { Tool } from "@empiricalrun/shared-types";
2
2
  export declare const mergeConflictsTool: Tool;
3
- //# sourceMappingURL=merge-conflicts.d.ts.map
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/merge-conflicts/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AA2CvD,eAAO,MAAM,kBAAkB,EAAE,IAiDhC,CAAC"}
@@ -7,8 +7,8 @@ exports.mergeConflictsTool = void 0;
7
7
  const child_process_1 = require("child_process");
8
8
  const fs_1 = __importDefault(require("fs"));
9
9
  const path_1 = __importDefault(require("path"));
10
- const zod_1 = require("zod");
11
- const git_1 = require("./executor/utils/git");
10
+ const merge_conflicts_1 = require("../definitions/merge-conflicts");
11
+ const git_1 = require("../executor/utils/git");
12
12
  function runMergeMain(repoPath) {
13
13
  try {
14
14
  (0, child_process_1.execSync)("git merge --no-ff origin/main", { stdio: "pipe", cwd: repoPath });
@@ -40,24 +40,8 @@ function getConflictedFilesWithContents(repoPath) {
40
40
  });
41
41
  return filesWithContents;
42
42
  }
43
- const mergeConflictsToolScheme = zod_1.z.object({});
44
43
  exports.mergeConflictsTool = {
45
- schema: {
46
- name: "checkForMergeConflicts",
47
- description: `This tool runs the git merge command to merge main into your
48
- current working branch with the following command.
49
-
50
- \`\`\`
51
- git merge --no-ff origin/main
52
- \`\`\`
53
-
54
- If this commands fails with merge conflicts, it will still create a dirty commit
55
- that has merge conflicts, which can be resolved with the file editing tools that you are
56
- provided with.
57
- `,
58
- parameters: mergeConflictsToolScheme,
59
- },
60
- needsBrowser: false,
44
+ ...merge_conflicts_1.mergeConflictsTool,
61
45
  execute: async ({ repoPath }) => {
62
46
  try {
63
47
  // Fetch main branch (git clone runs --single-branch), and then run merge
@@ -40,15 +40,15 @@ exports.generateTestWithBrowserAgent = {
40
40
  result: `Error reading playwright config: ${error}`,
41
41
  };
42
42
  }
43
- const { testName, testSuites } = input;
43
+ const { testName, suites } = input;
44
44
  if (!(0, web_1.hasTestBlock)({
45
45
  testName,
46
- testSuites,
46
+ suites,
47
47
  filePath: absoluteFilePath,
48
48
  })) {
49
49
  return {
50
50
  isError: true,
51
- result: `Test block not found for test name: "${testName}" in file: "${filePath}" with describe blocks: "${testSuites.join(", ")}"`,
51
+ result: `Test block not found for test name: "${testName}" in file: "${filePath}" with describe blocks: "${suites.join(", ")}"`,
52
52
  };
53
53
  }
54
54
  // Prepare the file for the browser agent
@@ -87,7 +87,7 @@ exports.generateTestWithBrowserAgent = {
87
87
  console.log("[generateTestWithBrowserAgent] Validations passed, starting agent");
88
88
  const agentResult = await (0, run_1.runBrowsingAgent)({
89
89
  testCaseName: testName,
90
- testCaseSuites: testSuites,
90
+ testCaseSuites: suites,
91
91
  testFilePath: filePath,
92
92
  filePathToUpdate: filePath,
93
93
  projectName: project,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/test-run-fetcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAavD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,eAAO,MAAM,sBAAsB,EAAE,IA0HpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/test-run-fetcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAavD,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOnE;AAED,eAAO,MAAM,sBAAsB,EAAE,IA8HpC,CAAC"}
@@ -24,6 +24,7 @@ exports.fetchTestRunReportTool = {
24
24
  parameters: TestRunSchema,
25
25
  },
26
26
  needsBrowser: false,
27
+ isInlineTool: true,
27
28
  execute: async ({ input, apiClient }) => {
28
29
  const { testRunUrl } = input;
29
30
  // Remove query parameters if they exist
@@ -39,6 +40,9 @@ exports.fetchTestRunReportTool = {
39
40
  };
40
41
  }
41
42
  let data = null;
43
+ if (!apiClient) {
44
+ throw new Error("Dashboard API client is not available.");
45
+ }
42
46
  try {
43
47
  data = await apiClient.request(`/api/test-runs/${runId}?repo_name=${repoName}`, { method: "GET" });
44
48
  }
@@ -0,0 +1,3 @@
1
+ import { Tool } from "@empiricalrun/shared-types";
2
+ export declare const traceDotZipTool: Tool;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/trace-dot-zip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAa9D,eAAO,MAAM,eAAe,EAAE,IAqD7B,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.traceDotZipTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const console_trace_1 = require("./utils/console-trace");
6
+ const network_trace_1 = require("./utils/network-trace");
7
+ const TraceDotZipFileInputSchema = zod_1.z.object({
8
+ url: zod_1.z.string().describe(`The URL to the "trace.zip" file.`),
9
+ });
10
+ exports.traceDotZipTool = {
11
+ schema: {
12
+ name: "traceDotZip",
13
+ description: `Extracts failed network request and console error traces from a Playwright trace zip file. Pass a trace.zip URL to this tool and get a summary of failed network calls (by status codes) and console error logs (by "messageType") to understand network activity and console logs during the test run.`,
14
+ parameters: TraceDotZipFileInputSchema,
15
+ },
16
+ needsBrowser: false,
17
+ isInlineTool: false, // TODO: Can be true if we can pass the trace.zip file content directly by preprocessing it
18
+ execute: async ({ input, }) => {
19
+ try {
20
+ const traceFileUrl = input.url;
21
+ if (!traceFileUrl) {
22
+ return {
23
+ isError: true,
24
+ result: "No trace.zip URL provided",
25
+ };
26
+ }
27
+ const [networkTraceOutput, consoleTraceOutput] = await Promise.all([
28
+ (0, network_trace_1.generateNetworkTraceFromZipUrl)({ url: traceFileUrl }),
29
+ (0, console_trace_1.generateConsoleTraceFromZipUrl)({ url: traceFileUrl }),
30
+ ]);
31
+ const cleanNetworkTraceOutput = (0, network_trace_1.stripIrrelevantInfoFromNetworkFailureArray)(networkTraceOutput);
32
+ return {
33
+ isError: false,
34
+ result: JSON.stringify({
35
+ failed_network_requests: cleanNetworkTraceOutput,
36
+ console_error_logs: consoleTraceOutput,
37
+ }, null, 2),
38
+ };
39
+ }
40
+ catch (error) {
41
+ console.error("Error generating network & console trace from trace.zip", error);
42
+ return {
43
+ isError: true,
44
+ result: error instanceof Error ? error.message : String(error),
45
+ };
46
+ }
47
+ },
48
+ };