@midscene/core 1.8.10 → 1.9.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 (304) hide show
  1. package/dist/es/agent/agent.mjs +40 -50
  2. package/dist/es/agent/agent.mjs.map +1 -1
  3. package/dist/es/agent/task-builder.mjs +39 -19
  4. package/dist/es/agent/task-builder.mjs.map +1 -1
  5. package/dist/es/agent/tasks.mjs +24 -22
  6. package/dist/es/agent/tasks.mjs.map +1 -1
  7. package/dist/es/agent/utils.mjs +11 -14
  8. package/dist/es/agent/utils.mjs.map +1 -1
  9. package/dist/es/ai-model/connectivity.mjs +7 -3
  10. package/dist/es/ai-model/connectivity.mjs.map +1 -1
  11. package/dist/es/ai-model/errors.mjs +9 -0
  12. package/dist/es/ai-model/errors.mjs.map +1 -0
  13. package/dist/es/ai-model/index.mjs +3 -4
  14. package/dist/es/ai-model/inspect.mjs +132 -144
  15. package/dist/es/ai-model/inspect.mjs.map +1 -1
  16. package/dist/es/ai-model/llm-planning.mjs +46 -28
  17. package/dist/es/ai-model/llm-planning.mjs.map +1 -1
  18. package/dist/es/ai-model/{auto-glm → models/auto-glm}/actions.mjs +22 -44
  19. package/dist/es/ai-model/models/auto-glm/actions.mjs.map +1 -0
  20. package/dist/es/ai-model/models/auto-glm/adapter.mjs +45 -0
  21. package/dist/es/ai-model/models/auto-glm/adapter.mjs.map +1 -0
  22. package/dist/es/ai-model/models/auto-glm/locate.mjs +112 -0
  23. package/dist/es/ai-model/models/auto-glm/locate.mjs.map +1 -0
  24. package/dist/es/ai-model/models/auto-glm/parser.mjs.map +1 -0
  25. package/dist/es/ai-model/{auto-glm → models/auto-glm}/planning.mjs +6 -7
  26. package/dist/es/ai-model/models/auto-glm/planning.mjs.map +1 -0
  27. package/dist/es/ai-model/{auto-glm → models/auto-glm}/prompt.mjs +3 -11
  28. package/dist/es/ai-model/models/auto-glm/prompt.mjs.map +1 -0
  29. package/dist/es/ai-model/models/default.mjs +12 -0
  30. package/dist/es/ai-model/models/default.mjs.map +1 -0
  31. package/dist/es/ai-model/models/doubao.mjs +138 -0
  32. package/dist/es/ai-model/models/doubao.mjs.map +1 -0
  33. package/dist/es/ai-model/models/gemini.mjs +34 -0
  34. package/dist/es/ai-model/models/gemini.mjs.map +1 -0
  35. package/dist/es/ai-model/models/glm.mjs +37 -0
  36. package/dist/es/ai-model/models/glm.mjs.map +1 -0
  37. package/dist/es/ai-model/models/gpt.mjs +31 -0
  38. package/dist/es/ai-model/models/gpt.mjs.map +1 -0
  39. package/dist/es/ai-model/models/index.mjs +2 -0
  40. package/dist/es/ai-model/models/qwen.mjs +113 -0
  41. package/dist/es/ai-model/models/qwen.mjs.map +1 -0
  42. package/dist/es/ai-model/models/registry.mjs +45 -0
  43. package/dist/es/ai-model/models/registry.mjs.map +1 -0
  44. package/dist/es/ai-model/models/resolved.mjs +104 -0
  45. package/dist/es/ai-model/models/resolved.mjs.map +1 -0
  46. package/dist/es/ai-model/models/types.mjs +0 -0
  47. package/dist/es/ai-model/models/ui-tars/adapter.mjs +142 -0
  48. package/dist/es/ai-model/models/ui-tars/adapter.mjs.map +1 -0
  49. package/dist/es/ai-model/{ui-tars-planning.mjs → models/ui-tars/planning.mjs} +44 -62
  50. package/dist/es/ai-model/models/ui-tars/planning.mjs.map +1 -0
  51. package/dist/es/ai-model/prompt/extraction.mjs +3 -3
  52. package/dist/es/ai-model/prompt/extraction.mjs.map +1 -1
  53. package/dist/es/ai-model/prompt/llm-locator.mjs +11 -11
  54. package/dist/es/ai-model/prompt/llm-locator.mjs.map +1 -1
  55. package/dist/es/ai-model/prompt/llm-planning.mjs +25 -60
  56. package/dist/es/ai-model/prompt/llm-planning.mjs.map +1 -1
  57. package/dist/es/ai-model/prompt/llm-section-locator.mjs +15 -10
  58. package/dist/es/ai-model/prompt/llm-section-locator.mjs.map +1 -1
  59. package/dist/es/ai-model/prompt/locate-grounding-rules.mjs +9 -0
  60. package/dist/es/ai-model/prompt/locate-grounding-rules.mjs.map +1 -0
  61. package/dist/es/ai-model/prompt/locate-param-example.mjs +15 -0
  62. package/dist/es/ai-model/prompt/locate-param-example.mjs.map +1 -0
  63. package/dist/es/ai-model/prompt/playwright-generator.mjs +5 -5
  64. package/dist/es/ai-model/prompt/playwright-generator.mjs.map +1 -1
  65. package/dist/es/ai-model/prompt/yaml-generator.mjs +5 -5
  66. package/dist/es/ai-model/prompt/yaml-generator.mjs.map +1 -1
  67. package/dist/es/ai-model/prompts/locate-result-coordinates.mjs +107 -0
  68. package/dist/es/ai-model/prompts/locate-result-coordinates.mjs.map +1 -0
  69. package/dist/es/ai-model/service-caller/index.mjs +59 -190
  70. package/dist/es/ai-model/service-caller/index.mjs.map +1 -1
  71. package/dist/es/ai-model/service-caller/json.mjs +60 -0
  72. package/dist/es/ai-model/service-caller/json.mjs.map +1 -0
  73. package/dist/es/ai-model/shared/model-locate-result/bbox.mjs +68 -0
  74. package/dist/es/ai-model/shared/model-locate-result/bbox.mjs.map +1 -0
  75. package/dist/es/ai-model/shared/model-locate-result/factory.mjs +96 -0
  76. package/dist/es/ai-model/shared/model-locate-result/factory.mjs.map +1 -0
  77. package/dist/es/ai-model/shared/model-locate-result/index.mjs +3 -0
  78. package/dist/es/ai-model/shared/model-locate-result/parse.mjs +41 -0
  79. package/dist/es/ai-model/shared/model-locate-result/parse.mjs.map +1 -0
  80. package/dist/es/ai-model/shared/model-locate-result/pixel-bbox-mapper.mjs +64 -0
  81. package/dist/es/ai-model/shared/model-locate-result/pixel-bbox-mapper.mjs.map +1 -0
  82. package/dist/es/ai-model/shared/model-locate-result/types.mjs +0 -0
  83. package/dist/es/ai-model/types.mjs +0 -0
  84. package/dist/es/ai-model/workflows/image-preprocess.mjs +27 -0
  85. package/dist/es/ai-model/workflows/image-preprocess.mjs.map +1 -0
  86. package/dist/es/ai-model/workflows/inspect/index.mjs +2 -0
  87. package/dist/es/ai-model/workflows/inspect/locate-result-rect.mjs +23 -0
  88. package/dist/es/ai-model/workflows/inspect/locate-result-rect.mjs.map +1 -0
  89. package/dist/es/ai-model/workflows/inspect/search-area-mapping.mjs +18 -0
  90. package/dist/es/ai-model/workflows/inspect/search-area-mapping.mjs.map +1 -0
  91. package/dist/es/ai-model/workflows/inspect/types.mjs +0 -0
  92. package/dist/es/ai-model/workflows/planning/index.mjs +5 -0
  93. package/dist/es/ai-model/workflows/planning/index.mjs.map +1 -0
  94. package/dist/es/ai-model/workflows/planning/types.mjs +0 -0
  95. package/dist/es/common.mjs +2 -174
  96. package/dist/es/common.mjs.map +1 -1
  97. package/dist/es/device/index.mjs.map +1 -1
  98. package/dist/es/service/index.mjs +96 -69
  99. package/dist/es/service/index.mjs.map +1 -1
  100. package/dist/es/types.mjs.map +1 -1
  101. package/dist/es/utils.mjs +2 -2
  102. package/dist/es/yaml/player.mjs +4 -3
  103. package/dist/es/yaml/player.mjs.map +1 -1
  104. package/dist/lib/agent/agent.js +43 -53
  105. package/dist/lib/agent/agent.js.map +1 -1
  106. package/dist/lib/agent/task-builder.js +38 -18
  107. package/dist/lib/agent/task-builder.js.map +1 -1
  108. package/dist/lib/agent/tasks.js +23 -21
  109. package/dist/lib/agent/tasks.js.map +1 -1
  110. package/dist/lib/agent/utils.js +17 -17
  111. package/dist/lib/agent/utils.js.map +1 -1
  112. package/dist/lib/ai-model/connectivity.js +7 -3
  113. package/dist/lib/ai-model/connectivity.js.map +1 -1
  114. package/dist/lib/ai-model/errors.js +46 -0
  115. package/dist/lib/ai-model/errors.js.map +1 -0
  116. package/dist/lib/ai-model/index.js +7 -14
  117. package/dist/lib/ai-model/inspect.js +141 -144
  118. package/dist/lib/ai-model/inspect.js.map +1 -1
  119. package/dist/lib/ai-model/llm-planning.js +44 -26
  120. package/dist/lib/ai-model/llm-planning.js.map +1 -1
  121. package/dist/lib/ai-model/{auto-glm → models/auto-glm}/actions.js +22 -44
  122. package/dist/lib/ai-model/models/auto-glm/actions.js.map +1 -0
  123. package/dist/lib/ai-model/models/auto-glm/adapter.js +79 -0
  124. package/dist/lib/ai-model/models/auto-glm/adapter.js.map +1 -0
  125. package/dist/lib/ai-model/models/auto-glm/locate.js +146 -0
  126. package/dist/lib/ai-model/models/auto-glm/locate.js.map +1 -0
  127. package/dist/lib/ai-model/models/auto-glm/parser.js.map +1 -0
  128. package/dist/lib/ai-model/{auto-glm → models/auto-glm}/planning.js +8 -9
  129. package/dist/lib/ai-model/models/auto-glm/planning.js.map +1 -0
  130. package/dist/lib/ai-model/{auto-glm → models/auto-glm}/prompt.js +14 -16
  131. package/dist/lib/ai-model/models/auto-glm/prompt.js.map +1 -0
  132. package/dist/lib/ai-model/{auto-glm/util.js → models/default.js} +13 -13
  133. package/dist/lib/ai-model/models/default.js.map +1 -0
  134. package/dist/lib/ai-model/models/doubao.js +184 -0
  135. package/dist/lib/ai-model/models/doubao.js.map +1 -0
  136. package/dist/lib/ai-model/models/gemini.js +68 -0
  137. package/dist/lib/ai-model/models/gemini.js.map +1 -0
  138. package/dist/lib/ai-model/models/glm.js +71 -0
  139. package/dist/lib/ai-model/models/glm.js.map +1 -0
  140. package/dist/lib/ai-model/models/gpt.js +65 -0
  141. package/dist/lib/ai-model/models/gpt.js.map +1 -0
  142. package/dist/lib/ai-model/{service-caller/image-detail.js → models/index.js} +8 -7
  143. package/dist/lib/ai-model/models/index.js.map +1 -0
  144. package/dist/lib/ai-model/models/qwen.js +147 -0
  145. package/dist/lib/ai-model/models/qwen.js.map +1 -0
  146. package/dist/lib/ai-model/models/registry.js +85 -0
  147. package/dist/lib/ai-model/models/registry.js.map +1 -0
  148. package/dist/lib/ai-model/models/resolved.js +138 -0
  149. package/dist/lib/ai-model/models/resolved.js.map +1 -0
  150. package/dist/lib/ai-model/models/types.js +20 -0
  151. package/dist/lib/ai-model/models/types.js.map +1 -0
  152. package/dist/lib/ai-model/models/ui-tars/adapter.js +176 -0
  153. package/dist/lib/ai-model/models/ui-tars/adapter.js.map +1 -0
  154. package/dist/lib/ai-model/{ui-tars-planning.js → models/ui-tars/planning.js} +44 -62
  155. package/dist/lib/ai-model/models/ui-tars/planning.js.map +1 -0
  156. package/dist/lib/ai-model/prompt/extraction.js +3 -3
  157. package/dist/lib/ai-model/prompt/extraction.js.map +1 -1
  158. package/dist/lib/ai-model/prompt/llm-locator.js +11 -11
  159. package/dist/lib/ai-model/prompt/llm-locator.js.map +1 -1
  160. package/dist/lib/ai-model/prompt/llm-planning.js +25 -60
  161. package/dist/lib/ai-model/prompt/llm-planning.js.map +1 -1
  162. package/dist/lib/ai-model/prompt/llm-section-locator.js +15 -10
  163. package/dist/lib/ai-model/prompt/llm-section-locator.js.map +1 -1
  164. package/dist/lib/ai-model/prompt/locate-grounding-rules.js +43 -0
  165. package/dist/lib/ai-model/prompt/locate-grounding-rules.js.map +1 -0
  166. package/dist/lib/ai-model/prompt/locate-param-example.js +52 -0
  167. package/dist/lib/ai-model/prompt/locate-param-example.js.map +1 -0
  168. package/dist/lib/ai-model/prompt/playwright-generator.js +5 -5
  169. package/dist/lib/ai-model/prompt/playwright-generator.js.map +1 -1
  170. package/dist/lib/ai-model/prompt/yaml-generator.js +5 -5
  171. package/dist/lib/ai-model/prompt/yaml-generator.js.map +1 -1
  172. package/dist/lib/ai-model/prompts/locate-result-coordinates.js +150 -0
  173. package/dist/lib/ai-model/prompts/locate-result-coordinates.js.map +1 -0
  174. package/dist/lib/ai-model/service-caller/index.js +68 -199
  175. package/dist/lib/ai-model/service-caller/index.js.map +1 -1
  176. package/dist/lib/ai-model/service-caller/json.js +100 -0
  177. package/dist/lib/ai-model/service-caller/json.js.map +1 -0
  178. package/dist/lib/ai-model/shared/model-locate-result/bbox.js +117 -0
  179. package/dist/lib/ai-model/shared/model-locate-result/bbox.js.map +1 -0
  180. package/dist/lib/ai-model/shared/model-locate-result/factory.js +130 -0
  181. package/dist/lib/ai-model/shared/model-locate-result/factory.js.map +1 -0
  182. package/dist/lib/ai-model/{prompt/common.js → shared/model-locate-result/index.js} +9 -9
  183. package/dist/lib/ai-model/shared/model-locate-result/index.js.map +1 -0
  184. package/dist/lib/ai-model/shared/model-locate-result/parse.js +78 -0
  185. package/dist/lib/ai-model/shared/model-locate-result/parse.js.map +1 -0
  186. package/dist/lib/ai-model/shared/model-locate-result/pixel-bbox-mapper.js +98 -0
  187. package/dist/lib/ai-model/shared/model-locate-result/pixel-bbox-mapper.js.map +1 -0
  188. package/dist/lib/ai-model/shared/model-locate-result/types.js +20 -0
  189. package/dist/lib/ai-model/shared/model-locate-result/types.js.map +1 -0
  190. package/dist/lib/ai-model/types.js +20 -0
  191. package/dist/lib/ai-model/types.js.map +1 -0
  192. package/dist/lib/ai-model/workflows/image-preprocess.js +61 -0
  193. package/dist/lib/ai-model/workflows/image-preprocess.js.map +1 -0
  194. package/dist/lib/ai-model/workflows/inspect/index.js +50 -0
  195. package/dist/lib/ai-model/workflows/inspect/index.js.map +1 -0
  196. package/dist/lib/ai-model/workflows/inspect/locate-result-rect.js +60 -0
  197. package/dist/lib/ai-model/workflows/inspect/locate-result-rect.js.map +1 -0
  198. package/dist/lib/ai-model/workflows/inspect/search-area-mapping.js +52 -0
  199. package/dist/lib/ai-model/workflows/inspect/search-area-mapping.js.map +1 -0
  200. package/dist/lib/ai-model/workflows/inspect/types.js +20 -0
  201. package/dist/lib/ai-model/workflows/inspect/types.js.map +1 -0
  202. package/dist/lib/ai-model/{model-family.js → workflows/planning/index.js} +6 -7
  203. package/dist/lib/ai-model/workflows/planning/index.js.map +1 -0
  204. package/dist/lib/ai-model/workflows/planning/types.js +20 -0
  205. package/dist/lib/ai-model/workflows/planning/types.js.map +1 -0
  206. package/dist/lib/common.js +4 -206
  207. package/dist/lib/common.js.map +1 -1
  208. package/dist/lib/device/index.js.map +1 -1
  209. package/dist/lib/service/index.js +96 -69
  210. package/dist/lib/service/index.js.map +1 -1
  211. package/dist/lib/types.js.map +1 -1
  212. package/dist/lib/utils.js +2 -2
  213. package/dist/lib/yaml/player.js +4 -3
  214. package/dist/lib/yaml/player.js.map +1 -1
  215. package/dist/types/agent/agent.d.ts +14 -6
  216. package/dist/types/agent/task-builder.d.ts +2 -2
  217. package/dist/types/agent/tasks.d.ts +6 -6
  218. package/dist/types/agent/utils.d.ts +8 -5
  219. package/dist/types/ai-model/errors.d.ts +2 -0
  220. package/dist/types/ai-model/index.d.ts +2 -4
  221. package/dist/types/ai-model/inspect.d.ts +13 -33
  222. package/dist/types/ai-model/llm-planning.d.ts +6 -17
  223. package/dist/types/ai-model/{auto-glm → models/auto-glm}/actions.d.ts +2 -2
  224. package/dist/types/ai-model/models/auto-glm/adapter.d.ts +5 -0
  225. package/dist/types/ai-model/models/auto-glm/locate.d.ts +3 -0
  226. package/dist/types/ai-model/models/auto-glm/planning.d.ts +3 -0
  227. package/dist/types/ai-model/models/auto-glm/prompt.d.ts +4 -0
  228. package/dist/types/ai-model/models/default.d.ts +2 -0
  229. package/dist/types/ai-model/models/doubao.d.ts +10 -0
  230. package/dist/types/ai-model/models/gemini.d.ts +18 -0
  231. package/dist/types/ai-model/models/glm.d.ts +18 -0
  232. package/dist/types/ai-model/models/gpt.d.ts +18 -0
  233. package/dist/types/ai-model/models/index.d.ts +2 -0
  234. package/dist/types/ai-model/models/qwen.d.ts +30 -0
  235. package/dist/types/ai-model/models/registry.d.ts +81 -0
  236. package/dist/types/ai-model/models/resolved.d.ts +9 -0
  237. package/dist/types/ai-model/models/types.d.ts +102 -0
  238. package/dist/types/ai-model/models/ui-tars/adapter.d.ts +6 -0
  239. package/dist/types/ai-model/{ui-tars-planning.d.ts → models/ui-tars/planning.d.ts} +7 -11
  240. package/dist/types/ai-model/prompt/llm-locator.d.ts +2 -2
  241. package/dist/types/ai-model/prompt/llm-planning.d.ts +5 -5
  242. package/dist/types/ai-model/prompt/llm-section-locator.d.ts +2 -2
  243. package/dist/types/ai-model/prompt/locate-grounding-rules.d.ts +1 -0
  244. package/dist/types/ai-model/prompt/locate-param-example.d.ts +3 -0
  245. package/dist/types/ai-model/prompt/playwright-generator.d.ts +3 -3
  246. package/dist/types/ai-model/prompt/yaml-generator.d.ts +3 -3
  247. package/dist/types/ai-model/prompts/locate-result-coordinates.d.ts +6 -0
  248. package/dist/types/ai-model/service-caller/index.d.ts +19 -27
  249. package/dist/types/ai-model/service-caller/json.d.ts +9 -0
  250. package/dist/types/ai-model/shared/model-locate-result/bbox.d.ts +7 -0
  251. package/dist/types/ai-model/shared/model-locate-result/factory.d.ts +2 -0
  252. package/dist/types/ai-model/shared/model-locate-result/index.d.ts +3 -0
  253. package/dist/types/ai-model/shared/model-locate-result/parse.d.ts +5 -0
  254. package/dist/types/ai-model/shared/model-locate-result/pixel-bbox-mapper.d.ts +7 -0
  255. package/dist/types/ai-model/shared/model-locate-result/types.d.ts +157 -0
  256. package/dist/types/ai-model/types.d.ts +2 -0
  257. package/dist/types/ai-model/workflows/image-preprocess.d.ts +30 -0
  258. package/dist/types/ai-model/workflows/inspect/index.d.ts +1 -0
  259. package/dist/types/ai-model/workflows/inspect/locate-result-rect.d.ts +4 -0
  260. package/dist/types/ai-model/workflows/inspect/search-area-mapping.d.ts +3 -0
  261. package/dist/types/ai-model/workflows/inspect/types.d.ts +37 -0
  262. package/dist/types/ai-model/workflows/planning/index.d.ts +2 -0
  263. package/dist/types/ai-model/workflows/planning/types.d.ts +15 -0
  264. package/dist/types/common.d.ts +0 -30
  265. package/dist/types/device/index.d.ts +22 -22
  266. package/dist/types/service/index.d.ts +5 -4
  267. package/dist/types/types.d.ts +21 -9
  268. package/dist/types/yaml.d.ts +8 -2
  269. package/package.json +2 -2
  270. package/dist/es/ai-model/auto-glm/actions.mjs.map +0 -1
  271. package/dist/es/ai-model/auto-glm/index.mjs +0 -6
  272. package/dist/es/ai-model/auto-glm/parser.mjs.map +0 -1
  273. package/dist/es/ai-model/auto-glm/planning.mjs.map +0 -1
  274. package/dist/es/ai-model/auto-glm/prompt.mjs.map +0 -1
  275. package/dist/es/ai-model/auto-glm/util.mjs +0 -9
  276. package/dist/es/ai-model/auto-glm/util.mjs.map +0 -1
  277. package/dist/es/ai-model/model-family.mjs +0 -6
  278. package/dist/es/ai-model/model-family.mjs.map +0 -1
  279. package/dist/es/ai-model/prompt/common.mjs +0 -8
  280. package/dist/es/ai-model/prompt/common.mjs.map +0 -1
  281. package/dist/es/ai-model/service-caller/image-detail.mjs +0 -6
  282. package/dist/es/ai-model/service-caller/image-detail.mjs.map +0 -1
  283. package/dist/es/ai-model/ui-tars-planning.mjs.map +0 -1
  284. package/dist/lib/ai-model/auto-glm/actions.js.map +0 -1
  285. package/dist/lib/ai-model/auto-glm/index.js +0 -66
  286. package/dist/lib/ai-model/auto-glm/index.js.map +0 -1
  287. package/dist/lib/ai-model/auto-glm/parser.js.map +0 -1
  288. package/dist/lib/ai-model/auto-glm/planning.js.map +0 -1
  289. package/dist/lib/ai-model/auto-glm/prompt.js.map +0 -1
  290. package/dist/lib/ai-model/auto-glm/util.js.map +0 -1
  291. package/dist/lib/ai-model/model-family.js.map +0 -1
  292. package/dist/lib/ai-model/prompt/common.js.map +0 -1
  293. package/dist/lib/ai-model/service-caller/image-detail.js.map +0 -1
  294. package/dist/lib/ai-model/ui-tars-planning.js.map +0 -1
  295. package/dist/types/ai-model/auto-glm/index.d.ts +0 -6
  296. package/dist/types/ai-model/auto-glm/planning.d.ts +0 -12
  297. package/dist/types/ai-model/auto-glm/prompt.d.ts +0 -27
  298. package/dist/types/ai-model/auto-glm/util.d.ts +0 -13
  299. package/dist/types/ai-model/model-family.d.ts +0 -7
  300. package/dist/types/ai-model/prompt/common.d.ts +0 -2
  301. package/dist/types/ai-model/service-caller/image-detail.d.ts +0 -2
  302. /package/dist/es/ai-model/{auto-glm → models/auto-glm}/parser.mjs +0 -0
  303. /package/dist/lib/ai-model/{auto-glm → models/auto-glm}/parser.js +0 -0
  304. /package/dist/types/ai-model/{auto-glm → models/auto-glm}/parser.d.ts +0 -0
@@ -0,0 +1,100 @@
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
+ extractJSONFromCodeBlock: ()=>extractJSONFromCodeBlock,
28
+ normalJsonParser: ()=>normalJsonParser,
29
+ safeParseJson: ()=>safeParseJson
30
+ });
31
+ const external_jsonrepair_namespaceObject = require("jsonrepair");
32
+ function extractJSONFromCodeBlock(response) {
33
+ try {
34
+ const jsonMatch = response.match(/^\s*(\{[\s\S]*\})\s*$/);
35
+ if (jsonMatch) return jsonMatch[1];
36
+ const codeBlockMatch = response.match(/```(?:json)?\s*(\{[\s\S]*?\})\s*```/);
37
+ if (codeBlockMatch) return codeBlockMatch[1];
38
+ const jsonLikeMatch = response.match(/\{[\s\S]*\}/);
39
+ if (jsonLikeMatch) return jsonLikeMatch[0];
40
+ } catch {}
41
+ return response;
42
+ }
43
+ function normalizeJsonObject(obj, context = {}) {
44
+ if (null == obj) return obj;
45
+ if (Array.isArray(obj)) return obj.map((item)=>normalizeJsonObject(item, context));
46
+ if ('object' == typeof obj) {
47
+ const normalized = {};
48
+ for (const [key, value] of Object.entries(obj)){
49
+ const trimmedKey = key.trim();
50
+ const preserveStringValue = context.preserveStringValueKeys?.includes(trimmedKey) ?? false;
51
+ const normalizedValue = 'string' == typeof value ? preserveStringValue ? value : value.trim() : normalizeJsonObject(value, context);
52
+ normalized[trimmedKey] = normalizedValue;
53
+ }
54
+ return normalized;
55
+ }
56
+ if ('string' == typeof obj) return obj.trim();
57
+ return obj;
58
+ }
59
+ const parseNormalJson = (input, rawResponse, context)=>{
60
+ if (input?.match(/\((\d+),(\d+)\)/)) return input.match(/\((\d+),(\d+)\)/)?.slice(1).map(Number);
61
+ let parsed;
62
+ let lastError;
63
+ try {
64
+ parsed = JSON.parse(input);
65
+ return normalizeJsonObject(parsed, context);
66
+ } catch (error) {
67
+ lastError = error;
68
+ }
69
+ try {
70
+ parsed = JSON.parse((0, external_jsonrepair_namespaceObject.jsonrepair)(input));
71
+ return normalizeJsonObject(parsed, context);
72
+ } catch (error) {
73
+ lastError = error;
74
+ }
75
+ return {
76
+ parsed: void 0,
77
+ lastError,
78
+ rawResponse
79
+ };
80
+ };
81
+ function safeParseJson(raw, context) {
82
+ const cleanJsonString = extractJSONFromCodeBlock(raw);
83
+ const result = parseNormalJson(cleanJsonString, raw, context);
84
+ if (result && 'object' == typeof result && 'parsed' in result && void 0 === result.parsed) throw Error(`failed to parse LLM response into JSON. Error - ${String(result.lastError ?? 'unknown error')}. Response - \n ${raw}`);
85
+ return result;
86
+ }
87
+ const normalJsonParser = safeParseJson;
88
+ exports.extractJSONFromCodeBlock = __webpack_exports__.extractJSONFromCodeBlock;
89
+ exports.normalJsonParser = __webpack_exports__.normalJsonParser;
90
+ exports.safeParseJson = __webpack_exports__.safeParseJson;
91
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
92
+ "extractJSONFromCodeBlock",
93
+ "normalJsonParser",
94
+ "safeParseJson"
95
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
96
+ Object.defineProperty(exports, '__esModule', {
97
+ value: true
98
+ });
99
+
100
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-model/service-caller/json.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../src/ai-model/service-caller/json.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 { jsonrepair } from 'jsonrepair';\n\nexport function extractJSONFromCodeBlock(response: string) {\n try {\n // First, try to match a JSON object directly in the response\n const jsonMatch = response.match(/^\\s*(\\{[\\s\\S]*\\})\\s*$/);\n if (jsonMatch) {\n return jsonMatch[1];\n }\n\n // If no direct JSON object is found, try to extract JSON from a code block\n const codeBlockMatch = response.match(\n /```(?:json)?\\s*(\\{[\\s\\S]*?\\})\\s*```/,\n );\n if (codeBlockMatch) {\n return codeBlockMatch[1];\n }\n\n // If no code block is found, try to find a JSON-like structure in the text\n const jsonLikeMatch = response.match(/\\{[\\s\\S]*\\}/);\n if (jsonLikeMatch) {\n return jsonLikeMatch[0];\n }\n } catch {}\n // If no JSON-like structure is found, return the original response\n return response;\n}\n\nexport type JsonParserSource =\n | 'generic-object'\n | 'planning-action-param'\n | 'locate'\n | 'section-locator';\n\nexport interface JsonParserContext {\n source: JsonParserSource;\n preserveStringValueKeys?: string[];\n}\n\nexport type JsonParser = (raw: string, context?: JsonParserContext) => unknown;\n\n/**\n * Normalize a parsed JSON object by trimming whitespace from:\n * 1. All object keys (e.g., \" prompt \" -> \"prompt\")\n * 2. All string values (e.g., \" Tap \" -> \"Tap\")\n * This handles LLM output that may include leading/trailing spaces.\n */\nfunction normalizeJsonObject(\n obj: any,\n context: Pick<JsonParserContext, 'preserveStringValueKeys'> = {},\n): any {\n // Handle null and undefined\n if (obj === null || obj === undefined) {\n return obj;\n }\n\n // Handle arrays - recursively normalize each element\n if (Array.isArray(obj)) {\n return obj.map((item) => normalizeJsonObject(item, context));\n }\n\n // Handle objects\n if (typeof obj === 'object') {\n const normalized: any = {};\n\n for (const [key, value] of Object.entries(obj)) {\n // Trim the key to remove leading/trailing spaces\n const trimmedKey = key.trim();\n const preserveStringValue =\n context.preserveStringValueKeys?.includes(trimmedKey) ?? false;\n\n const normalizedValue =\n typeof value === 'string'\n ? preserveStringValue\n ? value\n : value.trim()\n : normalizeJsonObject(value, context);\n\n normalized[trimmedKey] = normalizedValue;\n }\n\n return normalized;\n }\n\n // Handle primitive strings\n if (typeof obj === 'string') {\n return obj.trim();\n }\n\n // Return other primitives as-is\n return obj;\n}\n\nconst parseNormalJson = (\n input: string,\n rawResponse: string,\n context?: JsonParserContext,\n) => {\n if (input?.match(/\\((\\d+),(\\d+)\\)/)) {\n return input\n .match(/\\((\\d+),(\\d+)\\)/)\n ?.slice(1)\n .map(Number);\n }\n\n let parsed: any;\n let lastError: unknown;\n try {\n parsed = JSON.parse(input);\n return normalizeJsonObject(parsed, context);\n } catch (error) {\n lastError = error;\n }\n try {\n parsed = JSON.parse(jsonrepair(input));\n return normalizeJsonObject(parsed, context);\n } catch (error) {\n lastError = error;\n }\n\n return { parsed: undefined, lastError, rawResponse };\n};\n\nexport function safeParseJson(raw: string, context?: JsonParserContext) {\n const cleanJsonString = extractJSONFromCodeBlock(raw);\n const result = parseNormalJson(cleanJsonString, raw, context);\n if (\n result &&\n typeof result === 'object' &&\n 'parsed' in result &&\n result.parsed === undefined\n ) {\n throw Error(\n `failed to parse LLM response into JSON. Error - ${String(\n result.lastError ?? 'unknown error',\n )}. Response - \\n ${raw}`,\n );\n }\n return result;\n}\n\nexport const normalJsonParser: JsonParser = safeParseJson;\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","extractJSONFromCodeBlock","response","jsonMatch","codeBlockMatch","jsonLikeMatch","normalizeJsonObject","context","Array","item","normalized","value","trimmedKey","preserveStringValue","normalizedValue","parseNormalJson","input","rawResponse","Number","parsed","lastError","JSON","error","jsonrepair","undefined","safeParseJson","raw","cleanJsonString","result","Error","String","normalJsonParser"],"mappings":"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"}
@@ -0,0 +1,117 @@
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
+ expandPointToBbox: ()=>expandPointToBbox,
28
+ finalizePixelBbox: ()=>finalizePixelBbox,
29
+ finalizeSectionLocatePixelBboxGroup: ()=>finalizeSectionLocatePixelBboxGroup,
30
+ mapNormalizedCoordinatesToPixelBbox: ()=>mapNormalizedCoordinatesToPixelBbox,
31
+ maxPixelIndex: ()=>maxPixelIndex,
32
+ normalizedCoordinateToPixelIndex: ()=>normalizedCoordinateToPixelIndex
33
+ });
34
+ function maxPixelIndex(size) {
35
+ return Math.max(size - 1, 0);
36
+ }
37
+ function normalizedCoordinateToPixelIndex(value, normalizedBy, size) {
38
+ return Math.round(value * maxPixelIndex(size) / normalizedBy);
39
+ }
40
+ function mapNormalizedCoordinatesToPixelBbox(coordinates, normalizedBy, width, height) {
41
+ const [left, top, right, bottom] = coordinates;
42
+ return [
43
+ normalizedCoordinateToPixelIndex(left, normalizedBy, width),
44
+ normalizedCoordinateToPixelIndex(top, normalizedBy, height),
45
+ normalizedCoordinateToPixelIndex(right, normalizedBy, width),
46
+ normalizedCoordinateToPixelIndex(bottom, normalizedBy, height)
47
+ ];
48
+ }
49
+ function expandPointToBbox(x, y, maxX, maxY, halfSize) {
50
+ return [
51
+ Math.max(0, x - halfSize),
52
+ Math.max(0, y - halfSize),
53
+ Math.min(maxX, x + halfSize),
54
+ Math.min(maxY, y + halfSize)
55
+ ];
56
+ }
57
+ function clamp(value, min, max) {
58
+ return Math.min(Math.max(value, min), max);
59
+ }
60
+ function assertFinitePixelBbox(pixelBbox, rawResult) {
61
+ if (4 !== pixelBbox.length || !pixelBbox.every((value)=>'number' == typeof value && Number.isFinite(value))) throw new Error(`invalid locate bbox data: ${JSON.stringify(rawResult)} `);
62
+ }
63
+ function assertPixelBboxOrder(pixelBbox, rawResult) {
64
+ const [left, top, right, bottom] = pixelBbox;
65
+ if (right >= left && bottom >= top) return;
66
+ throw new Error(`locate pixel bbox has invalid coordinate order: bbox=${JSON.stringify(rawResult)} pixelBbox=${JSON.stringify(pixelBbox)}`);
67
+ }
68
+ function assertPixelBboxInsideImage(pixelBbox, rawResult, width, height) {
69
+ const [left, top, right, bottom] = pixelBbox;
70
+ const maxRight = maxPixelIndex(width);
71
+ const maxBottom = maxPixelIndex(height);
72
+ const outOfImage = left < 0 || top < 0 || right > maxRight || bottom > maxBottom;
73
+ if (!outOfImage) return;
74
+ throw new Error(`locate pixel bbox is outside the image size: bbox=${JSON.stringify(rawResult)} imageSize=${width}x${height}`);
75
+ }
76
+ function finalizePixelBbox(pixelBbox, rawResult, { preparedSize, contentSize }) {
77
+ const { width, height } = preparedSize;
78
+ assertFinitePixelBbox(pixelBbox, rawResult);
79
+ assertPixelBboxOrder(pixelBbox, rawResult);
80
+ assertPixelBboxInsideImage(pixelBbox, rawResult, width, height);
81
+ const rightLimit = maxPixelIndex(contentSize?.width ?? width);
82
+ const bottomLimit = maxPixelIndex(contentSize?.height ?? height);
83
+ const [left, top, right, bottom] = pixelBbox;
84
+ return [
85
+ clamp(left, 0, rightLimit),
86
+ clamp(top, 0, bottomLimit),
87
+ clamp(right, 0, rightLimit),
88
+ clamp(bottom, 0, bottomLimit)
89
+ ];
90
+ }
91
+ function finalizeSectionLocatePixelBboxGroup(result, rawResult, ctx) {
92
+ return {
93
+ target: finalizePixelBbox(result.target, rawResult, ctx),
94
+ ...result.references ? {
95
+ references: result.references.map((reference)=>finalizePixelBbox(reference, rawResult, ctx))
96
+ } : {}
97
+ };
98
+ }
99
+ exports.expandPointToBbox = __webpack_exports__.expandPointToBbox;
100
+ exports.finalizePixelBbox = __webpack_exports__.finalizePixelBbox;
101
+ exports.finalizeSectionLocatePixelBboxGroup = __webpack_exports__.finalizeSectionLocatePixelBboxGroup;
102
+ exports.mapNormalizedCoordinatesToPixelBbox = __webpack_exports__.mapNormalizedCoordinatesToPixelBbox;
103
+ exports.maxPixelIndex = __webpack_exports__.maxPixelIndex;
104
+ exports.normalizedCoordinateToPixelIndex = __webpack_exports__.normalizedCoordinateToPixelIndex;
105
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
106
+ "expandPointToBbox",
107
+ "finalizePixelBbox",
108
+ "finalizeSectionLocatePixelBboxGroup",
109
+ "mapNormalizedCoordinatesToPixelBbox",
110
+ "maxPixelIndex",
111
+ "normalizedCoordinateToPixelIndex"
112
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
113
+ Object.defineProperty(exports, '__esModule', {
114
+ value: true
115
+ });
116
+
117
+ //# sourceMappingURL=bbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-model/shared/model-locate-result/bbox.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/shared/model-locate-result/bbox.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 {\n LocateResultBbox,\n LocateResultContext,\n PixelBbox,\n SectionLocatePixelBboxGroup,\n} from './types';\n\nexport function maxPixelIndex(size: number) {\n return Math.max(size - 1, 0);\n}\n\nexport function normalizedCoordinateToPixelIndex(\n value: number,\n normalizedBy: number,\n size: number,\n) {\n return Math.round((value * maxPixelIndex(size)) / normalizedBy);\n}\n\nexport function mapNormalizedCoordinatesToPixelBbox(\n coordinates: LocateResultBbox,\n normalizedBy: number,\n width: number,\n height: number,\n): PixelBbox {\n // PixelBbox uses inclusive pixel indexes, so normalized coordinates map to\n // size - 1.\n const [left, top, right, bottom] = coordinates;\n return [\n normalizedCoordinateToPixelIndex(left, normalizedBy, width),\n normalizedCoordinateToPixelIndex(top, normalizedBy, height),\n normalizedCoordinateToPixelIndex(right, normalizedBy, width),\n normalizedCoordinateToPixelIndex(bottom, normalizedBy, height),\n ];\n}\n\nexport function expandPointToBbox(\n x: number,\n y: number,\n maxX: number,\n maxY: number,\n halfSize: number,\n): LocateResultBbox {\n return [\n Math.max(0, x - halfSize),\n Math.max(0, y - halfSize),\n Math.min(maxX, x + halfSize),\n Math.min(maxY, y + halfSize),\n ];\n}\n\nfunction clamp(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n}\n\nfunction assertFinitePixelBbox(\n pixelBbox: readonly number[],\n rawResult: unknown,\n): asserts pixelBbox is PixelBbox {\n if (\n pixelBbox.length !== 4 ||\n !pixelBbox.every(\n (value) => typeof value === 'number' && Number.isFinite(value),\n )\n ) {\n throw new Error(`invalid locate bbox data: ${JSON.stringify(rawResult)} `);\n }\n}\n\nfunction assertPixelBboxOrder(pixelBbox: PixelBbox, rawResult: unknown) {\n const [left, top, right, bottom] = pixelBbox;\n if (right >= left && bottom >= top) {\n return;\n }\n\n throw new Error(\n `locate pixel bbox has invalid coordinate order: bbox=${JSON.stringify(\n rawResult,\n )} pixelBbox=${JSON.stringify(pixelBbox)}`,\n );\n}\n\nfunction assertPixelBboxInsideImage(\n pixelBbox: PixelBbox,\n rawResult: unknown,\n width: number,\n height: number,\n) {\n const [left, top, right, bottom] = pixelBbox;\n const maxRight = maxPixelIndex(width);\n const maxBottom = maxPixelIndex(height);\n const outOfImage =\n left < 0 || top < 0 || right > maxRight || bottom > maxBottom;\n\n if (!outOfImage) {\n return;\n }\n\n throw new Error(\n `locate pixel bbox is outside the image size: bbox=${JSON.stringify(\n rawResult,\n )} imageSize=${width}x${height}`,\n );\n}\n\nexport function finalizePixelBbox(\n pixelBbox: PixelBbox,\n rawResult: unknown,\n { preparedSize, contentSize }: LocateResultContext,\n): PixelBbox {\n const { width, height } = preparedSize;\n assertFinitePixelBbox(pixelBbox, rawResult);\n assertPixelBboxOrder(pixelBbox, rawResult);\n assertPixelBboxInsideImage(pixelBbox, rawResult, width, height);\n\n const rightLimit = maxPixelIndex(contentSize?.width ?? width);\n const bottomLimit = maxPixelIndex(contentSize?.height ?? height);\n const [left, top, right, bottom] = pixelBbox;\n\n return [\n clamp(left, 0, rightLimit),\n clamp(top, 0, bottomLimit),\n clamp(right, 0, rightLimit),\n clamp(bottom, 0, bottomLimit),\n ];\n}\n\nexport function finalizeSectionLocatePixelBboxGroup(\n result: SectionLocatePixelBboxGroup,\n rawResult: unknown,\n ctx: LocateResultContext,\n): SectionLocatePixelBboxGroup {\n return {\n target: finalizePixelBbox(result.target, rawResult, ctx),\n ...(result.references\n ? {\n references: result.references.map((reference) =>\n finalizePixelBbox(reference, rawResult, ctx),\n ),\n }\n : {}),\n };\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","maxPixelIndex","size","Math","normalizedCoordinateToPixelIndex","value","normalizedBy","mapNormalizedCoordinatesToPixelBbox","coordinates","width","height","left","top","right","bottom","expandPointToBbox","x","y","maxX","maxY","halfSize","clamp","min","max","assertFinitePixelBbox","pixelBbox","rawResult","Number","Error","JSON","assertPixelBboxOrder","assertPixelBboxInsideImage","maxRight","maxBottom","outOfImage","finalizePixelBbox","preparedSize","contentSize","rightLimit","bottomLimit","finalizeSectionLocatePixelBboxGroup","result","ctx","reference"],"mappings":"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"}
@@ -0,0 +1,130 @@
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
+ createLocateResultAdapter: ()=>createLocateResultAdapter
28
+ });
29
+ const locate_result_coordinates_js_namespaceObject = require("../../prompts/locate-result-coordinates.js");
30
+ const external_bbox_js_namespaceObject = require("./bbox.js");
31
+ const external_parse_js_namespaceObject = require("./parse.js");
32
+ const external_pixel_bbox_mapper_js_namespaceObject = require("./pixel-bbox-mapper.js");
33
+ const rawLocateValueFields = {
34
+ primary: {
35
+ bbox: [
36
+ 'bbox',
37
+ 'bbox_2d'
38
+ ],
39
+ point: [
40
+ 'point'
41
+ ]
42
+ },
43
+ references: {
44
+ bbox: [
45
+ 'references_bbox',
46
+ 'references_bbox_2d'
47
+ ],
48
+ point: [
49
+ 'references_point'
50
+ ]
51
+ }
52
+ };
53
+ function resolveLocateResultCoordinates(coordinates) {
54
+ const order = coordinates.order ?? 'xy';
55
+ if (void 0 !== coordinates.normalizedBy && coordinates.normalizedBy <= 0) throw new Error(`locate result coordinates normalizedBy must be positive: ${coordinates.normalizedBy}`);
56
+ return {
57
+ shape: coordinates.shape,
58
+ order,
59
+ normalizedBy: coordinates.normalizedBy
60
+ };
61
+ }
62
+ function extractFirstObjectField(input, fields) {
63
+ if (!input || 'object' != typeof input) return;
64
+ const record = input;
65
+ const matchedField = fields.find((field)=>void 0 !== record[field]);
66
+ return matchedField ? record[matchedField] : void 0;
67
+ }
68
+ function normalizeReferenceResults(input) {
69
+ if (null == input) return [];
70
+ return Array.isArray(input) ? input : [
71
+ input
72
+ ];
73
+ }
74
+ function pickRawLocateValue(input, resolvedCoordinates, purpose) {
75
+ const fields = rawLocateValueFields[purpose][resolvedCoordinates.shape];
76
+ return extractFirstObjectField(input, fields);
77
+ }
78
+ function extractPrimaryRawLocateValue(input, resolvedCoordinates) {
79
+ const pickedRawResult = pickRawLocateValue(input, resolvedCoordinates, 'primary');
80
+ if (void 0 === pickedRawResult && null !== input && 'object' == typeof input && !Array.isArray(input)) throw new Error('locate response does not contain a recognizable locate result field');
81
+ return void 0 === pickedRawResult ? input : pickedRawResult;
82
+ }
83
+ function extractReferenceRawLocateValues(input, resolvedCoordinates) {
84
+ return normalizeReferenceResults(pickRawLocateValue(input, resolvedCoordinates, 'references'));
85
+ }
86
+ function createStandardLocateResultAdapterImplementation(config) {
87
+ const resolvedCoordinates = resolveLocateResultCoordinates(config.coordinates);
88
+ const parseRawLocateValue = config.parseRawLocateValue ?? ((input)=>(0, external_parse_js_namespaceObject.parseNumericLocateResult)(resolvedCoordinates, input));
89
+ const mapLocateResultToPixelBbox = config.mapLocateResultToPixelBbox ?? ((result, ctx)=>(0, external_pixel_bbox_mapper_js_namespaceObject.mapLocateResultToPixelBboxByCoordinates)(result, ctx, resolvedCoordinates));
90
+ const mapRawLocateValueToPixelBbox = (rawResult, ctx)=>mapLocateResultToPixelBbox(parseRawLocateValue(rawResult), ctx);
91
+ const adaptRawLocateInputToPixelBbox = (input, ctx)=>mapRawLocateValueToPixelBbox(extractPrimaryRawLocateValue(input, resolvedCoordinates), ctx);
92
+ const adaptElementLocateResultToPixelBbox = (input, ctx)=>adaptRawLocateInputToPixelBbox(input, ctx);
93
+ const adaptPlanningParamToPixelBbox = (input, ctx)=>adaptRawLocateInputToPixelBbox(input, ctx);
94
+ const adaptSectionLocateResultToPixelBboxGroup = (input, ctx)=>{
95
+ const target = adaptRawLocateInputToPixelBbox(input, ctx);
96
+ const references = extractReferenceRawLocateValues(input, resolvedCoordinates).map((raw)=>mapRawLocateValueToPixelBbox(raw, ctx));
97
+ return {
98
+ target,
99
+ ...references.length > 0 ? {
100
+ references
101
+ } : {}
102
+ };
103
+ };
104
+ return {
105
+ kind: 'standard',
106
+ promptSpec: (0, locate_result_coordinates_js_namespaceObject.createLocateResultPromptSpec)(resolvedCoordinates),
107
+ adaptElementLocateResultToPixelBbox,
108
+ adaptSectionLocateResultToPixelBboxGroup,
109
+ adaptPlanningParamToPixelBbox
110
+ };
111
+ }
112
+ function createLocateResultAdapter(config) {
113
+ const adapter = 'custom' === config.kind ? config : createStandardLocateResultAdapterImplementation(config);
114
+ return {
115
+ kind: adapter.kind,
116
+ promptSpec: adapter.promptSpec,
117
+ adaptElementLocateResultToPixelBbox: (input, ctx)=>(0, external_bbox_js_namespaceObject.finalizePixelBbox)(adapter.adaptElementLocateResultToPixelBbox(input, ctx), input, ctx),
118
+ adaptSectionLocateResultToPixelBboxGroup: (input, ctx)=>(0, external_bbox_js_namespaceObject.finalizeSectionLocatePixelBboxGroup)(adapter.adaptSectionLocateResultToPixelBboxGroup(input, ctx), input, ctx),
119
+ adaptPlanningParamToPixelBbox: (input, ctx)=>(0, external_bbox_js_namespaceObject.finalizePixelBbox)(adapter.adaptPlanningParamToPixelBbox(input, ctx), input, ctx)
120
+ };
121
+ }
122
+ exports.createLocateResultAdapter = __webpack_exports__.createLocateResultAdapter;
123
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
124
+ "createLocateResultAdapter"
125
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
126
+ Object.defineProperty(exports, '__esModule', {
127
+ value: true
128
+ });
129
+
130
+ //# sourceMappingURL=factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-model/shared/model-locate-result/factory.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/shared/model-locate-result/factory.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 { createLocateResultPromptSpec } from '../../prompts/locate-result-coordinates';\nimport { finalizePixelBbox, finalizeSectionLocatePixelBboxGroup } from './bbox';\nimport { parseNumericLocateResult } from './parse';\nimport { mapLocateResultToPixelBboxByCoordinates } from './pixel-bbox-mapper';\nimport type {\n LocateResultAdapter,\n LocateResultAdapterDefinition,\n LocateResultContext,\n LocateResultCoordinates,\n PixelBbox,\n ResolvedLocateResultCoordinates,\n SectionLocatePixelBboxGroup,\n StandardLocateResultAdapterDefinition,\n} from './types';\n\ntype RawLocateValuePurpose = 'primary' | 'references';\n\nconst rawLocateValueFields = {\n primary: {\n bbox: ['bbox', 'bbox_2d'],\n point: ['point'],\n },\n references: {\n bbox: ['references_bbox', 'references_bbox_2d'],\n point: ['references_point'],\n },\n} as const;\n\nfunction resolveLocateResultCoordinates(\n coordinates: LocateResultCoordinates,\n): ResolvedLocateResultCoordinates {\n const order = coordinates.order ?? 'xy';\n if (coordinates.normalizedBy !== undefined && coordinates.normalizedBy <= 0) {\n throw new Error(\n `locate result coordinates normalizedBy must be positive: ${coordinates.normalizedBy}`,\n );\n }\n return {\n shape: coordinates.shape,\n order,\n normalizedBy: coordinates.normalizedBy,\n };\n}\n\nfunction extractFirstObjectField(\n input: unknown,\n fields: readonly string[],\n): unknown | undefined {\n if (!input || typeof input !== 'object') {\n return undefined;\n }\n\n const record = input as Record<string, unknown>;\n const matchedField = fields.find((field) => record[field] !== undefined);\n return matchedField ? record[matchedField] : undefined;\n}\n\nfunction normalizeReferenceResults(input: unknown): unknown[] {\n if (input === undefined || input === null) {\n return [];\n }\n return Array.isArray(input) ? input : [input];\n}\n\nfunction pickRawLocateValue(\n input: unknown,\n resolvedCoordinates: ResolvedLocateResultCoordinates,\n purpose: RawLocateValuePurpose,\n): unknown | undefined {\n const fields = rawLocateValueFields[purpose][resolvedCoordinates.shape];\n return extractFirstObjectField(input, fields);\n}\n\nfunction extractPrimaryRawLocateValue(\n input: unknown,\n resolvedCoordinates: ResolvedLocateResultCoordinates,\n): unknown {\n const pickedRawResult = pickRawLocateValue(\n input,\n resolvedCoordinates,\n 'primary',\n );\n if (\n pickedRawResult === undefined &&\n input !== null &&\n typeof input === 'object' &&\n !Array.isArray(input)\n ) {\n throw new Error(\n 'locate response does not contain a recognizable locate result field',\n );\n }\n\n return pickedRawResult === undefined ? input : pickedRawResult;\n}\n\nfunction extractReferenceRawLocateValues(\n input: unknown,\n resolvedCoordinates: ResolvedLocateResultCoordinates,\n): unknown[] {\n return normalizeReferenceResults(\n pickRawLocateValue(input, resolvedCoordinates, 'references'),\n );\n}\n\nfunction createStandardLocateResultAdapterImplementation(\n config: StandardLocateResultAdapterDefinition,\n): LocateResultAdapter {\n const resolvedCoordinates = resolveLocateResultCoordinates(\n config.coordinates,\n );\n const parseRawLocateValue =\n config.parseRawLocateValue ??\n ((input) => parseNumericLocateResult(resolvedCoordinates, input));\n const mapLocateResultToPixelBbox =\n config.mapLocateResultToPixelBbox ??\n ((result, ctx) =>\n mapLocateResultToPixelBboxByCoordinates(\n result,\n ctx,\n resolvedCoordinates,\n ));\n\n const mapRawLocateValueToPixelBbox = (\n rawResult: unknown,\n ctx: LocateResultContext,\n ) => mapLocateResultToPixelBbox(parseRawLocateValue(rawResult), ctx);\n // Keep error semantics out of the adapter: callers may preserve, ignore, or\n // fail fast on `error` / `errors`, while this layer only extracts coordinates.\n const adaptRawLocateInputToPixelBbox = (\n input: unknown,\n ctx: LocateResultContext,\n ): PixelBbox =>\n mapRawLocateValueToPixelBbox(\n extractPrimaryRawLocateValue(input, resolvedCoordinates),\n ctx,\n );\n const adaptElementLocateResultToPixelBbox = (\n input: unknown,\n ctx: LocateResultContext,\n ): PixelBbox => adaptRawLocateInputToPixelBbox(input, ctx);\n const adaptPlanningParamToPixelBbox = (\n input: unknown,\n ctx: LocateResultContext,\n ): PixelBbox => adaptRawLocateInputToPixelBbox(input, ctx);\n const adaptSectionLocateResultToPixelBboxGroup = (\n input: unknown,\n ctx: LocateResultContext,\n ): SectionLocatePixelBboxGroup => {\n const target = adaptRawLocateInputToPixelBbox(input, ctx);\n const references = extractReferenceRawLocateValues(\n input,\n resolvedCoordinates,\n ).map((raw) => mapRawLocateValueToPixelBbox(raw, ctx));\n return {\n target,\n ...(references.length > 0 ? { references } : {}),\n };\n };\n return {\n kind: 'standard',\n promptSpec: createLocateResultPromptSpec(resolvedCoordinates),\n adaptElementLocateResultToPixelBbox,\n adaptSectionLocateResultToPixelBboxGroup,\n adaptPlanningParamToPixelBbox,\n };\n}\n\nexport function createLocateResultAdapter(\n config: LocateResultAdapterDefinition,\n): LocateResultAdapter {\n const adapter: LocateResultAdapter =\n config.kind === 'custom'\n ? config\n : createStandardLocateResultAdapterImplementation(config);\n\n return {\n kind: adapter.kind,\n promptSpec: adapter.promptSpec,\n adaptElementLocateResultToPixelBbox: (input, ctx) =>\n finalizePixelBbox(\n adapter.adaptElementLocateResultToPixelBbox(input, ctx),\n input,\n ctx,\n ),\n adaptSectionLocateResultToPixelBboxGroup: (input, ctx) =>\n finalizeSectionLocatePixelBboxGroup(\n adapter.adaptSectionLocateResultToPixelBboxGroup(input, ctx),\n input,\n ctx,\n ),\n adaptPlanningParamToPixelBbox: (input, ctx) =>\n finalizePixelBbox(\n adapter.adaptPlanningParamToPixelBbox(input, ctx),\n input,\n ctx,\n ),\n };\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","rawLocateValueFields","resolveLocateResultCoordinates","coordinates","order","undefined","Error","extractFirstObjectField","input","fields","record","matchedField","field","normalizeReferenceResults","Array","pickRawLocateValue","resolvedCoordinates","purpose","extractPrimaryRawLocateValue","pickedRawResult","extractReferenceRawLocateValues","createStandardLocateResultAdapterImplementation","config","parseRawLocateValue","parseNumericLocateResult","mapLocateResultToPixelBbox","result","ctx","mapLocateResultToPixelBboxByCoordinates","mapRawLocateValueToPixelBbox","rawResult","adaptRawLocateInputToPixelBbox","adaptElementLocateResultToPixelBbox","adaptPlanningParamToPixelBbox","adaptSectionLocateResultToPixelBboxGroup","target","references","raw","createLocateResultPromptSpec","createLocateResultAdapter","adapter","finalizePixelBbox","finalizeSectionLocatePixelBboxGroup"],"mappings":"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"}
@@ -24,19 +24,19 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- bboxDescription: ()=>bboxDescription
27
+ createLocateResultAdapter: ()=>external_factory_js_namespaceObject.createLocateResultAdapter,
28
+ unwrapCoordinateListLikeInput: ()=>external_parse_js_namespaceObject.unwrapCoordinateListLikeInput
28
29
  });
29
- function bboxDescription(modelFamily) {
30
- if ('gemini' === modelFamily) return 'box_2d bounding box for the target element as [ymin, xmin, ymax, xmax] normalized to 0-1000 relative to the screenshot. Do NOT use pixel coordinates or screenshot width/height.';
31
- if ('qwen2.5-vl' === modelFamily || 'gpt-5' === modelFamily) return '2d bounding box as [xmin, ymin, xmax, ymax] in pixel coordinates relative to the screenshot.';
32
- return '2d bounding box as [xmin, ymin, xmax, ymax] normalized to 0-1000 relative to the screenshot. Do NOT use pixel coordinates or screenshot width/height.';
33
- }
34
- exports.bboxDescription = __webpack_exports__.bboxDescription;
30
+ const external_factory_js_namespaceObject = require("./factory.js");
31
+ const external_parse_js_namespaceObject = require("./parse.js");
32
+ exports.createLocateResultAdapter = __webpack_exports__.createLocateResultAdapter;
33
+ exports.unwrapCoordinateListLikeInput = __webpack_exports__.unwrapCoordinateListLikeInput;
35
34
  for(var __rspack_i in __webpack_exports__)if (-1 === [
36
- "bboxDescription"
35
+ "createLocateResultAdapter",
36
+ "unwrapCoordinateListLikeInput"
37
37
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
38
38
  Object.defineProperty(exports, '__esModule', {
39
39
  value: true
40
40
  });
41
41
 
42
- //# sourceMappingURL=common.js.map
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-model/shared/model-locate-result/index.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object"],"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};"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol"],"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"}
@@ -0,0 +1,78 @@
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
+ parseNumericLocateResult: ()=>parseNumericLocateResult,
28
+ unwrapCoordinateListLikeInput: ()=>unwrapCoordinateListLikeInput
29
+ });
30
+ function unwrapCoordinateListLikeInput(coordinateList) {
31
+ if (Array.isArray(coordinateList)) {
32
+ if (Array.isArray(coordinateList[0])) return coordinateList[0];
33
+ }
34
+ return coordinateList;
35
+ }
36
+ function parseCoordinateList(input, label) {
37
+ const unwrapped = unwrapCoordinateListLikeInput(input);
38
+ const values = 'string' == typeof unwrapped ? unwrapped.trim().split(/[\s,]+/).filter(Boolean) : unwrapped;
39
+ if (!Array.isArray(values)) throw new Error(`invalid ${label} data: ${JSON.stringify(input)} `);
40
+ const numericValues = values.map((value)=>'number' == typeof value ? value : Number(value));
41
+ if (!numericValues.every((value)=>Number.isFinite(value))) throw new Error(`invalid ${label} data: ${JSON.stringify(input)} `);
42
+ return numericValues;
43
+ }
44
+ function parseNumericLocateResult(resolvedCoordinates, input) {
45
+ if ('point' === resolvedCoordinates.shape) {
46
+ const point = parseCoordinateList(input, 'point');
47
+ if (point.length < 2) throw new Error(`invalid point data: ${JSON.stringify(input)} `);
48
+ return {
49
+ type: 'point',
50
+ coordinates: [
51
+ point[0],
52
+ point[1]
53
+ ]
54
+ };
55
+ }
56
+ const bbox = parseCoordinateList(input, 'bbox');
57
+ if (4 !== bbox.length) throw new Error(`invalid bbox data: ${JSON.stringify(input)} `);
58
+ return {
59
+ type: 'bbox',
60
+ coordinates: [
61
+ bbox[0],
62
+ bbox[1],
63
+ bbox[2],
64
+ bbox[3]
65
+ ]
66
+ };
67
+ }
68
+ exports.parseNumericLocateResult = __webpack_exports__.parseNumericLocateResult;
69
+ exports.unwrapCoordinateListLikeInput = __webpack_exports__.unwrapCoordinateListLikeInput;
70
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
71
+ "parseNumericLocateResult",
72
+ "unwrapCoordinateListLikeInput"
73
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
74
+ Object.defineProperty(exports, '__esModule', {
75
+ value: true
76
+ });
77
+
78
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-model/shared/model-locate-result/parse.js","sources":["webpack/runtime/define_property_getters","webpack/runtime/has_own_property","webpack/runtime/make_namespace_object","../../../../../src/ai-model/shared/model-locate-result/parse.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 {\n LocateResultValue,\n ResolvedLocateResultCoordinates,\n} from './types';\n\ntype CoordinateListLikeInput =\n | number[]\n | string[]\n | string\n | (number[] | string[])[];\n\nexport function unwrapCoordinateListLikeInput(\n coordinateList: CoordinateListLikeInput,\n): number[] | string[] | string {\n if (Array.isArray(coordinateList)) {\n if (Array.isArray(coordinateList[0])) {\n return coordinateList[0] as number[] | string[];\n }\n return coordinateList as number[] | string[];\n }\n return coordinateList as string;\n}\n\nfunction parseCoordinateList(input: unknown, label: string): number[] {\n const unwrapped = unwrapCoordinateListLikeInput(\n input as CoordinateListLikeInput,\n );\n const values =\n typeof unwrapped === 'string'\n ? unwrapped\n .trim()\n .split(/[\\s,]+/)\n .filter(Boolean)\n : unwrapped;\n\n if (!Array.isArray(values)) {\n throw new Error(`invalid ${label} data: ${JSON.stringify(input)} `);\n }\n\n const numericValues = values.map((value) =>\n typeof value === 'number' ? value : Number(value),\n );\n\n if (!numericValues.every((value) => Number.isFinite(value))) {\n throw new Error(`invalid ${label} data: ${JSON.stringify(input)} `);\n }\n\n return numericValues;\n}\n\nexport function parseNumericLocateResult(\n resolvedCoordinates: ResolvedLocateResultCoordinates,\n input: unknown,\n): LocateResultValue {\n if (resolvedCoordinates.shape === 'point') {\n const point = parseCoordinateList(input, 'point');\n if (point.length < 2) {\n throw new Error(`invalid point data: ${JSON.stringify(input)} `);\n }\n return { type: 'point', coordinates: [point[0], point[1]] };\n }\n\n const bbox = parseCoordinateList(input, 'bbox');\n if (bbox.length !== 4) {\n throw new Error(`invalid bbox data: ${JSON.stringify(input)} `);\n }\n\n return {\n type: 'bbox',\n coordinates: [bbox[0], bbox[1], bbox[2], bbox[3]],\n };\n}\n"],"names":["__webpack_require__","definition","key","Object","obj","prop","Symbol","unwrapCoordinateListLikeInput","coordinateList","Array","parseCoordinateList","input","label","unwrapped","values","Boolean","Error","JSON","numericValues","value","Number","parseNumericLocateResult","resolvedCoordinates","point","bbox"],"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;;;;;;;;ACKO,SAASI,8BACdC,cAAuC;IAEvC,IAAIC,MAAM,OAAO,CAACD,iBAChB;QAAA,IAAIC,MAAM,OAAO,CAACD,cAAc,CAAC,EAAE,GACjC,OAAOA,cAAc,CAAC,EAAE;IAC1B;IAGF,OAAOA;AACT;AAEA,SAASE,oBAAoBC,KAAc,EAAEC,KAAa;IACxD,MAAMC,YAAYN,8BAChBI;IAEF,MAAMG,SACJ,AAAqB,YAArB,OAAOD,YACHA,UACG,IAAI,GACJ,KAAK,CAAC,UACN,MAAM,CAACE,WACVF;IAEN,IAAI,CAACJ,MAAM,OAAO,CAACK,SACjB,MAAM,IAAIE,MAAM,CAAC,QAAQ,EAAEJ,MAAM,OAAO,EAAEK,KAAK,SAAS,CAACN,OAAO,CAAC,CAAC;IAGpE,MAAMO,gBAAgBJ,OAAO,GAAG,CAAC,CAACK,QAChC,AAAiB,YAAjB,OAAOA,QAAqBA,QAAQC,OAAOD;IAG7C,IAAI,CAACD,cAAc,KAAK,CAAC,CAACC,QAAUC,OAAO,QAAQ,CAACD,SAClD,MAAM,IAAIH,MAAM,CAAC,QAAQ,EAAEJ,MAAM,OAAO,EAAEK,KAAK,SAAS,CAACN,OAAO,CAAC,CAAC;IAGpE,OAAOO;AACT;AAEO,SAASG,yBACdC,mBAAoD,EACpDX,KAAc;IAEd,IAAIW,AAA8B,YAA9BA,oBAAoB,KAAK,EAAc;QACzC,MAAMC,QAAQb,oBAAoBC,OAAO;QACzC,IAAIY,MAAM,MAAM,GAAG,GACjB,MAAM,IAAIP,MAAM,CAAC,oBAAoB,EAAEC,KAAK,SAAS,CAACN,OAAO,CAAC,CAAC;QAEjE,OAAO;YAAE,MAAM;YAAS,aAAa;gBAACY,KAAK,CAAC,EAAE;gBAAEA,KAAK,CAAC,EAAE;aAAC;QAAC;IAC5D;IAEA,MAAMC,OAAOd,oBAAoBC,OAAO;IACxC,IAAIa,AAAgB,MAAhBA,KAAK,MAAM,EACb,MAAM,IAAIR,MAAM,CAAC,mBAAmB,EAAEC,KAAK,SAAS,CAACN,OAAO,CAAC,CAAC;IAGhE,OAAO;QACL,MAAM;QACN,aAAa;YAACa,IAAI,CAAC,EAAE;YAAEA,IAAI,CAAC,EAAE;YAAEA,IAAI,CAAC,EAAE;YAAEA,IAAI,CAAC,EAAE;SAAC;IACnD;AACF"}
@@ -0,0 +1,98 @@
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
+ mapLocateResultToPixelBboxByCoordinates: ()=>mapLocateResultToPixelBboxByCoordinates
28
+ });
29
+ const external_bbox_js_namespaceObject = require("./bbox.js");
30
+ const defaultBboxSize = 20;
31
+ function resolveCoordinateLimits(result, resolvedCoordinates, width, height) {
32
+ const normalizedBy = resolvedCoordinates.normalizedBy;
33
+ if (void 0 !== normalizedBy) return result.coordinates.map(()=>normalizedBy);
34
+ if ('bbox' === result.type) return 'yx' === resolvedCoordinates.order ? [
35
+ height,
36
+ width,
37
+ height,
38
+ width
39
+ ] : [
40
+ width,
41
+ height,
42
+ width,
43
+ height
44
+ ];
45
+ return 'yx' === resolvedCoordinates.order ? [
46
+ height,
47
+ width
48
+ ] : [
49
+ width,
50
+ height
51
+ ];
52
+ }
53
+ function assertLocateResultCoordinates(result, resolvedCoordinates, width, height) {
54
+ const normalizedBy = resolvedCoordinates.normalizedBy;
55
+ const limits = resolveCoordinateLimits(result, resolvedCoordinates, width, height);
56
+ const outOfRange = result.coordinates.some((value, index)=>{
57
+ const limit = limits[index];
58
+ return 'number' != typeof value || !Number.isFinite(value) || value < 0 || value > limit;
59
+ });
60
+ if (!outOfRange) return;
61
+ const source = void 0 !== normalizedBy ? `normalized range [0, ${normalizedBy}]` : `image size [0, ${width}]x[0, ${height}]`;
62
+ const normalizedInfo = void 0 !== normalizedBy ? ` normalizedBy=${normalizedBy}` : '';
63
+ throw new Error(`locate result coordinates ${JSON.stringify(result.coordinates)} exceed ${source}. shape=${resolvedCoordinates.shape} order=${resolvedCoordinates.order}${normalizedInfo} limits=${JSON.stringify(limits)}`);
64
+ }
65
+ function reorderCoordinatesToXy(coordinates, order) {
66
+ if ('yx' !== order) return coordinates;
67
+ if (4 === coordinates.length) {
68
+ const [top, left, bottom, right] = coordinates;
69
+ return [
70
+ left,
71
+ top,
72
+ right,
73
+ bottom
74
+ ];
75
+ }
76
+ const [y, x] = coordinates;
77
+ return [
78
+ x,
79
+ y
80
+ ];
81
+ }
82
+ function mapLocateResultToPixelBboxByCoordinates(result, { preparedSize }, resolvedCoordinates) {
83
+ const { width, height } = preparedSize;
84
+ const normalizedBy = resolvedCoordinates.normalizedBy;
85
+ assertLocateResultCoordinates(result, resolvedCoordinates, width, height);
86
+ const xyCoordinates = reorderCoordinatesToXy(result.coordinates, resolvedCoordinates.order);
87
+ const xyBbox = 4 === xyCoordinates.length ? xyCoordinates : (0, external_bbox_js_namespaceObject.expandPointToBbox)(xyCoordinates[0], xyCoordinates[1], normalizedBy ?? (0, external_bbox_js_namespaceObject.maxPixelIndex)(width), normalizedBy ?? (0, external_bbox_js_namespaceObject.maxPixelIndex)(height), void 0 === normalizedBy ? defaultBboxSize / 2 : normalizedBy / 100);
88
+ return void 0 === normalizedBy ? xyBbox : (0, external_bbox_js_namespaceObject.mapNormalizedCoordinatesToPixelBbox)(xyBbox, normalizedBy, width, height);
89
+ }
90
+ exports.mapLocateResultToPixelBboxByCoordinates = __webpack_exports__.mapLocateResultToPixelBboxByCoordinates;
91
+ for(var __rspack_i in __webpack_exports__)if (-1 === [
92
+ "mapLocateResultToPixelBboxByCoordinates"
93
+ ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
94
+ Object.defineProperty(exports, '__esModule', {
95
+ value: true
96
+ });
97
+
98
+ //# sourceMappingURL=pixel-bbox-mapper.js.map