@midscene/core 1.16.2 → 1.16.6-beta-20261023073257.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 (295) hide show
  1. package/dist/es/agent/agent.mjs +11 -11
  2. package/dist/es/agent/agent.mjs.map +1 -1
  3. package/dist/es/agent/insight.mjs.map +1 -1
  4. package/dist/es/agent/tasks.mjs +72 -39
  5. package/dist/es/agent/tasks.mjs.map +1 -1
  6. package/dist/es/agent/utils.mjs +1 -1
  7. package/dist/es/ai-model/connectivity/run-connectivity-test.mjs +27 -22
  8. package/dist/es/ai-model/connectivity/run-connectivity-test.mjs.map +1 -1
  9. package/dist/es/ai-model/index.mjs +4 -2
  10. package/dist/es/ai-model/model-adapter/resolve.mjs +4 -2
  11. package/dist/es/ai-model/model-adapter/resolve.mjs.map +1 -1
  12. package/dist/es/ai-model/models/jev/adapter.mjs +6 -110
  13. package/dist/es/ai-model/models/jev/adapter.mjs.map +1 -1
  14. package/dist/es/ai-model/models/jev/boolean.mjs +48 -0
  15. package/dist/es/ai-model/models/jev/boolean.mjs.map +1 -0
  16. package/dist/es/ai-model/models/jev/image.mjs +39 -36
  17. package/dist/es/ai-model/models/jev/image.mjs.map +1 -1
  18. package/dist/es/ai-model/models/jev/locate.mjs +48 -0
  19. package/dist/es/ai-model/models/jev/locate.mjs.map +1 -0
  20. package/dist/es/ai-model/models/jev/planning-action.mjs +35 -0
  21. package/dist/es/ai-model/models/jev/planning-action.mjs.map +1 -0
  22. package/dist/es/ai-model/models/jev/planning-context.mjs +38 -0
  23. package/dist/es/ai-model/models/jev/planning-context.mjs.map +1 -0
  24. package/dist/es/ai-model/models/jev/planning-decision.mjs +68 -0
  25. package/dist/es/ai-model/models/jev/planning-decision.mjs.map +1 -0
  26. package/dist/es/ai-model/models/jev/planning.mjs +19 -131
  27. package/dist/es/ai-model/models/jev/planning.mjs.map +1 -1
  28. package/dist/es/ai-model/models/model-fallback.mjs +28 -0
  29. package/dist/es/ai-model/models/model-fallback.mjs.map +1 -0
  30. package/dist/es/ai-model/service-caller/call-ai.mjs +54 -27
  31. package/dist/es/ai-model/service-caller/call-ai.mjs.map +1 -1
  32. package/dist/es/ai-model/service-caller/codex/call-codex.mjs.map +1 -1
  33. package/dist/es/ai-model/service-caller/index.mjs +2 -2
  34. package/dist/es/ai-model/service-caller/model-call.mjs +3 -3
  35. package/dist/es/ai-model/service-caller/model-call.mjs.map +1 -1
  36. package/dist/es/ai-model/service-caller/openai/call-openai.mjs +4 -2
  37. package/dist/es/ai-model/service-caller/openai/call-openai.mjs.map +1 -1
  38. package/dist/es/ai-model/service-caller/openai/chat-completion/chat-completion.mjs.map +1 -1
  39. package/dist/es/ai-model/service-caller/openai/openai-client.mjs.map +1 -1
  40. package/dist/es/ai-model/service-caller/openai/responses/responses.mjs.map +1 -1
  41. package/dist/es/ai-model/service-caller/openai/siwc/authorization.mjs +117 -0
  42. package/dist/es/ai-model/service-caller/openai/siwc/authorization.mjs.map +1 -0
  43. package/dist/es/ai-model/service-caller/openai/siwc/credential-storage.mjs +66 -0
  44. package/dist/es/ai-model/service-caller/openai/siwc/credential-storage.mjs.map +1 -0
  45. package/dist/es/ai-model/service-caller/openai/siwc/errors.mjs +42 -0
  46. package/dist/es/ai-model/service-caller/openai/siwc/errors.mjs.map +1 -0
  47. package/dist/es/ai-model/service-caller/openai/siwc/index.mjs +7 -0
  48. package/dist/es/ai-model/service-caller/openai/siwc/prepare-call.mjs +33 -0
  49. package/dist/es/ai-model/service-caller/openai/siwc/prepare-call.mjs.map +1 -0
  50. package/dist/es/ai-model/service-caller/openai/siwc/refresh.mjs +60 -0
  51. package/dist/es/ai-model/service-caller/openai/siwc/refresh.mjs.map +1 -0
  52. package/dist/es/ai-model/service-caller/openai/siwc/token-manager.mjs +51 -0
  53. package/dist/es/ai-model/service-caller/openai/siwc/token-manager.mjs.map +1 -0
  54. package/dist/es/ai-model/service-caller/system-one/call-system-one.mjs +69 -0
  55. package/dist/es/ai-model/service-caller/system-one/call-system-one.mjs.map +1 -0
  56. package/dist/es/ai-model/service-caller/system-one/index.mjs +3 -0
  57. package/dist/es/ai-model/service-caller/system-one/prepare-system-one.mjs +44 -0
  58. package/dist/es/ai-model/service-caller/system-one/prepare-system-one.mjs.map +1 -0
  59. package/dist/es/ai-model/service-caller/system-one/schema.mjs +32 -0
  60. package/dist/es/ai-model/service-caller/system-one/schema.mjs.map +1 -0
  61. package/dist/es/ai-model/service-caller/system-one/utils.mjs +34 -0
  62. package/dist/es/ai-model/service-caller/system-one/utils.mjs.map +1 -0
  63. package/dist/es/ai-model/service-caller/utils.mjs +2 -2
  64. package/dist/es/ai-model/service-caller/utils.mjs.map +1 -1
  65. package/dist/es/ai-model/shared/model-locate-result/factory.mjs +7 -3
  66. package/dist/es/ai-model/shared/model-locate-result/factory.mjs.map +1 -1
  67. package/dist/es/ai-model/shared/model-locate-result/pixel-mapper.mjs +10 -4
  68. package/dist/es/ai-model/shared/model-locate-result/pixel-mapper.mjs.map +1 -1
  69. package/dist/es/ai-model/shared/model-locate-result/types.mjs.map +1 -1
  70. package/dist/es/ai-model/shared/model-locate-result/validation.mjs +4 -0
  71. package/dist/es/ai-model/shared/model-locate-result/validation.mjs.map +1 -1
  72. package/dist/es/ai-model/workflows/grounding/locate.mjs +2 -2
  73. package/dist/es/ai-model/workflows/grounding/locate.mjs.map +1 -1
  74. package/dist/es/ai-model/workflows/grounding/section-locate.mjs +2 -2
  75. package/dist/es/ai-model/workflows/grounding/section-locate.mjs.map +1 -1
  76. package/dist/es/ai-model/workflows/insight/boolean.mjs +1 -1
  77. package/dist/es/ai-model/workflows/insight/boolean.mjs.map +1 -1
  78. package/dist/es/ai-model/workflows/insight/extraction.mjs +3 -3
  79. package/dist/es/ai-model/workflows/insight/extraction.mjs.map +1 -1
  80. package/dist/es/ai-model/workflows/planning/standard-planning.mjs +4 -3
  81. package/dist/es/ai-model/workflows/planning/standard-planning.mjs.map +1 -1
  82. package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs +2 -2
  83. package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs.map +1 -1
  84. package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs +2 -2
  85. package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs.map +1 -1
  86. package/dist/es/device/index.mjs +7 -0
  87. package/dist/es/device/index.mjs.map +1 -1
  88. package/dist/es/report-html-template.mjs +1 -1
  89. package/dist/es/service/index.mjs +2 -1
  90. package/dist/es/service/index.mjs.map +1 -1
  91. package/dist/es/types.mjs.map +1 -1
  92. package/dist/es/utils.mjs +1 -1
  93. package/dist/lib/agent/agent.js +11 -11
  94. package/dist/lib/agent/agent.js.map +1 -1
  95. package/dist/lib/agent/insight.js.map +1 -1
  96. package/dist/lib/agent/tasks.js +72 -39
  97. package/dist/lib/agent/tasks.js.map +1 -1
  98. package/dist/lib/agent/utils.js +1 -1
  99. package/dist/lib/ai-model/connectivity/run-connectivity-test.js +27 -22
  100. package/dist/lib/ai-model/connectivity/run-connectivity-test.js.map +1 -1
  101. package/dist/lib/ai-model/index.js +34 -5
  102. package/dist/lib/ai-model/model-adapter/resolve.js +4 -2
  103. package/dist/lib/ai-model/model-adapter/resolve.js.map +1 -1
  104. package/dist/lib/ai-model/models/jev/adapter.js +6 -110
  105. package/dist/lib/ai-model/models/jev/adapter.js.map +1 -1
  106. package/dist/lib/ai-model/models/jev/boolean.js +82 -0
  107. package/dist/lib/ai-model/models/jev/boolean.js.map +1 -0
  108. package/dist/lib/ai-model/models/jev/image.js +41 -35
  109. package/dist/lib/ai-model/models/jev/image.js.map +1 -1
  110. package/dist/lib/ai-model/models/jev/locate.js +82 -0
  111. package/dist/lib/ai-model/models/jev/locate.js.map +1 -0
  112. package/dist/lib/ai-model/models/jev/planning-action.js +69 -0
  113. package/dist/lib/ai-model/models/jev/planning-action.js.map +1 -0
  114. package/dist/lib/ai-model/models/jev/planning-context.js +72 -0
  115. package/dist/lib/ai-model/models/jev/planning-context.js.map +1 -0
  116. package/dist/lib/ai-model/models/jev/planning-decision.js +102 -0
  117. package/dist/lib/ai-model/models/jev/planning-decision.js.map +1 -0
  118. package/dist/lib/ai-model/models/jev/planning.js +19 -131
  119. package/dist/lib/ai-model/models/jev/planning.js.map +1 -1
  120. package/dist/lib/ai-model/models/{task-routing.js → model-fallback.js} +11 -11
  121. package/dist/lib/ai-model/models/model-fallback.js.map +1 -0
  122. package/dist/lib/ai-model/service-caller/call-ai.js +59 -29
  123. package/dist/lib/ai-model/service-caller/call-ai.js.map +1 -1
  124. package/dist/lib/ai-model/service-caller/codex/call-codex.js.map +1 -1
  125. package/dist/lib/ai-model/service-caller/index.js +6 -3
  126. package/dist/lib/ai-model/service-caller/model-call.js +2 -2
  127. package/dist/lib/ai-model/service-caller/model-call.js.map +1 -1
  128. package/dist/lib/ai-model/service-caller/openai/call-openai.js +4 -2
  129. package/dist/lib/ai-model/service-caller/openai/call-openai.js.map +1 -1
  130. package/dist/lib/ai-model/service-caller/openai/chat-completion/chat-completion.js.map +1 -1
  131. package/dist/lib/ai-model/service-caller/openai/openai-client.js.map +1 -1
  132. package/dist/lib/ai-model/service-caller/openai/responses/responses.js.map +1 -1
  133. package/dist/lib/ai-model/service-caller/openai/siwc/authorization.js +157 -0
  134. package/dist/lib/ai-model/service-caller/openai/siwc/authorization.js.map +1 -0
  135. package/dist/lib/ai-model/service-caller/openai/siwc/credential-storage.js +103 -0
  136. package/dist/lib/ai-model/service-caller/openai/siwc/credential-storage.js.map +1 -0
  137. package/dist/lib/ai-model/service-caller/openai/siwc/errors.js +85 -0
  138. package/dist/lib/ai-model/service-caller/openai/siwc/errors.js.map +1 -0
  139. package/dist/lib/ai-model/service-caller/openai/siwc/index.js +64 -0
  140. package/dist/lib/ai-model/service-caller/openai/siwc/index.js.map +1 -0
  141. package/dist/lib/ai-model/service-caller/openai/siwc/prepare-call.js +67 -0
  142. package/dist/lib/ai-model/service-caller/openai/siwc/prepare-call.js.map +1 -0
  143. package/dist/lib/ai-model/service-caller/openai/siwc/refresh.js +94 -0
  144. package/dist/lib/ai-model/service-caller/openai/siwc/refresh.js.map +1 -0
  145. package/dist/lib/ai-model/service-caller/openai/siwc/token-manager.js +85 -0
  146. package/dist/lib/ai-model/service-caller/openai/siwc/token-manager.js.map +1 -0
  147. package/dist/lib/ai-model/service-caller/system-one/call-system-one.js +103 -0
  148. package/dist/lib/ai-model/service-caller/system-one/call-system-one.js.map +1 -0
  149. package/dist/lib/ai-model/service-caller/system-one/index.js +42 -0
  150. package/dist/lib/ai-model/service-caller/system-one/index.js.map +1 -0
  151. package/dist/lib/ai-model/service-caller/system-one/prepare-system-one.js +78 -0
  152. package/dist/lib/ai-model/service-caller/system-one/prepare-system-one.js.map +1 -0
  153. package/dist/lib/ai-model/service-caller/system-one/schema.js +69 -0
  154. package/dist/lib/ai-model/service-caller/system-one/schema.js.map +1 -0
  155. package/dist/lib/ai-model/service-caller/system-one/utils.js +68 -0
  156. package/dist/lib/ai-model/service-caller/system-one/utils.js.map +1 -0
  157. package/dist/lib/ai-model/service-caller/utils.js +2 -2
  158. package/dist/lib/ai-model/service-caller/utils.js.map +1 -1
  159. package/dist/lib/ai-model/shared/model-locate-result/factory.js +7 -3
  160. package/dist/lib/ai-model/shared/model-locate-result/factory.js.map +1 -1
  161. package/dist/lib/ai-model/shared/model-locate-result/pixel-mapper.js +10 -4
  162. package/dist/lib/ai-model/shared/model-locate-result/pixel-mapper.js.map +1 -1
  163. package/dist/lib/ai-model/shared/model-locate-result/types.js.map +1 -1
  164. package/dist/lib/ai-model/shared/model-locate-result/validation.js +4 -0
  165. package/dist/lib/ai-model/shared/model-locate-result/validation.js.map +1 -1
  166. package/dist/lib/ai-model/workflows/grounding/locate.js +1 -1
  167. package/dist/lib/ai-model/workflows/grounding/locate.js.map +1 -1
  168. package/dist/lib/ai-model/workflows/grounding/section-locate.js +1 -1
  169. package/dist/lib/ai-model/workflows/grounding/section-locate.js.map +1 -1
  170. package/dist/lib/ai-model/workflows/insight/boolean.js +1 -1
  171. package/dist/lib/ai-model/workflows/insight/boolean.js.map +1 -1
  172. package/dist/lib/ai-model/workflows/insight/extraction.js +2 -2
  173. package/dist/lib/ai-model/workflows/insight/extraction.js.map +1 -1
  174. package/dist/lib/ai-model/workflows/planning/standard-planning.js +3 -2
  175. package/dist/lib/ai-model/workflows/planning/standard-planning.js.map +1 -1
  176. package/dist/lib/ai-model/workflows/recorder-generation/playwright.js +1 -1
  177. package/dist/lib/ai-model/workflows/recorder-generation/playwright.js.map +1 -1
  178. package/dist/lib/ai-model/workflows/recorder-generation/yaml.js +1 -1
  179. package/dist/lib/ai-model/workflows/recorder-generation/yaml.js.map +1 -1
  180. package/dist/lib/device/index.js +7 -0
  181. package/dist/lib/device/index.js.map +1 -1
  182. package/dist/lib/report-html-template.js +1 -1
  183. package/dist/lib/service/index.js +2 -1
  184. package/dist/lib/service/index.js.map +1 -1
  185. package/dist/lib/test-runner/engine/index.js +2 -2
  186. package/dist/lib/test-runner/node/index.js +2 -2
  187. package/dist/lib/types.js.map +1 -1
  188. package/dist/lib/utils.js +1 -1
  189. package/dist/types/agent/agent.d.ts.map +1 -1
  190. package/dist/types/agent/insight.d.ts +2 -2
  191. package/dist/types/agent/insight.d.ts.map +1 -1
  192. package/dist/types/agent/tasks.d.ts.map +1 -1
  193. package/dist/types/ai-model/connectivity/run-connectivity-test.d.ts.map +1 -1
  194. package/dist/types/ai-model/index.d.ts +4 -1
  195. package/dist/types/ai-model/index.d.ts.map +1 -1
  196. package/dist/types/ai-model/model-adapter/resolve.d.ts +2 -1
  197. package/dist/types/ai-model/model-adapter/resolve.d.ts.map +1 -1
  198. package/dist/types/ai-model/model-adapter/types.d.ts +8 -5
  199. package/dist/types/ai-model/model-adapter/types.d.ts.map +1 -1
  200. package/dist/types/ai-model/models/gpt.d.ts +2 -2
  201. package/dist/types/ai-model/models/jev/adapter.d.ts +4 -5
  202. package/dist/types/ai-model/models/jev/adapter.d.ts.map +1 -1
  203. package/dist/types/ai-model/models/jev/boolean.d.ts +3 -0
  204. package/dist/types/ai-model/models/jev/boolean.d.ts.map +1 -0
  205. package/dist/types/ai-model/models/jev/image.d.ts +11 -11
  206. package/dist/types/ai-model/models/jev/image.d.ts.map +1 -1
  207. package/dist/types/ai-model/models/jev/locate.d.ts +3 -0
  208. package/dist/types/ai-model/models/jev/locate.d.ts.map +1 -0
  209. package/dist/types/ai-model/models/jev/planning-action.d.ts +6 -0
  210. package/dist/types/ai-model/models/jev/planning-action.d.ts.map +1 -0
  211. package/dist/types/ai-model/models/jev/planning-context.d.ts +23 -0
  212. package/dist/types/ai-model/models/jev/planning-context.d.ts.map +1 -0
  213. package/dist/types/ai-model/models/jev/planning-decision.d.ts +35 -0
  214. package/dist/types/ai-model/models/jev/planning-decision.d.ts.map +1 -0
  215. package/dist/types/ai-model/models/jev/planning.d.ts.map +1 -1
  216. package/dist/types/ai-model/models/model-fallback.d.ts +6 -0
  217. package/dist/types/ai-model/models/model-fallback.d.ts.map +1 -0
  218. package/dist/types/ai-model/models/registry.d.ts +4 -3
  219. package/dist/types/ai-model/models/registry.d.ts.map +1 -1
  220. package/dist/types/ai-model/service-caller/call-ai.d.ts +3 -1
  221. package/dist/types/ai-model/service-caller/call-ai.d.ts.map +1 -1
  222. package/dist/types/ai-model/service-caller/codex/call-codex.d.ts +5 -3
  223. package/dist/types/ai-model/service-caller/codex/call-codex.d.ts.map +1 -1
  224. package/dist/types/ai-model/service-caller/index.d.ts +1 -1
  225. package/dist/types/ai-model/service-caller/index.d.ts.map +1 -1
  226. package/dist/types/ai-model/service-caller/model-call.d.ts +2 -2
  227. package/dist/types/ai-model/service-caller/model-call.d.ts.map +1 -1
  228. package/dist/types/ai-model/service-caller/openai/call-openai.d.ts +2 -2
  229. package/dist/types/ai-model/service-caller/openai/call-openai.d.ts.map +1 -1
  230. package/dist/types/ai-model/service-caller/openai/chat-completion/chat-completion.d.ts +4 -2
  231. package/dist/types/ai-model/service-caller/openai/chat-completion/chat-completion.d.ts.map +1 -1
  232. package/dist/types/ai-model/service-caller/openai/responses/responses.d.ts +4 -2
  233. package/dist/types/ai-model/service-caller/openai/responses/responses.d.ts.map +1 -1
  234. package/dist/types/ai-model/service-caller/openai/siwc/authorization.d.ts +42 -0
  235. package/dist/types/ai-model/service-caller/openai/siwc/authorization.d.ts.map +1 -0
  236. package/dist/types/ai-model/service-caller/openai/siwc/credential-storage.d.ts +21 -0
  237. package/dist/types/ai-model/service-caller/openai/siwc/credential-storage.d.ts.map +1 -0
  238. package/dist/types/ai-model/service-caller/openai/siwc/errors.d.ts +10 -0
  239. package/dist/types/ai-model/service-caller/openai/siwc/errors.d.ts.map +1 -0
  240. package/dist/types/ai-model/service-caller/openai/siwc/index.d.ts +7 -0
  241. package/dist/types/ai-model/service-caller/openai/siwc/index.d.ts.map +1 -0
  242. package/dist/types/ai-model/service-caller/openai/siwc/prepare-call.d.ts +8 -0
  243. package/dist/types/ai-model/service-caller/openai/siwc/prepare-call.d.ts.map +1 -0
  244. package/dist/types/ai-model/service-caller/openai/siwc/refresh.d.ts +19 -0
  245. package/dist/types/ai-model/service-caller/openai/siwc/refresh.d.ts.map +1 -0
  246. package/dist/types/ai-model/service-caller/openai/siwc/token-manager.d.ts +10 -0
  247. package/dist/types/ai-model/service-caller/openai/siwc/token-manager.d.ts.map +1 -0
  248. package/dist/types/ai-model/service-caller/system-one/call-system-one.d.ts +4 -0
  249. package/dist/types/ai-model/service-caller/system-one/call-system-one.d.ts.map +1 -0
  250. package/dist/types/ai-model/service-caller/system-one/index.d.ts +3 -0
  251. package/dist/types/ai-model/service-caller/system-one/index.d.ts.map +1 -0
  252. package/dist/types/ai-model/service-caller/system-one/prepare-system-one.d.ts +21 -0
  253. package/dist/types/ai-model/service-caller/system-one/prepare-system-one.d.ts.map +1 -0
  254. package/dist/types/ai-model/service-caller/{system-one.d.ts → system-one/schema.d.ts} +1 -22
  255. package/dist/types/ai-model/service-caller/system-one/schema.d.ts.map +1 -0
  256. package/dist/types/ai-model/service-caller/system-one/utils.d.ts +6 -0
  257. package/dist/types/ai-model/service-caller/system-one/utils.d.ts.map +1 -0
  258. package/dist/types/ai-model/service-caller/types.d.ts +0 -3
  259. package/dist/types/ai-model/service-caller/types.d.ts.map +1 -1
  260. package/dist/types/ai-model/service-caller/utils.d.ts +3 -3
  261. package/dist/types/ai-model/shared/model-locate-result/factory.d.ts.map +1 -1
  262. package/dist/types/ai-model/shared/model-locate-result/index.d.ts +1 -1
  263. package/dist/types/ai-model/shared/model-locate-result/index.d.ts.map +1 -1
  264. package/dist/types/ai-model/shared/model-locate-result/pixel-mapper.d.ts +3 -3
  265. package/dist/types/ai-model/shared/model-locate-result/pixel-mapper.d.ts.map +1 -1
  266. package/dist/types/ai-model/shared/model-locate-result/types.d.ts +4 -0
  267. package/dist/types/ai-model/shared/model-locate-result/types.d.ts.map +1 -1
  268. package/dist/types/ai-model/shared/model-locate-result/validation.d.ts.map +1 -1
  269. package/dist/types/ai-model/workflows/grounding/locate.d.ts.map +1 -1
  270. package/dist/types/ai-model/workflows/grounding/section-locate.d.ts.map +1 -1
  271. package/dist/types/ai-model/workflows/insight/boolean.d.ts.map +1 -1
  272. package/dist/types/ai-model/workflows/insight/extraction.d.ts +2 -0
  273. package/dist/types/ai-model/workflows/insight/extraction.d.ts.map +1 -1
  274. package/dist/types/ai-model/workflows/planning/standard-planning.d.ts.map +1 -1
  275. package/dist/types/ai-model/workflows/planning/types.d.ts +2 -1
  276. package/dist/types/ai-model/workflows/planning/types.d.ts.map +1 -1
  277. package/dist/types/ai-model/workflows/recorder-generation/playwright.d.ts.map +1 -1
  278. package/dist/types/ai-model/workflows/recorder-generation/yaml.d.ts.map +1 -1
  279. package/dist/types/device/index.d.ts +1 -0
  280. package/dist/types/device/index.d.ts.map +1 -1
  281. package/dist/types/service/index.d.ts +1 -1
  282. package/dist/types/service/index.d.ts.map +1 -1
  283. package/dist/types/types.d.ts +14 -3
  284. package/dist/types/types.d.ts.map +1 -1
  285. package/package.json +3 -2
  286. package/dist/es/ai-model/models/task-routing.mjs +0 -28
  287. package/dist/es/ai-model/models/task-routing.mjs.map +0 -1
  288. package/dist/es/ai-model/service-caller/system-one.mjs +0 -163
  289. package/dist/es/ai-model/service-caller/system-one.mjs.map +0 -1
  290. package/dist/lib/ai-model/models/task-routing.js.map +0 -1
  291. package/dist/lib/ai-model/service-caller/system-one.js +0 -206
  292. package/dist/lib/ai-model/service-caller/system-one.js.map +0 -1
  293. package/dist/types/ai-model/models/task-routing.d.ts +0 -6
  294. package/dist/types/ai-model/models/task-routing.d.ts.map +0 -1
  295. package/dist/types/ai-model/service-caller/system-one.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ai-model/connectivity/run-connectivity-test.js","sources":["webpack/runtime/compat_get_default_export","webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/connectivity/run-connectivity-test.ts"],"sourcesContent":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { ScreenshotItem } from '@/screenshot-item';\nimport Service from '@/service';\nimport type { UIContext } from '@/types';\nimport type { IModelConfig, TIntent } from '@midscene/shared/env';\nimport { getModelRuntime } from '../models';\nimport type { ModelRuntime } from '../models';\nimport { callAI } from '../service-caller';\nimport { systemOneResponseSchema } from '../service-caller/system-one';\nimport {\n CONNECTIVITY_FIXTURE_IMAGE,\n CONNECTIVITY_FIXTURE_SHOT_SIZE,\n} from './fixture';\n\nconst TEXT_EXPECTED_TOKEN = 'CONNECTIVITY_OK';\n\nexport interface ConnectivityCheckResultItem {\n name: 'text' | 'vision' | 'aiLocate';\n intent: TIntent;\n modelName: string;\n modelFamily?: string;\n passed: boolean;\n durationMs: number;\n requestCount: number;\n endpoints: string[];\n message: string;\n}\n\nexport interface ConnectivityTestResult {\n checks: ConnectivityCheckResultItem[];\n requestCount: number;\n passed: boolean;\n message?: string;\n}\n\nexport interface ConnectivityTestConfig {\n defaultModelConfig: IModelConfig;\n locateModelConfig?: IModelConfig;\n planningModelConfig: IModelConfig;\n insightModelConfig: IModelConfig;\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction hasValidCenter(value: unknown): boolean {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n isFiniteNumber(value[0]) &&\n isFiniteNumber(value[1])\n );\n}\n\nfunction buildFixtureContext(): UIContext {\n return {\n screenshot: ScreenshotItem.create(CONNECTIVITY_FIXTURE_IMAGE, Date.now()),\n shotSize: CONNECTIVITY_FIXTURE_SHOT_SIZE,\n shrunkShotToLogicalRatio: 1,\n };\n}\n\nfunction buildCheckResult(\n name: ConnectivityCheckResultItem['name'],\n modelRuntime: ModelRuntime,\n result: Omit<\n ConnectivityCheckResultItem,\n | 'name'\n | 'intent'\n | 'modelName'\n | 'modelFamily'\n | 'requestCount'\n | 'endpoints'\n >,\n): ConnectivityCheckResultItem {\n const { config } = modelRuntime;\n return {\n name,\n intent: config.intent,\n modelName: config.modelName,\n modelFamily: config.modelFamily,\n requestCount: 0,\n endpoints: [],\n ...result,\n };\n}\n\nfunction buildConnectivityModelRuntime(\n modelConfig: IModelConfig,\n): ModelRuntime {\n return getModelRuntime({ ...modelConfig, retryCount: 0 });\n}\n\nfunction formatConnectivityCheckName(\n check: ConnectivityCheckResultItem,\n): string {\n const checkName =\n check.name === 'aiLocate'\n ? 'AI locate check'\n : `${check.name[0]?.toUpperCase()}${check.name.slice(1)} check`;\n const modelLabel = check.modelName || check.intent;\n return `${checkName} - ${modelLabel} (${check.intent})`;\n}\n\nfunction buildConnectivityFailureMessage(\n checks: ConnectivityCheckResultItem[],\n): string {\n const failedChecks = checks.filter((item) => !item.passed);\n if (failedChecks.length === 0) {\n return 'Connectivity test failed, but no failed check details were generated.';\n }\n\n return failedChecks\n .map((item) => {\n const detail = item.message || 'Failed without details.';\n return `[${formatConnectivityCheckName(item)}]: ${detail}`;\n })\n .join('\\n');\n}\n\nasync function runTextConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const isJev = modelRuntime.config.modelFamily === 'jev';\n const result = await callAI(\n [\n {\n role: 'system',\n content: 'Reply with the exact token the user asks for.',\n },\n {\n role: 'user',\n content: `Return exactly ${TEXT_EXPECTED_TOKEN}`,\n },\n ],\n modelRuntime,\n isJev\n ? {\n systemOneRequest: {\n state: { token: TEXT_EXPECTED_TOKEN },\n questions: {\n result: {\n type: 'noul',\n instructions: `Does token equal ${TEXT_EXPECTED_TOKEN}?`,\n },\n },\n },\n }\n : undefined,\n );\n const content = result.content.trim();\n const answer = isJev\n ? systemOneResponseSchema.parse(JSON.parse(content)).answers.result\n : undefined;\n const passed = isJev\n ? answer?.type === 'noul' && answer.noul >= 0.5\n : content.includes(TEXT_EXPECTED_TOKEN);\n return buildCheckResult('text', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed ? '' : `Unexpected response: ${content}`,\n });\n } catch (error) {\n return buildCheckResult('text', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runVisionConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n if (modelRuntime.adapter.insight.booleanFn) {\n await new Service(buildFixtureContext()).extract(\n { Boolean: 'Does this screenshot show a form?' },\n modelRuntime,\n { screenshotIncluded: true },\n undefined,\n undefined,\n buildFixtureContext(),\n );\n } else {\n await callAI(\n [\n {\n role: 'user',\n content: [\n {\n type: 'text',\n text: 'What is the main content of this image ? It is a photo or a form ?',\n },\n {\n type: 'image',\n url: CONNECTIVITY_FIXTURE_IMAGE,\n },\n ],\n },\n ],\n modelRuntime,\n );\n }\n return buildCheckResult('vision', modelRuntime, {\n passed: true,\n durationMs: Date.now() - startTime,\n message: '',\n });\n } catch (error) {\n return buildCheckResult('vision', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runAiLocateConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const context = buildFixtureContext();\n const service = new Service(context);\n const locateResult = await service.locate(\n { prompt: 'the main todo input box' },\n {},\n modelRuntime,\n );\n const center = locateResult.element?.center;\n const passed = hasValidCenter(center);\n return buildCheckResult('aiLocate', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed\n ? ''\n : `Invalid locate result: ${JSON.stringify({\n center,\n })}`,\n });\n } catch (error) {\n return buildCheckResult('aiLocate', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport async function runConnectivityTest(\n config: ConnectivityTestConfig,\n): Promise<ConnectivityTestResult> {\n const runCheck = async (\n modelConfig: IModelConfig,\n check: (runtime: ModelRuntime) => Promise<ConnectivityCheckResultItem>,\n ) => {\n const runtime = buildConnectivityModelRuntime(modelConfig);\n let requestCount = 0;\n const endpoints = new Set<string>();\n runtime.onRequest = (endpoint) => {\n requestCount += 1;\n if (endpoint) endpoints.add(endpoint);\n };\n const result = await check(runtime);\n return { ...result, requestCount, endpoints: [...endpoints] };\n };\n const checks = await Promise.all([\n runCheck(config.planningModelConfig, runTextConnectivityCheck),\n runCheck(config.insightModelConfig, runVisionConnectivityCheck),\n runCheck(\n config.locateModelConfig ?? config.defaultModelConfig,\n runAiLocateConnectivityCheck,\n ),\n runCheck(config.defaultModelConfig, runTextConnectivityCheck),\n ]);\n\n const passed = checks.every((item) => item.passed);\n return {\n checks,\n requestCount: checks.reduce(\n (total, check) => total + check.requestCount,\n 0,\n ),\n passed,\n message: passed ? undefined : buildConnectivityFailureMessage(checks),\n };\n}\n"],"names":["__webpack_require__","module","getter","definition","key","Object","obj","prop","Symbol","TEXT_EXPECTED_TOKEN","isFiniteNumber","value","Number","hasValidCenter","Array","buildFixtureContext","ScreenshotItem","CONNECTIVITY_FIXTURE_IMAGE","Date","CONNECTIVITY_FIXTURE_SHOT_SIZE","buildCheckResult","name","modelRuntime","result","config","buildConnectivityModelRuntime","modelConfig","getModelRuntime","formatConnectivityCheckName","check","checkName","modelLabel","buildConnectivityFailureMessage","checks","failedChecks","item","detail","runTextConnectivityCheck","startTime","isJev","callAI","undefined","content","answer","systemOneResponseSchema","JSON","passed","error","Error","String","runVisionConnectivityCheck","Service","runAiLocateConnectivityCheck","context","service","locateResult","center","runConnectivityTest","runCheck","runtime","requestCount","endpoints","Set","endpoint","Promise","total"],"mappings":"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"}
1
+ {"version":3,"file":"ai-model/connectivity/run-connectivity-test.js","sources":["webpack/runtime/compat_get_default_export","webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/connectivity/run-connectivity-test.ts"],"sourcesContent":["// getDefaultExport function for compatibility with non-ESM modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};\n","__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { ScreenshotItem } from '@/screenshot-item';\nimport Service from '@/service';\nimport type { UIContext } from '@/types';\nimport type { IModelConfig, TIntent } from '@midscene/shared/env';\nimport { getModelRuntime } from '../models';\nimport type { ModelRuntime } from '../models';\nimport { callGenerativeAI, callSystemOneAI } from '../service-caller';\nimport { systemOneResponseSchema } from '../service-caller/system-one/schema';\nimport {\n CONNECTIVITY_FIXTURE_IMAGE,\n CONNECTIVITY_FIXTURE_SHOT_SIZE,\n} from './fixture';\n\nconst TEXT_EXPECTED_TOKEN = 'CONNECTIVITY_OK';\n\nexport interface ConnectivityCheckResultItem {\n name: 'text' | 'vision' | 'aiLocate';\n intent: TIntent;\n modelName: string;\n modelFamily?: string;\n passed: boolean;\n durationMs: number;\n requestCount: number;\n endpoints: string[];\n message: string;\n}\n\nexport interface ConnectivityTestResult {\n checks: ConnectivityCheckResultItem[];\n requestCount: number;\n passed: boolean;\n message?: string;\n}\n\nexport interface ConnectivityTestConfig {\n defaultModelConfig: IModelConfig;\n locateModelConfig?: IModelConfig;\n planningModelConfig: IModelConfig;\n insightModelConfig: IModelConfig;\n}\n\nfunction isFiniteNumber(value: unknown): value is number {\n return typeof value === 'number' && Number.isFinite(value);\n}\n\nfunction hasValidCenter(value: unknown): boolean {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n isFiniteNumber(value[0]) &&\n isFiniteNumber(value[1])\n );\n}\n\nfunction buildFixtureContext(): UIContext {\n return {\n screenshot: ScreenshotItem.create(CONNECTIVITY_FIXTURE_IMAGE, Date.now()),\n shotSize: CONNECTIVITY_FIXTURE_SHOT_SIZE,\n shrunkShotToLogicalRatio: 1,\n };\n}\n\nfunction buildCheckResult(\n name: ConnectivityCheckResultItem['name'],\n modelRuntime: ModelRuntime,\n result: Omit<\n ConnectivityCheckResultItem,\n | 'name'\n | 'intent'\n | 'modelName'\n | 'modelFamily'\n | 'requestCount'\n | 'endpoints'\n >,\n): ConnectivityCheckResultItem {\n const { config } = modelRuntime;\n return {\n name,\n intent: config.intent,\n modelName: config.modelName,\n modelFamily: config.modelFamily,\n requestCount: 0,\n endpoints: [],\n ...result,\n };\n}\n\nfunction buildConnectivityModelRuntime(\n modelConfig: IModelConfig,\n): ModelRuntime {\n return getModelRuntime({ ...modelConfig, retryCount: 0 });\n}\n\nfunction formatConnectivityCheckName(\n check: ConnectivityCheckResultItem,\n): string {\n const checkName =\n check.name === 'aiLocate'\n ? 'AI locate check'\n : `${check.name[0]?.toUpperCase()}${check.name.slice(1)} check`;\n const modelLabel = check.modelName || check.intent;\n return `${checkName} - ${modelLabel} (${check.intent})`;\n}\n\nfunction buildConnectivityFailureMessage(\n checks: ConnectivityCheckResultItem[],\n): string {\n const failedChecks = checks.filter((item) => !item.passed);\n if (failedChecks.length === 0) {\n return 'Connectivity test failed, but no failed check details were generated.';\n }\n\n return failedChecks\n .map((item) => {\n const detail = item.message || 'Failed without details.';\n return `[${formatConnectivityCheckName(item)}]: ${detail}`;\n })\n .join('\\n');\n}\n\nasync function runTextConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const isJev = modelRuntime.config.modelFamily === 'jev';\n const result = await (isJev\n ? callSystemOneAI(\n {\n state: { token: TEXT_EXPECTED_TOKEN },\n questions: {\n result: {\n type: 'noul',\n instructions: `Does token equal ${TEXT_EXPECTED_TOKEN}?`,\n },\n },\n },\n modelRuntime,\n )\n : callGenerativeAI(\n [\n {\n role: 'system',\n content: 'Reply with the exact token the user asks for.',\n },\n {\n role: 'user',\n content: `Return exactly ${TEXT_EXPECTED_TOKEN}`,\n },\n ],\n modelRuntime,\n ));\n const content = result.content.trim();\n const answer = isJev\n ? systemOneResponseSchema.parse(JSON.parse(content)).answers.result\n : undefined;\n const passed = isJev\n ? answer?.type === 'noul' && answer.noul >= 0.5\n : content.includes(TEXT_EXPECTED_TOKEN);\n return buildCheckResult('text', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed ? '' : `Unexpected response: ${content}`,\n });\n } catch (error) {\n return buildCheckResult('text', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runVisionConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n if (modelRuntime.config.modelFamily === 'jev') {\n await callSystemOneAI(\n {\n state: {},\n images: { screenshot: CONNECTIVITY_FIXTURE_IMAGE },\n questions: {\n result: {\n type: 'noul',\n instructions: 'Does `screenshot` show a form?',\n },\n },\n },\n modelRuntime,\n );\n } else {\n await callGenerativeAI(\n [\n {\n role: 'user',\n content: [\n {\n type: 'text',\n text: 'What is the main content of this image ? It is a photo or a form ?',\n },\n {\n type: 'image',\n url: CONNECTIVITY_FIXTURE_IMAGE,\n },\n ],\n },\n ],\n modelRuntime,\n );\n }\n return buildCheckResult('vision', modelRuntime, {\n passed: true,\n durationMs: Date.now() - startTime,\n message: '',\n });\n } catch (error) {\n return buildCheckResult('vision', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nasync function runAiLocateConnectivityCheck(\n modelRuntime: ModelRuntime,\n): Promise<ConnectivityCheckResultItem> {\n const startTime = Date.now();\n try {\n const context = buildFixtureContext();\n const service = new Service(context);\n const locateResult = await service.locate(\n { prompt: 'the main todo input box' },\n {},\n modelRuntime,\n );\n const center = locateResult.element?.center;\n const passed = hasValidCenter(center);\n return buildCheckResult('aiLocate', modelRuntime, {\n passed,\n durationMs: Date.now() - startTime,\n message: passed\n ? ''\n : `Invalid locate result: ${JSON.stringify({\n center,\n })}`,\n });\n } catch (error) {\n return buildCheckResult('aiLocate', modelRuntime, {\n passed: false,\n durationMs: Date.now() - startTime,\n message: error instanceof Error ? error.message : String(error),\n });\n }\n}\n\nexport async function runConnectivityTest(\n config: ConnectivityTestConfig,\n): Promise<ConnectivityTestResult> {\n const runCheck = async (\n modelConfig: IModelConfig,\n check: (runtime: ModelRuntime) => Promise<ConnectivityCheckResultItem>,\n ) => {\n const runtime = buildConnectivityModelRuntime(modelConfig);\n let requestCount = 0;\n const endpoints = new Set<string>();\n runtime.onRequest = (endpoint) => {\n requestCount += 1;\n if (endpoint) endpoints.add(endpoint);\n };\n const result = await check(runtime);\n return { ...result, requestCount, endpoints: [...endpoints] };\n };\n const checks = await Promise.all([\n runCheck(config.planningModelConfig, runTextConnectivityCheck),\n runCheck(config.insightModelConfig, runVisionConnectivityCheck),\n runCheck(\n config.locateModelConfig ?? config.defaultModelConfig,\n runAiLocateConnectivityCheck,\n ),\n runCheck(config.defaultModelConfig, runTextConnectivityCheck),\n ]);\n\n const passed = checks.every((item) => item.passed);\n return {\n checks,\n requestCount: checks.reduce(\n (total, check) => total + check.requestCount,\n 0,\n ),\n passed,\n message: passed ? undefined : buildConnectivityFailureMessage(checks),\n };\n}\n"],"names":["__webpack_require__","module","getter","definition","key","Object","obj","prop","Symbol","TEXT_EXPECTED_TOKEN","isFiniteNumber","value","Number","hasValidCenter","Array","buildFixtureContext","ScreenshotItem","CONNECTIVITY_FIXTURE_IMAGE","Date","CONNECTIVITY_FIXTURE_SHOT_SIZE","buildCheckResult","name","modelRuntime","result","config","buildConnectivityModelRuntime","modelConfig","getModelRuntime","formatConnectivityCheckName","check","checkName","modelLabel","buildConnectivityFailureMessage","checks","failedChecks","item","detail","runTextConnectivityCheck","startTime","isJev","callSystemOneAI","callGenerativeAI","content","answer","systemOneResponseSchema","JSON","undefined","passed","error","Error","String","runVisionConnectivityCheck","runAiLocateConnectivityCheck","context","service","Service","locateResult","center","runConnectivityTest","runCheck","runtime","requestCount","endpoints","Set","endpoint","Promise","total"],"mappings":"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"}
@@ -32,6 +32,7 @@ __webpack_require__.d(__webpack_exports__, {
32
32
  runConnectivityTest: ()=>external_connectivity_index_js_namespaceObject.runConnectivityTest,
33
33
  parseActionParam: ()=>external_common_js_namespaceObject.parseActionParam,
34
34
  createRecorderMarkdownReplayPrompt: ()=>recorder_generation_index_js_namespaceObject.createRecorderMarkdownReplayPrompt,
35
+ parseSiwcCallback: ()=>siwc_index_js_namespaceObject.parseSiwcCallback,
35
36
  convertRecordLogIntoMarkdown: ()=>recorder_generation_index_js_namespaceObject.convertRecordLogIntoMarkdown,
36
37
  AiExtractElementInfo: ()=>insight_index_js_namespaceObject.AiExtractElementInfo,
37
38
  callAIWithStringResponse: ()=>index_js_namespaceObject.callAIWithStringResponse,
@@ -45,25 +46,35 @@ __webpack_require__.d(__webpack_exports__, {
45
46
  PointSchema: ()=>external_common_js_namespaceObject.PointSchema,
46
47
  AIResponseParseError: ()=>index_js_namespaceObject.AIResponseParseError,
47
48
  RectSchema: ()=>external_common_js_namespaceObject.RectSchema,
49
+ callGenerativeAI: ()=>index_js_namespaceObject.callGenerativeAI,
50
+ refreshSiwcCredentials: ()=>siwc_index_js_namespaceObject.refreshSiwcCredentials,
51
+ tokenResponseError: ()=>errors_js_namespaceObject.tokenResponseError,
48
52
  standardPlan: ()=>planning_index_js_namespaceObject.standardPlan,
49
53
  generateRecorderYamlTest: ()=>recorder_generation_index_js_namespaceObject.generateRecorderYamlTest,
50
- callAI: ()=>index_js_namespaceObject.callAI,
51
54
  AiLocateElement: ()=>grounding_index_js_namespaceObject.AiLocateElement,
52
55
  getModelRuntime: ()=>external_models_index_js_namespaceObject.getModelRuntime,
56
+ SIWC_AUTH_STORAGE_KEY: ()=>siwc_index_js_namespaceObject.SIWC_AUTH_STORAGE_KEY,
57
+ exchangeSiwcCode: ()=>siwc_index_js_namespaceObject.exchangeSiwcCode,
53
58
  generateRecorderMarkdownReplay: ()=>recorder_generation_index_js_namespaceObject.generateRecorderMarkdownReplay,
59
+ createSiwcAuthorization: ()=>siwc_index_js_namespaceObject.createSiwcAuthorization,
54
60
  findAllMidsceneLocatorField: ()=>external_common_js_namespaceObject.findAllMidsceneLocatorField,
61
+ callSystemOneAI: ()=>index_js_namespaceObject.callSystemOneAI,
55
62
  generatePlaywrightTestStream: ()=>recorder_generation_index_js_namespaceObject.generatePlaywrightTestStream,
63
+ withSiwcStage: ()=>errors_js_namespaceObject.withSiwcStage,
56
64
  AiLocateSection: ()=>grounding_index_js_namespaceObject.AiLocateSection,
57
- TMultimodalPromptSchema: ()=>external_common_js_namespaceObject.TMultimodalPromptSchema
65
+ TMultimodalPromptSchema: ()=>external_common_js_namespaceObject.TMultimodalPromptSchema,
66
+ SiwcError: ()=>errors_js_namespaceObject.SiwcError
58
67
  });
59
68
  const index_js_namespaceObject = require("./service-caller/index.js");
60
69
  const external_models_index_js_namespaceObject = require("./models/index.js");
70
+ const siwc_index_js_namespaceObject = require("./service-caller/openai/siwc/index.js");
61
71
  const external_connectivity_index_js_namespaceObject = require("./connectivity/index.js");
62
72
  const recorder_generation_index_js_namespaceObject = require("./workflows/recorder-generation/index.js");
63
73
  const grounding_index_js_namespaceObject = require("./workflows/grounding/index.js");
64
74
  const insight_index_js_namespaceObject = require("./workflows/insight/index.js");
65
75
  const planning_index_js_namespaceObject = require("./workflows/planning/index.js");
66
76
  const external_common_js_namespaceObject = require("../common.js");
77
+ const errors_js_namespaceObject = require("./service-caller/openai/siwc/errors.js");
67
78
  exports.AIResponseParseError = __webpack_exports__.AIResponseParseError;
68
79
  exports.AiExtractElementInfo = __webpack_exports__.AiExtractElementInfo;
69
80
  exports.AiJudgeOrderSensitive = __webpack_exports__.AiJudgeOrderSensitive;
@@ -72,15 +83,20 @@ exports.AiLocateSection = __webpack_exports__.AiLocateSection;
72
83
  exports.ConversationHistory = __webpack_exports__.ConversationHistory;
73
84
  exports.PointSchema = __webpack_exports__.PointSchema;
74
85
  exports.RectSchema = __webpack_exports__.RectSchema;
86
+ exports.SIWC_AUTH_STORAGE_KEY = __webpack_exports__.SIWC_AUTH_STORAGE_KEY;
87
+ exports.SiwcError = __webpack_exports__.SiwcError;
75
88
  exports.SizeSchema = __webpack_exports__.SizeSchema;
76
89
  exports.TMultimodalPromptSchema = __webpack_exports__.TMultimodalPromptSchema;
77
90
  exports.TUserPromptSchema = __webpack_exports__.TUserPromptSchema;
78
- exports.callAI = __webpack_exports__.callAI;
79
91
  exports.callAIWithObjectResponse = __webpack_exports__.callAIWithObjectResponse;
80
92
  exports.callAIWithStringResponse = __webpack_exports__.callAIWithStringResponse;
93
+ exports.callGenerativeAI = __webpack_exports__.callGenerativeAI;
94
+ exports.callSystemOneAI = __webpack_exports__.callSystemOneAI;
81
95
  exports.convertRecordLogIntoMarkdown = __webpack_exports__.convertRecordLogIntoMarkdown;
82
96
  exports.createRecorderMarkdownReplayPrompt = __webpack_exports__.createRecorderMarkdownReplayPrompt;
97
+ exports.createSiwcAuthorization = __webpack_exports__.createSiwcAuthorization;
83
98
  exports.dumpActionParam = __webpack_exports__.dumpActionParam;
99
+ exports.exchangeSiwcCode = __webpack_exports__.exchangeSiwcCode;
84
100
  exports.findAllMidsceneLocatorField = __webpack_exports__.findAllMidsceneLocatorField;
85
101
  exports.generatePlaywrightTest = __webpack_exports__.generatePlaywrightTest;
86
102
  exports.generatePlaywrightTestStream = __webpack_exports__.generatePlaywrightTestStream;
@@ -93,8 +109,12 @@ exports.generateYamlTestStream = __webpack_exports__.generateYamlTestStream;
93
109
  exports.getMidsceneLocationSchema = __webpack_exports__.getMidsceneLocationSchema;
94
110
  exports.getModelRuntime = __webpack_exports__.getModelRuntime;
95
111
  exports.parseActionParam = __webpack_exports__.parseActionParam;
112
+ exports.parseSiwcCallback = __webpack_exports__.parseSiwcCallback;
113
+ exports.refreshSiwcCredentials = __webpack_exports__.refreshSiwcCredentials;
96
114
  exports.runConnectivityTest = __webpack_exports__.runConnectivityTest;
97
115
  exports.standardPlan = __webpack_exports__.standardPlan;
116
+ exports.tokenResponseError = __webpack_exports__.tokenResponseError;
117
+ exports.withSiwcStage = __webpack_exports__.withSiwcStage;
98
118
  for(var __rspack_i in __webpack_exports__)if (-1 === [
99
119
  "AIResponseParseError",
100
120
  "AiExtractElementInfo",
@@ -104,15 +124,20 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
104
124
  "ConversationHistory",
105
125
  "PointSchema",
106
126
  "RectSchema",
127
+ "SIWC_AUTH_STORAGE_KEY",
128
+ "SiwcError",
107
129
  "SizeSchema",
108
130
  "TMultimodalPromptSchema",
109
131
  "TUserPromptSchema",
110
- "callAI",
111
132
  "callAIWithObjectResponse",
112
133
  "callAIWithStringResponse",
134
+ "callGenerativeAI",
135
+ "callSystemOneAI",
113
136
  "convertRecordLogIntoMarkdown",
114
137
  "createRecorderMarkdownReplayPrompt",
138
+ "createSiwcAuthorization",
115
139
  "dumpActionParam",
140
+ "exchangeSiwcCode",
116
141
  "findAllMidsceneLocatorField",
117
142
  "generatePlaywrightTest",
118
143
  "generatePlaywrightTestStream",
@@ -125,8 +150,12 @@ for(var __rspack_i in __webpack_exports__)if (-1 === [
125
150
  "getMidsceneLocationSchema",
126
151
  "getModelRuntime",
127
152
  "parseActionParam",
153
+ "parseSiwcCallback",
154
+ "refreshSiwcCredentials",
128
155
  "runConnectivityTest",
129
- "standardPlan"
156
+ "standardPlan",
157
+ "tokenResponseError",
158
+ "withSiwcStage"
130
159
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
131
160
  Object.defineProperty(exports, '__esModule', {
132
161
  value: true
@@ -56,7 +56,8 @@ function resolveImagePreprocess(imagePreprocess) {
56
56
  }
57
57
  class ResolvedModelAdapter {
58
58
  constructor(config, modelFamily){
59
- _define_property(this, "supportedTasks", void 0);
59
+ _define_property(this, "modelType", void 0);
60
+ _define_property(this, "supportedTaskTypes", void 0);
60
61
  _define_property(this, "supportedProtocols", void 0);
61
62
  _define_property(this, "jsonParser", void 0);
62
63
  _define_property(this, "chatCompletion", void 0);
@@ -67,7 +68,8 @@ class ResolvedModelAdapter {
67
68
  _define_property(this, "insight", void 0);
68
69
  _define_property(this, "planning", void 0);
69
70
  _define_property(this, "locate", void 0);
70
- this.supportedTasks = config.supportedTasks;
71
+ this.modelType = config.modelType ?? 'generative';
72
+ this.supportedTaskTypes = config.supportedTaskTypes;
71
73
  this.supportedProtocols = config.supportedProtocols ?? [
72
74
  'openai-chat'
73
75
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"ai-model/model-adapter/resolve.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/model-adapter/resolve.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { parseModelResponseJson } from '../shared/json';\nimport { resolveChatCompletion } from './chat-completion';\nimport { buildDefaultCodexAppServerParams } from './codex-app-server';\nimport { resolveInsight } from './insight';\nimport type { InsightAdapter } from './insight-protocol';\nimport { resolveLocate } from './locate';\nimport { resolveCustomPlanningDefinition, resolvePlanning } from './planning';\nimport { resolveResponses } from './responses';\nimport type {\n BuildCodexAppServerParams,\n ChatCompletionAdapter,\n ImagePreprocessPolicy,\n JsonParser,\n LocateAdapter,\n ModelAdapter,\n ModelAdapterDefinition,\n PlanningAdapter,\n ResolveImageDetail,\n ResponsesAdapter,\n} from './types';\n\nconst defaultImageDetail: ResolveImageDetail = ({ imageDetail }) =>\n imageDetail ?? 'high';\n\nfunction resolveJsonParser(\n jsonParser: ModelAdapterDefinition['jsonParser'],\n): JsonParser {\n if (!jsonParser || jsonParser === 'lenient-json') {\n return parseModelResponseJson;\n }\n\n if (typeof jsonParser === 'function') {\n return jsonParser;\n }\n\n throw new Error(`Unknown json parser preset: ${jsonParser}`);\n}\n\nfunction resolveImagePreprocess(\n imagePreprocess: ModelAdapterDefinition['imagePreprocess'],\n): ImagePreprocessPolicy {\n return {\n padBlockSize: imagePreprocess?.padBlockSize,\n };\n}\n\nexport class ResolvedModelAdapter implements ModelAdapter {\n readonly supportedTasks: ModelAdapter['supportedTasks'];\n readonly supportedProtocols: ModelAdapter['supportedProtocols'];\n readonly jsonParser: JsonParser;\n readonly chatCompletion: ChatCompletionAdapter;\n readonly resolveImageDetail: ResolveImageDetail;\n readonly responses: ResponsesAdapter;\n readonly buildCodexAppServerParams: BuildCodexAppServerParams;\n readonly imagePreprocess: ImagePreprocessPolicy;\n readonly insight: InsightAdapter;\n readonly planning: PlanningAdapter;\n readonly locate: LocateAdapter;\n\n constructor(config: ModelAdapterDefinition, modelFamily: string) {\n this.supportedTasks = config.supportedTasks;\n this.supportedProtocols = config.supportedProtocols ?? ['openai-chat'];\n this.jsonParser = resolveJsonParser(config.jsonParser);\n this.chatCompletion = resolveChatCompletion(config.chatCompletion);\n this.resolveImageDetail = config.resolveImageDetail ?? defaultImageDetail;\n this.responses = resolveResponses(config.responses);\n this.buildCodexAppServerParams =\n config.buildCodexAppServerParams ?? buildDefaultCodexAppServerParams;\n this.imagePreprocess = resolveImagePreprocess(config.imagePreprocess);\n this.insight = resolveInsight(config.insight, {\n jsonParser: this.jsonParser,\n });\n const customPlanner =\n config.planning?.kind === 'custom' ? config.planning.planner : undefined;\n const resolvedCustomPlanner = customPlanner\n ? resolveCustomPlanningDefinition(customPlanner)\n : undefined;\n this.locate = resolveLocate(config.locate, resolvedCustomPlanner, {\n jsonParser: this.jsonParser,\n });\n this.planning = resolvePlanning(\n config.planning,\n resolvedCustomPlanner,\n { jsonParser: this.jsonParser },\n this.locate.kind === 'standard'\n ? this.locate.element.resultCodec\n : undefined,\n );\n }\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","defaultImageDetail","imageDetail","resolveJsonParser","jsonParser","parseModelResponseJson","Error","resolveImagePreprocess","imagePreprocess","ResolvedModelAdapter","config","modelFamily","resolveChatCompletion","resolveResponses","buildDefaultCodexAppServerParams","resolveInsight","customPlanner","undefined","resolvedCustomPlanner","resolveCustomPlanningDefinition","resolveLocate","resolvePlanning"],"mappings":"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"}
1
+ {"version":3,"file":"ai-model/model-adapter/resolve.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/model-adapter/resolve.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { parseModelResponseJson } from '../shared/json';\nimport { resolveChatCompletion } from './chat-completion';\nimport { buildDefaultCodexAppServerParams } from './codex-app-server';\nimport { resolveInsight } from './insight';\nimport type { InsightAdapter } from './insight-protocol';\nimport { resolveLocate } from './locate';\nimport { resolveCustomPlanningDefinition, resolvePlanning } from './planning';\nimport { resolveResponses } from './responses';\nimport type {\n BuildCodexAppServerParams,\n ChatCompletionAdapter,\n ImagePreprocessPolicy,\n JsonParser,\n LocateAdapter,\n ModelAdapter,\n ModelAdapterDefinition,\n PlanningAdapter,\n ResolveImageDetail,\n ResponsesAdapter,\n} from './types';\n\nconst defaultImageDetail: ResolveImageDetail = ({ imageDetail }) =>\n imageDetail ?? 'high';\n\nfunction resolveJsonParser(\n jsonParser: ModelAdapterDefinition['jsonParser'],\n): JsonParser {\n if (!jsonParser || jsonParser === 'lenient-json') {\n return parseModelResponseJson;\n }\n\n if (typeof jsonParser === 'function') {\n return jsonParser;\n }\n\n throw new Error(`Unknown json parser preset: ${jsonParser}`);\n}\n\nfunction resolveImagePreprocess(\n imagePreprocess: ModelAdapterDefinition['imagePreprocess'],\n): ImagePreprocessPolicy {\n return {\n padBlockSize: imagePreprocess?.padBlockSize,\n };\n}\n\nexport class ResolvedModelAdapter implements ModelAdapter {\n readonly modelType: ModelAdapter['modelType'];\n readonly supportedTaskTypes: ModelAdapter['supportedTaskTypes'];\n readonly supportedProtocols: ModelAdapter['supportedProtocols'];\n readonly jsonParser: JsonParser;\n readonly chatCompletion: ChatCompletionAdapter;\n readonly resolveImageDetail: ResolveImageDetail;\n readonly responses: ResponsesAdapter;\n readonly buildCodexAppServerParams: BuildCodexAppServerParams;\n readonly imagePreprocess: ImagePreprocessPolicy;\n readonly insight: InsightAdapter;\n readonly planning: PlanningAdapter;\n readonly locate: LocateAdapter;\n\n constructor(config: ModelAdapterDefinition, modelFamily: string) {\n this.modelType = config.modelType ?? 'generative';\n this.supportedTaskTypes = config.supportedTaskTypes;\n this.supportedProtocols = config.supportedProtocols ?? ['openai-chat'];\n this.jsonParser = resolveJsonParser(config.jsonParser);\n this.chatCompletion = resolveChatCompletion(config.chatCompletion);\n this.resolveImageDetail = config.resolveImageDetail ?? defaultImageDetail;\n this.responses = resolveResponses(config.responses);\n this.buildCodexAppServerParams =\n config.buildCodexAppServerParams ?? buildDefaultCodexAppServerParams;\n this.imagePreprocess = resolveImagePreprocess(config.imagePreprocess);\n this.insight = resolveInsight(config.insight, {\n jsonParser: this.jsonParser,\n });\n const customPlanner =\n config.planning?.kind === 'custom' ? config.planning.planner : undefined;\n const resolvedCustomPlanner = customPlanner\n ? resolveCustomPlanningDefinition(customPlanner)\n : undefined;\n this.locate = resolveLocate(config.locate, resolvedCustomPlanner, {\n jsonParser: this.jsonParser,\n });\n this.planning = resolvePlanning(\n config.planning,\n resolvedCustomPlanner,\n { jsonParser: this.jsonParser },\n this.locate.kind === 'standard'\n ? this.locate.element.resultCodec\n : undefined,\n );\n }\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","defaultImageDetail","imageDetail","resolveJsonParser","jsonParser","parseModelResponseJson","Error","resolveImagePreprocess","imagePreprocess","ResolvedModelAdapter","config","modelFamily","resolveChatCompletion","resolveResponses","buildDefaultCodexAppServerParams","resolveInsight","customPlanner","undefined","resolvedCustomPlanner","resolveCustomPlanningDefinition","resolveLocate","resolvePlanning"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;;;;;;;;;;;;;;ACeA,MAAMI,qBAAyC,CAAC,EAAEC,WAAW,EAAE,GAC7DA,eAAe;AAEjB,SAASC,kBACPC,UAAgD;IAEhD,IAAI,CAACA,cAAcA,AAAe,mBAAfA,YACjB,OAAOC,wBAAAA,sBAAsBA;IAG/B,IAAI,AAAsB,cAAtB,OAAOD,YACT,OAAOA;IAGT,MAAM,IAAIE,MAAM,CAAC,4BAA4B,EAAEF,YAAY;AAC7D;AAEA,SAASG,uBACPC,eAA0D;IAE1D,OAAO;QACL,cAAcA,iBAAiB;IACjC;AACF;AAEO,MAAMC;IAcX,YAAYC,MAA8B,EAAEC,WAAmB,CAAE;QAbjE,uBAAS,aAAT;QACA,uBAAS,sBAAT;QACA,uBAAS,sBAAT;QACA,uBAAS,cAAT;QACA,uBAAS,kBAAT;QACA,uBAAS,sBAAT;QACA,uBAAS,aAAT;QACA,uBAAS,6BAAT;QACA,uBAAS,mBAAT;QACA,uBAAS,WAAT;QACA,uBAAS,YAAT;QACA,uBAAS,UAAT;QAGE,IAAI,CAAC,SAAS,GAAGD,OAAO,SAAS,IAAI;QACrC,IAAI,CAAC,kBAAkB,GAAGA,OAAO,kBAAkB;QACnD,IAAI,CAAC,kBAAkB,GAAGA,OAAO,kBAAkB,IAAI;YAAC;SAAc;QACtE,IAAI,CAAC,UAAU,GAAGP,kBAAkBO,OAAO,UAAU;QACrD,IAAI,CAAC,cAAc,GAAGE,AAAAA,IAAAA,4CAAAA,qBAAAA,AAAAA,EAAsBF,OAAO,cAAc;QACjE,IAAI,CAAC,kBAAkB,GAAGA,OAAO,kBAAkB,IAAIT;QACvD,IAAI,CAAC,SAAS,GAAGY,AAAAA,IAAAA,sCAAAA,gBAAAA,AAAAA,EAAiBH,OAAO,SAAS;QAClD,IAAI,CAAC,yBAAyB,GAC5BA,OAAO,yBAAyB,IAAII,6CAAAA,gCAAgCA;QACtE,IAAI,CAAC,eAAe,GAAGP,uBAAuBG,OAAO,eAAe;QACpE,IAAI,CAAC,OAAO,GAAGK,AAAAA,IAAAA,oCAAAA,cAAAA,AAAAA,EAAeL,OAAO,OAAO,EAAE;YAC5C,YAAY,IAAI,CAAC,UAAU;QAC7B;QACA,MAAMM,gBACJN,OAAO,QAAQ,EAAE,SAAS,WAAWA,OAAO,QAAQ,CAAC,OAAO,GAAGO;QACjE,MAAMC,wBAAwBF,gBAC1BG,AAAAA,IAAAA,qCAAAA,+BAAAA,AAAAA,EAAgCH,iBAChCC;QACJ,IAAI,CAAC,MAAM,GAAGG,AAAAA,IAAAA,mCAAAA,aAAAA,AAAAA,EAAcV,OAAO,MAAM,EAAEQ,uBAAuB;YAChE,YAAY,IAAI,CAAC,UAAU;QAC7B;QACA,IAAI,CAAC,QAAQ,GAAGG,AAAAA,IAAAA,qCAAAA,eAAAA,AAAAA,EACdX,OAAO,QAAQ,EACfQ,uBACA;YAAE,YAAY,IAAI,CAAC,UAAU;QAAC,GAC9B,AAAqB,eAArB,IAAI,CAAC,MAAM,CAAC,IAAI,GACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,GAC/BD;IAER;AACF"}
@@ -26,117 +26,13 @@ __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
27
  jevAdapters: ()=>jevAdapters
28
28
  });
29
- const external_common_js_namespaceObject = require("../../../common.js");
30
- const utils_namespaceObject = require("@midscene/shared/utils");
31
- const index_js_namespaceObject = require("../../service-caller/index.js");
32
- const system_one_js_namespaceObject = require("../../service-caller/system-one.js");
33
- const multimodal_prompt_js_namespaceObject = require("../../shared/multimodal-prompt.js");
34
- const external_image_js_namespaceObject = require("./image.js");
29
+ const external_boolean_js_namespaceObject = require("./boolean.js");
30
+ const external_locate_js_namespaceObject = require("./locate.js");
35
31
  const external_planning_js_namespaceObject = require("./planning.js");
36
- async function prepareReferences(prompt) {
37
- const { referenceImages } = await (0, multimodal_prompt_js_namespaceObject.prepareUserPrompt)(prompt);
38
- const prepared = await Promise.all(referenceImages.map(async (image, index)=>({
39
- key: `reference_${index}`,
40
- name: image.name,
41
- image: await (0, external_image_js_namespaceObject.prepareJevImage)(image.url)
42
- })));
43
- return {
44
- references: prepared.map(({ key, name })=>({
45
- image: `\`${key}\``,
46
- name
47
- })),
48
- images: Object.fromEntries(prepared.map(({ key, image })=>[
49
- key,
50
- image.imageBase64
51
- ]))
52
- };
53
- }
54
- const locate = async ({ targetElementDescription, locateImage, options })=>{
55
- const image = await (0, external_image_js_namespaceObject.prepareJevImage)(locateImage.imageBase64);
56
- const references = await prepareReferences(targetElementDescription);
57
- const target = (0, external_common_js_namespaceObject.userPromptToString)(targetElementDescription);
58
- const response = await (0, index_js_namespaceObject.callAI)([], options.modelRuntime, {
59
- abortSignal: options.abortSignal,
60
- systemOneRequest: {
61
- state: {
62
- target,
63
- references: references.references
64
- },
65
- images: {
66
- screenshot: image.imageBase64,
67
- ...references.images
68
- },
69
- questions: {
70
- present: {
71
- type: 'noul',
72
- instructions: 'Is the target described in `target` present in `screenshot`? Reference images, if any, describe the target; they are not the screenshot.'
73
- },
74
- target: {
75
- type: 'box',
76
- instructions: 'The single target described in `target`, in `screenshot`.'
77
- }
78
- }
79
- }
80
- });
81
- const { answers } = system_one_js_namespaceObject.systemOneResponseSchema.parse(JSON.parse(response.content));
82
- (0, utils_namespaceObject.assert)('noul' === answers.present.type && 'box' === answers.target.type, 'Invalid Jev locate answers');
83
- return {
84
- rawResponse: response.content,
85
- usage: response.usage,
86
- ...answers.present.noul >= 0.5 ? {
87
- locatedPixelResult: (0, external_image_js_namespaceObject.mapJevBox)(answers.target.box, image, locateImage)
88
- } : {
89
- errors: [
90
- 'The target is not present in the screenshot'
91
- ]
92
- }
93
- };
94
- };
95
- const adapter_boolean = async (options)=>{
96
- const references = await prepareReferences({
97
- prompt: '',
98
- ...options.multimodalPrompt
99
- });
100
- const frames = options.extractOption?.screenshotIncluded === false ? [] : options.context.screenshotSequence?.length ? options.context.screenshotSequence : [
101
- options.context.screenshot
102
- ];
103
- const screenshots = await Promise.all(frames.map((frame)=>(0, external_image_js_namespaceObject.prepareJevImage)(frame.base64)));
104
- const result = await (0, index_js_namespaceObject.callAI)([], options.modelRuntime, {
105
- abortSignal: options.abortSignal,
106
- systemOneRequest: {
107
- state: {
108
- statement: options.dataQuery,
109
- context: options.extractOption?.context,
110
- pageDescription: options.pageDescription,
111
- frames: screenshots.map((_, index)=>`\`frame_${index}\``),
112
- references: references.references
113
- },
114
- images: {
115
- ...Object.fromEntries(screenshots.map((image, index)=>[
116
- `frame_${index}`,
117
- image.imageBase64
118
- ])),
119
- ...references.images
120
- },
121
- questions: {
122
- result: {
123
- type: 'noul',
124
- instructions: "Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present."
125
- }
126
- }
127
- }
128
- });
129
- const answer = system_one_js_namespaceObject.systemOneResponseSchema.parse(JSON.parse(result.content)).answers.result;
130
- (0, utils_namespaceObject.assert)('noul' === answer.type, 'Invalid Jev boolean answer');
131
- return {
132
- value: answer.noul >= 0.5,
133
- rawResponse: result.content,
134
- usage: result.usage
135
- };
136
- };
137
32
  const jevAdapters = {
138
33
  jev: {
139
- supportedTasks: [
34
+ modelType: 'system-one',
35
+ supportedTaskTypes: [
140
36
  'locate',
141
37
  'boolean',
142
38
  'planning'
@@ -144,10 +40,10 @@ const jevAdapters = {
144
40
  supportedProtocols: [],
145
41
  locate: {
146
42
  kind: 'custom',
147
- locateFn: locate
43
+ locateFn: external_locate_js_namespaceObject.jevLocate
148
44
  },
149
45
  insight: {
150
- booleanFn: adapter_boolean
46
+ booleanFn: external_boolean_js_namespaceObject.jevBoolean
151
47
  },
152
48
  planning: {
153
49
  kind: 'custom',
@@ -1 +1 @@
1
- {"version":3,"file":"ai-model/models/jev/adapter.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/models/jev/adapter.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { userPromptToString } from '@/common';\nimport type { TModelFamily } from '@midscene/shared/env';\nimport { assert } from '@midscene/shared/utils';\nimport type { ModelAdapterDefinition } from '../../model-adapter/types';\nimport { callAI } from '../../service-caller';\nimport { systemOneResponseSchema } from '../../service-caller/system-one';\nimport { prepareUserPrompt } from '../../shared/multimodal-prompt';\nimport type { LocateFn } from '../../workflows/grounding/types';\nimport type { BooleanFn } from '../../workflows/insight/boolean';\nimport { mapJevBox, prepareJevImage } from './image';\nimport { jevPlan } from './planning';\n\nasync function prepareReferences(\n prompt: Parameters<typeof prepareUserPrompt>[0],\n) {\n const { referenceImages } = await prepareUserPrompt(prompt);\n const prepared = await Promise.all(\n referenceImages.map(async (image, index) => ({\n key: `reference_${index}`,\n name: image.name,\n image: await prepareJevImage(image.url),\n })),\n );\n return {\n references: prepared.map(({ key, name }) => ({\n image: `\\`${key}\\``,\n name,\n })),\n images: Object.fromEntries(\n prepared.map(({ key, image }) => [key, image.imageBase64]),\n ),\n };\n}\n\nconst locate: LocateFn = async ({\n targetElementDescription,\n locateImage,\n options,\n}) => {\n const image = await prepareJevImage(locateImage.imageBase64);\n const references = await prepareReferences(targetElementDescription);\n const target = userPromptToString(targetElementDescription);\n const response = await callAI([], options.modelRuntime, {\n abortSignal: options.abortSignal,\n systemOneRequest: {\n state: { target, references: references.references },\n images: { screenshot: image.imageBase64, ...references.images },\n questions: {\n present: {\n type: 'noul',\n instructions:\n 'Is the target described in `target` present in `screenshot`? Reference images, if any, describe the target; they are not the screenshot.',\n },\n target: {\n type: 'box',\n instructions:\n 'The single target described in `target`, in `screenshot`.',\n },\n },\n },\n });\n const { answers } = systemOneResponseSchema.parse(\n JSON.parse(response.content),\n );\n assert(\n answers.present.type === 'noul' && answers.target.type === 'box',\n 'Invalid Jev locate answers',\n );\n return {\n rawResponse: response.content,\n usage: response.usage,\n ...(answers.present.noul >= 0.5\n ? {\n locatedPixelResult: mapJevBox(answers.target.box, image, locateImage),\n }\n : { errors: ['The target is not present in the screenshot'] }),\n };\n};\n\nconst boolean: BooleanFn = async (options) => {\n const references = await prepareReferences({\n prompt: '',\n ...options.multimodalPrompt,\n });\n const frames =\n options.extractOption?.screenshotIncluded === false\n ? []\n : options.context.screenshotSequence?.length\n ? options.context.screenshotSequence\n : [options.context.screenshot];\n const screenshots = await Promise.all(\n frames.map((frame) => prepareJevImage(frame.base64)),\n );\n const result = await callAI([], options.modelRuntime, {\n abortSignal: options.abortSignal,\n systemOneRequest: {\n state: {\n statement: options.dataQuery,\n context: options.extractOption?.context,\n pageDescription: options.pageDescription,\n frames: screenshots.map((_, index) => `\\`frame_${index}\\``),\n references: references.references,\n },\n images: {\n ...Object.fromEntries(\n screenshots.map((image, index) => [\n `frame_${index}`,\n image.imageBase64,\n ]),\n ),\n ...references.images,\n },\n questions: {\n result: {\n type: 'noul',\n instructions:\n 'Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present.',\n },\n },\n },\n });\n const answer = systemOneResponseSchema.parse(JSON.parse(result.content))\n .answers.result;\n assert(answer.type === 'noul', 'Invalid Jev boolean answer');\n return {\n value: answer.noul >= 0.5,\n rawResponse: result.content,\n usage: result.usage,\n };\n};\n\nexport const jevAdapters = {\n jev: {\n supportedTasks: ['locate', 'boolean', 'planning'],\n supportedProtocols: [],\n locate: { kind: 'custom', locateFn: locate },\n insight: { booleanFn: boolean },\n planning: {\n kind: 'custom',\n planFn: jevPlan,\n cacheEnabled: false,\n supportsActionDeepLocate: false,\n defaultReplanningCycleLimit: 20,\n },\n },\n} satisfies Pick<Record<TModelFamily, ModelAdapterDefinition>, 'jev'>;\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","prepareReferences","prompt","referenceImages","prepareUserPrompt","prepared","Promise","image","index","prepareJevImage","name","locate","targetElementDescription","locateImage","options","references","target","userPromptToString","response","callAI","answers","systemOneResponseSchema","JSON","assert","mapJevBox","boolean","frames","screenshots","frame","result","_","answer","jevAdapters","jevPlan"],"mappings":"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"}
1
+ {"version":3,"file":"ai-model/models/jev/adapter.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/models/jev/adapter.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import type { TModelFamily } from '@midscene/shared/env';\nimport type { ModelAdapterDefinition } from '../../model-adapter/types';\nimport { jevBoolean } from './boolean';\nimport { jevLocate } from './locate';\nimport { jevPlan } from './planning';\n\nexport const jevAdapters = {\n jev: {\n modelType: 'system-one',\n supportedTaskTypes: ['locate', 'boolean', 'planning'],\n supportedProtocols: [],\n locate: { kind: 'custom', locateFn: jevLocate },\n insight: { booleanFn: jevBoolean },\n planning: {\n kind: 'custom',\n planFn: jevPlan,\n cacheEnabled: false,\n supportsActionDeepLocate: false,\n defaultReplanningCycleLimit: 20,\n },\n },\n} satisfies Pick<Record<TModelFamily, ModelAdapterDefinition>, 'jev'>;\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","jevAdapters","jevLocate","jevBoolean","jevPlan"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;ACAO,MAAMI,cAAc;IACzB,KAAK;QACH,WAAW;QACX,oBAAoB;YAAC;YAAU;YAAW;SAAW;QACrD,oBAAoB,EAAE;QACtB,QAAQ;YAAE,MAAM;YAAU,UAAUC,mCAAAA,SAASA;QAAC;QAC9C,SAAS;YAAE,WAAWC,oCAAAA,UAAUA;QAAC;QACjC,UAAU;YACR,MAAM;YACN,QAAQC,qCAAAA,OAAOA;YACf,cAAc;YACd,0BAA0B;YAC1B,6BAA6B;QAC/B;IACF;AACF"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ jevBoolean: ()=>jevBoolean
28
+ });
29
+ const utils_namespaceObject = require("@midscene/shared/utils");
30
+ const index_js_namespaceObject = require("../../service-caller/index.js");
31
+ const schema_js_namespaceObject = require("../../service-caller/system-one/schema.js");
32
+ const external_image_js_namespaceObject = require("./image.js");
33
+ const jevBoolean = async (options)=>{
34
+ const references = await (0, external_image_js_namespaceObject.prepareReferences)({
35
+ prompt: '',
36
+ ...options.multimodalPrompt
37
+ });
38
+ const frames = options.extractOption?.screenshotIncluded === false ? [] : options.context.screenshotSequence?.length ? options.context.screenshotSequence : [
39
+ options.context.screenshot
40
+ ];
41
+ const screenshots = await Promise.all(frames.map((frame)=>(0, external_image_js_namespaceObject.prepareJevImage)(frame.base64)));
42
+ const result = await (0, index_js_namespaceObject.callSystemOneAI)({
43
+ state: {
44
+ statement: options.dataQuery,
45
+ context: options.extractOption?.context,
46
+ pageDescription: options.pageDescription,
47
+ frames: screenshots.map((_, index)=>`\`frame_${index}\``),
48
+ references: references.references
49
+ },
50
+ images: {
51
+ ...Object.fromEntries(screenshots.map((image, index)=>[
52
+ `frame_${index}`,
53
+ image.imageBase64
54
+ ])),
55
+ ...references.images
56
+ },
57
+ questions: {
58
+ result: {
59
+ type: 'noul',
60
+ instructions: "Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present."
61
+ }
62
+ }
63
+ }, options.modelRuntime, {
64
+ abortSignal: options.abortSignal
65
+ });
66
+ const answer = schema_js_namespaceObject.systemOneResponseSchema.parse(JSON.parse(result.content)).answers.result;
67
+ (0, utils_namespaceObject.assert)('noul' === answer.type, 'Invalid Jev boolean answer');
68
+ return {
69
+ value: answer.noul >= 0.5,
70
+ rawResponse: result.content,
71
+ usage: result.usage
72
+ };
73
+ };
74
+ exports.jevBoolean = __webpack_exports__.jevBoolean;
75
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
76
+ "jevBoolean"
77
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
78
+ Object.defineProperty(exports, '__esModule', {
79
+ value: true
80
+ });
81
+
82
+ //# sourceMappingURL=boolean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-model/models/jev/boolean.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/models/jev/boolean.ts"],"sourcesContent":["__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n }\n }\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { assert } from '@midscene/shared/utils';\nimport { callSystemOneAI } from '../../service-caller';\nimport { systemOneResponseSchema } from '../../service-caller/system-one/schema';\nimport type { BooleanFn } from '../../workflows/insight/boolean';\nimport { prepareJevImage, prepareReferences } from './image';\n\nexport const jevBoolean: BooleanFn = async (options) => {\n const references = await prepareReferences({\n prompt: '',\n ...options.multimodalPrompt,\n });\n const frames =\n options.extractOption?.screenshotIncluded === false\n ? []\n : options.context.screenshotSequence?.length\n ? options.context.screenshotSequence\n : [options.context.screenshot];\n const screenshots = await Promise.all(\n frames.map((frame) => prepareJevImage(frame.base64)),\n );\n const result = await callSystemOneAI(\n {\n state: {\n statement: options.dataQuery,\n context: options.extractOption?.context,\n pageDescription: options.pageDescription,\n frames: screenshots.map((_, index) => `\\`frame_${index}\\``),\n references: references.references,\n },\n images: {\n ...Object.fromEntries(\n screenshots.map((image, index) => [\n `frame_${index}`,\n image.imageBase64,\n ]),\n ),\n ...references.images,\n },\n questions: {\n result: {\n type: 'noul',\n instructions:\n 'Is `statement` true? Screenshots in `frames` are ordered earliest to latest. For current state use the latest frame; for events use the relevant frames. Reference images are supporting context, not screenshots, unless the statement requests comparison. Use the provided context and page description when present.',\n },\n },\n },\n options.modelRuntime,\n { abortSignal: options.abortSignal },\n );\n const answer = systemOneResponseSchema.parse(JSON.parse(result.content))\n .answers.result;\n assert(answer.type === 'noul', 'Invalid Jev boolean answer');\n return {\n value: answer.noul >= 0.5,\n rawResponse: result.content,\n usage: result.usage,\n };\n};\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","jevBoolean","options","references","prepareReferences","frames","screenshots","Promise","frame","prepareJevImage","result","callSystemOneAI","_","index","image","answer","systemOneResponseSchema","JSON","assert"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC;QACjC,IAAI,IAAIC,OAAOD,WACR,IAAGD,oBAAoB,CAAC,CAACC,YAAYC,QAAQ,CAACF,oBAAoB,CAAC,CAAC,UAASE,MACzEC,OAAO,cAAc,CAAC,UAASD,KAAK;YAAE,YAAY;YAAM,KAAKD,UAAU,CAACC,IAAI;QAAC;IAGzF;;;ICNAF,oBAAoB,CAAC,GAAG,CAACI,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFL,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,eAAlB,OAAOM,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;ACAO,MAAMI,aAAwB,OAAOC;IAC1C,MAAMC,aAAa,MAAMC,AAAAA,IAAAA,kCAAAA,iBAAAA,AAAAA,EAAkB;QACzC,QAAQ;QACR,GAAGF,QAAQ,gBAAgB;IAC7B;IACA,MAAMG,SACJH,QAAQ,aAAa,EAAE,uBAAuB,QAC1C,EAAE,GACFA,QAAQ,OAAO,CAAC,kBAAkB,EAAE,SAClCA,QAAQ,OAAO,CAAC,kBAAkB,GAClC;QAACA,QAAQ,OAAO,CAAC,UAAU;KAAC;IACpC,MAAMI,cAAc,MAAMC,QAAQ,GAAG,CACnCF,OAAO,GAAG,CAAC,CAACG,QAAUC,AAAAA,IAAAA,kCAAAA,eAAAA,AAAAA,EAAgBD,MAAM,MAAM;IAEpD,MAAME,SAAS,MAAMC,AAAAA,IAAAA,yBAAAA,eAAAA,AAAAA,EACnB;QACE,OAAO;YACL,WAAWT,QAAQ,SAAS;YAC5B,SAASA,QAAQ,aAAa,EAAE;YAChC,iBAAiBA,QAAQ,eAAe;YACxC,QAAQI,YAAY,GAAG,CAAC,CAACM,GAAGC,QAAU,CAAC,QAAQ,EAAEA,MAAM,EAAE,CAAC;YAC1D,YAAYV,WAAW,UAAU;QACnC;QACA,QAAQ;YACN,GAAGN,OAAO,WAAW,CACnBS,YAAY,GAAG,CAAC,CAACQ,OAAOD,QAAU;oBAChC,CAAC,MAAM,EAAEA,OAAO;oBAChBC,MAAM,WAAW;iBAClB,EACF;YACD,GAAGX,WAAW,MAAM;QACtB;QACA,WAAW;YACT,QAAQ;gBACN,MAAM;gBACN,cACE;YACJ;QACF;IACF,GACAD,QAAQ,YAAY,EACpB;QAAE,aAAaA,QAAQ,WAAW;IAAC;IAErC,MAAMa,SAASC,0BAAAA,uBAAAA,CAAAA,KAA6B,CAACC,KAAK,KAAK,CAACP,OAAO,OAAO,GACnE,OAAO,CAAC,MAAM;IACjBQ,IAAAA,sBAAAA,MAAAA,AAAAA,EAAOH,AAAgB,WAAhBA,OAAO,IAAI,EAAa;IAC/B,OAAO;QACL,OAAOA,OAAO,IAAI,IAAI;QACtB,aAAaL,OAAO,OAAO;QAC3B,OAAOA,OAAO,KAAK;IACrB;AACF"}
@@ -24,59 +24,65 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
+ prepareReferences: ()=>prepareReferences,
27
28
  mapJevBox: ()=>mapJevBox,
28
29
  prepareJevImage: ()=>prepareJevImage
29
30
  });
30
31
  const external_node_buffer_namespaceObject = require("node:buffer");
31
32
  const img_namespaceObject = require("@midscene/shared/img");
32
33
  const utils_namespaceObject = require("@midscene/shared/utils");
34
+ const index_js_namespaceObject = require("../../shared/model-locate-result/index.js");
35
+ const multimodal_prompt_js_namespaceObject = require("../../shared/multimodal-prompt.js");
33
36
  async function prepareJevImage(url) {
34
37
  const base64 = await (0, img_namespaceObject.preProcessImageUrl)(url, true);
35
- const source = await (0, img_namespaceObject.imageInfoOfBase64)(base64);
36
- const scale = Math.min(1, 1568 / source.width, 1568 / source.height);
37
- const contentSize = {
38
- width: Math.max(1, Math.round(source.width * scale)),
39
- height: Math.max(1, Math.round(source.height * scale))
40
- };
41
- const resized = await (0, img_namespaceObject.resizeBase64ImageToJpeg)(base64, {
42
- targetSize: contentSize
43
- });
44
- const prepared = await (0, img_namespaceObject.padBase64ImageToMinimumSize)(resized, 280);
45
- (0, utils_namespaceObject.assert)(external_node_buffer_namespaceObject.Buffer.from((0, img_namespaceObject.parseBase64)(prepared.imageBase64).body, 'base64').length <= 16777216, 'Jev image exceeds 16 MiB');
38
+ (0, utils_namespaceObject.assert)(external_node_buffer_namespaceObject.Buffer.from((0, img_namespaceObject.parseBase64)(base64).body, 'base64').length <= 16777216, 'Jev image exceeds 16 MiB');
46
39
  return {
47
- ...prepared,
48
- contentSize,
49
- sourceSize: {
50
- width: source.width,
51
- height: source.height
52
- }
40
+ imageBase64: base64
53
41
  };
54
42
  }
55
- function mapJevBox(box, image, targetSize) {
56
- const left = box.left * image.width * targetSize.width / image.contentSize.width;
57
- const top = box.top * image.height * targetSize.height / image.contentSize.height;
58
- const right = box.right * image.width * targetSize.width / image.contentSize.width;
59
- const bottom = box.bottom * image.height * targetSize.height / image.contentSize.height;
60
- const center = [
61
- (left + right) / 2,
62
- (top + bottom) / 2
63
- ];
64
- (0, utils_namespaceObject.assert)(center[0] >= 0 && center[0] < targetSize.width && center[1] >= 0 && center[1] < targetSize.height, 'Jev returned a target in image padding, outside the screenshot');
43
+ const jevBoxCodec = (0, index_js_namespaceObject.createLocateResultCodec)({
44
+ coordinates: {
45
+ shape: 'bbox',
46
+ normalizedBy: 1,
47
+ rounding: 'none',
48
+ boundsType: 'edges'
49
+ }
50
+ });
51
+ function mapJevBox(box, targetSize) {
52
+ return jevBoxCodec.toPixelResult([
53
+ box.left,
54
+ box.top,
55
+ box.right,
56
+ box.bottom
57
+ ], {
58
+ preparedSize: targetSize
59
+ });
60
+ }
61
+ async function prepareReferences(prompt) {
62
+ const { referenceImages } = await (0, multimodal_prompt_js_namespaceObject.prepareUserPrompt)(prompt);
63
+ const prepared = await Promise.all(referenceImages.map(async (image, index)=>({
64
+ key: `reference_${index}`,
65
+ name: image.name,
66
+ image: await prepareJevImage(image.url)
67
+ })));
65
68
  return {
66
- center,
67
- rect: {
68
- left,
69
- top,
70
- width: right - left,
71
- height: bottom - top
72
- }
69
+ references: prepared.map(({ key, name })=>({
70
+ image: `\`${key}\``,
71
+ name
72
+ })),
73
+ images: Object.fromEntries(prepared.map(({ key, image })=>[
74
+ key,
75
+ image.imageBase64
76
+ ]))
73
77
  };
74
78
  }
75
79
  exports.mapJevBox = __webpack_exports__.mapJevBox;
76
80
  exports.prepareJevImage = __webpack_exports__.prepareJevImage;
81
+ exports.prepareReferences = __webpack_exports__.prepareReferences;
77
82
  for(var __rspack_i in __webpack_exports__)if (-1 === [
78
83
  "mapJevBox",
79
- "prepareJevImage"
84
+ "prepareJevImage",
85
+ "prepareReferences"
80
86
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
81
87
  Object.defineProperty(exports, '__esModule', {
82
88
  value: true