@empiricalrun/test-gen 0.78.0 → 0.78.2

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 (406) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/actions/index.d.ts +0 -1
  3. package/dist/actions/index.d.ts.map +1 -1
  4. package/dist/actions/index.js +0 -10
  5. package/dist/agent/base/index.d.ts +28 -19
  6. package/dist/agent/base/index.d.ts.map +1 -1
  7. package/dist/agent/base/index.js +25 -14
  8. package/dist/agent/browsing/run.d.ts +1 -1
  9. package/dist/agent/browsing/run.d.ts.map +1 -1
  10. package/dist/agent/chat/agent-loop.d.ts +5 -5
  11. package/dist/agent/chat/agent-loop.d.ts.map +1 -1
  12. package/dist/agent/chat/exports.d.ts +3 -4
  13. package/dist/agent/chat/exports.d.ts.map +1 -1
  14. package/dist/agent/chat/exports.js +5 -11
  15. package/dist/agent/chat/index.d.ts +4 -3
  16. package/dist/agent/chat/index.d.ts.map +1 -1
  17. package/dist/agent/chat/index.js +12 -5
  18. package/dist/agent/chat/models.d.ts +1 -1
  19. package/dist/agent/chat/models.d.ts.map +1 -1
  20. package/dist/agent/chat/models.js +3 -3
  21. package/dist/agent/chat/prompt/pw-utils-docs.d.ts +1 -1
  22. package/dist/agent/chat/prompt/pw-utils-docs.d.ts.map +1 -1
  23. package/dist/agent/chat/prompt/pw-utils-docs.js +42 -0
  24. package/dist/agent/chat/prompt/repo.d.ts +2 -2
  25. package/dist/agent/chat/prompt/repo.d.ts.map +1 -1
  26. package/dist/agent/chat/prompt/repo.js +2 -2
  27. package/dist/agent/chat/state.d.ts +14 -19
  28. package/dist/agent/chat/state.d.ts.map +1 -1
  29. package/dist/agent/chat/state.js +10 -45
  30. package/dist/agent/chat/utils.d.ts +5 -5
  31. package/dist/agent/chat/utils.d.ts.map +1 -1
  32. package/dist/agent/cli.d.ts +2 -2
  33. package/dist/agent/cli.d.ts.map +1 -1
  34. package/dist/agent/cli.js +5 -6
  35. package/dist/agent/code-review/index.d.ts +4 -3
  36. package/dist/agent/code-review/index.d.ts.map +1 -1
  37. package/dist/agent/code-review/index.js +10 -4
  38. package/dist/agent/code-review/types.d.ts +2 -35
  39. package/dist/agent/code-review/types.d.ts.map +1 -1
  40. package/dist/agent/code-review/types.js +4 -11
  41. package/dist/agent/cua/index.d.ts +1 -1
  42. package/dist/agent/cua/index.d.ts.map +1 -1
  43. package/dist/agent/cua/index.js +24 -13
  44. package/dist/agent/cua/pw-codegen/factory.d.ts +15 -0
  45. package/dist/agent/cua/pw-codegen/factory.d.ts.map +1 -0
  46. package/dist/agent/cua/pw-codegen/factory.js +59 -0
  47. package/dist/agent/cua/pw-codegen/index.d.ts +7 -0
  48. package/dist/agent/cua/pw-codegen/index.d.ts.map +1 -0
  49. package/dist/agent/cua/pw-codegen/index.js +14 -0
  50. package/dist/agent/cua/pw-codegen/pw-event-sink/index.d.ts +43 -0
  51. package/dist/agent/cua/pw-codegen/pw-event-sink/index.d.ts.map +1 -0
  52. package/dist/agent/cua/pw-codegen/pw-event-sink/index.js +250 -0
  53. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts.map +1 -1
  54. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.js +0 -3
  55. package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts +1 -1
  56. package/dist/agent/cua/pw-codegen/pw-pause/index.d.ts.map +1 -1
  57. package/dist/agent/cua/pw-codegen/pw-pause/index.js +7 -3
  58. package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts +15 -3
  59. package/dist/agent/cua/pw-codegen/pw-pause/patch.d.ts.map +1 -1
  60. package/dist/agent/cua/pw-codegen/pw-pause/patch.js +38 -10
  61. package/dist/agent/cua/pw-codegen/version.d.ts +25 -0
  62. package/dist/agent/cua/pw-codegen/version.d.ts.map +1 -0
  63. package/dist/agent/cua/pw-codegen/version.js +86 -0
  64. package/dist/agent/index.d.ts +1 -5
  65. package/dist/agent/index.d.ts.map +1 -1
  66. package/dist/agent/index.js +1 -11
  67. package/dist/agent/master/element-annotation.d.ts +1 -1
  68. package/dist/agent/master/element-annotation.d.ts.map +1 -1
  69. package/dist/agent/master/next-action.d.ts +1 -1
  70. package/dist/agent/master/next-action.d.ts.map +1 -1
  71. package/dist/agent/master/next-action.js +1 -6
  72. package/dist/agent/master/run.d.ts +3 -2
  73. package/dist/agent/master/run.d.ts.map +1 -1
  74. package/dist/agent/master/run.js +0 -26
  75. package/dist/agent/triage/index.d.ts +4 -3
  76. package/dist/agent/triage/index.d.ts.map +1 -1
  77. package/dist/agent/triage/index.js +33 -20
  78. package/dist/artifacts/index.d.ts +1 -1
  79. package/dist/artifacts/index.d.ts.map +1 -1
  80. package/dist/artifacts/utils.d.ts +1 -1
  81. package/dist/artifacts/utils.d.ts.map +1 -1
  82. package/dist/bin/environments.d.ts +1 -1
  83. package/dist/bin/environments.d.ts.map +1 -1
  84. package/dist/bin/index.js +2 -2
  85. package/dist/bin/setup.d.ts +1 -1
  86. package/dist/bin/setup.d.ts.map +1 -1
  87. package/dist/bin/utils/fs/index.d.ts +1 -1
  88. package/dist/bin/utils/fs/index.d.ts.map +1 -1
  89. package/dist/bin/utils/platform/web/index.d.ts +2 -2
  90. package/dist/bin/utils/platform/web/index.d.ts.map +1 -1
  91. package/dist/bin/utils/platform/web/index.js +1 -1
  92. package/dist/bin/utils/scenarios/index.d.ts +1 -1
  93. package/dist/bin/utils/scenarios/index.d.ts.map +1 -1
  94. package/dist/constants/index.d.ts +0 -4
  95. package/dist/constants/index.d.ts.map +1 -1
  96. package/dist/constants/index.js +0 -6
  97. package/dist/dashboard/client.d.ts +1 -1
  98. package/dist/dashboard/client.d.ts.map +1 -1
  99. package/dist/dashboard/index.d.ts +1 -0
  100. package/dist/dashboard/index.d.ts.map +1 -1
  101. package/dist/dashboard/index.js +4 -1
  102. package/dist/dashboard/tool-response.d.ts +5 -0
  103. package/dist/dashboard/tool-response.d.ts.map +1 -0
  104. package/dist/dashboard/tool-response.js +88 -0
  105. package/dist/dashboard/totp.js +1 -1
  106. package/dist/file/server.d.ts +1 -1
  107. package/dist/file/server.d.ts.map +1 -1
  108. package/dist/file/server.js +2 -1
  109. package/dist/file-info/adapters/file-system/index.d.ts +1 -1
  110. package/dist/file-info/adapters/file-system/index.d.ts.map +1 -1
  111. package/dist/file-info/adapters/file-system/reader.d.ts +1 -1
  112. package/dist/file-info/adapters/file-system/reader.d.ts.map +1 -1
  113. package/dist/file-info/adapters/github/index.d.ts +2 -1
  114. package/dist/file-info/adapters/github/index.d.ts.map +1 -1
  115. package/dist/file-info/adapters/github/reader.d.ts +2 -1
  116. package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
  117. package/dist/recorder/index.d.ts.map +1 -1
  118. package/dist/recorder/index.js +9 -3
  119. package/dist/recorder/upload.d.ts +1 -1
  120. package/dist/recorder/upload.d.ts.map +1 -1
  121. package/dist/tools/analyse-video/index.d.ts +1 -1
  122. package/dist/tools/analyse-video/index.d.ts.map +1 -1
  123. package/dist/tools/analyse-video/index.js +20 -13
  124. package/dist/tools/create-pull-request/index.d.ts +1 -1
  125. package/dist/tools/create-pull-request/index.d.ts.map +1 -1
  126. package/dist/tools/create-pull-request/utils.d.ts +3 -2
  127. package/dist/tools/create-pull-request/utils.d.ts.map +1 -1
  128. package/dist/tools/definitions/analyse-video.d.ts +5 -37
  129. package/dist/tools/definitions/analyse-video.d.ts.map +1 -1
  130. package/dist/tools/definitions/analyse-video.js +12 -25
  131. package/dist/tools/definitions/delete-file.d.ts +5 -1
  132. package/dist/tools/definitions/delete-file.d.ts.map +1 -1
  133. package/dist/tools/definitions/delete-file.js +3 -3
  134. package/dist/tools/definitions/download-build.d.ts +2 -6
  135. package/dist/tools/definitions/download-build.d.ts.map +1 -1
  136. package/dist/tools/definitions/grep.d.ts +1 -1
  137. package/dist/tools/definitions/grep.d.ts.map +1 -1
  138. package/dist/tools/definitions/list-tests-and-projects.d.ts +2 -6
  139. package/dist/tools/definitions/list-tests-and-projects.d.ts.map +1 -1
  140. package/dist/tools/definitions/list-tests-and-projects.js +1 -1
  141. package/dist/tools/definitions/merge-conflicts.d.ts +1 -1
  142. package/dist/tools/definitions/merge-conflicts.d.ts.map +1 -1
  143. package/dist/tools/definitions/merge-conflicts.js +2 -2
  144. package/dist/tools/definitions/rename-file.d.ts +1 -1
  145. package/dist/tools/definitions/rename-file.d.ts.map +1 -1
  146. package/dist/tools/definitions/review-pull-request.d.ts +1 -1
  147. package/dist/tools/definitions/review-pull-request.d.ts.map +1 -1
  148. package/dist/tools/definitions/review-pull-request.js +1 -1
  149. package/dist/tools/definitions/run-test.d.ts +3 -15
  150. package/dist/tools/definitions/run-test.d.ts.map +1 -1
  151. package/dist/tools/definitions/safe-bash.d.ts +8 -0
  152. package/dist/tools/definitions/safe-bash.d.ts.map +1 -0
  153. package/dist/tools/definitions/safe-bash.js +32 -0
  154. package/dist/tools/definitions/str_replace_editor.d.ts +1 -1
  155. package/dist/tools/definitions/str_replace_editor.d.ts.map +1 -1
  156. package/dist/tools/definitions/test-gen-browser.d.ts +3 -15
  157. package/dist/tools/definitions/test-gen-browser.d.ts.map +1 -1
  158. package/dist/tools/definitions/upgrade-packages.d.ts +4 -26
  159. package/dist/tools/definitions/upgrade-packages.d.ts.map +1 -1
  160. package/dist/tools/definitions/utils.d.ts +2 -10
  161. package/dist/tools/definitions/utils.d.ts.map +1 -1
  162. package/dist/tools/definitions/utils.js +1 -1
  163. package/dist/tools/delete-file/index.d.ts +1 -1
  164. package/dist/tools/delete-file/index.d.ts.map +1 -1
  165. package/dist/tools/delete-file/index.js +6 -2
  166. package/dist/tools/diagnosis-fetcher.d.ts +1 -1
  167. package/dist/tools/diagnosis-fetcher.d.ts.map +1 -1
  168. package/dist/tools/diagnosis-fetcher.js +92 -47
  169. package/dist/tools/download-build/index.d.ts +1 -1
  170. package/dist/tools/download-build/index.d.ts.map +1 -1
  171. package/dist/tools/executor/base.d.ts +3 -2
  172. package/dist/tools/executor/base.d.ts.map +1 -1
  173. package/dist/tools/executor/base.js +5 -8
  174. package/dist/tools/executor/index.d.ts +3 -0
  175. package/dist/tools/executor/index.d.ts.map +1 -1
  176. package/dist/tools/executor/index.js +12 -10
  177. package/dist/tools/executor/utils/checkpoint.d.ts.map +1 -1
  178. package/dist/tools/executor/utils/checkpoint.js +0 -4
  179. package/dist/tools/executor/utils/git.d.ts +7 -1
  180. package/dist/tools/executor/utils/git.d.ts.map +1 -1
  181. package/dist/tools/executor/utils/git.js +10 -3
  182. package/dist/tools/executor/utils/index.d.ts +1 -2
  183. package/dist/tools/executor/utils/index.d.ts.map +1 -1
  184. package/dist/tools/executor/utils/index.js +0 -20
  185. package/dist/tools/executor/utils/pr-description.d.ts +1 -1
  186. package/dist/tools/executor/utils/pr-description.d.ts.map +1 -1
  187. package/dist/tools/fetch-file/index.d.ts +2 -6
  188. package/dist/tools/fetch-file/index.d.ts.map +1 -1
  189. package/dist/tools/fetch-file/index.js +53 -13
  190. package/dist/tools/fetch-file/utils.d.ts +3 -0
  191. package/dist/tools/fetch-file/utils.d.ts.map +1 -0
  192. package/dist/tools/fetch-file/utils.js +136 -0
  193. package/dist/tools/fetch-session-diff/index.d.ts +1 -1
  194. package/dist/tools/fetch-session-diff/index.d.ts.map +1 -1
  195. package/dist/tools/fetch-session-diff/index.js +26 -2
  196. package/dist/tools/file-operations/create.d.ts +1 -1
  197. package/dist/tools/file-operations/create.d.ts.map +1 -1
  198. package/dist/tools/file-operations/index.d.ts +2 -1
  199. package/dist/tools/file-operations/index.d.ts.map +1 -1
  200. package/dist/tools/file-operations/insert.d.ts +1 -1
  201. package/dist/tools/file-operations/insert.d.ts.map +1 -1
  202. package/dist/tools/file-operations/replace.d.ts +1 -1
  203. package/dist/tools/file-operations/replace.d.ts.map +1 -1
  204. package/dist/tools/file-operations/replace.js +0 -1
  205. package/dist/tools/file-operations/view/index.d.ts +2 -1
  206. package/dist/tools/file-operations/view/index.d.ts.map +1 -1
  207. package/dist/tools/firecrawl-scrape/index.d.ts +9 -0
  208. package/dist/tools/firecrawl-scrape/index.d.ts.map +1 -0
  209. package/dist/tools/firecrawl-scrape/index.js +107 -0
  210. package/dist/tools/grep/index.d.ts +1 -1
  211. package/dist/tools/grep/index.d.ts.map +1 -1
  212. package/dist/tools/grep/index.js +15 -12
  213. package/dist/tools/index.d.ts +5 -24
  214. package/dist/tools/index.d.ts.map +1 -1
  215. package/dist/tools/index.js +21 -42
  216. package/dist/tools/issues-v1/create-issue.d.ts +3 -0
  217. package/dist/tools/issues-v1/create-issue.d.ts.map +1 -0
  218. package/dist/tools/{issues → issues-v1}/create-issue.js +5 -9
  219. package/dist/tools/issues-v1/index.d.ts.map +1 -0
  220. package/dist/tools/issues-v1/list-issues.d.ts +3 -0
  221. package/dist/tools/issues-v1/list-issues.d.ts.map +1 -0
  222. package/dist/tools/issues-v1/update-issue.d.ts +3 -0
  223. package/dist/tools/issues-v1/update-issue.d.ts.map +1 -0
  224. package/dist/tools/{issues → issues-v1}/update-issue.js +1 -9
  225. package/dist/tools/{issues → issues-v1}/utils.d.ts +2 -1
  226. package/dist/tools/issues-v1/utils.d.ts.map +1 -0
  227. package/dist/tools/issues-v2/create-issue.d.ts +3 -0
  228. package/dist/tools/issues-v2/create-issue.d.ts.map +1 -0
  229. package/dist/tools/issues-v2/create-issue.js +82 -0
  230. package/dist/tools/issues-v2/set-issue-description.d.ts +3 -0
  231. package/dist/tools/issues-v2/set-issue-description.d.ts.map +1 -0
  232. package/dist/tools/issues-v2/set-issue-description.js +59 -0
  233. package/dist/tools/issues-v2/update-issue.d.ts +3 -0
  234. package/dist/tools/issues-v2/update-issue.d.ts.map +1 -0
  235. package/dist/tools/issues-v2/update-issue.js +85 -0
  236. package/dist/tools/list-environments.d.ts +1 -1
  237. package/dist/tools/list-environments.d.ts.map +1 -1
  238. package/dist/tools/list-tests-and-projects/index.d.ts +1 -1
  239. package/dist/tools/list-tests-and-projects/index.d.ts.map +1 -1
  240. package/dist/tools/list-tests-and-projects/index.js +14 -4
  241. package/dist/tools/merge-conflicts/index.d.ts +1 -1
  242. package/dist/tools/merge-conflicts/index.d.ts.map +1 -1
  243. package/dist/tools/merge-conflicts/index.js +23 -10
  244. package/dist/tools/rename-file/index.d.ts +1 -1
  245. package/dist/tools/rename-file/index.d.ts.map +1 -1
  246. package/dist/tools/rename-file/index.js +0 -1
  247. package/dist/tools/review-pull-request/index.d.ts +1 -1
  248. package/dist/tools/review-pull-request/index.d.ts.map +1 -1
  249. package/dist/tools/review-pull-request/index.js +5 -4
  250. package/dist/tools/run-test.d.ts +1 -1
  251. package/dist/tools/run-test.d.ts.map +1 -1
  252. package/dist/tools/safe-bash/index.d.ts +3 -0
  253. package/dist/tools/safe-bash/index.d.ts.map +1 -0
  254. package/dist/tools/safe-bash/index.js +128 -0
  255. package/dist/tools/test-gen-browser.d.ts +1 -1
  256. package/dist/tools/test-gen-browser.d.ts.map +1 -1
  257. package/dist/tools/test-gen-browser.js +64 -21
  258. package/dist/tools/test-run-fetcher/index.d.ts +2 -2
  259. package/dist/tools/test-run-fetcher/index.d.ts.map +1 -1
  260. package/dist/tools/test-run-fetcher/index.js +67 -66
  261. package/dist/tools/trace-dot-zip/index.d.ts +1 -1
  262. package/dist/tools/trace-dot-zip/index.d.ts.map +1 -1
  263. package/dist/tools/trace-dot-zip/utils/network-trace.d.ts.map +1 -1
  264. package/dist/tools/trace-dot-zip/utils/network-trace.js +5 -10
  265. package/dist/tools/triage-summary/index.d.ts +1 -1
  266. package/dist/tools/triage-summary/index.d.ts.map +1 -1
  267. package/dist/tools/triage-summary/index.js +5 -2
  268. package/dist/tools/triage-summary/utils.d.ts +1 -1
  269. package/dist/tools/triage-summary/utils.d.ts.map +1 -1
  270. package/dist/tools/upgrade-packages/index.d.ts +1 -1
  271. package/dist/tools/upgrade-packages/index.d.ts.map +1 -1
  272. package/dist/tools/upgrade-packages/index.js +14 -8
  273. package/dist/tools/upgrade-packages/utils.d.ts +9 -5
  274. package/dist/tools/upgrade-packages/utils.d.ts.map +1 -1
  275. package/dist/tools/upgrade-packages/utils.js +56 -16
  276. package/dist/tools/utils/queue.d.ts +1 -1
  277. package/dist/tools/utils/queue.d.ts.map +1 -1
  278. package/dist/tools/utils/validate-schema.d.ts +3 -0
  279. package/dist/tools/utils/validate-schema.d.ts.map +1 -0
  280. package/dist/tools/utils/validate-schema.js +27 -0
  281. package/dist/utils/SQSClient.d.ts +1 -1
  282. package/dist/utils/SQSClient.d.ts.map +1 -1
  283. package/dist/utils/dedup/dedup-image.js +2 -2
  284. package/dist/utils/dedup/find-threshold.d.ts +1 -1
  285. package/dist/utils/dedup/find-threshold.d.ts.map +1 -1
  286. package/dist/utils/dedup/find-threshold.js +2 -2
  287. package/dist/utils/model.d.ts +1 -1
  288. package/dist/utils/model.d.ts.map +1 -1
  289. package/dist/utils/model.js +6 -10
  290. package/dist/utils/playwright-report-parser.d.ts +1 -1
  291. package/dist/utils/playwright-report-parser.d.ts.map +1 -1
  292. package/dist/utils/playwright-test-id.d.ts +8 -0
  293. package/dist/utils/playwright-test-id.d.ts.map +1 -0
  294. package/dist/utils/playwright-test-id.js +21 -0
  295. package/dist/utils/repo-tree.d.ts +1 -1
  296. package/dist/utils/repo-tree.d.ts.map +1 -1
  297. package/dist/utils/slug.d.ts.map +1 -1
  298. package/dist/utils/slug.js +15 -4
  299. package/dist/utils/url-validation.d.ts +2 -0
  300. package/dist/utils/url-validation.d.ts.map +1 -0
  301. package/dist/utils/url-validation.js +16 -0
  302. package/dist/video-core/index.d.ts +7 -24
  303. package/dist/video-core/index.d.ts.map +1 -1
  304. package/dist/video-core/index.js +32 -25
  305. package/dist/video-core/model-limits.d.ts +2 -2
  306. package/dist/video-core/model-limits.d.ts.map +1 -1
  307. package/dist/video-core/model-limits.js +9 -19
  308. package/dist/video-core/storage-manager.d.ts +2 -1
  309. package/dist/video-core/storage-manager.d.ts.map +1 -1
  310. package/dist/video-core/types.d.ts +1 -1
  311. package/dist/video-core/types.d.ts.map +1 -1
  312. package/dist/video-core/utils.d.ts +5 -7
  313. package/dist/video-core/utils.d.ts.map +1 -1
  314. package/dist/video-core/utils.js +39 -132
  315. package/package.json +10 -6
  316. package/tsconfig.tsbuildinfo +1 -1
  317. package/dist/actions/skill.d.ts +0 -21
  318. package/dist/actions/skill.d.ts.map +0 -1
  319. package/dist/actions/skill.js +0 -127
  320. package/dist/agent/chat/filesystem-cache.d.ts +0 -12
  321. package/dist/agent/chat/filesystem-cache.d.ts.map +0 -1
  322. package/dist/agent/chat/filesystem-cache.js +0 -101
  323. package/dist/agent/codegen/create-test-block.d.ts +0 -8
  324. package/dist/agent/codegen/create-test-block.d.ts.map +0 -1
  325. package/dist/agent/codegen/create-test-block.js +0 -47
  326. package/dist/agent/codegen/fix-ts-errors.d.ts +0 -12
  327. package/dist/agent/codegen/fix-ts-errors.d.ts.map +0 -1
  328. package/dist/agent/codegen/fix-ts-errors.js +0 -78
  329. package/dist/agent/codegen/lexical-scoped-vars.d.ts +0 -9
  330. package/dist/agent/codegen/lexical-scoped-vars.d.ts.map +0 -1
  331. package/dist/agent/codegen/lexical-scoped-vars.js +0 -55
  332. package/dist/agent/codegen/skills-retriever.d.ts +0 -26
  333. package/dist/agent/codegen/skills-retriever.d.ts.map +0 -1
  334. package/dist/agent/codegen/skills-retriever.js +0 -93
  335. package/dist/agent/codegen/test-update-feedback.d.ts +0 -12
  336. package/dist/agent/codegen/test-update-feedback.d.ts.map +0 -1
  337. package/dist/agent/codegen/test-update-feedback.js +0 -49
  338. package/dist/agent/codegen/types.d.ts +0 -25
  339. package/dist/agent/codegen/types.d.ts.map +0 -1
  340. package/dist/agent/codegen/types.js +0 -8
  341. package/dist/agent/codegen/update-flow.d.ts +0 -36
  342. package/dist/agent/codegen/update-flow.d.ts.map +0 -1
  343. package/dist/agent/codegen/update-flow.js +0 -259
  344. package/dist/agent/codegen/use-skill.d.ts +0 -11
  345. package/dist/agent/codegen/use-skill.d.ts.map +0 -1
  346. package/dist/agent/codegen/use-skill.js +0 -53
  347. package/dist/agent/codegen/utils.d.ts +0 -110
  348. package/dist/agent/codegen/utils.d.ts.map +0 -1
  349. package/dist/agent/codegen/utils.js +0 -376
  350. package/dist/agent/master/browser-tests/skills.spec.d.ts +0 -2
  351. package/dist/agent/master/browser-tests/skills.spec.d.ts.map +0 -1
  352. package/dist/agent/master/browser-tests/skills.spec.js +0 -112
  353. package/dist/agent/master/execute-skill-action.d.ts +0 -11
  354. package/dist/agent/master/execute-skill-action.d.ts.map +0 -1
  355. package/dist/agent/master/execute-skill-action.js +0 -23
  356. package/dist/agent/video-analysis/executor/index.d.ts +0 -5
  357. package/dist/agent/video-analysis/executor/index.d.ts.map +0 -1
  358. package/dist/agent/video-analysis/executor/index.js +0 -10
  359. package/dist/agent/video-analysis/index.d.ts +0 -7
  360. package/dist/agent/video-analysis/index.d.ts.map +0 -1
  361. package/dist/agent/video-analysis/index.js +0 -60
  362. package/dist/evals/append-create-test-agent.evals.d.ts +0 -4
  363. package/dist/evals/append-create-test-agent.evals.d.ts.map +0 -1
  364. package/dist/evals/append-create-test-agent.evals.js +0 -117
  365. package/dist/evals/fetch-pom-skills-agent.evals.d.ts +0 -4
  366. package/dist/evals/fetch-pom-skills-agent.evals.d.ts.map +0 -1
  367. package/dist/evals/fetch-pom-skills-agent.evals.js +0 -36
  368. package/dist/evals/master-agent.evals.d.ts +0 -4
  369. package/dist/evals/master-agent.evals.d.ts.map +0 -1
  370. package/dist/evals/master-agent.evals.js +0 -35
  371. package/dist/evals/type.d.ts +0 -12
  372. package/dist/evals/type.d.ts.map +0 -1
  373. package/dist/evals/type.js +0 -2
  374. package/dist/evals/update-scenario-agent.evals.d.ts +0 -4
  375. package/dist/evals/update-scenario-agent.evals.d.ts.map +0 -1
  376. package/dist/evals/update-scenario-agent.evals.js +0 -47
  377. package/dist/tools/fetch-last-successful-test-run/index.d.ts +0 -3
  378. package/dist/tools/fetch-last-successful-test-run/index.d.ts.map +0 -1
  379. package/dist/tools/fetch-last-successful-test-run/index.js +0 -60
  380. package/dist/tools/issues/create-issue.d.ts +0 -3
  381. package/dist/tools/issues/create-issue.d.ts.map +0 -1
  382. package/dist/tools/issues/index.d.ts.map +0 -1
  383. package/dist/tools/issues/list-issues.d.ts +0 -3
  384. package/dist/tools/issues/list-issues.d.ts.map +0 -1
  385. package/dist/tools/issues/metadata-schema.d.ts +0 -24
  386. package/dist/tools/issues/metadata-schema.d.ts.map +0 -1
  387. package/dist/tools/issues/metadata-schema.js +0 -22
  388. package/dist/tools/issues/update-issue.d.ts +0 -3
  389. package/dist/tools/issues/update-issue.d.ts.map +0 -1
  390. package/dist/tools/issues/utils.d.ts.map +0 -1
  391. package/dist/tools/utils/urls.d.ts +0 -5
  392. package/dist/tools/utils/urls.d.ts.map +0 -1
  393. package/dist/tools/utils/urls.js +0 -19
  394. package/dist/tools/view-failed-test-run-report/index.d.ts +0 -12
  395. package/dist/tools/view-failed-test-run-report/index.d.ts.map +0 -1
  396. package/dist/tools/view-failed-test-run-report/index.js +0 -151
  397. package/dist/video-core/agent-orchestrator.d.ts +0 -13
  398. package/dist/video-core/agent-orchestrator.d.ts.map +0 -1
  399. package/dist/video-core/agent-orchestrator.js +0 -59
  400. package/dist/video-core/xml-parser.d.ts +0 -3
  401. package/dist/video-core/xml-parser.d.ts.map +0 -1
  402. package/dist/video-core/xml-parser.js +0 -27
  403. /package/dist/tools/{issues → issues-v1}/index.d.ts +0 -0
  404. /package/dist/tools/{issues → issues-v1}/index.js +0 -0
  405. /package/dist/tools/{issues → issues-v1}/list-issues.js +0 -0
  406. /package/dist/tools/{issues → issues-v1}/utils.js +0 -0
@@ -1,12 +1,8 @@
1
- import { Tool } from "@empiricalrun/shared-types";
1
+ import { Tool } from "@empiricalrun/shared-types/chat-agent";
2
2
  import { z } from "zod";
3
3
  declare const fetchFileSchema: z.ZodObject<{
4
4
  url: z.ZodString;
5
- }, "strip", z.ZodTypeAny, {
6
- url: string;
7
- }, {
8
- url: string;
9
- }>;
5
+ }, z.core.$strip>;
10
6
  export declare const fetchFileTool: Tool<z.infer<typeof fetchFileSchema>>;
11
7
  export {};
12
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-file/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAGL,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,QAAA,MAAM,eAAe;;;;;;EAEnB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAyF/D,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-file/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,IAAI,EAGL,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,QAAA,MAAM,eAAe;;iBAEnB,CAAC;AAEH,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAoI/D,CAAC"}
@@ -2,6 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchFileTool = void 0;
4
4
  const zod_1 = require("zod");
5
+ const url_validation_1 = require("../../utils/url-validation");
6
+ const utils_1 = require("./utils");
5
7
  const SUPPORTED_IMAGE_TYPES = [
6
8
  "image/png",
7
9
  "image/jpeg",
@@ -16,7 +18,7 @@ exports.fetchFileTool = {
16
18
  schema: {
17
19
  name: "fetchFile",
18
20
  description: `Use this tool to fetch file data from any valid URL that responds with an image (PNG, JPEG, GIF, WebP) or markdown file.
19
- For images, it returns the image in base64 format for you to view or analyze. For markdown files, it returns the text content for you to read and process.
21
+ For images, it returns the image in base64 format for you to view or analyse. For markdown files, it returns the text content for you to read and process.
20
22
 
21
23
  ## Caveats
22
24
  1. This will not work to fetch markdown files from a repo due to access control issues. Use file view tools for that.
@@ -30,20 +32,32 @@ time of test failures. Both of these are available in the attachments section of
30
32
  },
31
33
  needsBrowser: false,
32
34
  isInlineTool: true,
33
- execute: async ({ input }) => {
35
+ execute: async ({ input, logger, }) => {
34
36
  const { url } = input;
37
+ logger.info("Starting file fetch", {
38
+ tool: "fetchFileTool",
39
+ url,
40
+ });
35
41
  try {
36
- const response = await fetch(url);
37
- if (!response.ok) {
38
- console.error(`Failed to fetch file from ${url}: ${response.statusText}`);
42
+ const headResponse = await (0, url_validation_1.validateUrlAccess)(url);
43
+ if (!headResponse.ok) {
44
+ logger.error("Failed to fetch file", {
45
+ tool: "fetchFileTool",
46
+ url,
47
+ statusText: headResponse.statusText,
48
+ });
39
49
  return {
40
- result: `Failed to fetch file from ${url}: ${response.statusText}`,
50
+ result: `Failed to fetch file from ${url}: ${headResponse.statusText}`,
41
51
  isError: true,
42
52
  };
43
53
  }
44
- const contentType = response.headers.get("content-type");
54
+ const contentType = headResponse.headers.get("content-type");
45
55
  if (!contentType) {
46
56
  const errorMessage = `No content type header found. URL must return an image or markdown file.`;
57
+ logger.warn("No content type header found", {
58
+ tool: "fetchFileTool",
59
+ url,
60
+ });
47
61
  return {
48
62
  result: errorMessage,
49
63
  isError: true,
@@ -51,17 +65,33 @@ time of test failures. Both of these are available in the attachments section of
51
65
  }
52
66
  const isImage = SUPPORTED_IMAGE_TYPES.some((type) => contentType.startsWith(type));
53
67
  const isText = SUPPORTED_TEXT_TYPES.some((type) => contentType.startsWith(type));
68
+ const isVideo = contentType.startsWith("video");
54
69
  if (!isImage && !isText) {
55
- const errorMessage = `Invalid content type: ${contentType}. URL must return an image (PNG, JPEG, GIF, WebP) or markdown file.`;
56
- console.error(errorMessage);
70
+ const errorMessage = isVideo
71
+ ? `This tool does not support content type: ${contentType}. Try analyseVideo tool instead for video files.`
72
+ : `Invalid content type: ${contentType}. URL must return an image (PNG, JPEG, GIF, WebP) or markdown file.`;
73
+ logger.warn("Unsupported content type", {
74
+ tool: "fetchFileTool",
75
+ url,
76
+ contentType,
77
+ isVideo,
78
+ });
57
79
  return {
58
80
  result: errorMessage,
59
81
  isError: true,
60
82
  };
61
83
  }
84
+ const contentResponse = await fetch(url);
62
85
  if (isImage) {
63
- const buffer = await response.arrayBuffer();
64
- const base64 = Buffer.from(buffer).toString("base64");
86
+ const buffer = await contentResponse.arrayBuffer();
87
+ const processedBuffer = await (0, utils_1.downscaleImageIfNeeded)(buffer, logger);
88
+ const base64 = Buffer.from(processedBuffer).toString("base64");
89
+ logger.info("Successfully fetched image file", {
90
+ tool: "fetchFileTool",
91
+ url,
92
+ contentType,
93
+ size: processedBuffer.byteLength,
94
+ });
65
95
  return {
66
96
  result: [
67
97
  {
@@ -74,7 +104,13 @@ time of test failures. Both of these are available in the attachments section of
74
104
  }
75
105
  else {
76
106
  // Handle text/markdown files
77
- const text = await response.text();
107
+ const text = await contentResponse.text();
108
+ logger.info("Successfully fetched text file", {
109
+ tool: "fetchFileTool",
110
+ url,
111
+ contentType,
112
+ size: text.length,
113
+ });
78
114
  return {
79
115
  result: [
80
116
  {
@@ -87,7 +123,11 @@ time of test failures. Both of these are available in the attachments section of
87
123
  }
88
124
  }
89
125
  catch (error) {
90
- console.error("Error fetching file", error);
126
+ logger.error("Error fetching file", {
127
+ tool: "fetchFileTool",
128
+ url,
129
+ error,
130
+ });
91
131
  return {
92
132
  result: `Error fetching file: ${error}`,
93
133
  isError: true,
@@ -0,0 +1,3 @@
1
+ import { Logger } from "@empiricalrun/shared-types/chat-agent";
2
+ export declare function downscaleImageIfNeeded(buffer: ArrayBuffer, logger: Logger): Promise<ArrayBuffer>;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-file/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AA6I/D,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC,CAWtB"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.downscaleImageIfNeeded = downscaleImageIfNeeded;
4
+ const MAX_IMAGE_DIMENSION = 1440;
5
+ function detectImageFormat(buffer) {
6
+ const arr = new Uint8Array(buffer.slice(0, 12));
7
+ // PNG: 89 50 4E 47
8
+ if (arr[0] === 0x89 &&
9
+ arr[1] === 0x50 &&
10
+ arr[2] === 0x4e &&
11
+ arr[3] === 0x47) {
12
+ return "png";
13
+ }
14
+ // JPEG: FF D8 FF
15
+ if (arr[0] === 0xff && arr[1] === 0xd8 && arr[2] === 0xff) {
16
+ return "jpeg";
17
+ }
18
+ // WebP: RIFF ... WEBP
19
+ if (arr[0] === 0x52 &&
20
+ arr[1] === 0x49 &&
21
+ arr[2] === 0x46 &&
22
+ arr[3] === 0x46 &&
23
+ arr[8] === 0x57 &&
24
+ arr[9] === 0x45 &&
25
+ arr[10] === 0x42 &&
26
+ arr[11] === 0x50) {
27
+ return "webp";
28
+ }
29
+ // GIF: 47 49 46
30
+ if (arr[0] === 0x47 && arr[1] === 0x49 && arr[2] === 0x46) {
31
+ return "gif";
32
+ }
33
+ return null;
34
+ }
35
+ async function downscaleWithJsquash(buffer, logger) {
36
+ const format = detectImageFormat(buffer);
37
+ if (!format) {
38
+ logger.warn("Unable to detect image format for downscaling", {
39
+ tool: "fetchFileTool",
40
+ });
41
+ return buffer;
42
+ }
43
+ try {
44
+ let imageData;
45
+ if (format === "png") {
46
+ const { decode } = await import("@jsquash/png");
47
+ imageData = await decode(buffer);
48
+ }
49
+ else if (format === "jpeg") {
50
+ const { decode } = await import("@jsquash/jpeg");
51
+ imageData = await decode(buffer);
52
+ }
53
+ else if (format === "webp") {
54
+ const { decode } = await import("@jsquash/webp");
55
+ imageData = await decode(buffer);
56
+ }
57
+ else if (format === "gif") {
58
+ logger.warn("GIF resizing not supported in edge environment", {
59
+ tool: "fetchFileTool",
60
+ });
61
+ return buffer;
62
+ }
63
+ else {
64
+ logger.warn("Unsupported format for edge resizing", {
65
+ tool: "fetchFileTool",
66
+ format,
67
+ });
68
+ return buffer;
69
+ }
70
+ const { width, height } = imageData;
71
+ const maxDimension = Math.max(width, height);
72
+ if (maxDimension <= MAX_IMAGE_DIMENSION) {
73
+ logger.info("Image dimensions within limits, no downscaling needed", {
74
+ tool: "fetchFileTool",
75
+ width,
76
+ height,
77
+ });
78
+ return buffer;
79
+ }
80
+ const scale = MAX_IMAGE_DIMENSION / maxDimension;
81
+ const newWidth = Math.round(width * scale);
82
+ const newHeight = Math.round(height * scale);
83
+ const resize = (await import("@jsquash/resize")).default;
84
+ const resizedImageData = await resize(imageData, {
85
+ width: newWidth,
86
+ height: newHeight,
87
+ });
88
+ let encodedBuffer;
89
+ if (format === "png") {
90
+ const { encode } = await import("@jsquash/png");
91
+ encodedBuffer = await encode(resizedImageData);
92
+ }
93
+ else if (format === "jpeg") {
94
+ const { encode } = await import("@jsquash/jpeg");
95
+ encodedBuffer = await encode(resizedImageData);
96
+ }
97
+ else if (format === "webp") {
98
+ const { encode } = await import("@jsquash/webp");
99
+ encodedBuffer = await encode(resizedImageData);
100
+ }
101
+ else {
102
+ return buffer;
103
+ }
104
+ logger.info("Image downscaled with jsquash", {
105
+ tool: "fetchFileTool",
106
+ originalWidth: width,
107
+ originalHeight: height,
108
+ newWidth,
109
+ newHeight,
110
+ scale,
111
+ format,
112
+ });
113
+ return encodedBuffer;
114
+ }
115
+ catch (error) {
116
+ logger.error("Error downscaling with jsquash", {
117
+ tool: "fetchFileTool",
118
+ error,
119
+ format,
120
+ });
121
+ return buffer;
122
+ }
123
+ }
124
+ async function downscaleImageIfNeeded(buffer, logger) {
125
+ try {
126
+ return await downscaleWithJsquash(buffer, logger);
127
+ }
128
+ catch (error) {
129
+ logger.error("Error processing image for downscaling", {
130
+ tool: "fetchFileTool",
131
+ error,
132
+ });
133
+ // Return original buffer if processing fails
134
+ return buffer;
135
+ }
136
+ }
@@ -1,3 +1,3 @@
1
- import { Tool } from "@empiricalrun/shared-types";
1
+ import { Tool } from "@empiricalrun/shared-types/chat-agent";
2
2
  export declare const fetchSessionDiffTool: Tool;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-session-diff/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAO9D,eAAO,MAAM,oBAAoB,EAAE,IA0ClC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/fetch-session-diff/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,IAAI,EAEL,MAAM,uCAAuC,CAAC;AAO/C,eAAO,MAAM,oBAAoB,EAAE,IA6ElC,CAAC"}
@@ -13,30 +13,54 @@ exports.fetchSessionDiffTool = {
13
13
  },
14
14
  needsBrowser: false,
15
15
  isInlineTool: true,
16
- execute: async ({ input, apiClient }) => {
16
+ execute: async ({ input, apiClient, logger, }) => {
17
+ logger.info("Starting session diff fetch", {
18
+ tool: "fetchSessionDiffTool",
19
+ url: input.url,
20
+ });
17
21
  try {
18
22
  const sessionUrl = input.url;
19
23
  if (!sessionUrl) {
24
+ logger.warn("No session URL provided", {
25
+ tool: "fetchSessionDiffTool",
26
+ });
20
27
  return {
21
28
  isError: true,
22
29
  result: "No session URL provided",
23
30
  };
24
31
  }
25
32
  if (!apiClient) {
33
+ logger.error("Dashboard API client not available", {
34
+ tool: "fetchSessionDiffTool",
35
+ url: sessionUrl,
36
+ });
26
37
  throw new Error("Dashboard API client is not available.");
27
38
  }
28
39
  const sessionId = sessionUrl.split("/").pop();
29
40
  const sessionDiffApiUrl = `/api/chat-sessions/${sessionId}/diff?is_line_annotated=true`;
41
+ logger.info("Fetching session diff from API", {
42
+ tool: "fetchSessionDiffTool",
43
+ sessionId,
44
+ apiUrl: sessionDiffApiUrl,
45
+ });
30
46
  const sessionDiff = await apiClient.request(sessionDiffApiUrl, {
31
47
  method: "GET",
32
48
  });
49
+ logger.info("Successfully fetched session diff", {
50
+ tool: "fetchSessionDiffTool",
51
+ sessionId,
52
+ });
33
53
  return {
34
54
  isError: false,
35
55
  result: JSON.stringify(sessionDiff, null, 2),
36
56
  };
37
57
  }
38
58
  catch (error) {
39
- console.error("Error fetching session diff", error);
59
+ logger.error("Error fetching session diff", {
60
+ tool: "fetchSessionDiffTool",
61
+ url: input.url,
62
+ error,
63
+ });
40
64
  return {
41
65
  isError: true,
42
66
  result: error instanceof Error ? error.message : String(error),
@@ -1,4 +1,4 @@
1
- import { CollectArtifacts, ToolResult } from "@empiricalrun/shared-types";
1
+ import { CollectArtifacts, ToolResult } from "@empiricalrun/shared-types/chat-agent";
2
2
  import type { StrReplaceInputParams } from "./shared/helpers";
3
3
  declare function fileCreateExecutor({ input, filePath, absoluteFilePath, repoDir, collectArtifacts, }: {
4
4
  input: StrReplaceInputParams;
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAO1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,iBAAe,kBAAkB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAuDtB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACX,MAAM,uCAAuC,CAAC;AAO/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,iBAAe,kBAAkB,CAAC,EAChC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAuDtB;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
- import { CollectArtifacts, IDashboardAPIClient, Tool, ToolResult } from "@empiricalrun/shared-types";
1
+ import { IDashboardAPIClient } from "@empiricalrun/shared-types/api/base";
2
+ import { CollectArtifacts, Tool, ToolResult } from "@empiricalrun/shared-types/chat-agent";
2
3
  import { StrReplaceInputParams } from "./shared/helpers";
3
4
  /**
4
5
  * Our implementation of Claude's built-in text editor tool
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,IAAI,EAEJ,UAAU,EACX,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;GAGG;AACH,iBAAe,wBAAwB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,GAAG,OAAO,CAAC,UAAU,CAAC,CAoDtB;AAgFD,QAAA,MAAM,eAAe,EAAE,IAAI,EAK1B,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,IAAI,EAAmB,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EACL,gBAAgB,EAChB,IAAI,EAEJ,UAAU,EACX,MAAM,uCAAuC,CAAC;AAQ/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;GAGG;AACH,iBAAe,wBAAwB,CAAC,EACtC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,SAAS,GACV,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,GAAG,OAAO,CAAC,UAAU,CAAC,CAoDtB;AAgFD,QAAA,MAAM,eAAe,EAAE,IAAI,EAK1B,CAAC;AAEF,QAAA,MAAM,aAAa,EAAE,IAAI,EAAmB,CAAC;AAE7C,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { CollectArtifacts, ToolResult } from "@empiricalrun/shared-types";
1
+ import { CollectArtifacts, ToolResult } from "@empiricalrun/shared-types/chat-agent";
2
2
  import { StrReplaceInputParams } from "./shared/helpers";
3
3
  export declare function fileInsertExecutor({ input, filePath, absoluteFilePath, repoDir, collectArtifacts, }: {
4
4
  input: StrReplaceInputParams;
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAqDtB"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACX,MAAM,uCAAuC,CAAC;AAM/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,wBAAsB,kBAAkB,CAAC,EACvC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAqDtB"}
@@ -1,4 +1,4 @@
1
- import { CollectArtifacts, ToolResult } from "@empiricalrun/shared-types";
1
+ import { CollectArtifacts, ToolResult } from "@empiricalrun/shared-types/chat-agent";
2
2
  import type { StrReplaceInputParams } from "./shared/helpers";
3
3
  declare function fileStrReplaceExecutor({ input, filePath, absoluteFilePath, repoDir, collectArtifacts, }: {
4
4
  input: StrReplaceInputParams;
@@ -1 +1 @@
1
- {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/replace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAM1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG9D,iBAAe,sBAAsB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAwEtB;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"replace.d.ts","sourceRoot":"","sources":["../../../src/tools/file-operations/replace.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,UAAU,EACX,MAAM,uCAAuC,CAAC;AAM/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG9D,iBAAe,sBAAsB,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,gBAAgB,GACjB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAqEtB;AAED,OAAO,EAAE,sBAAsB,EAAE,CAAC"}
@@ -60,7 +60,6 @@ async function fileStrReplaceExecutor({ input, filePath, absoluteFilePath, repoD
60
60
  else {
61
61
  const newContent = parts.join(input.new_str);
62
62
  fs_1.default.writeFileSync(absoluteFilePath, newContent);
63
- // Stage the file
64
63
  (0, child_process_1.execSync)(`git add "${filePath}"`, { cwd: repoDir });
65
64
  let tscResult = await (0, web_1.runTypescriptCompiler)(repoDir);
66
65
  if (!tscResult.success) {
@@ -1,4 +1,5 @@
1
- import { IDashboardAPIClient, ToolResult } from "@empiricalrun/shared-types";
1
+ import { IDashboardAPIClient } from "@empiricalrun/shared-types/api/base";
2
+ import { ToolResult } from "@empiricalrun/shared-types/chat-agent";
2
3
  import type { StrReplaceInputParams } from "../shared/helpers";
3
4
  type FileViewExecutorParams = {
4
5
  input: StrReplaceInputParams;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/file-operations/view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAI7E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,UAAU,CAAC,CA4BrB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/file-operations/view/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAInE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG/D,KAAK,sBAAsB,GAAG;IAC5B,KAAK,EAAE,qBAAqB,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,UAAU,CAAC,CA4BrB"}
@@ -0,0 +1,9 @@
1
+ import type { Tool } from "@empiricalrun/shared-types/chat-agent";
2
+ import { z } from "zod";
3
+ declare const ScrapeHtmlInputSchema: z.ZodObject<{
4
+ url: z.ZodString;
5
+ }, z.core.$strip>;
6
+ type ScrapeHtmlInput = z.infer<typeof ScrapeHtmlInputSchema>;
7
+ export declare const scrapeHtmlTool: Tool<ScrapeHtmlInput>;
8
+ export {};
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/firecrawl-scrape/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,uCAAuC,CAAC;AAC9E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,qBAAqB;;iBAEzB,CAAC;AAEH,KAAK,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAQ7D,eAAO,MAAM,cAAc,EAAE,IAAI,CAAC,eAAe,CA+GhD,CAAC"}
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.scrapeHtmlTool = void 0;
4
+ const zod_1 = require("zod");
5
+ const ScrapeHtmlInputSchema = zod_1.z.object({
6
+ url: zod_1.z.string().describe("The URL of the web page to scrape"),
7
+ });
8
+ exports.scrapeHtmlTool = {
9
+ schema: {
10
+ name: "scrapeHtml",
11
+ description: `Use this tool to scrape the content of a web page and return it as markdown.
12
+
13
+ ## When to use this tool
14
+ - When you need to read documentation from external websites
15
+ - When you need to understand content from a web page that is not part of the repository
16
+ - When the user provides a URL and asks you to read or analyze its content`,
17
+ parameters: ScrapeHtmlInputSchema,
18
+ },
19
+ needsBrowser: false,
20
+ isInlineTool: true,
21
+ execute: async ({ input, logger, environmentOverrides, }) => {
22
+ const { url } = input;
23
+ logger?.info("Starting HTML scrape", {
24
+ tool: "scrapeHtmlTool",
25
+ url,
26
+ });
27
+ const apiKey = environmentOverrides?.FIRECRAWL_API_KEY;
28
+ if (!apiKey) {
29
+ logger?.error("Scrape API key not configured", {
30
+ tool: "scrapeHtmlTool",
31
+ });
32
+ return {
33
+ isError: true,
34
+ result: "Scrape API key is not configured",
35
+ };
36
+ }
37
+ try {
38
+ const response = await fetch("https://api.firecrawl.dev/v2/scrape", {
39
+ method: "POST",
40
+ headers: {
41
+ Authorization: `Bearer ${apiKey}`,
42
+ "Content-Type": "application/json",
43
+ },
44
+ body: JSON.stringify({
45
+ url,
46
+ onlyMainContent: false,
47
+ maxAge: 172800000,
48
+ formats: ["markdown"],
49
+ }),
50
+ });
51
+ if (!response.ok) {
52
+ const errorText = await response.text();
53
+ logger?.error("Scrape API request failed", {
54
+ tool: "scrapeHtmlTool",
55
+ url,
56
+ status: response.status,
57
+ error: errorText,
58
+ });
59
+ return {
60
+ isError: true,
61
+ result: `Scrape API error: ${response.status} - ${errorText}`,
62
+ };
63
+ }
64
+ const data = await response.json();
65
+ if (!data.success) {
66
+ logger?.error("HTML scrape failed", {
67
+ tool: "scrapeHtmlTool",
68
+ url,
69
+ error: data.error,
70
+ });
71
+ return {
72
+ isError: true,
73
+ result: `HTML scrape failed: ${data.error || "Unknown error"}`,
74
+ };
75
+ }
76
+ if (!data.data) {
77
+ logger?.warn("No data returned", {
78
+ tool: "scrapeHtmlTool",
79
+ url,
80
+ });
81
+ return {
82
+ isError: true,
83
+ result: "No data returned from scrape",
84
+ };
85
+ }
86
+ logger?.info("Successfully scraped web page", {
87
+ tool: "scrapeHtmlTool",
88
+ url,
89
+ });
90
+ return {
91
+ isError: false,
92
+ result: JSON.stringify(data.data, null, 2),
93
+ };
94
+ }
95
+ catch (error) {
96
+ logger?.error("Error during HTML scrape", {
97
+ tool: "scrapeHtmlTool",
98
+ url,
99
+ error,
100
+ });
101
+ return {
102
+ isError: true,
103
+ result: `Error scraping URL: ${error}`,
104
+ };
105
+ }
106
+ },
107
+ };
@@ -1,3 +1,3 @@
1
- import type { Tool } from "@empiricalrun/shared-types";
1
+ import type { Tool } from "@empiricalrun/shared-types/chat-agent";
2
2
  export declare const grepTool: Tool;
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/grep/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,IAAI,EAAc,MAAM,4BAA4B,CAAC;AAkI3E,eAAO,MAAM,QAAQ,EAAE,IActB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/grep/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,IAAI,EAEL,MAAM,uCAAuC,CAAC;AAwI/C,eAAO,MAAM,QAAQ,EAAE,IAYtB,CAAC"}
@@ -65,8 +65,11 @@ async function usingSystemGrep(input, repoPath, logger) {
65
65
  }
66
66
  }
67
67
  catch (error) {
68
- logger?.error("Error executing grep", error) ||
69
- console.error("Error executing grep", error);
68
+ logger.error("Error executing grep", {
69
+ tool: "grepTool",
70
+ method: "usingSystemGrep",
71
+ error: error instanceof Error ? error.message : String(error),
72
+ });
70
73
  return {
71
74
  isError: true,
72
75
  result: error instanceof Error ? error.message : String(error),
@@ -77,8 +80,8 @@ async function usingRipgrep(input, repoPath, logger) {
77
80
  try {
78
81
  const dir = path_1.default.join(repoPath, input.directory || "");
79
82
  const escapedPattern = input.pattern
80
- .replace(/[.*+?^${}()|[\]\\]/g, "\\$&") // Escape special characters that have meaning in regex/grep
81
- .replace(/[&;|<>]/g, "\\$&") // Escape shell special characters
83
+ .replace(/[.*+?^${}()|[\]\\"'`]/g, "\\$&") // Escape special characters that have meaning in regex/grep/shell
84
+ .replace(/[&;<>]/g, "\\$&") // Escape shell special characters
82
85
  .replace(/\s+/g, "\\ "); // Handle spaces
83
86
  const results = (0, ripgrep_1.ripgrep)(dir, {
84
87
  string: escapedPattern,
@@ -110,8 +113,11 @@ All paths are relative to the current working directory.`;
110
113
  };
111
114
  }
112
115
  catch (error) {
113
- logger?.error("Error executing ripgrep", error) ||
114
- console.error("Error executing ripgrep", error);
116
+ logger.error("Error executing ripgrep", {
117
+ tool: "grepTool",
118
+ method: "usingRipgrep",
119
+ error: error instanceof Error ? error.message : String(error),
120
+ });
115
121
  return {
116
122
  isError: true,
117
123
  result: error instanceof ripgrep_1.RipGrepError ? error.message : String(error),
@@ -125,12 +131,9 @@ exports.grepTool = {
125
131
  return usingRipgrep(input, repoPath, logger);
126
132
  }
127
133
  else {
128
- if (logger) {
129
- logger.warn("ripgrep is not available, falling back to system grep.");
130
- }
131
- else {
132
- console.warn("ripgrep is not available, falling back to system grep.");
133
- }
134
+ logger.warn("ripgrep is not available, falling back to system grep.", {
135
+ tool: "grepTool",
136
+ });
134
137
  return usingSystemGrep(input, repoPath, logger);
135
138
  }
136
139
  },