askui 0.18.1 → 0.20.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 (256) hide show
  1. package/dist/cjs/core/ai-element/ai-element-collection.d.ts +10 -0
  2. package/dist/cjs/core/ai-element/ai-element-collection.js +78 -0
  3. package/dist/cjs/core/ai-element/ai-element-error.d.ts +2 -0
  4. package/dist/cjs/core/ai-element/ai-element-error.js +6 -0
  5. package/dist/cjs/core/ai-element/ai-element.d.ts +27 -0
  6. package/dist/cjs/core/ai-element/ai-element.js +31 -0
  7. package/dist/cjs/execution/dsl.d.ts +127 -17
  8. package/dist/cjs/execution/dsl.js +158 -17
  9. package/dist/cjs/execution/index.d.ts +1 -1
  10. package/dist/cjs/execution/index.js +11 -3
  11. package/dist/cjs/execution/ui-control-client-dependency-builder.d.ts +1 -0
  12. package/dist/cjs/execution/ui-control-client-dependency-builder.js +3 -0
  13. package/dist/cjs/execution/ui-control-client.d.ts +101 -16
  14. package/dist/cjs/execution/ui-control-client.js +145 -52
  15. package/dist/cjs/main.d.ts +1 -1
  16. package/dist/cjs/main.js +12 -3
  17. package/dist/cjs/utils/analytics/analytics.d.ts +1 -1
  18. package/dist/esm/core/ai-element/ai-element-collection.d.ts +10 -0
  19. package/dist/esm/core/ai-element/ai-element-collection.js +71 -0
  20. package/dist/esm/core/ai-element/ai-element-error.d.ts +2 -0
  21. package/dist/esm/core/ai-element/ai-element-error.js +2 -0
  22. package/dist/esm/core/ai-element/ai-element.d.ts +27 -0
  23. package/dist/esm/core/ai-element/ai-element.js +28 -0
  24. package/dist/esm/execution/dsl.d.ts +127 -17
  25. package/dist/esm/execution/dsl.js +158 -17
  26. package/dist/esm/execution/index.d.ts +1 -1
  27. package/dist/esm/execution/index.js +1 -1
  28. package/dist/esm/execution/ui-control-client-dependency-builder.d.ts +1 -0
  29. package/dist/esm/execution/ui-control-client-dependency-builder.js +3 -0
  30. package/dist/esm/execution/ui-control-client.d.ts +101 -16
  31. package/dist/esm/execution/ui-control-client.js +145 -49
  32. package/dist/esm/main.d.ts +1 -1
  33. package/dist/esm/main.js +1 -1
  34. package/dist/esm/utils/analytics/analytics.d.ts +1 -1
  35. package/package.json +1 -1
  36. package/dist/cjs/core/annotation/annotation-writer.js.map +0 -1
  37. package/dist/cjs/core/annotation/annotation.js.map +0 -1
  38. package/dist/cjs/core/inference-response/inference-response.js.map +0 -1
  39. package/dist/cjs/core/inference-response/invalid-model-type-error.js.map +0 -1
  40. package/dist/cjs/core/inference-response/model-type.js.map +0 -1
  41. package/dist/cjs/core/model/annotation-result/annotation-interface.js.map +0 -1
  42. package/dist/cjs/core/model/annotation-result/boundary-box.js.map +0 -1
  43. package/dist/cjs/core/model/annotation-result/detected-element.js.map +0 -1
  44. package/dist/cjs/core/model/custom-element-json.js.map +0 -1
  45. package/dist/cjs/core/model/custom-element.js.map +0 -1
  46. package/dist/cjs/core/reporting/default-step.js.map +0 -1
  47. package/dist/cjs/core/reporting/index.js.map +0 -1
  48. package/dist/cjs/core/reporting/instruction.js.map +0 -1
  49. package/dist/cjs/core/reporting/reporter-config.js.map +0 -1
  50. package/dist/cjs/core/reporting/reporter.js.map +0 -1
  51. package/dist/cjs/core/reporting/snapshot-detail-level.js.map +0 -1
  52. package/dist/cjs/core/reporting/snapshot.js.map +0 -1
  53. package/dist/cjs/core/reporting/step-reporter.js.map +0 -1
  54. package/dist/cjs/core/reporting/step-run.js.map +0 -1
  55. package/dist/cjs/core/reporting/step-status-end.js.map +0 -1
  56. package/dist/cjs/core/reporting/step-status.js.map +0 -1
  57. package/dist/cjs/core/reporting/step.js.map +0 -1
  58. package/dist/cjs/core/runner-protocol/index.js.map +0 -1
  59. package/dist/cjs/core/runner-protocol/request/capture-screenshot-request.js.map +0 -1
  60. package/dist/cjs/core/runner-protocol/request/control-request.js.map +0 -1
  61. package/dist/cjs/core/runner-protocol/request/get-server-process-pid.js.map +0 -1
  62. package/dist/cjs/core/runner-protocol/request/index.js.map +0 -1
  63. package/dist/cjs/core/runner-protocol/request/interactive-annotation-request.js.map +0 -1
  64. package/dist/cjs/core/runner-protocol/request/read-recording-request.js.map +0 -1
  65. package/dist/cjs/core/runner-protocol/request/runner-protocol-request.js.map +0 -1
  66. package/dist/cjs/core/runner-protocol/request/start-recording-request.js.map +0 -1
  67. package/dist/cjs/core/runner-protocol/request/stop-recording-request.js.map +0 -1
  68. package/dist/cjs/core/runner-protocol/response/index.js.map +0 -1
  69. package/dist/cjs/core/ui-control-commands/action.js.map +0 -1
  70. package/dist/cjs/core/ui-control-commands/control-command-code.js.map +0 -1
  71. package/dist/cjs/core/ui-control-commands/control-command.js.map +0 -1
  72. package/dist/cjs/core/ui-control-commands/index.js.map +0 -1
  73. package/dist/cjs/core/ui-control-commands/input-event.js.map +0 -1
  74. package/dist/cjs/execution/config-error.js.map +0 -1
  75. package/dist/cjs/execution/control-command-error.js.map +0 -1
  76. package/dist/cjs/execution/credentials-args.js.map +0 -1
  77. package/dist/cjs/execution/dsl.js.map +0 -1
  78. package/dist/cjs/execution/execution-runtime.js.map +0 -1
  79. package/dist/cjs/execution/index.js.map +0 -1
  80. package/dist/cjs/execution/inference-client.js.map +0 -1
  81. package/dist/cjs/execution/inference-response-error.js.map +0 -1
  82. package/dist/cjs/execution/is-image-required-interface.js.map +0 -1
  83. package/dist/cjs/execution/misc.js.map +0 -1
  84. package/dist/cjs/execution/model-composition-branch.js.map +0 -1
  85. package/dist/cjs/execution/read-environment-credentials.js.map +0 -1
  86. package/dist/cjs/execution/read-recording-response-stream-handler.js.map +0 -1
  87. package/dist/cjs/execution/repeat-error.js.map +0 -1
  88. package/dist/cjs/execution/ui-control-client-dependency-builder.js.map +0 -1
  89. package/dist/cjs/execution/ui-control-client.js.map +0 -1
  90. package/dist/cjs/execution/ui-controller-client-connection-state.js.map +0 -1
  91. package/dist/cjs/execution/ui-controller-client-error.js.map +0 -1
  92. package/dist/cjs/execution/ui-controller-client-interface.js.map +0 -1
  93. package/dist/cjs/execution/ui-controller-client.js.map +0 -1
  94. package/dist/cjs/lib/download-binaries.js.map +0 -1
  95. package/dist/cjs/lib/index.js.map +0 -1
  96. package/dist/cjs/lib/interactive_cli/add-script-package-json.d.ts +0 -1
  97. package/dist/cjs/lib/interactive_cli/add-script-package-json.js +0 -39
  98. package/dist/cjs/lib/interactive_cli/add-script-package-json.js.map +0 -1
  99. package/dist/cjs/lib/interactive_cli/cli-options-interface.js.map +0 -1
  100. package/dist/cjs/lib/interactive_cli/cli.js.map +0 -1
  101. package/dist/cjs/lib/interactive_cli/create-example-project.js.map +0 -1
  102. package/dist/cjs/lib/interactive_cli/index.js.map +0 -1
  103. package/dist/cjs/lib/libfuse-error.js.map +0 -1
  104. package/dist/cjs/lib/logger.js.map +0 -1
  105. package/dist/cjs/lib/timeout-error.js.map +0 -1
  106. package/dist/cjs/lib/ui-controller-args.js.map +0 -1
  107. package/dist/cjs/lib/ui-controller-darwin.js.map +0 -1
  108. package/dist/cjs/lib/ui-controller-facade.js.map +0 -1
  109. package/dist/cjs/lib/ui-controller-linux.js.map +0 -1
  110. package/dist/cjs/lib/ui-controller-win32.js.map +0 -1
  111. package/dist/cjs/lib/ui-controller.js.map +0 -1
  112. package/dist/cjs/lib/unkown-error.js.map +0 -1
  113. package/dist/cjs/lib/wayland-error.js.map +0 -1
  114. package/dist/cjs/main.js.map +0 -1
  115. package/dist/cjs/shared/index.js.map +0 -1
  116. package/dist/cjs/shared/log-levels.js.map +0 -1
  117. package/dist/cjs/shared/proxy-agent-args.js.map +0 -1
  118. package/dist/cjs/utils/analytics/analytics-interface.js.map +0 -1
  119. package/dist/cjs/utils/analytics/analytics.js.map +0 -1
  120. package/dist/cjs/utils/analytics/index.js.map +0 -1
  121. package/dist/cjs/utils/analytics/installation-timestamp-create-error.js.map +0 -1
  122. package/dist/cjs/utils/analytics/installation-timestamp-get-error.js.map +0 -1
  123. package/dist/cjs/utils/analytics/installation-timestamp.js.map +0 -1
  124. package/dist/cjs/utils/analytics/user-identifier-interface.js.map +0 -1
  125. package/dist/cjs/utils/analytics/user-identifier.js.map +0 -1
  126. package/dist/cjs/utils/base_64_image/base-64-image-error.js.map +0 -1
  127. package/dist/cjs/utils/base_64_image/base-64-image-string-error.js.map +0 -1
  128. package/dist/cjs/utils/base_64_image/base-64-image.js.map +0 -1
  129. package/dist/cjs/utils/base_64_image/sharp.js.map +0 -1
  130. package/dist/cjs/utils/http/credentials.js.map +0 -1
  131. package/dist/cjs/utils/http/custom-errors/authentication-http-client-error.js.map +0 -1
  132. package/dist/cjs/utils/http/custom-errors/client-http-client-error.js.map +0 -1
  133. package/dist/cjs/utils/http/custom-errors/general-http-client-error.js.map +0 -1
  134. package/dist/cjs/utils/http/custom-errors/http-client-error.js.map +0 -1
  135. package/dist/cjs/utils/http/custom-errors/index.js.map +0 -1
  136. package/dist/cjs/utils/http/custom-errors/server-http-client-error.js.map +0 -1
  137. package/dist/cjs/utils/http/custom-errors/unkown-http-client-error.js.map +0 -1
  138. package/dist/cjs/utils/http/http-client-got.js.map +0 -1
  139. package/dist/cjs/utils/http/index.js.map +0 -1
  140. package/dist/cjs/utils/image-resize-errors/image-resizing-base-error.js.map +0 -1
  141. package/dist/cjs/utils/image-resize-errors/index.js.map +0 -1
  142. package/dist/cjs/utils/path.js.map +0 -1
  143. package/dist/cjs/utils/proxy/proxy-builder.js.map +0 -1
  144. package/dist/cjs/utils/resized-image-interface.js.map +0 -1
  145. package/dist/cjs/utils/transformations.js.map +0 -1
  146. package/dist/esm/core/annotation/annotation-writer.js.map +0 -1
  147. package/dist/esm/core/annotation/annotation.js.map +0 -1
  148. package/dist/esm/core/inference-response/inference-response.js.map +0 -1
  149. package/dist/esm/core/inference-response/invalid-model-type-error.js.map +0 -1
  150. package/dist/esm/core/inference-response/model-type.js.map +0 -1
  151. package/dist/esm/core/model/annotation-result/annotation-interface.js.map +0 -1
  152. package/dist/esm/core/model/annotation-result/boundary-box.js.map +0 -1
  153. package/dist/esm/core/model/annotation-result/detected-element.js.map +0 -1
  154. package/dist/esm/core/model/custom-element-json.js.map +0 -1
  155. package/dist/esm/core/model/custom-element.js.map +0 -1
  156. package/dist/esm/core/reporting/default-step.js.map +0 -1
  157. package/dist/esm/core/reporting/index.js.map +0 -1
  158. package/dist/esm/core/reporting/instruction.js.map +0 -1
  159. package/dist/esm/core/reporting/reporter-config.js.map +0 -1
  160. package/dist/esm/core/reporting/reporter.js.map +0 -1
  161. package/dist/esm/core/reporting/snapshot-detail-level.js.map +0 -1
  162. package/dist/esm/core/reporting/snapshot.js.map +0 -1
  163. package/dist/esm/core/reporting/step-reporter.js.map +0 -1
  164. package/dist/esm/core/reporting/step-run.js.map +0 -1
  165. package/dist/esm/core/reporting/step-status-end.js.map +0 -1
  166. package/dist/esm/core/reporting/step-status.js.map +0 -1
  167. package/dist/esm/core/reporting/step.js.map +0 -1
  168. package/dist/esm/core/runner-protocol/index.js.map +0 -1
  169. package/dist/esm/core/runner-protocol/request/capture-screenshot-request.js.map +0 -1
  170. package/dist/esm/core/runner-protocol/request/control-request.js.map +0 -1
  171. package/dist/esm/core/runner-protocol/request/get-server-process-pid.js.map +0 -1
  172. package/dist/esm/core/runner-protocol/request/index.js.map +0 -1
  173. package/dist/esm/core/runner-protocol/request/interactive-annotation-request.js.map +0 -1
  174. package/dist/esm/core/runner-protocol/request/read-recording-request.js.map +0 -1
  175. package/dist/esm/core/runner-protocol/request/runner-protocol-request.js.map +0 -1
  176. package/dist/esm/core/runner-protocol/request/start-recording-request.js.map +0 -1
  177. package/dist/esm/core/runner-protocol/request/stop-recording-request.js.map +0 -1
  178. package/dist/esm/core/runner-protocol/response/index.js.map +0 -1
  179. package/dist/esm/core/ui-control-commands/action.js.map +0 -1
  180. package/dist/esm/core/ui-control-commands/control-command-code.js.map +0 -1
  181. package/dist/esm/core/ui-control-commands/control-command.js.map +0 -1
  182. package/dist/esm/core/ui-control-commands/index.js.map +0 -1
  183. package/dist/esm/core/ui-control-commands/input-event.js.map +0 -1
  184. package/dist/esm/execution/config-error.js.map +0 -1
  185. package/dist/esm/execution/control-command-error.js.map +0 -1
  186. package/dist/esm/execution/credentials-args.js.map +0 -1
  187. package/dist/esm/execution/dsl.js.map +0 -1
  188. package/dist/esm/execution/execution-runtime.js.map +0 -1
  189. package/dist/esm/execution/index.js.map +0 -1
  190. package/dist/esm/execution/inference-client.js.map +0 -1
  191. package/dist/esm/execution/inference-response-error.js.map +0 -1
  192. package/dist/esm/execution/is-image-required-interface.js.map +0 -1
  193. package/dist/esm/execution/misc.js.map +0 -1
  194. package/dist/esm/execution/model-composition-branch.js.map +0 -1
  195. package/dist/esm/execution/read-environment-credentials.js.map +0 -1
  196. package/dist/esm/execution/read-recording-response-stream-handler.js.map +0 -1
  197. package/dist/esm/execution/repeat-error.js.map +0 -1
  198. package/dist/esm/execution/ui-control-client-dependency-builder.js.map +0 -1
  199. package/dist/esm/execution/ui-control-client.js.map +0 -1
  200. package/dist/esm/execution/ui-controller-client-connection-state.js.map +0 -1
  201. package/dist/esm/execution/ui-controller-client-error.js.map +0 -1
  202. package/dist/esm/execution/ui-controller-client-interface.js.map +0 -1
  203. package/dist/esm/execution/ui-controller-client.js.map +0 -1
  204. package/dist/esm/lib/download-binaries.js.map +0 -1
  205. package/dist/esm/lib/index.js.map +0 -1
  206. package/dist/esm/lib/interactive_cli/add-script-package-json.d.ts +0 -1
  207. package/dist/esm/lib/interactive_cli/add-script-package-json.js +0 -32
  208. package/dist/esm/lib/interactive_cli/add-script-package-json.js.map +0 -1
  209. package/dist/esm/lib/interactive_cli/cli-options-interface.js.map +0 -1
  210. package/dist/esm/lib/interactive_cli/cli.js.map +0 -1
  211. package/dist/esm/lib/interactive_cli/create-example-project.js.map +0 -1
  212. package/dist/esm/lib/interactive_cli/index.js.map +0 -1
  213. package/dist/esm/lib/libfuse-error.js.map +0 -1
  214. package/dist/esm/lib/logger.js.map +0 -1
  215. package/dist/esm/lib/timeout-error.js.map +0 -1
  216. package/dist/esm/lib/ui-controller-args.js.map +0 -1
  217. package/dist/esm/lib/ui-controller-darwin.js.map +0 -1
  218. package/dist/esm/lib/ui-controller-facade.js.map +0 -1
  219. package/dist/esm/lib/ui-controller-linux.js.map +0 -1
  220. package/dist/esm/lib/ui-controller-win32.js.map +0 -1
  221. package/dist/esm/lib/ui-controller.js.map +0 -1
  222. package/dist/esm/lib/unkown-error.js.map +0 -1
  223. package/dist/esm/lib/wayland-error.js.map +0 -1
  224. package/dist/esm/main.js.map +0 -1
  225. package/dist/esm/shared/index.js.map +0 -1
  226. package/dist/esm/shared/log-levels.js.map +0 -1
  227. package/dist/esm/shared/proxy-agent-args.js.map +0 -1
  228. package/dist/esm/utils/analytics/analytics-interface.js.map +0 -1
  229. package/dist/esm/utils/analytics/analytics.js.map +0 -1
  230. package/dist/esm/utils/analytics/index.js.map +0 -1
  231. package/dist/esm/utils/analytics/installation-timestamp-create-error.js.map +0 -1
  232. package/dist/esm/utils/analytics/installation-timestamp-get-error.js.map +0 -1
  233. package/dist/esm/utils/analytics/installation-timestamp.js.map +0 -1
  234. package/dist/esm/utils/analytics/user-identifier-interface.js.map +0 -1
  235. package/dist/esm/utils/analytics/user-identifier.js.map +0 -1
  236. package/dist/esm/utils/base_64_image/base-64-image-error.js.map +0 -1
  237. package/dist/esm/utils/base_64_image/base-64-image-string-error.js.map +0 -1
  238. package/dist/esm/utils/base_64_image/base-64-image.js.map +0 -1
  239. package/dist/esm/utils/base_64_image/sharp.js.map +0 -1
  240. package/dist/esm/utils/http/credentials.js.map +0 -1
  241. package/dist/esm/utils/http/custom-errors/authentication-http-client-error.js.map +0 -1
  242. package/dist/esm/utils/http/custom-errors/client-http-client-error.js.map +0 -1
  243. package/dist/esm/utils/http/custom-errors/general-http-client-error.js.map +0 -1
  244. package/dist/esm/utils/http/custom-errors/http-client-error.js.map +0 -1
  245. package/dist/esm/utils/http/custom-errors/index.js.map +0 -1
  246. package/dist/esm/utils/http/custom-errors/server-http-client-error.js.map +0 -1
  247. package/dist/esm/utils/http/custom-errors/unkown-http-client-error.js.map +0 -1
  248. package/dist/esm/utils/http/http-client-got.js.map +0 -1
  249. package/dist/esm/utils/http/index.js.map +0 -1
  250. package/dist/esm/utils/image-resize-errors/image-resizing-base-error.js.map +0 -1
  251. package/dist/esm/utils/image-resize-errors/index.js.map +0 -1
  252. package/dist/esm/utils/path.js.map +0 -1
  253. package/dist/esm/utils/proxy/proxy-builder.js.map +0 -1
  254. package/dist/esm/utils/resized-image-interface.js.map +0 -1
  255. package/dist/esm/utils/transformations.js.map +0 -1
  256. package/dist/example_projects_templates/configs/jasmine.config.json +0 -12
@@ -0,0 +1,28 @@
1
+ import { logger } from '../../lib';
2
+ import { AIElementError } from './ai-element-error';
3
+ class AIElement {
4
+ constructor(name, imagePath, mask) {
5
+ this.name = name;
6
+ this.imagePath = imagePath;
7
+ this.mask = mask;
8
+ }
9
+ static fromJson(json, imagePath) {
10
+ var _a;
11
+ if (json.version === 1) {
12
+ return new AIElement(json.name, imagePath, (_a = json.image) === null || _a === void 0 ? void 0 : _a.mask);
13
+ }
14
+ throw new AIElementError(`Unsupported AIElement version '${json.version}'.`);
15
+ }
16
+ toCustomElement() {
17
+ logger.debug('Converting AIElement to CustomElementJson.');
18
+ return {
19
+ customImage: this.imagePath,
20
+ mask: this.mask,
21
+ name: this.name,
22
+ };
23
+ }
24
+ hasName(name) {
25
+ return this.name === name;
26
+ }
27
+ }
28
+ export { AIElement };
@@ -8,6 +8,10 @@ export declare type ANDROID_KEY = 'home' | 'back' | 'call' | 'endcall' | '0' | '
8
8
  export declare type MODIFIER_KEY = 'command' | 'alt' | 'control' | 'shift' | 'right_shift';
9
9
  export declare type COLOR = 'black' | 'white' | 'red' | 'green' | 'yellow green' | 'orange' | 'yellow' | 'purple' | 'pink' | 'gray' | 'lime green' | 'royal blue';
10
10
  export declare type PC_AND_MODIFIER_KEY = 'command' | 'alt' | 'control' | 'shift' | 'right_shift' | 'backspace' | 'delete' | 'enter' | 'tab' | 'escape' | 'up' | 'down' | 'right' | 'left' | 'home' | 'end' | 'pageup' | 'pagedown' | 'f1' | 'f2' | 'f3' | 'f4' | 'f5' | 'f6' | 'f7' | 'f8' | 'f9' | 'f10' | 'f11' | 'f12' | 'space' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' | 'i' | 'j' | 'k' | 'l' | 'm' | 'n' | 'o' | 'p' | 'q' | 'r' | 's' | 't' | 'u' | 'v' | 'w' | 'x' | 'y' | 'z' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z' | '!' | '"' | '#' | '$' | '%' | '&' | "'" | '(' | ')' | '*' | '+' | ',' | '-' | '.' | '/' | ':' | ';' | '<' | '=' | '>' | '?' | '@' | '[' | '\\' | ']' | '^' | '_' | '`' | '{' | '|' | '}' | '~ ';
11
+ export interface CommandExecutorContext {
12
+ customElementsJson: CustomElementJson[];
13
+ aiElementNames: string[];
14
+ }
11
15
  declare abstract class FluentBase {
12
16
  protected prev?: FluentBase | undefined;
13
17
  constructor(prev?: FluentBase | undefined);
@@ -202,6 +206,14 @@ export declare class FluentFilters extends FluentBase {
202
206
  * @return {FluentFiltersOrRelations}
203
207
  */
204
208
  customElement(customElement: CustomElementJson): FluentFiltersOrRelations;
209
+ /**
210
+ * Detects an AI Element created with the workflow creator.
211
+ *
212
+ * @param {string} aiElementName - Name of the AI Element.
213
+ *
214
+ * @return {FluentFiltersOrRelations}
215
+ */
216
+ aiElement(aiElementName: string): FluentFiltersOrRelations;
205
217
  /**
206
218
  * Filters for a UI element 'image'.
207
219
  *
@@ -354,7 +366,17 @@ export declare class FluentFilters extends FluentBase {
354
366
  *
355
367
  * **Examples:**
356
368
  * ```typescript
357
- * await aui.click().matching('a mask on purple background and a firefox logo').exec()
369
+ * // Select the black sneaker from a bunch of sneakers
370
+ * await aui.click().element().matching('a black sneaker shoe').exec();
371
+ *
372
+ * // Select an image that has text in it
373
+ * await aui.click().element().matching('has Burger King in it').exec();
374
+ * await aui.click().element().matching('has adidas in it').exec();
375
+ *
376
+ * // Target a logo/image by describing it
377
+ * await aui.click().element().matching('a mask on purple background and a firefox logo').exec();
378
+ * await aui.click().element().matching('logo looking like an apple with one bite bitten off').exec();
379
+ * await aui.click().element().matching('logo looking like a seashell').exec();
358
380
  * ```
359
381
  *
360
382
  * @param {string} text - A description of the target element.
@@ -827,6 +849,14 @@ export declare class FluentFiltersCondition extends FluentBase {
827
849
  * @return {FluentFiltersOrRelationsCondition}
828
850
  */
829
851
  customElement(customElement: CustomElementJson): FluentFiltersOrRelationsCondition;
852
+ /**
853
+ * Detects an AI Element created with the workflow creator.
854
+ *
855
+ * @param {string} aiElementName - Name of the AI Element.
856
+ *
857
+ * @return {FluentFiltersOrRelationsCondition}
858
+ */
859
+ aiElement(aiElementName: string): FluentFiltersOrRelationsCondition;
830
860
  /**
831
861
  * Filters for a UI element 'image'.
832
862
  *
@@ -979,7 +1009,17 @@ export declare class FluentFiltersCondition extends FluentBase {
979
1009
  *
980
1010
  * **Examples:**
981
1011
  * ```typescript
982
- * await aui.click().matching('a mask on purple background and a firefox logo').exec()
1012
+ * // Select the black sneaker from a bunch of sneakers
1013
+ * await aui.click().element().matching('a black sneaker shoe').exec();
1014
+ *
1015
+ * // Select an image that has text in it
1016
+ * await aui.click().element().matching('has Burger King in it').exec();
1017
+ * await aui.click().element().matching('has adidas in it').exec();
1018
+ *
1019
+ * // Target a logo/image by describing it
1020
+ * await aui.click().element().matching('a mask on purple background and a firefox logo').exec();
1021
+ * await aui.click().element().matching('logo looking like an apple with one bite bitten off').exec();
1022
+ * await aui.click().element().matching('logo looking like a seashell').exec();
983
1023
  * ```
984
1024
  *
985
1025
  * @param {string} text - A description of the target element.
@@ -1770,7 +1810,7 @@ export declare abstract class FluentCommand extends FluentBase {
1770
1810
  * @return {Exec}
1771
1811
  */
1772
1812
  pressAndroidKey(key: ANDROID_KEY): Exec;
1773
- abstract fluentCommandExecutor(instruction: string, customElements: CustomElementJson[]): Promise<void>;
1813
+ abstract fluentCommandExecutor(instruction: string, context: CommandExecutorContext): Promise<void>;
1774
1814
  }
1775
1815
  export interface ExecutableGetter {
1776
1816
  exec(): Promise<DetectedElement[]>;
@@ -1955,6 +1995,14 @@ export declare class FluentFiltersGetter extends FluentBase {
1955
1995
  * @return {FluentFiltersOrRelationsGetter}
1956
1996
  */
1957
1997
  customElement(customElement: CustomElementJson): FluentFiltersOrRelationsGetter;
1998
+ /**
1999
+ * Detects an AI Element created with the workflow creator.
2000
+ *
2001
+ * @param {string} aiElementName - Name of the AI Element.
2002
+ *
2003
+ * @return {FluentFiltersOrRelationsGetter}
2004
+ */
2005
+ aiElement(aiElementName: string): FluentFiltersOrRelationsGetter;
1958
2006
  /**
1959
2007
  * Filters for a UI element 'image'.
1960
2008
  *
@@ -2107,7 +2155,17 @@ export declare class FluentFiltersGetter extends FluentBase {
2107
2155
  *
2108
2156
  * **Examples:**
2109
2157
  * ```typescript
2110
- * await aui.click().matching('a mask on purple background and a firefox logo').exec()
2158
+ * // Select the black sneaker from a bunch of sneakers
2159
+ * await aui.click().element().matching('a black sneaker shoe').exec();
2160
+ *
2161
+ * // Select an image that has text in it
2162
+ * await aui.click().element().matching('has Burger King in it').exec();
2163
+ * await aui.click().element().matching('has adidas in it').exec();
2164
+ *
2165
+ * // Target a logo/image by describing it
2166
+ * await aui.click().element().matching('a mask on purple background and a firefox logo').exec();
2167
+ * await aui.click().element().matching('logo looking like an apple with one bite bitten off').exec();
2168
+ * await aui.click().element().matching('logo looking like a seashell').exec();
2111
2169
  * ```
2112
2170
  *
2113
2171
  * @param {string} text - A description of the target element.
@@ -2420,20 +2478,72 @@ export declare abstract class Getter extends FluentCommand {
2420
2478
  * ```typescript
2421
2479
  * const text = await aui.get().text('Sign').exec();
2422
2480
  * console.log(text);
2481
+ *
2482
+ * // Console output
2483
+ * [
2484
+ * DetectedElement {
2485
+ * name: 'TEXT',
2486
+ * text: 'Sign In',
2487
+ * bndbox: BoundingBox {
2488
+ * xmin: 1128.2720982142857,
2489
+ * ymin: 160.21332310267857,
2490
+ * xmax: 1178.8204241071428,
2491
+ * ymax: 180.83512834821428
2492
+ * }
2493
+ * }
2494
+ * ]
2423
2495
  * ```
2424
- * ```text
2425
- * console output: [
2496
+ *
2497
+ * // *************************************************** //
2498
+ * // Examples on how to work with the returned elements //
2499
+ * // *************************************************** //
2500
+ * const texts = await aui.get().text().below().textfield().exec();
2501
+ *
2502
+ * // We can get a lot of elements this way
2503
+ * console.log(texts);
2504
+ *
2505
+ * // Console output
2506
+ * [
2426
2507
  * DetectedElement {
2427
- * name: 'TEXT',
2428
- * text: 'Sign In',
2429
- * bndbox: BoundingBox {
2430
- * xmin: 1128.2720982142857,
2431
- * ymin: 160.21332310267857,
2432
- * xmax: 1178.8204241071428,
2433
- * ymax: 180.83512834821428
2434
- * }
2435
- * }
2436
- * ]
2508
+ * name: 'TEXT',
2509
+ * text: 'Sign In',
2510
+ * bndbox: BoundingBox {
2511
+ * xmin: 1128.2720982142857,
2512
+ * ymin: 160.21332310267857,
2513
+ * xmax: 1178.8204241071428,
2514
+ * ymax: 180.83512834821428
2515
+ * },
2516
+ * },
2517
+ * DetectedElement {
2518
+ * name: 'TEXT',
2519
+ * text: 'Login',
2520
+ * bndbox: BoundingBox {
2521
+ * xmin: 250.8204241071428,
2522
+ * ymin: 300.21332310267857,
2523
+ * xmax: 450.6304241071428,
2524
+ * ymax: 950.47812834821428
2525
+ * },
2526
+ * },
2527
+ * ... 10 more items
2528
+ * ]
2529
+ *
2530
+ * // Extract the FIRST element
2531
+ * // Arrays start with index 0!
2532
+ * const firstTextElement = texts[0];
2533
+ * const textOfFirstElement = firstElement.text;
2534
+ *
2535
+ * console.log(textOfFirstElement);
2536
+ *
2537
+ * // Console output
2538
+ * Sign In
2539
+ *
2540
+ * // Log the text of the SECOND element
2541
+ * // with shorter code
2542
+ * const texts = await aui.get().text().below().textfield().exec();
2543
+ * console.log(texts[1].text)
2544
+ *
2545
+ * // Console output
2546
+ * Login
2437
2547
  * ```
2438
2548
  *
2439
2549
  * @return {FluentFiltersGetter}
@@ -2479,7 +2589,7 @@ export declare abstract class Getter extends FluentCommand {
2479
2589
  * @return {ExecGetter}
2480
2590
  */
2481
2591
  getAll(): ExecGetter;
2482
- abstract getterExecutor(instruction: string, customElements: CustomElementJson[]): Promise<DetectedElement[]>;
2592
+ abstract getterExecutor(instruction: string, context: CommandExecutorContext): Promise<DetectedElement[]>;
2483
2593
  }
2484
2594
  export declare abstract class ApiCommands extends Getter {
2485
2595
  }
@@ -28,7 +28,11 @@ class FluentBase {
28
28
  if (this instanceof FluentCommand) {
29
29
  const fluentCommand = this;
30
30
  const customElements = newParamsList.has('customElement') ? newParamsList.get('customElement') : [];
31
- return fluentCommand.fluentCommandExecutor(newCurrentInstruction.trim(), customElements);
31
+ const aiElementNames = newParamsList.has('aiElementName') ? newParamsList.get('aiElementName') : [];
32
+ return fluentCommand.fluentCommandExecutor(newCurrentInstruction.trim(), {
33
+ customElementsJson: customElements,
34
+ aiElementNames,
35
+ });
32
36
  }
33
37
  if (!this.prev) {
34
38
  throw new Error('Prev element not defined');
@@ -41,7 +45,11 @@ class FluentBase {
41
45
  if (this instanceof Getter) {
42
46
  const getter = this;
43
47
  const customElements = newParamsList.has('customElement') ? newParamsList.get('customElement') : [];
44
- return getter.getterExecutor(newCurrentInstruction.trim(), customElements);
48
+ const aiElementNames = newParamsList.has('aiElementName') ? newParamsList.get('aiElementName') : [];
49
+ return getter.getterExecutor(newCurrentInstruction.trim(), {
50
+ customElementsJson: customElements,
51
+ aiElementNames,
52
+ });
45
53
  }
46
54
  if (!this.prev) {
47
55
  throw new Error('Prev element not defined');
@@ -303,6 +311,23 @@ export class FluentFilters extends FluentBase {
303
311
  this._params.set('customElement', customElement);
304
312
  return new FluentFiltersOrRelations(this);
305
313
  }
314
+ /**
315
+ * Detects an AI Element created with the workflow creator.
316
+ *
317
+ * @param {string} aiElementName - Name of the AI Element.
318
+ *
319
+ * @return {FluentFiltersOrRelations}
320
+ */
321
+ aiElement(aiElementName) {
322
+ this._textStr = '';
323
+ this._textStr += 'ai';
324
+ this._textStr += ' element';
325
+ this._textStr += ' with';
326
+ this._textStr += ' name';
327
+ this._textStr += ` ${Separators.STRING}${aiElementName}${Separators.STRING}`;
328
+ this._params.set('aiElementName', aiElementName);
329
+ return new FluentFiltersOrRelations(this);
330
+ }
306
331
  /**
307
332
  * Filters for a UI element 'image'.
308
333
  *
@@ -491,7 +516,17 @@ export class FluentFilters extends FluentBase {
491
516
  *
492
517
  * **Examples:**
493
518
  * ```typescript
494
- * await aui.click().matching('a mask on purple background and a firefox logo').exec()
519
+ * // Select the black sneaker from a bunch of sneakers
520
+ * await aui.click().element().matching('a black sneaker shoe').exec();
521
+ *
522
+ * // Select an image that has text in it
523
+ * await aui.click().element().matching('has Burger King in it').exec();
524
+ * await aui.click().element().matching('has adidas in it').exec();
525
+ *
526
+ * // Target a logo/image by describing it
527
+ * await aui.click().element().matching('a mask on purple background and a firefox logo').exec();
528
+ * await aui.click().element().matching('logo looking like an apple with one bite bitten off').exec();
529
+ * await aui.click().element().matching('logo looking like a seashell').exec();
495
530
  * ```
496
531
  *
497
532
  * @param {string} text - A description of the target element.
@@ -1093,6 +1128,23 @@ export class FluentFiltersCondition extends FluentBase {
1093
1128
  this._params.set('customElement', customElement);
1094
1129
  return new FluentFiltersOrRelationsCondition(this);
1095
1130
  }
1131
+ /**
1132
+ * Detects an AI Element created with the workflow creator.
1133
+ *
1134
+ * @param {string} aiElementName - Name of the AI Element.
1135
+ *
1136
+ * @return {FluentFiltersOrRelationsCondition}
1137
+ */
1138
+ aiElement(aiElementName) {
1139
+ this._textStr = '';
1140
+ this._textStr += 'ai';
1141
+ this._textStr += ' element';
1142
+ this._textStr += ' with';
1143
+ this._textStr += ' name';
1144
+ this._textStr += ` ${Separators.STRING}${aiElementName}${Separators.STRING}`;
1145
+ this._params.set('aiElementName', aiElementName);
1146
+ return new FluentFiltersOrRelationsCondition(this);
1147
+ }
1096
1148
  /**
1097
1149
  * Filters for a UI element 'image'.
1098
1150
  *
@@ -1281,7 +1333,17 @@ export class FluentFiltersCondition extends FluentBase {
1281
1333
  *
1282
1334
  * **Examples:**
1283
1335
  * ```typescript
1284
- * await aui.click().matching('a mask on purple background and a firefox logo').exec()
1336
+ * // Select the black sneaker from a bunch of sneakers
1337
+ * await aui.click().element().matching('a black sneaker shoe').exec();
1338
+ *
1339
+ * // Select an image that has text in it
1340
+ * await aui.click().element().matching('has Burger King in it').exec();
1341
+ * await aui.click().element().matching('has adidas in it').exec();
1342
+ *
1343
+ * // Target a logo/image by describing it
1344
+ * await aui.click().element().matching('a mask on purple background and a firefox logo').exec();
1345
+ * await aui.click().element().matching('logo looking like an apple with one bite bitten off').exec();
1346
+ * await aui.click().element().matching('logo looking like a seashell').exec();
1285
1347
  * ```
1286
1348
  *
1287
1349
  * @param {string} text - A description of the target element.
@@ -2562,6 +2624,23 @@ export class FluentFiltersGetter extends FluentBase {
2562
2624
  this._params.set('customElement', customElement);
2563
2625
  return new FluentFiltersOrRelationsGetter(this);
2564
2626
  }
2627
+ /**
2628
+ * Detects an AI Element created with the workflow creator.
2629
+ *
2630
+ * @param {string} aiElementName - Name of the AI Element.
2631
+ *
2632
+ * @return {FluentFiltersOrRelationsGetter}
2633
+ */
2634
+ aiElement(aiElementName) {
2635
+ this._textStr = '';
2636
+ this._textStr += 'ai';
2637
+ this._textStr += ' element';
2638
+ this._textStr += ' with';
2639
+ this._textStr += ' name';
2640
+ this._textStr += ` ${Separators.STRING}${aiElementName}${Separators.STRING}`;
2641
+ this._params.set('aiElementName', aiElementName);
2642
+ return new FluentFiltersOrRelationsGetter(this);
2643
+ }
2565
2644
  /**
2566
2645
  * Filters for a UI element 'image'.
2567
2646
  *
@@ -2750,7 +2829,17 @@ export class FluentFiltersGetter extends FluentBase {
2750
2829
  *
2751
2830
  * **Examples:**
2752
2831
  * ```typescript
2753
- * await aui.click().matching('a mask on purple background and a firefox logo').exec()
2832
+ * // Select the black sneaker from a bunch of sneakers
2833
+ * await aui.click().element().matching('a black sneaker shoe').exec();
2834
+ *
2835
+ * // Select an image that has text in it
2836
+ * await aui.click().element().matching('has Burger King in it').exec();
2837
+ * await aui.click().element().matching('has adidas in it').exec();
2838
+ *
2839
+ * // Target a logo/image by describing it
2840
+ * await aui.click().element().matching('a mask on purple background and a firefox logo').exec();
2841
+ * await aui.click().element().matching('logo looking like an apple with one bite bitten off').exec();
2842
+ * await aui.click().element().matching('logo looking like a seashell').exec();
2754
2843
  * ```
2755
2844
  *
2756
2845
  * @param {string} text - A description of the target element.
@@ -3123,20 +3212,72 @@ export class Getter extends FluentCommand {
3123
3212
  * ```typescript
3124
3213
  * const text = await aui.get().text('Sign').exec();
3125
3214
  * console.log(text);
3215
+ *
3216
+ * // Console output
3217
+ * [
3218
+ * DetectedElement {
3219
+ * name: 'TEXT',
3220
+ * text: 'Sign In',
3221
+ * bndbox: BoundingBox {
3222
+ * xmin: 1128.2720982142857,
3223
+ * ymin: 160.21332310267857,
3224
+ * xmax: 1178.8204241071428,
3225
+ * ymax: 180.83512834821428
3226
+ * }
3227
+ * }
3228
+ * ]
3126
3229
  * ```
3127
- * ```text
3128
- * console output: [
3230
+ *
3231
+ * // *************************************************** //
3232
+ * // Examples on how to work with the returned elements //
3233
+ * // *************************************************** //
3234
+ * const texts = await aui.get().text().below().textfield().exec();
3235
+ *
3236
+ * // We can get a lot of elements this way
3237
+ * console.log(texts);
3238
+ *
3239
+ * // Console output
3240
+ * [
3129
3241
  * DetectedElement {
3130
- * name: 'TEXT',
3131
- * text: 'Sign In',
3132
- * bndbox: BoundingBox {
3133
- * xmin: 1128.2720982142857,
3134
- * ymin: 160.21332310267857,
3135
- * xmax: 1178.8204241071428,
3136
- * ymax: 180.83512834821428
3137
- * }
3138
- * }
3139
- * ]
3242
+ * name: 'TEXT',
3243
+ * text: 'Sign In',
3244
+ * bndbox: BoundingBox {
3245
+ * xmin: 1128.2720982142857,
3246
+ * ymin: 160.21332310267857,
3247
+ * xmax: 1178.8204241071428,
3248
+ * ymax: 180.83512834821428
3249
+ * },
3250
+ * },
3251
+ * DetectedElement {
3252
+ * name: 'TEXT',
3253
+ * text: 'Login',
3254
+ * bndbox: BoundingBox {
3255
+ * xmin: 250.8204241071428,
3256
+ * ymin: 300.21332310267857,
3257
+ * xmax: 450.6304241071428,
3258
+ * ymax: 950.47812834821428
3259
+ * },
3260
+ * },
3261
+ * ... 10 more items
3262
+ * ]
3263
+ *
3264
+ * // Extract the FIRST element
3265
+ * // Arrays start with index 0!
3266
+ * const firstTextElement = texts[0];
3267
+ * const textOfFirstElement = firstElement.text;
3268
+ *
3269
+ * console.log(textOfFirstElement);
3270
+ *
3271
+ * // Console output
3272
+ * Sign In
3273
+ *
3274
+ * // Log the text of the SECOND element
3275
+ * // with shorter code
3276
+ * const texts = await aui.get().text().below().textfield().exec();
3277
+ * console.log(texts[1].text)
3278
+ *
3279
+ * // Console output
3280
+ * Login
3140
3281
  * ```
3141
3282
  *
3142
3283
  * @return {FluentFiltersGetter}
@@ -1 +1 @@
1
- export { UiControlClient, RelationsForConvenienceMethods } from './ui-control-client';
1
+ export * from './ui-control-client';
@@ -1 +1 @@
1
- export { UiControlClient } from './ui-control-client';
1
+ export * from './ui-control-client';
@@ -8,6 +8,7 @@ export declare class UiControlClientDependencyBuilder {
8
8
  static build(clientArgs: ClientArgsWithDefaults): Promise<{
9
9
  executionRuntime: ExecutionRuntime;
10
10
  stepReporter: StepReporter;
11
+ workspaceId: string | undefined;
11
12
  }>;
12
13
  static getClientArgsWithDefaults(clientArgs: ClientArgs): Promise<ClientArgsWithDefaults>;
13
14
  }
@@ -37,13 +37,16 @@ export class UiControlClientDependencyBuilder {
37
37
  return new UiControllerClient(clientArgs.uiControllerUrl);
38
38
  }
39
39
  static build(clientArgs) {
40
+ var _a;
40
41
  return __awaiter(this, void 0, void 0, function* () {
41
42
  const uiControllerClient = UiControlClientDependencyBuilder.buildUiControllerClient(clientArgs);
42
43
  const inferenceClient = yield UiControlClientDependencyBuilder.buildInferenceClient(clientArgs);
43
44
  const stepReporter = new StepReporter(clientArgs.reporter);
45
+ const workspaceId = (_a = clientArgs.credentials) === null || _a === void 0 ? void 0 : _a.workspaceId;
44
46
  return {
45
47
  executionRuntime: new ExecutionRuntime(uiControllerClient, inferenceClient, stepReporter),
46
48
  stepReporter,
49
+ workspaceId,
47
50
  };
48
51
  });
49
52
  }