@aiscene/core 9.0.6 → 9.0.8

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 (686) hide show
  1. package/dist/es/agent/agent.mjs +24 -11
  2. package/dist/es/agent/agent.mjs.map +1 -1
  3. package/dist/es/agent/cache-config.mjs +19 -0
  4. package/dist/es/agent/cache-config.mjs.map +1 -0
  5. package/dist/es/agent/file-chooser.mjs +82 -0
  6. package/dist/es/agent/file-chooser.mjs.map +1 -0
  7. package/dist/es/agent/insight.mjs +101 -0
  8. package/dist/es/agent/insight.mjs.map +1 -0
  9. package/dist/es/agent/metrics.mjs +81 -0
  10. package/dist/es/agent/metrics.mjs.map +1 -0
  11. package/dist/es/agent/progress/ai-act-progress.mjs +199 -0
  12. package/dist/es/agent/progress/ai-act-progress.mjs.map +1 -0
  13. package/dist/es/agent/progress/index.mjs +2 -0
  14. package/dist/es/agent/progress/progress-bus.mjs +52 -0
  15. package/dist/es/agent/progress/progress-bus.mjs.map +1 -0
  16. package/dist/es/agent/prompt-context.mjs +25 -0
  17. package/dist/es/agent/prompt-context.mjs.map +1 -0
  18. package/dist/es/agent/record-to-report.mjs +14 -0
  19. package/dist/es/agent/record-to-report.mjs.map +1 -0
  20. package/dist/es/agent/run-gherkin-scenario.mjs +114 -0
  21. package/dist/es/agent/run-gherkin-scenario.mjs.map +1 -0
  22. package/dist/es/agent/run-markdown.mjs +62 -0
  23. package/dist/es/agent/run-markdown.mjs.map +1 -0
  24. package/dist/es/agent/screenshot-preparation.mjs +37 -0
  25. package/dist/es/agent/screenshot-preparation.mjs.map +1 -0
  26. package/dist/es/agent/ui-observer.mjs +385 -0
  27. package/dist/es/agent/ui-observer.mjs.map +1 -0
  28. package/dist/es/agent/utils.mjs +42 -4
  29. package/dist/es/agent/utils.mjs.map +1 -1
  30. package/dist/es/ai-model/connectivity/fixture.mjs +8 -0
  31. package/dist/es/ai-model/connectivity/fixture.mjs.map +1 -0
  32. package/dist/es/ai-model/connectivity/index.mjs +2 -0
  33. package/dist/es/ai-model/connectivity/run-connectivity-test.mjs +160 -0
  34. package/dist/es/ai-model/connectivity/run-connectivity-test.mjs.map +1 -0
  35. package/dist/es/ai-model/conversation-history.mjs.map +1 -1
  36. package/dist/es/ai-model/index.mjs +2 -1
  37. package/dist/es/ai-model/inspect.mjs +1 -1
  38. package/dist/es/ai-model/inspect.mjs.map +1 -1
  39. package/dist/es/ai-model/model-adapter/chat-completion.mjs +69 -0
  40. package/dist/es/ai-model/model-adapter/chat-completion.mjs.map +1 -0
  41. package/dist/es/ai-model/model-adapter/custom-planning-action.mjs +6 -0
  42. package/dist/es/ai-model/model-adapter/custom-planning-action.mjs.map +1 -0
  43. package/dist/es/ai-model/model-adapter/custom-planning-types.mjs +0 -0
  44. package/dist/es/ai-model/model-adapter/default-insight-protocol.mjs +28 -0
  45. package/dist/es/ai-model/model-adapter/default-insight-protocol.mjs.map +1 -0
  46. package/dist/es/ai-model/model-adapter/default-locate-protocol.mjs +145 -0
  47. package/dist/es/ai-model/model-adapter/default-locate-protocol.mjs.map +1 -0
  48. package/dist/es/ai-model/model-adapter/default-planning-protocol.mjs +124 -0
  49. package/dist/es/ai-model/model-adapter/default-planning-protocol.mjs.map +1 -0
  50. package/dist/es/ai-model/model-adapter/image-preprocess.mjs +27 -0
  51. package/dist/es/ai-model/model-adapter/image-preprocess.mjs.map +1 -0
  52. package/dist/es/ai-model/model-adapter/index.mjs +2 -0
  53. package/dist/es/ai-model/model-adapter/insight-protocol.mjs +0 -0
  54. package/dist/es/ai-model/model-adapter/insight.mjs +13 -0
  55. package/dist/es/ai-model/model-adapter/insight.mjs.map +1 -0
  56. package/dist/es/ai-model/model-adapter/locate-protocol.mjs +0 -0
  57. package/dist/es/ai-model/model-adapter/locate.mjs +53 -0
  58. package/dist/es/ai-model/model-adapter/locate.mjs.map +1 -0
  59. package/dist/es/ai-model/model-adapter/planning-protocol.mjs +0 -0
  60. package/dist/es/ai-model/model-adapter/planning.mjs +49 -0
  61. package/dist/es/ai-model/model-adapter/planning.mjs.map +1 -0
  62. package/dist/es/ai-model/model-adapter/resolve.mjs +54 -0
  63. package/dist/es/ai-model/model-adapter/resolve.mjs.map +1 -0
  64. package/dist/es/ai-model/model-adapter/types.mjs +0 -0
  65. package/dist/es/ai-model/models/auto-glm/actions.mjs +205 -0
  66. package/dist/es/ai-model/models/auto-glm/actions.mjs.map +1 -0
  67. package/dist/es/ai-model/models/auto-glm/adapter.mjs +45 -0
  68. package/dist/es/ai-model/models/auto-glm/adapter.mjs.map +1 -0
  69. package/dist/es/ai-model/models/auto-glm/locate.mjs +11 -0
  70. package/dist/es/ai-model/models/auto-glm/locate.mjs.map +1 -0
  71. package/dist/es/ai-model/models/auto-glm/parser.mjs +217 -0
  72. package/dist/es/ai-model/models/auto-glm/parser.mjs.map +1 -0
  73. package/dist/es/ai-model/models/auto-glm/planning.mjs +33 -0
  74. package/dist/es/ai-model/models/auto-glm/planning.mjs.map +1 -0
  75. package/dist/es/ai-model/models/auto-glm/prompt.mjs +214 -0
  76. package/dist/es/ai-model/models/auto-glm/prompt.mjs.map +1 -0
  77. package/dist/es/ai-model/models/deepseek/adapter.mjs +79 -0
  78. package/dist/es/ai-model/models/deepseek/adapter.mjs.map +1 -0
  79. package/dist/es/ai-model/models/deepseek/locate-protocol.mjs +89 -0
  80. package/dist/es/ai-model/models/deepseek/locate-protocol.mjs.map +1 -0
  81. package/dist/es/ai-model/models/default.mjs +13 -0
  82. package/dist/es/ai-model/models/default.mjs.map +1 -0
  83. package/dist/es/ai-model/models/doubao.mjs +95 -0
  84. package/dist/es/ai-model/models/doubao.mjs.map +1 -0
  85. package/dist/es/ai-model/models/gemini.mjs +100 -0
  86. package/dist/es/ai-model/models/gemini.mjs.map +1 -0
  87. package/dist/es/ai-model/models/glm.mjs +46 -0
  88. package/dist/es/ai-model/models/glm.mjs.map +1 -0
  89. package/dist/es/ai-model/models/gpt.mjs +43 -0
  90. package/dist/es/ai-model/models/gpt.mjs.map +1 -0
  91. package/dist/es/ai-model/models/index.mjs +2 -0
  92. package/dist/es/ai-model/models/kimi.mjs +102 -0
  93. package/dist/es/ai-model/models/kimi.mjs.map +1 -0
  94. package/dist/es/ai-model/models/mimo.mjs +36 -0
  95. package/dist/es/ai-model/models/mimo.mjs.map +1 -0
  96. package/dist/es/ai-model/models/qwen.mjs +139 -0
  97. package/dist/es/ai-model/models/qwen.mjs.map +1 -0
  98. package/dist/es/ai-model/models/registry.mjs +51 -0
  99. package/dist/es/ai-model/models/registry.mjs.map +1 -0
  100. package/dist/es/ai-model/models/ui-tars/actions.mjs +147 -0
  101. package/dist/es/ai-model/models/ui-tars/actions.mjs.map +1 -0
  102. package/dist/es/ai-model/models/ui-tars/adapter.mjs +102 -0
  103. package/dist/es/ai-model/models/ui-tars/adapter.mjs.map +1 -0
  104. package/dist/es/ai-model/models/ui-tars/parser.mjs +40 -0
  105. package/dist/es/ai-model/models/ui-tars/parser.mjs.map +1 -0
  106. package/dist/es/ai-model/models/ui-tars/planning.mjs +25 -0
  107. package/dist/es/ai-model/models/ui-tars/planning.mjs.map +1 -0
  108. package/dist/es/ai-model/models/ui-tars/prompt.mjs +36 -0
  109. package/dist/es/ai-model/models/ui-tars/prompt.mjs.map +1 -0
  110. package/dist/es/ai-model/models/utils/intent.mjs +6 -0
  111. package/dist/es/ai-model/models/utils/intent.mjs.map +1 -0
  112. package/dist/es/ai-model/prompt/insight/index.mjs +3 -0
  113. package/dist/es/ai-model/prompt/insight/system-prompt.mjs +104 -0
  114. package/dist/es/ai-model/prompt/insight/system-prompt.mjs.map +1 -0
  115. package/dist/es/ai-model/prompt/insight/user-prompt.mjs +23 -0
  116. package/dist/es/ai-model/prompt/insight/user-prompt.mjs.map +1 -0
  117. package/dist/es/ai-model/prompt/locate/element-system-prompt.mjs +12 -0
  118. package/dist/es/ai-model/prompt/locate/element-system-prompt.mjs.map +1 -0
  119. package/dist/es/ai-model/prompt/locate/grounding-rules.mjs +13 -0
  120. package/dist/es/ai-model/prompt/locate/grounding-rules.mjs.map +1 -0
  121. package/dist/es/ai-model/prompt/locate/index.mjs +4 -0
  122. package/dist/es/ai-model/prompt/locate/search-area-system-prompt.mjs +9 -0
  123. package/dist/es/ai-model/prompt/locate/search-area-system-prompt.mjs.map +1 -0
  124. package/dist/es/ai-model/prompt/planning/action-output-example.mjs +52 -0
  125. package/dist/es/ai-model/prompt/planning/action-output-example.mjs.map +1 -0
  126. package/dist/es/ai-model/prompt/planning/action-space-description.mjs +28 -0
  127. package/dist/es/ai-model/prompt/planning/action-space-description.mjs.map +1 -0
  128. package/dist/es/ai-model/prompt/planning/index.mjs +6 -0
  129. package/dist/es/ai-model/prompt/planning/multi-turn-example.mjs +221 -0
  130. package/dist/es/ai-model/prompt/planning/multi-turn-example.mjs.map +1 -0
  131. package/dist/es/ai-model/prompt/planning/planning-response-example.mjs +25 -0
  132. package/dist/es/ai-model/prompt/planning/planning-response-example.mjs.map +1 -0
  133. package/dist/es/ai-model/prompt/planning/sub-goals-text.mjs +17 -0
  134. package/dist/es/ai-model/prompt/planning/sub-goals-text.mjs.map +1 -0
  135. package/dist/es/ai-model/prompt/planning/system-prompt.mjs +293 -0
  136. package/dist/es/ai-model/prompt/planning/system-prompt.mjs.map +1 -0
  137. package/dist/es/ai-model/service-caller/codex-app-server.mjs +1 -0
  138. package/dist/es/ai-model/service-caller/codex-app-server.mjs.map +1 -1
  139. package/dist/es/ai-model/service-caller/index.mjs +35 -16
  140. package/dist/es/ai-model/service-caller/index.mjs.map +1 -1
  141. package/dist/es/ai-model/service-caller/model-call-recorder.mjs +74 -0
  142. package/dist/es/ai-model/service-caller/model-call-recorder.mjs.map +1 -0
  143. package/dist/es/ai-model/service-caller/openai-error.mjs +147 -0
  144. package/dist/es/ai-model/service-caller/openai-error.mjs.map +1 -0
  145. package/dist/es/ai-model/service-caller/proxy-deps.node.mjs +9 -0
  146. package/dist/es/ai-model/service-caller/proxy-deps.node.mjs.map +1 -0
  147. package/dist/es/ai-model/service-caller/proxy-deps.stub.mjs +12 -0
  148. package/dist/es/ai-model/service-caller/proxy-deps.stub.mjs.map +1 -0
  149. package/dist/es/ai-model/service-caller/semantic-retry.mjs +33 -0
  150. package/dist/es/ai-model/service-caller/semantic-retry.mjs.map +1 -0
  151. package/dist/es/ai-model/service-caller/types.mjs +0 -0
  152. package/dist/es/ai-model/shared/action-schema.mjs +15 -0
  153. package/dist/es/ai-model/shared/action-schema.mjs.map +1 -0
  154. package/dist/es/ai-model/shared/json.mjs +63 -0
  155. package/dist/es/ai-model/shared/json.mjs.map +1 -0
  156. package/dist/es/ai-model/shared/model-locate-result/bbox.mjs +60 -0
  157. package/dist/es/ai-model/shared/model-locate-result/bbox.mjs.map +1 -0
  158. package/dist/es/ai-model/shared/model-locate-result/coordinate-distance.mjs +10 -0
  159. package/dist/es/ai-model/shared/model-locate-result/coordinate-distance.mjs.map +1 -0
  160. package/dist/es/ai-model/shared/model-locate-result/errors.mjs +9 -0
  161. package/dist/es/ai-model/shared/model-locate-result/errors.mjs.map +1 -0
  162. package/dist/es/ai-model/shared/model-locate-result/factory.mjs +39 -0
  163. package/dist/es/ai-model/shared/model-locate-result/factory.mjs.map +1 -0
  164. package/dist/es/ai-model/shared/model-locate-result/index.mjs +6 -0
  165. package/dist/es/ai-model/shared/model-locate-result/parse.mjs +45 -0
  166. package/dist/es/ai-model/shared/model-locate-result/parse.mjs.map +1 -0
  167. package/dist/es/ai-model/shared/model-locate-result/pixel-bbox-mapper.mjs +67 -0
  168. package/dist/es/ai-model/shared/model-locate-result/pixel-bbox-mapper.mjs.map +1 -0
  169. package/dist/es/ai-model/shared/model-locate-result/prompt-spec.mjs +110 -0
  170. package/dist/es/ai-model/shared/model-locate-result/prompt-spec.mjs.map +1 -0
  171. package/dist/es/ai-model/shared/model-locate-result/types.mjs +9 -0
  172. package/dist/es/ai-model/shared/model-locate-result/types.mjs.map +1 -0
  173. package/dist/es/ai-model/shared/multimodal-prompt.mjs +55 -0
  174. package/dist/es/ai-model/shared/multimodal-prompt.mjs.map +1 -0
  175. package/dist/es/ai-model/shared/xml.mjs +42 -0
  176. package/dist/es/ai-model/shared/xml.mjs.map +1 -0
  177. package/dist/es/ai-model/workflows/grounding/index.mjs +4 -0
  178. package/dist/es/ai-model/workflows/grounding/locate-result-rect.mjs +23 -0
  179. package/dist/es/ai-model/workflows/grounding/locate-result-rect.mjs.map +1 -0
  180. package/dist/es/ai-model/workflows/grounding/locate.mjs +168 -0
  181. package/dist/es/ai-model/workflows/grounding/locate.mjs.map +1 -0
  182. package/dist/es/ai-model/workflows/grounding/planning-action-locate.mjs +97 -0
  183. package/dist/es/ai-model/workflows/grounding/planning-action-locate.mjs.map +1 -0
  184. package/dist/es/ai-model/workflows/grounding/search-area-mapping.mjs +18 -0
  185. package/dist/es/ai-model/workflows/grounding/search-area-mapping.mjs.map +1 -0
  186. package/dist/es/ai-model/workflows/grounding/search-area.mjs +55 -0
  187. package/dist/es/ai-model/workflows/grounding/search-area.mjs.map +1 -0
  188. package/dist/es/ai-model/workflows/grounding/section-locate.mjs +146 -0
  189. package/dist/es/ai-model/workflows/grounding/section-locate.mjs.map +1 -0
  190. package/dist/es/ai-model/workflows/grounding/types.mjs +0 -0
  191. package/dist/es/ai-model/workflows/grounding/utils.mjs +50 -0
  192. package/dist/es/ai-model/workflows/grounding/utils.mjs.map +1 -0
  193. package/dist/es/ai-model/workflows/insight/extraction.mjs +101 -0
  194. package/dist/es/ai-model/workflows/insight/extraction.mjs.map +1 -0
  195. package/dist/es/ai-model/workflows/insight/index.mjs +3 -0
  196. package/dist/es/ai-model/workflows/insight/insight-response-parser.mjs +26 -0
  197. package/dist/es/ai-model/workflows/insight/insight-response-parser.mjs.map +1 -0
  198. package/dist/es/ai-model/workflows/insight/order-sensitive.mjs +29 -0
  199. package/dist/es/ai-model/workflows/insight/order-sensitive.mjs.map +1 -0
  200. package/dist/es/ai-model/workflows/planning/conversation-history.mjs +185 -0
  201. package/dist/es/ai-model/workflows/planning/conversation-history.mjs.map +1 -0
  202. package/dist/es/ai-model/workflows/planning/custom-planning.mjs +129 -0
  203. package/dist/es/ai-model/workflows/planning/custom-planning.mjs.map +1 -0
  204. package/dist/es/ai-model/workflows/planning/index.mjs +4 -0
  205. package/dist/es/ai-model/workflows/planning/locate-normalization.mjs +41 -0
  206. package/dist/es/ai-model/workflows/planning/locate-normalization.mjs.map +1 -0
  207. package/dist/es/ai-model/workflows/planning/planning-action-log.mjs +22 -0
  208. package/dist/es/ai-model/workflows/planning/planning-action-log.mjs.map +1 -0
  209. package/dist/es/ai-model/workflows/planning/standard-planning-parser.mjs +99 -0
  210. package/dist/es/ai-model/workflows/planning/standard-planning-parser.mjs.map +1 -0
  211. package/dist/es/ai-model/workflows/planning/standard-planning.mjs +219 -0
  212. package/dist/es/ai-model/workflows/planning/standard-planning.mjs.map +1 -0
  213. package/dist/es/ai-model/workflows/planning/types.mjs +0 -0
  214. package/dist/es/ai-model/workflows/recorder-generation/common.mjs +171 -0
  215. package/dist/es/ai-model/workflows/recorder-generation/common.mjs.map +1 -0
  216. package/dist/es/ai-model/workflows/recorder-generation/index.mjs +5 -0
  217. package/dist/es/ai-model/workflows/recorder-generation/markdown.mjs +253 -0
  218. package/dist/es/ai-model/workflows/recorder-generation/markdown.mjs.map +1 -0
  219. package/dist/es/ai-model/workflows/recorder-generation/metadata.mjs +83 -0
  220. package/dist/es/ai-model/workflows/recorder-generation/metadata.mjs.map +1 -0
  221. package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs +123 -0
  222. package/dist/es/ai-model/workflows/recorder-generation/playwright.mjs.map +1 -0
  223. package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs +162 -0
  224. package/dist/es/ai-model/workflows/recorder-generation/yaml.mjs.map +1 -0
  225. package/dist/es/common.mjs +12 -1
  226. package/dist/es/common.mjs.map +1 -1
  227. package/dist/es/constants.mjs +4 -0
  228. package/dist/es/constants.mjs.map +1 -0
  229. package/dist/es/device/index.mjs.map +1 -1
  230. package/dist/es/device/input-strategy.mjs +34 -0
  231. package/dist/es/device/input-strategy.mjs.map +1 -0
  232. package/dist/es/dump/html-utils.mjs +16 -1
  233. package/dist/es/dump/html-utils.mjs.map +1 -1
  234. package/dist/es/dump/image-reference.mjs +63 -0
  235. package/dist/es/dump/image-reference.mjs.map +1 -0
  236. package/dist/es/dump/report-action-dump.mjs +244 -0
  237. package/dist/es/dump/report-action-dump.mjs.map +1 -0
  238. package/dist/es/dump/report-dump-compactor.mjs +200 -0
  239. package/dist/es/dump/report-dump-compactor.mjs.map +1 -0
  240. package/dist/es/dump/screenshot-store.mjs +124 -37
  241. package/dist/es/dump/screenshot-store.mjs.map +1 -1
  242. package/dist/es/dump/task-service-dump.mjs +17 -0
  243. package/dist/es/dump/task-service-dump.mjs.map +1 -0
  244. package/dist/es/dump/task-status.mjs +18 -0
  245. package/dist/es/dump/task-status.mjs.map +1 -0
  246. package/dist/es/element-describer.mjs +198 -0
  247. package/dist/es/element-describer.mjs.map +1 -0
  248. package/dist/es/errors.mjs +20 -0
  249. package/dist/es/errors.mjs.map +1 -0
  250. package/dist/es/report-html-template.mjs +4 -0
  251. package/dist/es/report-html-template.mjs.map +1 -0
  252. package/dist/es/report-stats.mjs +113 -0
  253. package/dist/es/report-stats.mjs.map +1 -0
  254. package/dist/es/screenshot-item.mjs +7 -2
  255. package/dist/es/screenshot-item.mjs.map +1 -1
  256. package/dist/es/service/index.mjs +10 -5
  257. package/dist/es/service/index.mjs.map +1 -1
  258. package/dist/es/task-runner.mjs.map +1 -1
  259. package/dist/es/types.mjs.map +1 -1
  260. package/dist/es/utils.mjs +1 -1
  261. package/dist/es/yaml/cleanup.mjs +13 -0
  262. package/dist/es/yaml/cleanup.mjs.map +1 -0
  263. package/dist/lib/agent/agent.js +24 -11
  264. package/dist/lib/agent/agent.js.map +1 -1
  265. package/dist/lib/agent/cache-config.js +53 -0
  266. package/dist/lib/agent/cache-config.js.map +1 -0
  267. package/dist/lib/agent/file-chooser.js +125 -0
  268. package/dist/lib/agent/file-chooser.js.map +1 -0
  269. package/dist/lib/agent/insight.js +135 -0
  270. package/dist/lib/agent/insight.js.map +1 -0
  271. package/dist/lib/agent/metrics.js +115 -0
  272. package/dist/lib/agent/metrics.js.map +1 -0
  273. package/dist/lib/agent/progress/ai-act-progress.js +239 -0
  274. package/dist/lib/agent/progress/ai-act-progress.js.map +1 -0
  275. package/dist/lib/agent/progress/index.js +67 -0
  276. package/dist/lib/agent/progress/index.js.map +1 -0
  277. package/dist/lib/agent/progress/progress-bus.js +86 -0
  278. package/dist/lib/agent/progress/progress-bus.js.map +1 -0
  279. package/dist/lib/agent/prompt-context.js +62 -0
  280. package/dist/lib/agent/prompt-context.js.map +1 -0
  281. package/dist/lib/agent/record-to-report.js +48 -0
  282. package/dist/lib/agent/record-to-report.js.map +1 -0
  283. package/dist/lib/agent/run-gherkin-scenario.js +151 -0
  284. package/dist/lib/agent/run-gherkin-scenario.js.map +1 -0
  285. package/dist/lib/agent/run-markdown.js +96 -0
  286. package/dist/lib/agent/run-markdown.js.map +1 -0
  287. package/dist/lib/agent/screenshot-preparation.js +74 -0
  288. package/dist/lib/agent/screenshot-preparation.js.map +1 -0
  289. package/dist/lib/agent/ui-observer.js +425 -0
  290. package/dist/lib/agent/ui-observer.js.map +1 -0
  291. package/dist/lib/agent/utils.js +46 -2
  292. package/dist/lib/agent/utils.js.map +1 -1
  293. package/dist/lib/ai-model/connectivity/fixture.js +45 -0
  294. package/dist/lib/ai-model/connectivity/fixture.js.map +1 -0
  295. package/dist/lib/ai-model/connectivity/index.js +38 -0
  296. package/dist/lib/ai-model/connectivity/index.js.map +1 -0
  297. package/dist/lib/ai-model/connectivity/run-connectivity-test.js +204 -0
  298. package/dist/lib/ai-model/connectivity/run-connectivity-test.js.map +1 -0
  299. package/dist/lib/ai-model/conversation-history.js.map +1 -1
  300. package/dist/lib/ai-model/index.js +15 -11
  301. package/dist/lib/ai-model/inspect.js +1 -1
  302. package/dist/lib/ai-model/inspect.js.map +1 -1
  303. package/dist/lib/ai-model/model-adapter/chat-completion.js +103 -0
  304. package/dist/lib/ai-model/model-adapter/chat-completion.js.map +1 -0
  305. package/dist/lib/ai-model/model-adapter/custom-planning-action.js +40 -0
  306. package/dist/lib/ai-model/model-adapter/custom-planning-action.js.map +1 -0
  307. package/dist/lib/ai-model/model-adapter/custom-planning-types.js +20 -0
  308. package/dist/lib/ai-model/model-adapter/custom-planning-types.js.map +1 -0
  309. package/dist/lib/ai-model/model-adapter/default-insight-protocol.js +62 -0
  310. package/dist/lib/ai-model/model-adapter/default-insight-protocol.js.map +1 -0
  311. package/dist/lib/ai-model/model-adapter/default-locate-protocol.js +182 -0
  312. package/dist/lib/ai-model/model-adapter/default-locate-protocol.js.map +1 -0
  313. package/dist/lib/ai-model/model-adapter/default-planning-protocol.js +170 -0
  314. package/dist/lib/ai-model/model-adapter/default-planning-protocol.js.map +1 -0
  315. package/dist/lib/ai-model/model-adapter/image-preprocess.js +61 -0
  316. package/dist/lib/ai-model/model-adapter/image-preprocess.js.map +1 -0
  317. package/dist/lib/ai-model/model-adapter/index.js +38 -0
  318. package/dist/lib/ai-model/model-adapter/index.js.map +1 -0
  319. package/dist/lib/ai-model/model-adapter/insight-protocol.js +20 -0
  320. package/dist/lib/ai-model/model-adapter/insight-protocol.js.map +1 -0
  321. package/dist/lib/ai-model/model-adapter/insight.js +50 -0
  322. package/dist/lib/ai-model/model-adapter/insight.js.map +1 -0
  323. package/dist/lib/ai-model/model-adapter/locate-protocol.js +20 -0
  324. package/dist/lib/ai-model/model-adapter/locate-protocol.js.map +1 -0
  325. package/dist/lib/ai-model/model-adapter/locate.js +87 -0
  326. package/dist/lib/ai-model/model-adapter/locate.js.map +1 -0
  327. package/dist/lib/ai-model/model-adapter/planning-protocol.js +20 -0
  328. package/dist/lib/ai-model/model-adapter/planning-protocol.js.map +1 -0
  329. package/dist/lib/ai-model/model-adapter/planning.js +86 -0
  330. package/dist/lib/ai-model/model-adapter/planning.js.map +1 -0
  331. package/dist/lib/ai-model/model-adapter/resolve.js +88 -0
  332. package/dist/lib/ai-model/model-adapter/resolve.js.map +1 -0
  333. package/dist/lib/ai-model/model-adapter/types.js +20 -0
  334. package/dist/lib/ai-model/model-adapter/types.js.map +1 -0
  335. package/dist/lib/ai-model/models/auto-glm/actions.js +239 -0
  336. package/dist/lib/ai-model/models/auto-glm/actions.js.map +1 -0
  337. package/dist/lib/ai-model/models/auto-glm/adapter.js +79 -0
  338. package/dist/lib/ai-model/models/auto-glm/adapter.js.map +1 -0
  339. package/dist/lib/ai-model/models/auto-glm/locate.js +45 -0
  340. package/dist/lib/ai-model/models/auto-glm/locate.js.map +1 -0
  341. package/dist/lib/ai-model/models/auto-glm/parser.js +260 -0
  342. package/dist/lib/ai-model/models/auto-glm/parser.js.map +1 -0
  343. package/dist/lib/ai-model/models/auto-glm/planning.js +67 -0
  344. package/dist/lib/ai-model/models/auto-glm/planning.js.map +1 -0
  345. package/dist/lib/ai-model/models/auto-glm/prompt.js +257 -0
  346. package/dist/lib/ai-model/models/auto-glm/prompt.js.map +1 -0
  347. package/dist/lib/ai-model/models/deepseek/adapter.js +113 -0
  348. package/dist/lib/ai-model/models/deepseek/adapter.js.map +1 -0
  349. package/dist/lib/ai-model/models/deepseek/locate-protocol.js +132 -0
  350. package/dist/lib/ai-model/models/deepseek/locate-protocol.js.map +1 -0
  351. package/dist/lib/ai-model/models/default.js +47 -0
  352. package/dist/lib/ai-model/models/default.js.map +1 -0
  353. package/dist/lib/ai-model/models/doubao.js +132 -0
  354. package/dist/lib/ai-model/models/doubao.js.map +1 -0
  355. package/dist/lib/ai-model/models/gemini.js +137 -0
  356. package/dist/lib/ai-model/models/gemini.js.map +1 -0
  357. package/dist/lib/ai-model/models/glm.js +80 -0
  358. package/dist/lib/ai-model/models/glm.js.map +1 -0
  359. package/dist/lib/ai-model/models/gpt.js +77 -0
  360. package/dist/lib/ai-model/models/gpt.js.map +1 -0
  361. package/dist/lib/ai-model/models/index.js +41 -0
  362. package/dist/lib/ai-model/models/index.js.map +1 -0
  363. package/dist/lib/ai-model/models/kimi.js +136 -0
  364. package/dist/lib/ai-model/models/kimi.js.map +1 -0
  365. package/dist/lib/ai-model/models/mimo.js +70 -0
  366. package/dist/lib/ai-model/models/mimo.js.map +1 -0
  367. package/dist/lib/ai-model/models/qwen.js +173 -0
  368. package/dist/lib/ai-model/models/qwen.js.map +1 -0
  369. package/dist/lib/ai-model/models/registry.js +91 -0
  370. package/dist/lib/ai-model/models/registry.js.map +1 -0
  371. package/dist/lib/ai-model/models/ui-tars/actions.js +181 -0
  372. package/dist/lib/ai-model/models/ui-tars/actions.js.map +1 -0
  373. package/dist/lib/ai-model/models/ui-tars/adapter.js +136 -0
  374. package/dist/lib/ai-model/models/ui-tars/adapter.js.map +1 -0
  375. package/dist/lib/ai-model/models/ui-tars/parser.js +74 -0
  376. package/dist/lib/ai-model/models/ui-tars/parser.js.map +1 -0
  377. package/dist/lib/ai-model/models/ui-tars/planning.js +59 -0
  378. package/dist/lib/ai-model/models/ui-tars/planning.js.map +1 -0
  379. package/dist/lib/ai-model/models/ui-tars/prompt.js +73 -0
  380. package/dist/lib/ai-model/models/ui-tars/prompt.js.map +1 -0
  381. package/dist/lib/ai-model/models/utils/intent.js +40 -0
  382. package/dist/lib/ai-model/models/utils/intent.js.map +1 -0
  383. package/dist/lib/ai-model/prompt/insight/index.js +45 -0
  384. package/dist/lib/ai-model/prompt/insight/index.js.map +1 -0
  385. package/dist/lib/ai-model/prompt/insight/system-prompt.js +138 -0
  386. package/dist/lib/ai-model/prompt/insight/system-prompt.js.map +1 -0
  387. package/dist/lib/ai-model/prompt/insight/user-prompt.js +60 -0
  388. package/dist/lib/ai-model/prompt/insight/user-prompt.js.map +1 -0
  389. package/dist/lib/ai-model/prompt/locate/element-system-prompt.js +46 -0
  390. package/dist/lib/ai-model/prompt/locate/element-system-prompt.js.map +1 -0
  391. package/dist/lib/ai-model/prompt/locate/grounding-rules.js +47 -0
  392. package/dist/lib/ai-model/prompt/locate/grounding-rules.js.map +1 -0
  393. package/dist/lib/ai-model/prompt/locate/index.js +46 -0
  394. package/dist/lib/ai-model/prompt/locate/index.js.map +1 -0
  395. package/dist/lib/ai-model/prompt/locate/search-area-system-prompt.js +43 -0
  396. package/dist/lib/ai-model/prompt/locate/search-area-system-prompt.js.map +1 -0
  397. package/dist/lib/ai-model/prompt/planning/action-output-example.js +92 -0
  398. package/dist/lib/ai-model/prompt/planning/action-output-example.js.map +1 -0
  399. package/dist/lib/ai-model/prompt/planning/action-space-description.js +75 -0
  400. package/dist/lib/ai-model/prompt/planning/action-space-description.js.map +1 -0
  401. package/dist/lib/ai-model/prompt/planning/index.js +63 -0
  402. package/dist/lib/ai-model/prompt/planning/index.js.map +1 -0
  403. package/dist/lib/ai-model/prompt/planning/multi-turn-example.js +255 -0
  404. package/dist/lib/ai-model/prompt/planning/multi-turn-example.js.map +1 -0
  405. package/dist/lib/ai-model/prompt/planning/planning-response-example.js +59 -0
  406. package/dist/lib/ai-model/prompt/planning/planning-response-example.js.map +1 -0
  407. package/dist/lib/ai-model/prompt/planning/sub-goals-text.js +51 -0
  408. package/dist/lib/ai-model/prompt/planning/sub-goals-text.js.map +1 -0
  409. package/dist/lib/ai-model/prompt/planning/system-prompt.js +327 -0
  410. package/dist/lib/ai-model/prompt/planning/system-prompt.js.map +1 -0
  411. package/dist/lib/ai-model/service-caller/codex-app-server.js +1 -0
  412. package/dist/lib/ai-model/service-caller/codex-app-server.js.map +1 -1
  413. package/dist/lib/ai-model/service-caller/index.js +35 -16
  414. package/dist/lib/ai-model/service-caller/index.js.map +1 -1
  415. package/dist/lib/ai-model/service-caller/model-call-recorder.js +124 -0
  416. package/dist/lib/ai-model/service-caller/model-call-recorder.js.map +1 -0
  417. package/dist/lib/ai-model/service-caller/openai-error.js +184 -0
  418. package/dist/lib/ai-model/service-caller/openai-error.js.map +1 -0
  419. package/dist/lib/ai-model/service-caller/proxy-deps.node.js +46 -0
  420. package/dist/lib/ai-model/service-caller/proxy-deps.node.js.map +1 -0
  421. package/dist/lib/ai-model/service-caller/proxy-deps.stub.js +49 -0
  422. package/dist/lib/ai-model/service-caller/proxy-deps.stub.js.map +1 -0
  423. package/dist/lib/ai-model/service-caller/semantic-retry.js +70 -0
  424. package/dist/lib/ai-model/service-caller/semantic-retry.js.map +1 -0
  425. package/dist/lib/ai-model/service-caller/types.js +20 -0
  426. package/dist/lib/ai-model/service-caller/types.js.map +1 -0
  427. package/dist/lib/ai-model/shared/action-schema.js +49 -0
  428. package/dist/lib/ai-model/shared/action-schema.js.map +1 -0
  429. package/dist/lib/ai-model/shared/json.js +103 -0
  430. package/dist/lib/ai-model/shared/json.js.map +1 -0
  431. package/dist/lib/ai-model/shared/model-locate-result/bbox.js +106 -0
  432. package/dist/lib/ai-model/shared/model-locate-result/bbox.js.map +1 -0
  433. package/dist/lib/ai-model/shared/model-locate-result/coordinate-distance.js +44 -0
  434. package/dist/lib/ai-model/shared/model-locate-result/coordinate-distance.js.map +1 -0
  435. package/dist/lib/ai-model/shared/model-locate-result/errors.js +46 -0
  436. package/dist/lib/ai-model/shared/model-locate-result/errors.js.map +1 -0
  437. package/dist/lib/ai-model/shared/model-locate-result/factory.js +76 -0
  438. package/dist/lib/ai-model/shared/model-locate-result/factory.js.map +1 -0
  439. package/dist/lib/ai-model/shared/model-locate-result/index.js +66 -0
  440. package/dist/lib/ai-model/shared/model-locate-result/index.js.map +1 -0
  441. package/dist/lib/ai-model/shared/model-locate-result/parse.js +88 -0
  442. package/dist/lib/ai-model/shared/model-locate-result/parse.js.map +1 -0
  443. package/dist/lib/ai-model/shared/model-locate-result/pixel-bbox-mapper.js +101 -0
  444. package/dist/lib/ai-model/shared/model-locate-result/pixel-bbox-mapper.js.map +1 -0
  445. package/dist/lib/ai-model/shared/model-locate-result/prompt-spec.js +156 -0
  446. package/dist/lib/ai-model/shared/model-locate-result/prompt-spec.js.map +1 -0
  447. package/dist/lib/ai-model/shared/model-locate-result/types.js +46 -0
  448. package/dist/lib/ai-model/shared/model-locate-result/types.js.map +1 -0
  449. package/dist/lib/ai-model/shared/multimodal-prompt.js +95 -0
  450. package/dist/lib/ai-model/shared/multimodal-prompt.js.map +1 -0
  451. package/dist/lib/ai-model/shared/xml.js +79 -0
  452. package/dist/lib/ai-model/shared/xml.js.map +1 -0
  453. package/dist/lib/ai-model/workflows/grounding/index.js +46 -0
  454. package/dist/lib/ai-model/workflows/grounding/index.js.map +1 -0
  455. package/dist/lib/ai-model/workflows/grounding/locate-result-rect.js +60 -0
  456. package/dist/lib/ai-model/workflows/grounding/locate-result-rect.js.map +1 -0
  457. package/dist/lib/ai-model/workflows/grounding/locate.js +208 -0
  458. package/dist/lib/ai-model/workflows/grounding/locate.js.map +1 -0
  459. package/dist/lib/ai-model/workflows/grounding/planning-action-locate.js +131 -0
  460. package/dist/lib/ai-model/workflows/grounding/planning-action-locate.js.map +1 -0
  461. package/dist/lib/ai-model/workflows/grounding/search-area-mapping.js +52 -0
  462. package/dist/lib/ai-model/workflows/grounding/search-area-mapping.js.map +1 -0
  463. package/dist/lib/ai-model/workflows/grounding/search-area.js +92 -0
  464. package/dist/lib/ai-model/workflows/grounding/search-area.js.map +1 -0
  465. package/dist/lib/ai-model/workflows/grounding/section-locate.js +180 -0
  466. package/dist/lib/ai-model/workflows/grounding/section-locate.js.map +1 -0
  467. package/dist/lib/ai-model/workflows/grounding/types.js +20 -0
  468. package/dist/lib/ai-model/workflows/grounding/types.js.map +1 -0
  469. package/dist/lib/ai-model/workflows/grounding/utils.js +87 -0
  470. package/dist/lib/ai-model/workflows/grounding/utils.js.map +1 -0
  471. package/dist/lib/ai-model/workflows/insight/extraction.js +135 -0
  472. package/dist/lib/ai-model/workflows/insight/extraction.js.map +1 -0
  473. package/dist/lib/ai-model/workflows/insight/index.js +42 -0
  474. package/dist/lib/ai-model/workflows/insight/index.js.map +1 -0
  475. package/dist/lib/ai-model/workflows/insight/insight-response-parser.js +60 -0
  476. package/dist/lib/ai-model/workflows/insight/insight-response-parser.js.map +1 -0
  477. package/dist/lib/ai-model/workflows/insight/order-sensitive.js +63 -0
  478. package/dist/lib/ai-model/workflows/insight/order-sensitive.js.map +1 -0
  479. package/dist/lib/ai-model/workflows/planning/conversation-history.js +219 -0
  480. package/dist/lib/ai-model/workflows/planning/conversation-history.js.map +1 -0
  481. package/dist/lib/ai-model/workflows/planning/custom-planning.js +166 -0
  482. package/dist/lib/ai-model/workflows/planning/custom-planning.js.map +1 -0
  483. package/dist/lib/ai-model/workflows/planning/index.js +49 -0
  484. package/dist/lib/ai-model/workflows/planning/index.js.map +1 -0
  485. package/dist/lib/ai-model/workflows/planning/locate-normalization.js +75 -0
  486. package/dist/lib/ai-model/workflows/planning/locate-normalization.js.map +1 -0
  487. package/dist/lib/ai-model/workflows/planning/planning-action-log.js +56 -0
  488. package/dist/lib/ai-model/workflows/planning/planning-action-log.js.map +1 -0
  489. package/dist/lib/ai-model/workflows/planning/standard-planning-parser.js +142 -0
  490. package/dist/lib/ai-model/workflows/planning/standard-planning-parser.js.map +1 -0
  491. package/dist/lib/ai-model/workflows/planning/standard-planning.js +253 -0
  492. package/dist/lib/ai-model/workflows/planning/standard-planning.js.map +1 -0
  493. package/dist/lib/ai-model/workflows/planning/types.js +20 -0
  494. package/dist/lib/ai-model/workflows/planning/types.js.map +1 -0
  495. package/dist/lib/ai-model/workflows/recorder-generation/common.js +232 -0
  496. package/dist/lib/ai-model/workflows/recorder-generation/common.js.map +1 -0
  497. package/dist/lib/ai-model/workflows/recorder-generation/index.js +68 -0
  498. package/dist/lib/ai-model/workflows/recorder-generation/index.js.map +1 -0
  499. package/dist/lib/ai-model/workflows/recorder-generation/markdown.js +293 -0
  500. package/dist/lib/ai-model/workflows/recorder-generation/markdown.js.map +1 -0
  501. package/dist/lib/ai-model/workflows/recorder-generation/metadata.js +117 -0
  502. package/dist/lib/ai-model/workflows/recorder-generation/metadata.js.map +1 -0
  503. package/dist/lib/ai-model/workflows/recorder-generation/playwright.js +184 -0
  504. package/dist/lib/ai-model/workflows/recorder-generation/playwright.js.map +1 -0
  505. package/dist/lib/ai-model/workflows/recorder-generation/yaml.js +232 -0
  506. package/dist/lib/ai-model/workflows/recorder-generation/yaml.js.map +1 -0
  507. package/dist/lib/common.js +18 -1
  508. package/dist/lib/common.js.map +1 -1
  509. package/dist/lib/constants.js +38 -0
  510. package/dist/lib/constants.js.map +1 -0
  511. package/dist/lib/device/index.js.map +1 -1
  512. package/dist/lib/device/input-strategy.js +80 -0
  513. package/dist/lib/device/input-strategy.js.map +1 -0
  514. package/dist/lib/dump/html-utils.js +18 -0
  515. package/dist/lib/dump/html-utils.js.map +1 -1
  516. package/dist/lib/dump/image-reference.js +115 -0
  517. package/dist/lib/dump/image-reference.js.map +1 -0
  518. package/dist/lib/dump/report-action-dump.js +284 -0
  519. package/dist/lib/dump/report-action-dump.js.map +1 -0
  520. package/dist/lib/dump/report-dump-compactor.js +234 -0
  521. package/dist/lib/dump/report-dump-compactor.js.map +1 -0
  522. package/dist/lib/dump/screenshot-store.js +146 -38
  523. package/dist/lib/dump/screenshot-store.js.map +1 -1
  524. package/dist/lib/dump/task-service-dump.js +54 -0
  525. package/dist/lib/dump/task-service-dump.js.map +1 -0
  526. package/dist/lib/dump/task-status.js +55 -0
  527. package/dist/lib/dump/task-status.js.map +1 -0
  528. package/dist/lib/element-describer.js +238 -0
  529. package/dist/lib/element-describer.js.map +1 -0
  530. package/dist/lib/errors.js +54 -0
  531. package/dist/lib/errors.js.map +1 -0
  532. package/dist/lib/report-html-template.js +38 -0
  533. package/dist/lib/report-html-template.js.map +1 -0
  534. package/dist/lib/report-stats.js +147 -0
  535. package/dist/lib/report-stats.js.map +1 -0
  536. package/dist/lib/screenshot-item.js +7 -2
  537. package/dist/lib/screenshot-item.js.map +1 -1
  538. package/dist/lib/service/index.js +10 -5
  539. package/dist/lib/service/index.js.map +1 -1
  540. package/dist/lib/task-runner.js.map +1 -1
  541. package/dist/lib/types.js +2 -2
  542. package/dist/lib/types.js.map +1 -1
  543. package/dist/lib/utils.js +1 -1
  544. package/dist/lib/yaml/cleanup.js +47 -0
  545. package/dist/lib/yaml/cleanup.js.map +1 -0
  546. package/dist/types/agent/agent.d.ts +5 -9
  547. package/dist/types/agent/cache-config.d.ts +2 -0
  548. package/dist/types/agent/file-chooser.d.ts +19 -0
  549. package/dist/types/agent/insight.d.ts +21 -0
  550. package/dist/types/agent/metrics.d.ts +48 -0
  551. package/dist/types/agent/progress/ai-act-progress.d.ts +21 -0
  552. package/dist/types/agent/progress/index.d.ts +2 -0
  553. package/dist/types/agent/progress/progress-bus.d.ts +33 -0
  554. package/dist/types/agent/prompt-context.d.ts +3 -0
  555. package/dist/types/agent/record-to-report.d.ts +2 -0
  556. package/dist/types/agent/run-gherkin-scenario.d.ts +26 -0
  557. package/dist/types/agent/run-markdown.d.ts +6 -0
  558. package/dist/types/agent/screenshot-preparation.d.ts +20 -0
  559. package/dist/types/agent/ui-observer.d.ts +103 -0
  560. package/dist/types/agent/utils.d.ts +12 -1
  561. package/dist/types/ai-model/connectivity/fixture.d.ts +5 -0
  562. package/dist/types/ai-model/connectivity/index.d.ts +1 -0
  563. package/dist/types/ai-model/connectivity/run-connectivity-test.d.ts +11 -0
  564. package/dist/types/ai-model/index.d.ts +2 -0
  565. package/dist/types/ai-model/model-adapter/chat-completion.d.ts +2 -0
  566. package/dist/types/ai-model/model-adapter/custom-planning-action.d.ts +25 -0
  567. package/dist/types/ai-model/model-adapter/custom-planning-types.d.ts +31 -0
  568. package/dist/types/ai-model/model-adapter/default-insight-protocol.d.ts +2 -0
  569. package/dist/types/ai-model/model-adapter/default-locate-protocol.d.ts +7 -0
  570. package/dist/types/ai-model/model-adapter/default-planning-protocol.d.ts +25 -0
  571. package/dist/types/ai-model/model-adapter/image-preprocess.d.ts +30 -0
  572. package/dist/types/ai-model/model-adapter/index.d.ts +2 -0
  573. package/dist/types/ai-model/model-adapter/insight-protocol.d.ts +24 -0
  574. package/dist/types/ai-model/model-adapter/insight.d.ts +3 -0
  575. package/dist/types/ai-model/model-adapter/locate-protocol.d.ts +23 -0
  576. package/dist/types/ai-model/model-adapter/locate.d.ts +4 -0
  577. package/dist/types/ai-model/model-adapter/planning-protocol.d.ts +53 -0
  578. package/dist/types/ai-model/model-adapter/planning.d.ts +6 -0
  579. package/dist/types/ai-model/model-adapter/resolve.d.ts +12 -0
  580. package/dist/types/ai-model/model-adapter/types.d.ts +218 -0
  581. package/dist/types/ai-model/models/auto-glm/actions.d.ts +81 -0
  582. package/dist/types/ai-model/models/auto-glm/adapter.d.ts +5 -0
  583. package/dist/types/ai-model/models/auto-glm/locate.d.ts +2 -0
  584. package/dist/types/ai-model/models/auto-glm/parser.d.ts +14 -0
  585. package/dist/types/ai-model/models/auto-glm/planning.d.ts +5 -0
  586. package/dist/types/ai-model/models/auto-glm/prompt.d.ts +4 -0
  587. package/dist/types/ai-model/models/deepseek/adapter.d.ts +39 -0
  588. package/dist/types/ai-model/models/deepseek/locate-protocol.d.ts +5 -0
  589. package/dist/types/ai-model/models/default.d.ts +2 -0
  590. package/dist/types/ai-model/models/doubao.d.ts +7 -0
  591. package/dist/types/ai-model/models/gemini.d.ts +37 -0
  592. package/dist/types/ai-model/models/glm.d.ts +21 -0
  593. package/dist/types/ai-model/models/gpt.d.ts +20 -0
  594. package/dist/types/ai-model/models/index.d.ts +2 -0
  595. package/dist/types/ai-model/models/kimi.d.ts +45 -0
  596. package/dist/types/ai-model/models/mimo.d.ts +10 -0
  597. package/dist/types/ai-model/models/qwen.d.ts +33 -0
  598. package/dist/types/ai-model/models/registry.d.ts +187 -0
  599. package/dist/types/ai-model/models/ui-tars/actions.d.ts +3 -0
  600. package/dist/types/ai-model/models/ui-tars/adapter.d.ts +6 -0
  601. package/dist/types/ai-model/models/ui-tars/parser.d.ts +72 -0
  602. package/dist/types/ai-model/models/ui-tars/planning.d.ts +4 -0
  603. package/dist/types/ai-model/models/ui-tars/prompt.d.ts +2 -0
  604. package/dist/types/ai-model/models/utils/intent.d.ts +2 -0
  605. package/dist/types/ai-model/prompt/insight/index.d.ts +2 -0
  606. package/dist/types/ai-model/prompt/insight/system-prompt.d.ts +6 -0
  607. package/dist/types/ai-model/prompt/insight/user-prompt.d.ts +3 -0
  608. package/dist/types/ai-model/prompt/locate/element-system-prompt.d.ts +4 -0
  609. package/dist/types/ai-model/prompt/locate/grounding-rules.d.ts +1 -0
  610. package/dist/types/ai-model/prompt/locate/index.d.ts +3 -0
  611. package/dist/types/ai-model/prompt/locate/search-area-system-prompt.d.ts +4 -0
  612. package/dist/types/ai-model/prompt/planning/action-output-example.d.ts +17 -0
  613. package/dist/types/ai-model/prompt/planning/action-space-description.d.ts +11 -0
  614. package/dist/types/ai-model/prompt/planning/index.d.ts +6 -0
  615. package/dist/types/ai-model/prompt/planning/multi-turn-example.d.ts +10 -0
  616. package/dist/types/ai-model/prompt/planning/planning-response-example.d.ts +28 -0
  617. package/dist/types/ai-model/prompt/planning/sub-goals-text.d.ts +2 -0
  618. package/dist/types/ai-model/prompt/planning/system-prompt.d.ts +18 -0
  619. package/dist/types/ai-model/service-caller/index.d.ts +21 -6
  620. package/dist/types/ai-model/service-caller/model-call-recorder.d.ts +12 -0
  621. package/dist/types/ai-model/service-caller/openai-error.d.ts +26 -0
  622. package/dist/types/ai-model/service-caller/proxy-deps.node.d.ts +2 -0
  623. package/dist/types/ai-model/service-caller/proxy-deps.stub.d.ts +2 -0
  624. package/dist/types/ai-model/service-caller/semantic-retry.d.ts +30 -0
  625. package/dist/types/ai-model/service-caller/types.d.ts +2 -0
  626. package/dist/types/ai-model/shared/action-schema.d.ts +4 -0
  627. package/dist/types/ai-model/shared/json.d.ts +26 -0
  628. package/dist/types/ai-model/shared/model-locate-result/bbox.d.ts +6 -0
  629. package/dist/types/ai-model/shared/model-locate-result/coordinate-distance.d.ts +4 -0
  630. package/dist/types/ai-model/shared/model-locate-result/errors.d.ts +2 -0
  631. package/dist/types/ai-model/shared/model-locate-result/factory.d.ts +3 -0
  632. package/dist/types/ai-model/shared/model-locate-result/index.d.ts +7 -0
  633. package/dist/types/ai-model/shared/model-locate-result/parse.d.ts +8 -0
  634. package/dist/types/ai-model/shared/model-locate-result/pixel-bbox-mapper.d.ts +7 -0
  635. package/dist/types/ai-model/shared/model-locate-result/prompt-spec.d.ts +6 -0
  636. package/dist/types/ai-model/shared/model-locate-result/types.d.ts +150 -0
  637. package/dist/types/ai-model/shared/multimodal-prompt.d.ts +13 -0
  638. package/dist/types/ai-model/shared/xml.d.ts +15 -0
  639. package/dist/types/ai-model/workflows/grounding/index.d.ts +3 -0
  640. package/dist/types/ai-model/workflows/grounding/locate-result-rect.d.ts +5 -0
  641. package/dist/types/ai-model/workflows/grounding/locate.d.ts +7 -0
  642. package/dist/types/ai-model/workflows/grounding/planning-action-locate.d.ts +4 -0
  643. package/dist/types/ai-model/workflows/grounding/search-area-mapping.d.ts +4 -0
  644. package/dist/types/ai-model/workflows/grounding/search-area.d.ts +18 -0
  645. package/dist/types/ai-model/workflows/grounding/section-locate.d.ts +16 -0
  646. package/dist/types/ai-model/workflows/grounding/types.d.ts +56 -0
  647. package/dist/types/ai-model/workflows/grounding/utils.d.ts +25 -0
  648. package/dist/types/ai-model/workflows/insight/extraction.d.ts +18 -0
  649. package/dist/types/ai-model/workflows/insight/index.d.ts +2 -0
  650. package/dist/types/ai-model/workflows/insight/insight-response-parser.d.ts +4 -0
  651. package/dist/types/ai-model/workflows/insight/order-sensitive.d.ts +6 -0
  652. package/dist/types/ai-model/workflows/planning/conversation-history.d.ts +105 -0
  653. package/dist/types/ai-model/workflows/planning/custom-planning.d.ts +7 -0
  654. package/dist/types/ai-model/workflows/planning/index.d.ts +3 -0
  655. package/dist/types/ai-model/workflows/planning/locate-normalization.d.ts +12 -0
  656. package/dist/types/ai-model/workflows/planning/planning-action-log.d.ts +2 -0
  657. package/dist/types/ai-model/workflows/planning/standard-planning-parser.d.ts +31 -0
  658. package/dist/types/ai-model/workflows/planning/standard-planning.d.ts +4 -0
  659. package/dist/types/ai-model/workflows/planning/types.d.ts +16 -0
  660. package/dist/types/ai-model/workflows/recorder-generation/common.d.ts +89 -0
  661. package/dist/types/ai-model/workflows/recorder-generation/index.d.ts +7 -0
  662. package/dist/types/ai-model/workflows/recorder-generation/markdown.d.ts +7 -0
  663. package/dist/types/ai-model/workflows/recorder-generation/metadata.d.ts +13 -0
  664. package/dist/types/ai-model/workflows/recorder-generation/playwright.d.ts +26 -0
  665. package/dist/types/ai-model/workflows/recorder-generation/yaml.d.ts +17 -0
  666. package/dist/types/common.d.ts +2 -0
  667. package/dist/types/constants.d.ts +1 -0
  668. package/dist/types/device/index.d.ts +15 -4
  669. package/dist/types/device/input-strategy.d.ts +44 -0
  670. package/dist/types/dump/html-utils.d.ts +1 -0
  671. package/dist/types/dump/image-reference.d.ts +36 -0
  672. package/dist/types/dump/report-action-dump.d.ts +127 -0
  673. package/dist/types/dump/report-dump-compactor.d.ts +7 -0
  674. package/dist/types/dump/screenshot-store.d.ts +32 -15
  675. package/dist/types/dump/task-service-dump.d.ts +3 -0
  676. package/dist/types/dump/task-status.d.ts +41 -0
  677. package/dist/types/element-describer.d.ts +43 -0
  678. package/dist/types/errors.d.ts +5 -0
  679. package/dist/types/report-html-template.d.ts +1 -0
  680. package/dist/types/report-stats.d.ts +39 -0
  681. package/dist/types/screenshot-item.d.ts +1 -0
  682. package/dist/types/service/index.d.ts +6 -2
  683. package/dist/types/task-runner.d.ts +6 -0
  684. package/dist/types/types.d.ts +98 -5
  685. package/dist/types/yaml/cleanup.d.ts +2 -0
  686. package/package.json +2 -2
@@ -0,0 +1,89 @@
1
+ import { type MidsceneRecorderEvent, type MidsceneRecorderMarkdownScreenshotAsset, type MidsceneRecorderSemantic, type MidsceneRecorderTarget } from '@aiscene/shared/recorder';
2
+ export interface EventCounts {
3
+ navigation: number;
4
+ click: number;
5
+ input: number;
6
+ scroll: number;
7
+ total: number;
8
+ }
9
+ export interface InputDescription {
10
+ description: string;
11
+ value: string;
12
+ }
13
+ export interface ProcessedEvent {
14
+ hashId: string;
15
+ type: string;
16
+ timestamp: number;
17
+ source?: string;
18
+ actionType?: string;
19
+ url?: string;
20
+ title?: string;
21
+ semantic?: MidsceneRecorderSemantic;
22
+ description?: string;
23
+ value?: string;
24
+ typedText?: string;
25
+ inputIndex?: number;
26
+ isSequentialInput?: boolean;
27
+ hasNeighborInput?: boolean;
28
+ previousInputDescription?: string;
29
+ previousActionDescription?: string;
30
+ nextActionDescription?: string;
31
+ neighborInputValues?: string[];
32
+ pageInfo?: any;
33
+ elementRect?: any;
34
+ screenshotPath?: string;
35
+ }
36
+ export interface EventSummary {
37
+ testName: string;
38
+ startUrl: string;
39
+ eventCounts: EventCounts;
40
+ urls: string[];
41
+ clickDescriptions: string[];
42
+ inputDescriptions: InputDescription[];
43
+ events: ProcessedEvent[];
44
+ }
45
+ export interface RecorderGenerationContext {
46
+ summary: EventSummary;
47
+ screenshotAssets: MidsceneRecorderMarkdownScreenshotAsset[];
48
+ }
49
+ export type ChromeRecordedEvent = MidsceneRecorderEvent;
50
+ export interface RecorderGenerationOptions {
51
+ testName?: string;
52
+ includeTimestamps?: boolean;
53
+ maxScreenshots?: number;
54
+ description?: string;
55
+ /** Language for human-readable generated content (e.g. 'English', 'Chinese'). Keys and API names are kept as-is. */
56
+ language?: string;
57
+ navigationInfo?: {
58
+ urls?: string[];
59
+ titles?: string[];
60
+ initialViewport?: {
61
+ width?: number;
62
+ height?: number;
63
+ };
64
+ };
65
+ }
66
+ export interface RecorderGenerationInput extends RecorderGenerationOptions {
67
+ target: MidsceneRecorderTarget;
68
+ events: MidsceneRecorderEvent[];
69
+ }
70
+ export interface FilteredEvents {
71
+ navigationEvents: ChromeRecordedEvent[];
72
+ clickEvents: ChromeRecordedEvent[];
73
+ inputEvents: ChromeRecordedEvent[];
74
+ scrollEvents: ChromeRecordedEvent[];
75
+ }
76
+ export declare function compactRecorderSemanticForGeneration(semantic?: MidsceneRecorderSemantic): MidsceneRecorderSemantic | undefined;
77
+ export declare const validateEvents: (events: ChromeRecordedEvent[]) => void;
78
+ export declare const getScreenshotsForLLM: (events: ChromeRecordedEvent[], maxScreenshots?: number) => string[];
79
+ export declare const filterEventsByType: (events: ChromeRecordedEvent[]) => FilteredEvents;
80
+ export declare const createEventCounts: (filteredEvents: FilteredEvents, totalEvents: number) => EventCounts;
81
+ export declare const extractInputDescriptions: (inputEvents: ChromeRecordedEvent[]) => InputDescription[];
82
+ export declare const processEventsForLLM: (events: ChromeRecordedEvent[], screenshotPathByEventHash?: Map<string, string>) => ProcessedEvent[];
83
+ export declare const prepareEventSummary: (events: ChromeRecordedEvent[], options?: {
84
+ testName?: string;
85
+ maxScreenshots?: number;
86
+ screenshotPathByEventHash?: Map<string, string>;
87
+ }) => EventSummary;
88
+ export declare function prepareRecorderGenerationContext(input: RecorderGenerationInput): RecorderGenerationContext;
89
+ export declare const createMessageContent: (promptText: string, screenshots?: string[], includeScreenshots?: boolean) => any[];
@@ -0,0 +1,7 @@
1
+ export { generatePlaywrightTest, generatePlaywrightTestStream, } from './playwright';
2
+ export { convertRecordLogIntoMarkdown, createRecorderMarkdownReplayPrompt, generateRecorderMarkdownReplay, } from './markdown';
3
+ export { generateRecorderSessionMetadata } from './metadata';
4
+ export { generateRecorderYamlTest, generateRecorderYamlTestStream, generateYamlTest, generateYamlTestStream, } from './yaml';
5
+ export type { RecorderMarkdownGenerationInput } from './markdown';
6
+ export type { RecorderGeneratedMetadata, RecorderMetadataGenerationInput, } from './metadata';
7
+ export type { RecorderYamlGenerationInput, YamlGenerationOptions, } from './yaml';
@@ -0,0 +1,7 @@
1
+ import type { IModelConfig } from '@aiscene/shared/env';
2
+ import type { ChatCompletionMessageParam } from 'openai/resources/index';
3
+ import { type RecorderGenerationInput } from './common';
4
+ export type RecorderMarkdownGenerationInput = RecorderGenerationInput;
5
+ export declare function createRecorderMarkdownReplayPrompt(input: RecorderMarkdownGenerationInput): ChatCompletionMessageParam[];
6
+ export declare function generateRecorderMarkdownReplay(input: RecorderMarkdownGenerationInput, modelConfig: IModelConfig): Promise<string>;
7
+ export declare function convertRecordLogIntoMarkdown(log: RecorderMarkdownGenerationInput, modelConfig: IModelConfig): Promise<string>;
@@ -0,0 +1,13 @@
1
+ import type { IModelConfig } from '@aiscene/shared/env';
2
+ import { type MidsceneRecorderEvent, type MidsceneRecorderTarget } from '@aiscene/shared/recorder';
3
+ export interface RecorderMetadataGenerationInput {
4
+ target: MidsceneRecorderTarget;
5
+ events: MidsceneRecorderEvent[];
6
+ fallbackName?: string;
7
+ maxScreenshots?: number;
8
+ }
9
+ export interface RecorderGeneratedMetadata {
10
+ title?: string;
11
+ description?: string;
12
+ }
13
+ export declare function generateRecorderSessionMetadata(input: RecorderMetadataGenerationInput, modelConfig: IModelConfig): Promise<RecorderGeneratedMetadata>;
@@ -0,0 +1,26 @@
1
+ import type { StreamingAIResponse, StreamingCodeGenerationOptions } from '../../../types';
2
+ import type { IModelConfig } from '@aiscene/shared/env';
3
+ import { type ChromeRecordedEvent, type EventCounts, type EventSummary, type InputDescription, type ProcessedEvent, createEventCounts, createMessageContent, extractInputDescriptions, filterEventsByType, getScreenshotsForLLM, prepareEventSummary, processEventsForLLM, validateEvents } from './common';
4
+ export interface PlaywrightGenerationOptions {
5
+ testName?: string;
6
+ includeScreenshots?: boolean;
7
+ includeTimestamps?: boolean;
8
+ maxScreenshots?: number;
9
+ description?: string;
10
+ viewportSize?: {
11
+ width: number;
12
+ height: number;
13
+ };
14
+ waitForNetworkIdle?: boolean;
15
+ waitForNetworkIdleTimeout?: number;
16
+ }
17
+ export type { ChromeRecordedEvent, EventCounts, InputDescription, ProcessedEvent, EventSummary, };
18
+ export { getScreenshotsForLLM, filterEventsByType, createEventCounts, extractInputDescriptions, processEventsForLLM, prepareEventSummary, createMessageContent, validateEvents, };
19
+ /**
20
+ * Generates Playwright test code from recorded events
21
+ */
22
+ export declare const generatePlaywrightTest: (events: ChromeRecordedEvent[], options: PlaywrightGenerationOptions, modelConfig: IModelConfig) => Promise<string>;
23
+ /**
24
+ * Generates Playwright test code from recorded events with streaming support
25
+ */
26
+ export declare const generatePlaywrightTestStream: (events: ChromeRecordedEvent[], options: PlaywrightGenerationOptions & StreamingCodeGenerationOptions, modelConfig: IModelConfig) => Promise<StreamingAIResponse>;
@@ -0,0 +1,17 @@
1
+ import type { StreamingAIResponse, StreamingCodeGenerationOptions } from '../../../types';
2
+ import type { IModelConfig } from '@aiscene/shared/env';
3
+ import { type ChromeRecordedEvent, type EventCounts, type EventSummary, type FilteredEvents, type InputDescription, type ProcessedEvent, type RecorderGenerationContext, type RecorderGenerationInput, type RecorderGenerationOptions, createEventCounts, createMessageContent, extractInputDescriptions, filterEventsByType, getScreenshotsForLLM, prepareEventSummary, prepareRecorderGenerationContext, processEventsForLLM, validateEvents } from './common';
4
+ export type YamlGenerationOptions = RecorderGenerationOptions;
5
+ export type RecorderYamlGenerationInput = RecorderGenerationInput;
6
+ export type { ChromeRecordedEvent, EventCounts, EventSummary, FilteredEvents, InputDescription, ProcessedEvent, RecorderGenerationContext, };
7
+ export { createEventCounts, createMessageContent, extractInputDescriptions, filterEventsByType, getScreenshotsForLLM, prepareEventSummary, prepareRecorderGenerationContext, processEventsForLLM, validateEvents, };
8
+ export declare const generateRecorderYamlTest: (input: RecorderYamlGenerationInput, modelConfig: IModelConfig) => Promise<string>;
9
+ export declare const generateRecorderYamlTestStream: (input: RecorderYamlGenerationInput, options: StreamingCodeGenerationOptions, modelConfig: IModelConfig) => Promise<StreamingAIResponse>;
10
+ /**
11
+ * Generates YAML test configuration from recorded events using AI
12
+ */
13
+ export declare const generateYamlTest: (events: ChromeRecordedEvent[], options: YamlGenerationOptions, modelConfig: IModelConfig) => Promise<string>;
14
+ /**
15
+ * Generates YAML test configuration from recorded events using AI with streaming support
16
+ */
17
+ export declare const generateYamlTestStream: (events: ChromeRecordedEvent[], options: YamlGenerationOptions & StreamingCodeGenerationOptions, modelConfig: IModelConfig) => Promise<StreamingAIResponse>;
@@ -260,6 +260,8 @@ export declare const getMidsceneLocationSchema: () => z.ZodObject<{
260
260
  xpath: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodBoolean]>>;
261
261
  }, z.ZodTypeAny, "passthrough">>;
262
262
  export declare const ifMidsceneLocatorField: (field: any) => boolean;
263
+ export declare const userPromptToString: (prompt: TUserPrompt) => string;
264
+ export declare const userPromptToMultimodalPrompt: (prompt: TUserPrompt) => TMultimodalPrompt | undefined;
263
265
  export declare const dumpMidsceneLocatorField: (field: any) => string;
264
266
  export declare const findAllMidsceneLocatorField: (zodType?: z.ZodType<any>, requiredOnly?: boolean) => string[];
265
267
  export declare const dumpActionParam: (jsonObject: Record<string, any>, zodSchema: z.ZodType<any>) => Record<string, any>;
@@ -0,0 +1 @@
1
+ export declare const IS_REPORT_BUILD: boolean;
@@ -6,6 +6,10 @@ import type { ElementCacheFeature, Rect, Size } from '../types';
6
6
  export interface FileChooserHandler {
7
7
  accept(files: string[]): Promise<void>;
8
8
  }
9
+ export interface FileChooserRegistration {
10
+ dispose: () => void;
11
+ getError: () => Error | undefined | Promise<Error | undefined>;
12
+ }
9
13
  export interface MjpegStreamFrame {
10
14
  /** Raw base64-encoded image bytes WITHOUT a `data:image/...;base64,` prefix. */
11
15
  data: string;
@@ -19,6 +23,15 @@ export interface MjpegStreamOptions {
19
23
  onFrame(frame: MjpegStreamFrame): void;
20
24
  onError?(error: unknown): void;
21
25
  }
26
+ export interface DeviceFrameRef {
27
+ ref: unknown;
28
+ capturedAt: number;
29
+ }
30
+ export interface DeviceFrameSource {
31
+ latest(): DeviceFrameRef | null;
32
+ decode(refs: DeviceFrameRef[]): Promise<string[]>;
33
+ stop(): Promise<void> | void;
34
+ }
22
35
  /** A point in device-pixel coordinates on the screen. */
23
36
  export interface PointerPoint {
24
37
  x: number;
@@ -124,10 +137,7 @@ export declare abstract class AbstractInterface {
124
137
  abstract describe?(): string;
125
138
  abstract beforeInvokeAction?(actionName: string, param: any): Promise<void>;
126
139
  abstract afterInvokeAction?(actionName: string, param: any): Promise<void>;
127
- registerFileChooserListener?(handler: (chooser: FileChooserHandler) => Promise<void>): Promise<{
128
- dispose: () => void;
129
- getError: () => Error | undefined;
130
- }>;
140
+ registerFileChooserListener?(handler: (chooser: FileChooserHandler) => Promise<void>): Promise<FileChooserRegistration>;
131
141
  abstract getElementsNodeTree?: () => Promise<ElementNode>;
132
142
  abstract url?: () => string | Promise<string>;
133
143
  abstract evaluateJavaScript?<T = any>(script: string): Promise<T>;
@@ -139,6 +149,7 @@ export declare abstract class AbstractInterface {
139
149
  getDeviceLocalTimeString?(format?: string): Promise<string>;
140
150
  /** URL of native MJPEG stream for real-time screen preview (e.g. WDA MJPEG server) */
141
151
  mjpegStreamUrl?: string;
152
+ openFrameSource?(): Promise<DeviceFrameSource | undefined>;
142
153
  /**
143
154
  * Optional in-process MJPEG frame producer. Implementations can push raw
144
155
  * base64 frames here when there is no standalone native MJPEG URL, e.g.
@@ -0,0 +1,44 @@
1
+ /** Supported strategies for sending text through a platform input backend. */
2
+ export declare const inputStrategies: readonly ["legacy", "sequential", "bulk"];
3
+ /**
4
+ * `legacy` preserves the platform's pre-existing behavior, `sequential` sends
5
+ * one Unicode code point per Midscene backend call, and `bulk` sends the full
6
+ * value in one backend call where supported.
7
+ */
8
+ export type InputStrategy = (typeof inputStrategies)[number];
9
+ /** Input fields that may be configured at action or platform level. */
10
+ export type TextInputOptions = {
11
+ keyboardTypeDelay?: number;
12
+ inputStrategy?: InputStrategy;
13
+ };
14
+ /** Effective text input configuration after layered defaults are resolved. */
15
+ export type ResolvedTextInputOptions = {
16
+ keyboardTypeDelay?: number;
17
+ inputStrategy: InputStrategy;
18
+ };
19
+ /** Platform callbacks used to send text one Unicode code point at a time. */
20
+ export type SequentialTextInputHandlers = {
21
+ sendCharacter: (character: string) => unknown;
22
+ wait: (delayMs: number) => unknown;
23
+ };
24
+ /**
25
+ * Resolve an input strategy and reject combinations whose intent conflicts.
26
+ * Prefer `resolveTextInputOptions` when both action and platform defaults exist.
27
+ */
28
+ export declare function resolveInputStrategy(inputStrategy: InputStrategy | undefined, keyboardTypeDelay?: number): InputStrategy;
29
+ /** Resolve action-level text input options over platform-level defaults. */
30
+ export declare function resolveTextInputOptions(actionOptions?: TextInputOptions, platformDefaults?: TextInputOptions): ResolvedTextInputOptions;
31
+ /**
32
+ * Whether resolved options require Midscene to send Unicode code points
33
+ * separately.
34
+ */
35
+ export declare function shouldInputSequentially({ inputStrategy, keyboardTypeDelay, }: ResolvedTextInputOptions): boolean;
36
+ /**
37
+ * Send text one Unicode code point at a time with one canonical delay policy.
38
+ * `delayAfterLast` exists only for platforms whose legacy behavior included a
39
+ * trailing delay; explicit sequential input should leave it disabled.
40
+ */
41
+ export declare function sendTextSequentially(text: string, handlers: SequentialTextInputHandlers, options?: {
42
+ delayMs?: number;
43
+ delayAfterLast?: boolean;
44
+ }): Promise<void>;
@@ -35,6 +35,7 @@ export declare function extractImageByIdSync(htmlPath: string, imageId: string):
35
35
  * @param destFilePath - Destination file path to append to
36
36
  */
37
37
  export declare function streamImageScriptsToFile(srcFilePath: string, destFilePath: string): void;
38
+ export declare function collectImageScriptIds(filePath: string): Promise<Set<string>>;
38
39
  /**
39
40
  * Extract the LAST dump script content from HTML file using streaming.
40
41
  * Memory usage: O(dump_size), not O(file_size).
@@ -0,0 +1,36 @@
1
+ /** Serialized reference to a captured screenshot stored by a report. */
2
+ export interface ScreenshotRef {
3
+ type: 'midscene_screenshot_ref';
4
+ id: string;
5
+ capturedAt: number;
6
+ mimeType: 'image/png' | 'image/jpeg';
7
+ storage: 'inline' | 'file';
8
+ path?: string;
9
+ }
10
+ /** Serialized reference to a multimodal prompt image URL stored by a report. */
11
+ export interface ImageUrlRef {
12
+ type: 'midscene_image_url_ref';
13
+ id: string;
14
+ mimeType: `image/${string}`;
15
+ storage: 'inline' | 'file';
16
+ path?: string;
17
+ }
18
+ /** Any image asset reference supported by report serialization. */
19
+ export type StoredImageRef = ScreenshotRef | ImageUrlRef;
20
+ /** Validate and normalize a serialized screenshot reference. */
21
+ export declare function normalizeScreenshotRef(value: unknown): ScreenshotRef | null;
22
+ /** Validate and normalize a serialized multimodal prompt image reference. */
23
+ export declare function normalizeImageUrlRef(value: unknown): ImageUrlRef | null;
24
+ /** Validate any serialized report image reference. */
25
+ export declare function normalizeStoredImageRef(value: unknown): StoredImageRef | null;
26
+ /** Resolve the report asset extension for an image MIME type. */
27
+ export declare function imageFileExtensionForMimeType(mimeType: string): string;
28
+ /** Resolve a supported report image MIME type from its file extension. */
29
+ export declare function imageMimeTypeForFileExtension(extension: string): `image/${string}` | null;
30
+ /** Resolve the file extension used by a serialized report image reference. */
31
+ export declare function imageRefFileExtension(ref: StoredImageRef): string;
32
+ /**
33
+ * Resolve the report-relative asset path for an image reference.
34
+ * Explicit serialized paths win; inline refs use the standard screenshots dir.
35
+ */
36
+ export declare function reportImageAssetPath(ref: StoredImageRef): string;
@@ -0,0 +1,127 @@
1
+ import { ScreenshotItem } from '../screenshot-item';
2
+ import type { ExecutionTask, IExecutionDump, IReportActionDump } from '../types';
3
+ import { type ImageUrlRef } from './screenshot-store';
4
+ /**
5
+ * ExecutionDump class for serializing and deserializing execution dumps
6
+ */
7
+ export declare class ExecutionDump implements IExecutionDump {
8
+ id?: string;
9
+ logTime: number;
10
+ name: string;
11
+ description?: string;
12
+ tasks: ExecutionTask[];
13
+ aiActContext?: string;
14
+ private readonly referenceImageUrls;
15
+ constructor(data: IExecutionDump, options?: {
16
+ referenceImageUrls?: readonly string[];
17
+ });
18
+ /**
19
+ * Serialize the ExecutionDump to a JSON string
20
+ */
21
+ serialize(indents?: number): string;
22
+ /**
23
+ * Convert to a plain object for JSON serialization
24
+ */
25
+ toJSON(): IExecutionDump;
26
+ /**
27
+ * Create an ExecutionDump instance from a serialized JSON string
28
+ */
29
+ static fromSerializedString(serialized: string): ExecutionDump;
30
+ /**
31
+ * Create an ExecutionDump instance from a plain object
32
+ */
33
+ static fromJSON(data: IExecutionDump): ExecutionDump;
34
+ /**
35
+ * Collect all ScreenshotItem instances from tasks.
36
+ * Scans through uiContext and recorder items to find screenshots.
37
+ *
38
+ * @returns Array of ScreenshotItem instances
39
+ */
40
+ collectScreenshots(): ScreenshotItem[];
41
+ /**
42
+ * Return persistable base64 reference-image URLs explicitly registered while
43
+ * building this execution. This sidecar is excluded from serialized dumps.
44
+ */
45
+ getReferenceImageUrls(): readonly string[];
46
+ }
47
+ /**
48
+ * ReportActionDump class for serializing and deserializing report action dumps
49
+ */
50
+ export declare class ReportActionDump implements IReportActionDump {
51
+ sdkVersion: string;
52
+ groupName: string;
53
+ groupDescription?: string;
54
+ modelBriefs: IReportActionDump['modelBriefs'];
55
+ executions: ExecutionDump[];
56
+ deviceType?: string;
57
+ constructor(data: IReportActionDump);
58
+ /**
59
+ * Serialize the ReportActionDump to a JSON string
60
+ * Uses typed report references for persisted screenshots.
61
+ */
62
+ serialize(indents?: number): string;
63
+ /**
64
+ * Serialize a report dump while replacing persisted multimodal prompt image
65
+ * URLs with their compact report asset references.
66
+ *
67
+ * @param referenceImageRefsByUrl Maps registered prompt image URLs to assets.
68
+ * @param indents Optional JSON indentation.
69
+ * @returns The serialized report dump.
70
+ */
71
+ serializeWithReferenceImages(referenceImageRefsByUrl: ReadonlyMap<string, ImageUrlRef>, indents?: number): string;
72
+ /**
73
+ * Serialize the ReportActionDump with inline screenshots to a JSON string.
74
+ * Each ScreenshotItem is replaced with { base64: "...", capturedAt }.
75
+ */
76
+ serializeWithInlineScreenshots(indents?: number): string;
77
+ /**
78
+ * Convert to a plain object for JSON serialization
79
+ */
80
+ toJSON(): IReportActionDump;
81
+ /**
82
+ * Create a ReportActionDump instance from a serialized JSON string
83
+ */
84
+ static fromSerializedString(serialized: string): ReportActionDump;
85
+ /**
86
+ * Create a ReportActionDump instance from a plain object
87
+ */
88
+ static fromJSON(data: IReportActionDump): ReportActionDump;
89
+ /**
90
+ * Collect all ScreenshotItem instances from all executions.
91
+ *
92
+ * @returns Array of all ScreenshotItem instances across all executions
93
+ */
94
+ collectAllScreenshots(): ScreenshotItem[];
95
+ /**
96
+ * Serialize the dump to files with screenshots as separate PNG files.
97
+ * Creates:
98
+ * - {basePath} - dump JSON with { $screenshot: id } references
99
+ * - {basePath}.screenshots/ - PNG files
100
+ *
101
+ * @param basePath - Base path for the dump file
102
+ */
103
+ serializeToFiles(basePath: string): void;
104
+ /**
105
+ * Read dump from files and return JSON string with inline screenshots.
106
+ * Reads the dump JSON and screenshot files, then inlines the base64 data.
107
+ *
108
+ * @param basePath - Base path for the dump file
109
+ * @returns JSON string with inline screenshots ({ base64: "..." } format)
110
+ */
111
+ static fromFilesAsInlineJson(basePath: string): string;
112
+ /**
113
+ * Clean up all files associated with a serialized dump.
114
+ *
115
+ * @param basePath - Base path for the dump file
116
+ */
117
+ static cleanupFiles(basePath: string): void;
118
+ /**
119
+ * Get all file paths associated with a serialized dump.
120
+ *
121
+ * @param basePath - Base path for the dump file
122
+ * @returns Array of all associated file paths
123
+ */
124
+ static getFilePaths(basePath: string): string[];
125
+ }
126
+ export type GroupedActionDump = ReportActionDump;
127
+ export declare const GroupedActionDump: typeof ReportActionDump;
@@ -0,0 +1,7 @@
1
+ export interface ReportDumpCompactionResult {
2
+ beforeBytes: number;
3
+ afterBytes: number;
4
+ beforeDumpCount: number;
5
+ afterDumpCount: number;
6
+ }
7
+ export declare function compactReportDumps(reportPath: string): Promise<ReportDumpCompactionResult>;
@@ -1,30 +1,37 @@
1
1
  import type { ScreenshotItem } from '../screenshot-item';
2
- export interface ScreenshotRef {
3
- type: 'midscene_screenshot_ref';
4
- id: string;
5
- capturedAt: number;
6
- mimeType: 'image/png' | 'image/jpeg';
7
- storage: 'inline' | 'file';
8
- path?: string;
9
- }
10
- export declare function normalizeScreenshotRef(value: unknown): ScreenshotRef | null;
11
- type ResolvedScreenshotSource = {
2
+ import { type ImageUrlRef, type ScreenshotRef, type StoredImageRef } from './image-reference';
3
+ export type { ImageUrlRef, ScreenshotRef, StoredImageRef, } from './image-reference';
4
+ export { imageRefFileExtension, normalizeImageUrlRef, normalizeScreenshotRef, normalizeStoredImageRef, } from './image-reference';
5
+ type ResolvedImageSource = {
12
6
  type: 'data-uri';
13
7
  id: string;
14
- mimeType: ScreenshotRef['mimeType'];
8
+ mimeType: StoredImageRef['mimeType'];
15
9
  dataUri: string;
16
10
  } | {
17
11
  type: 'file';
18
12
  id: string;
19
- mimeType: ScreenshotRef['mimeType'];
13
+ mimeType: StoredImageRef['mimeType'];
20
14
  filePath: string;
21
15
  };
16
+ export declare function parseBase64ImageDataUrl(imageUrl: string): {
17
+ mimeType: `image/${string}`;
18
+ extension: string;
19
+ rawBase64: string;
20
+ };
21
+ export declare function isBase64ImageDataUrl(value: string): boolean;
22
+ export declare function resolveImageSource(refInput: unknown, options: {
23
+ reportPath: string;
24
+ imageDirectory?: string;
25
+ fallbackId?: string;
26
+ fallbackMimeType?: ScreenshotRef['mimeType'];
27
+ }): ResolvedImageSource;
22
28
  export declare function resolveScreenshotSource(refInput: unknown, options: {
23
29
  reportPath: string;
30
+ imageDirectory?: string;
24
31
  fallbackId?: string;
25
32
  fallbackMimeType?: ScreenshotRef['mimeType'];
26
- }): ResolvedScreenshotSource;
27
- export declare class ScreenshotStore {
33
+ }): ResolvedImageSource;
34
+ export declare class ReportImageStore {
28
35
  private readonly mode;
29
36
  private readonly reportPath;
30
37
  private readonly screenshotsDir?;
@@ -32,6 +39,8 @@ export declare class ScreenshotStore {
32
39
  private readonly alsoWriteFileCopy;
33
40
  private readonly writtenInlineIds;
34
41
  private readonly writtenFileIds;
42
+ private readonly shouldReuseExistingInlineReport;
43
+ private existingInlineImageIdsPromise?;
35
44
  constructor(options: {
36
45
  mode: 'inline' | 'directory';
37
46
  reportPath: string;
@@ -40,10 +49,18 @@ export declare class ScreenshotStore {
40
49
  alsoWriteFileCopy?: boolean;
41
50
  /** @deprecated Use alsoWriteFileCopy instead. */
42
51
  ensureFileCopy?: boolean;
52
+ /** Reuse inline image assets already present in reportPath. */
53
+ reuseExistingReport?: boolean;
43
54
  });
44
55
  persist(screenshot: ScreenshotItem): Promise<ScreenshotRef>;
56
+ persistReferenceImage(imageUrl: string): Promise<ImageUrlRef>;
57
+ private ensureExistingInlineImageIdsLoaded;
45
58
  private persistToSharedFileIfNeeded;
59
+ private writeImageFileIfNeeded;
60
+ loadDataUri(refInput: unknown): string;
61
+ /** @deprecated Use loadDataUri. */
46
62
  loadBase64(refInput: unknown): string;
47
63
  cleanup(): void;
48
64
  }
49
- export {};
65
+ /** @deprecated Use ReportImageStore. */
66
+ export { ReportImageStore as ScreenshotStore };
@@ -0,0 +1,3 @@
1
+ import type { ExecutionTask, Rect, ServiceDump } from '../types';
2
+ export declare function getTaskServiceDump(task?: ExecutionTask | null): ServiceDump | null;
3
+ export declare function getTaskSearchArea(task?: ExecutionTask | null): Rect | undefined;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Single source of truth for turning raw task/execution dump data into a
3
+ * semantic status.
4
+ *
5
+ * Both the report sidebar (per-step status icon) and the merged-report
6
+ * status aggregation must agree on what "failed" means, otherwise a merged
7
+ * report can mark a failing case as passed. Keeping the rules here — as pure
8
+ * functions over plain dump fields — lets the front-end icons and the backend
9
+ * `mergeReportFiles` attribute derivation share the exact same logic.
10
+ */
11
+ import type { ExecutionTask, TestStatus } from '../types';
12
+ /**
13
+ * The subset of a task's fields needed to derive its status, picked from
14
+ * `ExecutionTask` so the field names/types stay defined in one place. It is a
15
+ * structural subset, so both the full `ExecutionTask` and the front-end task
16
+ * variants (which carry extra fields) satisfy it.
17
+ */
18
+ export type TaskStatusFields = Partial<Pick<ExecutionTask, 'status' | 'subType' | 'error' | 'errorMessage'> & {
19
+ output: unknown;
20
+ }>;
21
+ export type DerivedTaskStatus = 'passed' | 'failed' | 'warning' | 'pending' | 'running' | 'cancelled';
22
+ /**
23
+ * Derive a single task's semantic status from its raw dump fields. Mirrors the
24
+ * historical `getStatusIcon` logic in the report sidebar so icons and merged
25
+ * status never diverge.
26
+ */
27
+ export declare function deriveTaskStatus(task: TaskStatusFields): DerivedTaskStatus;
28
+ /**
29
+ * Aggregate the tasks of one case (a list of executions) into a single
30
+ * `TestStatus`. A case is `failed` when any of its tasks derives to `failed`;
31
+ * otherwise it is `passed`. Warnings, pending/running/cancelled steps do not by
32
+ * themselves fail a case.
33
+ *
34
+ * This only ever produces `passed` / `failed`; the finer `timedOut` /
35
+ * `skipped` / `interrupted` statuses can only come from a source report that
36
+ * already recorded them (e.g. a Playwright run), which callers should prefer
37
+ * when available.
38
+ */
39
+ export declare function deriveCaseStatus(executions: Array<{
40
+ tasks?: TaskStatusFields[];
41
+ }>): TestStatus;
@@ -0,0 +1,43 @@
1
+ import type { ModelRuntime } from './ai-model/models';
2
+ import type Service from './service';
3
+ import type { AgentDescribeElementAtPointResult, LocateOption, LocateValidatorResult, LocatorValidatorOption, Size } from './types';
4
+ export type DescribeElementCoordinateSpace = 'screenshot' | 'logical';
5
+ export type LocatorVerifyFn = (input: {
6
+ prompt: string;
7
+ expectCenter: [number, number];
8
+ retryCount: number;
9
+ verifyResult: LocateValidatorResult;
10
+ }) => LocateValidatorResult | boolean;
11
+ export type DescribeElementAtPointOptions = {
12
+ verifyPrompt?: boolean;
13
+ retryLimit?: number;
14
+ deepDescribe?: boolean;
15
+ deepLocate?: boolean;
16
+ locatorVerifyFn?: LocatorVerifyFn;
17
+ screenshotBase64?: string;
18
+ screenshotSize?: Size;
19
+ coordinateSpace?: DescribeElementCoordinateSpace;
20
+ logicalSize?: Size;
21
+ onProgress?: (progress: {
22
+ prompt?: string;
23
+ deepDescribe?: boolean;
24
+ deepLocate?: boolean;
25
+ verifyResult?: LocateValidatorResult;
26
+ }) => void;
27
+ } & LocatorValidatorOption;
28
+ type ScreenshotBoundContextOptions = {
29
+ screenshotBase64?: string;
30
+ screenshotSize?: Size;
31
+ coordinateSpace?: DescribeElementCoordinateSpace;
32
+ logicalSize?: Size;
33
+ };
34
+ export type VerifyElementDescriptionAtPointOptions = ScreenshotBoundContextOptions & LocatorValidatorOption;
35
+ export type ElementDescriberRuntime = {
36
+ service: Pick<Service, 'describe' | 'locate'>;
37
+ describeModelRuntime: ModelRuntime;
38
+ locateModelRuntime: ModelRuntime;
39
+ };
40
+ export declare function verifyLocator(runtime: Pick<ElementDescriberRuntime, 'service' | 'locateModelRuntime'>, prompt: string, locateOpt: LocateOption | undefined, expectCenter: [number, number], verifyLocateOption?: LocatorValidatorOption & Pick<LocateOption, 'deepLocate'>): Promise<LocateValidatorResult>;
41
+ export declare function describeElementAtPoint(runtime: ElementDescriberRuntime, center: [number, number], opt?: DescribeElementAtPointOptions): Promise<AgentDescribeElementAtPointResult>;
42
+ export declare function verifyElementDescriptionAtPoint(runtime: ElementDescriberRuntime, description: string, center: [number, number], opt?: VerifyElementDescriptionAtPointOptions): Promise<LocateValidatorResult>;
43
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { ServiceDump } from './types';
2
+ export declare class ServiceError extends Error {
3
+ dump: ServiceDump;
4
+ constructor(message: string, dump: ServiceDump);
5
+ }
@@ -0,0 +1 @@
1
+ export declare const REPORT_HTML_TEMPLATE = "REPLACE_ME_WITH_REPORT_HTML";