@empiricalrun/playwright-utils 0.22.6 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (274) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/bundled/test-gen/actions/assert.d.ts +4 -0
  3. package/bundled/test-gen/actions/assert.d.ts.map +1 -0
  4. package/bundled/test-gen/actions/assert.js +50 -0
  5. package/bundled/test-gen/actions/click.d.ts +4 -0
  6. package/bundled/test-gen/actions/click.d.ts.map +1 -0
  7. package/bundled/test-gen/actions/click.js +51 -0
  8. package/bundled/test-gen/actions/constants/index.d.ts +2 -0
  9. package/bundled/test-gen/actions/constants/index.d.ts.map +1 -0
  10. package/bundled/test-gen/actions/constants/index.js +4 -0
  11. package/bundled/test-gen/actions/done.d.ts +4 -0
  12. package/bundled/test-gen/actions/done.d.ts.map +1 -0
  13. package/bundled/test-gen/actions/done.js +30 -0
  14. package/bundled/test-gen/actions/fill.d.ts +4 -0
  15. package/bundled/test-gen/actions/fill.d.ts.map +1 -0
  16. package/bundled/test-gen/actions/fill.js +82 -0
  17. package/bundled/test-gen/actions/goto.d.ts +4 -0
  18. package/bundled/test-gen/actions/goto.d.ts.map +1 -0
  19. package/bundled/test-gen/actions/goto.js +47 -0
  20. package/bundled/test-gen/actions/hover.d.ts +4 -0
  21. package/bundled/test-gen/actions/hover.d.ts.map +1 -0
  22. package/bundled/test-gen/actions/hover.js +51 -0
  23. package/bundled/test-gen/actions/index.d.ts +30 -0
  24. package/bundled/test-gen/actions/index.d.ts.map +1 -0
  25. package/bundled/test-gen/actions/index.js +159 -0
  26. package/bundled/test-gen/actions/next-task.d.ts +53 -0
  27. package/bundled/test-gen/actions/next-task.d.ts.map +1 -0
  28. package/bundled/test-gen/actions/next-task.js +58 -0
  29. package/bundled/test-gen/actions/press.d.ts +4 -0
  30. package/bundled/test-gen/actions/press.d.ts.map +1 -0
  31. package/bundled/test-gen/actions/press.js +56 -0
  32. package/bundled/test-gen/actions/skill.d.ts +21 -0
  33. package/bundled/test-gen/actions/skill.d.ts.map +1 -0
  34. package/bundled/test-gen/actions/skill.js +127 -0
  35. package/bundled/test-gen/actions/text-content.d.ts +4 -0
  36. package/bundled/test-gen/actions/text-content.d.ts.map +1 -0
  37. package/bundled/test-gen/actions/text-content.js +58 -0
  38. package/bundled/test-gen/actions/utils/index.d.ts +10 -0
  39. package/bundled/test-gen/actions/utils/index.d.ts.map +1 -0
  40. package/bundled/test-gen/actions/utils/index.js +109 -0
  41. package/bundled/test-gen/agent/browsing/index.d.ts +15 -0
  42. package/bundled/test-gen/agent/browsing/index.d.ts.map +1 -0
  43. package/bundled/test-gen/agent/browsing/index.js +68 -0
  44. package/bundled/test-gen/agent/browsing/run.d.ts +19 -0
  45. package/bundled/test-gen/agent/browsing/run.d.ts.map +1 -0
  46. package/bundled/test-gen/agent/browsing/run.js +88 -0
  47. package/bundled/test-gen/agent/browsing/utils.d.ts +41 -0
  48. package/bundled/test-gen/agent/browsing/utils.d.ts.map +1 -0
  49. package/bundled/test-gen/agent/browsing/utils.js +406 -0
  50. package/bundled/test-gen/agent/codegen/create-test-block.d.ts +9 -0
  51. package/bundled/test-gen/agent/codegen/create-test-block.d.ts.map +1 -0
  52. package/bundled/test-gen/agent/codegen/create-test-block.js +63 -0
  53. package/bundled/test-gen/agent/codegen/fix-ts-errors.d.ts +13 -0
  54. package/bundled/test-gen/agent/codegen/fix-ts-errors.d.ts.map +1 -0
  55. package/bundled/test-gen/agent/codegen/fix-ts-errors.js +80 -0
  56. package/bundled/test-gen/agent/codegen/generate-code-apply-changes.d.ts +13 -0
  57. package/bundled/test-gen/agent/codegen/generate-code-apply-changes.d.ts.map +1 -0
  58. package/bundled/test-gen/agent/codegen/generate-code-apply-changes.js +381 -0
  59. package/bundled/test-gen/agent/codegen/lexical-scoped-vars.d.ts +9 -0
  60. package/bundled/test-gen/agent/codegen/lexical-scoped-vars.d.ts.map +1 -0
  61. package/bundled/test-gen/agent/codegen/lexical-scoped-vars.js +56 -0
  62. package/bundled/test-gen/agent/codegen/repo-edit.d.ts +23 -0
  63. package/bundled/test-gen/agent/codegen/repo-edit.d.ts.map +1 -0
  64. package/bundled/test-gen/agent/codegen/repo-edit.js +86 -0
  65. package/bundled/test-gen/agent/codegen/run.d.ts +16 -0
  66. package/bundled/test-gen/agent/codegen/run.d.ts.map +1 -0
  67. package/bundled/test-gen/agent/codegen/run.js +119 -0
  68. package/bundled/test-gen/agent/codegen/skills-retriever.d.ts +26 -0
  69. package/bundled/test-gen/agent/codegen/skills-retriever.d.ts.map +1 -0
  70. package/bundled/test-gen/agent/codegen/skills-retriever.js +93 -0
  71. package/bundled/test-gen/agent/codegen/test-update-feedback.d.ts +12 -0
  72. package/bundled/test-gen/agent/codegen/test-update-feedback.d.ts.map +1 -0
  73. package/bundled/test-gen/agent/codegen/test-update-feedback.js +50 -0
  74. package/bundled/test-gen/agent/codegen/types.d.ts +25 -0
  75. package/bundled/test-gen/agent/codegen/types.d.ts.map +1 -0
  76. package/bundled/test-gen/agent/codegen/types.js +8 -0
  77. package/bundled/test-gen/agent/codegen/update-flow.d.ts +34 -0
  78. package/bundled/test-gen/agent/codegen/update-flow.d.ts.map +1 -0
  79. package/bundled/test-gen/agent/codegen/update-flow.js +300 -0
  80. package/bundled/test-gen/agent/codegen/use-skill.d.ts +11 -0
  81. package/bundled/test-gen/agent/codegen/use-skill.d.ts.map +1 -0
  82. package/bundled/test-gen/agent/codegen/use-skill.js +54 -0
  83. package/bundled/test-gen/agent/codegen/utils.d.ts +126 -0
  84. package/bundled/test-gen/agent/codegen/utils.d.ts.map +1 -0
  85. package/bundled/test-gen/agent/codegen/utils.js +416 -0
  86. package/bundled/test-gen/agent/diagnosis-agent/index.d.ts +18 -0
  87. package/bundled/test-gen/agent/diagnosis-agent/index.d.ts.map +1 -0
  88. package/bundled/test-gen/agent/diagnosis-agent/index.js +105 -0
  89. package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.d.ts +9 -0
  90. package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.d.ts.map +1 -0
  91. package/bundled/test-gen/agent/diagnosis-agent/strict-mode-violation.js +31 -0
  92. package/bundled/test-gen/agent/enrich-prompt/index.d.ts +12 -0
  93. package/bundled/test-gen/agent/enrich-prompt/index.d.ts.map +1 -0
  94. package/bundled/test-gen/agent/enrich-prompt/index.js +81 -0
  95. package/bundled/test-gen/agent/enrich-prompt/utils.d.ts +6 -0
  96. package/bundled/test-gen/agent/enrich-prompt/utils.d.ts.map +1 -0
  97. package/bundled/test-gen/agent/enrich-prompt/utils.js +12 -0
  98. package/bundled/test-gen/agent/infer-agent/index.d.ts +10 -0
  99. package/bundled/test-gen/agent/infer-agent/index.d.ts.map +1 -0
  100. package/bundled/test-gen/agent/infer-agent/index.js +70 -0
  101. package/bundled/test-gen/agent/master/action-tool-calls.d.ts +42 -0
  102. package/bundled/test-gen/agent/master/action-tool-calls.d.ts.map +1 -0
  103. package/bundled/test-gen/agent/master/action-tool-calls.js +87 -0
  104. package/bundled/test-gen/agent/master/browser-tests/fixtures.d.ts +9 -0
  105. package/bundled/test-gen/agent/master/browser-tests/fixtures.d.ts.map +1 -0
  106. package/bundled/test-gen/agent/master/browser-tests/fixtures.js +33 -0
  107. package/bundled/test-gen/agent/master/browser-tests/index.spec.d.ts +2 -0
  108. package/bundled/test-gen/agent/master/browser-tests/index.spec.d.ts.map +1 -0
  109. package/bundled/test-gen/agent/master/browser-tests/index.spec.js +113 -0
  110. package/bundled/test-gen/agent/master/browser-tests/skills.spec.d.ts +2 -0
  111. package/bundled/test-gen/agent/master/browser-tests/skills.spec.d.ts.map +1 -0
  112. package/bundled/test-gen/agent/master/browser-tests/skills.spec.js +109 -0
  113. package/bundled/test-gen/agent/master/element-annotation.d.ts +30 -0
  114. package/bundled/test-gen/agent/master/element-annotation.d.ts.map +1 -0
  115. package/bundled/test-gen/agent/master/element-annotation.js +195 -0
  116. package/bundled/test-gen/agent/master/execute-browser-action.d.ts +24 -0
  117. package/bundled/test-gen/agent/master/execute-browser-action.d.ts.map +1 -0
  118. package/bundled/test-gen/agent/master/execute-browser-action.js +124 -0
  119. package/bundled/test-gen/agent/master/execute-skill-action.d.ts +11 -0
  120. package/bundled/test-gen/agent/master/execute-skill-action.d.ts.map +1 -0
  121. package/bundled/test-gen/agent/master/execute-skill-action.js +25 -0
  122. package/bundled/test-gen/agent/master/icon-descriptor/index.d.ts +22 -0
  123. package/bundled/test-gen/agent/master/icon-descriptor/index.d.ts.map +1 -0
  124. package/bundled/test-gen/agent/master/icon-descriptor/index.js +250 -0
  125. package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.d.ts +2 -0
  126. package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.d.ts.map +1 -0
  127. package/bundled/test-gen/agent/master/icon-descriptor/normalize-svg.js +248 -0
  128. package/bundled/test-gen/agent/master/next-action.d.ts +22 -0
  129. package/bundled/test-gen/agent/master/next-action.d.ts.map +1 -0
  130. package/bundled/test-gen/agent/master/next-action.js +104 -0
  131. package/bundled/test-gen/agent/master/planner.d.ts +15 -0
  132. package/bundled/test-gen/agent/master/planner.d.ts.map +1 -0
  133. package/bundled/test-gen/agent/master/planner.js +144 -0
  134. package/bundled/test-gen/agent/master/run.d.ts +15 -0
  135. package/bundled/test-gen/agent/master/run.d.ts.map +1 -0
  136. package/bundled/test-gen/agent/master/run.js +274 -0
  137. package/bundled/test-gen/agent/master/scroller.d.ts +15 -0
  138. package/bundled/test-gen/agent/master/scroller.d.ts.map +1 -0
  139. package/bundled/test-gen/agent/master/scroller.js +375 -0
  140. package/bundled/test-gen/agent/master/with-hints.d.ts +17 -0
  141. package/bundled/test-gen/agent/master/with-hints.d.ts.map +1 -0
  142. package/bundled/test-gen/agent/master/with-hints.js +102 -0
  143. package/bundled/test-gen/agent/planner/run-time-planner.d.ts +15 -0
  144. package/bundled/test-gen/agent/planner/run-time-planner.d.ts.map +1 -0
  145. package/bundled/test-gen/agent/planner/run-time-planner.js +100 -0
  146. package/bundled/test-gen/agent/planner/run.d.ts +7 -0
  147. package/bundled/test-gen/agent/planner/run.d.ts.map +1 -0
  148. package/bundled/test-gen/agent/planner/run.js +127 -0
  149. package/bundled/test-gen/agent/utils.d.ts +2 -0
  150. package/bundled/test-gen/agent/utils.d.ts.map +1 -0
  151. package/bundled/test-gen/agent/utils.js +12 -0
  152. package/bundled/test-gen/bin/index.d.ts +3 -0
  153. package/bundled/test-gen/bin/index.d.ts.map +1 -0
  154. package/bundled/test-gen/bin/index.js +212 -0
  155. package/bundled/test-gen/bin/logger/index.d.ts +14 -0
  156. package/bundled/test-gen/bin/logger/index.d.ts.map +1 -0
  157. package/bundled/test-gen/bin/logger/index.js +57 -0
  158. package/bundled/test-gen/bin/utils/context.d.ts +13 -0
  159. package/bundled/test-gen/bin/utils/context.d.ts.map +1 -0
  160. package/bundled/test-gen/bin/utils/context.js +67 -0
  161. package/bundled/test-gen/bin/utils/fs/index.d.ts +6 -0
  162. package/bundled/test-gen/bin/utils/fs/index.d.ts.map +1 -0
  163. package/bundled/test-gen/bin/utils/fs/index.js +63 -0
  164. package/bundled/test-gen/bin/utils/index.d.ts +9 -0
  165. package/bundled/test-gen/bin/utils/index.d.ts.map +1 -0
  166. package/bundled/test-gen/bin/utils/index.js +64 -0
  167. package/bundled/test-gen/bin/utils/platform/web/index.d.ts +78 -0
  168. package/bundled/test-gen/bin/utils/platform/web/index.d.ts.map +1 -0
  169. package/bundled/test-gen/bin/utils/platform/web/index.js +544 -0
  170. package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.d.ts +2 -0
  171. package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.d.ts.map +1 -0
  172. package/bundled/test-gen/bin/utils/platform/web/test-files/ts-path-import-validate.js +7 -0
  173. package/bundled/test-gen/bin/utils/scenarios/index.d.ts +6 -0
  174. package/bundled/test-gen/bin/utils/scenarios/index.d.ts.map +1 -0
  175. package/bundled/test-gen/bin/utils/scenarios/index.js +57 -0
  176. package/bundled/test-gen/browser-injected-scripts/annotate-elements.js +615 -0
  177. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.d.ts +2 -0
  178. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.d.ts.map +1 -0
  179. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.js +207 -0
  180. package/bundled/test-gen/browser-injected-scripts/annotate-elements.spec.ts +332 -0
  181. package/bundled/test-gen/constants/index.d.ts +7 -0
  182. package/bundled/test-gen/constants/index.d.ts.map +1 -0
  183. package/bundled/test-gen/constants/index.js +18 -0
  184. package/bundled/test-gen/errors/index.d.ts +5 -0
  185. package/bundled/test-gen/errors/index.d.ts.map +1 -0
  186. package/bundled/test-gen/errors/index.js +9 -0
  187. package/bundled/test-gen/evals/add-scenario-agent.evals.d.ts +4 -0
  188. package/bundled/test-gen/evals/add-scenario-agent.evals.d.ts.map +1 -0
  189. package/bundled/test-gen/evals/add-scenario-agent.evals.js +44 -0
  190. package/bundled/test-gen/evals/append-create-test-agent.evals.d.ts +4 -0
  191. package/bundled/test-gen/evals/append-create-test-agent.evals.d.ts.map +1 -0
  192. package/bundled/test-gen/evals/append-create-test-agent.evals.js +117 -0
  193. package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.d.ts +4 -0
  194. package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.d.ts.map +1 -0
  195. package/bundled/test-gen/evals/fetch-pom-skills-agent.evals.js +36 -0
  196. package/bundled/test-gen/evals/infer-master-or-code-agent.evals.d.ts +4 -0
  197. package/bundled/test-gen/evals/infer-master-or-code-agent.evals.d.ts.map +1 -0
  198. package/bundled/test-gen/evals/infer-master-or-code-agent.evals.js +22 -0
  199. package/bundled/test-gen/evals/master-agent.evals.d.ts +4 -0
  200. package/bundled/test-gen/evals/master-agent.evals.d.ts.map +1 -0
  201. package/bundled/test-gen/evals/master-agent.evals.js +35 -0
  202. package/bundled/test-gen/evals/type.d.ts +12 -0
  203. package/bundled/test-gen/evals/type.d.ts.map +1 -0
  204. package/bundled/test-gen/evals/type.js +2 -0
  205. package/bundled/test-gen/evals/update-scenario-agent.evals.d.ts +4 -0
  206. package/bundled/test-gen/evals/update-scenario-agent.evals.d.ts.map +1 -0
  207. package/bundled/test-gen/evals/update-scenario-agent.evals.js +47 -0
  208. package/bundled/test-gen/file/client.d.ts +14 -0
  209. package/bundled/test-gen/file/client.d.ts.map +1 -0
  210. package/bundled/test-gen/file/client.js +48 -0
  211. package/bundled/test-gen/file/server.d.ts +13 -0
  212. package/bundled/test-gen/file/server.d.ts.map +1 -0
  213. package/bundled/test-gen/file/server.js +52 -0
  214. package/bundled/test-gen/human-in-the-loop/cli.d.ts +2 -0
  215. package/bundled/test-gen/human-in-the-loop/cli.d.ts.map +1 -0
  216. package/bundled/test-gen/human-in-the-loop/cli.js +24 -0
  217. package/bundled/test-gen/human-in-the-loop/index.d.ts +12 -0
  218. package/bundled/test-gen/human-in-the-loop/index.d.ts.map +1 -0
  219. package/bundled/test-gen/human-in-the-loop/index.js +30 -0
  220. package/bundled/test-gen/human-in-the-loop/ipc.d.ts +4 -0
  221. package/bundled/test-gen/human-in-the-loop/ipc.d.ts.map +1 -0
  222. package/bundled/test-gen/human-in-the-loop/ipc.js +47 -0
  223. package/bundled/test-gen/index.d.ts +4 -0
  224. package/bundled/test-gen/index.d.ts.map +1 -0
  225. package/bundled/test-gen/index.js +55 -0
  226. package/bundled/test-gen/package.json +106 -0
  227. package/bundled/test-gen/page/index.d.ts +11 -0
  228. package/bundled/test-gen/page/index.d.ts.map +1 -0
  229. package/bundled/test-gen/page/index.js +16 -0
  230. package/bundled/test-gen/prompts/lib/ts-transformer.d.ts +4 -0
  231. package/bundled/test-gen/prompts/lib/ts-transformer.d.ts.map +1 -0
  232. package/bundled/test-gen/prompts/lib/ts-transformer.js +92 -0
  233. package/bundled/test-gen/reporter/index.d.ts +33 -0
  234. package/bundled/test-gen/reporter/index.d.ts.map +1 -0
  235. package/bundled/test-gen/reporter/index.js +161 -0
  236. package/bundled/test-gen/session/index.d.ts +20 -0
  237. package/bundled/test-gen/session/index.d.ts.map +1 -0
  238. package/bundled/test-gen/session/index.js +105 -0
  239. package/bundled/test-gen/test-build/index.d.ts +10 -0
  240. package/bundled/test-gen/test-build/index.d.ts.map +1 -0
  241. package/bundled/test-gen/test-build/index.js +30 -0
  242. package/bundled/test-gen/types/index.d.ts +69 -0
  243. package/bundled/test-gen/types/index.d.ts.map +1 -0
  244. package/bundled/test-gen/types/index.js +2 -0
  245. package/bundled/test-gen/uploader/index.d.ts +26 -0
  246. package/bundled/test-gen/uploader/index.d.ts.map +1 -0
  247. package/bundled/test-gen/uploader/index.js +102 -0
  248. package/bundled/test-gen/utils/env.d.ts +2 -0
  249. package/bundled/test-gen/utils/env.d.ts.map +1 -0
  250. package/bundled/test-gen/utils/env.js +9 -0
  251. package/bundled/test-gen/utils/exec.d.ts +4 -0
  252. package/bundled/test-gen/utils/exec.d.ts.map +1 -0
  253. package/bundled/test-gen/utils/exec.js +45 -0
  254. package/bundled/test-gen/utils/file.d.ts +2 -0
  255. package/bundled/test-gen/utils/file.d.ts.map +1 -0
  256. package/bundled/test-gen/utils/file.js +25 -0
  257. package/bundled/test-gen/utils/html.d.ts +4 -0
  258. package/bundled/test-gen/utils/html.d.ts.map +1 -0
  259. package/bundled/test-gen/utils/html.js +46 -0
  260. package/bundled/test-gen/utils/index.d.ts +2 -0
  261. package/bundled/test-gen/utils/index.d.ts.map +1 -0
  262. package/bundled/test-gen/utils/index.js +5 -0
  263. package/bundled/test-gen/utils/pw-test.d.ts +3 -0
  264. package/bundled/test-gen/utils/pw-test.d.ts.map +1 -0
  265. package/bundled/test-gen/utils/pw-test.js +26 -0
  266. package/bundled/test-gen/utils/slug.d.ts +2 -0
  267. package/bundled/test-gen/utils/slug.d.ts.map +1 -0
  268. package/bundled/test-gen/utils/slug.js +18 -0
  269. package/bundled/test-gen/utils/string.d.ts +2 -0
  270. package/bundled/test-gen/utils/string.d.ts.map +1 -0
  271. package/bundled/test-gen/utils/string.js +9 -0
  272. package/dist/overlay-tests/click.spec.js +1 -1
  273. package/package.json +3 -3
  274. package/scripts/prepare-publish.js +42 -0
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const js_levenshtein_1 = __importDefault(require("js-levenshtein"));
7
+ const ts_morph_1 = require("ts-morph");
8
+ const update_flow_1 = require("../agent/codegen/update-flow");
9
+ const utils_1 = require("../agent/codegen/utils");
10
+ const web_1 = require("../bin/utils/platform/web");
11
+ const hasSingleCreateTestBlock = (result) => {
12
+ // Returns 1 if there is exactly 1 `createTest` block
13
+ // 0 if there is no `createTest` or if there are >1
14
+ if (result.length && result[0].newCode) {
15
+ const createTestBlocks = result[0].newCode.match(/createTest/g);
16
+ if (createTestBlocks) {
17
+ return createTestBlocks.length === 1 ? 1 : 0;
18
+ }
19
+ }
20
+ return 0;
21
+ };
22
+ const newCodeBlockIsComplete = (testCase, result, expectedOutput) => {
23
+ // Returns 1 if the new code block is complete
24
+ // i.e., it includes test('...', async () => {
25
+ if (!expectedOutput.length || !expectedOutput[0]) {
26
+ return 0;
27
+ }
28
+ if (!result[0]?.newCode) {
29
+ return 0;
30
+ }
31
+ if (result.length &&
32
+ result[0].newCode &&
33
+ expectedOutput[0]?.newCode?.includes("test(")) {
34
+ const newCode = result[0].newCode;
35
+ return newCode.includes("test(") && newCode.includes(testCase.name) ? 1 : 0;
36
+ }
37
+ else {
38
+ const project = new ts_morph_1.Project();
39
+ const expectedSourceFile = project.createSourceFile("expected-updated-code.ts", expectedOutput[0].newCode);
40
+ const resultSourceFile = project.createSourceFile("updated-code.ts", result[0].newCode);
41
+ const expectedFunctions = expectedSourceFile.getFunctions();
42
+ const resultFunctions = resultSourceFile.getFunctions();
43
+ if (!expectedFunctions.length) {
44
+ // check for class method updates
45
+ const expectedCheckForMethod = project.createSourceFile("expected-check-method.ts", `class A {
46
+ ${expectedOutput[0].newCode}
47
+ }`);
48
+ const expectedMethods = expectedCheckForMethod.getDescendantsOfKind(ts_morph_1.SyntaxKind.MethodDeclaration);
49
+ const resultCheckForMethod = project.createSourceFile("check-method.ts", `class A {
50
+ ${result[0].newCode}
51
+ }`);
52
+ const resultMethods = resultCheckForMethod.getDescendantsOfKind(ts_morph_1.SyntaxKind.MethodDeclaration);
53
+ if (resultMethods.length === 1 && expectedMethods.length === 1) {
54
+ return expectedMethods[0]?.getName() === resultMethods[0]?.getName()
55
+ ? 1
56
+ : 0;
57
+ }
58
+ else {
59
+ return 0;
60
+ }
61
+ }
62
+ else {
63
+ // check for function updates
64
+ return expectedFunctions[0]?.getName() === resultFunctions[0]?.getName()
65
+ ? 1
66
+ : 0;
67
+ }
68
+ }
69
+ };
70
+ const oldCodeTestBlockIsComplete = (result, expected) => {
71
+ if (result.length && result[0].oldCode) {
72
+ const oldCodeFromLlm = result[0].oldCode;
73
+ const expectedOldCode = expected[0]?.oldCode || "";
74
+ return (1 -
75
+ (0, js_levenshtein_1.default)(expectedOldCode || "", oldCodeFromLlm || "") /
76
+ expectedOldCode.length);
77
+ }
78
+ return 0;
79
+ };
80
+ const appendCreateTestAgentEvaluate = async ({ item, trace }) => {
81
+ const { testCase, testFiles, pageFiles, testFilePath } = item.input;
82
+ const response = await (0, update_flow_1.getAppendCreateTestBlockCompletion)({
83
+ testCase,
84
+ testFiles,
85
+ pageFiles,
86
+ testFilePath,
87
+ trace,
88
+ });
89
+ const parsed = (0, utils_1.extractAppendTestUpdates)(response);
90
+ const expectedOutputParsed = (0, utils_1.extractAppendTestUpdates)(item.expectedOutput);
91
+ return {
92
+ scores: [
93
+ {
94
+ name: "returns_single_create_test",
95
+ value: hasSingleCreateTestBlock(parsed),
96
+ },
97
+ {
98
+ name: "returns_complete_code_block",
99
+ value: newCodeBlockIsComplete(testCase, parsed, expectedOutputParsed),
100
+ },
101
+ {
102
+ name: "copies_old_block_correctly",
103
+ value: oldCodeTestBlockIsComplete(parsed, expectedOutputParsed),
104
+ },
105
+ {
106
+ name: "syntax_check",
107
+ value: parsed[0]?.newCode
108
+ ? (0, web_1.isSyntaxValid)(parsed[0]?.newCode || "")
109
+ ? 1
110
+ : 0
111
+ : 0,
112
+ },
113
+ ],
114
+ output: response,
115
+ };
116
+ };
117
+ exports.default = appendCreateTestAgentEvaluate;
@@ -0,0 +1,4 @@
1
+ import { EvaluateFn } from "./type";
2
+ declare const fetchSkillsAgentEvaluator: EvaluateFn;
3
+ export default fetchSkillsAgentEvaluator;
4
+ //# sourceMappingURL=fetch-pom-skills-agent.evals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-pom-skills-agent.evals.d.ts","sourceRoot":"","sources":["../../src/evals/fetch-pom-skills-agent.evals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,QAAA,MAAM,yBAAyB,EAAE,UAiChC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const skills_retriever_1 = require("../agent/codegen/skills-retriever");
4
+ const fetchSkillsAgentEvaluator = async ({ item, trace }) => {
5
+ const { testCase, pomFiles } = item.input;
6
+ const output = await (0, skills_retriever_1.fetchPomSkills)({
7
+ testCase,
8
+ pomFiles,
9
+ trace,
10
+ });
11
+ if (item.expectedOutput.length === 0 && output.length === 0) {
12
+ return {
13
+ scores: [
14
+ {
15
+ name: "equality",
16
+ value: 1,
17
+ },
18
+ ],
19
+ output,
20
+ };
21
+ }
22
+ return {
23
+ scores: [
24
+ {
25
+ name: "equality",
26
+ value: output.some((o) => {
27
+ return item.expectedOutput.some((e) => e.methodName === o.methodName);
28
+ })
29
+ ? 1
30
+ : 0,
31
+ },
32
+ ],
33
+ output,
34
+ };
35
+ };
36
+ exports.default = fetchSkillsAgentEvaluator;
@@ -0,0 +1,4 @@
1
+ import { EvaluateFn } from "./type";
2
+ export declare const inferMasterOrCodeAgentEvaluate: EvaluateFn;
3
+ export default inferMasterOrCodeAgentEvaluate;
4
+ //# sourceMappingURL=infer-master-or-code-agent.evals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"infer-master-or-code-agent.evals.d.ts","sourceRoot":"","sources":["../../src/evals/infer-master-or-code-agent.evals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,eAAO,MAAM,8BAA8B,EAAE,UAkB5C,CAAC;AAEF,eAAe,8BAA8B,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.inferMasterOrCodeAgentEvaluate = void 0;
4
+ const infer_agent_1 = require("../agent/infer-agent");
5
+ const inferMasterOrCodeAgentEvaluate = async ({ item, trace, }) => {
6
+ const { task } = item.input;
7
+ const { response } = await (0, infer_agent_1.inferAgentBasedTask)({
8
+ task,
9
+ trace,
10
+ });
11
+ return {
12
+ scores: [
13
+ {
14
+ name: "equality",
15
+ value: item.expectedOutput === response ? 1 : 0,
16
+ },
17
+ ],
18
+ output: response,
19
+ };
20
+ };
21
+ exports.inferMasterOrCodeAgentEvaluate = inferMasterOrCodeAgentEvaluate;
22
+ exports.default = exports.inferMasterOrCodeAgentEvaluate;
@@ -0,0 +1,4 @@
1
+ import { EvaluateFn } from "./type";
2
+ export declare const masterGetNextActionEvaluator: EvaluateFn;
3
+ export default masterGetNextActionEvaluator;
4
+ //# sourceMappingURL=master-agent.evals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"master-agent.evals.d.ts","sourceRoot":"","sources":["../../src/evals/master-agent.evals.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,eAAO,MAAM,4BAA4B,EAAE,UAoC1C,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.masterGetNextActionEvaluator = void 0;
4
+ const actions_1 = require("../actions");
5
+ const skill_1 = require("../actions/skill");
6
+ const next_action_1 = require("../agent/master/next-action");
7
+ const page_1 = require("../page");
8
+ const masterGetNextActionEvaluator = async ({ item, trace, }) => {
9
+ const { task, executedActions, failedActions, options, pageScreenshot, disableSkills, skills = [], } = item.input;
10
+ const page = {};
11
+ skill_1.testCaseSkills.updateSkills(skills);
12
+ const actions = new actions_1.PlaywrightActions(new page_1.TestGenPage(page, "page"));
13
+ const output = await (0, next_action_1.getNextAction)({
14
+ task,
15
+ executedActions,
16
+ failedActions,
17
+ trace,
18
+ options,
19
+ pageScreenshot,
20
+ actions,
21
+ disableSkills,
22
+ page,
23
+ });
24
+ return {
25
+ scores: [
26
+ {
27
+ name: "action_correctness",
28
+ value: item.expectedOutput.function.name === output?.actionType ? 1 : 0,
29
+ },
30
+ ],
31
+ output,
32
+ };
33
+ };
34
+ exports.masterGetNextActionEvaluator = masterGetNextActionEvaluator;
35
+ exports.default = exports.masterGetNextActionEvaluator;
@@ -0,0 +1,12 @@
1
+ import { TraceClient } from "@empiricalrun/llm";
2
+ export type EvaluateFn = ({ trace, item, }: {
3
+ trace: TraceClient;
4
+ item: any;
5
+ }) => Promise<{
6
+ output: any;
7
+ scores: {
8
+ name: string;
9
+ value: number;
10
+ }[];
11
+ }>;
12
+ //# sourceMappingURL=type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type.d.ts","sourceRoot":"","sources":["../../src/evals/type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,CAAC,EACxB,KAAK,EACL,IAAI,GACL,EAAE;IACD,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,GAAG,CAAC;CACX,KAAK,OAAO,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC;IACZ,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC3C,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ import { EvaluateFn } from "./type";
2
+ declare const updateScenarioCodeAgentEvaluate: EvaluateFn;
3
+ export default updateScenarioCodeAgentEvaluate;
4
+ //# sourceMappingURL=update-scenario-agent.evals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-scenario-agent.evals.d.ts","sourceRoot":"","sources":["../../src/evals/update-scenario-agent.evals.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAUpC,QAAA,MAAM,+BAA+B,EAAE,UAqDtC,CAAC;AAEF,eAAe,+BAA+B,CAAC"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const js_levenshtein_1 = __importDefault(require("js-levenshtein"));
7
+ const update_flow_1 = require("../agent/codegen/update-flow");
8
+ const updateScenarioCodeAgentEvaluate = async ({ item, trace }) => {
9
+ const { testCase, testFiles, pageFiles, testFilePath, testFileContent } = item.input;
10
+ const { fileChanges } = await (0, update_flow_1.getUpdateTestCodeCompletion)({
11
+ testCase,
12
+ testFiles,
13
+ pageFiles,
14
+ testFilePath,
15
+ testFileContent,
16
+ trace,
17
+ });
18
+ const expectedFileChanges = item.expectedOutput;
19
+ const fileChangeCount = fileChanges.length;
20
+ const expectedFileChangeCount = expectedFileChanges.length;
21
+ const correctFilePathChanges = expectedFileChanges.every((ef) => fileChanges.some((f) => f.filePath === ef.filePath));
22
+ const distanceScores = [];
23
+ expectedFileChanges.forEach((ef) => fileChanges.forEach((f) => {
24
+ if (f.filePath === ef.filePath && f.newCode && ef.newCode) {
25
+ const maxLength = ef.newCode.length > f.newCode.length
26
+ ? ef.newCode.length
27
+ : f.newCode.length;
28
+ distanceScores.push(1 - (0, js_levenshtein_1.default)(f.newCode || "", ef.newCode || "") / maxLength);
29
+ }
30
+ }));
31
+ let score = 0;
32
+ if (fileChangeCount === expectedFileChangeCount && correctFilePathChanges) {
33
+ score = distanceScores.length
34
+ ? distanceScores.reduce((agg, s) => agg * s)
35
+ : 0;
36
+ }
37
+ return {
38
+ scores: [
39
+ {
40
+ name: "score",
41
+ value: score,
42
+ },
43
+ ],
44
+ output: fileChanges,
45
+ };
46
+ };
47
+ exports.default = updateScenarioCodeAgentEvaluate;
@@ -0,0 +1,14 @@
1
+ declare class TestFileService {
2
+ baseUrl: string;
3
+ port: number | undefined;
4
+ constructor();
5
+ static isAvailable(): boolean;
6
+ updateTest({ generatedCode, task, importPaths, }: {
7
+ generatedCode: string;
8
+ task: string;
9
+ importPaths: string[];
10
+ }): Promise<void>;
11
+ post(path: string, body: any): Promise<any>;
12
+ }
13
+ export default TestFileService;
14
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/file/client.ts"],"names":[],"mappings":"AAAA,cAAM,eAAe;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;;IASzB,MAAM,CAAC,WAAW;IAIZ,UAAU,CAAC,EACf,aAAa,EACb,IAAI,EACJ,WAAW,GACZ,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IAgBK,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;CAgBnC;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class TestFileService {
4
+ baseUrl;
5
+ port;
6
+ constructor() {
7
+ const port = Number(process.env.APP_PORT);
8
+ if (port && !isNaN(port)) {
9
+ this.port = port;
10
+ }
11
+ this.baseUrl = `http://localhost:${port}`;
12
+ }
13
+ static isAvailable() {
14
+ return !!Number(process.env.APP_PORT);
15
+ }
16
+ async updateTest({ generatedCode, task, importPaths, }) {
17
+ const resp = await fetch(`${this.baseUrl}/test`, {
18
+ method: "POST",
19
+ headers: {
20
+ "Content-Type": "application/json",
21
+ },
22
+ body: JSON.stringify({ generatedCode, task, importPaths }),
23
+ });
24
+ if (!resp.ok) {
25
+ throw new Error(resp.statusText);
26
+ }
27
+ else {
28
+ console.log("Generated and updated test successfully");
29
+ }
30
+ }
31
+ async post(path, body) {
32
+ const resp = await fetch(`${this.baseUrl}${path}`, {
33
+ method: "POST",
34
+ headers: {
35
+ "Content-Type": "application/json",
36
+ },
37
+ body: JSON.stringify(body),
38
+ });
39
+ if (!resp.ok) {
40
+ throw new Error(`API failed with status ${resp.statusText}`);
41
+ }
42
+ else {
43
+ const data = await resp.json();
44
+ return data;
45
+ }
46
+ }
47
+ }
48
+ exports.default = TestFileService;
@@ -0,0 +1,13 @@
1
+ export declare class FileService {
2
+ private port;
3
+ private filePath;
4
+ private repoDir;
5
+ constructor({ port, repoDir }: {
6
+ port: number;
7
+ repoDir: string;
8
+ });
9
+ setFilePath(filePath: string): void;
10
+ startFileService(): Promise<number>;
11
+ }
12
+ export declare function startFileService(): Promise<void>;
13
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/file/server.ts"],"names":[],"mappings":"AAWA,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAc;gBAEjB,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAKhE,WAAW,CAAC,QAAQ,EAAE,MAAM;IAItB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAyC1C;AAED,wBAAsB,gBAAgB,kBAAK"}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startFileService = exports.FileService = void 0;
7
+ const express_1 = __importDefault(require("express"));
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const web_1 = require("../bin/utils/platform/web");
11
+ const ipc_1 = require("../human-in-the-loop/ipc");
12
+ class FileService {
13
+ port = 0;
14
+ filePath = "";
15
+ repoDir = "";
16
+ constructor({ port, repoDir }) {
17
+ this.port = port;
18
+ this.repoDir = repoDir;
19
+ }
20
+ setFilePath(filePath) {
21
+ this.filePath = filePath;
22
+ }
23
+ async startFileService() {
24
+ const app = (0, express_1.default)();
25
+ app.use(express_1.default.json());
26
+ (0, ipc_1.humanLoopRoute)(app);
27
+ app.post("/test", async (req, res) => {
28
+ const { generatedCode, importPaths } = req.body;
29
+ try {
30
+ const testFilePath = path_1.default.resolve(this.repoDir, this.filePath);
31
+ if (testFilePath) {
32
+ const testFile = fs_1.default.readFileSync(testFilePath, "utf-8");
33
+ const newContents = (0, web_1.replaceCreateTestWithNewCode)(testFilePath, testFile, generatedCode);
34
+ const importStatements = await (0, web_1.importAllExportsStmtFromFilePaths)(this.repoDir, importPaths, this.filePath);
35
+ fs_1.default.writeFileSync(testFilePath, `${importStatements.join("\n")}\n${newContents}`, "utf-8");
36
+ await (0, web_1.lintErrors)(testFilePath);
37
+ return res.send({ success: true });
38
+ }
39
+ }
40
+ catch (e) {
41
+ console.error(e);
42
+ }
43
+ return res.send({ success: false });
44
+ });
45
+ return new Promise((resolve) => {
46
+ app.listen(this.port, () => resolve(this.port));
47
+ });
48
+ }
49
+ }
50
+ exports.FileService = FileService;
51
+ async function startFileService() { }
52
+ exports.startFileService = startFileService;
@@ -0,0 +1,2 @@
1
+ export declare function getFeedbackUsingCli(message: string): Promise<string>;
2
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/human-in-the-loop/cli.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAe1E"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getFeedbackUsingCli = void 0;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ async function getFeedbackUsingCli(message) {
9
+ const answers = await inquirer_1.default.prompt([
10
+ {
11
+ type: "input",
12
+ name: "feedback",
13
+ message: message || "Does this plan look good?",
14
+ validate: (input) => {
15
+ if (input.trim().length === 0) {
16
+ return "Feedback cannot be empty";
17
+ }
18
+ return true;
19
+ },
20
+ },
21
+ ]);
22
+ return answers.feedback;
23
+ }
24
+ exports.getFeedbackUsingCli = getFeedbackUsingCli;
@@ -0,0 +1,12 @@
1
+ declare class HumanLoop {
2
+ options: {
3
+ method: "ipc" | "cli";
4
+ } | undefined;
5
+ constructor();
6
+ getFeedback({ message }: {
7
+ message: string;
8
+ }): Promise<string>;
9
+ }
10
+ export declare const humanLoop: HumanLoop;
11
+ export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/human-in-the-loop/index.ts"],"names":[],"mappings":"AASA,cAAM,SAAS;IAEb,OAAO,EAAE;QAAE,MAAM,EAAE,KAAK,GAAG,KAAK,CAAA;KAAE,GAAG,SAAS,CAAC;;IAMzC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;CAOnD;AAED,eAAO,MAAM,SAAS,WAAkB,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.humanLoop = void 0;
7
+ const client_1 = __importDefault(require("../file/client"));
8
+ const cli_1 = require("./cli");
9
+ const ipc_1 = require("./ipc");
10
+ // TODO: how to make this more conversational
11
+ // do we need a layer to understand the feedback ?
12
+ // we need a layer to put the feedback in the context again
13
+ // and then we need to generate final output which the user can review
14
+ class HumanLoop {
15
+ // TODO: have a better name for this
16
+ options;
17
+ constructor() {
18
+ this.options = {
19
+ method: client_1.default.isAvailable() ? "ipc" : "cli",
20
+ };
21
+ }
22
+ async getFeedback({ message }) {
23
+ // this needs to have a provider based on environment
24
+ if (this.options?.method === "ipc") {
25
+ return await (0, ipc_1.getFeedbackUsingIPC)(message);
26
+ }
27
+ return await (0, cli_1.getFeedbackUsingCli)(message);
28
+ }
29
+ }
30
+ exports.humanLoop = new HumanLoop();
@@ -0,0 +1,4 @@
1
+ import type { Express } from "express";
2
+ export declare function humanLoopRoute(app: Express): void;
3
+ export declare function getFeedbackUsingIPC(message: string): Promise<string>;
4
+ //# sourceMappingURL=ipc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ipc.d.ts","sourceRoot":"","sources":["../../src/human-in-the-loop/ipc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,QAwB1C;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1E"}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getFeedbackUsingIPC = exports.humanLoopRoute = void 0;
7
+ const inquirer_1 = __importDefault(require("inquirer"));
8
+ const client_1 = __importDefault(require("../file/client"));
9
+ function humanLoopRoute(app) {
10
+ app.post("/converse", async (req, res) => {
11
+ const { message } = req.body;
12
+ try {
13
+ const answers = await inquirer_1.default.prompt([
14
+ {
15
+ type: "input",
16
+ name: "feedback",
17
+ message: message || "Does this plan look good?",
18
+ validate: (input) => {
19
+ if (input.trim().length === 0) {
20
+ return "Feedback cannot be empty";
21
+ }
22
+ return true;
23
+ },
24
+ },
25
+ ]);
26
+ return res.send({
27
+ ...answers,
28
+ });
29
+ }
30
+ catch (e) {
31
+ console.error(e);
32
+ }
33
+ });
34
+ }
35
+ exports.humanLoopRoute = humanLoopRoute;
36
+ async function getFeedbackUsingIPC(message) {
37
+ const fileService = new client_1.default();
38
+ try {
39
+ const resp = await fileService.post("/converse", { message });
40
+ return resp.feedback;
41
+ }
42
+ catch (e) {
43
+ console.error("[getFeedbackUsingIPC] Error while fetching feedback using IPC", e);
44
+ throw e;
45
+ }
46
+ }
47
+ exports.getFeedbackUsingIPC = getFeedbackUsingIPC;
@@ -0,0 +1,4 @@
1
+ import { Page } from "playwright";
2
+ import { ScopeVars } from "./types";
3
+ export declare function createTest(task: string, page: Page, scope?: ScopeVars): Promise<void>;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAOlC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAYpC,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,iBAiC3E"}