@empiricalrun/test-gen 0.77.0 → 0.78.1

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 (402) hide show
  1. package/CHANGELOG.md +25 -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 +30 -17
  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 -3
  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 +10 -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 +13 -25
  28. package/dist/agent/chat/state.d.ts.map +1 -1
  29. package/dist/agent/chat/state.js +10 -60
  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 +17 -31
  35. package/dist/agent/code-review/index.d.ts +5 -4
  36. package/dist/agent/code-review/index.d.ts.map +1 -1
  37. package/dist/agent/code-review/index.js +13 -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 +13 -5
  44. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.d.ts.map +1 -1
  45. package/dist/agent/cua/pw-codegen/pw-pause/for-recorder.js +0 -3
  46. package/dist/agent/cua/pw-codegen/pw-pause/index.js +1 -1
  47. package/dist/agent/index.d.ts +1 -5
  48. package/dist/agent/index.d.ts.map +1 -1
  49. package/dist/agent/index.js +1 -11
  50. package/dist/agent/master/element-annotation.d.ts +1 -1
  51. package/dist/agent/master/element-annotation.d.ts.map +1 -1
  52. package/dist/agent/master/next-action.d.ts +1 -1
  53. package/dist/agent/master/next-action.d.ts.map +1 -1
  54. package/dist/agent/master/next-action.js +1 -6
  55. package/dist/agent/master/run.d.ts +3 -2
  56. package/dist/agent/master/run.d.ts.map +1 -1
  57. package/dist/agent/master/run.js +0 -26
  58. package/dist/agent/triage/index.d.ts +4 -3
  59. package/dist/agent/triage/index.d.ts.map +1 -1
  60. package/dist/agent/triage/index.js +35 -29
  61. package/dist/artifacts/index.d.ts +1 -1
  62. package/dist/artifacts/index.d.ts.map +1 -1
  63. package/dist/artifacts/utils.d.ts +1 -1
  64. package/dist/artifacts/utils.d.ts.map +1 -1
  65. package/dist/bin/environments.d.ts +1 -1
  66. package/dist/bin/environments.d.ts.map +1 -1
  67. package/dist/bin/index.js +2 -57
  68. package/dist/bin/setup.d.ts +1 -1
  69. package/dist/bin/setup.d.ts.map +1 -1
  70. package/dist/bin/utils/fs/index.d.ts +1 -1
  71. package/dist/bin/utils/fs/index.d.ts.map +1 -1
  72. package/dist/bin/utils/platform/web/index.d.ts +2 -2
  73. package/dist/bin/utils/platform/web/index.d.ts.map +1 -1
  74. package/dist/bin/utils/platform/web/index.js +1 -1
  75. package/dist/bin/utils/scenarios/index.d.ts +1 -1
  76. package/dist/bin/utils/scenarios/index.d.ts.map +1 -1
  77. package/dist/constants/index.d.ts +0 -4
  78. package/dist/constants/index.d.ts.map +1 -1
  79. package/dist/constants/index.js +0 -6
  80. package/dist/dashboard/client.d.ts +1 -1
  81. package/dist/dashboard/client.d.ts.map +1 -1
  82. package/dist/dashboard/index.d.ts +1 -0
  83. package/dist/dashboard/index.d.ts.map +1 -1
  84. package/dist/dashboard/index.js +4 -1
  85. package/dist/dashboard/tool-response.d.ts +5 -0
  86. package/dist/dashboard/tool-response.d.ts.map +1 -0
  87. package/dist/dashboard/tool-response.js +88 -0
  88. package/dist/dashboard/totp.js +1 -1
  89. package/dist/file/server.d.ts +1 -1
  90. package/dist/file/server.d.ts.map +1 -1
  91. package/dist/file/server.js +2 -1
  92. package/dist/file-info/adapters/file-system/index.d.ts +1 -1
  93. package/dist/file-info/adapters/file-system/index.d.ts.map +1 -1
  94. package/dist/file-info/adapters/file-system/reader.d.ts +1 -1
  95. package/dist/file-info/adapters/file-system/reader.d.ts.map +1 -1
  96. package/dist/file-info/adapters/github/index.d.ts +2 -1
  97. package/dist/file-info/adapters/github/index.d.ts.map +1 -1
  98. package/dist/file-info/adapters/github/reader.d.ts +2 -1
  99. package/dist/file-info/adapters/github/reader.d.ts.map +1 -1
  100. package/dist/recorder/index.d.ts.map +1 -1
  101. package/dist/recorder/index.js +2 -1
  102. package/dist/recorder/upload.d.ts +1 -1
  103. package/dist/recorder/upload.d.ts.map +1 -1
  104. package/dist/tools/analyse-video/index.d.ts +1 -1
  105. package/dist/tools/analyse-video/index.d.ts.map +1 -1
  106. package/dist/tools/analyse-video/index.js +28 -15
  107. package/dist/tools/create-pull-request/index.d.ts +1 -1
  108. package/dist/tools/create-pull-request/index.d.ts.map +1 -1
  109. package/dist/tools/create-pull-request/utils.d.ts +2 -1
  110. package/dist/tools/create-pull-request/utils.d.ts.map +1 -1
  111. package/dist/tools/definitions/analyse-video.d.ts +9 -19
  112. package/dist/tools/definitions/analyse-video.d.ts.map +1 -1
  113. package/dist/tools/definitions/analyse-video.js +13 -26
  114. package/dist/tools/definitions/delete-file.d.ts +9 -1
  115. package/dist/tools/definitions/delete-file.d.ts.map +1 -1
  116. package/dist/tools/definitions/delete-file.js +3 -3
  117. package/dist/tools/definitions/download-build.d.ts +1 -1
  118. package/dist/tools/definitions/download-build.d.ts.map +1 -1
  119. package/dist/tools/definitions/grep.d.ts +1 -1
  120. package/dist/tools/definitions/grep.d.ts.map +1 -1
  121. package/dist/tools/definitions/list-tests-and-projects.d.ts +1 -1
  122. package/dist/tools/definitions/list-tests-and-projects.d.ts.map +1 -1
  123. package/dist/tools/definitions/list-tests-and-projects.js +1 -1
  124. package/dist/tools/definitions/merge-conflicts.d.ts +1 -1
  125. package/dist/tools/definitions/merge-conflicts.d.ts.map +1 -1
  126. package/dist/tools/definitions/merge-conflicts.js +2 -2
  127. package/dist/tools/definitions/rename-file.d.ts +1 -1
  128. package/dist/tools/definitions/rename-file.d.ts.map +1 -1
  129. package/dist/tools/definitions/review-pull-request.d.ts +1 -1
  130. package/dist/tools/definitions/review-pull-request.d.ts.map +1 -1
  131. package/dist/tools/definitions/review-pull-request.js +1 -1
  132. package/dist/tools/definitions/run-test.d.ts +1 -1
  133. package/dist/tools/definitions/run-test.d.ts.map +1 -1
  134. package/dist/tools/definitions/str_replace_editor.d.ts +1 -1
  135. package/dist/tools/definitions/str_replace_editor.d.ts.map +1 -1
  136. package/dist/tools/definitions/test-gen-browser.d.ts +1 -1
  137. package/dist/tools/definitions/test-gen-browser.d.ts.map +1 -1
  138. package/dist/tools/definitions/upgrade-packages.d.ts +1 -1
  139. package/dist/tools/definitions/upgrade-packages.d.ts.map +1 -1
  140. package/dist/tools/definitions/utils.js +1 -1
  141. package/dist/tools/delete-file/index.d.ts +1 -1
  142. package/dist/tools/delete-file/index.d.ts.map +1 -1
  143. package/dist/tools/delete-file/index.js +6 -2
  144. package/dist/tools/diagnosis-fetcher.d.ts +1 -1
  145. package/dist/tools/diagnosis-fetcher.d.ts.map +1 -1
  146. package/dist/tools/diagnosis-fetcher.js +92 -47
  147. package/dist/tools/download-build/index.d.ts +1 -1
  148. package/dist/tools/download-build/index.d.ts.map +1 -1
  149. package/dist/tools/executor/base.d.ts +4 -3
  150. package/dist/tools/executor/base.d.ts.map +1 -1
  151. package/dist/tools/executor/base.js +16 -2
  152. package/dist/tools/executor/index.d.ts +3 -0
  153. package/dist/tools/executor/index.d.ts.map +1 -1
  154. package/dist/tools/executor/index.js +10 -10
  155. package/dist/tools/executor/utils/checkpoint.d.ts.map +1 -1
  156. package/dist/tools/executor/utils/checkpoint.js +0 -4
  157. package/dist/tools/executor/utils/git.d.ts +7 -1
  158. package/dist/tools/executor/utils/git.d.ts.map +1 -1
  159. package/dist/tools/executor/utils/git.js +10 -3
  160. package/dist/tools/executor/utils/index.d.ts +4 -3
  161. package/dist/tools/executor/utils/index.d.ts.map +1 -1
  162. package/dist/tools/executor/utils/index.js +2 -1
  163. package/dist/tools/executor/utils/pr-description.d.ts +1 -1
  164. package/dist/tools/executor/utils/pr-description.d.ts.map +1 -1
  165. package/dist/tools/fetch-file/index.d.ts +1 -1
  166. package/dist/tools/fetch-file/index.d.ts.map +1 -1
  167. package/dist/tools/fetch-file/index.js +53 -13
  168. package/dist/tools/fetch-file/utils.d.ts +3 -0
  169. package/dist/tools/fetch-file/utils.d.ts.map +1 -0
  170. package/dist/tools/fetch-file/utils.js +136 -0
  171. package/dist/tools/fetch-session-diff/index.d.ts +1 -1
  172. package/dist/tools/fetch-session-diff/index.d.ts.map +1 -1
  173. package/dist/tools/fetch-session-diff/index.js +26 -2
  174. package/dist/tools/file-operations/create.d.ts +1 -1
  175. package/dist/tools/file-operations/create.d.ts.map +1 -1
  176. package/dist/tools/file-operations/index.d.ts +2 -1
  177. package/dist/tools/file-operations/index.d.ts.map +1 -1
  178. package/dist/tools/file-operations/insert.d.ts +1 -1
  179. package/dist/tools/file-operations/insert.d.ts.map +1 -1
  180. package/dist/tools/file-operations/replace.d.ts +1 -1
  181. package/dist/tools/file-operations/replace.d.ts.map +1 -1
  182. package/dist/tools/file-operations/replace.js +20 -22
  183. package/dist/tools/file-operations/shared/helpers.d.ts +3 -5
  184. package/dist/tools/file-operations/shared/helpers.d.ts.map +1 -1
  185. package/dist/tools/file-operations/shared/helpers.js +1 -5
  186. package/dist/tools/file-operations/view/index.d.ts +2 -1
  187. package/dist/tools/file-operations/view/index.d.ts.map +1 -1
  188. package/dist/tools/grep/index.d.ts +1 -1
  189. package/dist/tools/grep/index.d.ts.map +1 -1
  190. package/dist/tools/grep/index.js +15 -12
  191. package/dist/tools/index.d.ts +3 -24
  192. package/dist/tools/index.d.ts.map +1 -1
  193. package/dist/tools/index.js +13 -42
  194. package/dist/tools/issues-v1/create-issue.d.ts +3 -0
  195. package/dist/tools/issues-v1/create-issue.d.ts.map +1 -0
  196. package/dist/tools/{issues → issues-v1}/create-issue.js +5 -9
  197. package/dist/tools/issues-v1/index.d.ts.map +1 -0
  198. package/dist/tools/issues-v1/list-issues.d.ts +3 -0
  199. package/dist/tools/issues-v1/list-issues.d.ts.map +1 -0
  200. package/dist/tools/issues-v1/update-issue.d.ts +3 -0
  201. package/dist/tools/issues-v1/update-issue.d.ts.map +1 -0
  202. package/dist/tools/{issues → issues-v1}/update-issue.js +1 -9
  203. package/dist/tools/{issues → issues-v1}/utils.d.ts +2 -1
  204. package/dist/tools/issues-v1/utils.d.ts.map +1 -0
  205. package/dist/tools/issues-v2/create-issue.d.ts +3 -0
  206. package/dist/tools/issues-v2/create-issue.d.ts.map +1 -0
  207. package/dist/tools/issues-v2/create-issue.js +86 -0
  208. package/dist/tools/issues-v2/update-issue.d.ts +3 -0
  209. package/dist/tools/issues-v2/update-issue.d.ts.map +1 -0
  210. package/dist/tools/issues-v2/update-issue.js +87 -0
  211. package/dist/tools/list-environments.d.ts +1 -1
  212. package/dist/tools/list-environments.d.ts.map +1 -1
  213. package/dist/tools/list-tests-and-projects/index.d.ts +1 -1
  214. package/dist/tools/list-tests-and-projects/index.d.ts.map +1 -1
  215. package/dist/tools/list-tests-and-projects/index.js +14 -4
  216. package/dist/tools/merge-conflicts/index.d.ts +1 -1
  217. package/dist/tools/merge-conflicts/index.d.ts.map +1 -1
  218. package/dist/tools/merge-conflicts/index.js +23 -10
  219. package/dist/tools/rename-file/index.d.ts +1 -1
  220. package/dist/tools/rename-file/index.d.ts.map +1 -1
  221. package/dist/tools/rename-file/index.js +0 -1
  222. package/dist/tools/review-pull-request/index.d.ts +1 -1
  223. package/dist/tools/review-pull-request/index.d.ts.map +1 -1
  224. package/dist/tools/review-pull-request/index.js +9 -15
  225. package/dist/tools/run-test.d.ts +1 -1
  226. package/dist/tools/run-test.d.ts.map +1 -1
  227. package/dist/tools/test-gen-browser.d.ts +1 -1
  228. package/dist/tools/test-gen-browser.d.ts.map +1 -1
  229. package/dist/tools/test-gen-browser.js +55 -19
  230. package/dist/tools/test-run-fetcher/index.d.ts +2 -2
  231. package/dist/tools/test-run-fetcher/index.d.ts.map +1 -1
  232. package/dist/tools/test-run-fetcher/index.js +67 -66
  233. package/dist/tools/trace-dot-zip/index.d.ts +1 -1
  234. package/dist/tools/trace-dot-zip/index.d.ts.map +1 -1
  235. package/dist/tools/trace-dot-zip/utils/network-trace.d.ts.map +1 -1
  236. package/dist/tools/trace-dot-zip/utils/network-trace.js +5 -10
  237. package/dist/tools/triage-summary/index.d.ts +1 -1
  238. package/dist/tools/triage-summary/index.d.ts.map +1 -1
  239. package/dist/tools/triage-summary/index.js +5 -2
  240. package/dist/tools/triage-summary/utils.d.ts +1 -1
  241. package/dist/tools/triage-summary/utils.d.ts.map +1 -1
  242. package/dist/tools/upgrade-packages/index.d.ts +1 -1
  243. package/dist/tools/upgrade-packages/index.d.ts.map +1 -1
  244. package/dist/tools/upgrade-packages/index.js +18 -8
  245. package/dist/tools/upgrade-packages/utils.d.ts +10 -5
  246. package/dist/tools/upgrade-packages/utils.d.ts.map +1 -1
  247. package/dist/tools/upgrade-packages/utils.js +57 -16
  248. package/dist/tools/utils/queue.d.ts +1 -1
  249. package/dist/tools/utils/queue.d.ts.map +1 -1
  250. package/dist/tools/utils/validate-schema.d.ts +3 -0
  251. package/dist/tools/utils/validate-schema.d.ts.map +1 -0
  252. package/dist/tools/utils/validate-schema.js +22 -0
  253. package/dist/trace-utils/index.d.ts +1 -1
  254. package/dist/trace-utils/index.d.ts.map +1 -1
  255. package/dist/trace-utils/index.js +1 -1
  256. package/dist/utils/SQSClient.d.ts +1 -1
  257. package/dist/utils/SQSClient.d.ts.map +1 -1
  258. package/dist/utils/dedup/dedup-image.d.ts +22 -0
  259. package/dist/utils/dedup/dedup-image.d.ts.map +1 -0
  260. package/dist/utils/dedup/dedup-image.js +26 -0
  261. package/dist/utils/dedup/find-threshold.d.ts +2 -0
  262. package/dist/utils/dedup/find-threshold.d.ts.map +1 -0
  263. package/dist/utils/{find-threshold.js → dedup/find-threshold.js} +2 -15
  264. package/dist/utils/model.d.ts +1 -1
  265. package/dist/utils/model.d.ts.map +1 -1
  266. package/dist/utils/model.js +4 -3
  267. package/dist/utils/playwright-report-parser.d.ts +1 -1
  268. package/dist/utils/playwright-report-parser.d.ts.map +1 -1
  269. package/dist/utils/playwright-test-id.d.ts +8 -0
  270. package/dist/utils/playwright-test-id.d.ts.map +1 -0
  271. package/dist/utils/playwright-test-id.js +21 -0
  272. package/dist/utils/repo-tree.d.ts +1 -1
  273. package/dist/utils/repo-tree.d.ts.map +1 -1
  274. package/dist/utils/slug.d.ts.map +1 -1
  275. package/dist/utils/slug.js +15 -4
  276. package/dist/utils/url-validation.d.ts +2 -0
  277. package/dist/utils/url-validation.d.ts.map +1 -0
  278. package/dist/utils/url-validation.js +16 -0
  279. package/dist/video-core/index.d.ts +14 -36
  280. package/dist/video-core/index.d.ts.map +1 -1
  281. package/dist/video-core/index.js +118 -181
  282. package/dist/video-core/model-limits.d.ts +2 -2
  283. package/dist/video-core/model-limits.d.ts.map +1 -1
  284. package/dist/video-core/model-limits.js +16 -20
  285. package/dist/video-core/storage-manager.d.ts +2 -1
  286. package/dist/video-core/storage-manager.d.ts.map +1 -1
  287. package/dist/video-core/storage-manager.js +13 -6
  288. package/dist/video-core/types.d.ts +1 -1
  289. package/dist/video-core/types.d.ts.map +1 -1
  290. package/dist/video-core/utils.d.ts +5 -17
  291. package/dist/video-core/utils.d.ts.map +1 -1
  292. package/dist/video-core/utils.js +39 -149
  293. package/package.json +10 -5
  294. package/tsconfig.tsbuildinfo +1 -1
  295. package/dist/actions/skill.d.ts +0 -21
  296. package/dist/actions/skill.d.ts.map +0 -1
  297. package/dist/actions/skill.js +0 -127
  298. package/dist/agent/chat/filesystem-cache.d.ts +0 -12
  299. package/dist/agent/chat/filesystem-cache.d.ts.map +0 -1
  300. package/dist/agent/chat/filesystem-cache.js +0 -101
  301. package/dist/agent/codegen/create-test-block.d.ts +0 -8
  302. package/dist/agent/codegen/create-test-block.d.ts.map +0 -1
  303. package/dist/agent/codegen/create-test-block.js +0 -47
  304. package/dist/agent/codegen/fix-ts-errors.d.ts +0 -12
  305. package/dist/agent/codegen/fix-ts-errors.d.ts.map +0 -1
  306. package/dist/agent/codegen/fix-ts-errors.js +0 -78
  307. package/dist/agent/codegen/lexical-scoped-vars.d.ts +0 -9
  308. package/dist/agent/codegen/lexical-scoped-vars.d.ts.map +0 -1
  309. package/dist/agent/codegen/lexical-scoped-vars.js +0 -55
  310. package/dist/agent/codegen/skills-retriever.d.ts +0 -26
  311. package/dist/agent/codegen/skills-retriever.d.ts.map +0 -1
  312. package/dist/agent/codegen/skills-retriever.js +0 -93
  313. package/dist/agent/codegen/test-update-feedback.d.ts +0 -12
  314. package/dist/agent/codegen/test-update-feedback.d.ts.map +0 -1
  315. package/dist/agent/codegen/test-update-feedback.js +0 -49
  316. package/dist/agent/codegen/types.d.ts +0 -25
  317. package/dist/agent/codegen/types.d.ts.map +0 -1
  318. package/dist/agent/codegen/types.js +0 -8
  319. package/dist/agent/codegen/update-flow.d.ts +0 -36
  320. package/dist/agent/codegen/update-flow.d.ts.map +0 -1
  321. package/dist/agent/codegen/update-flow.js +0 -259
  322. package/dist/agent/codegen/use-skill.d.ts +0 -11
  323. package/dist/agent/codegen/use-skill.d.ts.map +0 -1
  324. package/dist/agent/codegen/use-skill.js +0 -53
  325. package/dist/agent/codegen/utils.d.ts +0 -110
  326. package/dist/agent/codegen/utils.d.ts.map +0 -1
  327. package/dist/agent/codegen/utils.js +0 -376
  328. package/dist/agent/master/browser-tests/skills.spec.d.ts +0 -2
  329. package/dist/agent/master/browser-tests/skills.spec.d.ts.map +0 -1
  330. package/dist/agent/master/browser-tests/skills.spec.js +0 -112
  331. package/dist/agent/master/execute-skill-action.d.ts +0 -11
  332. package/dist/agent/master/execute-skill-action.d.ts.map +0 -1
  333. package/dist/agent/master/execute-skill-action.js +0 -23
  334. package/dist/agent/video-analysis/executor/index.d.ts +0 -5
  335. package/dist/agent/video-analysis/executor/index.d.ts.map +0 -1
  336. package/dist/agent/video-analysis/executor/index.js +0 -10
  337. package/dist/agent/video-analysis/index.d.ts +0 -7
  338. package/dist/agent/video-analysis/index.d.ts.map +0 -1
  339. package/dist/agent/video-analysis/index.js +0 -60
  340. package/dist/evals/append-create-test-agent.evals.d.ts +0 -4
  341. package/dist/evals/append-create-test-agent.evals.d.ts.map +0 -1
  342. package/dist/evals/append-create-test-agent.evals.js +0 -117
  343. package/dist/evals/fetch-pom-skills-agent.evals.d.ts +0 -4
  344. package/dist/evals/fetch-pom-skills-agent.evals.d.ts.map +0 -1
  345. package/dist/evals/fetch-pom-skills-agent.evals.js +0 -36
  346. package/dist/evals/master-agent.evals.d.ts +0 -4
  347. package/dist/evals/master-agent.evals.d.ts.map +0 -1
  348. package/dist/evals/master-agent.evals.js +0 -35
  349. package/dist/evals/type.d.ts +0 -12
  350. package/dist/evals/type.d.ts.map +0 -1
  351. package/dist/evals/type.js +0 -2
  352. package/dist/evals/update-scenario-agent.evals.d.ts +0 -4
  353. package/dist/evals/update-scenario-agent.evals.d.ts.map +0 -1
  354. package/dist/evals/update-scenario-agent.evals.js +0 -47
  355. package/dist/tools/fetch-last-successful-test-run/index.d.ts +0 -3
  356. package/dist/tools/fetch-last-successful-test-run/index.d.ts.map +0 -1
  357. package/dist/tools/fetch-last-successful-test-run/index.js +0 -60
  358. package/dist/tools/issues/create-issue.d.ts +0 -3
  359. package/dist/tools/issues/create-issue.d.ts.map +0 -1
  360. package/dist/tools/issues/index.d.ts.map +0 -1
  361. package/dist/tools/issues/list-issues.d.ts +0 -3
  362. package/dist/tools/issues/list-issues.d.ts.map +0 -1
  363. package/dist/tools/issues/metadata-schema.d.ts +0 -24
  364. package/dist/tools/issues/metadata-schema.d.ts.map +0 -1
  365. package/dist/tools/issues/metadata-schema.js +0 -22
  366. package/dist/tools/issues/update-issue.d.ts +0 -3
  367. package/dist/tools/issues/update-issue.d.ts.map +0 -1
  368. package/dist/tools/issues/utils.d.ts.map +0 -1
  369. package/dist/tools/utils/urls.d.ts +0 -5
  370. package/dist/tools/utils/urls.d.ts.map +0 -1
  371. package/dist/tools/utils/urls.js +0 -19
  372. package/dist/tools/view-failed-test-run-report/index.d.ts +0 -12
  373. package/dist/tools/view-failed-test-run-report/index.d.ts.map +0 -1
  374. package/dist/tools/view-failed-test-run-report/index.js +0 -151
  375. package/dist/utils/artifact-paths.d.ts +0 -20
  376. package/dist/utils/artifact-paths.d.ts.map +0 -1
  377. package/dist/utils/artifact-paths.js +0 -16
  378. package/dist/utils/dedup-image-fs.d.ts +0 -13
  379. package/dist/utils/dedup-image-fs.d.ts.map +0 -1
  380. package/dist/utils/dedup-image-fs.js +0 -84
  381. package/dist/utils/dedup-image.d.ts +0 -12
  382. package/dist/utils/dedup-image.d.ts.map +0 -1
  383. package/dist/utils/dedup-image.js +0 -25
  384. package/dist/utils/ffmpeg/index.d.ts +0 -26
  385. package/dist/utils/ffmpeg/index.d.ts.map +0 -1
  386. package/dist/utils/ffmpeg/index.js +0 -415
  387. package/dist/utils/find-threshold.d.ts +0 -8
  388. package/dist/utils/find-threshold.d.ts.map +0 -1
  389. package/dist/video-core/agent-orchestrator.d.ts +0 -14
  390. package/dist/video-core/agent-orchestrator.d.ts.map +0 -1
  391. package/dist/video-core/agent-orchestrator.js +0 -78
  392. package/dist/video-core/analysis-server.d.ts +0 -24
  393. package/dist/video-core/analysis-server.d.ts.map +0 -1
  394. package/dist/video-core/analysis-server.js +0 -398
  395. package/dist/video-core/analysis-viewer.html +0 -1374
  396. package/dist/video-core/xml-parser.d.ts +0 -3
  397. package/dist/video-core/xml-parser.d.ts.map +0 -1
  398. package/dist/video-core/xml-parser.js +0 -27
  399. /package/dist/tools/{issues → issues-v1}/index.d.ts +0 -0
  400. /package/dist/tools/{issues → issues-v1}/index.js +0 -0
  401. /package/dist/tools/{issues → issues-v1}/list-issues.js +0 -0
  402. /package/dist/tools/{issues → issues-v1}/utils.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,UAAU,EACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,eAAe,EACf,mBAAmB,EAEnB,UAAU,EACX,MAAM,4BAA4B,CAAC;AAMpC,eAAO,MAAM,kCAAkC,EAAE,MAAM,CACrD,MAAM,EACN,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAGpB,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C,eAAO,MAAM,eAAe,QAI3B,CAAC;AAEF,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,WAAW,EACX,aAAa,EACb,aAAa,EACb,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,aAAa,EAAE,mBAAmB,CAAC;IACnC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9B,aAYA;AAED,wBAAgB,0BAA0B,CAAC,EACzC,QAAQ,EACR,aAAa,EACb,eAAe,EACf,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,aAAa,EAAE,mBAAmB,CAAC;IACnC,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9B,GAAG,SAAS,CASZ;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EACpC,SAAS,EACT,KAAK,GACN,EAAE;IACD,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,mBAAmB,CAAC;IAC/C,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9B,aAOA;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CA0B5D;AAED,wBAAgB,aAAa,CAAC,EAC5B,SAAS,GACV,EAAE;IACD,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,SAAS,GAAG,SAAS,CAsBxB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,CAqBzD;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,SAAS,QAQ9C;AA2BD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B;IACD,gBAAgB,EAAE,IAAI,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;CACpC,CA0BA"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,eAAe,EAEf,UAAU,EACX,MAAM,uCAAuC,CAAC;AAM/C,eAAO,MAAM,kCAAkC,EAAE,MAAM,CACrD,MAAM,EACN,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAGpB,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAQ,CAAC;AAE/C,eAAO,MAAM,eAAe,QAI3B,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,EACpC,SAAS,EACT,KAAK,GACN,EAAE;IACD,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;CAC9B;;;;;;EAQA;AAED,wBAAgB,eAAe,CAAC,CAAC,GAAG,gBAAgB,EAClD,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC7B,MAAM,CA4BR;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,EAC/B,SAAS,GACV,EAAE;IACD,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,SAAS,CAoBlC;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,QAQ3D;AA2BD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,MAAM,GAAG,IAAI,CAef;AAED,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,gBAAgB,EAAE,GAC3B;IACD,gBAAgB,EAAE,IAAI,GAAG,SAAS,CAAC;IACnC,QAAQ,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;CACpC,CA0BA"}
@@ -4,16 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.CHAT_STATE_PATH = exports.LATEST_CHAT_STATE_VERSION = exports.CHAT_STATE_VERSIONS_MIGRATIONS_MAP = void 0;
7
- exports.createChatState = createChatState;
8
- exports.createChatStateForMessages = createChatStateForMessages;
9
7
  exports.chatStateFromModel = chatStateFromModel;
10
8
  exports.getUsageSummary = getUsageSummary;
11
9
  exports.loadChatState = loadChatState;
12
- exports.migrateChatState = migrateChatState;
13
10
  exports.saveToDisk = saveToDisk;
14
11
  exports.getLatestDownloadBuildUrl = getLatestDownloadBuildUrl;
15
12
  exports.fetchToolCallFromId = fetchToolCallFromId;
16
- const chat_1 = require("@empiricalrun/llm/chat");
17
13
  const fs_1 = __importDefault(require("fs"));
18
14
  const path_1 = __importDefault(require("path"));
19
15
  exports.CHAT_STATE_VERSIONS_MIGRATIONS_MAP = {
@@ -21,40 +17,20 @@ exports.CHAT_STATE_VERSIONS_MIGRATIONS_MAP = {
21
17
  };
22
18
  exports.LATEST_CHAT_STATE_VERSION = "0.1";
23
19
  exports.CHAT_STATE_PATH = path_1.default.join(process.cwd(), ".empiricalrun", "last-chat.json");
24
- function createChatState({ userPrompt, attachments, existingState, selectedModel, error, }) {
25
- const messages = existingState?.messages || [];
26
- const chatModel = (0, chat_1.createChatModel)(messages, selectedModel);
27
- if (userPrompt) {
28
- chatModel.pushUserMessage(userPrompt, attachments);
29
- }
30
- return createChatStateForMessages({
31
- messages: chatModel.messages,
32
- selectedModel,
33
- askUserForInput: chatModel.askUserForInput,
34
- error,
35
- });
36
- }
37
- function createChatStateForMessages({ messages, selectedModel, askUserForInput, error, }) {
38
- // TODO: Add better types for messages
20
+ function chatStateFromModel({ chatModel, error, }) {
39
21
  return {
40
22
  version: exports.LATEST_CHAT_STATE_VERSION,
41
- model: selectedModel,
42
- messages: messages,
43
- askUserForInput: askUserForInput,
44
- error: error,
45
- };
46
- }
47
- function chatStateFromModel({ chatModel, error, }) {
48
- return createChatStateForMessages({
23
+ model: chatModel.selectedModel,
49
24
  messages: chatModel.messages,
50
- selectedModel: chatModel.selectedModel,
51
25
  askUserForInput: chatModel.askUserForInput,
52
- error,
53
- });
26
+ error: error,
27
+ };
54
28
  }
55
29
  function getUsageSummary(chatState) {
56
30
  const messages = chatState.messages;
57
- const messageUsages = messages.map((msg) => msg.usage).filter(Boolean);
31
+ const messageUsages = messages
32
+ .map((msg) => "usage" in msg && msg.usage)
33
+ .filter(Boolean);
58
34
  const inputTokens = messageUsages.reduce((sum, usage) => sum + (usage?.tokens?.input || 0), 0);
59
35
  const outputTokens = messageUsages.reduce((sum, usage) => sum + (usage?.tokens?.output || 0), 0);
60
36
  const costs = messageUsages
@@ -86,37 +62,11 @@ function loadChatState({ resetChat, }) {
86
62
  }
87
63
  const raw = fs_1.default.readFileSync(exports.CHAT_STATE_PATH, "utf8");
88
64
  let state = JSON.parse(raw);
89
- // Always migrate to the latest version after loading
90
- const migratedState = migrateChatState(state);
91
65
  // Only save if migration actually changed the state
92
- if (JSON.stringify(state) !== JSON.stringify(migratedState)) {
93
- fs_1.default.writeFileSync(exports.CHAT_STATE_PATH, JSON.stringify(migratedState, null, 2));
94
- }
95
- return migratedState;
96
- }
97
- /**
98
- * Migrates a chat state object from an old version to the latest version.
99
- * Add migration logic for each version as needed.
100
- */
101
- function migrateChatState(oldState) {
102
- if (!oldState || Object.keys(oldState).length === 0) {
103
- return oldState;
104
- }
105
- if (!oldState.version) {
106
- throw new Error("No version found in chat state");
107
- }
108
- if (!exports.CHAT_STATE_VERSIONS_MIGRATIONS_MAP[oldState.version]) {
109
- throw new Error(`No migration function found for version: ${oldState.version}`);
66
+ if (JSON.stringify(state) !== JSON.stringify(state)) {
67
+ fs_1.default.writeFileSync(exports.CHAT_STATE_PATH, JSON.stringify(state, null, 2));
110
68
  }
111
- if (oldState.version === exports.LATEST_CHAT_STATE_VERSION) {
112
- return oldState;
113
- }
114
- const migrateFn = exports.CHAT_STATE_VERSIONS_MIGRATIONS_MAP[oldState.version];
115
- const migrated = migrateFn(oldState);
116
- return {
117
- version: exports.LATEST_CHAT_STATE_VERSION,
118
- ...migrated,
119
- };
69
+ return state;
120
70
  }
121
71
  function saveToDisk(chatState) {
122
72
  const statePath = exports.CHAT_STATE_PATH;
@@ -1,12 +1,12 @@
1
1
  import { TraceClient } from "@empiricalrun/llm";
2
- import { IChatCanonicalModel, IChatModel } from "@empiricalrun/llm/chat";
3
- import { Attachment, ReporterFunction } from "@empiricalrun/shared-types";
2
+ import { IChatModel } from "@empiricalrun/llm/chat";
3
+ import { Attachment, ReporterFunction } from "@empiricalrun/shared-types/chat-agent";
4
4
  export declare const log: (...args: any[]) => void;
5
5
  export declare function getModelName(model: string): string;
6
- export declare function handleAgentError({ error, chatModel, reporter, trace, }: {
6
+ export declare function handleAgentError<T>({ error, chatModel, reporter, trace, }: {
7
7
  error: unknown;
8
- chatModel: IChatModel<any> | IChatCanonicalModel;
9
- reporter: ReporterFunction;
8
+ chatModel: IChatModel<T>;
9
+ reporter: ReporterFunction<T>;
10
10
  trace?: TraceClient;
11
11
  }): Promise<void>;
12
12
  export declare function extractAttachments(userPrompt: string): {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAGL,mBAAmB,EACnB,UAAU,EACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EAEV,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAKpC,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,GAAG,EAAE,SAEjC,CAAC;AAcF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAsB,gBAAgB,CAAC,EACrC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC;IACjD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,iBAaA;AASD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CA4BA"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/agent/chat/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAGL,UAAU,EACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EAEV,gBAAgB,EACjB,MAAM,uCAAuC,CAAC;AAK/C,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,GAAG,EAAE,SAEjC,CAAC;AAcF,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,EACxC,KAAK,EACL,SAAS,EACT,QAAQ,EACR,KAAK,GACN,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,iBAaA;AASD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,UAAU,EAAE,CAAC;CAC3B,CA4BA"}
@@ -1,6 +1,6 @@
1
- import { AgentModeEnum, SupportedChatModels } from "@empiricalrun/shared-types";
1
+ import { AgentModeEnum, SupportedChatModels } from "@empiricalrun/shared-types/chat-agent";
2
2
  export declare function fetchEnvironmentVariables(): Promise<Record<string, string>>;
3
- export declare function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialPromptContent, agentMode, resetChat, useFSCache, }: {
3
+ export declare function runChatAgentForCLI<T>({ useDiskForChatState, selectedModel, initialPromptContent, agentMode, resetChat, useFSCache, }: {
4
4
  selectedModel: SupportedChatModels;
5
5
  useDiskForChatState: boolean;
6
6
  initialPromptContent: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/agent/cli.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EAKb,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AA+BpC,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB,CAkCA;AAED,wBAAsB,kBAAkB,CAAC,EACvC,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,UAAU,GACX,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,iBA2KA"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/agent/cli.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,aAAa,EAIb,mBAAmB,EACpB,MAAM,uCAAuC,CAAC;AA6B/C,wBAAsB,yBAAyB,IAAI,OAAO,CACxD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CACvB,CAkCA;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,EAC1C,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,UAAU,GACX,EAAE;IACD,aAAa,EAAE,mBAAmB,CAAC;IACnC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB,iBA+JA"}
package/dist/agent/cli.js CHANGED
@@ -53,8 +53,6 @@ async function fetchEnvironmentVariables() {
53
53
  }
54
54
  async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialPromptContent, agentMode, resetChat, useFSCache, }) {
55
55
  const enableStreaming = !useFSCache;
56
- // TODO: Implement cache support in BaseAgent
57
- // const cache = useFSCache ? new FilesystemLLMCache() : undefined;
58
56
  // TODO: Store branch name in chat state so that we don't recreate it every time
59
57
  const randomId = crypto.randomUUID().substring(0, 8);
60
58
  const branchName = `branch-${randomId}`;
@@ -67,30 +65,6 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
67
65
  // Reset error state as we are attempting a retry
68
66
  chatState.error = null;
69
67
  }
70
- if (initialPromptContent) {
71
- if (!chatState) {
72
- const { text, attachments } = (0, utils_1.extractAttachments)(initialPromptContent);
73
- chatState = (0, state_1.createChatState)({
74
- userPrompt: text,
75
- attachments: attachments,
76
- existingState: undefined,
77
- selectedModel,
78
- error: null,
79
- });
80
- }
81
- else {
82
- console.warn(`Ignoring initial prompt because we have existing chat state.`);
83
- }
84
- }
85
- if (!chatState) {
86
- chatState = (0, state_1.createChatState)({
87
- userPrompt: undefined,
88
- attachments: [],
89
- selectedModel,
90
- existingState: undefined,
91
- error: null,
92
- });
93
- }
94
68
  const handleSigInt = () => {
95
69
  concludeAgent(agent, useDiskForChatState);
96
70
  process.exit(0);
@@ -118,7 +92,7 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
118
92
  });
119
93
  if (trace) {
120
94
  const traceUrl = trace.getTraceUrl();
121
- console.log(`Starting ${selectedModel}: ${traceUrl}`);
95
+ console.log(`Starting Model: ${selectedModel} \nTrace URL: ${traceUrl}`);
122
96
  }
123
97
  let authType = "user-access-token";
124
98
  if (process.env.EMPIRICALRUN_API_KEY) {
@@ -141,8 +115,22 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
141
115
  featureFlags: [],
142
116
  chatState,
143
117
  toolExecutor,
118
+ repoInfoBuilder: fileInfoBuilder,
144
119
  };
145
- const agent = index_1.MODE_TO_AGENT_MAP[agentMode]({ ...agentParams });
120
+ const agent = agentMode === "triage"
121
+ ? new index_1.TriageAgent(agentParams)
122
+ : new index_1.ChatAgent(agentParams);
123
+ // If we have an initial prompt and no existing chat state, push it to the agent
124
+ if (initialPromptContent && !chatState) {
125
+ const { text, attachments } = (0, utils_1.extractAttachments)(initialPromptContent);
126
+ const updatedChatState = agent.pushUserMessage([{ text, attachments }]);
127
+ if (useDiskForChatState) {
128
+ (0, state_1.saveToDisk)(updatedChatState);
129
+ }
130
+ }
131
+ else if (initialPromptContent && chatState) {
132
+ console.warn(`Ignoring initial prompt because we have existing chat state.`);
133
+ }
146
134
  if (agent.askUserForInput) {
147
135
  // Show last message to the user for context when we loaded from disk
148
136
  const latest = agent.getHumanReadableLatestMessage();
@@ -168,7 +156,7 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
168
156
  }
169
157
  if (!stopCriteria(userPrompt)) {
170
158
  const { text, attachments } = (0, utils_1.extractAttachments)(userPrompt);
171
- agent.pushUserMessage(text, attachments);
159
+ agent.pushUserMessage([{ text, attachments }]);
172
160
  }
173
161
  }
174
162
  else {
@@ -198,8 +186,6 @@ async function runChatAgentForCLI({ useDiskForChatState, selectedModel, initialP
198
186
  }
199
187
  };
200
188
  })(),
201
- trace,
202
- repoInfoBuilder: fileInfoBuilder,
203
189
  onPendingToolCall: async (toolCalls) => {
204
190
  const { toolResults, checkpoint } = await toolExecutor.execute(toolCalls);
205
191
  agent.processToolResults(toolCalls, toolResults, checkpoint);
@@ -1,12 +1,13 @@
1
- import type { ToolsForLLM } from "@empiricalrun/shared-types";
1
+ import type { ToolsForLLM } from "@empiricalrun/shared-types/chat-agent";
2
+ import type { FileInfo } from "@empiricalrun/shared-types/test-gen";
2
3
  import { BaseAgent } from "../base";
3
4
  import { type CodeReviewResultV0, type CodeReviewResultV1, type CodeReviewResultV2, CodeReviewSeverity, CodeReviewVerdict } from "./types";
4
5
  export type { CodeReviewResultV1, CodeReviewResultV0, CodeReviewResultV2 };
5
6
  export { CodeReviewVerdict, CodeReviewSeverity };
6
- export type CodeReviewVersionedResult = CodeReviewResultV1 | CodeReviewResultV0 | CodeReviewResultV2;
7
- export declare class CodeReviewAgent extends BaseAgent {
7
+ export type CodeReviewVersionedResult = CodeReviewResultV0 | CodeReviewResultV1 | CodeReviewResultV2;
8
+ export declare class CodeReviewAgent<T> extends BaseAgent<T> {
8
9
  protected getTools(): ToolsForLLM;
9
10
  getResult(): CodeReviewVersionedResult | undefined;
10
- protected buildSystemPrompt(repoContext: string): Promise<string>;
11
+ protected buildSystemPrompt(repoInfoBuilder: () => Promise<FileInfo>): Promise<string>;
11
12
  }
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/code-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAG/E,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AACjD,MAAM,MAAM,yBAAyB,GACjC,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,qBAAa,eAAgB,SAAQ,SAAS;IAC5C,SAAS,CAAC,QAAQ,IAAI,WAAW;IAWjC,SAAS,IAAI,yBAAyB,GAAG,SAAS;cAmBlC,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAuHxE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/code-review/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,CAAC;AAEjD,MAAM,MAAM,yBAAyB,GACjC,kBAAkB,GAClB,kBAAkB,GAClB,kBAAkB,CAAC;AAEvB,qBAAa,eAAe,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,QAAQ,IAAI,WAAW;IAWjC,SAAS,IAAI,yBAAyB,GAAG,SAAS;cAmBlC,iBAAiB,CAC/B,eAAe,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GACvC,OAAO,CAAC,MAAM,CAAC;CAiInB"}
@@ -4,6 +4,7 @@ exports.CodeReviewAgent = exports.CodeReviewSeverity = exports.CodeReviewVerdict
4
4
  const tools_1 = require("../../tools");
5
5
  const fetch_session_diff_1 = require("../../tools/fetch-session-diff");
6
6
  const base_1 = require("../base");
7
+ const repo_1 = require("../chat/prompt/repo");
7
8
  const parser_1 = require("./parser");
8
9
  const types_1 = require("./types");
9
10
  Object.defineProperty(exports, "CodeReviewSeverity", { enumerable: true, get: function () { return types_1.CodeReviewSeverity; } });
@@ -25,9 +26,7 @@ class CodeReviewAgent extends base_1.BaseAgent {
25
26
  ? messages[messages.length - 1]
26
27
  : undefined;
27
28
  const lastMessageTextPart = lastMessage
28
- ? lastMessage.parts
29
- .filter((p) => "text" in p)
30
- .find((p) => "text" in p && !!p.text)
29
+ ? lastMessage.parts.find((p) => "text" in p && !!p.text && !("thinking" in p))
31
30
  : undefined;
32
31
  const textPart = lastMessageTextPart;
33
32
  const text = textPart?.text.trim();
@@ -36,7 +35,9 @@ class CodeReviewAgent extends base_1.BaseAgent {
36
35
  }
37
36
  return (0, parser_1.convertXmlToV2Format)(text);
38
37
  }
39
- async buildSystemPrompt(repoContext) {
38
+ async buildSystemPrompt(repoInfoBuilder) {
39
+ const repoInfo = await repoInfoBuilder();
40
+ const repoContext = await (0, repo_1.getRepoContextPrompt)(repoInfo);
40
41
  return `
41
42
  You are an expert code reviewer that specializes in reviewing Playwright test code. You are
42
43
  provided with tools to fetch diff and pull-request metadata for a code review, where a test has been added, test modified,
@@ -122,6 +123,8 @@ Return these as XML tags with markdown inside them
122
123
  - Use locators instead of selectors: waitForSelector, $, $$ are bad - use locators instead (e.g. locator.waitFor)
123
124
  - If the test relies on some Playwright APIs that do not auto-wait (e.g. isVisible(), count()), we need to ensure
124
125
  they are used AFTER some action that ensures the page has loaded. If nothing, at least it should have a waitForTimeout
126
+ - For checkbox elements, use \`setChecked(true or false)\` instead of clicks. Click action on checkbox toggles the state and requires
127
+ a conditional, whereas \`setChecked\` allows specifying the end expected state, which is easier to maintain.
125
128
 
126
129
  ## Deprecated patterns
127
130
  - test.describe.serial(...) is not prefered: use test.describe.configure({ mode: "serial" }) if the tests need to be serial
@@ -131,6 +134,9 @@ Return these as XML tags with markdown inside them
131
134
  - Helper methods (that are imported in the tests) should be in pages/ directory (e.g. pages/common.ts)
132
135
  - Helper methods should be functional - not classes (conventional class-based page object models are NOT recommended - use functions!)
133
136
 
137
+ ## Common mistakes
138
+ - Our author has a tendency to add newline characters to console logs (e.g \`console.log("\ngoing to page foo");\` ) - this should not be allowed
139
+
134
140
  # Severity: Warning
135
141
 
136
142
  ## Call out test data assumptions
@@ -153,6 +159,9 @@ Return these as XML tags with markdown inside them
153
159
 
154
160
  # Repo context
155
161
  ${repoContext}
162
+
163
+ # Reference
164
+ Today's date is ${new Date().toDateString()}
156
165
  `;
157
166
  }
158
167
  }
@@ -1,36 +1,3 @@
1
- export declare enum CodeReviewVerdict {
2
- Approved = "Approved",
3
- Rejected = "Rejected"
4
- }
5
- export declare enum CodeReviewSeverity {
6
- MergeBlocking = "merge-blocking",
7
- Warning = "warning"
8
- }
9
- export type CodeReviewResultV1 = {
10
- version: "1.0";
11
- last_commit: string | null;
12
- code_review_comments: string | null;
13
- describe_code_change: string | null;
14
- merge_blocking_issues: string | null;
15
- best_practices_and_warnings: string | null;
16
- verdict: "Approved" | "Rejected" | null;
17
- };
18
- export type CodeReviewLineComment = {
19
- file: string;
20
- line_start: number;
21
- line_end: number;
22
- severity: CodeReviewSeverity;
23
- message: string;
24
- };
25
- export type CodeReviewResultV2 = {
26
- version: "2.0";
27
- last_commit: string;
28
- describe_code_change: string;
29
- line_comments: CodeReviewLineComment[];
30
- verdict: CodeReviewVerdict;
31
- };
32
- export type CodeReviewResultV0 = {
33
- version: "0.1";
34
- result: string;
35
- };
1
+ export type { CodeReviewLineComment, CodeReviewResultV0, CodeReviewResultV1, CodeReviewResultV2, } from "@empiricalrun/shared-types/code-review";
2
+ export { CodeReviewSeverity, CodeReviewVerdict, } from "@empiricalrun/shared-types/code-review";
36
3
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/code-review/types.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IAC3B,QAAQ,aAAa;IACrB,QAAQ,aAAa;CACtB;AAED,oBAAY,kBAAkB;IAC5B,aAAa,mBAAmB;IAChC,OAAO,YAAY;CACpB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,2BAA2B,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,OAAO,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,OAAO,EAAE,iBAAiB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,KAAK,CAAC;IAEf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/agent/code-review/types.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wCAAwC,CAAC"}
@@ -1,13 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CodeReviewSeverity = exports.CodeReviewVerdict = void 0;
4
- var CodeReviewVerdict;
5
- (function (CodeReviewVerdict) {
6
- CodeReviewVerdict["Approved"] = "Approved";
7
- CodeReviewVerdict["Rejected"] = "Rejected";
8
- })(CodeReviewVerdict || (exports.CodeReviewVerdict = CodeReviewVerdict = {}));
9
- var CodeReviewSeverity;
10
- (function (CodeReviewSeverity) {
11
- CodeReviewSeverity["MergeBlocking"] = "merge-blocking";
12
- CodeReviewSeverity["Warning"] = "warning";
13
- })(CodeReviewSeverity || (exports.CodeReviewSeverity = CodeReviewSeverity = {}));
3
+ exports.CodeReviewVerdict = exports.CodeReviewSeverity = void 0;
4
+ var code_review_1 = require("@empiricalrun/shared-types/code-review");
5
+ Object.defineProperty(exports, "CodeReviewSeverity", { enumerable: true, get: function () { return code_review_1.CodeReviewSeverity; } });
6
+ Object.defineProperty(exports, "CodeReviewVerdict", { enumerable: true, get: function () { return code_review_1.CodeReviewVerdict; } });
@@ -1,5 +1,5 @@
1
1
  import { TraceClient } from "@empiricalrun/llm";
2
- import { ArtifactInputData, Usage } from "@empiricalrun/shared-types";
2
+ import { ArtifactInputData, Usage } from "@empiricalrun/shared-types/chat-agent";
3
3
  import { Page } from "playwright";
4
4
  export type BrowserAgentResult = Array<{
5
5
  type: "text";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/cua/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAStE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAoDlC,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAClC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CACJ,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,EACpD,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,8BAAsC,GACvC,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC,CAuND"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent/cua/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EACL,iBAAiB,EACjB,KAAK,EACN,MAAM,uCAAuC,CAAC;AAS/C,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA6DlC,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAClC;IACE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,iBAAiB,CAAC;CAC/B,CACJ,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,EACpD,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,8BAAsC,GACvC,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,KAAK,CAAC;CACd,CAAC,CAuND"}
@@ -28,21 +28,29 @@ function artifact(screenshot, name) {
28
28
  data: Buffer.from(screenshot, "base64"),
29
29
  };
30
30
  }
31
- function stateOfTheBrowser(page) {
31
+ async function tabsSummary(pages) {
32
+ let lines = [];
33
+ for (const p of pages) {
34
+ lines.push(` - ${p.url()} - ${await p.title()}`);
35
+ }
36
+ return lines.join("\n");
37
+ }
38
+ async function stateOfTheBrowser(page) {
32
39
  const browserContext = page.context();
33
40
  const pages = browserContext.pages();
41
+ const allPagesSummary = await tabsSummary(pages);
34
42
  return `
35
43
  ## Browser window
36
44
 
37
45
  ### Current page (what you are working on)
38
46
  Current page URL: ${page.url()}
39
- Current page title: ${page.title()}
47
+ Current page title: ${await page.title()}
40
48
 
41
49
  ### All pages
42
50
  Number of open pages: ${pages.length}
43
51
 
44
52
  URLs and titles:
45
- ${pages.map((p) => ` - ${p.url()} - ${p.title()}`).join("\n")}`;
53
+ ${allPagesSummary}`;
46
54
  }
47
55
  async function createTestUsingComputerUseAgent({ page, task, trace, prefersElementFromPointCodegen = false, }) {
48
56
  const codegen = await getCodegenInstance(prefersElementFromPointCodegen);
@@ -69,7 +77,7 @@ async function createTestUsingComputerUseAgent({ page, task, trace, prefersEleme
69
77
  content: [
70
78
  {
71
79
  type: "input_text",
72
- text: `Task to execute: ${task}\n\n${stateOfTheBrowser(page)}`,
80
+ text: `Task to execute: ${task}\n\n${await stateOfTheBrowser(page)}`,
73
81
  },
74
82
  {
75
83
  type: "input_image",
@@ -193,7 +201,7 @@ async function createTestUsingComputerUseAgent({ page, task, trace, prefersEleme
193
201
  content: [
194
202
  {
195
203
  type: "input_text",
196
- text: `Action executed: ${executedActionSummary || "None"}\n\n${stateOfTheBrowser(page)}`,
204
+ text: `Action executed: ${executedActionSummary || "None"}\n\n${await stateOfTheBrowser(page)}`,
197
205
  },
198
206
  ],
199
207
  },
@@ -1 +1 @@
1
- {"version":3,"file":"for-recorder.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/for-recorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,iCAAiC;IAO1C,OAAO,CAAC,eAAe;IANzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,iBAAiB,CAAqB;gBAGpC,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;YAKtD,QAAQ;IAWhB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrC,sBAAsB,CAAC,IAAI,EAAE,IAAI;CA0CxC"}
1
+ {"version":3,"file":"for-recorder.d.ts","sourceRoot":"","sources":["../../../../../src/agent/cua/pw-codegen/pw-pause/for-recorder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzC,qBAAa,iCAAiC;IAO1C,OAAO,CAAC,eAAe;IANzB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,IAAI,CAAmB;IAC/B,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,iBAAiB,CAAqB;gBAGpC,eAAe,EAAE,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;YAKtD,QAAQ;IAQhB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBrC,sBAAsB,CAAC,IAAI,EAAE,IAAI;CA0CxC"}
@@ -21,9 +21,6 @@ class PlaywrightPauseCodegenForRecorder {
21
21
  async saveCode(code) {
22
22
  const generatedCode = code.map((c) => c.actions.join("\n")).join("\n");
23
23
  if (generatedCode) {
24
- // console.log(
25
- // `[PlaywrightPauseCodegen] Received code from Playwright: ${generatedCode}`,
26
- // );
27
24
  this.codeForLastAction = generatedCode;
28
25
  await this.sourcesCallback(code);
29
26
  }
@@ -101,7 +101,7 @@ class PlaywrightPauseCodegen {
101
101
  }
102
102
  async getCodeForLastAction() {
103
103
  // Wait for the server to send the code
104
- await new Promise((resolve) => setTimeout(resolve, 1000));
104
+ await new Promise((resolve) => setTimeout(resolve, 1_500));
105
105
  let codeToReturn = this.codeForLastAction;
106
106
  this.codeForLastAction = undefined;
107
107
  if (!codeToReturn) {
@@ -1,10 +1,6 @@
1
- import type { AgentModeEnum } from "@empiricalrun/shared-types";
2
1
  import { type AgentParams, BaseAgent } from "./base";
3
2
  import { ChatAgent } from "./chat";
4
- import { CodeReviewAgent } from "./code-review";
5
3
  import { TriageAgent } from "./triage";
6
- import { VideoAnalysisAgent } from "./video-analysis";
7
- export declare const MODE_TO_AGENT_MAP: Record<AgentModeEnum, (params: AgentParams) => BaseAgent>;
8
- export { BaseAgent, ChatAgent, CodeReviewAgent, TriageAgent, VideoAnalysisAgent, };
4
+ export { BaseAgent, ChatAgent, TriageAgent };
9
5
  export type { AgentParams };
10
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,aAAa,EACb,CAAC,MAAM,EAAE,WAAW,KAAK,SAAS,CAMnC,CAAC;AAEF,OAAO,EACL,SAAS,EACT,SAAS,EACT,eAAe,EACf,WAAW,EACX,kBAAkB,GACnB,CAAC;AACF,YAAY,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,CAAC"}
@@ -1,19 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VideoAnalysisAgent = exports.TriageAgent = exports.CodeReviewAgent = exports.ChatAgent = exports.BaseAgent = exports.MODE_TO_AGENT_MAP = void 0;
3
+ exports.TriageAgent = exports.ChatAgent = exports.BaseAgent = void 0;
4
4
  const base_1 = require("./base");
5
5
  Object.defineProperty(exports, "BaseAgent", { enumerable: true, get: function () { return base_1.BaseAgent; } });
6
6
  const chat_1 = require("./chat");
7
7
  Object.defineProperty(exports, "ChatAgent", { enumerable: true, get: function () { return chat_1.ChatAgent; } });
8
- const code_review_1 = require("./code-review");
9
- Object.defineProperty(exports, "CodeReviewAgent", { enumerable: true, get: function () { return code_review_1.CodeReviewAgent; } });
10
8
  const triage_1 = require("./triage");
11
9
  Object.defineProperty(exports, "TriageAgent", { enumerable: true, get: function () { return triage_1.TriageAgent; } });
12
- const video_analysis_1 = require("./video-analysis");
13
- Object.defineProperty(exports, "VideoAnalysisAgent", { enumerable: true, get: function () { return video_analysis_1.VideoAnalysisAgent; } });
14
- exports.MODE_TO_AGENT_MAP = {
15
- triage: (params) => new triage_1.TriageAgent(params),
16
- chat: (params) => new chat_1.ChatAgent(params),
17
- video: (params) => new video_analysis_1.VideoAnalysisAgent(params),
18
- "code-review": (params) => new code_review_1.CodeReviewAgent(params),
19
- };
@@ -1,5 +1,5 @@
1
1
  import { LLM, TraceClient } from "@empiricalrun/llm";
2
- import { TestGenConfigOptions } from "@empiricalrun/shared-types";
2
+ import { TestGenConfigOptions } from "@empiricalrun/shared-types/agent-workflow";
3
3
  import { Page } from "playwright";
4
4
  import { ActionType } from "./action-tool-calls";
5
5
  export declare function getElementAnnotation({ elementDescription, annotations, annotatedScreenshot, trace, llm, options, preference, }: {
@@ -1 +1 @@
1
- {"version":3,"file":"element-annotation.d.ts","sourceRoot":"","sources":["../../../src/agent/master/element-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAQlC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA2DjD,wBAAsB,oBAAoB,CAAC,EACzC,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,KAAK,EACL,GAAG,EACH,OAAO,EACP,UAAU,GACX,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,oBAAoB,CAAC;CAClC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8C9B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EACN,KAAK,GACL,UAAU,CAAC,IAAI,GACf,UAAU,CAAC,WAAW,GACtB,UAAU,CAAC,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAgBF,wBAAsB,iBAAiB,CAAC,EACtC,IAAI,EACJ,UAAU,EACV,KAAK,GACN,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GAAG,OAAO,CAAC;IACV,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC,CAmFD"}
1
+ {"version":3,"file":"element-annotation.d.ts","sourceRoot":"","sources":["../../../src/agent/master/element-annotation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAQlC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA2DjD,wBAAsB,oBAAoB,CAAC,EACzC,kBAAkB,EAClB,WAAW,EACX,mBAAmB,EACnB,KAAK,EACL,GAAG,EACH,OAAO,EACP,UAAU,GACX,EAAE;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,UAAU,EAAE,oBAAoB,CAAC;CAClC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA8C9B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EACN,KAAK,GACL,UAAU,CAAC,IAAI,GACf,UAAU,CAAC,WAAW,GACtB,UAAU,CAAC,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,CAAC;AAgBF,wBAAsB,iBAAiB,CAAC,EACtC,IAAI,EACJ,UAAU,EACV,KAAK,GACN,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,oBAAoB,CAAC;IACjC,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB,GAAG,OAAO,CAAC;IACV,cAAc,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACtD,gBAAgB,EAAE,MAAM,CAAC;IACzB,uBAAuB,EAAE,MAAM,CAAC;CACjC,CAAC,CAmFD"}
@@ -1,5 +1,5 @@
1
1
  import { LLM, TraceClient } from "@empiricalrun/llm";
2
- import { TestGenConfigOptions } from "@empiricalrun/shared-types";
2
+ import { TestGenConfigOptions } from "@empiricalrun/shared-types/agent-workflow";
3
3
  import { Page } from "playwright";
4
4
  import { PlaywrightActions } from "../../actions";
5
5
  import { CustomLogger } from "../../bin/logger";
@@ -1 +1 @@
1
- {"version":3,"file":"next-action.d.ts","sourceRoot":"","sources":["../../../src/agent/master/next-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUhD,wBAAsB,aAAa,CAAC,EAClC,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,eAAe,EACf,aAAa,EACb,KAAK,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,aAAa,EACb,MAAM,GACP,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CACP;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD,SAAS,CACZ,CA8FA"}
1
+ {"version":3,"file":"next-action.d.ts","sourceRoot":"","sources":["../../../src/agent/master/next-action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,GAAG,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAUhD,wBAAsB,aAAa,CAAC,EAClC,IAAI,EACJ,cAAc,EACd,IAAI,EACJ,eAAe,EACf,aAAa,EACb,KAAK,EACL,GAAG,EACH,OAAO,EACP,OAAO,EACP,aAAa,EACb,MAAM,GACP,EAAE;IACD,IAAI,EAAE,IAAI,CAAC;IACX,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,GAAG,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACxC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB,GAAG,OAAO,CACP;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB,GACD,SAAS,CACZ,CAwFA"}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getNextAction = getNextAction;
4
4
  const llm_1 = require("@empiricalrun/llm");
5
- const skill_1 = require("../../actions/skill");
6
5
  const constants_1 = require("../../constants");
7
6
  const promptTemplate_0 = "{{#section \"system\"}}\nYou are a web automation tool which is given a task to complete. You need to execute the\ntask provided to you with the help of web page screenshot, a browser automation tool or skills\nwhich are learnt while writing previous tests. \n \nBrowser automation tool is a tool which uses Playwright and browser to execute action using\nnext_action tool call.\nSkill usage is a tool which helps to execute previously known pieces of code to achieve a task.\n\nYou will be provided with a screenshot of the webpage which you will use to extract the action\nthat needs to be taken.\n\nYou will be provided with previously executed actions by the browser automation tool and based\non the current screenshot and previously executed actions, you need to predict the next action\nto be taken.\n\nYou will also be provided with failed next action predicted by you, so that you can avoid\nsuggesting the same action again - which failed.\n\nThe next action should be as atomic as possible. e.g: scroll, click on an element, fill an input\nelement, assert, extract text from an element are valid next action as they are atomic in nature.\n\nYou also need to provide the action type using the list below, action type which is not present in\nthe list is invalid: {{validActionTypes}}\n\nYou will also be provided with skill usage tool which you can use to execute action. These skills\nare compound functions which helps you to complete your action.\n\nYou need to respond with either:\n- Next action to be taken by a browser automation tool \n- Use previously learnt skills in the form of tool call.\n \nYou need to make a decision whether the given skill can be reused if \"YES\" respond with the\nskill else respond with the next action.\n{{/section}}\n\n{{#section \"user\"}}\nTask:\n{{task}}\n\n-----\n\nPrevious executed actions:\n{{executedActions}}\n\n-----\n\nPrevious failed actions:\n{{failedActions}}\n\n-----\n\nYou are also provided with a page screenshot for you to decide the next action.\n\nCurrent page URL: {{pageUrl}}\n\nFollow the instructions before responding:\n- Divide the task into sub tasks\n- Using previously executed actions, identify tasks are complete and which tasks needs to be executed next.\n- You will be provided a skill usage action, if the testStep matches the next action then respond with the skill usage.\n- If responding with next action, ensure next action to be detailed and explicit about what action needs to be done. Provide all the information which can be extracted from the screenshot as a part of next action.\n- Mark task as complete only when executed actions provided to you indicates that the task is done.\n- Refer to the text and references available in the screenshot to create the next action.\n- Do not take any extra actions which are not required for the execution of the task\n- If there are no further actions required based on the task, then respond with task as done.\n- Do not recommend actions which are not available in the screenshot\n\nScreenshots:\n{{images pageScreenshots}}\n\n{{/section}}\n";
8
7
  const action_tool_calls_1 = require("./action-tool-calls");
@@ -19,7 +18,6 @@ async function getNextAction({ page, pageScreenshot, task, executedActions, fail
19
18
  options,
20
19
  pageScreenshot,
21
20
  disableSkills,
22
- skills: skill_1.testCaseSkills.getAvailableSkills(),
23
21
  },
24
22
  });
25
23
  const messages = (0, llm_1.compilePrompt)(promptTemplate_0, {
@@ -30,10 +28,7 @@ async function getNextAction({ page, pageScreenshot, task, executedActions, fail
30
28
  pageUrl,
31
29
  pageScreenshots: pageScreenshot,
32
30
  });
33
- const actionSchemas = disableSkills || skill_1.testCaseSkills.getAvailableSkills().length === 0
34
- ? []
35
- : actions.getSkillsActionSchemas();
36
- const tools = [...(0, action_tool_calls_1.getActionToolCalls)(), ...actionSchemas];
31
+ const tools = [...(0, action_tool_calls_1.getActionToolCalls)()];
37
32
  llm =
38
33
  llm ||
39
34
  new llm_1.LLM({
@@ -1,4 +1,5 @@
1
- import type { TestCase, TestGenConfigOptions } from "@empiricalrun/shared-types";
1
+ import type { TestGenConfigOptions } from "@empiricalrun/shared-types/agent-workflow";
2
+ import type { TestCaseWithSuitesAsArray } from "@empiricalrun/shared-types/api/test-cases";
2
3
  import { Page } from "playwright";
3
4
  import { ScopeVars } from "../../types";
4
5
  export { createTestUsingComputerUseAgent } from "../cua";
@@ -6,7 +7,7 @@ export declare const IS_ALLOWED_TO_USE_SKILLS = false;
6
7
  export declare function createTestUsingMasterAgent({ task, page, testCase, specPath, options, scopeVars, }: {
7
8
  task: string;
8
9
  page: Page;
9
- testCase?: TestCase;
10
+ testCase?: TestCaseWithSuitesAsArray;
10
11
  specPath?: string;
11
12
  options: Partial<TestGenConfigOptions>;
12
13
  scopeVars?: ScopeVars;
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/master/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,QAAQ,EACR,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAalC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAUxC,OAAO,EAAE,+BAA+B,EAAE,MAAM,QAAQ,CAAC;AAKzD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAqB9C,wBAAsB,0BAA0B,CAAC,EAC/C,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;;;GAiLA"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/agent/master/run.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAYlC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAQxC,OAAO,EAAE,+BAA+B,EAAE,MAAM,QAAQ,CAAC;AAKzD,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAqB9C,wBAAsB,0BAA0B,CAAC,EAC/C,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,GACV,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;;;GAwJA"}