@xiuchang-midscene/shared 2.0.2

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 (382) hide show
  1. package/README.md +9 -0
  2. package/dist/es/baseDB.mjs +109 -0
  3. package/dist/es/baseDB.mjs.bak +109 -0
  4. package/dist/es/build/copy-static.mjs +31 -0
  5. package/dist/es/build/copy-static.mjs.bak +31 -0
  6. package/dist/es/build/rspack-config.mjs +4 -0
  7. package/dist/es/build/rspack-config.mjs.bak +4 -0
  8. package/dist/es/cli/cli-runner.mjs +140 -0
  9. package/dist/es/cli/cli-runner.mjs.bak +140 -0
  10. package/dist/es/cli/index.mjs +2 -0
  11. package/dist/es/cli/index.mjs.bak +2 -0
  12. package/dist/es/common.mjs +37 -0
  13. package/dist/es/common.mjs.bak +37 -0
  14. package/dist/es/constants/example-code.mjs +223 -0
  15. package/dist/es/constants/example-code.mjs.bak +223 -0
  16. package/dist/es/constants/index.mjs +23 -0
  17. package/dist/es/constants/index.mjs.bak +23 -0
  18. package/dist/es/env/basic.mjs +6 -0
  19. package/dist/es/env/basic.mjs.bak +6 -0
  20. package/dist/es/env/constants.mjs +70 -0
  21. package/dist/es/env/constants.mjs.bak +70 -0
  22. package/dist/es/env/global-config-manager.mjs +94 -0
  23. package/dist/es/env/global-config-manager.mjs.bak +94 -0
  24. package/dist/es/env/helper.mjs +43 -0
  25. package/dist/es/env/helper.mjs.bak +43 -0
  26. package/dist/es/env/index.mjs +5 -0
  27. package/dist/es/env/index.mjs.bak +5 -0
  28. package/dist/es/env/init-debug.mjs +18 -0
  29. package/dist/es/env/init-debug.mjs.bak +18 -0
  30. package/dist/es/env/model-config-manager.mjs +79 -0
  31. package/dist/es/env/model-config-manager.mjs.bak +79 -0
  32. package/dist/es/env/parse-model-config.mjs +132 -0
  33. package/dist/es/env/parse-model-config.mjs.bak +132 -0
  34. package/dist/es/env/types.mjs +220 -0
  35. package/dist/es/env/types.mjs.bak +220 -0
  36. package/dist/es/env/utils.mjs +26 -0
  37. package/dist/es/env/utils.mjs.bak +26 -0
  38. package/dist/es/extractor/constants.mjs +2 -0
  39. package/dist/es/extractor/constants.mjs.bak +2 -0
  40. package/dist/es/extractor/debug.mjs +6 -0
  41. package/dist/es/extractor/debug.mjs.bak +6 -0
  42. package/dist/es/extractor/dom-util.mjs +92 -0
  43. package/dist/es/extractor/dom-util.mjs.bak +92 -0
  44. package/dist/es/extractor/index.mjs +5 -0
  45. package/dist/es/extractor/index.mjs.bak +5 -0
  46. package/dist/es/extractor/locator.mjs +250 -0
  47. package/dist/es/extractor/locator.mjs.bak +250 -0
  48. package/dist/es/extractor/tree.mjs +78 -0
  49. package/dist/es/extractor/tree.mjs.bak +78 -0
  50. package/dist/es/extractor/util.mjs +245 -0
  51. package/dist/es/extractor/util.mjs.bak +245 -0
  52. package/dist/es/extractor/web-extractor.mjs +303 -0
  53. package/dist/es/extractor/web-extractor.mjs.bak +303 -0
  54. package/dist/es/img/box-select.mjs +824 -0
  55. package/dist/es/img/box-select.mjs.bak +824 -0
  56. package/dist/es/img/canvas-fallback.mjs +238 -0
  57. package/dist/es/img/canvas-fallback.mjs.bak +238 -0
  58. package/dist/es/img/get-photon.mjs +45 -0
  59. package/dist/es/img/get-photon.mjs.bak +45 -0
  60. package/dist/es/img/get-sharp.mjs +11 -0
  61. package/dist/es/img/get-sharp.mjs.bak +11 -0
  62. package/dist/es/img/index.mjs +4 -0
  63. package/dist/es/img/index.mjs.bak +4 -0
  64. package/dist/es/img/info.mjs +29 -0
  65. package/dist/es/img/info.mjs.bak +29 -0
  66. package/dist/es/img/transform.mjs +295 -0
  67. package/dist/es/img/transform.mjs.bak +295 -0
  68. package/dist/es/index.mjs +4 -0
  69. package/dist/es/index.mjs.bak +4 -0
  70. package/dist/es/logger.mjs +64 -0
  71. package/dist/es/logger.mjs.bak +64 -0
  72. package/dist/es/mcp/base-server.mjs +281 -0
  73. package/dist/es/mcp/base-server.mjs.bak +281 -0
  74. package/dist/es/mcp/base-tools.mjs +91 -0
  75. package/dist/es/mcp/base-tools.mjs.bak +91 -0
  76. package/dist/es/mcp/chrome-path.mjs +35 -0
  77. package/dist/es/mcp/chrome-path.mjs.bak +35 -0
  78. package/dist/es/mcp/index.mjs +7 -0
  79. package/dist/es/mcp/index.mjs.bak +7 -0
  80. package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
  81. package/dist/es/mcp/inject-report-html-plugin.mjs.bak +53 -0
  82. package/dist/es/mcp/launcher-helper.mjs +52 -0
  83. package/dist/es/mcp/launcher-helper.mjs.bak +52 -0
  84. package/dist/es/mcp/tool-generator.mjs +297 -0
  85. package/dist/es/mcp/tool-generator.mjs.bak +297 -0
  86. package/dist/es/mcp/types.mjs +3 -0
  87. package/dist/es/mcp/types.mjs.bak +3 -0
  88. package/dist/es/node/fs.mjs +44 -0
  89. package/dist/es/node/fs.mjs.bak +44 -0
  90. package/dist/es/node/index.mjs +2 -0
  91. package/dist/es/node/index.mjs.bak +2 -0
  92. package/dist/es/node/port.mjs +24 -0
  93. package/dist/es/node/port.mjs.bak +24 -0
  94. package/dist/es/oss/demo.mjs +30 -0
  95. package/dist/es/oss/demo.mjs.bak +30 -0
  96. package/dist/es/oss/index.mjs +90 -0
  97. package/dist/es/oss/index.mjs.bak +90 -0
  98. package/dist/es/polyfills/async-hooks.mjs +2 -0
  99. package/dist/es/polyfills/async-hooks.mjs.bak +2 -0
  100. package/dist/es/polyfills/index.mjs +1 -0
  101. package/dist/es/polyfills/index.mjs.bak +1 -0
  102. package/dist/es/types/index.mjs +3 -0
  103. package/dist/es/types/index.mjs.bak +3 -0
  104. package/dist/es/us-keyboard-layout.mjs +1414 -0
  105. package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
  106. package/dist/es/us-keyboard-layout.mjs.bak +1414 -0
  107. package/dist/es/utils.mjs +72 -0
  108. package/dist/es/utils.mjs.bak +72 -0
  109. package/dist/es/zod-schema-utils.mjs +54 -0
  110. package/dist/es/zod-schema-utils.mjs.bak +54 -0
  111. package/dist/lib/baseDB.js +149 -0
  112. package/dist/lib/baseDB.js.bak +149 -0
  113. package/dist/lib/build/copy-static.js +79 -0
  114. package/dist/lib/build/copy-static.js.bak +79 -0
  115. package/dist/lib/build/rspack-config.js +38 -0
  116. package/dist/lib/build/rspack-config.js.bak +38 -0
  117. package/dist/lib/cli/cli-runner.js +196 -0
  118. package/dist/lib/cli/cli-runner.js.bak +196 -0
  119. package/dist/lib/cli/index.js +48 -0
  120. package/dist/lib/cli/index.js.bak +48 -0
  121. package/dist/lib/common.js +93 -0
  122. package/dist/lib/common.js.bak +93 -0
  123. package/dist/lib/constants/example-code.js +260 -0
  124. package/dist/lib/constants/example-code.js.bak +260 -0
  125. package/dist/lib/constants/index.js +96 -0
  126. package/dist/lib/constants/index.js.bak +96 -0
  127. package/dist/lib/env/basic.js +40 -0
  128. package/dist/lib/env/basic.js.bak +40 -0
  129. package/dist/lib/env/constants.js +113 -0
  130. package/dist/lib/env/constants.js.bak +113 -0
  131. package/dist/lib/env/global-config-manager.js +128 -0
  132. package/dist/lib/env/global-config-manager.js.bak +128 -0
  133. package/dist/lib/env/helper.js +80 -0
  134. package/dist/lib/env/helper.js.bak +80 -0
  135. package/dist/lib/env/index.js +90 -0
  136. package/dist/lib/env/index.js.bak +90 -0
  137. package/dist/lib/env/init-debug.js +52 -0
  138. package/dist/lib/env/init-debug.js.bak +52 -0
  139. package/dist/lib/env/model-config-manager.js +113 -0
  140. package/dist/lib/env/model-config-manager.js.bak +113 -0
  141. package/dist/lib/env/parse-model-config.js +178 -0
  142. package/dist/lib/env/parse-model-config.js.bak +178 -0
  143. package/dist/lib/env/types.js +554 -0
  144. package/dist/lib/env/types.js.bak +554 -0
  145. package/dist/lib/env/utils.js +72 -0
  146. package/dist/lib/env/utils.js.bak +72 -0
  147. package/dist/lib/extractor/constants.js +42 -0
  148. package/dist/lib/extractor/constants.js.bak +42 -0
  149. package/dist/lib/extractor/debug.js +12 -0
  150. package/dist/lib/extractor/debug.js.bak +12 -0
  151. package/dist/lib/extractor/dom-util.js +153 -0
  152. package/dist/lib/extractor/dom-util.js.bak +153 -0
  153. package/dist/lib/extractor/index.js +81 -0
  154. package/dist/lib/extractor/index.js.bak +81 -0
  155. package/dist/lib/extractor/locator.js +296 -0
  156. package/dist/lib/extractor/locator.js.bak +296 -0
  157. package/dist/lib/extractor/tree.js +124 -0
  158. package/dist/lib/extractor/tree.js.bak +124 -0
  159. package/dist/lib/extractor/util.js +336 -0
  160. package/dist/lib/extractor/util.js.bak +336 -0
  161. package/dist/lib/extractor/web-extractor.js +349 -0
  162. package/dist/lib/extractor/web-extractor.js.bak +349 -0
  163. package/dist/lib/img/box-select.js +875 -0
  164. package/dist/lib/img/box-select.js.bak +875 -0
  165. package/dist/lib/img/canvas-fallback.js +305 -0
  166. package/dist/lib/img/canvas-fallback.js.bak +305 -0
  167. package/dist/lib/img/get-photon.js +82 -0
  168. package/dist/lib/img/get-photon.js.bak +82 -0
  169. package/dist/lib/img/get-sharp.js +45 -0
  170. package/dist/lib/img/get-sharp.js.bak +45 -0
  171. package/dist/lib/img/index.js +95 -0
  172. package/dist/lib/img/index.js.bak +95 -0
  173. package/dist/lib/img/info.js +83 -0
  174. package/dist/lib/img/info.js.bak +83 -0
  175. package/dist/lib/img/transform.js +387 -0
  176. package/dist/lib/img/transform.js.bak +387 -0
  177. package/dist/lib/index.js +47 -0
  178. package/dist/lib/index.js.bak +47 -0
  179. package/dist/lib/logger.js +114 -0
  180. package/dist/lib/logger.js.bak +114 -0
  181. package/dist/lib/mcp/base-server.js +331 -0
  182. package/dist/lib/mcp/base-server.js.bak +331 -0
  183. package/dist/lib/mcp/base-tools.js +125 -0
  184. package/dist/lib/mcp/base-tools.js.bak +125 -0
  185. package/dist/lib/mcp/chrome-path.js +72 -0
  186. package/dist/lib/mcp/chrome-path.js.bak +72 -0
  187. package/dist/lib/mcp/index.js +100 -0
  188. package/dist/lib/mcp/index.js.bak +100 -0
  189. package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
  190. package/dist/lib/mcp/inject-report-html-plugin.js.bak +98 -0
  191. package/dist/lib/mcp/launcher-helper.js +86 -0
  192. package/dist/lib/mcp/launcher-helper.js.bak +86 -0
  193. package/dist/lib/mcp/tool-generator.js +334 -0
  194. package/dist/lib/mcp/tool-generator.js.bak +334 -0
  195. package/dist/lib/mcp/types.js +40 -0
  196. package/dist/lib/mcp/types.js.bak +40 -0
  197. package/dist/lib/node/fs.js +97 -0
  198. package/dist/lib/node/fs.js.bak +97 -0
  199. package/dist/lib/node/index.js +65 -0
  200. package/dist/lib/node/index.js.bak +65 -0
  201. package/dist/lib/node/port.js +61 -0
  202. package/dist/lib/node/port.js.bak +61 -0
  203. package/dist/lib/oss/demo.js +36 -0
  204. package/dist/lib/oss/demo.js.bak +36 -0
  205. package/dist/lib/oss/index.js +138 -0
  206. package/dist/lib/oss/index.js.bak +138 -0
  207. package/dist/lib/polyfills/async-hooks.js +36 -0
  208. package/dist/lib/polyfills/async-hooks.js.bak +36 -0
  209. package/dist/lib/polyfills/index.js +58 -0
  210. package/dist/lib/polyfills/index.js.bak +58 -0
  211. package/dist/lib/types/index.js +37 -0
  212. package/dist/lib/types/index.js.bak +37 -0
  213. package/dist/lib/us-keyboard-layout.js +1457 -0
  214. package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
  215. package/dist/lib/us-keyboard-layout.js.bak +1457 -0
  216. package/dist/lib/utils.js +148 -0
  217. package/dist/lib/utils.js.bak +148 -0
  218. package/dist/lib/zod-schema-utils.js +97 -0
  219. package/dist/lib/zod-schema-utils.js.bak +97 -0
  220. package/dist/types/baseDB.d.ts +25 -0
  221. package/dist/types/baseDB.d.ts.bak +25 -0
  222. package/dist/types/build/copy-static.d.ts +31 -0
  223. package/dist/types/build/copy-static.d.ts.bak +31 -0
  224. package/dist/types/build/rspack-config.d.ts +8 -0
  225. package/dist/types/build/rspack-config.d.ts.bak +8 -0
  226. package/dist/types/cli/cli-runner.d.ts +14 -0
  227. package/dist/types/cli/cli-runner.d.ts.bak +14 -0
  228. package/dist/types/cli/index.d.ts +2 -0
  229. package/dist/types/cli/index.d.ts.bak +2 -0
  230. package/dist/types/common.d.ts +12 -0
  231. package/dist/types/common.d.ts.bak +12 -0
  232. package/dist/types/constants/example-code.d.ts +2 -0
  233. package/dist/types/constants/example-code.d.ts.bak +2 -0
  234. package/dist/types/constants/index.d.ts +21 -0
  235. package/dist/types/constants/index.d.ts.bak +21 -0
  236. package/dist/types/env/basic.d.ts +6 -0
  237. package/dist/types/env/basic.d.ts.bak +6 -0
  238. package/dist/types/env/constants.d.ts +40 -0
  239. package/dist/types/env/constants.d.ts.bak +40 -0
  240. package/dist/types/env/global-config-manager.d.ts +32 -0
  241. package/dist/types/env/global-config-manager.d.ts.bak +32 -0
  242. package/dist/types/env/helper.d.ts +4 -0
  243. package/dist/types/env/helper.d.ts.bak +4 -0
  244. package/dist/types/env/index.d.ts +4 -0
  245. package/dist/types/env/index.d.ts.bak +4 -0
  246. package/dist/types/env/init-debug.d.ts +1 -0
  247. package/dist/types/env/init-debug.d.ts.bak +1 -0
  248. package/dist/types/env/model-config-manager.d.ts +25 -0
  249. package/dist/types/env/model-config-manager.d.ts.bak +25 -0
  250. package/dist/types/env/parse-model-config.d.ts +31 -0
  251. package/dist/types/env/parse-model-config.d.ts.bak +31 -0
  252. package/dist/types/env/types.d.ts +318 -0
  253. package/dist/types/env/types.d.ts.bak +318 -0
  254. package/dist/types/env/utils.d.ts +38 -0
  255. package/dist/types/env/utils.d.ts.bak +38 -0
  256. package/dist/types/extractor/constants.d.ts +1 -0
  257. package/dist/types/extractor/constants.d.ts.bak +1 -0
  258. package/dist/types/extractor/debug.d.ts +1 -0
  259. package/dist/types/extractor/debug.d.ts.bak +1 -0
  260. package/dist/types/extractor/dom-util.d.ts +56 -0
  261. package/dist/types/extractor/dom-util.d.ts.bak +56 -0
  262. package/dist/types/extractor/index.d.ts +32 -0
  263. package/dist/types/extractor/index.d.ts.bak +32 -0
  264. package/dist/types/extractor/locator.d.ts +9 -0
  265. package/dist/types/extractor/locator.d.ts.bak +9 -0
  266. package/dist/types/extractor/tree.d.ts +6 -0
  267. package/dist/types/extractor/tree.d.ts.bak +6 -0
  268. package/dist/types/extractor/util.d.ts +47 -0
  269. package/dist/types/extractor/util.d.ts.bak +47 -0
  270. package/dist/types/extractor/web-extractor.d.ts +19 -0
  271. package/dist/types/extractor/web-extractor.d.ts.bak +19 -0
  272. package/dist/types/img/box-select.d.ts +26 -0
  273. package/dist/types/img/box-select.d.ts.bak +26 -0
  274. package/dist/types/img/canvas-fallback.d.ts +105 -0
  275. package/dist/types/img/canvas-fallback.d.ts.bak +105 -0
  276. package/dist/types/img/get-photon.d.ts +19 -0
  277. package/dist/types/img/get-photon.d.ts.bak +19 -0
  278. package/dist/types/img/get-sharp.d.ts +3 -0
  279. package/dist/types/img/get-sharp.d.ts.bak +3 -0
  280. package/dist/types/img/index.d.ts +3 -0
  281. package/dist/types/img/index.d.ts.bak +3 -0
  282. package/dist/types/img/info.d.ts +29 -0
  283. package/dist/types/img/info.d.ts.bak +29 -0
  284. package/dist/types/img/transform.d.ts +107 -0
  285. package/dist/types/img/transform.d.ts.bak +107 -0
  286. package/dist/types/index.d.ts +4 -0
  287. package/dist/types/index.d.ts.bak +4 -0
  288. package/dist/types/logger.d.ts +5 -0
  289. package/dist/types/logger.d.ts.bak +5 -0
  290. package/dist/types/mcp/base-server.d.ts +93 -0
  291. package/dist/types/mcp/base-server.d.ts.bak +93 -0
  292. package/dist/types/mcp/base-tools.d.ts +79 -0
  293. package/dist/types/mcp/base-tools.d.ts.bak +79 -0
  294. package/dist/types/mcp/chrome-path.d.ts +2 -0
  295. package/dist/types/mcp/chrome-path.d.ts.bak +2 -0
  296. package/dist/types/mcp/index.d.ts +7 -0
  297. package/dist/types/mcp/index.d.ts.bak +7 -0
  298. package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
  299. package/dist/types/mcp/inject-report-html-plugin.d.ts.bak +18 -0
  300. package/dist/types/mcp/launcher-helper.d.ts +94 -0
  301. package/dist/types/mcp/launcher-helper.d.ts.bak +94 -0
  302. package/dist/types/mcp/tool-generator.d.ts +10 -0
  303. package/dist/types/mcp/tool-generator.d.ts.bak +10 -0
  304. package/dist/types/mcp/types.d.ts +103 -0
  305. package/dist/types/mcp/types.d.ts.bak +103 -0
  306. package/dist/types/node/fs.d.ts +15 -0
  307. package/dist/types/node/fs.d.ts.bak +15 -0
  308. package/dist/types/node/index.d.ts +2 -0
  309. package/dist/types/node/index.d.ts.bak +2 -0
  310. package/dist/types/node/port.d.ts +8 -0
  311. package/dist/types/node/port.d.ts.bak +8 -0
  312. package/dist/types/oss/demo.d.ts +1 -0
  313. package/dist/types/oss/demo.d.ts.bak +1 -0
  314. package/dist/types/oss/index.d.ts +34 -0
  315. package/dist/types/oss/index.d.ts.bak +34 -0
  316. package/dist/types/polyfills/async-hooks.d.ts +6 -0
  317. package/dist/types/polyfills/async-hooks.d.ts.bak +6 -0
  318. package/dist/types/polyfills/index.d.ts +4 -0
  319. package/dist/types/polyfills/index.d.ts.bak +4 -0
  320. package/dist/types/types/index.d.ts +34 -0
  321. package/dist/types/types/index.d.ts.bak +34 -0
  322. package/dist/types/us-keyboard-layout.d.ts +32 -0
  323. package/dist/types/us-keyboard-layout.d.ts.bak +32 -0
  324. package/dist/types/utils.d.ts +34 -0
  325. package/dist/types/utils.d.ts.bak +34 -0
  326. package/dist/types/zod-schema-utils.d.ts +23 -0
  327. package/dist/types/zod-schema-utils.d.ts.bak +23 -0
  328. package/package.json +132 -0
  329. package/src/baseDB.ts +158 -0
  330. package/src/build/copy-static.ts +68 -0
  331. package/src/build/rspack-config.ts +12 -0
  332. package/src/cli/cli-runner.ts +224 -0
  333. package/src/cli/index.ts +8 -0
  334. package/src/common.ts +67 -0
  335. package/src/constants/example-code.ts +223 -0
  336. package/src/constants/index.ts +29 -0
  337. package/src/env/basic.ts +12 -0
  338. package/src/env/constants.ts +234 -0
  339. package/src/env/global-config-manager.ts +191 -0
  340. package/src/env/helper.ts +58 -0
  341. package/src/env/index.ts +4 -0
  342. package/src/env/init-debug.ts +34 -0
  343. package/src/env/model-config-manager.ts +149 -0
  344. package/src/env/parse-model-config.ts +294 -0
  345. package/src/env/types.ts +547 -0
  346. package/src/env/utils.ts +89 -0
  347. package/src/extractor/constants.ts +5 -0
  348. package/src/extractor/debug.ts +10 -0
  349. package/src/extractor/dom-util.ts +226 -0
  350. package/src/extractor/index.ts +48 -0
  351. package/src/extractor/locator.ts +469 -0
  352. package/src/extractor/tree.ts +179 -0
  353. package/src/extractor/util.ts +482 -0
  354. package/src/extractor/web-extractor.ts +481 -0
  355. package/src/img/box-select.ts +588 -0
  356. package/src/img/canvas-fallback.ts +393 -0
  357. package/src/img/get-photon.ts +108 -0
  358. package/src/img/get-sharp.ts +18 -0
  359. package/src/img/index.ts +26 -0
  360. package/src/img/info.ts +75 -0
  361. package/src/img/transform.ts +594 -0
  362. package/src/index.ts +8 -0
  363. package/src/logger.ts +96 -0
  364. package/src/mcp/base-server.ts +502 -0
  365. package/src/mcp/base-tools.ts +185 -0
  366. package/src/mcp/chrome-path.ts +48 -0
  367. package/src/mcp/index.ts +7 -0
  368. package/src/mcp/inject-report-html-plugin.ts +119 -0
  369. package/src/mcp/launcher-helper.ts +200 -0
  370. package/src/mcp/tool-generator.ts +429 -0
  371. package/src/mcp/types.ts +112 -0
  372. package/src/node/fs.ts +84 -0
  373. package/src/node/index.ts +2 -0
  374. package/src/node/port.ts +37 -0
  375. package/src/oss/demo.ts +61 -0
  376. package/src/oss/index.ts +187 -0
  377. package/src/polyfills/async-hooks.ts +6 -0
  378. package/src/polyfills/index.ts +4 -0
  379. package/src/types/index.ts +52 -0
  380. package/src/us-keyboard-layout.ts +723 -0
  381. package/src/utils.ts +149 -0
  382. package/src/zod-schema-utils.ts +133 -0
@@ -0,0 +1,38 @@
1
+ import { GlobalConfigManager } from './global-config-manager';
2
+ import { ModelConfigManager } from './model-config-manager';
3
+ import { type GLOBAL_ENV_KEYS, type MODEL_ENV_KEYS } from './types';
4
+ export declare const globalModelConfigManager: ModelConfigManager;
5
+ export declare const globalConfigManager: GlobalConfigManager;
6
+ /**
7
+ * Interface for devices that support getTimestamp method.
8
+ * This is a minimal interface to avoid circular dependencies with @xiuchang-midscene/core.
9
+ */
10
+ export interface DeviceWithTimestamp {
11
+ getTimestamp?: () => Promise<number>;
12
+ }
13
+ /**
14
+ * Get the current timestamp, optionally from the target device.
15
+ *
16
+ * When useDeviceTimestamp is enabled and a device with getTimestamp is provided,
17
+ * this function will return the device's time. Otherwise, it returns the system time.
18
+ *
19
+ * This is useful when:
20
+ * - Testing on devices with different time zones
21
+ * - Debugging time-sensitive features
22
+ * - The system clock and device clock are not synchronized
23
+ *
24
+ * @param device Optional device interface that supports getTimestamp
25
+ * @param useDeviceTimestamp Whether to use device timestamp (from agent config)
26
+ * @returns Timestamp in milliseconds
27
+ *
28
+ * @example
29
+ * // Without device - always returns system time
30
+ * const systemTime = await getCurrentTime();
31
+ *
32
+ * @example
33
+ * // With device and config enabled - returns device time
34
+ * const deviceTime = await getCurrentTime(androidDevice, true);
35
+ */
36
+ export declare function getCurrentTime(device?: DeviceWithTimestamp, useDeviceTimestamp?: boolean): Promise<number>;
37
+ export declare const getPreferredLanguage: () => string;
38
+ export declare const overrideAIConfig: (newConfig: Partial<Record<(typeof GLOBAL_ENV_KEYS)[number] | (typeof MODEL_ENV_KEYS)[number], string>>, extendMode?: boolean) => void;
@@ -0,0 +1,38 @@
1
+ import { GlobalConfigManager } from './global-config-manager';
2
+ import { ModelConfigManager } from './model-config-manager';
3
+ import { type GLOBAL_ENV_KEYS, type MODEL_ENV_KEYS } from './types';
4
+ export declare const globalModelConfigManager: ModelConfigManager;
5
+ export declare const globalConfigManager: GlobalConfigManager;
6
+ /**
7
+ * Interface for devices that support getTimestamp method.
8
+ * This is a minimal interface to avoid circular dependencies with @midscene/core.
9
+ */
10
+ export interface DeviceWithTimestamp {
11
+ getTimestamp?: () => Promise<number>;
12
+ }
13
+ /**
14
+ * Get the current timestamp, optionally from the target device.
15
+ *
16
+ * When useDeviceTimestamp is enabled and a device with getTimestamp is provided,
17
+ * this function will return the device's time. Otherwise, it returns the system time.
18
+ *
19
+ * This is useful when:
20
+ * - Testing on devices with different time zones
21
+ * - Debugging time-sensitive features
22
+ * - The system clock and device clock are not synchronized
23
+ *
24
+ * @param device Optional device interface that supports getTimestamp
25
+ * @param useDeviceTimestamp Whether to use device timestamp (from agent config)
26
+ * @returns Timestamp in milliseconds
27
+ *
28
+ * @example
29
+ * // Without device - always returns system time
30
+ * const systemTime = await getCurrentTime();
31
+ *
32
+ * @example
33
+ * // With device and config enabled - returns device time
34
+ * const deviceTime = await getCurrentTime(androidDevice, true);
35
+ */
36
+ export declare function getCurrentTime(device?: DeviceWithTimestamp, useDeviceTimestamp?: boolean): Promise<number>;
37
+ export declare const getPreferredLanguage: () => string;
38
+ export declare const overrideAIConfig: (newConfig: Partial<Record<(typeof GLOBAL_ENV_KEYS)[number] | (typeof MODEL_ENV_KEYS)[number], string>>, extendMode?: boolean) => void;
@@ -0,0 +1 @@
1
+ export { NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD, } from '../constants/index';
@@ -0,0 +1 @@
1
+ export { NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD, } from '../constants/index';
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
1
+ import type { LocateResultElement } from '../types';
2
+ export declare function isFormElement(node: globalThis.Node): boolean;
3
+ export declare function isButtonElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
4
+ export declare function isAElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
5
+ export declare function isSvgElement(node: globalThis.Node): node is globalThis.SVGSVGElement;
6
+ export declare function isImgElement(node: globalThis.Node): node is globalThis.HTMLImageElement;
7
+ export declare function isNotContainerElement(node: globalThis.Node): boolean;
8
+ export declare function isTextElement(node: globalThis.Node): node is globalThis.HTMLTextAreaElement;
9
+ export declare function isContainerElement(node: globalThis.Node): node is globalThis.HTMLElement;
10
+ /**
11
+ * Generate a LocateResultElement from a point.
12
+ * This function creates an expanded rect around the given center point.
13
+ *
14
+ * Note: Center coordinates should be integers for pixel-aligned positioning.
15
+ * If decimal values are provided, they will be used as-is, which may result in
16
+ * non-pixel-aligned rect positions.
17
+ *
18
+ * The rect positioning behavior:
19
+ * - When edgeSize is even: center is at the top-left of the four center pixels
20
+ * For example, with edgeSize=4 and center=[10, 10]:
21
+ * □□□□
22
+ * □■□□ (■ represents the center point at pixel 10)
23
+ * □□□□
24
+ * □□□□
25
+ *
26
+ * - When edgeSize is odd: center is at the exact middle pixel
27
+ * For example, with edgeSize=5 and center=[10, 10]:
28
+ * □□□□□
29
+ * □□■□□ (■ represents the center point at pixel 10)
30
+ * □□□□□
31
+ *
32
+ * @param center - Center point coordinates as [x, y] (should be integers)
33
+ * @param description - Description of the element
34
+ * @param edgeSize - Size to expand around the center point (default: 8)
35
+ * @returns A LocateResultElement with rect, center, and description
36
+ */
37
+ export declare function generateElementByPoint(center: [number, number], description: string, edgeSize?: number): LocateResultElement;
38
+ /**
39
+ * Generate a LocateResultElement from a rect.
40
+ * This function calculates the center point from the rect and expands the rect by edgeSize.
41
+ *
42
+ * Note: The rect uses inclusive coordinates where:
43
+ * - A rect from [left=10, top=10] with [width=1, height=1] covers exactly 1 pixel
44
+ * - The actual pixel range is [left, left+width) which means width pixels
45
+ *
46
+ * @param sourceRect - The source rect to generate element from (typically contains integer values)
47
+ * @param description - Description of the element
48
+ * @param edgeSize - Size to expand around the center point (default: 8)
49
+ * @returns A LocateResultElement with rect, center (always integers), and description
50
+ */
51
+ export declare function generateElementByRect(sourceRect: {
52
+ left: number;
53
+ top: number;
54
+ width: number;
55
+ height: number;
56
+ }, description: string, edgeSize?: number): LocateResultElement;
@@ -0,0 +1,56 @@
1
+ import type { LocateResultElement } from '../types';
2
+ export declare function isFormElement(node: globalThis.Node): boolean;
3
+ export declare function isButtonElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
4
+ export declare function isAElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
5
+ export declare function isSvgElement(node: globalThis.Node): node is globalThis.SVGSVGElement;
6
+ export declare function isImgElement(node: globalThis.Node): node is globalThis.HTMLImageElement;
7
+ export declare function isNotContainerElement(node: globalThis.Node): boolean;
8
+ export declare function isTextElement(node: globalThis.Node): node is globalThis.HTMLTextAreaElement;
9
+ export declare function isContainerElement(node: globalThis.Node): node is globalThis.HTMLElement;
10
+ /**
11
+ * Generate a LocateResultElement from a point.
12
+ * This function creates an expanded rect around the given center point.
13
+ *
14
+ * Note: Center coordinates should be integers for pixel-aligned positioning.
15
+ * If decimal values are provided, they will be used as-is, which may result in
16
+ * non-pixel-aligned rect positions.
17
+ *
18
+ * The rect positioning behavior:
19
+ * - When edgeSize is even: center is at the top-left of the four center pixels
20
+ * For example, with edgeSize=4 and center=[10, 10]:
21
+ * □□□□
22
+ * □■□□ (■ represents the center point at pixel 10)
23
+ * □□□□
24
+ * □□□□
25
+ *
26
+ * - When edgeSize is odd: center is at the exact middle pixel
27
+ * For example, with edgeSize=5 and center=[10, 10]:
28
+ * □□□□□
29
+ * □□■□□ (■ represents the center point at pixel 10)
30
+ * □□□□□
31
+ *
32
+ * @param center - Center point coordinates as [x, y] (should be integers)
33
+ * @param description - Description of the element
34
+ * @param edgeSize - Size to expand around the center point (default: 8)
35
+ * @returns A LocateResultElement with rect, center, and description
36
+ */
37
+ export declare function generateElementByPoint(center: [number, number], description: string, edgeSize?: number): LocateResultElement;
38
+ /**
39
+ * Generate a LocateResultElement from a rect.
40
+ * This function calculates the center point from the rect and expands the rect by edgeSize.
41
+ *
42
+ * Note: The rect uses inclusive coordinates where:
43
+ * - A rect from [left=10, top=10] with [width=1, height=1] covers exactly 1 pixel
44
+ * - The actual pixel range is [left, left+width) which means width pixels
45
+ *
46
+ * @param sourceRect - The source rect to generate element from (typically contains integer values)
47
+ * @param description - Description of the element
48
+ * @param edgeSize - Size to expand around the center point (default: 8)
49
+ * @returns A LocateResultElement with rect, center (always integers), and description
50
+ */
51
+ export declare function generateElementByRect(sourceRect: {
52
+ left: number;
53
+ top: number;
54
+ width: number;
55
+ height: number;
56
+ }, description: string, edgeSize?: number): LocateResultElement;
@@ -0,0 +1,32 @@
1
+ import type { NodeType } from '../constants/index';
2
+ export interface ElementInfo {
3
+ id: string;
4
+ indexId: number;
5
+ nodeHashId: string;
6
+ xpaths?: string[];
7
+ attributes: {
8
+ nodeType: NodeType;
9
+ [key: string]: string;
10
+ };
11
+ nodeType: NodeType;
12
+ content: string;
13
+ rect: {
14
+ left: number;
15
+ top: number;
16
+ width: number;
17
+ height: number;
18
+ };
19
+ center: [number, number];
20
+ isVisible: boolean;
21
+ }
22
+ export interface ElementNode {
23
+ node: ElementInfo | null;
24
+ children: ElementNode[];
25
+ }
26
+ export { descriptionOfTree, traverseTree, treeToList, truncateText, trimAttributes, } from './tree';
27
+ export { extractTextWithPosition as webExtractTextWithPosition } from './web-extractor';
28
+ export { extractTreeNode as webExtractNodeTree } from './web-extractor';
29
+ export { extractTreeNodeAsString as webExtractNodeTreeAsString } from './web-extractor';
30
+ export { getXpathsByPoint, getXpathsById, getNodeInfoByXpath, getElementInfoByXpath, getElementXpath, } from './locator';
31
+ export { generateElementByRect } from './dom-util';
32
+ export { isNotContainerElement } from './dom-util';
@@ -0,0 +1,32 @@
1
+ import type { NodeType } from '../constants/index';
2
+ export interface ElementInfo {
3
+ id: string;
4
+ indexId: number;
5
+ nodeHashId: string;
6
+ xpaths?: string[];
7
+ attributes: {
8
+ nodeType: NodeType;
9
+ [key: string]: string;
10
+ };
11
+ nodeType: NodeType;
12
+ content: string;
13
+ rect: {
14
+ left: number;
15
+ top: number;
16
+ width: number;
17
+ height: number;
18
+ };
19
+ center: [number, number];
20
+ isVisible: boolean;
21
+ }
22
+ export interface ElementNode {
23
+ node: ElementInfo | null;
24
+ children: ElementNode[];
25
+ }
26
+ export { descriptionOfTree, traverseTree, treeToList, truncateText, trimAttributes, } from './tree';
27
+ export { extractTextWithPosition as webExtractTextWithPosition } from './web-extractor';
28
+ export { extractTreeNode as webExtractNodeTree } from './web-extractor';
29
+ export { extractTreeNodeAsString as webExtractNodeTreeAsString } from './web-extractor';
30
+ export { getXpathsByPoint, getXpathsById, getNodeInfoByXpath, getElementInfoByXpath, getElementXpath, } from './locator';
31
+ export { generateElementByRect } from './dom-util';
32
+ export { isNotContainerElement } from './dom-util';
@@ -0,0 +1,9 @@
1
+ import type { ElementInfo } from '.';
2
+ import type { Point } from '../types';
3
+ export declare const getElementXpath: (element: Node, isOrderSensitive?: boolean, isLeafElement?: boolean, limitToCurrentDocument?: boolean) => string;
4
+ /** Retrieve XPath for a previously cached node by its hash ID.
5
+ * Returns a local xpath within the node's own document (limitToCurrentDocument=true). */
6
+ export declare function getXpathsById(id: string): string[] | null;
7
+ export declare function getXpathsByPoint(point: Point, isOrderSensitive: boolean): string[] | null;
8
+ export declare function getNodeInfoByXpath(xpath: string): Node | null;
9
+ export declare function getElementInfoByXpath(xpath: string): ElementInfo | null;
@@ -0,0 +1,9 @@
1
+ import type { ElementInfo } from '.';
2
+ import type { Point } from '../types';
3
+ export declare const getElementXpath: (element: Node, isOrderSensitive?: boolean, isLeafElement?: boolean, limitToCurrentDocument?: boolean) => string;
4
+ /** Retrieve XPath for a previously cached node by its hash ID.
5
+ * Returns a local xpath within the node's own document (limitToCurrentDocument=true). */
6
+ export declare function getXpathsById(id: string): string[] | null;
7
+ export declare function getXpathsByPoint(point: Point, isOrderSensitive: boolean): string[] | null;
8
+ export declare function getNodeInfoByXpath(xpath: string): Node | null;
9
+ export declare function getElementInfoByXpath(xpath: string): ElementInfo | null;
@@ -0,0 +1,6 @@
1
+ import type { BaseElement, ElementTreeNode } from '../types';
2
+ export declare function truncateText(text: string | number | object | undefined, maxLength?: number): string;
3
+ export declare function trimAttributes(attributes: Record<string, any>, truncateTextLength?: number): Record<string, string>;
4
+ export declare function descriptionOfTree<ElementType extends BaseElement = BaseElement>(tree: ElementTreeNode<ElementType>, truncateTextLength?: number, filterNonTextContent?: boolean, visibleOnly?: boolean): string;
5
+ export declare function treeToList<T extends BaseElement>(tree: ElementTreeNode<T>): T[];
6
+ export declare function traverseTree<T extends BaseElement, ReturnNodeType extends BaseElement>(tree: ElementTreeNode<T>, onNode: (node: T) => ReturnNodeType): ElementTreeNode<ReturnNodeType>;
@@ -0,0 +1,6 @@
1
+ import type { BaseElement, ElementTreeNode } from '../types';
2
+ export declare function truncateText(text: string | number | object | undefined, maxLength?: number): string;
3
+ export declare function trimAttributes(attributes: Record<string, any>, truncateTextLength?: number): Record<string, string>;
4
+ export declare function descriptionOfTree<ElementType extends BaseElement = BaseElement>(tree: ElementTreeNode<ElementType>, truncateTextLength?: number, filterNonTextContent?: boolean, visibleOnly?: boolean): string;
5
+ export declare function treeToList<T extends BaseElement>(tree: ElementTreeNode<T>): T[];
6
+ export declare function traverseTree<T extends BaseElement, ReturnNodeType extends BaseElement>(tree: ElementTreeNode<T>, onNode: (node: T) => ReturnNodeType): ElementTreeNode<ReturnNodeType>;
@@ -0,0 +1,47 @@
1
+ import type { Rect } from '../types';
2
+ export declare function setDebugMode(mode: boolean): void;
3
+ export declare function getDebugMode(): boolean;
4
+ export declare function logger(..._msg: any[]): void;
5
+ export declare function isElementPartiallyInViewport(rect: ReturnType<typeof getRect>, currentWindow: typeof window, currentDocument: typeof document, visibleAreaRatio?: number): boolean;
6
+ export declare function getPseudoElementContent(element: globalThis.Node, currentWindow: typeof globalThis.window): {
7
+ before: string;
8
+ after: string;
9
+ };
10
+ export declare function hasOverflowY(element: globalThis.HTMLElement, currentWindow: typeof globalThis.window): boolean;
11
+ export interface ExtractedRect {
12
+ width: number;
13
+ height: number;
14
+ left: number;
15
+ top: number;
16
+ right: number;
17
+ bottom: number;
18
+ x: number;
19
+ y: number;
20
+ zoom: number;
21
+ }
22
+ export declare function overlappedRect(rect1: ExtractedRect, rect2: ExtractedRect): ExtractedRect | null;
23
+ export declare function getRect(el: globalThis.HTMLElement | globalThis.Node, baseZoom: number, // base zoom
24
+ currentWindow: typeof globalThis.window): ExtractedRect;
25
+ export declare function elementRect(el: globalThis.HTMLElement | globalThis.Node | null, currentWindow: typeof globalThis.window, currentDocument: typeof globalThis.document, baseZoom?: number): {
26
+ left: number;
27
+ top: number;
28
+ width: number;
29
+ height: number;
30
+ zoom: number;
31
+ isVisible: boolean;
32
+ } | false;
33
+ export declare function validTextNodeContent(node: globalThis.Node): string | false;
34
+ export declare function getNodeAttributes(node: globalThis.HTMLElement | globalThis.Node, currentWindow: typeof globalThis.window): Record<string, string>;
35
+ /**
36
+ * Reset the node hash cache. Call at the beginning of each extraction cycle
37
+ * to prevent stale DOM references from accumulating.
38
+ */
39
+ export declare function setNodeHashCacheListOnWindow(): void;
40
+ export declare function setNodeToCacheList(node: globalThis.Node, id: string): void;
41
+ export declare function getNodeFromCacheList(id: string): globalThis.Node | undefined;
42
+ export declare function midsceneGenerateHash(node: globalThis.Node | null, content: string, rect: Rect): string;
43
+ export declare function generateId(numberId: number): string;
44
+ export declare function setGenerateHashOnWindow(): void;
45
+ export declare function setMidsceneVisibleRectOnWindow(): void;
46
+ export declare function setExtractTextWithPositionOnWindow(): void;
47
+ export declare function getTopDocument(): globalThis.HTMLElement;
@@ -0,0 +1,47 @@
1
+ import type { Rect } from '../types';
2
+ export declare function setDebugMode(mode: boolean): void;
3
+ export declare function getDebugMode(): boolean;
4
+ export declare function logger(..._msg: any[]): void;
5
+ export declare function isElementPartiallyInViewport(rect: ReturnType<typeof getRect>, currentWindow: typeof window, currentDocument: typeof document, visibleAreaRatio?: number): boolean;
6
+ export declare function getPseudoElementContent(element: globalThis.Node, currentWindow: typeof globalThis.window): {
7
+ before: string;
8
+ after: string;
9
+ };
10
+ export declare function hasOverflowY(element: globalThis.HTMLElement, currentWindow: typeof globalThis.window): boolean;
11
+ export interface ExtractedRect {
12
+ width: number;
13
+ height: number;
14
+ left: number;
15
+ top: number;
16
+ right: number;
17
+ bottom: number;
18
+ x: number;
19
+ y: number;
20
+ zoom: number;
21
+ }
22
+ export declare function overlappedRect(rect1: ExtractedRect, rect2: ExtractedRect): ExtractedRect | null;
23
+ export declare function getRect(el: globalThis.HTMLElement | globalThis.Node, baseZoom: number, // base zoom
24
+ currentWindow: typeof globalThis.window): ExtractedRect;
25
+ export declare function elementRect(el: globalThis.HTMLElement | globalThis.Node | null, currentWindow: typeof globalThis.window, currentDocument: typeof globalThis.document, baseZoom?: number): {
26
+ left: number;
27
+ top: number;
28
+ width: number;
29
+ height: number;
30
+ zoom: number;
31
+ isVisible: boolean;
32
+ } | false;
33
+ export declare function validTextNodeContent(node: globalThis.Node): string | false;
34
+ export declare function getNodeAttributes(node: globalThis.HTMLElement | globalThis.Node, currentWindow: typeof globalThis.window): Record<string, string>;
35
+ /**
36
+ * Reset the node hash cache. Call at the beginning of each extraction cycle
37
+ * to prevent stale DOM references from accumulating.
38
+ */
39
+ export declare function setNodeHashCacheListOnWindow(): void;
40
+ export declare function setNodeToCacheList(node: globalThis.Node, id: string): void;
41
+ export declare function getNodeFromCacheList(id: string): globalThis.Node | undefined;
42
+ export declare function midsceneGenerateHash(node: globalThis.Node | null, content: string, rect: Rect): string;
43
+ export declare function generateId(numberId: number): string;
44
+ export declare function setGenerateHashOnWindow(): void;
45
+ export declare function setMidsceneVisibleRectOnWindow(): void;
46
+ export declare function setExtractTextWithPositionOnWindow(): void;
47
+ export declare function getTopDocument(): globalThis.HTMLElement;
@@ -0,0 +1,19 @@
1
+ import type { WebElementInfo } from '../types';
2
+ import type { Point } from '../types';
3
+ export declare function collectElementInfo(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number, basePoint?: Point, isContainer?: boolean): WebElementInfo | null | any;
4
+ interface WebElementNode {
5
+ node: WebElementInfo | null;
6
+ children: WebElementNode[];
7
+ }
8
+ export declare function extractTextWithPosition(initNode: globalThis.Node, debugMode?: boolean): WebElementInfo[];
9
+ export declare function extractTreeNodeAsString(initNode: globalThis.Node, visibleOnly?: boolean, debugMode?: boolean): string;
10
+ export declare function extractTreeNode(initNode: globalThis.Node, debugMode?: boolean): WebElementNode;
11
+ export declare function mergeElementAndChildrenRects(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number): {
12
+ left: number;
13
+ top: number;
14
+ width: number;
15
+ height: number;
16
+ zoom: number;
17
+ isVisible: boolean;
18
+ } | null;
19
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { WebElementInfo } from '../types';
2
+ import type { Point } from '../types';
3
+ export declare function collectElementInfo(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number, basePoint?: Point, isContainer?: boolean): WebElementInfo | null | any;
4
+ interface WebElementNode {
5
+ node: WebElementInfo | null;
6
+ children: WebElementNode[];
7
+ }
8
+ export declare function extractTextWithPosition(initNode: globalThis.Node, debugMode?: boolean): WebElementInfo[];
9
+ export declare function extractTreeNodeAsString(initNode: globalThis.Node, visibleOnly?: boolean, debugMode?: boolean): string;
10
+ export declare function extractTreeNode(initNode: globalThis.Node, debugMode?: boolean): WebElementNode;
11
+ export declare function mergeElementAndChildrenRects(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number): {
12
+ left: number;
13
+ top: number;
14
+ width: number;
15
+ height: number;
16
+ zoom: number;
17
+ isVisible: boolean;
18
+ } | null;
19
+ export {};
@@ -0,0 +1,26 @@
1
+ import type { BaseElement, Rect } from '../types';
2
+ interface ElementForOverlay {
3
+ rect: Rect;
4
+ indexId?: number;
5
+ }
6
+ export declare const compositeElementInfoImg: (options: {
7
+ inputImgBase64: string;
8
+ elementsPositionInfo: Array<ElementForOverlay>;
9
+ size?: {
10
+ width: number;
11
+ height: number;
12
+ };
13
+ annotationPadding?: number;
14
+ borderThickness?: number;
15
+ prompt?: string;
16
+ }) => Promise<string>;
17
+ export declare const processImageElementInfo: (options: {
18
+ inputImgBase64: string;
19
+ elementsPositionInfo: Array<BaseElement>;
20
+ elementsPositionInfoWithoutText: Array<BaseElement>;
21
+ }) => Promise<{
22
+ compositeElementInfoImgBase64: string;
23
+ compositeElementInfoImgWithoutTextBase64: string;
24
+ }>;
25
+ export declare function annotateRects(imgBase64: string, rects: Rect[], prompt?: string): Promise<string>;
26
+ export {};
@@ -0,0 +1,26 @@
1
+ import type { BaseElement, Rect } from '../types';
2
+ interface ElementForOverlay {
3
+ rect: Rect;
4
+ indexId?: number;
5
+ }
6
+ export declare const compositeElementInfoImg: (options: {
7
+ inputImgBase64: string;
8
+ elementsPositionInfo: Array<ElementForOverlay>;
9
+ size?: {
10
+ width: number;
11
+ height: number;
12
+ };
13
+ annotationPadding?: number;
14
+ borderThickness?: number;
15
+ prompt?: string;
16
+ }) => Promise<string>;
17
+ export declare const processImageElementInfo: (options: {
18
+ inputImgBase64: string;
19
+ elementsPositionInfo: Array<BaseElement>;
20
+ elementsPositionInfoWithoutText: Array<BaseElement>;
21
+ }) => Promise<{
22
+ compositeElementInfoImgBase64: string;
23
+ compositeElementInfoImgWithoutTextBase64: string;
24
+ }>;
25
+ export declare function annotateRects(imgBase64: string, rects: Rect[], prompt?: string): Promise<string>;
26
+ export {};
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Canvas-based fallback for image processing when Photon WASM fails to load.
3
+ * Provides a compatible API with Photon for browser environments.
4
+ */
5
+ /**
6
+ * Canvas-based image class that mimics PhotonImage API
7
+ */
8
+ export declare class CanvasImage {
9
+ private canvas;
10
+ private ctx;
11
+ private _width;
12
+ private _height;
13
+ constructor(canvas: HTMLCanvasElement);
14
+ get_width(): number;
15
+ get_height(): number;
16
+ get_raw_pixels(): Uint8Array;
17
+ get_bytes_jpeg(quality: number): Uint8Array;
18
+ free(): void;
19
+ _getCanvas(): HTMLCanvasElement;
20
+ _getContext(): CanvasRenderingContext2D;
21
+ /**
22
+ * Create a CanvasImage from a base64 string
23
+ */
24
+ static new_from_base64(base64Body: string): Promise<CanvasImage>;
25
+ /**
26
+ * Create a CanvasImage from a byte array (async version)
27
+ */
28
+ static new_from_byteslice(bytes: Uint8Array): Promise<CanvasImage>;
29
+ }
30
+ /**
31
+ * Sampling filter enum (compatible with Photon)
32
+ */
33
+ export declare const CanvasSamplingFilter: {
34
+ readonly Nearest: "nearest";
35
+ readonly Triangle: "triangle";
36
+ readonly CatmullRom: "catmullrom";
37
+ readonly Gaussian: "gaussian";
38
+ readonly Lanczos3: "lanczos3";
39
+ };
40
+ /**
41
+ * RGBA color class (compatible with Photon)
42
+ */
43
+ export declare class CanvasRgba {
44
+ r: number;
45
+ g: number;
46
+ b: number;
47
+ a: number;
48
+ constructor(r: number, g: number, b: number, a: number);
49
+ }
50
+ /**
51
+ * Resize an image
52
+ */
53
+ export declare function canvasResize(image: CanvasImage, newWidth: number, newHeight: number, _filter: string): CanvasImage;
54
+ /**
55
+ * Crop an image
56
+ */
57
+ export declare function canvasCrop(image: CanvasImage, x1: number, y1: number, x2: number, y2: number): CanvasImage;
58
+ /**
59
+ * Add padding to the right of an image
60
+ */
61
+ export declare function canvasPaddingRight(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
62
+ /**
63
+ * Add padding to the bottom of an image
64
+ */
65
+ export declare function canvasPaddingBottom(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
66
+ /**
67
+ * Add uniform padding to an image
68
+ */
69
+ export declare function canvasPaddingUniform(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
70
+ /**
71
+ * Add padding to the left of an image
72
+ */
73
+ export declare function canvasPaddingLeft(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
74
+ /**
75
+ * Add padding to the top of an image
76
+ */
77
+ export declare function canvasPaddingTop(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
78
+ /**
79
+ * Watermark an image (overlay one image on another)
80
+ */
81
+ export declare function canvasWatermark(base: CanvasImage, overlay: CanvasImage, x: number, y: number): CanvasImage;
82
+ /**
83
+ * Create and return the canvas fallback module with Photon-compatible API
84
+ */
85
+ export declare function createCanvasFallbackModule(): {
86
+ PhotonImage: typeof CanvasImage;
87
+ SamplingFilter: {
88
+ readonly Nearest: "nearest";
89
+ readonly Triangle: "triangle";
90
+ readonly CatmullRom: "catmullrom";
91
+ readonly Gaussian: "gaussian";
92
+ readonly Lanczos3: "lanczos3";
93
+ };
94
+ resize: typeof canvasResize;
95
+ crop: typeof canvasCrop;
96
+ open_image: () => never;
97
+ base64_to_image: typeof CanvasImage.new_from_base64;
98
+ padding_uniform: typeof canvasPaddingUniform;
99
+ padding_left: typeof canvasPaddingLeft;
100
+ padding_right: typeof canvasPaddingRight;
101
+ padding_top: typeof canvasPaddingTop;
102
+ padding_bottom: typeof canvasPaddingBottom;
103
+ watermark: typeof canvasWatermark;
104
+ Rgba: typeof CanvasRgba;
105
+ };