@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,103 @@
1
+ import { UIObservationRecordWriter } from '@aiscene/shared/agent-tools/observation-record';
2
+ import type { BaseUIObserverOptions, UIObservationRecord } from '@aiscene/shared/agent-tools/types';
3
+ import type { TUserPrompt } from '../common';
4
+ import type { DeviceFrameSource } from '../device';
5
+ import type { AgentAssertResult, InsightAPI, ObservationAssertOptions, ObservationQueryOptions, ServiceExtractParam, UIContext } from '../types';
6
+ /** Options for a UI observation window. */
7
+ export type UIObserverOption = BaseUIObserverOptions;
8
+ interface UIObserverDeps {
9
+ openFrameSource: () => Promise<DeviceFrameSource | undefined>;
10
+ captureRawScreenshot: () => Promise<string>;
11
+ capturePreparedRepresentative: () => Promise<UIContext>;
12
+ createInsight: (record: UIObservationRecord) => InsightAPI;
13
+ onStopped?: () => void;
14
+ onDisposed?: () => void;
15
+ screenshotShrinkFactor?: number;
16
+ /** Test/internal persistence override; not part of the Agent SDK options. */
17
+ observationRecordWriter?: UIObservationRecordWriter;
18
+ }
19
+ /** A fixed screen-recording window that supports read-only AI insights. */
20
+ export interface UIObservation extends InsightAPI<ObservationQueryOptions, ObservationAssertOptions> {
21
+ /** Number of captured frames in the fixed observation window. */
22
+ readonly frameCount: number;
23
+ /** Timestamp when screen sampling started. */
24
+ readonly startedAt: number;
25
+ /** Timestamp when screen sampling ended. */
26
+ readonly endedAt: number;
27
+ /** Release image files owned by this observation. Failed cleanup is retryable. */
28
+ dispose(): Promise<void>;
29
+ }
30
+ /** Recording lifecycle returned by {@link Agent.startObserving}. */
31
+ export interface UIObserver {
32
+ /** Number of frames currently buffered while recording. */
33
+ readonly bufferedFrameCount: number;
34
+ /** Stop recording and return its fixed observation window. */
35
+ stop(): Promise<UIObservation>;
36
+ /** Stop recording if needed and release its image files. */
37
+ dispose(): Promise<void>;
38
+ }
39
+ /** @internal Concrete fixed-window implementation. */
40
+ export declare class UIObservationImpl implements UIObservation {
41
+ private readonly insight;
42
+ private readonly disposeRecord?;
43
+ private readonly onDisposed?;
44
+ private disposed;
45
+ private readonly record;
46
+ constructor(record: UIObservationRecord, insight: InsightAPI, disposeRecord?: (() => void) | undefined, onDisposed?: (() => void) | undefined);
47
+ get frameCount(): number;
48
+ get startedAt(): number;
49
+ get endedAt(): number;
50
+ private ensureUsable;
51
+ private ensureFixedWindowOptions;
52
+ aiQuery<ReturnType = any>(demand: ServiceExtractParam, options?: ObservationQueryOptions): Promise<ReturnType>;
53
+ aiBoolean(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<boolean>;
54
+ aiNumber(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<number>;
55
+ aiString(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<string>;
56
+ aiAsk(prompt: TUserPrompt, options?: ObservationQueryOptions): Promise<string>;
57
+ aiAssert(assertion: TUserPrompt, message?: string, options?: ObservationAssertOptions): Promise<AgentAssertResult | undefined>;
58
+ /** @internal Used only by the CLI observation artifact adapter. */
59
+ exportRecord(): Promise<UIObservationRecord>;
60
+ dispose(): Promise<void>;
61
+ }
62
+ /**
63
+ * Observe an explicit screen window and produce a fixed UIObservation.
64
+ */
65
+ export declare class UIObserverImpl implements UIObserver {
66
+ private readonly deps;
67
+ private frames;
68
+ private source;
69
+ private usingFallback;
70
+ private stopped;
71
+ private disposed;
72
+ private loopPromise;
73
+ private stopPromise;
74
+ private representative;
75
+ private representativeFrame;
76
+ private watchdogTimer;
77
+ private persistPromise;
78
+ private persistedByRef;
79
+ private observation;
80
+ private startedAt;
81
+ private readonly intervalMs;
82
+ private readonly maxFrames;
83
+ private readonly watchdogMs;
84
+ private readonly screenshotShrinkFactor;
85
+ private readonly writer;
86
+ constructor(deps: UIObserverDeps, opt?: UIObserverOption);
87
+ get bufferedFrameCount(): number;
88
+ start(): Promise<void>;
89
+ stop(): Promise<UIObservationImpl>;
90
+ private finalizeStop;
91
+ private finalizeRecord;
92
+ /** Release writer-owned image files after the observation is no longer needed. */
93
+ dispose(): Promise<void>;
94
+ private persistUnstoredFrames;
95
+ private captureOnce;
96
+ private runLoop;
97
+ private pushFrame;
98
+ private thinBuffer;
99
+ private dedupeRefs;
100
+ }
101
+ /** Rebuild model-facing temporal context from resolved image file paths. */
102
+ export declare function uiContextFromObservationRecord(record: UIObservationRecord): UIContext;
103
+ export {};
@@ -1,6 +1,6 @@
1
1
  import type { TMultimodalPrompt, TUserPrompt } from '../common';
2
2
  import type { AbstractInterface } from '../device';
3
- import type { ElementCacheFeature, LocateResultElement, PlanningLocateParam, Rect, UIContext } from '../types';
3
+ import type { ElementCacheFeature, LocateResultElement, PlanningLocateParam, Rect, Size, UIContext } from '../types';
4
4
  import type { TModelFamily } from '@aiscene/shared/env';
5
5
  import type { TaskCache } from './task-cache';
6
6
  export declare function commonContextParser(interfaceInstance: AbstractInterface, _opt: {
@@ -8,6 +8,9 @@ export declare function commonContextParser(interfaceInstance: AbstractInterface
8
8
  screenshotShrinkFactor?: number;
9
9
  modelFamily?: TModelFamily;
10
10
  }): Promise<UIContext>;
11
+ export declare function createScreenshotBoundUIContext(screenshotBase64: string, opt: {
12
+ screenshotSize?: Size;
13
+ }): Promise<UIContext>;
11
14
  export declare function getReportFileName(tag?: string): string;
12
15
  export declare function printReportMsg(filepath: string): void;
13
16
  export declare function ifPlanLocateParamIsBbox(planLocateParam: PlanningLocateParam): boolean;
@@ -21,5 +24,13 @@ export declare const parsePrompt: (prompt: TUserPrompt) => {
21
24
  textPrompt: string;
22
25
  multimodalPrompt?: TMultimodalPrompt;
23
26
  };
27
+ type NormalizeFilePathsOptions = {
28
+ fileExists?: (path: string) => boolean;
29
+ isInBrowser?: boolean;
30
+ resolvePath?: (path: string) => string;
31
+ cwd?: string;
32
+ };
33
+ export declare function normalizeFilePaths(files: string[], options?: NormalizeFilePathsOptions): string[];
24
34
  export declare const transformLogicalElementToScreenshot: (element: LocateResultElement, shrunkShotToLogicalRatio: number) => LocateResultElement;
25
35
  export declare const transformLogicalRectToScreenshotRect: (rect: Rect, shrunkShotToLogicalRatio: number) => Rect;
36
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare const CONNECTIVITY_FIXTURE_IMAGE = "data:image/png;base64,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";
2
+ export declare const CONNECTIVITY_FIXTURE_SHOT_SIZE: {
3
+ width: number;
4
+ height: number;
5
+ };
@@ -0,0 +1 @@
1
+ export { runConnectivityTest, type ConnectivityTestConfig, type ConnectivityTestResult, } from './run-connectivity-test';
@@ -0,0 +1,11 @@
1
+ import type { IModelConfig } from '@aiscene/shared/env';
2
+ export interface ConnectivityTestResult {
3
+ passed: boolean;
4
+ message?: string;
5
+ }
6
+ export interface ConnectivityTestConfig {
7
+ defaultModelConfig: IModelConfig;
8
+ planningModelConfig: IModelConfig;
9
+ insightModelConfig: IModelConfig;
10
+ }
11
+ export declare function runConnectivityTest(config: ConnectivityTestConfig): Promise<ConnectivityTestResult>;
@@ -6,6 +6,8 @@ export { generateYamlTest, generateYamlTestStream, } from './prompt/yaml-generat
6
6
  export type { YamlGenerationOptions } from './prompt/yaml-generator';
7
7
  export type { ChatCompletionMessageParam } from 'openai/resources/index';
8
8
  export { AiLocateElement, AiExtractElementInfo, AiLocateSection, AiJudgeOrderSensitive, } from './inspect';
9
+ export { getModelRuntime } from './models';
10
+ export type { ModelRuntime } from './models';
9
11
  export { plan } from './llm-planning';
10
12
  export { autoGLMPlanning } from './auto-glm/planning';
11
13
  export { adaptBboxToRect } from '../common';
@@ -0,0 +1,2 @@
1
+ import type { ChatCompletionAdapter, ModelAdapterDefinition } from './types';
2
+ export declare function resolveChatCompletion(chatCompletion: ModelAdapterDefinition['chatCompletion']): ChatCompletionAdapter;
@@ -0,0 +1,25 @@
1
+ import type { LocateResultPoint, PixelBbox, PlanningAction } from '../../types';
2
+ type PreNormalizedPlanningLocateParam = {
3
+ prompt: string;
4
+ point: LocateResultPoint;
5
+ };
6
+ export type LocateActionParam = {
7
+ locate: PreNormalizedPlanningLocateParam;
8
+ };
9
+ export type LocatePlanningAction<TType extends string> = PlanningAction<LocateActionParam> & {
10
+ type: TType;
11
+ };
12
+ export type ScrollPlanningAction = PlanningAction<LocateActionParam & {
13
+ distance: number;
14
+ direction: 'up' | 'down' | 'left' | 'right';
15
+ }> & {
16
+ type: 'Scroll';
17
+ };
18
+ export type DragAndDropPlanningAction = PlanningAction<{
19
+ from: PreNormalizedPlanningLocateParam;
20
+ to: PreNormalizedPlanningLocateParam;
21
+ }> & {
22
+ type: 'DragAndDrop';
23
+ };
24
+ export declare function getTapLocatedPixelBbox(actions: PlanningAction[]): PixelBbox | undefined;
25
+ export {};
@@ -0,0 +1,31 @@
1
+ import type { PlanningAction } from '../../types';
2
+ import type { LocateResultCodec, LocateResultCoordinates, ResolvedLocateResultCoordinates } from '../shared/model-locate-result/types';
3
+ import type { PreparedUserPrompt } from '../shared/multimodal-prompt';
4
+ import type { PlanOptions } from '../workflows/planning/types';
5
+ export interface CustomPlanningInput {
6
+ userInstruction: PreparedUserPrompt;
7
+ options: PlanOptions;
8
+ coordinateSystem?: ResolvedLocateResultCoordinates;
9
+ }
10
+ interface CustomPlanningLifecycle<TParsed = unknown> {
11
+ messages: CustomPlanningMessageConfig<TParsed>;
12
+ parseResponse(rawResponse: string, input: CustomPlanningInput): TParsed;
13
+ transformActions(parsed: TParsed, input: CustomPlanningInput): PlanningAction[];
14
+ shouldContinuePlanning(parsed: TParsed, actions: PlanningAction[]): boolean;
15
+ buildResponseLog(parsed: TParsed, rawResponse: string): string;
16
+ }
17
+ export interface CustomPlanningDefinition<TParsed = unknown> extends CustomPlanningLifecycle<TParsed> {
18
+ coordinates: LocateResultCoordinates;
19
+ }
20
+ export interface ResolvedCustomPlanningDefinition<TParsed = unknown> extends CustomPlanningLifecycle<TParsed> {
21
+ coordinateSystem: ResolvedLocateResultCoordinates;
22
+ coordinateNormalizer: LocateResultCodec;
23
+ }
24
+ export interface CustomPlanningMessageConfig<TParsed = unknown> {
25
+ systemPromptPlacement: 'system-message' | 'user-message';
26
+ buildSystemPrompt(): string;
27
+ historyImageLimit?: number;
28
+ buildUserInstruction?: (userInstruction: string) => string;
29
+ buildAssistantContent?: (parsed: TParsed, rawResponse: string, input: CustomPlanningInput) => string | undefined;
30
+ }
31
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { InsightProtocolFactory } from './insight-protocol';
2
+ export declare const createDefaultInsightProtocol: InsightProtocolFactory;
@@ -0,0 +1,7 @@
1
+ import type { StandardLocateProtocol, StandardLocateProtocolContext } from './locate-protocol';
2
+ type DefaultLocateProtocolOptions = {
3
+ acceptBbox2dAlias?: boolean;
4
+ };
5
+ export declare const createDefaultElementProtocol: ({ jsonParser }: StandardLocateProtocolContext, options?: DefaultLocateProtocolOptions) => StandardLocateProtocol;
6
+ export declare const createDefaultSearchAreaProtocol: ({ jsonParser }: StandardLocateProtocolContext, options?: DefaultLocateProtocolOptions) => StandardLocateProtocol;
7
+ export {};
@@ -0,0 +1,25 @@
1
+ import { type JsonParser } from '../shared/json';
2
+ import { type LocateResultPromptSpec } from '../shared/model-locate-result';
3
+ import type { PlanningActionDescriptionBuildInput, PlanningActionOutputBuildInput, StandardPlanningProtocolFactory } from './planning-protocol';
4
+ type ActionParamDescription = {
5
+ type: string;
6
+ optional?: true;
7
+ description?: string;
8
+ default?: unknown;
9
+ instruction?: string;
10
+ };
11
+ type ActionDescription = {
12
+ type: string;
13
+ description: string;
14
+ param?: Record<string, ActionParamDescription> | ActionParamDescription;
15
+ sample?: string;
16
+ };
17
+ export declare const buildActionDescription: ({ action, locateFieldDescription, actionOutputExample, }: PlanningActionDescriptionBuildInput) => ActionDescription;
18
+ export declare const buildLocateFieldDescription: (promptSpec?: LocateResultPromptSpec) => string;
19
+ export declare const buildPlanningActionOutput: ({ actionName, param, locateFields, locateResultKey, }: PlanningActionOutputBuildInput) => string;
20
+ export declare const createMidscenePlanningActionOutputParser: (jsonParser: JsonParser) => (content: string) => {
21
+ param?: any;
22
+ type: string;
23
+ } | null;
24
+ export declare const createDefaultMidscenePlanningProtocol: StandardPlanningProtocolFactory;
25
+ export {};
@@ -0,0 +1,30 @@
1
+ export interface ImagePreprocessPolicy {
2
+ padBlockSize?: number;
3
+ }
4
+ export interface PreparedModelImage {
5
+ imageBase64: string;
6
+ /**
7
+ * Size of the image sent to the model after preprocessing. This can be larger
8
+ * than the original screenshot when padding is applied to satisfy model block
9
+ * size requirements.
10
+ */
11
+ preparedSize: {
12
+ width: number;
13
+ height: number;
14
+ };
15
+ /**
16
+ * Size of the real screenshot content inside the prepared image. Pixel bboxes
17
+ * are parsed against `preparedSize`, then clipped to `contentSize` so padding
18
+ * added for the model is not treated as valid UI content.
19
+ */
20
+ contentSize: {
21
+ width: number;
22
+ height: number;
23
+ };
24
+ }
25
+ export declare function prepareModelImage(options: {
26
+ imageBase64: string;
27
+ width: number;
28
+ height: number;
29
+ policy: ImagePreprocessPolicy;
30
+ }): Promise<PreparedModelImage>;
@@ -0,0 +1,2 @@
1
+ export { ResolvedModelAdapter } from './resolve';
2
+ export type { ModelRuntime } from './types';
@@ -0,0 +1,24 @@
1
+ import type { JsonParser } from '../shared/json';
2
+ export type InsightDataOutputProtocol = {
3
+ /** Ordered XML tags delimiting the model-specific data output. */
4
+ tagNames: readonly [string, ...string[]];
5
+ rules: string;
6
+ placeholder: string;
7
+ buildExample: (serializedData: string) => string;
8
+ parse: <T>(content: string) => T;
9
+ };
10
+ export type InsightProtocol = {
11
+ responsePrefix?: string;
12
+ dataOutput: InsightDataOutputProtocol;
13
+ };
14
+ export type InsightProtocolContext = {
15
+ jsonParser: JsonParser;
16
+ };
17
+ export type InsightProtocolFactory = (context: InsightProtocolContext) => InsightProtocol;
18
+ export type InsightProtocolDefinition = InsightProtocol | InsightProtocolFactory;
19
+ export type InsightAdapter = {
20
+ protocol: InsightProtocol;
21
+ };
22
+ export type InsightDefinition = {
23
+ protocol?: InsightProtocolDefinition;
24
+ };
@@ -0,0 +1,3 @@
1
+ import type { InsightAdapter, InsightDefinition, InsightProtocol, InsightProtocolContext, InsightProtocolDefinition } from './insight-protocol';
2
+ export declare function resolveInsightProtocol(definition: InsightProtocolDefinition | undefined, context: InsightProtocolContext): InsightProtocol;
3
+ export declare function resolveInsight(insight: InsightDefinition | undefined, context: InsightProtocolContext): InsightAdapter;
@@ -0,0 +1,23 @@
1
+ import type { JsonParser } from '../shared/json';
2
+ import type { LocateResultPromptSpec, RawLocateValue } from '../shared/model-locate-result';
3
+ export type ParsedLocateResponse = {
4
+ kind: 'located';
5
+ target: RawLocateValue;
6
+ references?: RawLocateValue[];
7
+ error?: string;
8
+ } | {
9
+ kind: 'not-found';
10
+ error?: string;
11
+ };
12
+ export type StandardLocateProtocol = {
13
+ systemPromptIntroduction: string;
14
+ buildResponseInstructions: (locatePromptSpec: LocateResultPromptSpec) => string;
15
+ buildUserPrompt: (targetElementDescription: string) => string;
16
+ expectedJsonObjectResponse: boolean;
17
+ parseRawResponse: (content: string, locatePromptSpec: LocateResultPromptSpec) => ParsedLocateResponse;
18
+ };
19
+ export type StandardLocateProtocolContext = {
20
+ jsonParser: JsonParser;
21
+ };
22
+ export type StandardLocateProtocolFactory = (context: StandardLocateProtocolContext) => StandardLocateProtocol;
23
+ export type StandardLocateProtocolDefinition = StandardLocateProtocol | StandardLocateProtocolFactory;
@@ -0,0 +1,4 @@
1
+ import type { ResolvedCustomPlanningDefinition } from './custom-planning-types';
2
+ import type { StandardLocateProtocolContext } from './locate-protocol';
3
+ import type { LocateAdapter, ModelAdapterDefinition } from './types';
4
+ export declare function resolveLocate(locate: ModelAdapterDefinition['locate'], resolvedCustomPlanner: ResolvedCustomPlanningDefinition | undefined, protocolContext: StandardLocateProtocolContext, acceptBbox2dAlias?: boolean): LocateAdapter;
@@ -0,0 +1,53 @@
1
+ import type { DeviceAction, PlanningAction } from '../../types';
2
+ import type { JsonParser } from '../shared/json';
3
+ import type { LocateResultPromptSpec } from '../shared/model-locate-result';
4
+ export type PlanningActionOutputBuildInput = {
5
+ actionName: string;
6
+ param: Record<string, unknown>;
7
+ locateFields?: string[];
8
+ locateResultKey?: string;
9
+ };
10
+ export type ParsedPlanningLocateParameter = {
11
+ prompt?: unknown;
12
+ [key: string]: unknown;
13
+ };
14
+ export type PlanningActionOutputProtocol = {
15
+ /**
16
+ * Ordered tag names that delimit the raw action output. The first tag must
17
+ * have an opening tag and the last tag must have a closing tag; self-closing
18
+ * boundary tags are not supported.
19
+ */
20
+ actionOutputTagNames: readonly [string, ...string[]];
21
+ actionOutputRules: string;
22
+ actionOutputPlaceholder: string;
23
+ buildActionOutput: (input: PlanningActionOutputBuildInput) => string;
24
+ parseActionOutput: (content: string, actionSpace: DeviceAction<any>[]) => PlanningAction | null;
25
+ parseRawLocateParameter: (value: unknown) => ParsedPlanningLocateParameter;
26
+ };
27
+ export type PlanningActionDescriptionBuildInput = {
28
+ action: DeviceAction<any>;
29
+ locateFieldDescription: string;
30
+ actionOutputExample?: string;
31
+ };
32
+ export type PlanningActionSpaceFormat = 'yaml' | 'jsonl';
33
+ export type PlanningActionSpaceProtocol = {
34
+ title: string;
35
+ format: PlanningActionSpaceFormat;
36
+ includeActionOutputExample: boolean;
37
+ buildLocateFieldDescription: (locatePromptSpec?: LocateResultPromptSpec) => string;
38
+ buildActionDescription: (input: PlanningActionDescriptionBuildInput) => unknown;
39
+ };
40
+ export type StandardPlanningProtocol = {
41
+ responsePrefix?: string;
42
+ actionSpaceProtocol: PlanningActionSpaceProtocol;
43
+ actionOutputProtocol: PlanningActionOutputProtocol;
44
+ };
45
+ export type StandardPlanningProtocolContext = {
46
+ jsonParser: JsonParser;
47
+ };
48
+ /**
49
+ * Defined as a factory because planning response parsing may depend on the
50
+ * adapter's resolved JSON parser.
51
+ */
52
+ export type StandardPlanningProtocolFactory = (context: StandardPlanningProtocolContext) => StandardPlanningProtocol;
53
+ export type StandardPlanningProtocolDefinition = StandardPlanningProtocol | StandardPlanningProtocolFactory;
@@ -0,0 +1,6 @@
1
+ import type { LocateResultCodec } from '../shared/model-locate-result';
2
+ import type { CustomPlanningDefinition, ResolvedCustomPlanningDefinition } from './custom-planning-types';
3
+ import type { StandardPlanningProtocolContext } from './planning-protocol';
4
+ import type { ModelAdapterDefinition, PlanningAdapter } from './types';
5
+ export declare function resolveCustomPlanningDefinition<TParsed>(config: CustomPlanningDefinition<TParsed>): ResolvedCustomPlanningDefinition<TParsed>;
6
+ export declare function resolvePlanning(planning: ModelAdapterDefinition['planning'], resolvedCustomPlanner: ResolvedCustomPlanningDefinition | undefined, protocolContext: StandardPlanningProtocolContext, defaultLocateResultCodec?: LocateResultCodec): PlanningAdapter;
@@ -0,0 +1,12 @@
1
+ import type { InsightAdapter } from './insight-protocol';
2
+ import type { ChatCompletionAdapter, ImagePreprocessPolicy, JsonParser, LocateAdapter, ModelAdapter, ModelAdapterDefinition, PlanningAdapter } from './types';
3
+ export declare class ResolvedModelAdapter implements ModelAdapter {
4
+ readonly jsonParser: JsonParser;
5
+ readonly chatCompletion: ChatCompletionAdapter;
6
+ readonly acceptBbox2dAlias: boolean;
7
+ readonly imagePreprocess: ImagePreprocessPolicy;
8
+ readonly insight: InsightAdapter;
9
+ readonly planning: PlanningAdapter;
10
+ readonly locate: LocateAdapter;
11
+ constructor(config: ModelAdapterDefinition, modelFamily: string);
12
+ }