@gaodefa/daocore 2026.5.25 → 2026.5.26

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 (1740) hide show
  1. package/dist/abort-By0wxKlI.js +277 -0
  2. package/dist/abort.runtime-C7zfjxBp.js +2 -0
  3. package/dist/abort.runtime.js +1 -1
  4. package/dist/account-inspect-DTeLlJz-.js +173 -0
  5. package/dist/accounts-B776XBaL.js +119 -0
  6. package/dist/accounts-CLyZILFF.js +107 -0
  7. package/dist/accounts-DiXgq14W.js +107 -0
  8. package/dist/accounts-iTlRLYN8.js +2 -0
  9. package/dist/acp/control-plane/manager.d.ts +2 -1
  10. package/dist/acp-runtime-D9YQyGax.js +26 -0
  11. package/dist/acp-spawn-CWciV70C.js +1275 -0
  12. package/dist/acp-spawn-DjaS4O_V.js +2 -0
  13. package/dist/acp-stateful-target-driver-ByvGCj_i.js +89 -0
  14. package/dist/action-kill-DXeOA6YH.js +33 -0
  15. package/dist/action-runtime-BjQnG6qb.js +469 -0
  16. package/dist/action-runtime-api-a73ODsYk.js +2 -0
  17. package/dist/action-send-B_F3xwIu.js +39 -0
  18. package/dist/action-spawn-BFiW7gZJ.js +47 -0
  19. package/dist/actions-Bi7eE2I6.js +161 -0
  20. package/dist/actions.runtime-DmtbCLld.js +5 -0
  21. package/dist/agent-BOI4AdYK.js +3 -0
  22. package/dist/agent-DQPyDWP5.js +2 -0
  23. package/dist/agent-command-ClCxEw82.js +1367 -0
  24. package/dist/agent-command-DKqx29vm.d.ts +105 -0
  25. package/dist/agent-components.runtime-C5wxy4D_.js +10 -0
  26. package/dist/agent-components.runtime.js +1 -1
  27. package/dist/agent-harness-BsBVO7nU.d.ts +146 -0
  28. package/dist/agent-harness-runtime-CkdXIMHI.js +180 -0
  29. package/dist/agent-harness-runtime-KHFO733B.d.ts +691 -0
  30. package/dist/agent-harness-task-runtime-CDtn5RjX.js +140 -0
  31. package/dist/agent-runner-execution-lXW8y0i2.js +1713 -0
  32. package/dist/agent-runner-utils-OdM9hLGt.js +266 -0
  33. package/dist/agent-runner.runtime-fZnfhCJI.js +3455 -0
  34. package/dist/agent-runner.runtime.js +1 -1
  35. package/dist/agent-runtime-Dp0RDnX1.js +229 -0
  36. package/dist/agent-via-gateway-vsBf3nqZ.js +463 -0
  37. package/dist/agents/pi-embedded-runner/tool-split.d.ts +1 -1
  38. package/dist/agents.commands.add-C94vGOFH.js +304 -0
  39. package/dist/agents.commands.delete-D-p2NL4v.js +128 -0
  40. package/dist/api-BZ2QC7WM.js +2 -0
  41. package/dist/api-BmYK5Dge.js +6 -0
  42. package/dist/api-CGdlHCIH.js +3 -0
  43. package/dist/api-CGjlsXii.js +134 -0
  44. package/dist/api-DGqp6wZo.js +2 -0
  45. package/dist/api-DKpE-zdY.js +639 -0
  46. package/dist/api-DNyivJXK.d.ts +52 -0
  47. package/dist/apply-GK4z5lYw.js +54 -0
  48. package/dist/apply-_yxsBkiR.js +41 -0
  49. package/dist/approval-handler.runtime-C7d9p3DG.js +130 -0
  50. package/dist/assistant-B-h25aRy.js +291 -0
  51. package/dist/attachment-normalize-DWZ4Nrn-.js +225 -0
  52. package/dist/attempt-execution-BY9C1EOu.js +558 -0
  53. package/dist/attempt-execution.runtime-SR7eolDa.js +3 -0
  54. package/dist/attempt-execution.runtime.js +1 -1
  55. package/dist/attempt-execution.shared-h6uYmkJz.js +38 -0
  56. package/dist/attempt.prompt-helpers-COc5m_TZ.js +475 -0
  57. package/dist/attempt.tool-run-context-CAtfgOqC.js +2094 -0
  58. package/dist/auth-BdkNYTYU.js +541 -0
  59. package/dist/banner-0TOO6XHd.js +397 -0
  60. package/dist/banner-DTHug6Ey.js +2 -0
  61. package/dist/binding-routing-BJ_A83Nl.js +113 -0
  62. package/dist/binding-targets-D5dmPh4R.js +121 -0
  63. package/dist/bot-DX1uG3P-.js +7894 -0
  64. package/dist/bot-deps-BpaYejaN.js +2 -0
  65. package/dist/bot-deps-CKFDy5y3.js +747 -0
  66. package/dist/bot-message-context.runtime-BKOeRg34.js +7 -0
  67. package/dist/bot-message-context.runtime.js +1 -1
  68. package/dist/bot-message-context.session.runtime-xgZdFv6P.js +12 -0
  69. package/dist/bot-message-context.session.runtime.js +1 -1
  70. package/dist/bot-native-commands.delivery.runtime-DDMQrRfJ.js +4 -0
  71. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  72. package/dist/bot-native-commands.runtime-CVVvUz0h.js +13 -0
  73. package/dist/bot-native-commands.runtime.js +1 -1
  74. package/dist/bridge-server-37OWsDZc.js +113 -0
  75. package/dist/browser-cli-BC_6aZJV.js +2 -0
  76. package/dist/browser-cli-Dg1ipmgf.js +230 -0
  77. package/dist/browser-cli-actions-input-B0QuzzSW.js +473 -0
  78. package/dist/browser-cli-actions-observe-C246bas5.js +81 -0
  79. package/dist/browser-cli-debug-F64e_v4B.js +137 -0
  80. package/dist/browser-cli-inspect-Srn6eWjO.js +104 -0
  81. package/dist/browser-cli-manage-CaZ97-Me.js +443 -0
  82. package/dist/browser-cli-resize-CUR20fvZ.js +26 -0
  83. package/dist/browser-cli-shared-BhphnFVo.js +50 -0
  84. package/dist/browser-cli-state-CzaNXNWF.js +337 -0
  85. package/dist/browser-control-auth-DTY0Wx2B.js +2 -0
  86. package/dist/browser-profiles-BDGPPDJ7.js +2 -0
  87. package/dist/browser-runtime-aqBKI8Oi.js +384 -0
  88. package/dist/build-CG7aTzO9.js +257 -0
  89. package/dist/build-info.json +3 -3
  90. package/dist/bundled/boot-md/handler.js +2 -2
  91. package/dist/bundled/session-memory/handler.js +1 -1
  92. package/dist/bundled-channel-config-schema-vrKpzJVf.d.ts +3163 -0
  93. package/dist/call-Za47o1YZ.d.ts +43 -0
  94. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  95. package/dist/capability-cli-BhF26gVm.js +1782 -0
  96. package/dist/channel-5RHqx1Ge.d.ts +26 -0
  97. package/dist/channel-5_XS0Mss.js +508 -0
  98. package/dist/channel-7L-vyWOO.js +362 -0
  99. package/dist/channel-B07xPK0L.d.ts +114 -0
  100. package/dist/channel-B9b-GX-e.d.ts +14 -0
  101. package/dist/channel-BBWX_bA0.d.ts +7 -0
  102. package/dist/channel-BVxTyJ0I.js +376 -0
  103. package/dist/channel-BWIsr1r-.js +808 -0
  104. package/dist/channel-Ba0p4xM-.js +1134 -0
  105. package/dist/channel-Bi2nTop1.js +481 -0
  106. package/dist/channel-Bj29iFgF.js +740 -0
  107. package/dist/channel-Bl8tKAuG.d.ts +427 -0
  108. package/dist/channel-Bqy7BYGm.d.ts +28 -0
  109. package/dist/channel-BvzHMdKo.d.ts +8 -0
  110. package/dist/channel-C6G6-tH6.js +562 -0
  111. package/dist/channel-CBhuuq-_.js +2126 -0
  112. package/dist/channel-CMmVpcnl.js +867 -0
  113. package/dist/channel-COc7idAe.js +653 -0
  114. package/dist/channel-CcsuLAYt.d.ts +49 -0
  115. package/dist/channel-CjfuHhSU.js +1556 -0
  116. package/dist/channel-Cquy73C-.js +1249 -0
  117. package/dist/channel-Cu7Jxm_X.d.ts +104 -0
  118. package/dist/channel-CzvuskEn.js +955 -0
  119. package/dist/channel-D6u-243v.js +1777 -0
  120. package/dist/channel-DId5JNlc.d.ts +47 -0
  121. package/dist/channel-DR8PbP31.js +238 -0
  122. package/dist/channel-DUYRu5km.d.ts +7 -0
  123. package/dist/channel-DUZ0s98I.js +1496 -0
  124. package/dist/channel-DXelghSl.d.ts +8 -0
  125. package/dist/channel-FhfE8D-t.d.ts +6 -0
  126. package/dist/channel-PEX_yYEO.d.ts +64 -0
  127. package/dist/channel-aWqPl-K4.d.ts +106 -0
  128. package/dist/channel-actions.runtime-BzEqt_Va.js +265 -0
  129. package/dist/channel-actions.runtime.js +1 -1
  130. package/dist/channel-cSdO0kAq.d.ts +8 -0
  131. package/dist/channel-core-ClgodQav.d.ts +6 -0
  132. package/dist/channel-core-DDZnTvT6.js +5 -0
  133. package/dist/channel-entry-contract-Bzkb_oJX.d.ts +112 -0
  134. package/dist/channel-inbound-C2wLEE7Q.js +80 -0
  135. package/dist/channel-lifecycle-DCTZ2J_8.d.ts +126 -0
  136. package/dist/channel-pairing-pKisqGWj.d.ts +58 -0
  137. package/dist/channel-plugin-runtime-B8AWkA0i.js +998 -0
  138. package/dist/channel-plugin-runtime-ntEeH9SC.d.ts +7 -0
  139. package/dist/channel-runtime-CciKN6E5.js +408 -0
  140. package/dist/channel-za2kUUnL.d.ts +12 -0
  141. package/dist/channel.runtime-BQN8Bkb0.js +254 -0
  142. package/dist/channel.runtime-BXeGEvv7.js +21009 -0
  143. package/dist/channel.runtime-C40ILulM.js +1008 -0
  144. package/dist/channel.runtime-CJ2DSojv.js +733 -0
  145. package/dist/channel.runtime-CUaygROD.js +652 -0
  146. package/dist/channel.runtime-CcCbJhDb.js +88 -0
  147. package/dist/channel.runtime-DJbKu9D3.js +4 -0
  148. package/dist/channel.runtime-DgRuSo5T.js +109 -0
  149. package/dist/channel.runtime-tRXUD2p2.js +2528 -0
  150. package/dist/channel.setup-3aVku-g-.js +1098 -0
  151. package/dist/channel.setup-Cau-V9UT.d.ts +7 -0
  152. package/dist/channel.setup-DT7Z9egu.js +343 -0
  153. package/dist/channel.setup-DhlkGTJV.js +10 -0
  154. package/dist/channel.setup-P5V7jWHY.d.ts +6 -0
  155. package/dist/channel.setup-x333W0eZ.d.ts +8 -0
  156. package/dist/chat-D3LWYymW.js +2666 -0
  157. package/dist/chrome--ATU1T0X.js +1503 -0
  158. package/dist/cli/run-main.js +9 -9
  159. package/dist/cli-D8hIXnS1.js +1341 -0
  160. package/dist/cli-backend-C1JA33SE.d.ts +5 -0
  161. package/dist/cli-backend-D8WmqNqJ.d.ts +5 -0
  162. package/dist/cli-compaction-jmi3u2HG.js +347 -0
  163. package/dist/cli-daS2Mzjd.d.ts +20 -0
  164. package/dist/cli-metadata-Cy9MEdPv.js +22 -0
  165. package/dist/cli-runner-DuT8oeZF.js +540 -0
  166. package/dist/cli-runner-DvKgnkCL.js +2 -0
  167. package/dist/cli-runner.runtime-B-aD16MD.js +4 -0
  168. package/dist/cli-runner.runtime-DofcKX1U.js +3 -0
  169. package/dist/cli-runner.runtime.js +1 -1
  170. package/dist/cli-shared-BFZytJBA.d.ts +20 -0
  171. package/dist/cli-startup-metadata.json +13 -13
  172. package/dist/client-B5IcAlfB.js +650 -0
  173. package/dist/client-adapter-CXA67h2E.js +897 -0
  174. package/dist/client-factory-aY6TuKfQ.js +9 -0
  175. package/dist/command-auth-DS9XgXEG.js +135 -0
  176. package/dist/command-execution-startup-DQOLt5Sz.js +87 -0
  177. package/dist/command-handlers-DqxF-IM9.js +1609 -0
  178. package/dist/command-registry-BSVx1oOc.js +4 -0
  179. package/dist/command-registry-CsPIOiQ3.js +9 -0
  180. package/dist/command-registry-core-Bzu5ff5F.js +110 -0
  181. package/dist/command-status.runtime-MKsizBC-.js +90 -0
  182. package/dist/command-status.runtime.js +1 -1
  183. package/dist/commands-B6Y6rqal.d.ts +113 -0
  184. package/dist/commands-acp-ClJofWty.js +74 -0
  185. package/dist/commands-compact.runtime-7VqYX4tS.js +10 -0
  186. package/dist/commands-compact.runtime.js +1 -1
  187. package/dist/commands-handlers.runtime-Dfqf_Oyp.js +6154 -0
  188. package/dist/commands-handlers.runtime.js +1 -1
  189. package/dist/commands-status-CRaEj9Vf.js +16 -0
  190. package/dist/commands-status-uDaqCP2F.js +3 -0
  191. package/dist/commands-status.runtime-uDaqCP2F.js +3 -0
  192. package/dist/commands-status.runtime.js +1 -1
  193. package/dist/commands-subagents-control.runtime-BaYcGLtc.js +2 -0
  194. package/dist/commands-subagents-control.runtime-C4xMpLed.js +3 -0
  195. package/dist/commands-subagents-control.runtime.js +1 -1
  196. package/dist/commands-system-prompt-C3lzz7wW.js +162 -0
  197. package/dist/commands-system-prompt-DpiW5FkQ.js +2 -0
  198. package/dist/commands.runtime-l4fGcB5c.js +176 -0
  199. package/dist/commands.runtime.js +1 -1
  200. package/dist/commitments/runtime.js +1 -1
  201. package/dist/compact-Dq0mi-y_.js +480 -0
  202. package/dist/compact-voJdoXm-.js +1141 -0
  203. package/dist/compact.runtime-BNLPSDQQ.js +12 -0
  204. package/dist/compact.runtime.js +1 -1
  205. package/dist/completion-cli-qHUelvvd.js +315 -0
  206. package/dist/computer-use-dP3FCUtq.js +367 -0
  207. package/dist/config-BDGPPDJ7.js +2 -0
  208. package/dist/config-Dg3sgjXu.js +373 -0
  209. package/dist/config-cli-INHPnZOG.js +1633 -0
  210. package/dist/config-mutations-CAgnXnDt.js +159 -0
  211. package/dist/config-schema-BkkovNaj.d.ts +20 -0
  212. package/dist/configure-M1VU0h9O.js +3 -0
  213. package/dist/configure.commands-CM8RXyn3.js +1251 -0
  214. package/dist/configure.commands-PvOJd4nu.js +2 -0
  215. package/dist/context-engine-host-compat-D7I7Q63Z.js +288 -0
  216. package/dist/context-engine-host-compat-DGHUiQUV.js +2 -0
  217. package/dist/context-engine-lifecycle-Zsi-S6qy.js +1274 -0
  218. package/dist/contracts-testkit-Ch7UfUw6.d.ts +145 -0
  219. package/dist/control-auth-BKUTwIvH.js +114 -0
  220. package/dist/control-service-CKUzEAa0.js +145 -0
  221. package/dist/control-ui/assets/agents-CUjpwxUf.js +1008 -0
  222. package/dist/control-ui/assets/channel-config-extras-Dd4z5RQ8.js +2 -0
  223. package/dist/control-ui/assets/channels-554ojNKp.js +367 -0
  224. package/dist/control-ui/assets/cron-BAd2PXq5.js +1013 -0
  225. package/dist/control-ui/assets/debug-BGCb3cT4.js +97 -0
  226. package/dist/control-ui/assets/index-BXico1DI.js +7370 -0
  227. package/dist/control-ui/assets/instances-EkBPy6m3.js +57 -0
  228. package/dist/control-ui/assets/logs-zcOeZekZ.js +74 -0
  229. package/dist/control-ui/assets/nodes-BymRwDa6.js +436 -0
  230. package/dist/control-ui/assets/sessions-C_oSuy7x.js +399 -0
  231. package/dist/control-ui/assets/skills-BVjEetcV.js +314 -0
  232. package/dist/control-ui/assets/skills-shared-weS2ZYM5.js +11 -0
  233. package/dist/control-ui/index.html +1 -1
  234. package/dist/control-ui/sw.js +1 -1
  235. package/dist/conversation-binding-runtime-rXAYUZyM.js +4 -0
  236. package/dist/conversation-runtime-CV0pSg81.js +31 -0
  237. package/dist/core-BV0irASW.js +282 -0
  238. package/dist/core-DIjsbXou.d.ts +224 -0
  239. package/dist/core-api-CyhjZVzn.js +5 -0
  240. package/dist/core-api-YdHGjff8.js +2 -0
  241. package/dist/crestodian/crestodian.js +1 -1
  242. package/dist/crestodian/rescue-message.js +1 -1
  243. package/dist/crestodian-n5FVHIW5.js +55 -0
  244. package/dist/daocore-runtime-DhfJoXrT.d.ts +151 -0
  245. package/dist/daocore-tools-CXDZ1Xhe.js +11727 -0
  246. package/dist/dashboard-CeQV6L1K.js +263 -0
  247. package/dist/delivery-D7LfafSk.js +1002 -0
  248. package/dist/dev-BSY4rs1s.js +97 -0
  249. package/dist/dialogue-DWFnjTiN.js +37 -0
  250. package/dist/dir-fetch-tool-BnlEyfZh.js +565 -0
  251. package/dist/dir-list-tool-Blhg_vTH.js +100 -0
  252. package/dist/direct-dm-DJPIaf5J.js +64 -0
  253. package/dist/directive-handling.fast-lane-DGV6PZYZ.js +68 -0
  254. package/dist/directive-handling.impl-CTDwclQa.js +818 -0
  255. package/dist/directive-handling.impl-_zI0_GsT.js +2 -0
  256. package/dist/directive-handling.model-selection-C8lG4FHQ.js +122 -0
  257. package/dist/directive-handling.persist.runtime-CmLb1evR.js +263 -0
  258. package/dist/directive-handling.persist.runtime.js +1 -1
  259. package/dist/dispatch-DvZRbIrc.js +1640 -0
  260. package/dist/dispatch-acp-transcript.runtime-PehNIsnR.js +40 -0
  261. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  262. package/dist/dispatch-acp.runtime-Dg8ft-Ve.js +18 -0
  263. package/dist/dispatch-acp.runtime.js +1 -1
  264. package/dist/doctor-DJFM3lrT.js +6 -0
  265. package/dist/doctor-_ob4EiVf.js +2 -0
  266. package/dist/doctor-config-flow-D6iEk-en.js +1741 -0
  267. package/dist/doctor-core-checks-CCfWWL1-.js +573 -0
  268. package/dist/doctor-core-checks-CqkHUVcZ.js +2 -0
  269. package/dist/doctor-health-CrNPft4G.js +65 -0
  270. package/dist/doctor-health-contributions-Bwu5M_GQ.js +696 -0
  271. package/dist/doctor-lint-B2Wb_jEn.js +94 -0
  272. package/dist/doctor-prompter-cXq7RExi.js +58 -0
  273. package/dist/doctor-state-integrity-DfYyVFbQ.js +1231 -0
  274. package/dist/dynamic-tools-CbHsYkuk.js +486 -0
  275. package/dist/embedded-backend-IYuqoxzv.js +579 -0
  276. package/dist/embedded-gateway-stub.runtime-BjJ_93Pp.js +12 -0
  277. package/dist/embedded-gateway-stub.runtime.js +1 -1
  278. package/dist/embedding-provider-B50jxKn8.d.ts +65 -0
  279. package/dist/embedding-provider-DOktf4gm.d.ts +21 -0
  280. package/dist/embedding-provider-DZOjws8e.d.ts +16 -0
  281. package/dist/entry.d.ts +1 -1
  282. package/dist/entry.js +1 -1
  283. package/dist/exec-approvals-VjIKwFog.js +149 -0
  284. package/dist/extensionAPI.js +1 -1
  285. package/dist/extensions/active-memory/index.d.ts +1 -1
  286. package/dist/extensions/active-memory/index.js +1 -1
  287. package/dist/extensions/admin-http-rpc/index.d.ts +1 -1
  288. package/dist/extensions/admin-http-rpc/index.js +1 -1
  289. package/dist/extensions/alibaba/index.d.ts +1 -1
  290. package/dist/extensions/anthropic/api.d.ts +3 -3
  291. package/dist/extensions/anthropic/cli-backend-api.d.ts +2 -2
  292. package/dist/extensions/anthropic/cli-backend.d.ts +1 -1
  293. package/dist/extensions/anthropic/cli-migration.d.ts +1 -1
  294. package/dist/extensions/anthropic/cli-shared.d.ts +1 -1
  295. package/dist/extensions/anthropic/contract-api.d.ts +1 -1
  296. package/dist/extensions/anthropic/index.d.ts +1 -1
  297. package/dist/extensions/anthropic/provider-contract-api.d.ts +1 -1
  298. package/dist/extensions/anthropic/provider-discovery.d.ts +1 -1
  299. package/dist/extensions/anthropic/provider-policy-api.d.ts +1 -1
  300. package/dist/extensions/anthropic/register.runtime.d.ts +1 -1
  301. package/dist/extensions/anthropic/replay-policy.d.ts +1 -1
  302. package/dist/extensions/anthropic/setup-api.d.ts +1 -1
  303. package/dist/extensions/anthropic/stream-wrappers.d.ts +1 -1
  304. package/dist/extensions/anthropic/test-api.d.ts +2 -2
  305. package/dist/extensions/arcee/index.d.ts +1 -1
  306. package/dist/extensions/azure-speech/index.d.ts +1 -1
  307. package/dist/extensions/azure-speech/speech-provider.d.ts +1 -1
  308. package/dist/extensions/bonjour/index.d.ts +1 -1
  309. package/dist/extensions/browser/browser-bridge.js +1 -1
  310. package/dist/extensions/browser/browser-config.js +4 -4
  311. package/dist/extensions/browser/browser-control-auth.js +2 -2
  312. package/dist/extensions/browser/browser-doctor.js +2 -2
  313. package/dist/extensions/browser/browser-maintenance.js +1 -1
  314. package/dist/extensions/browser/browser-profiles.js +2 -2
  315. package/dist/extensions/browser/browser-runtime-api.js +11 -11
  316. package/dist/extensions/browser/cli-metadata.d.ts +1 -1
  317. package/dist/extensions/browser/cli-metadata.js +1 -1
  318. package/dist/extensions/browser/index.d.ts +1 -1
  319. package/dist/extensions/browser/index.js +1 -1
  320. package/dist/extensions/browser/plugin-registration.d.ts +1 -1
  321. package/dist/extensions/browser/plugin-registration.js +1 -1
  322. package/dist/extensions/browser/register.runtime.d.ts +2 -2
  323. package/dist/extensions/browser/register.runtime.js +4 -4
  324. package/dist/extensions/browser/runtime-api.d.ts +3 -3
  325. package/dist/extensions/browser/runtime-api.js +13 -13
  326. package/dist/extensions/browser/setup-api.d.ts +1 -1
  327. package/dist/extensions/byteplus/index.d.ts +1 -1
  328. package/dist/extensions/byteplus/provider-discovery.d.ts +1 -1
  329. package/dist/extensions/canvas/cli-metadata.d.ts +1 -1
  330. package/dist/extensions/canvas/index.d.ts +1 -1
  331. package/dist/extensions/canvas/index.js +1 -1
  332. package/dist/extensions/canvas/runtime-api.d.ts +2 -2
  333. package/dist/extensions/canvas/setup-api.d.ts +1 -1
  334. package/dist/extensions/cerebras/index.d.ts +1 -1
  335. package/dist/extensions/chutes/index.d.ts +1 -1
  336. package/dist/extensions/clickclack/api.d.ts +2 -2
  337. package/dist/extensions/clickclack/api.js +2 -2
  338. package/dist/extensions/clickclack/channel-plugin-api.d.ts +1 -1
  339. package/dist/extensions/clickclack/channel-plugin-api.js +1 -1
  340. package/dist/extensions/clickclack/index.d.ts +2 -2
  341. package/dist/extensions/clickclack/runtime-api.d.ts +2 -2
  342. package/dist/extensions/clickclack/runtime-api.js +2 -2
  343. package/dist/extensions/cloudflare-ai-gateway/index.d.ts +1 -1
  344. package/dist/extensions/cloudflare-ai-gateway/stream-wrappers.d.ts +1 -1
  345. package/dist/extensions/comfy/index.d.ts +1 -1
  346. package/dist/extensions/copilot-proxy/index.d.ts +1 -1
  347. package/dist/extensions/copilot-proxy/runtime-api.d.ts +2 -2
  348. package/dist/extensions/deepgram/index.d.ts +1 -1
  349. package/dist/extensions/deepgram/realtime-transcription-provider.d.ts +1 -1
  350. package/dist/extensions/deepgram/test-api.d.ts +1 -1
  351. package/dist/extensions/deepinfra/api.d.ts +2 -2
  352. package/dist/extensions/deepinfra/embedding-provider.d.ts +1 -1
  353. package/dist/extensions/deepinfra/index.d.ts +1 -1
  354. package/dist/extensions/deepinfra/memory-embedding-adapter.d.ts +1 -1
  355. package/dist/extensions/deepinfra/speech-provider.d.ts +1 -1
  356. package/dist/extensions/deepseek/api.d.ts +1 -1
  357. package/dist/extensions/deepseek/index.d.ts +1 -1
  358. package/dist/extensions/deepseek/provider-discovery.d.ts +1 -1
  359. package/dist/extensions/deepseek/provider-policy-api.d.ts +1 -1
  360. package/dist/extensions/deepseek/stream.d.ts +1 -1
  361. package/dist/extensions/deepseek/thinking.d.ts +1 -1
  362. package/dist/extensions/device-pair/api.d.ts +3 -3
  363. package/dist/extensions/device-pair/api.js +1 -1
  364. package/dist/extensions/device-pair/index.d.ts +1 -1
  365. package/dist/extensions/device-pair/notify.d.ts +1 -1
  366. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  367. package/dist/extensions/document-extract/index.d.ts +1 -1
  368. package/dist/extensions/duckduckgo/index.d.ts +1 -1
  369. package/dist/extensions/elevenlabs/index.d.ts +1 -1
  370. package/dist/extensions/elevenlabs/realtime-transcription-provider.d.ts +1 -1
  371. package/dist/extensions/elevenlabs/setup-api.d.ts +1 -1
  372. package/dist/extensions/elevenlabs/speech-provider.d.ts +1 -1
  373. package/dist/extensions/elevenlabs/test-api.d.ts +2 -2
  374. package/dist/extensions/exa/index.d.ts +1 -1
  375. package/dist/extensions/fal/index.d.ts +1 -1
  376. package/dist/extensions/fal/provider-contract-api.d.ts +1 -1
  377. package/dist/extensions/fal/provider-registration.d.ts +1 -1
  378. package/dist/extensions/file-transfer/index.d.ts +1 -1
  379. package/dist/extensions/file-transfer/index.js +4 -4
  380. package/dist/extensions/firecrawl/index.d.ts +1 -1
  381. package/dist/extensions/fireworks/index.d.ts +1 -1
  382. package/dist/extensions/fireworks/provider-policy-api.d.ts +1 -1
  383. package/dist/extensions/fireworks/stream.d.ts +1 -1
  384. package/dist/extensions/fireworks/thinking-policy.d.ts +1 -1
  385. package/dist/extensions/github-copilot/embeddings.d.ts +1 -1
  386. package/dist/extensions/github-copilot/index.d.ts +1 -1
  387. package/dist/extensions/github-copilot/models.d.ts +1 -1
  388. package/dist/extensions/github-copilot/register.runtime.d.ts +2 -2
  389. package/dist/extensions/github-copilot/stream.d.ts +1 -1
  390. package/dist/extensions/google/api.d.ts +5 -5
  391. package/dist/extensions/google/cli-backend.d.ts +1 -1
  392. package/dist/extensions/google/embedding-batch.d.ts +1 -1
  393. package/dist/extensions/google/embedding-provider.d.ts +1 -1
  394. package/dist/extensions/google/gemini-cli-provider.d.ts +1 -1
  395. package/dist/extensions/google/index.d.ts +1 -1
  396. package/dist/extensions/google/memory-embedding-adapter.d.ts +1 -1
  397. package/dist/extensions/google/provider-contract-api.d.ts +1 -1
  398. package/dist/extensions/google/provider-hooks.d.ts +2 -2
  399. package/dist/extensions/google/provider-models.d.ts +1 -1
  400. package/dist/extensions/google/provider-policy-api.d.ts +1 -1
  401. package/dist/extensions/google/provider-policy.d.ts +1 -1
  402. package/dist/extensions/google/provider-registration.d.ts +1 -1
  403. package/dist/extensions/google/realtime-voice-provider.d.ts +1 -1
  404. package/dist/extensions/google/runtime-api.d.ts +3 -3
  405. package/dist/extensions/google/setup-api.d.ts +1 -1
  406. package/dist/extensions/google/speech-provider.d.ts +1 -1
  407. package/dist/extensions/google/test-api.d.ts +2 -2
  408. package/dist/extensions/google/thinking-api.d.ts +1 -1
  409. package/dist/extensions/google/thinking.d.ts +1 -1
  410. package/dist/extensions/google/transport-stream.d.ts +1 -1
  411. package/dist/extensions/gradium/index.d.ts +1 -1
  412. package/dist/extensions/gradium/speech-provider.d.ts +1 -1
  413. package/dist/extensions/groq/index.d.ts +1 -1
  414. package/dist/extensions/huggingface/index.d.ts +1 -1
  415. package/dist/extensions/image-generation-core/api.d.ts +4 -4
  416. package/dist/extensions/image-generation-core/runtime-api.d.ts +1 -1
  417. package/dist/extensions/imessage/api.d.ts +2 -2
  418. package/dist/extensions/imessage/api.js +2 -2
  419. package/dist/extensions/imessage/channel-plugin-api.d.ts +1 -1
  420. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  421. package/dist/extensions/imessage/index.d.ts +2 -2
  422. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  423. package/dist/extensions/imessage/runtime-api.d.ts +4 -4
  424. package/dist/extensions/imessage/runtime-api.js +3 -3
  425. package/dist/extensions/imessage/setup-entry.d.ts +2 -2
  426. package/dist/extensions/imessage/test-api.d.ts +1 -1
  427. package/dist/extensions/inworld/index.d.ts +1 -1
  428. package/dist/extensions/inworld/speech-provider.d.ts +1 -1
  429. package/dist/extensions/irc/api.d.ts +1 -1
  430. package/dist/extensions/irc/api.js +2 -2
  431. package/dist/extensions/irc/channel-plugin-api.d.ts +1 -1
  432. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  433. package/dist/extensions/irc/index.d.ts +2 -2
  434. package/dist/extensions/irc/setup-entry.d.ts +2 -2
  435. package/dist/extensions/kilocode/index.d.ts +1 -1
  436. package/dist/extensions/kimi-coding/index.d.ts +1 -1
  437. package/dist/extensions/kimi-coding/stream.d.ts +1 -1
  438. package/dist/extensions/litellm/index.d.ts +1 -1
  439. package/dist/extensions/llm-task/api.d.ts +2 -2
  440. package/dist/extensions/llm-task/index.d.ts +1 -1
  441. package/dist/extensions/llm-task/index.js +1 -1
  442. package/dist/extensions/lmstudio/api.d.ts +1 -1
  443. package/dist/extensions/lmstudio/index.d.ts +1 -1
  444. package/dist/extensions/lmstudio/memory-embedding-adapter.d.ts +1 -1
  445. package/dist/extensions/mattermost/api.js +1 -1
  446. package/dist/extensions/mattermost/channel-plugin-api.d.ts +2 -2
  447. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  448. package/dist/extensions/mattermost/channel-plugin-runtime.d.ts +1 -1
  449. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  450. package/dist/extensions/mattermost/index.d.ts +2 -2
  451. package/dist/extensions/mattermost/policy-api.js +1 -1
  452. package/dist/extensions/mattermost/runtime-api.d.ts +9 -9
  453. package/dist/extensions/mattermost/runtime-api.js +2 -2
  454. package/dist/extensions/mattermost/setup-entry.d.ts +2 -2
  455. package/dist/extensions/mattermost/slash-route-api.d.ts +1 -1
  456. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  457. package/dist/extensions/memory-core/api.d.ts +1 -1
  458. package/dist/extensions/memory-core/cli-metadata.d.ts +1 -1
  459. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  460. package/dist/extensions/memory-core/index.d.ts +1 -1
  461. package/dist/extensions/memory-core/manager-runtime.d.ts +1 -1
  462. package/dist/extensions/memory-core/runtime-api.d.ts +2 -2
  463. package/dist/extensions/memory-wiki/api.d.ts +3 -3
  464. package/dist/extensions/memory-wiki/cli-metadata.d.ts +1 -1
  465. package/dist/extensions/memory-wiki/index.d.ts +1 -1
  466. package/dist/extensions/memory-wiki/setup-api.d.ts +1 -1
  467. package/dist/extensions/microsoft/index.d.ts +1 -1
  468. package/dist/extensions/microsoft/speech-provider.d.ts +1 -1
  469. package/dist/extensions/microsoft/test-api.d.ts +1 -1
  470. package/dist/extensions/microsoft-foundry/auth.d.ts +1 -1
  471. package/dist/extensions/microsoft-foundry/cli.d.ts +1 -1
  472. package/dist/extensions/microsoft-foundry/index.d.ts +1 -1
  473. package/dist/extensions/microsoft-foundry/onboard.d.ts +3 -3
  474. package/dist/extensions/microsoft-foundry/provider.d.ts +1 -1
  475. package/dist/extensions/microsoft-foundry/runtime.d.ts +1 -1
  476. package/dist/extensions/microsoft-foundry/shared-runtime.d.ts +1 -1
  477. package/dist/extensions/microsoft-foundry/shared.d.ts +1 -1
  478. package/dist/extensions/migrate-claude/apply.d.ts +1 -1
  479. package/dist/extensions/migrate-claude/apply.js +1 -1
  480. package/dist/extensions/migrate-claude/config.d.ts +1 -1
  481. package/dist/extensions/migrate-claude/helpers.d.ts +1 -1
  482. package/dist/extensions/migrate-claude/index.d.ts +1 -1
  483. package/dist/extensions/migrate-claude/index.js +1 -1
  484. package/dist/extensions/migrate-claude/memory.d.ts +2 -2
  485. package/dist/extensions/migrate-claude/plan.d.ts +1 -1
  486. package/dist/extensions/migrate-claude/plan.js +1 -1
  487. package/dist/extensions/migrate-claude/provider.d.ts +1 -1
  488. package/dist/extensions/migrate-claude/provider.js +1 -1
  489. package/dist/extensions/migrate-claude/skills.d.ts +2 -2
  490. package/dist/extensions/migrate-claude/targets.d.ts +1 -1
  491. package/dist/extensions/migrate-claude/targets.js +1 -1
  492. package/dist/extensions/migrate-hermes/apply.d.ts +1 -1
  493. package/dist/extensions/migrate-hermes/apply.js +1 -1
  494. package/dist/extensions/migrate-hermes/config.d.ts +1 -1
  495. package/dist/extensions/migrate-hermes/helpers.d.ts +1 -1
  496. package/dist/extensions/migrate-hermes/index.d.ts +1 -1
  497. package/dist/extensions/migrate-hermes/index.js +1 -1
  498. package/dist/extensions/migrate-hermes/items.d.ts +1 -1
  499. package/dist/extensions/migrate-hermes/model.d.ts +1 -1
  500. package/dist/extensions/migrate-hermes/model.js +1 -1
  501. package/dist/extensions/migrate-hermes/plan.d.ts +1 -1
  502. package/dist/extensions/migrate-hermes/plan.js +1 -1
  503. package/dist/extensions/migrate-hermes/provider.d.ts +1 -1
  504. package/dist/extensions/migrate-hermes/provider.js +1 -1
  505. package/dist/extensions/migrate-hermes/secrets.d.ts +2 -2
  506. package/dist/extensions/migrate-hermes/secrets.js +1 -1
  507. package/dist/extensions/migrate-hermes/skills.d.ts +2 -2
  508. package/dist/extensions/migrate-hermes/targets.d.ts +1 -1
  509. package/dist/extensions/migrate-hermes/targets.js +1 -1
  510. package/dist/extensions/minimax/index.d.ts +1 -1
  511. package/dist/extensions/minimax/provider-contract-api.d.ts +1 -1
  512. package/dist/extensions/minimax/provider-registration.d.ts +1 -1
  513. package/dist/extensions/minimax/speech-provider.d.ts +1 -1
  514. package/dist/extensions/mistral/embedding-provider.d.ts +1 -1
  515. package/dist/extensions/mistral/index.d.ts +1 -1
  516. package/dist/extensions/mistral/memory-embedding-adapter.d.ts +1 -1
  517. package/dist/extensions/mistral/realtime-transcription-provider.d.ts +1 -1
  518. package/dist/extensions/mistral/test-api.d.ts +1 -1
  519. package/dist/extensions/moonshot/index.d.ts +1 -1
  520. package/dist/extensions/moonshot/provider-contract-api.d.ts +1 -1
  521. package/dist/extensions/moonshot/provider-discovery.d.ts +1 -1
  522. package/dist/extensions/nvidia/index.d.ts +1 -1
  523. package/dist/extensions/oc-path/cli-metadata.d.ts +1 -1
  524. package/dist/extensions/oc-path/cli-registration.d.ts +1 -1
  525. package/dist/extensions/oc-path/index.d.ts +1 -1
  526. package/dist/extensions/ollama/api.d.ts +1 -1
  527. package/dist/extensions/ollama/index.d.ts +1 -1
  528. package/dist/extensions/ollama/provider-discovery.d.ts +1 -1
  529. package/dist/extensions/ollama/provider-policy-api.d.ts +1 -1
  530. package/dist/extensions/ollama/runtime-api.d.ts +1 -1
  531. package/dist/extensions/open-prose/index.d.ts +1 -1
  532. package/dist/extensions/open-prose/runtime-api.d.ts +2 -2
  533. package/dist/extensions/openai/api.d.ts +4 -4
  534. package/dist/extensions/openai/embedding-batch.d.ts +1 -1
  535. package/dist/extensions/openai/embedding-provider.d.ts +1 -1
  536. package/dist/extensions/openai/index.d.ts +1 -1
  537. package/dist/extensions/openai/memory-embedding-adapter.d.ts +1 -1
  538. package/dist/extensions/openai/openai-codex-oauth.runtime.d.ts +1 -1
  539. package/dist/extensions/openai/openai-codex-provider.d.ts +1 -1
  540. package/dist/extensions/openai/openai-provider.d.ts +1 -1
  541. package/dist/extensions/openai/prompt-overlay.d.ts +1 -1
  542. package/dist/extensions/openai/provider-contract-api.d.ts +1 -1
  543. package/dist/extensions/openai/provider-policy-api.d.ts +1 -1
  544. package/dist/extensions/openai/realtime-transcription-provider.d.ts +1 -1
  545. package/dist/extensions/openai/realtime-voice-provider.d.ts +1 -1
  546. package/dist/extensions/openai/register.runtime.d.ts +6 -6
  547. package/dist/extensions/openai/replay-policy.d.ts +1 -1
  548. package/dist/extensions/openai/setup-api.d.ts +1 -1
  549. package/dist/extensions/openai/shared.d.ts +3 -3
  550. package/dist/extensions/openai/speech-provider.d.ts +1 -1
  551. package/dist/extensions/openai/test-api.d.ts +3 -3
  552. package/dist/extensions/openai/thinking-policy.d.ts +1 -1
  553. package/dist/extensions/openai/transport-policy.d.ts +1 -1
  554. package/dist/extensions/opencode/index.d.ts +1 -1
  555. package/dist/extensions/opencode/provider-policy-api.d.ts +1 -1
  556. package/dist/extensions/opencode-go/index.d.ts +1 -1
  557. package/dist/extensions/opencode-go/provider-catalog.d.ts +1 -1
  558. package/dist/extensions/opencode-go/stream.d.ts +1 -1
  559. package/dist/extensions/openrouter/api.d.ts +1 -1
  560. package/dist/extensions/openrouter/index.d.ts +1 -1
  561. package/dist/extensions/openrouter/provider-contract-api.d.ts +1 -1
  562. package/dist/extensions/openrouter/provider-policy-api.d.ts +1 -1
  563. package/dist/extensions/openrouter/speech-provider.d.ts +1 -1
  564. package/dist/extensions/openrouter/stream.d.ts +1 -1
  565. package/dist/extensions/openrouter/test-api.d.ts +1 -1
  566. package/dist/extensions/openrouter/thinking-policy.d.ts +1 -1
  567. package/dist/extensions/openrouter/video-generation-provider.d.ts +1 -1
  568. package/dist/extensions/openrouter/video-model-catalog.d.ts +1 -1
  569. package/dist/extensions/perplexity/index.d.ts +1 -1
  570. package/dist/extensions/phone-control/index.d.ts +1 -1
  571. package/dist/extensions/phone-control/runtime-api.d.ts +2 -2
  572. package/dist/extensions/policy/api.js +1 -1
  573. package/dist/extensions/policy/index.d.ts +1 -1
  574. package/dist/extensions/policy/index.js +2 -2
  575. package/dist/extensions/qianfan/index.d.ts +1 -1
  576. package/dist/extensions/qwen/api.d.ts +1 -1
  577. package/dist/extensions/qwen/index.d.ts +1 -1
  578. package/dist/extensions/qwen/stream.d.ts +1 -1
  579. package/dist/extensions/runway/index.d.ts +1 -1
  580. package/dist/extensions/searxng/index.d.ts +1 -1
  581. package/dist/extensions/senseaudio/index.d.ts +1 -1
  582. package/dist/extensions/sglang/index.d.ts +1 -1
  583. package/dist/extensions/signal/api.d.ts +3 -3
  584. package/dist/extensions/signal/api.js +6 -6
  585. package/dist/extensions/signal/channel-entry.d.ts +2 -2
  586. package/dist/extensions/signal/channel-plugin-api.d.ts +1 -1
  587. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  588. package/dist/extensions/signal/index.d.ts +2 -2
  589. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  590. package/dist/extensions/signal/runtime-api.d.ts +7 -7
  591. package/dist/extensions/signal/runtime-api.js +7 -7
  592. package/dist/extensions/signal/setup-entry.d.ts +2 -2
  593. package/dist/extensions/skill-workshop/api.d.ts +2 -2
  594. package/dist/extensions/skill-workshop/api.js +1 -1
  595. package/dist/extensions/skill-workshop/index.d.ts +1 -1
  596. package/dist/extensions/skill-workshop/index.js +2 -2
  597. package/dist/extensions/speech-core/api.d.ts +3 -3
  598. package/dist/extensions/speech-core/runtime-api.d.ts +2 -2
  599. package/dist/extensions/stepfun/index.d.ts +1 -1
  600. package/dist/extensions/synthetic/index.d.ts +1 -1
  601. package/dist/extensions/talk-voice/api.d.ts +2 -2
  602. package/dist/extensions/talk-voice/index.d.ts +1 -1
  603. package/dist/extensions/tavily/index.d.ts +1 -1
  604. package/dist/extensions/telegram/account-inspect-api.js +1 -1
  605. package/dist/extensions/telegram/api.d.ts +4 -4
  606. package/dist/extensions/telegram/api.js +11 -11
  607. package/dist/extensions/telegram/channel-plugin-api.d.ts +2 -2
  608. package/dist/extensions/telegram/channel-plugin-api.js +2 -2
  609. package/dist/extensions/telegram/contract-api.d.ts +1 -1
  610. package/dist/extensions/telegram/contract-api.js +3 -3
  611. package/dist/extensions/telegram/index.d.ts +2 -2
  612. package/dist/extensions/telegram/runtime-api.d.ts +4 -4
  613. package/dist/extensions/telegram/runtime-api.js +7 -7
  614. package/dist/extensions/telegram/security-audit-contract-api.js +1 -1
  615. package/dist/extensions/telegram/setup-entry.d.ts +2 -2
  616. package/dist/extensions/telegram/setup-plugin-api.d.ts +1 -1
  617. package/dist/extensions/telegram/setup-plugin-api.js +1 -1
  618. package/dist/extensions/telegram/test-api.js +2 -2
  619. package/dist/extensions/tencent/index.d.ts +1 -1
  620. package/dist/extensions/tencent/provider-discovery.d.ts +1 -1
  621. package/dist/extensions/thread-ownership/api.d.ts +2 -2
  622. package/dist/extensions/thread-ownership/index.d.ts +1 -1
  623. package/dist/extensions/together/index.d.ts +1 -1
  624. package/dist/extensions/tokenjuice/index.d.ts +1 -1
  625. package/dist/extensions/tokenjuice/tool-result-middleware.d.ts +1 -1
  626. package/dist/extensions/tts-local-cli/index.d.ts +1 -1
  627. package/dist/extensions/tts-local-cli/speech-provider.d.ts +1 -1
  628. package/dist/extensions/venice/index.d.ts +1 -1
  629. package/dist/extensions/venice/stream.d.ts +1 -1
  630. package/dist/extensions/vercel-ai-gateway/index.d.ts +1 -1
  631. package/dist/extensions/vercel-ai-gateway/thinking.d.ts +1 -1
  632. package/dist/extensions/video-generation-core/api.d.ts +3 -3
  633. package/dist/extensions/video-generation-core/runtime-api.d.ts +1 -1
  634. package/dist/extensions/vllm/api.d.ts +1 -1
  635. package/dist/extensions/vllm/index.d.ts +1 -1
  636. package/dist/extensions/vllm/stream.d.ts +1 -1
  637. package/dist/extensions/volcengine/index.d.ts +1 -1
  638. package/dist/extensions/volcengine/provider-discovery.d.ts +1 -1
  639. package/dist/extensions/volcengine/speech-provider.d.ts +1 -1
  640. package/dist/extensions/voyage/embedding-batch.d.ts +1 -1
  641. package/dist/extensions/voyage/embedding-provider.d.ts +1 -1
  642. package/dist/extensions/voyage/index.d.ts +1 -1
  643. package/dist/extensions/voyage/memory-embedding-adapter.d.ts +1 -1
  644. package/dist/extensions/vydra/index.d.ts +1 -1
  645. package/dist/extensions/vydra/speech-provider.d.ts +1 -1
  646. package/dist/extensions/web-readability/index.d.ts +1 -1
  647. package/dist/extensions/webhooks/api.d.ts +2 -2
  648. package/dist/extensions/webhooks/api.js +1 -1
  649. package/dist/extensions/webhooks/index.d.ts +1 -1
  650. package/dist/extensions/webhooks/index.js +1 -1
  651. package/dist/extensions/webhooks/runtime-api.d.ts +2 -2
  652. package/dist/extensions/xai/api.d.ts +1 -1
  653. package/dist/extensions/xai/index.d.ts +1 -1
  654. package/dist/extensions/xai/index.js +4 -4
  655. package/dist/extensions/xai/provider-contract-api.d.ts +1 -1
  656. package/dist/extensions/xai/provider-discovery.d.ts +1 -1
  657. package/dist/extensions/xai/provider-models.d.ts +1 -1
  658. package/dist/extensions/xai/provider-policy-api.d.ts +1 -1
  659. package/dist/extensions/xai/realtime-transcription-provider.d.ts +1 -1
  660. package/dist/extensions/xai/realtime-transcription-provider.js +1 -1
  661. package/dist/extensions/xai/setup-api.d.ts +1 -1
  662. package/dist/extensions/xai/speech-provider.d.ts +1 -1
  663. package/dist/extensions/xai/speech-provider.js +1 -1
  664. package/dist/extensions/xai/stream.d.ts +1 -1
  665. package/dist/extensions/xai/test-api.js +1 -1
  666. package/dist/extensions/xai/tts.js +1 -1
  667. package/dist/extensions/xai/web-search.js +1 -1
  668. package/dist/extensions/xai/xai-oauth.d.ts +1 -1
  669. package/dist/extensions/xai/xai-oauth.js +1 -1
  670. package/dist/extensions/xiaomi/index.d.ts +1 -1
  671. package/dist/extensions/xiaomi/speech-provider.d.ts +1 -1
  672. package/dist/extensions/xiaomi/stream.d.ts +1 -1
  673. package/dist/extensions/xiaomi/thinking.d.ts +1 -1
  674. package/dist/extensions/zai/index.d.ts +1 -1
  675. package/dist/file-fetch-tool-smMykVXl.js +124 -0
  676. package/dist/file-write-tool-yEYLZ2hU.js +127 -0
  677. package/dist/format-DyREJP5V.js +1145 -0
  678. package/dist/gateway/protocol/index.d.ts +1 -1
  679. package/dist/gateway-cli-D4yhwJa8.js +435 -0
  680. package/dist/gateway-method-runtime-B8AOnwqD.js +21 -0
  681. package/dist/gateway-runtime-BqKz92h9.d.ts +163 -0
  682. package/dist/gemini-cli-provider-wUxyeRzT.d.ts +6 -0
  683. package/dist/get-reply-Co-_Qlr-.js +4689 -0
  684. package/dist/get-reply-from-config.runtime-BcbRKxzJ.js +2 -0
  685. package/dist/get-reply-from-config.runtime.js +1 -1
  686. package/dist/graph-users-CF7Dlee2.js +1419 -0
  687. package/dist/group-access-BTU-w5S5.js +112 -0
  688. package/dist/group-keys-B_lbVBmI.d.ts +17 -0
  689. package/dist/handle-action.guild-admin-DS29y_6h.js +288 -0
  690. package/dist/harness-d9YmZWA3.js +61 -0
  691. package/dist/health-Cov1Kryj.js +4 -0
  692. package/dist/heartbeat-runner-B2wo_xDj.js +5 -0
  693. package/dist/heartbeat-runner.runtime-DrHZD-P2.js +4 -0
  694. package/dist/heartbeat-runner.runtime.js +1 -1
  695. package/dist/help-BgDd1atJ.js +136 -0
  696. package/dist/hook-runtime-UU80d5qW.d.ts +108 -0
  697. package/dist/hooks-CgXKCJSD.js +534 -0
  698. package/dist/http-registry-CBDAGRJy.d.ts +23 -0
  699. package/dist/image-generation-runtime-BFOnMPYD.d.ts +21 -0
  700. package/dist/inbound-direct-dm-runtime-DjOHl6c_.js +2 -0
  701. package/dist/inbound-reply-dispatch-BCTiM2jm.js +148 -0
  702. package/dist/index-D7Vsu6c4.d.ts +3971 -0
  703. package/dist/index.d.ts +1 -1
  704. package/dist/index.js +1 -1
  705. package/dist/init-CreYGHpp.js +59 -0
  706. package/dist/inline-buttons-C94TOhmL.js +40 -0
  707. package/dist/interactive-dispatch-AIMj_vt7.d.ts +143 -0
  708. package/dist/interactive-dispatch-Bh_T3uZG.d.ts +56 -0
  709. package/dist/internal-events-B6D5bqsn.js +90 -0
  710. package/dist/isolated-agent-9faqxl7c.js +1118 -0
  711. package/dist/isolated-agent-CaY4uTcE.js +2 -0
  712. package/dist/lifecycle-pTz4liUn.js +571 -0
  713. package/dist/list.probe-B8pt-DOd.js +449 -0
  714. package/dist/list.status-command-Wgmt361J.js +789 -0
  715. package/dist/llm-slug-generator-Do4oXnXl.js +78 -0
  716. package/dist/llm-slug-generator.js +1 -1
  717. package/dist/loader-BFBzvUK_.d.ts +142 -0
  718. package/dist/local-dispatch.runtime-7keeuHHm.js +9 -0
  719. package/dist/local-dispatch.runtime.js +1 -1
  720. package/dist/manager-D058VQAp.d.ts +10 -0
  721. package/dist/manager-DerRaxsV.d.ts +356 -0
  722. package/dist/manager.core-DKeUsAcV.d.ts +198 -0
  723. package/dist/manager.runtime-B3nVh8Nl.js +2714 -0
  724. package/dist/manager.runtime.js +1 -1
  725. package/dist/markdown-to-line-CZLeX0SL.js +811 -0
  726. package/dist/mcp-http-LaAmzBev.js +2 -0
  727. package/dist/mcp-http-M4GjuKFd.js +555 -0
  728. package/dist/media-understanding-provider-DLA6VsQZ.js +339 -0
  729. package/dist/memory-core-host-engine-storage-MF-67Z8w.d.ts +54 -0
  730. package/dist/memory-embedding-adapter-CEwgurWU.d.ts +5 -0
  731. package/dist/message-actions-Dlv-B5yk.js +145 -0
  732. package/dist/message-handler-2HSbEoAi.js +384 -0
  733. package/dist/message-handler-XiApv_iS.js +1715 -0
  734. package/dist/message-handler.preflight-CN-g4nxs.js +1125 -0
  735. package/dist/message-handler.process-BzVq3Lq_.js +1484 -0
  736. package/dist/migration-BXmTbRk9.d.ts +45 -0
  737. package/dist/model-Ci5kQ7PA.d.ts +33 -0
  738. package/dist/model-Sqz99RFi.js +74 -0
  739. package/dist/model-selection-Bh9QtqlJ.js +272 -0
  740. package/dist/models-C_dD1FNN.js +2 -0
  741. package/dist/models-CtpB-fi2.js +104 -0
  742. package/dist/models-Cxa7r3rl.d.ts +24 -0
  743. package/dist/models-cli-I2sJE5tg.js +256 -0
  744. package/dist/monitor-B4J6Kn4-.js +60 -0
  745. package/dist/monitor-BIFxJ3Ql.js +2788 -0
  746. package/dist/monitor-BTkcXHvw.js +834 -0
  747. package/dist/monitor-BX7Encm5.js +1657 -0
  748. package/dist/monitor-CZsJ4D3J.js +4377 -0
  749. package/dist/monitor-CvKt9k7P.js +2 -0
  750. package/dist/monitor-Dy9phiVJ.js +1370 -0
  751. package/dist/monitor-auth-CjtJPc9C.js +179 -0
  752. package/dist/monitor-jQpVHEky.js +715 -0
  753. package/dist/monitor-polling.runtime-Li4-3e2G.js +883 -0
  754. package/dist/monitor-polling.runtime.js +1 -1
  755. package/dist/monitor-webhook.runtime-CQ2kN5ya.js +387 -0
  756. package/dist/monitor-webhook.runtime.js +1 -1
  757. package/dist/monitor.account-CFdazLEm.js +5233 -0
  758. package/dist/monitor.runtime-B774iFU_.js +2 -0
  759. package/dist/monitor.runtime.js +1 -1
  760. package/dist/monitor.webhook-NNrWA5P9.js +180 -0
  761. package/dist/node-cli-sessions-Ct-6bGab.js +1228 -0
  762. package/dist/onboard-DEUA1HCQ.js +733 -0
  763. package/dist/onboard-helpers-Cupkjkec.js +251 -0
  764. package/dist/onboard-helpers-D1Pvowo1.js +6 -0
  765. package/dist/onboard-remote-BN_7wNqG.js +2 -0
  766. package/dist/onboard-remote-BqYAK5dF.js +212 -0
  767. package/dist/onboard-skills-BM40qOkc.js +160 -0
  768. package/dist/onboard-skills-rSLgDOzB.js +2 -0
  769. package/dist/openai-codex-provider-Fo-TKiyf.d.ts +5 -0
  770. package/dist/openai-http-BRnxRJ_y.js +824 -0
  771. package/dist/openai-provider-BqDrspuV.d.ts +5 -0
  772. package/dist/openresponses-http-Dg3OL0qA.js +1173 -0
  773. package/dist/operations-jvr0A8cu.js +805 -0
  774. package/dist/outbound-adapter-BJej9JpO.js +543 -0
  775. package/dist/outbound-session-route-D3QVwFKr.js +45 -0
  776. package/dist/outbound.runtime-gdOoPtOh.js +2 -0
  777. package/dist/outbound.runtime.js +1 -1
  778. package/dist/pairing-store-C-WQTUHq.d.ts +87 -0
  779. package/dist/pi-embedded-CwD_xrGP.js +3796 -0
  780. package/dist/pi-embedded-DL6l8KBl.js +4 -0
  781. package/dist/pi-embedded.runtime-DyGCj24d.js +4 -0
  782. package/dist/pi-embedded.runtime.js +1 -1
  783. package/dist/pi-tools-BzbgexEG.js +2413 -0
  784. package/dist/plan-HWBV2Rhq.js +112 -0
  785. package/dist/plan-iN77JYw-.js +81 -0
  786. package/dist/plugin-BbOOGgCS.d.ts +17 -0
  787. package/dist/plugin-CbNvjum_.js +12396 -0
  788. package/dist/plugin-app-cache-key-CHpwYM0e.js +46 -0
  789. package/dist/plugin-enabled-DjbDhNRG.js +233 -0
  790. package/dist/plugin-entry-B3_M6paP.d.ts +47 -0
  791. package/dist/plugin-registration-BM_Iko3e.js +88 -0
  792. package/dist/plugin-runtime-QzTPitsy.d.ts +117 -0
  793. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  794. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  795. package/dist/plugin-sdk/acp-runtime.js +2 -2
  796. package/dist/plugin-sdk/agent-harness-runtime.js +6 -6
  797. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  798. package/dist/plugin-sdk/agent-harness.js +7 -7
  799. package/dist/plugin-sdk/agent-runtime.js +2 -2
  800. package/dist/plugin-sdk/channel-core.js +2 -2
  801. package/dist/plugin-sdk/channel-inbound.js +2 -2
  802. package/dist/plugin-sdk/channel-test-helpers.js +1 -1
  803. package/dist/plugin-sdk/command-auth.js +1 -1
  804. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  805. package/dist/plugin-sdk/compat.js +1 -1
  806. package/dist/plugin-sdk/conversation-binding-runtime.js +2 -2
  807. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  808. package/dist/plugin-sdk/core.js +2 -2
  809. package/dist/plugin-sdk/direct-dm.js +1 -1
  810. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  811. package/dist/plugin-sdk/health.js +2 -2
  812. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  813. package/dist/plugin-sdk/index.js +1 -1
  814. package/dist/plugin-sdk/mattermost.js +1 -1
  815. package/dist/plugin-sdk/plugin-test-contracts.js +2 -2
  816. package/dist/plugin-sdk/provider-test-contracts.js +4 -4
  817. package/dist/plugin-sdk/reply-runtime.js +4 -4
  818. package/dist/plugin-sdk/testing.js +2 -2
  819. package/dist/plugin-sdk/zalouser.js +1 -1
  820. package/dist/plugin-service-CVyMm03C.js +1229 -0
  821. package/dist/plugin-service-bHD8oLfO.d.ts +24 -0
  822. package/dist/plugins/build-smoke-entry.d.ts +2 -2
  823. package/dist/plugins/loader.d.ts +1 -1
  824. package/dist/plugins/provider-discovery.runtime.d.ts +1 -1
  825. package/dist/plugins/provider-runtime.runtime.d.ts +1 -1
  826. package/dist/plugins/runtime/index.js +4 -4
  827. package/dist/policy-B2lTxn8H.js +680 -0
  828. package/dist/policy-Bp9GYcSZ.js +138 -0
  829. package/dist/prepare.runtime-CxhQeo9l.js +732 -0
  830. package/dist/prepare.runtime.js +1 -1
  831. package/dist/preview-warnings-FVRS7Mcs.js +392 -0
  832. package/dist/probe-BRLc43oX.js +47 -0
  833. package/dist/probe-C1eD9yG7.js +2204 -0
  834. package/dist/probe-C1giMJtz.js +682 -0
  835. package/dist/probe-rIUNPFef.js +2 -0
  836. package/dist/program-DfIqBXRH.js +131 -0
  837. package/dist/prompt-overlay-Bq3sUpDV.d.ts +23 -0
  838. package/dist/provider-BCxvG42s.js +152 -0
  839. package/dist/provider-BHPMcHk-.js +32 -0
  840. package/dist/provider-CIAQ8D7q.js +32 -0
  841. package/dist/provider-api-key-auth-BsEQw2pm.d.ts +27 -0
  842. package/dist/provider-auth-result-B204hPXB.d.ts +21 -0
  843. package/dist/provider-catalog-runtime-Dcyw8skT.d.ts +23 -0
  844. package/dist/provider-catalog-shared-qfgsIQS-.d.ts +62 -0
  845. package/dist/provider-dispatcher-DyJDef6y.js +22 -0
  846. package/dist/provider-dispatcher.runtime.js +1 -1
  847. package/dist/provider-hook-runtime-NiAPyKFa.d.ts +61 -0
  848. package/dist/provider-j7cYms68.js +8735 -0
  849. package/dist/provider-model-shared-BwE02tDa.d.ts +143 -0
  850. package/dist/provider-models-hfm5XTTN.d.ts +12 -0
  851. package/dist/provider-policy-BB7uTrIp.d.ts +30 -0
  852. package/dist/provider-registration-DEjYSu9M.d.ts +6 -0
  853. package/dist/provider-registry-D5hn-VAM.d.ts +8 -0
  854. package/dist/provider-registry-DHIsMEbc.d.ts +8 -0
  855. package/dist/provider-registry-VyHjmzoh.d.ts +30 -0
  856. package/dist/provider-runtime-CdtuIOgf.d.ts +359 -0
  857. package/dist/provider-self-hosted-setup-xR0Nsu7L.d.ts +74 -0
  858. package/dist/provider-session.runtime-CmNY15Mr.js +9 -0
  859. package/dist/provider-session.runtime.js +1 -1
  860. package/dist/provider-stream-CxVko1CO.d.ts +140 -0
  861. package/dist/provider-stream-shared-BxFPKFGe.d.ts +128 -0
  862. package/dist/provider.runtime-DJO3dwrX.js +2 -0
  863. package/dist/provider.runtime.js +1 -1
  864. package/dist/providers.runtime-CJOUbS2S.d.ts +25 -0
  865. package/dist/public-surface-loader-CgBnme5n.js +114 -0
  866. package/dist/pw-ai-UeRWGzcL.js +3029 -0
  867. package/dist/pw-role-snapshot-BtlutwlO.js +333 -0
  868. package/dist/reaction-level-DWOV-qJM.js +19 -0
  869. package/dist/reaction-runtime-api-5ZiPcbGJ.js +116 -0
  870. package/dist/realtime-transcription-CZadifvk.d.ts +43 -0
  871. package/dist/realtime-transcription-provider-BF9HxM3d.d.ts +5 -0
  872. package/dist/realtime-transcription-provider-Bcj92hEI.d.ts +32 -0
  873. package/dist/realtime-transcription-provider-DKZ9iHkc.d.ts +28 -0
  874. package/dist/realtime-transcription-provider-DcsAmQEp.js +205 -0
  875. package/dist/realtime-transcription-provider-DhjVTTqb.d.ts +37 -0
  876. package/dist/realtime-voice-B2W34yTP.d.ts +333 -0
  877. package/dist/realtime-voice-provider-CgNNrGwQ.d.ts +5 -0
  878. package/dist/register-Dga1nJRL.js +2178 -0
  879. package/dist/register.agent-VIgyZLKG.js +156 -0
  880. package/dist/register.configure-C21zJ4Qb.js +16 -0
  881. package/dist/register.crestodian-Bam6mUXr.js +24 -0
  882. package/dist/register.maintenance-D9E-Hh90.js +83 -0
  883. package/dist/register.onboard-BnUcaZsb.js +113 -0
  884. package/dist/register.runtime-BdRAp4xz.js +54 -0
  885. package/dist/register.runtime-D3abILg7.d.ts +6 -0
  886. package/dist/register.setup-Bq-9IQdV.js +40 -0
  887. package/dist/register.subclis-DubBtg8Z.js +31 -0
  888. package/dist/register.subclis-H_qmmDFx.js +3 -0
  889. package/dist/register.subclis-core-fg3DalSH.js +273 -0
  890. package/dist/registry-CPtiHUu_.d.ts +91 -0
  891. package/dist/registry-types-XtFJDNYl.d.ts +392 -0
  892. package/dist/repair-sequencing-Dn0sDvBE.js +640 -0
  893. package/dist/reply-delivery-DZGfRh-W.js +196 -0
  894. package/dist/reply-runtime-BdCPL-OF.js +11 -0
  895. package/dist/reply-runtime-DuaOZ9MH.d.ts +34 -0
  896. package/dist/reply.runtime-BcbRKxzJ.js +2 -0
  897. package/dist/reply.runtime.js +1 -1
  898. package/dist/request-Ca681Kt1.js +54 -0
  899. package/dist/resolve-allowlist-DWjCzDq1.js +220 -0
  900. package/dist/result-fallback-classifier-BWIh0wzc.js +79 -0
  901. package/dist/root-help-8a3TWleF.js +43 -0
  902. package/dist/route-BsWREv6-.js +469 -0
  903. package/dist/route-resolution-D8FyF30I.js +274 -0
  904. package/dist/routes-BxkaJuyM.js +3602 -0
  905. package/dist/routes-DdwFgSv9.js +2 -0
  906. package/dist/run-attempt-Ca7HP1Nd.js +7704 -0
  907. package/dist/run-command-JwrnqCIB.js +2 -0
  908. package/dist/run-command-wWvfXyIf.js +23 -0
  909. package/dist/run-embedded.runtime-0QIAc8PG.js +4 -0
  910. package/dist/run-embedded.runtime.js +1 -1
  911. package/dist/run-execution-cli.runtime-LhD-S0h_.js +4 -0
  912. package/dist/run-execution-cli.runtime.js +1 -1
  913. package/dist/run-executor.runtime.js +1 -1
  914. package/dist/run-prKMVvM2.js +1162 -0
  915. package/dist/run-subagent-registry.runtime-C07jSlV2.js +2 -0
  916. package/dist/run-subagent-registry.runtime.js +1 -1
  917. package/dist/runtime-3PDZU_1b.d.ts +17 -0
  918. package/dist/runtime-7Xhj2T8S.js +6179 -0
  919. package/dist/runtime-CXUwJU3q.js +438 -0
  920. package/dist/runtime-DeQypuDs.js +1287 -0
  921. package/dist/runtime-api-0djTIsuz.js +13 -0
  922. package/dist/runtime-api-9CEihqK3.d.ts +3151 -0
  923. package/dist/runtime-api-Bz1h0p3i.js +17 -0
  924. package/dist/runtime-api-CLcJZKu2.js +13 -0
  925. package/dist/runtime-api-Ce7axAAW.js +24 -0
  926. package/dist/runtime-api-CoAsju8a.js +4 -0
  927. package/dist/runtime-api-DEuynhDr.js +3 -0
  928. package/dist/runtime-api-oZFIOS9l.js +21 -0
  929. package/dist/runtime-api.actions-Blt2bAHw.d.ts +23 -0
  930. package/dist/runtime-api.actions-DWLRlSej.js +3 -0
  931. package/dist/runtime-api.monitor-DtXB3_sf.js +6 -0
  932. package/dist/runtime-api.send-BU586hbs.js +4 -0
  933. package/dist/runtime-api.send-BygcWA7R.d.ts +38 -0
  934. package/dist/runtime-api.threads-Djhr5AJy.js +2 -0
  935. package/dist/runtime-channel-BIgBTs_X.js +2 -0
  936. package/dist/runtime-channel-CsUTBjYU.js +150 -0
  937. package/dist/runtime-embedded-pi.runtime-Rszd_KCt.js +2 -0
  938. package/dist/runtime-embedded-pi.runtime.js +1 -1
  939. package/dist/runtime-taskflow-s80xQc2H.d.ts +435 -0
  940. package/dist/sanitize-outbound-2umQeW_U.js +127 -0
  941. package/dist/sdk-setup-tools-TiaNam05.js +8 -0
  942. package/dist/secrets-BmyFSkt-.js +113 -0
  943. package/dist/secrets-cli-DPAwFvtH.js +149 -0
  944. package/dist/security-audit-BR9FBcLD.js +122 -0
  945. package/dist/security-audit-RKut1lWG.js +118 -0
  946. package/dist/security-audit.runtime-Pe7YbS9P.js +2 -0
  947. package/dist/security-audit.runtime.js +1 -1
  948. package/dist/selection-Cqhmjpyl.js +16157 -0
  949. package/dist/selection-xFFMaq92.js +3 -0
  950. package/dist/send-BDHagrwl.js +1631 -0
  951. package/dist/send-BETlETJ5.d.ts +231 -0
  952. package/dist/send-BV_O_Ljd.js +192 -0
  953. package/dist/send-CpcmWYrM.d.ts +104 -0
  954. package/dist/send-W-DVyil6.js +2 -0
  955. package/dist/send-jUp2-szO.js +143 -0
  956. package/dist/send.components-BR_yPtKv.js +500 -0
  957. package/dist/send.components-CK7UbpRP.js +2 -0
  958. package/dist/send.runtime-DHLfdHbS.js +2 -0
  959. package/dist/send.runtime.js +1 -1
  960. package/dist/send.types-D_3tsfSL.d.ts +159 -0
  961. package/dist/server-DRcdRu6J.js +73 -0
  962. package/dist/server-Ddv-oAKv.js +24 -0
  963. package/dist/server-close.runtime.d.ts +1 -1
  964. package/dist/server-close.runtime.js +1 -1
  965. package/dist/server-context-9rW0Cvdw.js +2 -0
  966. package/dist/server-context-uRD5N8_D.js +955 -0
  967. package/dist/server-cron-BClEPtbv.js +2 -0
  968. package/dist/server-cron-CNGar45o.js +2989 -0
  969. package/dist/server-methods-CAMhJf7g.js +16494 -0
  970. package/dist/server-node-events-DW5DoAxk.js +596 -0
  971. package/dist/server-plugin-bootstrap-CqX4dDcN.js +70 -0
  972. package/dist/server-plugins-BIhs3eCz.js +432 -0
  973. package/dist/server-reload-handlers-54HSfSr7.js +714 -0
  974. package/dist/server-restart-sentinel-C47-O08k.js +747 -0
  975. package/dist/server-restart-sentinel-Cx-3Rzl0.js +2 -0
  976. package/dist/server-runtime-services-D-SWzUww.js +267 -0
  977. package/dist/server-runtime-services-D0GOFPFq.js +2 -0
  978. package/dist/server-startup-plugins-C8pzVvkb.js +113 -0
  979. package/dist/server-startup-post-attach-2xoGJJts.js +716 -0
  980. package/dist/server-ws-runtime-Dywo6GC-.js +349 -0
  981. package/dist/server.impl-xK22fZyJ.js +2586 -0
  982. package/dist/service-Ci8roOZn.js +1446 -0
  983. package/dist/session-binding-BsdbGBhb.js +219 -0
  984. package/dist/session-binding-D42jROcb.js +2 -0
  985. package/dist/session-kill-http-kU4rUj1_.js +121 -0
  986. package/dist/session-reset-service-DkCGElAA.js +625 -0
  987. package/dist/session-route-hmQSEijy.js +93 -0
  988. package/dist/session-status.runtime-Dsz-54he.js +2 -0
  989. package/dist/session-status.runtime.js +1 -1
  990. package/dist/session-subagent-reactivation.runtime-CYJIkiW8.js +2 -0
  991. package/dist/session-subagent-reactivation.runtime.js +1 -1
  992. package/dist/session-tab-registry-YfQve--K.js +521 -0
  993. package/dist/sessions-history-http-DeuZSSGj.js +430 -0
  994. package/dist/sessions.runtime-wAccC8Lk.js +2 -0
  995. package/dist/sessions.runtime.js +1 -1
  996. package/dist/setup-B8caUFIZ.js +586 -0
  997. package/dist/setup-CgHGdMpV.js +2 -0
  998. package/dist/setup-api-Uew7qBry.js +29 -0
  999. package/dist/setup-core-BP_fjsmA.js +174 -0
  1000. package/dist/setup-onboard-configure-help-fast-path-ykLp2JqU.js +64 -0
  1001. package/dist/setup-surface-BgEGrdZ3.js +320 -0
  1002. package/dist/setup-surface-BvSqsFEu.js +221 -0
  1003. package/dist/setup-surface-CHzMJ7_T.js +405 -0
  1004. package/dist/setup-surface-DYm3Xvgt.js +288 -0
  1005. package/dist/setup.finalize-BgLIjblM.js +582 -0
  1006. package/dist/setup.gateway-config-BBguRpIc.js +281 -0
  1007. package/dist/setup.migration-import-BY06brv-.js +200 -0
  1008. package/dist/setup.migration-import-Igj5NMey.js +2 -0
  1009. package/dist/shared-client-GL2KQ2Eu.js +2 -0
  1010. package/dist/shared-client-Mc7bTBoQ.js +629 -0
  1011. package/dist/shared-moi7PK0C.js +121 -0
  1012. package/dist/shared-rlOyTpAw.d.ts +115 -0
  1013. package/dist/side-question-BEHswpGw.js +683 -0
  1014. package/dist/simple-completion-runtime-CsXJkjY5.d.ts +73 -0
  1015. package/dist/skill-tool-dispatch.runtime-O5uXeees.js +143 -0
  1016. package/dist/skill-tool-dispatch.runtime.js +1 -1
  1017. package/dist/slash-state-BAYUTcHl.js +2166 -0
  1018. package/dist/speech-BAP4NgqI.d.ts +47 -0
  1019. package/dist/speech-core-DZmhKq_b.d.ts +36 -0
  1020. package/dist/speech-provider-22oDk8Tz.js +184 -0
  1021. package/dist/speech-provider-79S_bTlE.d.ts +8 -0
  1022. package/dist/speech-provider-BYJna1nq.d.ts +5 -0
  1023. package/dist/speech-provider-BvKhsuyg.d.ts +5 -0
  1024. package/dist/speech-provider-CdVIHtT6.d.ts +5 -0
  1025. package/dist/speech-provider-OiRKJFwo.d.ts +8 -0
  1026. package/dist/speech-provider-xUDd1kmD.d.ts +34 -0
  1027. package/dist/src-C8wkJgE6.js +4256 -0
  1028. package/dist/startup-context-BhLJufFU.js +313 -0
  1029. package/dist/status-C20LHDLA.js +73 -0
  1030. package/dist/status-message-CmzgS8zM.js +484 -0
  1031. package/dist/status-message.runtime-iG6qi7wn.js +6 -0
  1032. package/dist/status-message.runtime.js +1 -1
  1033. package/dist/status-subagents.runtime-D49P_RIr.js +18 -0
  1034. package/dist/status-subagents.runtime.js +1 -1
  1035. package/dist/status-text-BI7Q1z4U.js +296 -0
  1036. package/dist/status.runtime-RQes0TI5.js +2 -0
  1037. package/dist/sticker-cache-Dh4joqan.js +206 -0
  1038. package/dist/sticker-vision.runtime-5SRgpo_k.js +17 -0
  1039. package/dist/sticker-vision.runtime.js +1 -1
  1040. package/dist/stream-BrMwI7HV.d.ts +10 -0
  1041. package/dist/stream-Bx_akKgo.d.ts +16 -0
  1042. package/dist/stream-D094UIVI.d.ts +5 -0
  1043. package/dist/stream-D5DoOmTT.d.ts +19 -0
  1044. package/dist/stream-Tt9cSOCl.d.ts +120 -0
  1045. package/dist/stream-wrappers-CUkNtyZK.d.ts +21 -0
  1046. package/dist/subagent-announce-BEPlkjCS.js +354 -0
  1047. package/dist/subagent-announce-delivery-jcxPIfNG.js +958 -0
  1048. package/dist/subagent-control-DdMWVJXs.js +508 -0
  1049. package/dist/subagent-hooks-BsTVb6ur.js +2 -0
  1050. package/dist/subagent-hooks-CBlMBrss.js +2 -0
  1051. package/dist/subagent-hooks-Ch5oDUxb.js +116 -0
  1052. package/dist/subagent-hooks-DmUeAwY3.js +146 -0
  1053. package/dist/subagent-hooks-PNuPbYEl.js +2 -0
  1054. package/dist/subagent-hooks-api-BQ051dF0.js +23 -0
  1055. package/dist/subagent-hooks-api-DcVS0aJZ.js +22 -0
  1056. package/dist/subagent-hooks-api-Dlbc5Mtd.js +23 -0
  1057. package/dist/subagent-hooks-dwsegI07.js +230 -0
  1058. package/dist/subagent-orphan-recovery-Cl_y6Poi.js +352 -0
  1059. package/dist/subagent-registry-BVVgDSdq.d.ts +1 -0
  1060. package/dist/subagent-registry-BosUdBW6.js +2351 -0
  1061. package/dist/subagent-registry-Bxd6vaAO.js +3 -0
  1062. package/dist/subagent-registry-read-BVVgDSdq.d.ts +1 -0
  1063. package/dist/subagent-registry.runtime.js +1 -1
  1064. package/dist/subagent-session-cleanup-Bd6d93qi.js +525 -0
  1065. package/dist/subagent-spawn-ViO3XAR1.js +1164 -0
  1066. package/dist/target-id-Bje_v2Ax.js +107 -0
  1067. package/dist/targets-9q_q5M9n.d.ts +10 -0
  1068. package/dist/targets-C4byiOgQ.js +19 -0
  1069. package/dist/targets-J0MVE-dD.js +44 -0
  1070. package/dist/targets-ZMEvyNa8.js +19 -0
  1071. package/dist/targets-qBcfKetP.d.ts +10 -0
  1072. package/dist/task-registry-control.runtime.d.ts +1 -1
  1073. package/dist/task-registry-control.runtime.js +1 -1
  1074. package/dist/telegram/token.js +1 -1
  1075. package/dist/testing-Dk757Ggg.js +267 -0
  1076. package/dist/thinking-policy-DO6T8IfK.d.ts +5 -0
  1077. package/dist/thread-bindings-CYrmTzFY.js +232 -0
  1078. package/dist/thread-bindings-Cf7fkXxk.js +571 -0
  1079. package/dist/thread-bindings-DI6LNGbW.js +8 -0
  1080. package/dist/thread-bindings-DdmuKtVD.js +228 -0
  1081. package/dist/thread-bindings.discord-api-C01V3kFk.js +187 -0
  1082. package/dist/thread-bindings.manager--WOGVrL-.js +2 -0
  1083. package/dist/thread-bindings.manager-HzjqZNiL.js +536 -0
  1084. package/dist/thread-lifecycle-CJKTxWnQ.js +1614 -0
  1085. package/dist/token-D-FQ8AQz.js +134 -0
  1086. package/dist/tool-DTCfs0DU.js +139 -0
  1087. package/dist/tool-actions.runtime-Cb3iA3Os.js +534 -0
  1088. package/dist/tool-actions.runtime.js +1 -1
  1089. package/dist/tool-plugin-CbbLM31f.d.ts +77 -0
  1090. package/dist/tool-resolution-CbqzNutV.js +149 -0
  1091. package/dist/tool-split-bLqMPHTZ.d.ts +19 -0
  1092. package/dist/tools-effective-inventory-BsAax-ML.js +204 -0
  1093. package/dist/tools-invoke-http-DAqZxikd.js +67 -0
  1094. package/dist/tools-invoke-shared-CsVRemTL.js +200 -0
  1095. package/dist/transport-stream-DOXZsjVL.d.ts +42 -0
  1096. package/dist/tts-Ckj6MJNr.js +66 -0
  1097. package/dist/tui-CwwCXMCq.js +2 -0
  1098. package/dist/tui-DpJn3v2D.js +4709 -0
  1099. package/dist/tui-backend-DQ9wF5es.js +256 -0
  1100. package/dist/tui-cli-k3AYPBn3.js +37 -0
  1101. package/dist/types--0xYmMG9.d.ts +786 -0
  1102. package/dist/types-CMDl9l_P2.d.ts +3650 -0
  1103. package/dist/types.public-DvhPzYJi.d.ts +70 -0
  1104. package/dist/update-cli-DB5Doqld.js +3664 -0
  1105. package/dist/video-generation-runtime-CTQN-4SI.d.ts +21 -0
  1106. package/dist/video-model-catalog-CTyt4dXa.d.ts +16 -0
  1107. package/dist/vision-tools-Dp0JrLRi.js +1409 -0
  1108. package/dist/web-search-B0yvxuiq.js +62 -0
  1109. package/dist/web-search-provider.runtime-B-cNT-5J.js +2 -0
  1110. package/dist/web-search-provider.runtime-HhmIlk_Z.js +328 -0
  1111. package/dist/web-search-provider.runtime.js +1 -1
  1112. package/dist/webhook-targets-3u4hOqRl.d.ts +99 -0
  1113. package/dist/xai-oauth-cZGjnEjh.js +479 -0
  1114. package/dist/xai-user-agent-DA8le6vP.js +32 -0
  1115. package/dist/zod-schema.core-i5HaY1T4.d.ts +166 -0
  1116. package/package.json +1 -1
  1117. package/dist/abort-CvuLeqr1.js +0 -277
  1118. package/dist/abort.runtime-DNoavlKn.js +0 -2
  1119. package/dist/account-inspect-ByX21U_z.js +0 -173
  1120. package/dist/accounts-B0sjdn0w.js +0 -119
  1121. package/dist/accounts-BF_AfTED.js +0 -107
  1122. package/dist/accounts-DX1c8NKM.js +0 -107
  1123. package/dist/accounts-EA2GGTep.js +0 -2
  1124. package/dist/acp-runtime-BC8oA7xM.js +0 -26
  1125. package/dist/acp-spawn-CPYDCZ95.js +0 -2
  1126. package/dist/acp-spawn-Cqi47GCL.js +0 -1275
  1127. package/dist/acp-stateful-target-driver-CcWMRAQ2.js +0 -89
  1128. package/dist/action-kill-CZrPfOIS.js +0 -33
  1129. package/dist/action-runtime-DuhVKLRJ.js +0 -469
  1130. package/dist/action-runtime-api-BKaUWi7b.js +0 -2
  1131. package/dist/action-send-_NpIHMwj.js +0 -39
  1132. package/dist/action-spawn-Dymn4rUo.js +0 -47
  1133. package/dist/actions-Bk_WaEAa.js +0 -161
  1134. package/dist/actions.runtime-Hh7HYOlJ.js +0 -5
  1135. package/dist/agent-CQzGVmy1.js +0 -2
  1136. package/dist/agent-ClmYyW81.js +0 -3
  1137. package/dist/agent-command-D5KxwCVS.d.ts +0 -141
  1138. package/dist/agent-command-DbU2fo-p.js +0 -1367
  1139. package/dist/agent-components.runtime-BpXJmJXk.js +0 -10
  1140. package/dist/agent-harness-D8c6PLE_.d.ts +0 -146
  1141. package/dist/agent-harness-runtime-AHXS4Jj3.d.ts +0 -691
  1142. package/dist/agent-harness-runtime-TzbK9YTz.js +0 -180
  1143. package/dist/agent-harness-task-runtime-CZWJEsKk.js +0 -140
  1144. package/dist/agent-runner-execution-CmHT78Vr.js +0 -1713
  1145. package/dist/agent-runner-utils-B0i1PW18.js +0 -266
  1146. package/dist/agent-runner.runtime-B6Ah_MlB.js +0 -3455
  1147. package/dist/agent-runtime-BOMioAX6.js +0 -229
  1148. package/dist/agent-via-gateway-DfxQCPit.js +0 -463
  1149. package/dist/agents.commands.add-CszEBxoJ.js +0 -304
  1150. package/dist/agents.commands.delete-ulnJ7RH9.js +0 -128
  1151. package/dist/api-6SmEQDkK.js +0 -134
  1152. package/dist/api-B7QdoMF5.js +0 -2
  1153. package/dist/api-BBgby6ck.js +0 -639
  1154. package/dist/api-DwKV-xfM.d.ts +0 -52
  1155. package/dist/api-RfjCqA7Y.js +0 -6
  1156. package/dist/api-VDkFlOiv.js +0 -2
  1157. package/dist/api-We4xoZFr.js +0 -3
  1158. package/dist/apply-Cgtzilem.js +0 -41
  1159. package/dist/apply-Csp3U8cA.js +0 -54
  1160. package/dist/approval-handler.runtime-aQaSBbpF.js +0 -130
  1161. package/dist/assistant-UMyirSUH.js +0 -291
  1162. package/dist/attachment-normalize-BupK-_Ox.js +0 -225
  1163. package/dist/attempt-execution-oLlyFjHk.js +0 -558
  1164. package/dist/attempt-execution.runtime-Cq8RE0x_.js +0 -3
  1165. package/dist/attempt-execution.shared-DyBzUJGB.js +0 -38
  1166. package/dist/attempt.prompt-helpers-CVBP6t5J.js +0 -475
  1167. package/dist/attempt.tool-run-context-UU1BUUC9.js +0 -2094
  1168. package/dist/auth-BDaK_y-g.js +0 -541
  1169. package/dist/banner-VbID973v.js +0 -2
  1170. package/dist/banner-W77piyz6.js +0 -397
  1171. package/dist/binding-routing-DahKvjr3.js +0 -113
  1172. package/dist/binding-targets-C3mqUdUT.js +0 -121
  1173. package/dist/bot-DonUKEuy.js +0 -7894
  1174. package/dist/bot-deps-CroXwZeM.js +0 -747
  1175. package/dist/bot-deps-DKoy3x0l.js +0 -2
  1176. package/dist/bot-message-context.runtime-BI_zyqDu.js +0 -7
  1177. package/dist/bot-message-context.session.runtime-Cpy2H9Ez.js +0 -12
  1178. package/dist/bot-native-commands.delivery.runtime-CsHg3h1O.js +0 -4
  1179. package/dist/bot-native-commands.runtime-rmoBpwZY.js +0 -13
  1180. package/dist/bridge-server-BmDNWgHD.js +0 -113
  1181. package/dist/browser-cli-BQLwmLw3.js +0 -2
  1182. package/dist/browser-cli-CHHIN-of.js +0 -230
  1183. package/dist/browser-cli-actions-input-DBZ7uwag.js +0 -473
  1184. package/dist/browser-cli-actions-observe-BdH2-WTk.js +0 -81
  1185. package/dist/browser-cli-debug-C82Apbgb.js +0 -137
  1186. package/dist/browser-cli-inspect-CrO1qca7.js +0 -104
  1187. package/dist/browser-cli-manage-Dgm1IUZT.js +0 -443
  1188. package/dist/browser-cli-resize-DqgMr3DY.js +0 -26
  1189. package/dist/browser-cli-shared-BTnXMCKA.js +0 -50
  1190. package/dist/browser-cli-state-DT3bVOtg.js +0 -337
  1191. package/dist/browser-control-auth-BRwKCt45.js +0 -2
  1192. package/dist/browser-profiles-DhGtxK9v.js +0 -2
  1193. package/dist/browser-runtime-BL6b-qtr.js +0 -384
  1194. package/dist/build-33AnG55F.js +0 -257
  1195. package/dist/bundled-channel-config-schema-4eXcH-RE.d.ts +0 -3163
  1196. package/dist/call-dct8amtn.d.ts +0 -43
  1197. package/dist/capability-cli-D-KoVyyP.js +0 -1782
  1198. package/dist/channel-0tgrzPag.js +0 -867
  1199. package/dist/channel-4g20sJKJ.d.ts +0 -104
  1200. package/dist/channel-6tG8jWsw.d.ts +0 -8
  1201. package/dist/channel-7OEbQ8xS.d.ts +0 -6
  1202. package/dist/channel-7rVapSdN.d.ts +0 -8
  1203. package/dist/channel-B1fZN0iI.d.ts +0 -427
  1204. package/dist/channel-B5Q7fRiN.js +0 -1134
  1205. package/dist/channel-BEg_0h_C.d.ts +0 -12
  1206. package/dist/channel-BNp1J_eZ.js +0 -376
  1207. package/dist/channel-BP6RWm-M.d.ts +0 -47
  1208. package/dist/channel-BRjqrJfj.d.ts +0 -49
  1209. package/dist/channel-BUoyH_tP.d.ts +0 -114
  1210. package/dist/channel-BVBG4Tmn.d.ts +0 -28
  1211. package/dist/channel-Bap23sAx.js +0 -481
  1212. package/dist/channel-BhZ7x0SB.d.ts +0 -26
  1213. package/dist/channel-Bxod9CjX.js +0 -508
  1214. package/dist/channel-C6LASGjS.js +0 -808
  1215. package/dist/channel-COWZEKCw.js +0 -1249
  1216. package/dist/channel-CRAIreZ3.js +0 -238
  1217. package/dist/channel-CVY2hnJh.js +0 -1556
  1218. package/dist/channel-CgKdh_Jd.d.ts +0 -106
  1219. package/dist/channel-Cxo62btA.js +0 -1496
  1220. package/dist/channel-D5SzoyWI.js +0 -562
  1221. package/dist/channel-DE4vIsYF.d.ts +0 -64
  1222. package/dist/channel-DOdRHxJg.js +0 -1777
  1223. package/dist/channel-DZygtXdy.js +0 -362
  1224. package/dist/channel-DfhOnM71.d.ts +0 -7
  1225. package/dist/channel-DhZiptRe.d.ts +0 -8
  1226. package/dist/channel-DqPZviVV.js +0 -2126
  1227. package/dist/channel-Dssy3NQA.js +0 -740
  1228. package/dist/channel-actions.runtime-CDaMC9SV.js +0 -265
  1229. package/dist/channel-buMY8xZQ.d.ts +0 -7
  1230. package/dist/channel-core-CBhC_PNR.js +0 -5
  1231. package/dist/channel-core-x9b94azO.d.ts +0 -6
  1232. package/dist/channel-cvGHll3-.js +0 -955
  1233. package/dist/channel-entry-contract-BfZdcgTS.d.ts +0 -112
  1234. package/dist/channel-inbound-CNdyzYlz.js +0 -80
  1235. package/dist/channel-l8amaSI9.js +0 -653
  1236. package/dist/channel-lifecycle-DCl2GbRW.d.ts +0 -125
  1237. package/dist/channel-pairing-BRqfYy30.d.ts +0 -58
  1238. package/dist/channel-plugin-runtime-CvcVGjj4.js +0 -998
  1239. package/dist/channel-plugin-runtime-D5n9A86n.d.ts +0 -7
  1240. package/dist/channel-runtime-BAbg8Dcv.js +0 -408
  1241. package/dist/channel-sWtDTVwd.d.ts +0 -14
  1242. package/dist/channel.runtime-9o-iF8zm.js +0 -2528
  1243. package/dist/channel.runtime-BotO7RD0.js +0 -21009
  1244. package/dist/channel.runtime-BrDb4cP8.js +0 -88
  1245. package/dist/channel.runtime-C1cLfrDt.js +0 -254
  1246. package/dist/channel.runtime-CTM3VO2E.js +0 -4
  1247. package/dist/channel.runtime-CnodqvCJ.js +0 -733
  1248. package/dist/channel.runtime-Dmr8503H.js +0 -1008
  1249. package/dist/channel.runtime-DqzR3Gd9.js +0 -109
  1250. package/dist/channel.runtime-LOf0PHu_.js +0 -652
  1251. package/dist/channel.setup-1leD5F5B.js +0 -343
  1252. package/dist/channel.setup-D9UyWhXM.js +0 -1098
  1253. package/dist/channel.setup-DkVld-9Z.d.ts +0 -7
  1254. package/dist/channel.setup-DxT4prSl.d.ts +0 -8
  1255. package/dist/channel.setup-IHNFkdUD.js +0 -10
  1256. package/dist/channel.setup-YwXqilBB.d.ts +0 -6
  1257. package/dist/chat-DrycI6KH.js +0 -2666
  1258. package/dist/chrome-CgGY9FsG.js +0 -1503
  1259. package/dist/cli-backend-B3aNoTD4.d.ts +0 -5
  1260. package/dist/cli-backend-BVUFOLXj.d.ts +0 -5
  1261. package/dist/cli-compaction-DPmSHZx7.js +0 -347
  1262. package/dist/cli-metadata-eFfCoGmY.js +0 -22
  1263. package/dist/cli-nmYmL8lb.js +0 -1341
  1264. package/dist/cli-runner-BTOYShgV.js +0 -2
  1265. package/dist/cli-runner-DgXAxJVr.js +0 -540
  1266. package/dist/cli-runner.runtime-BeMsKcaS.js +0 -4
  1267. package/dist/cli-runner.runtime-DMD8X8-h.js +0 -3
  1268. package/dist/cli-shared-BAuePn3e.d.ts +0 -20
  1269. package/dist/cli-v6XF4hHd.d.ts +0 -20
  1270. package/dist/client-CKLZqMCW.js +0 -650
  1271. package/dist/client-adapter-B_0W-6Fx.js +0 -897
  1272. package/dist/client-factory-CdMLQFeA.js +0 -9
  1273. package/dist/command-auth-BxYfnQzs.js +0 -135
  1274. package/dist/command-execution-startup-CiV5yFW1.js +0 -87
  1275. package/dist/command-handlers-BAWROGlt.js +0 -1609
  1276. package/dist/command-registry-BqTMebZr.js +0 -4
  1277. package/dist/command-registry-C2Y8GeJl.js +0 -9
  1278. package/dist/command-registry-core-Bi-d0-WH.js +0 -110
  1279. package/dist/command-status.runtime-BSXHZzOq.js +0 -90
  1280. package/dist/commands-Z6AfrJar.d.ts +0 -113
  1281. package/dist/commands-acp-BYWOkjAx.js +0 -74
  1282. package/dist/commands-compact.runtime-Cyb7Pu12.js +0 -10
  1283. package/dist/commands-handlers.runtime-DdJ20XTn.js +0 -6154
  1284. package/dist/commands-status-6uhiUw13.js +0 -3
  1285. package/dist/commands-status-BJ5AnkOG.js +0 -16
  1286. package/dist/commands-status.runtime-6uhiUw13.js +0 -3
  1287. package/dist/commands-subagents-control.runtime-DZrrLjSk.js +0 -2
  1288. package/dist/commands-subagents-control.runtime-_R3XgUpp.js +0 -3
  1289. package/dist/commands-system-prompt-CHGtJPnx.js +0 -162
  1290. package/dist/commands-system-prompt-CM23NlDu.js +0 -2
  1291. package/dist/commands.runtime-DUEbtHG1.js +0 -176
  1292. package/dist/compact-BA6lVtLj.js +0 -480
  1293. package/dist/compact-BfC-utPW.js +0 -1141
  1294. package/dist/compact.runtime-BRL2wCqh.js +0 -12
  1295. package/dist/completion-cli-CYKoLZLl.js +0 -315
  1296. package/dist/computer-use-BWgYktaW.js +0 -367
  1297. package/dist/config-B_HanwOV.js +0 -373
  1298. package/dist/config-DhGtxK9v.js +0 -2
  1299. package/dist/config-cli-CI5UtWr-.js +0 -1633
  1300. package/dist/config-mutations-D2GtlLMA.js +0 -159
  1301. package/dist/config-schema-BKOfHz23.d.ts +0 -20
  1302. package/dist/configure-CuPwIiwW.js +0 -3
  1303. package/dist/configure.commands-BWpwrafi.js +0 -1251
  1304. package/dist/configure.commands-qzipmoDP.js +0 -2
  1305. package/dist/context-engine-host-compat-D246ZMR2.js +0 -2
  1306. package/dist/context-engine-host-compat-KMl-oqCw.js +0 -288
  1307. package/dist/context-engine-lifecycle-DvEDHkQz.js +0 -1274
  1308. package/dist/contracts-testkit-Ym3exIK5.d.ts +0 -145
  1309. package/dist/control-auth-B_RiUaHt.js +0 -114
  1310. package/dist/control-service-DcQFx6_O.js +0 -145
  1311. package/dist/control-ui/assets/agents-Bc8cIfWF.js +0 -1008
  1312. package/dist/control-ui/assets/channel-config-extras-DQru4ECs.js +0 -2
  1313. package/dist/control-ui/assets/channels-BfncerPV.js +0 -367
  1314. package/dist/control-ui/assets/cron-DHLcga_r.js +0 -1013
  1315. package/dist/control-ui/assets/debug-DprDzDn1.js +0 -97
  1316. package/dist/control-ui/assets/index-XTZKpkBL.js +0 -7370
  1317. package/dist/control-ui/assets/instances-D1_lOT13.js +0 -57
  1318. package/dist/control-ui/assets/logs-DINx8syb.js +0 -74
  1319. package/dist/control-ui/assets/nodes-BH4XOUmD.js +0 -436
  1320. package/dist/control-ui/assets/sessions-D5Xt25SY.js +0 -399
  1321. package/dist/control-ui/assets/skills-BmayrBHY.js +0 -314
  1322. package/dist/control-ui/assets/skills-shared-CHaYSJ_s.js +0 -11
  1323. package/dist/conversation-binding-runtime-_jhzwiiC.js +0 -4
  1324. package/dist/conversation-runtime-F5kCN0Sj.js +0 -31
  1325. package/dist/core-BpeKfqbI.d.ts +0 -224
  1326. package/dist/core-DE71gncT.js +0 -282
  1327. package/dist/core-api-B4L5WkKc.js +0 -5
  1328. package/dist/core-api-Q9oM19yY.js +0 -2
  1329. package/dist/crestodian-DLpxYmzP.js +0 -55
  1330. package/dist/daocore-runtime-BnYtDbMC.d.ts +0 -151
  1331. package/dist/daocore-tools-wNTIZIO3.js +0 -11727
  1332. package/dist/dashboard-SHmcCcnT.js +0 -263
  1333. package/dist/delivery-BA4di5Tw.js +0 -1002
  1334. package/dist/dev-Cr2Dhgoc.js +0 -97
  1335. package/dist/dialogue-xI4qAuLY.js +0 -37
  1336. package/dist/dir-fetch-tool-6d4yElM4.js +0 -565
  1337. package/dist/dir-list-tool-D2k-hax6.js +0 -100
  1338. package/dist/direct-dm-eGyFHTug.js +0 -64
  1339. package/dist/directive-handling.fast-lane-Ci1l6GN_.js +0 -68
  1340. package/dist/directive-handling.impl-Co3i_YQ4.js +0 -818
  1341. package/dist/directive-handling.impl-DHKC0TrU.js +0 -2
  1342. package/dist/directive-handling.model-selection-bv5KrHOw.js +0 -122
  1343. package/dist/directive-handling.persist.runtime-CPLg-YHh.js +0 -263
  1344. package/dist/dispatch-CdvERWY-.js +0 -1640
  1345. package/dist/dispatch-acp-transcript.runtime-BhQo1XEg.js +0 -40
  1346. package/dist/dispatch-acp.runtime-Dtiu2EgE.js +0 -18
  1347. package/dist/doctor-BzsPHvLP.js +0 -2
  1348. package/dist/doctor-Cg4FWB15.js +0 -6
  1349. package/dist/doctor-config-flow-SYjHcyu4.js +0 -1741
  1350. package/dist/doctor-core-checks-75amkN-e.js +0 -2
  1351. package/dist/doctor-core-checks-B1fu7KDm.js +0 -573
  1352. package/dist/doctor-health-contributions-BMdJKStr.js +0 -696
  1353. package/dist/doctor-health-vLyDQqfq.js +0 -65
  1354. package/dist/doctor-lint-DfvFyBgL.js +0 -94
  1355. package/dist/doctor-prompter-C-dTuOnw.js +0 -58
  1356. package/dist/doctor-state-integrity-Cv-ECLuv.js +0 -1231
  1357. package/dist/dynamic-tools-BG8ijDFH.js +0 -486
  1358. package/dist/embedded-backend-bRfALCWz.js +0 -579
  1359. package/dist/embedded-gateway-stub.runtime-CAh3IhtZ.js +0 -12
  1360. package/dist/embedding-provider-B7kg9IhC.d.ts +0 -16
  1361. package/dist/embedding-provider-jB1zjkZy.d.ts +0 -65
  1362. package/dist/embedding-provider-sea2CddJ.d.ts +0 -21
  1363. package/dist/exec-approvals-BBa28Sct.js +0 -149
  1364. package/dist/file-fetch-tool-DRIsI7eQ.js +0 -124
  1365. package/dist/file-write-tool-vTMh7eW6.js +0 -127
  1366. package/dist/format-nrhTS41q.js +0 -1145
  1367. package/dist/gateway-cli-CCgw11Ik.js +0 -435
  1368. package/dist/gateway-method-runtime-BNAVGCC_.js +0 -21
  1369. package/dist/gateway-runtime-DGdJumdK.d.ts +0 -163
  1370. package/dist/gemini-cli-provider-Bbpd5lx5.d.ts +0 -6
  1371. package/dist/get-reply-DGFCqKen.js +0 -4689
  1372. package/dist/get-reply-from-config.runtime-l7NTyCh5.js +0 -2
  1373. package/dist/graph-users-CGpakgek.js +0 -1419
  1374. package/dist/group-access-D095jQ78.js +0 -112
  1375. package/dist/group-keys-DnxWQtll.d.ts +0 -17
  1376. package/dist/handle-action.guild-admin-B3pALmMq.js +0 -288
  1377. package/dist/harness-Bs-sPbOD.js +0 -61
  1378. package/dist/health-4gWMIKHu.js +0 -4
  1379. package/dist/heartbeat-runner-Sky_Rjw7.js +0 -5
  1380. package/dist/heartbeat-runner.runtime-CRZ-NbrW.js +0 -4
  1381. package/dist/help-B68Ov4LD.js +0 -136
  1382. package/dist/hook-runtime-Cm73yH0T.d.ts +0 -107
  1383. package/dist/hooks-DWSdYas_.js +0 -534
  1384. package/dist/http-registry-CHKiFHCC.d.ts +0 -23
  1385. package/dist/image-generation-runtime-p-dfXZTf.d.ts +0 -21
  1386. package/dist/inbound-direct-dm-runtime-5z3W9Oqn.js +0 -2
  1387. package/dist/inbound-reply-dispatch-D7NeeFC1.js +0 -148
  1388. package/dist/index-CKAHTIU4.d.ts +0 -3971
  1389. package/dist/init-BXF3o80o.js +0 -59
  1390. package/dist/inline-buttons-DsHwKEVU.js +0 -40
  1391. package/dist/interactive-dispatch-BsKWomnh.d.ts +0 -143
  1392. package/dist/interactive-dispatch-CItEYOu3.d.ts +0 -56
  1393. package/dist/internal-events-TAN9dPEj.js +0 -90
  1394. package/dist/isolated-agent-CTrVGI6q.js +0 -2
  1395. package/dist/isolated-agent-DPyibJ8B.js +0 -1118
  1396. package/dist/lifecycle-BwTg0Djv.js +0 -571
  1397. package/dist/list.probe-BpM4PKu7.js +0 -449
  1398. package/dist/list.status-command-BbcloYBd.js +0 -789
  1399. package/dist/llm-slug-generator-UG7Bhj_y.js +0 -78
  1400. package/dist/loader-D6z2PEKl.d.ts +0 -142
  1401. package/dist/local-dispatch.runtime-CU6Y-BDa.js +0 -9
  1402. package/dist/manager-C3AVKMSl.d.ts +0 -356
  1403. package/dist/manager-CSN9j9hh.d.ts +0 -205
  1404. package/dist/manager.runtime-Da5LiiaQ.js +0 -2714
  1405. package/dist/markdown-to-line-BnESmsY4.js +0 -811
  1406. package/dist/mcp-http-C38KS7On.js +0 -2
  1407. package/dist/mcp-http-CcGhAZcF.js +0 -555
  1408. package/dist/media-understanding-provider-BCz5dVl6.js +0 -339
  1409. package/dist/memory-core-host-engine-storage-sWQlfr8J.d.ts +0 -54
  1410. package/dist/memory-embedding-adapter-BrGY0ecB.d.ts +0 -5
  1411. package/dist/message-actions-CQURSOZH.js +0 -145
  1412. package/dist/message-handler-C2U3bt-X.js +0 -1715
  1413. package/dist/message-handler-CwZfuHhP.js +0 -384
  1414. package/dist/message-handler.preflight-Cosa3kg0.js +0 -1125
  1415. package/dist/message-handler.process-BlKFMYXw.js +0 -1484
  1416. package/dist/migration-hAtbc95i.d.ts +0 -45
  1417. package/dist/model-B8M2deNL.js +0 -74
  1418. package/dist/model-Ck-vNyGd.d.ts +0 -33
  1419. package/dist/model-selection-v2wQWgsT.js +0 -272
  1420. package/dist/models-B7IiQBWY.js +0 -104
  1421. package/dist/models-CnWFsPX6.d.ts +0 -24
  1422. package/dist/models-DMNzBNgt.js +0 -2
  1423. package/dist/models-cli-CQaOg02d.js +0 -256
  1424. package/dist/monitor-Bd9kOezJ.js +0 -1370
  1425. package/dist/monitor-Cy6D6MyS.js +0 -715
  1426. package/dist/monitor-DStY23C4.js +0 -834
  1427. package/dist/monitor-DnF8eltK.js +0 -1657
  1428. package/dist/monitor-DrFJ63I1.js +0 -4377
  1429. package/dist/monitor-J8jOsDaJ.js +0 -60
  1430. package/dist/monitor-auth-DKkbt_CR.js +0 -179
  1431. package/dist/monitor-jp3H9Ri_.js +0 -2
  1432. package/dist/monitor-polling.runtime-DPCAacPc.js +0 -883
  1433. package/dist/monitor-tBNmyf1s.js +0 -2788
  1434. package/dist/monitor-webhook.runtime-BnjEsLRS.js +0 -387
  1435. package/dist/monitor.account-Gh8FuMEq.js +0 -5233
  1436. package/dist/monitor.runtime-Bdh6dxyq.js +0 -2
  1437. package/dist/monitor.webhook-BosT2ylg.js +0 -180
  1438. package/dist/node-cli-sessions-B0_DtIxz.js +0 -1228
  1439. package/dist/onboard-CiTp3HuT.js +0 -733
  1440. package/dist/onboard-helpers-6NgX4RkW.js +0 -251
  1441. package/dist/onboard-helpers-BwxJT_0T.js +0 -6
  1442. package/dist/onboard-remote-CNCFouj7.js +0 -212
  1443. package/dist/onboard-remote-DXzWgH_H.js +0 -2
  1444. package/dist/onboard-skills-Dx58zrXg.js +0 -160
  1445. package/dist/onboard-skills-qaynAMqw.js +0 -2
  1446. package/dist/openai-codex-provider-Bj9cyh4I.d.ts +0 -5
  1447. package/dist/openai-http-Dp0cp01u.js +0 -824
  1448. package/dist/openai-provider-Dm3YkkWf.d.ts +0 -5
  1449. package/dist/openresponses-http-acbxr5UW.js +0 -1173
  1450. package/dist/operations-BZVuEl9E.js +0 -805
  1451. package/dist/outbound-adapter-BKGzT1Rl.js +0 -543
  1452. package/dist/outbound-session-route-mWVuRF9I.js +0 -45
  1453. package/dist/outbound.runtime-BTjY78St.js +0 -2
  1454. package/dist/pairing-challenge-DD0D0sfM.d.ts +0 -87
  1455. package/dist/pi-embedded-CFP2IrYS.js +0 -3796
  1456. package/dist/pi-embedded-D8caT0Nm.js +0 -4
  1457. package/dist/pi-embedded.runtime-eBik36nq.js +0 -4
  1458. package/dist/pi-tools-DOiFN8QJ.js +0 -2413
  1459. package/dist/plan-Cq2-YWkv.js +0 -112
  1460. package/dist/plan-DZacZ3Zv.js +0 -81
  1461. package/dist/plugin-BcNkVMQf.d.ts +0 -17
  1462. package/dist/plugin-app-cache-key-CBK84hKp.js +0 -46
  1463. package/dist/plugin-enabled-CMfz3hfi.js +0 -233
  1464. package/dist/plugin-entry-BS5QKDoz.d.ts +0 -47
  1465. package/dist/plugin-k9ChkvvX.js +0 -12396
  1466. package/dist/plugin-registration-DzPoDboh.js +0 -88
  1467. package/dist/plugin-runtime-BNGhLQ-_.d.ts +0 -117
  1468. package/dist/plugin-service-BynKHNHj.d.ts +0 -24
  1469. package/dist/plugin-service-Ckp9CgP5.js +0 -1229
  1470. package/dist/policy-CBa8yH5k.js +0 -680
  1471. package/dist/policy-Dlam-IbU.js +0 -138
  1472. package/dist/prepare.runtime-B8h04--2.js +0 -732
  1473. package/dist/preview-warnings-DPDK9HPk.js +0 -392
  1474. package/dist/probe-Bts3wK7l.js +0 -682
  1475. package/dist/probe-ByHrOECy.js +0 -47
  1476. package/dist/probe-CXqCx5yV.js +0 -2204
  1477. package/dist/probe-fhhJ0LMx.js +0 -2
  1478. package/dist/program-DfNLP_PI.js +0 -131
  1479. package/dist/prompt-overlay-qKGGXVs-.d.ts +0 -23
  1480. package/dist/provider-CeG5mirD.js +0 -8735
  1481. package/dist/provider-D_TXf9b1.js +0 -152
  1482. package/dist/provider-Fb0fhEC5.js +0 -32
  1483. package/dist/provider-api-key-auth-BIph5btg.d.ts +0 -27
  1484. package/dist/provider-auth-result-BFvMZrH6.d.ts +0 -21
  1485. package/dist/provider-catalog-runtime-Du74RUel.d.ts +0 -23
  1486. package/dist/provider-catalog-shared-B3nN3sf2.d.ts +0 -62
  1487. package/dist/provider-dispatcher-DQ0FP7Oj.js +0 -22
  1488. package/dist/provider-hook-runtime-CRpS8VJ_.d.ts +0 -61
  1489. package/dist/provider-model-shared-GrPEK3SY.d.ts +0 -143
  1490. package/dist/provider-models-iUJVn9QI.d.ts +0 -12
  1491. package/dist/provider-policy-DliVEM__.d.ts +0 -30
  1492. package/dist/provider-registration-BxzmE1yB.d.ts +0 -6
  1493. package/dist/provider-registry-B4AQXjYK.d.ts +0 -8
  1494. package/dist/provider-registry-BHyB46kI.d.ts +0 -30
  1495. package/dist/provider-registry-CnfpUSqh.d.ts +0 -8
  1496. package/dist/provider-runtime-D3j0VBbF.d.ts +0 -359
  1497. package/dist/provider-self-hosted-setup-_11XAmRH.d.ts +0 -74
  1498. package/dist/provider-session.runtime-CIMJ-7ay.js +0 -9
  1499. package/dist/provider-stream-mWxYXsAm.d.ts +0 -140
  1500. package/dist/provider-stream-shared-QayId-fm.d.ts +0 -128
  1501. package/dist/provider-xNaUQ5Lv.js +0 -32
  1502. package/dist/provider.runtime-CGsYbZGk.js +0 -2
  1503. package/dist/providers.runtime-fmZQlSRt.d.ts +0 -25
  1504. package/dist/public-surface-loader-CuVkM64A.js +0 -114
  1505. package/dist/pw-ai-BDGftH9e.js +0 -3029
  1506. package/dist/pw-role-snapshot-C_P091Iv.js +0 -333
  1507. package/dist/reaction-level-DKxiNfWB.js +0 -19
  1508. package/dist/reaction-runtime-api-TY4aPHui.js +0 -116
  1509. package/dist/realtime-transcription-CmRx7wX7.d.ts +0 -43
  1510. package/dist/realtime-transcription-provider-BNca2pAl.js +0 -205
  1511. package/dist/realtime-transcription-provider-Csl2NRiB.d.ts +0 -5
  1512. package/dist/realtime-transcription-provider-CtUTdTS4.d.ts +0 -37
  1513. package/dist/realtime-transcription-provider-DKd69ns6.d.ts +0 -28
  1514. package/dist/realtime-transcription-provider-DPj1VZIg.d.ts +0 -32
  1515. package/dist/realtime-voice-CVgV9cqF.d.ts +0 -333
  1516. package/dist/realtime-voice-provider-CmtxwZon.d.ts +0 -5
  1517. package/dist/register-DLjqO2vR.js +0 -2178
  1518. package/dist/register.agent-FV7a6yzo.js +0 -156
  1519. package/dist/register.configure-DrkSyKW3.js +0 -16
  1520. package/dist/register.crestodian-CQGAa8z2.js +0 -24
  1521. package/dist/register.maintenance-tocHfiS3.js +0 -83
  1522. package/dist/register.onboard-BomHnBGE.js +0 -113
  1523. package/dist/register.runtime-6AmV3Vgs.js +0 -54
  1524. package/dist/register.runtime-CSz0gVBB.d.ts +0 -6
  1525. package/dist/register.setup-ENYtNAA5.js +0 -40
  1526. package/dist/register.subclis-BC6TefAM.js +0 -31
  1527. package/dist/register.subclis-DZdEZgSS.js +0 -3
  1528. package/dist/register.subclis-core-C-EfowrU.js +0 -273
  1529. package/dist/registry-VitXYFE8.d.ts +0 -91
  1530. package/dist/registry-types-C4eAzEgQ.d.ts +0 -392
  1531. package/dist/repair-sequencing-l8dFaytn.js +0 -640
  1532. package/dist/reply-delivery-DdeUWVuk.js +0 -196
  1533. package/dist/reply-runtime-Bd91JEZL.js +0 -11
  1534. package/dist/reply.runtime-l7NTyCh5.js +0 -2
  1535. package/dist/request-BY_4UukN.js +0 -54
  1536. package/dist/resolve-allowlist-C4lmxl4V.js +0 -220
  1537. package/dist/result-fallback-classifier-XORMMp30.js +0 -79
  1538. package/dist/root-help-CTW0Wyrf.js +0 -43
  1539. package/dist/route-dOf1WMkJ.js +0 -469
  1540. package/dist/route-resolution-BddNYZEI.js +0 -274
  1541. package/dist/routes-D0xw72Lf.js +0 -3602
  1542. package/dist/routes-TXSPQFWS.js +0 -2
  1543. package/dist/run-DpvUuaWB.js +0 -1162
  1544. package/dist/run-attempt-Bet0PiSc.js +0 -7704
  1545. package/dist/run-command-C5vMVqMt.js +0 -23
  1546. package/dist/run-command-pNDd7NqP.js +0 -2
  1547. package/dist/run-embedded.runtime-CBZV6YWj.js +0 -4
  1548. package/dist/run-execution-cli.runtime-DTQLV8tA.js +0 -4
  1549. package/dist/run-subagent-registry.runtime-DJCvSdhY.js +0 -2
  1550. package/dist/runtime-CNXeG8vX.js +0 -1287
  1551. package/dist/runtime-DEOSWxv9.js +0 -438
  1552. package/dist/runtime-DbTiSX85.d.ts +0 -17
  1553. package/dist/runtime-api-BCM7T4WV.js +0 -17
  1554. package/dist/runtime-api-BTnMvj8L.js +0 -13
  1555. package/dist/runtime-api-By6LEySM.js +0 -3
  1556. package/dist/runtime-api-Cd0b5LPQ.js +0 -4
  1557. package/dist/runtime-api-CtuDiikz.js +0 -21
  1558. package/dist/runtime-api-DjySILXC.js +0 -13
  1559. package/dist/runtime-api-XJTq_pyQ.js +0 -24
  1560. package/dist/runtime-api-k3v6Q0lb2.d.ts +0 -3151
  1561. package/dist/runtime-api.actions-BmsSg8Ai.js +0 -3
  1562. package/dist/runtime-api.actions-C2-n4QQ5.d.ts +0 -23
  1563. package/dist/runtime-api.monitor-DSk7Pd5H.js +0 -6
  1564. package/dist/runtime-api.send-D3sPncy9.js +0 -4
  1565. package/dist/runtime-api.send-t0FX9tXf.d.ts +0 -38
  1566. package/dist/runtime-api.threads-BK9cB4L1.js +0 -2
  1567. package/dist/runtime-channel--Wjr2ePx.js +0 -150
  1568. package/dist/runtime-channel-WdTa9hHZ.js +0 -2
  1569. package/dist/runtime-embedded-pi.runtime-BNYBvaxo.js +0 -2
  1570. package/dist/runtime-r3jS5wSq.js +0 -6179
  1571. package/dist/runtime-taskflow-DMBY6o56.d.ts +0 -435
  1572. package/dist/sanitize-outbound-D6IBCCpn.js +0 -127
  1573. package/dist/sdk-setup-tools-DcDrd8tW.js +0 -8
  1574. package/dist/secrets-OV1uTwRt.js +0 -113
  1575. package/dist/secrets-cli-llC7t41S.js +0 -149
  1576. package/dist/security-audit-BM_fypcl.js +0 -118
  1577. package/dist/security-audit-CQ2yKgF8.js +0 -122
  1578. package/dist/security-audit.runtime-CRgJUegH.js +0 -2
  1579. package/dist/selection-DkJ7MaPC.js +0 -16157
  1580. package/dist/selection-LeUiOSn0.js +0 -3
  1581. package/dist/send-B5TXXeBz.d.ts +0 -231
  1582. package/dist/send-C0ZHzB6o.js +0 -1631
  1583. package/dist/send-CXL3cM-w.js +0 -192
  1584. package/dist/send-CuDA29HM.js +0 -2
  1585. package/dist/send-D7qhwK7Z.js +0 -143
  1586. package/dist/send-DEMaBWpw.d.ts +0 -105
  1587. package/dist/send.components-BNeg1zrc.js +0 -2
  1588. package/dist/send.components-DwRyC_Hc.js +0 -500
  1589. package/dist/send.runtime-DBIUdxpO.js +0 -2
  1590. package/dist/send.types-DywwIqYK.d.ts +0 -160
  1591. package/dist/server-DGcm6Swr.js +0 -24
  1592. package/dist/server-DPvleC-x.js +0 -73
  1593. package/dist/server-context-BWBM4f-_.js +0 -955
  1594. package/dist/server-context-CFgwcLlu.js +0 -2
  1595. package/dist/server-cron-C1kChsjw.js +0 -2989
  1596. package/dist/server-cron-CS1EP5Li.js +0 -2
  1597. package/dist/server-methods-BcIlC8iD.js +0 -16494
  1598. package/dist/server-node-events-BAZCvZOy.js +0 -596
  1599. package/dist/server-plugin-bootstrap-cQUi21Uu.js +0 -70
  1600. package/dist/server-plugins-BRFre223.js +0 -432
  1601. package/dist/server-reload-handlers-DfcsAX-5.js +0 -714
  1602. package/dist/server-restart-sentinel-CFX5zQkM.js +0 -747
  1603. package/dist/server-restart-sentinel-DUvs77Q0.js +0 -2
  1604. package/dist/server-runtime-services-0vm5XmvV.js +0 -2
  1605. package/dist/server-runtime-services-CLz_vkLy.js +0 -267
  1606. package/dist/server-startup-plugins-CPXqqIRV.js +0 -113
  1607. package/dist/server-startup-post-attach-BkNe1Z6g.js +0 -716
  1608. package/dist/server-ws-runtime-rcJeRHFO.js +0 -349
  1609. package/dist/server.impl-a6knQ-N8.js +0 -2586
  1610. package/dist/service-H-BcELwS.js +0 -1446
  1611. package/dist/session-binding-BQliaqL7.js +0 -2
  1612. package/dist/session-binding-DPvZil_F.js +0 -219
  1613. package/dist/session-kill-http-DJMipluP.js +0 -121
  1614. package/dist/session-reset-service-Dn9FU5wA.js +0 -625
  1615. package/dist/session-route-JLWNmJxD.js +0 -93
  1616. package/dist/session-status.runtime-D0OptHcW.js +0 -2
  1617. package/dist/session-subagent-reactivation.runtime-BUmf1vNS.js +0 -2
  1618. package/dist/session-tab-registry-CoBvJVRj.js +0 -521
  1619. package/dist/sessions-history-http-B8CkLDAn.js +0 -430
  1620. package/dist/sessions.runtime-DbNqS_Gy.js +0 -2
  1621. package/dist/setup-CTZUUn1s.js +0 -586
  1622. package/dist/setup-D6fXOEjD.js +0 -2
  1623. package/dist/setup-api-DLPEXHCv.js +0 -29
  1624. package/dist/setup-core-DLXb29jm.js +0 -174
  1625. package/dist/setup-onboard-configure-help-fast-path-CrcZmKPI.js +0 -64
  1626. package/dist/setup-surface--Cct-rCt.js +0 -288
  1627. package/dist/setup-surface-CW8YN207.js +0 -320
  1628. package/dist/setup-surface-DIxcfqD0.js +0 -221
  1629. package/dist/setup-surface-IJ6kmKgi.js +0 -405
  1630. package/dist/setup.finalize-gWpWnCCk.js +0 -582
  1631. package/dist/setup.gateway-config-D_DaSfpW.js +0 -281
  1632. package/dist/setup.migration-import-CYZjCkle.js +0 -2
  1633. package/dist/setup.migration-import-CZJU4scH.js +0 -200
  1634. package/dist/shared-Bp_Fgv6B.js +0 -121
  1635. package/dist/shared-CLqPY0yv.d.ts +0 -115
  1636. package/dist/shared-client-OQdg8NGC.js +0 -629
  1637. package/dist/shared-client-dk1ICVBm.js +0 -2
  1638. package/dist/side-question-CbhRW3UI.js +0 -683
  1639. package/dist/simple-completion-runtime-XIF65b47.d.ts +0 -73
  1640. package/dist/skill-tool-dispatch.runtime-EcycYnWE.js +0 -143
  1641. package/dist/slash-state-BoX6WwB5.js +0 -2166
  1642. package/dist/speech-CvkJG5Mt.d.ts +0 -47
  1643. package/dist/speech-core-MG83lB3i.d.ts +0 -36
  1644. package/dist/speech-provider-1EN9hT-3.d.ts +0 -8
  1645. package/dist/speech-provider-67ebyEcs.js +0 -184
  1646. package/dist/speech-provider-B6tb45De.d.ts +0 -5
  1647. package/dist/speech-provider-C74wAyBX.d.ts +0 -5
  1648. package/dist/speech-provider-CYJoZZpj.d.ts +0 -8
  1649. package/dist/speech-provider-DavEMdKC.d.ts +0 -34
  1650. package/dist/speech-provider-DvFtveg6.d.ts +0 -5
  1651. package/dist/src-CbfOifft.js +0 -4256
  1652. package/dist/startup-context-YF24NARp.js +0 -313
  1653. package/dist/status-message-CcrZdfCO.js +0 -484
  1654. package/dist/status-message.runtime-Cptt1EPV.js +0 -6
  1655. package/dist/status-subagents.runtime-v2eijc4R.js +0 -18
  1656. package/dist/status-text-BWwar3Yc.js +0 -296
  1657. package/dist/status-tn3uQDY7.js +0 -73
  1658. package/dist/status.runtime-BFjTHLiQ.js +0 -2
  1659. package/dist/sticker-cache-Cs7LV_3a.js +0 -206
  1660. package/dist/sticker-vision.runtime-CyPMpoCs.js +0 -17
  1661. package/dist/stream-1rWKMSqV.d.ts +0 -16
  1662. package/dist/stream-Bk9TnoRV.d.ts +0 -10
  1663. package/dist/stream-DZeY9rhs.d.ts +0 -120
  1664. package/dist/stream-DgCoKjcL.d.ts +0 -19
  1665. package/dist/stream-exnufPSG.d.ts +0 -5
  1666. package/dist/stream-wrappers-D2EuY1tP.d.ts +0 -21
  1667. package/dist/subagent-announce-CRjGGxSB.js +0 -354
  1668. package/dist/subagent-announce-delivery-CbfRRdwt.js +0 -958
  1669. package/dist/subagent-control-VTsWynTB.js +0 -508
  1670. package/dist/subagent-hooks-BB__aHul.js +0 -2
  1671. package/dist/subagent-hooks-Cb5fJ2H0.js +0 -146
  1672. package/dist/subagent-hooks-CwVBMhp_.js +0 -2
  1673. package/dist/subagent-hooks-Cx9_GAMF.js +0 -116
  1674. package/dist/subagent-hooks-DOJhvTDx.js +0 -230
  1675. package/dist/subagent-hooks-DUMqhB3r.js +0 -2
  1676. package/dist/subagent-hooks-api-BDGmCxB2.js +0 -22
  1677. package/dist/subagent-hooks-api-CcTdPqP1.js +0 -23
  1678. package/dist/subagent-hooks-api-D18tQta6.js +0 -23
  1679. package/dist/subagent-orphan-recovery-6bNIX25Q.js +0 -352
  1680. package/dist/subagent-registry-DokIxoQ6.js +0 -2351
  1681. package/dist/subagent-registry-tlyJE0hN.js +0 -3
  1682. package/dist/subagent-session-cleanup-BWHQ6rcm.js +0 -525
  1683. package/dist/subagent-spawn-BUdUAwoc.js +0 -1164
  1684. package/dist/target-id-CI1U3MSO.js +0 -107
  1685. package/dist/targets-CbBORUXB.d.ts +0 -10
  1686. package/dist/targets-CgmlXrhv.js +0 -44
  1687. package/dist/targets-D-jSrLUN.js +0 -19
  1688. package/dist/targets-DPDu8x6v.js +0 -19
  1689. package/dist/targets-D_fXvxrg.d.ts +0 -10
  1690. package/dist/testing-D-48HuIK.js +0 -267
  1691. package/dist/thinking-policy-CY16OlCs.d.ts +0 -5
  1692. package/dist/thread-bindings-B9J0nGG7.js +0 -232
  1693. package/dist/thread-bindings-BByWvFZq.js +0 -8
  1694. package/dist/thread-bindings-Cxjm2mLg.js +0 -571
  1695. package/dist/thread-bindings-DQWmglaO.js +0 -228
  1696. package/dist/thread-bindings.discord-api-DWWDvMgL.js +0 -187
  1697. package/dist/thread-bindings.manager-CQW6bNs5.js +0 -2
  1698. package/dist/thread-bindings.manager-DpBYBs9s.js +0 -536
  1699. package/dist/thread-lifecycle-PpB8gTx1.js +0 -1614
  1700. package/dist/token-CBy6YYM_.js +0 -134
  1701. package/dist/tool-BCHcwX9p.js +0 -139
  1702. package/dist/tool-actions.runtime-Cwxr2NmB.js +0 -534
  1703. package/dist/tool-plugin-DHZYdwyJ.d.ts +0 -77
  1704. package/dist/tool-resolution-DQpf531V.js +0 -149
  1705. package/dist/tool-split-ClZW5eN5.d.ts +0 -19
  1706. package/dist/tools-effective-inventory-BHxeIAri.js +0 -204
  1707. package/dist/tools-invoke-http-Bv2LES5Q.js +0 -67
  1708. package/dist/tools-invoke-shared-Cf_ifab9.js +0 -200
  1709. package/dist/transport-stream-D_pZ9Qwv.d.ts +0 -42
  1710. package/dist/tts-CjTcF0YS.js +0 -66
  1711. package/dist/tui-D3_WpyGV.js +0 -2
  1712. package/dist/tui-Y8IezK6P.js +0 -4709
  1713. package/dist/tui-backend-BIJbrfDK.js +0 -256
  1714. package/dist/tui-cli-YVLQJGLU.js +0 -37
  1715. package/dist/types-CnKegQ41.d.ts +0 -786
  1716. package/dist/types-Dyry5PA_2.d.ts +0 -3650
  1717. package/dist/types.public-AUFnQi6j.d.ts +0 -70
  1718. package/dist/update-cli-B7MOXy4Y.js +0 -3664
  1719. package/dist/video-generation-runtime-Cc8klYNS.d.ts +0 -21
  1720. package/dist/video-model-catalog-XG42YlJS.d.ts +0 -16
  1721. package/dist/vision-tools-kEwnV2UO.js +0 -1409
  1722. package/dist/web-search-DH1W_lfx.js +0 -62
  1723. package/dist/web-search-provider.runtime-BX9TezsY.js +0 -328
  1724. package/dist/web-search-provider.runtime-BhRjYeyp.js +0 -2
  1725. package/dist/webhook-targets--wGRjxMd.d.ts +0 -99
  1726. package/dist/xai-oauth-BZQ--94U.js +0 -479
  1727. package/dist/xai-user-agent-SpZaKTGR.js +0 -32
  1728. package/dist/zod-schema.core-BhLPa6BF.d.ts +0 -166
  1729. /package/dist/{accounts-CqgATPC-2.d.ts → accounts-CqgATPC-.d.ts} +0 -0
  1730. /package/dist/{acp-runtime-backend-DU5R8SXu.js → acp-runtime-backend-DHyoMnZY.js} +0 -0
  1731. /package/dist/{channel-actions-Ce2Sna1a.js → channel-actions-B5OPAiNK.js} +0 -0
  1732. /package/dist/{command-status-runtime-Cj5vB8lc.js → command-status-runtime-BqQvv1BR.js} +0 -0
  1733. /package/dist/{delegate-BeKeQwNR.js → delegate-B1QIF1j8.js} +0 -0
  1734. /package/dist/{dispatch-acp-DXlzEM_A.js → dispatch-acp-Ch9ZmM4b.js} +0 -0
  1735. /package/dist/{heartbeat-runner-Dncw_0KS.js → heartbeat-runner-BkgH94IS.js} +0 -0
  1736. /package/dist/{library-6cU4n1-c.js → library-DP1oARlw.js} +0 -0
  1737. /package/dist/{run-executor.runtime-DjwaphFT.js → run-executor.runtime-Czk4Lxkj.js} +0 -0
  1738. /package/dist/{video-generation-core-BVVgDSdq.d.ts → server-plugins-BVVgDSdq.d.ts} +0 -0
  1739. /package/dist/{shared-BE5PSFeb.js → shared-SiM6kZAE.js} +0 -0
  1740. /package/dist/{model-ref-mtPT-mlX.d.ts → video-generation-core-mtPT-mlX.d.ts} +0 -0
@@ -1,3029 +0,0 @@
1
- import { a as normalizeLowercaseStringOrEmpty, c as normalizeOptionalString$1, f as readStringValue } from "./string-coerce-DyL154ka.js";
2
- import { i as formatErrorMessage } from "./errors-DCgU20d6.js";
3
- import { O as sanitizeUntrustedFileName, g as resolveStrictExistingPathsWithinRoot, r as writeExternalFileWithinRoot } from "./fs-safe-BFN3ftAo.js";
4
- import { n as resolvePreferredDaoCoreTmpDir } from "./tmp-daocore-dir-kDRsiZXM.js";
5
- import { t as SsrFBlockedError } from "./ssrf-BNF8aODC.js";
6
- import "./string-coerce-runtime-DcopKqDR.js";
7
- import "./sdk-security-runtime-DviHn_Rh.js";
8
- import { C as BrowserTabNotFoundError, J as withNoProxyForCdpUrl, c as isWebSocketUrl, i as fetchJson, l as normalizeCdpHttpBaseForJsonEndpoints, n as assertCdpEndpointAllowed, o as getHeadersWithAuth, p as withCdpSocket, t as appendCdpPath } from "./cdp.helpers-_xFkZwAD.js";
9
- import { a as DEFAULT_DOWNLOAD_DIR, o as DEFAULT_TRACE_DIR, s as DEFAULT_UPLOAD_DIR } from "./config-B_HanwOV.js";
10
- import "./tmp-daocore-dir-DsVprDw0.js";
11
- import "./errors-Bk9OaPBm.js";
12
- import { C as assertBrowserNavigationRedirectChainAllowed, E as withBrowserNavigationPolicy, S as assertBrowserNavigationAllowed, f as formatAriaSnapshot, l as AX_REF_PATTERN, p as normalizeCdpWsUrl, t as getChromeWebSocketUrl, w as assertBrowserNavigationResultAllowed, x as InvalidBrowserNavigationUrlError, y as ensureOutputDirectory } from "./chrome-CgGY9FsG.js";
13
- import { c as ACT_MAX_CLICK_DELAY_MS, d as resolveActInteractionTimeoutMs, f as resolveActWaitTimeoutMs, i as parseRoleRef, l as ACT_MAX_WAIT_TIME_MS, n as buildRoleSnapshotFromAriaSnapshot, p as matchBrowserUrlPattern, r as getRoleSnapshotStats, t as buildRoleSnapshotFromAiSnapshot } from "./pw-role-snapshot-C_P091Iv.js";
14
- import { n as markPwAiLoaded } from "./pw-ai-state-DL7FXLI8.js";
15
- import { t as isSelectableCdpBrowserTarget } from "./cdp-target-filter-CaIsrb0G.js";
16
- import { createRequire } from "node:module";
17
- import path from "node:path";
18
- import crypto from "node:crypto";
19
- //#region extensions/browser/src/browser/output-atomic.ts
20
- async function writeViaSiblingTempPath(params) {
21
- await ensureOutputDirectory(params.rootDir);
22
- await writeExternalFileWithinRoot({
23
- rootDir: params.rootDir,
24
- path: params.targetPath,
25
- write: params.writeTemp
26
- });
27
- }
28
- const playwrightCore = createRequire(import.meta.url)("playwright-core");
29
- //#endregion
30
- //#region extensions/browser/src/browser/pw-session.page-cdp.ts
31
- const BROWSER_REF_MARKER_ATTRIBUTE = "data-daocore-browser-ref";
32
- async function withPlaywrightPageCdpSession(page, fn) {
33
- const session = await page.context().newCDPSession(page);
34
- try {
35
- return await fn(session);
36
- } finally {
37
- await session.detach().catch(() => {});
38
- }
39
- }
40
- async function withPageScopedCdpClient(opts) {
41
- return await withPlaywrightPageCdpSession(opts.page, async (session) => {
42
- return await opts.fn((method, params) => session.send(method, params));
43
- });
44
- }
45
- async function markBackendDomRefsOnPage(opts) {
46
- await opts.page.locator(`[${BROWSER_REF_MARKER_ATTRIBUTE}]`).evaluateAll((elements, attr) => {
47
- for (const element of elements) if (element instanceof Element) element.removeAttribute(attr);
48
- }, BROWSER_REF_MARKER_ATTRIBUTE).catch(() => {});
49
- const refs = opts.refs.filter((entry) => /^ax\d+$/.test(entry.ref) && Number.isFinite(entry.backendDOMNodeId) && Math.floor(entry.backendDOMNodeId) > 0);
50
- const marked = /* @__PURE__ */ new Set();
51
- if (!refs.length) return marked;
52
- return await withPlaywrightPageCdpSession(opts.page, async (session) => {
53
- const send = async (method, params) => await session.send(method, params);
54
- await send("DOM.enable").catch(() => {});
55
- const backendNodeIds = [...new Set(refs.map((entry) => Math.floor(entry.backendDOMNodeId)))];
56
- const pushed = await send("DOM.pushNodesByBackendIdsToFrontend", { backendNodeIds }).catch(() => ({}));
57
- const nodeIds = Array.isArray(pushed.nodeIds) ? pushed.nodeIds : [];
58
- const nodeIdByBackendId = /* @__PURE__ */ new Map();
59
- for (let index = 0; index < backendNodeIds.length; index += 1) {
60
- const backendNodeId = backendNodeIds[index];
61
- const nodeId = nodeIds[index];
62
- if (backendNodeId && typeof nodeId === "number" && nodeId > 0) nodeIdByBackendId.set(backendNodeId, nodeId);
63
- }
64
- for (const entry of refs) {
65
- const nodeId = nodeIdByBackendId.get(Math.floor(entry.backendDOMNodeId));
66
- if (!nodeId) continue;
67
- try {
68
- await send("DOM.setAttributeValue", {
69
- nodeId,
70
- name: BROWSER_REF_MARKER_ATTRIBUTE,
71
- value: entry.ref
72
- });
73
- marked.add(entry.ref);
74
- } catch {}
75
- }
76
- return marked;
77
- });
78
- }
79
- //#endregion
80
- //#region extensions/browser/src/browser/pw-session.ts
81
- const { chromium } = playwrightCore;
82
- var BrowserObservedDialogBlockedError = class extends Error {
83
- constructor(browserState) {
84
- super("Browser action blocked by a modal dialog.");
85
- this.name = "BrowserObservedDialogBlockedError";
86
- this.browserState = browserState;
87
- }
88
- };
89
- function isBrowserObservedDialogBlockedError(err) {
90
- return err instanceof BrowserObservedDialogBlockedError;
91
- }
92
- const pageStates = /* @__PURE__ */ new WeakMap();
93
- const contextStates = /* @__PURE__ */ new WeakMap();
94
- const observedContexts = /* @__PURE__ */ new WeakSet();
95
- const observedPages = /* @__PURE__ */ new WeakSet();
96
- const roleRefsByTarget = /* @__PURE__ */ new Map();
97
- const MAX_ROLE_REFS_CACHE = 50;
98
- const MAX_CONSOLE_MESSAGES = 500;
99
- const MAX_PAGE_ERRORS = 200;
100
- const MAX_NETWORK_REQUESTS = 500;
101
- const MAX_RECENT_DIALOGS = 20;
102
- const OBSERVED_DIALOG_TIMEOUT_MS = 12e4;
103
- const cachedByCdpUrl = /* @__PURE__ */ new Map();
104
- const connectingByCdpUrl = /* @__PURE__ */ new Map();
105
- const blockedTargetsByCdpUrl = /* @__PURE__ */ new Set();
106
- const blockedPageRefsByCdpUrl = /* @__PURE__ */ new Map();
107
- function normalizeCdpUrl(raw) {
108
- return raw.replace(/\/$/, "");
109
- }
110
- function buildManagedDownloadPath(fileName) {
111
- const id = crypto.randomUUID();
112
- const safeName = sanitizeUntrustedFileName(fileName, "download.bin");
113
- return path.join(DEFAULT_DOWNLOAD_DIR, `${id}-${safeName}`);
114
- }
115
- function hasCachedPlaywrightBrowserConnection(cdpUrl) {
116
- return cachedByCdpUrl.has(normalizeCdpUrl(cdpUrl));
117
- }
118
- function isRecoverablePlaywrightDisconnectError(err) {
119
- const message = formatErrorMessage(err).toLowerCase();
120
- return message.includes("target page, context or browser has been closed") || message.includes("browser has been closed") || message.includes("browser disconnected") || message.includes("target closed") || message.includes("connection closed") || message.includes("websocket closed") || message.includes("cdp socket closed");
121
- }
122
- function isRecoverableStalePageSelectionError(err, reusedCachedBrowser) {
123
- if (!reusedCachedBrowser) return false;
124
- if (err instanceof Error && err.message.includes("No pages available in the connected browser.")) return true;
125
- if (err instanceof BrowserTabNotFoundError) return true;
126
- return (err instanceof Error ? err.message : formatErrorMessage(err)).toLowerCase().includes("tab not found");
127
- }
128
- function findNetworkRequestById(state, id) {
129
- for (let i = state.requests.length - 1; i >= 0; i -= 1) {
130
- const candidate = state.requests[i];
131
- if (candidate && candidate.id === id) return candidate;
132
- }
133
- }
134
- function appendRecentDialog(state, record) {
135
- state.recentDialogs.push(record);
136
- while (state.recentDialogs.length > MAX_RECENT_DIALOGS) state.recentDialogs.shift();
137
- }
138
- function serializeDialogRecord(dialog) {
139
- return {
140
- id: dialog.id,
141
- type: dialog.type,
142
- message: dialog.message,
143
- ...dialog.defaultValue !== void 0 ? { defaultValue: dialog.defaultValue } : {},
144
- openedAt: dialog.openedAt,
145
- ...dialog.closedAt !== void 0 ? { closedAt: dialog.closedAt } : {},
146
- ...dialog.closedBy !== void 0 ? { closedBy: dialog.closedBy } : {}
147
- };
148
- }
149
- function serializePendingDialog(dialog) {
150
- return serializeDialogRecord(dialog);
151
- }
152
- function serializeObservedBrowserState(state) {
153
- return { dialogs: {
154
- pending: state.pendingDialogs.map(serializePendingDialog),
155
- recent: state.recentDialogs.map(serializeDialogRecord)
156
- } };
157
- }
158
- function clearArmedDialogResponse(state) {
159
- if (state.armedDialogResponse?.timer) clearTimeout(state.armedDialogResponse.timer);
160
- state.armedDialogResponse = void 0;
161
- }
162
- function abortActionsBlockedByDialog(state) {
163
- if (state.dialogAbortControllers.size === 0) return;
164
- const err = new BrowserObservedDialogBlockedError(serializeObservedBrowserState(state));
165
- for (const controller of state.dialogAbortControllers) if (!controller.signal.aborted) controller.abort(err);
166
- state.dialogAbortControllers.clear();
167
- }
168
- function isNoDialogShowingError(err) {
169
- return (err instanceof Error ? err.message : String(err)).toLowerCase().includes("no dialog is showing");
170
- }
171
- async function settleObservedDialog(params) {
172
- const { state, pending } = params;
173
- state.pendingDialogs = state.pendingDialogs.filter((dialog) => dialog.id !== pending.id);
174
- let closedBy = params.closedBy;
175
- try {
176
- if (params.accept) await pending.dialog.accept(params.promptText);
177
- else await pending.dialog.dismiss();
178
- } catch (err) {
179
- if (!isNoDialogShowingError(err)) {
180
- if (params.closedBy === "agent") state.pendingDialogs.push(pending);
181
- throw err;
182
- }
183
- closedBy = "remote";
184
- }
185
- const record = {
186
- id: pending.id,
187
- type: pending.type,
188
- message: pending.message,
189
- ...pending.defaultValue !== void 0 ? { defaultValue: pending.defaultValue } : {},
190
- openedAt: pending.openedAt,
191
- closedAt: (/* @__PURE__ */ new Date()).toISOString(),
192
- closedBy
193
- };
194
- appendRecentDialog(state, record);
195
- return record;
196
- }
197
- function observeDialog(pageState, dialog) {
198
- pageState.nextObservedDialogId += 1;
199
- const type = dialog.type();
200
- const defaultValue = dialog.defaultValue();
201
- const pending = {
202
- id: `d${pageState.nextObservedDialogId}`,
203
- type,
204
- message: dialog.message(),
205
- openedAt: (/* @__PURE__ */ new Date()).toISOString(),
206
- dialog,
207
- ...type === "prompt" ? { defaultValue } : {}
208
- };
209
- pageState.pendingDialogs.push(pending);
210
- const armed = pageState.armedDialogResponse;
211
- if (armed && armed.expiresAt >= Date.now()) {
212
- clearArmedDialogResponse(pageState);
213
- settleObservedDialog({
214
- state: pageState,
215
- pending,
216
- accept: armed.accept,
217
- ...armed.promptText !== void 0 ? { promptText: armed.promptText } : {},
218
- closedBy: "armed"
219
- }).catch(() => {});
220
- return;
221
- }
222
- if (armed) clearArmedDialogResponse(pageState);
223
- abortActionsBlockedByDialog(pageState);
224
- }
225
- function targetKey(cdpUrl, targetId) {
226
- return `${normalizeCdpUrl(cdpUrl)}::${targetId}`;
227
- }
228
- function roleRefsKey(cdpUrl, targetId) {
229
- return targetKey(cdpUrl, targetId);
230
- }
231
- function isBlockedTarget(cdpUrl, targetId) {
232
- const normalizedTargetId = normalizeOptionalString$1(targetId) ?? "";
233
- if (!normalizedTargetId) return false;
234
- return blockedTargetsByCdpUrl.has(targetKey(cdpUrl, normalizedTargetId));
235
- }
236
- function markTargetBlocked(cdpUrl, targetId) {
237
- const normalizedTargetId = normalizeOptionalString$1(targetId) ?? "";
238
- if (!normalizedTargetId) return;
239
- blockedTargetsByCdpUrl.add(targetKey(cdpUrl, normalizedTargetId));
240
- }
241
- function clearBlockedTarget(cdpUrl, targetId) {
242
- const normalizedTargetId = normalizeOptionalString$1(targetId) ?? "";
243
- if (!normalizedTargetId) return;
244
- blockedTargetsByCdpUrl.delete(targetKey(cdpUrl, normalizedTargetId));
245
- }
246
- function clearBlockedTargetsForCdpUrl(cdpUrl) {
247
- if (!cdpUrl) {
248
- blockedTargetsByCdpUrl.clear();
249
- return;
250
- }
251
- const prefix = `${normalizeCdpUrl(cdpUrl)}::`;
252
- for (const key of blockedTargetsByCdpUrl) if (key.startsWith(prefix)) blockedTargetsByCdpUrl.delete(key);
253
- }
254
- function blockedPageRefsForCdpUrl(cdpUrl) {
255
- const normalized = normalizeCdpUrl(cdpUrl);
256
- const existing = blockedPageRefsByCdpUrl.get(normalized);
257
- if (existing) return existing;
258
- const created = /* @__PURE__ */ new WeakSet();
259
- blockedPageRefsByCdpUrl.set(normalized, created);
260
- return created;
261
- }
262
- function isBlockedPageRef(cdpUrl, page) {
263
- return blockedPageRefsByCdpUrl.get(normalizeCdpUrl(cdpUrl))?.has(page) ?? false;
264
- }
265
- function markPageRefBlocked(cdpUrl, page) {
266
- blockedPageRefsForCdpUrl(cdpUrl).add(page);
267
- }
268
- function clearBlockedPageRefsForCdpUrl(cdpUrl) {
269
- if (!cdpUrl) {
270
- blockedPageRefsByCdpUrl.clear();
271
- return;
272
- }
273
- blockedPageRefsByCdpUrl.delete(normalizeCdpUrl(cdpUrl));
274
- }
275
- function clearBlockedPageRef(cdpUrl, page) {
276
- blockedPageRefsByCdpUrl.get(normalizeCdpUrl(cdpUrl))?.delete(page);
277
- }
278
- function takeCachedPlaywrightBrowserConnection(cdpUrl) {
279
- const normalized = normalizeCdpUrl(cdpUrl);
280
- const cur = cachedByCdpUrl.get(normalized);
281
- cachedByCdpUrl.delete(normalized);
282
- connectingByCdpUrl.delete(normalized);
283
- if (!cur) return null;
284
- if (cur.onDisconnected && typeof cur.browser.off === "function") cur.browser.off("disconnected", cur.onDisconnected);
285
- return cur;
286
- }
287
- function evictStalePlaywrightBrowserConnection(cdpUrl) {
288
- takeCachedPlaywrightBrowserConnection(cdpUrl)?.browser.close().catch(() => {});
289
- }
290
- function hasBlockedTargetsForCdpUrl(cdpUrl) {
291
- const prefix = `${normalizeCdpUrl(cdpUrl)}::`;
292
- for (const key of blockedTargetsByCdpUrl) if (key.startsWith(prefix)) return true;
293
- return false;
294
- }
295
- var BlockedBrowserTargetError = class extends Error {
296
- constructor() {
297
- super("Browser target is unavailable after SSRF policy blocked its navigation.");
298
- this.name = "BlockedBrowserTargetError";
299
- }
300
- };
301
- function rememberRoleRefsForTarget(opts) {
302
- const targetId = normalizeOptionalString$1(opts.targetId) ?? "";
303
- if (!targetId) return;
304
- roleRefsByTarget.set(roleRefsKey(opts.cdpUrl, targetId), {
305
- refs: opts.refs,
306
- ...opts.frameSelector ? { frameSelector: opts.frameSelector } : {},
307
- ...opts.mode ? { mode: opts.mode } : {}
308
- });
309
- while (roleRefsByTarget.size > MAX_ROLE_REFS_CACHE) {
310
- const first = roleRefsByTarget.keys().next();
311
- if (first.done) break;
312
- roleRefsByTarget.delete(first.value);
313
- }
314
- }
315
- function storeRoleRefsForTarget(opts) {
316
- const state = ensurePageState(opts.page);
317
- state.roleRefs = opts.refs;
318
- state.roleRefsFrameSelector = opts.frameSelector;
319
- state.roleRefsMode = opts.mode;
320
- const targetId = normalizeOptionalString$1(opts.targetId);
321
- if (!targetId) return;
322
- rememberRoleRefsForTarget({
323
- cdpUrl: opts.cdpUrl,
324
- targetId,
325
- refs: opts.refs,
326
- frameSelector: opts.frameSelector,
327
- mode: opts.mode
328
- });
329
- }
330
- function restoreRoleRefsForTarget(opts) {
331
- const targetId = normalizeOptionalString$1(opts.targetId) ?? "";
332
- if (!targetId) return;
333
- const cached = roleRefsByTarget.get(roleRefsKey(opts.cdpUrl, targetId));
334
- if (!cached) return;
335
- const state = ensurePageState(opts.page);
336
- if (state.roleRefs) return;
337
- state.roleRefs = cached.refs;
338
- state.roleRefsFrameSelector = cached.frameSelector;
339
- state.roleRefsMode = cached.mode;
340
- }
341
- function ensurePageState(page) {
342
- const existing = pageStates.get(page);
343
- if (existing) return existing;
344
- const state = {
345
- console: [],
346
- errors: [],
347
- requests: [],
348
- requestIds: /* @__PURE__ */ new WeakMap(),
349
- nextRequestId: 0,
350
- armIdUpload: 0,
351
- armIdDownload: 0,
352
- downloadWaiterDepth: 0,
353
- nextObservedDialogId: 0,
354
- pendingDialogs: [],
355
- recentDialogs: [],
356
- dialogAbortControllers: /* @__PURE__ */ new Set()
357
- };
358
- pageStates.set(page, state);
359
- if (!observedPages.has(page)) {
360
- observedPages.add(page);
361
- page.on("console", (msg) => {
362
- const entry = {
363
- type: msg.type(),
364
- text: msg.text(),
365
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
366
- location: msg.location()
367
- };
368
- state.console.push(entry);
369
- if (state.console.length > MAX_CONSOLE_MESSAGES) state.console.shift();
370
- });
371
- page.on("pageerror", (err) => {
372
- state.errors.push({
373
- message: err.message || String(err),
374
- name: err.name || void 0,
375
- stack: err.stack || void 0,
376
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
377
- });
378
- if (state.errors.length > MAX_PAGE_ERRORS) state.errors.shift();
379
- });
380
- page.on("request", (req) => {
381
- state.nextRequestId += 1;
382
- const id = `r${state.nextRequestId}`;
383
- state.requestIds.set(req, id);
384
- state.requests.push({
385
- id,
386
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
387
- method: req.method(),
388
- url: req.url(),
389
- resourceType: req.resourceType()
390
- });
391
- if (state.requests.length > MAX_NETWORK_REQUESTS) state.requests.shift();
392
- });
393
- page.on("response", (resp) => {
394
- const req = resp.request();
395
- const id = state.requestIds.get(req);
396
- if (!id) return;
397
- const rec = findNetworkRequestById(state, id);
398
- if (!rec) return;
399
- rec.status = resp.status();
400
- rec.ok = resp.ok();
401
- });
402
- page.on("requestfailed", (req) => {
403
- const id = state.requestIds.get(req);
404
- if (!id) return;
405
- const rec = findNetworkRequestById(state, id);
406
- if (!rec) return;
407
- rec.failureText = req.failure()?.errorText;
408
- rec.ok = false;
409
- });
410
- page.on("dialog", (dialog) => {
411
- observeDialog(state, dialog);
412
- });
413
- page.on("download", (download) => {
414
- if (state.downloadWaiterDepth > 0) return;
415
- const managedPath = buildManagedDownloadPath(sanitizeUntrustedFileName(download.suggestedFilename?.() || "download.bin", "download.bin"));
416
- const managedSave = (async () => {
417
- await writeViaSiblingTempPath({
418
- rootDir: DEFAULT_DOWNLOAD_DIR,
419
- targetPath: managedPath,
420
- writeTemp: async (tempPath) => {
421
- await download.saveAs?.(tempPath);
422
- }
423
- });
424
- return managedPath;
425
- })();
426
- managedSave.catch(() => {});
427
- download.path = async () => await managedSave;
428
- });
429
- page.on("close", () => {
430
- clearArmedDialogResponse(state);
431
- for (const controller of state.dialogAbortControllers) if (!controller.signal.aborted) controller.abort(/* @__PURE__ */ new Error("Page closed before browser action completed."));
432
- state.dialogAbortControllers.clear();
433
- state.pendingDialogs = [];
434
- pageStates.delete(page);
435
- observedPages.delete(page);
436
- });
437
- }
438
- return state;
439
- }
440
- function getObservedBrowserStateForPage(page) {
441
- return serializeObservedBrowserState(ensurePageState(page));
442
- }
443
- async function getObservedBrowserStateViaPlaywright(opts) {
444
- return getObservedBrowserStateForPage(await getPageForTargetId(opts));
445
- }
446
- function resolvePendingDialogForResponse(params) {
447
- const dialogId = normalizeOptionalString$1(params.dialogId);
448
- if (dialogId) {
449
- const found = params.state.pendingDialogs.find((dialog) => dialog.id === dialogId);
450
- if (found) return found;
451
- throw new Error(`Dialog "${dialogId}" is not pending.`);
452
- }
453
- if (params.state.pendingDialogs.length === 1) return params.state.pendingDialogs[0];
454
- if (params.state.pendingDialogs.length > 1) throw new Error("Multiple dialogs are pending; pass dialogId.");
455
- throw new Error("No dialog is pending.");
456
- }
457
- async function respondToObservedDialogOnPage(opts) {
458
- const state = ensurePageState(opts.page);
459
- return await settleObservedDialog({
460
- state,
461
- pending: resolvePendingDialogForResponse({
462
- state,
463
- ...opts.dialogId !== void 0 ? { dialogId: opts.dialogId } : {}
464
- }),
465
- accept: opts.accept,
466
- ...opts.promptText !== void 0 ? { promptText: opts.promptText } : {},
467
- closedBy: opts.closedBy ?? "agent"
468
- });
469
- }
470
- async function respondToObservedDialogViaPlaywright(opts) {
471
- return await respondToObservedDialogOnPage({
472
- page: await getPageForTargetId(opts),
473
- accept: opts.accept,
474
- ...opts.dialogId !== void 0 ? { dialogId: opts.dialogId } : {},
475
- ...opts.promptText !== void 0 ? { promptText: opts.promptText } : {}
476
- });
477
- }
478
- function markObservedDialogsHandledRemotelyForPage(page) {
479
- const state = ensurePageState(page);
480
- const pending = state.pendingDialogs.splice(0);
481
- const closedAt = (/* @__PURE__ */ new Date()).toISOString();
482
- for (const dialog of pending) appendRecentDialog(state, {
483
- id: dialog.id,
484
- type: dialog.type,
485
- message: dialog.message,
486
- ...dialog.defaultValue !== void 0 ? { defaultValue: dialog.defaultValue } : {},
487
- openedAt: dialog.openedAt,
488
- closedAt,
489
- closedBy: "remote"
490
- });
491
- return serializeObservedBrowserState(state);
492
- }
493
- function armObservedDialogResponseOnPage(opts) {
494
- const state = ensurePageState(opts.page);
495
- clearArmedDialogResponse(state);
496
- const timeoutMs = Math.max(1, Math.floor(opts.timeoutMs ?? OBSERVED_DIALOG_TIMEOUT_MS));
497
- const response = {
498
- accept: opts.accept,
499
- expiresAt: Date.now() + timeoutMs,
500
- ...opts.promptText !== void 0 ? { promptText: opts.promptText } : {}
501
- };
502
- response.timer = setTimeout(() => {
503
- if (state.armedDialogResponse === response) state.armedDialogResponse = void 0;
504
- }, timeoutMs);
505
- state.armedDialogResponse = response;
506
- }
507
- function createObservedDialogAbortSignalForPage(opts) {
508
- const state = ensurePageState(opts.page);
509
- const controller = new AbortController();
510
- const abortForCurrentDialog = () => {
511
- if (!controller.signal.aborted) controller.abort(new BrowserObservedDialogBlockedError(serializeObservedBrowserState(state)));
512
- };
513
- const abortForParent = () => {
514
- if (!controller.signal.aborted) controller.abort(opts.parentSignal?.reason ?? /* @__PURE__ */ new Error("aborted"));
515
- };
516
- if (state.pendingDialogs.length > 0) abortForCurrentDialog();
517
- else state.dialogAbortControllers.add(controller);
518
- if (opts.parentSignal) if (opts.parentSignal.aborted) abortForParent();
519
- else opts.parentSignal.addEventListener("abort", abortForParent, { once: true });
520
- return {
521
- signal: controller.signal,
522
- cleanup: () => {
523
- state.dialogAbortControllers.delete(controller);
524
- opts.parentSignal?.removeEventListener("abort", abortForParent);
525
- }
526
- };
527
- }
528
- function observeContext(context) {
529
- if (observedContexts.has(context)) return;
530
- observedContexts.add(context);
531
- ensureContextState(context);
532
- for (const page of context.pages()) ensurePageState(page);
533
- context.on("page", (page) => ensurePageState(page));
534
- }
535
- function ensureContextState(context) {
536
- const existing = contextStates.get(context);
537
- if (existing) return existing;
538
- const state = { traceActive: false };
539
- contextStates.set(context, state);
540
- return state;
541
- }
542
- function observeBrowser(browser) {
543
- for (const context of browser.contexts()) observeContext(context);
544
- }
545
- async function connectBrowser(cdpUrl, ssrfPolicy) {
546
- const normalized = normalizeCdpUrl(cdpUrl);
547
- const cached = cachedByCdpUrl.get(normalized);
548
- if (cached) return cached;
549
- await assertCdpEndpointAllowed(normalized, ssrfPolicy);
550
- const connecting = connectingByCdpUrl.get(normalized);
551
- if (connecting) return await connecting;
552
- const connectWithRetry = async () => {
553
- let lastErr;
554
- for (let attempt = 0; attempt < 3; attempt += 1) try {
555
- const timeout = 5e3 + attempt * 2e3;
556
- const endpoint = await getChromeWebSocketUrl(normalized, timeout, ssrfPolicy).catch(() => null) ?? normalized;
557
- const connectEndpoint = async (target) => {
558
- const headers = getHeadersWithAuth(target);
559
- return await withNoProxyForCdpUrl(target, () => chromium.connectOverCDP(target, {
560
- timeout,
561
- headers
562
- }));
563
- };
564
- let browser;
565
- try {
566
- browser = await connectEndpoint(endpoint);
567
- } catch (err) {
568
- if (!isWebSocketUrl(normalized) || endpoint === normalized) throw err;
569
- browser = await connectEndpoint(normalized);
570
- }
571
- const onDisconnected = () => {
572
- if (cachedByCdpUrl.get(normalized)?.browser === browser) cachedByCdpUrl.delete(normalized);
573
- };
574
- const connected = {
575
- browser,
576
- cdpUrl: normalized,
577
- onDisconnected
578
- };
579
- cachedByCdpUrl.set(normalized, connected);
580
- browser.on("disconnected", onDisconnected);
581
- observeBrowser(browser);
582
- return connected;
583
- } catch (err) {
584
- lastErr = err;
585
- if (formatErrorMessage(err).includes("rate limit")) break;
586
- const delay = 250 + attempt * 250;
587
- await new Promise((r) => setTimeout(r, delay));
588
- }
589
- if (lastErr instanceof Error) throw lastErr;
590
- const message = lastErr ? formatErrorMessage(lastErr) : "CDP connect failed";
591
- throw new Error(message);
592
- };
593
- const pending = connectWithRetry().finally(() => {
594
- connectingByCdpUrl.delete(normalized);
595
- });
596
- connectingByCdpUrl.set(normalized, pending);
597
- return await pending;
598
- }
599
- async function getAllPages(browser) {
600
- return browser.contexts().flatMap((c) => c.pages());
601
- }
602
- async function partitionAccessiblePages(opts) {
603
- const accessible = [];
604
- let blockedCount = 0;
605
- for (const page of opts.pages) {
606
- if (isBlockedPageRef(opts.cdpUrl, page)) {
607
- blockedCount += 1;
608
- continue;
609
- }
610
- const targetId = await pageTargetId(page).catch(() => null);
611
- if (!targetId) {
612
- if (hasBlockedTargetsForCdpUrl(opts.cdpUrl)) {
613
- blockedCount += 1;
614
- continue;
615
- }
616
- accessible.push(page);
617
- continue;
618
- }
619
- if (isBlockedTarget(opts.cdpUrl, targetId)) {
620
- blockedCount += 1;
621
- continue;
622
- }
623
- accessible.push(page);
624
- }
625
- return {
626
- accessible,
627
- blockedCount
628
- };
629
- }
630
- async function pageTargetId(page) {
631
- const session = await page.context().newCDPSession(page);
632
- try {
633
- return (normalizeOptionalString$1((await session.send("Target.getTargetInfo"))?.targetInfo?.targetId) ?? "") || null;
634
- } finally {
635
- await session.detach().catch(() => {});
636
- }
637
- }
638
- function matchPageByTargetList(pages, targets, targetId) {
639
- const target = targets.find((entry) => entry.id === targetId);
640
- if (!target) return null;
641
- const urlMatch = pages.filter((page) => page.url() === target.url);
642
- if (urlMatch.length === 1) return urlMatch[0] ?? null;
643
- if (urlMatch.length > 1) {
644
- const sameUrlTargets = targets.filter((entry) => entry.url === target.url);
645
- if (sameUrlTargets.length === urlMatch.length) {
646
- const idx = sameUrlTargets.findIndex((entry) => entry.id === targetId);
647
- if (idx >= 0 && idx < urlMatch.length) return urlMatch[idx] ?? null;
648
- }
649
- }
650
- return null;
651
- }
652
- async function findPageByTargetIdViaTargetList(pages, targetId, cdpUrl, ssrfPolicy) {
653
- const cdpHttpBase = normalizeCdpHttpBaseForJsonEndpoints(cdpUrl);
654
- await assertCdpEndpointAllowed(cdpUrl, ssrfPolicy);
655
- return matchPageByTargetList(pages, await fetchJson(appendCdpPath(cdpHttpBase, "/json/list"), 2e3), targetId);
656
- }
657
- async function findPageByTargetId(browser, targetId, cdpUrl, ssrfPolicy) {
658
- const pages = await getAllPages(browser);
659
- let resolvedViaCdp = false;
660
- for (const page of pages) {
661
- let tid = null;
662
- try {
663
- tid = await pageTargetId(page);
664
- resolvedViaCdp = true;
665
- } catch {
666
- tid = null;
667
- }
668
- if (tid && tid === targetId) return page;
669
- }
670
- if (cdpUrl) try {
671
- return await findPageByTargetIdViaTargetList(pages, targetId, cdpUrl, ssrfPolicy);
672
- } catch {}
673
- if (!resolvedViaCdp && pages.length === 1) return pages[0] ?? null;
674
- return null;
675
- }
676
- async function resolvePageByTargetIdOrThrow(opts) {
677
- if (isBlockedTarget(opts.cdpUrl, opts.targetId)) throw new BlockedBrowserTargetError();
678
- const { browser } = await connectBrowser(opts.cdpUrl, opts.ssrfPolicy);
679
- const page = await findPageByTargetId(browser, opts.targetId, opts.cdpUrl, opts.ssrfPolicy);
680
- if (!page) throw new BrowserTabNotFoundError();
681
- return page;
682
- }
683
- async function getPageForTargetIdOnce(opts) {
684
- if (opts.targetId && isBlockedTarget(opts.cdpUrl, opts.targetId)) throw new BlockedBrowserTargetError();
685
- const { browser } = await connectBrowser(opts.cdpUrl, opts.ssrfPolicy);
686
- const pages = await getAllPages(browser);
687
- if (!pages.length) throw new Error("No pages available in the connected browser.");
688
- const { accessible, blockedCount } = await partitionAccessiblePages({
689
- cdpUrl: opts.cdpUrl,
690
- pages
691
- });
692
- if (!accessible.length) {
693
- if (blockedCount > 0) throw new BlockedBrowserTargetError();
694
- throw new Error("No pages available in the connected browser.");
695
- }
696
- const first = accessible[0];
697
- if (!opts.targetId) return first;
698
- const found = await findPageByTargetId(browser, opts.targetId, opts.cdpUrl, opts.ssrfPolicy);
699
- if (found) {
700
- if (isBlockedPageRef(opts.cdpUrl, found)) throw new BlockedBrowserTargetError();
701
- const foundTargetId = await pageTargetId(found).catch(() => null);
702
- if (foundTargetId && isBlockedTarget(opts.cdpUrl, foundTargetId)) throw new BlockedBrowserTargetError();
703
- return found;
704
- }
705
- if (pages.length === 1) return first;
706
- throw new BrowserTabNotFoundError();
707
- }
708
- async function getPageForTargetId(opts) {
709
- const reusedCachedBrowser = hasCachedPlaywrightBrowserConnection(opts.cdpUrl);
710
- try {
711
- return await getPageForTargetIdOnce(opts);
712
- } catch (err) {
713
- if (!isRecoverableStalePageSelectionError(err, reusedCachedBrowser)) throw err;
714
- await closePlaywrightBrowserConnection({ cdpUrl: opts.cdpUrl });
715
- return await getPageForTargetIdOnce(opts);
716
- }
717
- }
718
- function isTopLevelNavigationRequest(page, request) {
719
- let sameMainFrame = false;
720
- try {
721
- sameMainFrame = request.frame() === page.mainFrame();
722
- } catch {
723
- sameMainFrame = true;
724
- }
725
- if (!sameMainFrame) return false;
726
- try {
727
- if (request.isNavigationRequest()) return true;
728
- } catch {}
729
- try {
730
- return request.resourceType() === "document";
731
- } catch {
732
- return false;
733
- }
734
- }
735
- function isSubframeDocumentNavigationRequest(page, request) {
736
- let sameMainFrame = false;
737
- try {
738
- sameMainFrame = request.frame() === page.mainFrame();
739
- } catch {
740
- return true;
741
- }
742
- if (sameMainFrame) return false;
743
- try {
744
- if (request.isNavigationRequest()) return true;
745
- } catch {}
746
- try {
747
- return request.resourceType() === "document";
748
- } catch {
749
- return false;
750
- }
751
- }
752
- function isPolicyDenyNavigationError(err) {
753
- return err instanceof SsrFBlockedError || err instanceof InvalidBrowserNavigationUrlError;
754
- }
755
- async function quarantineBlockedTarget(opts) {
756
- markPageRefBlocked(opts.cdpUrl, opts.page);
757
- const resolvedTargetId = await pageTargetId(opts.page).catch(() => null);
758
- const fallbackTargetId = normalizeOptionalString$1(opts.targetId) ?? "";
759
- const targetIdToBlock = resolvedTargetId || fallbackTargetId;
760
- if (targetIdToBlock) markTargetBlocked(opts.cdpUrl, targetIdToBlock);
761
- }
762
- async function closeBlockedNavigationTarget(opts) {
763
- await quarantineBlockedTarget(opts);
764
- await opts.page.close().catch(() => {});
765
- }
766
- async function assertPageNavigationCompletedSafely(opts) {
767
- const navigationPolicy = withBrowserNavigationPolicy(opts.ssrfPolicy, { browserProxyMode: opts.browserProxyMode });
768
- try {
769
- await assertBrowserNavigationRedirectChainAllowed({
770
- request: opts.response?.request(),
771
- ...navigationPolicy
772
- });
773
- await assertBrowserNavigationResultAllowed({
774
- url: opts.page.url(),
775
- ...navigationPolicy
776
- });
777
- } catch (err) {
778
- if (isPolicyDenyNavigationError(err)) await quarantineBlockedTarget({
779
- cdpUrl: opts.cdpUrl,
780
- page: opts.page,
781
- targetId: opts.targetId
782
- });
783
- throw err;
784
- }
785
- }
786
- async function continueRouteSafely(route) {
787
- try {
788
- await route.continue();
789
- } catch (err) {
790
- if ((err instanceof Error ? err.message : "").includes("Route is already handled")) return;
791
- throw err;
792
- }
793
- }
794
- async function gotoPageWithNavigationGuard(opts) {
795
- const navigationPolicy = withBrowserNavigationPolicy(opts.ssrfPolicy, { browserProxyMode: opts.browserProxyMode });
796
- let blockedError = null;
797
- const handler = async (route, request) => {
798
- if (blockedError) {
799
- await route.abort().catch(() => {});
800
- return;
801
- }
802
- const isTopLevel = isTopLevelNavigationRequest(opts.page, request);
803
- const isSubframeDocument = !isTopLevel && isSubframeDocumentNavigationRequest(opts.page, request);
804
- if (!isTopLevel && !isSubframeDocument) {
805
- await continueRouteSafely(route);
806
- return;
807
- }
808
- try {
809
- await assertBrowserNavigationAllowed({
810
- url: request.url(),
811
- ...navigationPolicy
812
- });
813
- } catch (err) {
814
- if (isPolicyDenyNavigationError(err)) {
815
- if (isTopLevel) blockedError = err;
816
- await route.abort().catch(() => {});
817
- return;
818
- }
819
- throw err;
820
- }
821
- await continueRouteSafely(route);
822
- };
823
- await opts.page.route("**", handler);
824
- try {
825
- const response = await opts.page.goto(opts.url, { timeout: opts.timeoutMs });
826
- if (blockedError) throw blockedError;
827
- return response;
828
- } catch (err) {
829
- if (blockedError) throw blockedError;
830
- throw err;
831
- } finally {
832
- await opts.page.unroute("**", handler).catch(() => {});
833
- if (blockedError) await closeBlockedNavigationTarget({
834
- cdpUrl: opts.cdpUrl,
835
- page: opts.page,
836
- targetId: opts.targetId
837
- });
838
- }
839
- }
840
- function refLocator(page, ref) {
841
- const normalized = ref.startsWith("@") ? ref.slice(1) : ref.startsWith("ref=") ? ref.slice(4) : ref;
842
- if (/^e\d+$/.test(normalized)) {
843
- const state = pageStates.get(page);
844
- if (state?.roleRefsMode === "aria") return (state.roleRefsFrameSelector ? page.frameLocator(state.roleRefsFrameSelector) : page).locator(`aria-ref=${normalized}`);
845
- const info = state?.roleRefs?.[normalized];
846
- if (!info) throw new Error(`Unknown ref "${normalized}". Run a new snapshot and use a ref from that snapshot.`);
847
- const locAny = state?.roleRefsFrameSelector ? page.frameLocator(state.roleRefsFrameSelector) : page;
848
- const locator = info.name ? locAny.getByRole(info.role, {
849
- name: info.name,
850
- exact: true
851
- }) : locAny.getByRole(info.role);
852
- return info.nth !== void 0 ? locator.nth(info.nth) : locator;
853
- }
854
- if (AX_REF_PATTERN.test(normalized)) {
855
- const state = pageStates.get(page);
856
- const info = state?.roleRefs?.[normalized];
857
- if (!info) throw new Error(`Unknown ref "${normalized}". Run a new snapshot and use a ref from that snapshot.`);
858
- const scope = state.roleRefsFrameSelector ? page.frameLocator(state.roleRefsFrameSelector) : page;
859
- if (info.domMarker) return scope.locator(`[${BROWSER_REF_MARKER_ATTRIBUTE}="${normalized}"]`);
860
- const locAny = scope;
861
- const locator = info.name ? locAny.getByRole(info.role, {
862
- name: info.name,
863
- exact: true
864
- }) : locAny.getByRole(info.role);
865
- return info.nth !== void 0 ? locator.nth(info.nth) : locator;
866
- }
867
- return page.locator(`aria-ref=${normalized}`);
868
- }
869
- async function closePlaywrightBrowserConnection(opts) {
870
- const normalized = opts?.cdpUrl ? normalizeCdpUrl(opts.cdpUrl) : null;
871
- if (normalized) {
872
- clearBlockedTargetsForCdpUrl(normalized);
873
- clearBlockedPageRefsForCdpUrl(normalized);
874
- const cur = takeCachedPlaywrightBrowserConnection(normalized);
875
- if (!cur) return;
876
- await cur.browser.close().catch(() => {});
877
- return;
878
- }
879
- const connections = Array.from(cachedByCdpUrl.values());
880
- clearBlockedTargetsForCdpUrl();
881
- clearBlockedPageRefsForCdpUrl();
882
- cachedByCdpUrl.clear();
883
- connectingByCdpUrl.clear();
884
- for (const cur of connections) {
885
- if (cur.onDisconnected && typeof cur.browser.off === "function") cur.browser.off("disconnected", cur.onDisconnected);
886
- await cur.browser.close().catch(() => {});
887
- }
888
- }
889
- function cdpSocketNeedsAttach(wsUrl) {
890
- try {
891
- const pathname = new URL(wsUrl).pathname;
892
- return pathname === "/cdp" || pathname.endsWith("/cdp") || pathname.includes("/devtools/browser/");
893
- } catch {
894
- return false;
895
- }
896
- }
897
- async function tryTerminateExecutionViaCdp(opts) {
898
- await assertCdpEndpointAllowed(opts.cdpUrl, opts.ssrfPolicy);
899
- const cdpHttpBase = normalizeCdpHttpBaseForJsonEndpoints(opts.cdpUrl);
900
- const pages = await fetchJson(appendCdpPath(cdpHttpBase, "/json/list"), 2e3).catch(() => null);
901
- if (!pages || pages.length === 0) return;
902
- const targetId = normalizeOptionalString$1(opts.targetId) ?? "";
903
- const wsUrlRaw = normalizeOptionalString$1(pages.find((p) => normalizeOptionalString$1(p.id) === targetId)?.webSocketDebuggerUrl) ?? "";
904
- if (!wsUrlRaw) return;
905
- const wsUrl = normalizeCdpWsUrl(wsUrlRaw, cdpHttpBase);
906
- const needsAttach = cdpSocketNeedsAttach(wsUrl);
907
- const runWithTimeout = async (work, ms) => {
908
- let timer;
909
- const timeoutPromise = new Promise((_, reject) => {
910
- timer = setTimeout(() => reject(/* @__PURE__ */ new Error("CDP command timed out")), ms);
911
- });
912
- try {
913
- return await Promise.race([work, timeoutPromise]);
914
- } finally {
915
- if (timer) clearTimeout(timer);
916
- }
917
- };
918
- await withCdpSocket(wsUrl, async (send) => {
919
- let sessionId;
920
- try {
921
- if (needsAttach) {
922
- const attachedSessionId = normalizeOptionalString$1((await runWithTimeout(send("Target.attachToTarget", {
923
- targetId: opts.targetId,
924
- flatten: true
925
- }), 1500))?.sessionId);
926
- if (attachedSessionId) sessionId = attachedSessionId;
927
- }
928
- await runWithTimeout(send("Runtime.terminateExecution", void 0, sessionId), 1500);
929
- if (sessionId) send("Target.detachFromTarget", { sessionId }).catch(() => {});
930
- } catch {}
931
- }, { handshakeTimeoutMs: 2e3 }).catch(() => {});
932
- }
933
- /**
934
- * Best-effort cancellation for stuck page operations.
935
- *
936
- * Playwright serializes CDP commands per page; a long-running or stuck operation (notably evaluate)
937
- * can block all subsequent commands. We cannot safely "cancel" an individual command, and we do
938
- * not want to close the actual Chromium tab. Instead, we disconnect Playwright's CDP connection
939
- * so in-flight commands fail fast and the next request reconnects transparently.
940
- *
941
- * IMPORTANT: We CANNOT call Connection.close() because Playwright shares a single Connection
942
- * across all objects (BrowserType, Browser, etc.). Closing it corrupts the entire Playwright
943
- * instance, preventing reconnection.
944
- *
945
- * Instead we:
946
- * 1. Null out `cached` so the next call triggers a fresh connectOverCDP
947
- * 2. Fire-and-forget browser.close() — it may hang but won't block us
948
- * 3. The next connectBrowser() creates a completely new CDP WebSocket connection
949
- *
950
- * The old browser.close() eventually resolves when the in-browser evaluate timeout fires,
951
- * or the old connection gets GC'd. Either way, it doesn't affect the fresh connection.
952
- */
953
- async function forceDisconnectPlaywrightForTarget(opts) {
954
- const normalized = normalizeCdpUrl(opts.cdpUrl);
955
- const cur = takeCachedPlaywrightBrowserConnection(normalized);
956
- if (!cur) return;
957
- const targetId = normalizeOptionalString$1(opts.targetId) ?? "";
958
- if (targetId) await tryTerminateExecutionViaCdp({
959
- cdpUrl: normalized,
960
- targetId,
961
- ssrfPolicy: opts.ssrfPolicy
962
- }).catch(() => {});
963
- cur.browser.close().catch(() => {});
964
- }
965
- async function withPlaywrightSafeReadReconnect(cdpUrl, run) {
966
- try {
967
- return await run();
968
- } catch (err) {
969
- if (!isRecoverablePlaywrightDisconnectError(err)) throw err;
970
- evictStalePlaywrightBrowserConnection(cdpUrl);
971
- return await run();
972
- }
973
- }
974
- /**
975
- * List all pages/tabs from the persistent Playwright connection.
976
- * Used for remote profiles where HTTP-based /json/list is ephemeral.
977
- */
978
- async function listPagesViaPlaywright(opts) {
979
- return await withPlaywrightSafeReadReconnect(opts.cdpUrl, async () => {
980
- const { browser } = await connectBrowser(opts.cdpUrl, opts.ssrfPolicy);
981
- const pages = await getAllPages(browser);
982
- const results = [];
983
- for (const page of pages) {
984
- if (isBlockedPageRef(opts.cdpUrl, page)) continue;
985
- let tid;
986
- try {
987
- tid = await pageTargetId(page);
988
- } catch (err) {
989
- if (isRecoverablePlaywrightDisconnectError(err)) throw err;
990
- tid = null;
991
- }
992
- if (tid && !isBlockedTarget(opts.cdpUrl, tid)) {
993
- let title = "";
994
- try {
995
- title = await page.title();
996
- } catch (err) {
997
- if (isRecoverablePlaywrightDisconnectError(err)) throw err;
998
- }
999
- let url = "";
1000
- try {
1001
- url = page.url();
1002
- } catch (err) {
1003
- if (isRecoverablePlaywrightDisconnectError(err)) throw err;
1004
- }
1005
- if (!isSelectableCdpBrowserTarget({ url })) continue;
1006
- results.push({
1007
- targetId: tid,
1008
- title,
1009
- url,
1010
- type: "page"
1011
- });
1012
- }
1013
- }
1014
- return results;
1015
- });
1016
- }
1017
- /**
1018
- * Create a new page/tab using the persistent Playwright connection.
1019
- * Used for remote profiles where HTTP-based /json/new is ephemeral.
1020
- * Returns the new page's targetId and metadata.
1021
- */
1022
- async function createPageViaPlaywright(opts) {
1023
- const { browser } = await connectBrowser(opts.cdpUrl, opts.ssrfPolicy);
1024
- const context = browser.contexts()[0] ?? await browser.newContext();
1025
- ensureContextState(context);
1026
- const page = await context.newPage();
1027
- ensurePageState(page);
1028
- clearBlockedPageRef(opts.cdpUrl, page);
1029
- const createdTargetId = await pageTargetId(page).catch(() => null);
1030
- clearBlockedTarget(opts.cdpUrl, createdTargetId ?? void 0);
1031
- const targetUrl = opts.url.trim() || "about:blank";
1032
- if (targetUrl !== "about:blank") {
1033
- await assertBrowserNavigationAllowed({
1034
- url: targetUrl,
1035
- ...withBrowserNavigationPolicy(opts.ssrfPolicy, { browserProxyMode: opts.browserProxyMode })
1036
- });
1037
- let response = null;
1038
- try {
1039
- response = await gotoPageWithNavigationGuard({
1040
- cdpUrl: opts.cdpUrl,
1041
- page,
1042
- url: targetUrl,
1043
- timeoutMs: 3e4,
1044
- ssrfPolicy: opts.ssrfPolicy,
1045
- browserProxyMode: opts.browserProxyMode,
1046
- targetId: createdTargetId ?? void 0
1047
- });
1048
- } catch (err) {
1049
- if (isPolicyDenyNavigationError(err) || err instanceof BlockedBrowserTargetError) throw err;
1050
- }
1051
- try {
1052
- await assertPageNavigationCompletedSafely({
1053
- cdpUrl: opts.cdpUrl,
1054
- page,
1055
- response,
1056
- ssrfPolicy: opts.ssrfPolicy,
1057
- browserProxyMode: opts.browserProxyMode,
1058
- targetId: createdTargetId ?? void 0
1059
- });
1060
- } catch (err) {
1061
- if (isPolicyDenyNavigationError(err)) await closeBlockedNavigationTarget({
1062
- cdpUrl: opts.cdpUrl,
1063
- page,
1064
- targetId: createdTargetId ?? void 0
1065
- });
1066
- throw err;
1067
- }
1068
- }
1069
- const tid = createdTargetId || await pageTargetId(page).catch(() => null);
1070
- if (!tid) throw new Error("Failed to get targetId for new page");
1071
- return {
1072
- targetId: tid,
1073
- title: await page.title().catch(() => ""),
1074
- url: page.url(),
1075
- type: "page"
1076
- };
1077
- }
1078
- /**
1079
- * Close a page/tab by targetId using the persistent Playwright connection.
1080
- * Used for remote profiles where HTTP-based /json/close is ephemeral.
1081
- */
1082
- async function closePageByTargetIdViaPlaywright(opts) {
1083
- await (await resolvePageByTargetIdOrThrow(opts)).close();
1084
- }
1085
- /**
1086
- * Focus a page/tab by targetId using the persistent Playwright connection.
1087
- * Used for remote profiles where HTTP-based /json/activate can be ephemeral.
1088
- */
1089
- async function focusPageByTargetIdViaPlaywright(opts) {
1090
- const page = await resolvePageByTargetIdOrThrow(opts);
1091
- try {
1092
- await page.bringToFront();
1093
- } catch (err) {
1094
- try {
1095
- await withPageScopedCdpClient({
1096
- cdpUrl: opts.cdpUrl,
1097
- page,
1098
- targetId: opts.targetId,
1099
- fn: async (send) => {
1100
- await send("Page.bringToFront");
1101
- }
1102
- });
1103
- return;
1104
- } catch {
1105
- throw err;
1106
- }
1107
- }
1108
- }
1109
- //#endregion
1110
- //#region extensions/browser/src/browser/pw-tools-core.activity.ts
1111
- async function getPageErrorsViaPlaywright(opts) {
1112
- const state = ensurePageState(await getPageForTargetId(opts));
1113
- const errors = [...state.errors];
1114
- if (opts.clear) state.errors = [];
1115
- return { errors };
1116
- }
1117
- async function getNetworkRequestsViaPlaywright(opts) {
1118
- const state = ensurePageState(await getPageForTargetId(opts));
1119
- const raw = [...state.requests];
1120
- const filter = typeof opts.filter === "string" ? opts.filter.trim() : "";
1121
- const requests = filter ? raw.filter((r) => r.url.includes(filter)) : raw;
1122
- if (opts.clear) {
1123
- state.requests = [];
1124
- state.requestIds = /* @__PURE__ */ new WeakMap();
1125
- }
1126
- return { requests };
1127
- }
1128
- function consolePriority(level) {
1129
- switch (level) {
1130
- case "error": return 3;
1131
- case "warning": return 2;
1132
- case "info":
1133
- case "log": return 1;
1134
- case "debug": return 0;
1135
- default: return 1;
1136
- }
1137
- }
1138
- async function getConsoleMessagesViaPlaywright(opts) {
1139
- const state = ensurePageState(await getPageForTargetId(opts));
1140
- if (!opts.level) return [...state.console];
1141
- const min = consolePriority(opts.level);
1142
- return state.console.filter((msg) => consolePriority(msg.type) >= min);
1143
- }
1144
- //#endregion
1145
- //#region extensions/browser/src/browser/output-files.ts
1146
- async function writeExternalFileWithinOutputRoot(params) {
1147
- const outputPath = params.path.trim();
1148
- if (!outputPath) throw new Error("output path is required");
1149
- const rootDir = params.rootDir ? path.resolve(params.rootDir) : path.dirname(path.resolve(outputPath));
1150
- await ensureOutputDirectory(rootDir);
1151
- return (await writeExternalFileWithinRoot({
1152
- rootDir,
1153
- path: outputPath,
1154
- write: params.write
1155
- }).catch((err) => {
1156
- if (err instanceof Error && /file not found/i.test(err.message)) throw new Error("output directory changed while writing file");
1157
- throw err;
1158
- })).path;
1159
- }
1160
- //#endregion
1161
- //#region extensions/browser/src/browser/pw-tools-core.shared.ts
1162
- let nextUploadArmId = 0;
1163
- let nextDownloadArmId = 0;
1164
- function bumpUploadArmId() {
1165
- nextUploadArmId += 1;
1166
- return nextUploadArmId;
1167
- }
1168
- function bumpDownloadArmId() {
1169
- nextDownloadArmId += 1;
1170
- return nextDownloadArmId;
1171
- }
1172
- function requireRef(value) {
1173
- const raw = normalizeOptionalString$1(value) ?? "";
1174
- const ref = (raw ? parseRoleRef(raw) : null) ?? (raw.startsWith("@") ? raw.slice(1) : raw);
1175
- if (!ref) throw new Error("ref is required");
1176
- return ref;
1177
- }
1178
- function requireRefOrSelector(ref, selector) {
1179
- const trimmedRef = normalizeOptionalString$1(ref) ?? "";
1180
- const trimmedSelector = normalizeOptionalString$1(selector) ?? "";
1181
- if (!trimmedRef && !trimmedSelector) throw new Error("ref or selector is required");
1182
- return {
1183
- ref: trimmedRef || void 0,
1184
- selector: trimmedSelector || void 0
1185
- };
1186
- }
1187
- function normalizeTimeoutMs(timeoutMs, fallback) {
1188
- return Math.max(500, Math.min(12e4, timeoutMs ?? fallback));
1189
- }
1190
- function toAIFriendlyError(error, selector) {
1191
- const message = formatErrorMessage(error);
1192
- if (message.includes("strict mode violation")) {
1193
- const countMatch = message.match(/resolved to (\d+) elements/);
1194
- const count = countMatch ? countMatch[1] : "multiple";
1195
- return /* @__PURE__ */ new Error(`Selector "${selector}" matched ${count} elements. Run a new snapshot to get updated refs, or use a different ref.`);
1196
- }
1197
- if ((message.includes("Timeout") || message.includes("waiting for")) && (message.includes("to be visible") || message.includes("not visible") || message.includes("waiting for locator("))) return /* @__PURE__ */ new Error(`Element "${selector}" not found or not visible. Run a new snapshot to see current page elements.`);
1198
- if (message.includes("intercepts pointer events") || message.includes("not visible") || message.includes("not receive pointer events")) return /* @__PURE__ */ new Error(`Element "${selector}" is not interactable (hidden or covered). Try scrolling it into view, closing overlays, or re-snapshotting.`);
1199
- return error instanceof Error ? error : new Error(message);
1200
- }
1201
- //#endregion
1202
- //#region extensions/browser/src/browser/pw-tools-core.downloads.ts
1203
- function buildTempDownloadPath(fileName) {
1204
- const id = crypto.randomUUID();
1205
- const safeName = sanitizeUntrustedFileName(fileName, "download.bin");
1206
- return path.join(resolvePreferredDaoCoreTmpDir(), "downloads", `${id}-${safeName}`);
1207
- }
1208
- function createPageDownloadWaiter(page, timeoutMs) {
1209
- const state = ensurePageState(page);
1210
- state.downloadWaiterDepth += 1;
1211
- let done = false;
1212
- let timer;
1213
- let handler;
1214
- let depthReleased = false;
1215
- const cleanup = () => {
1216
- if (!depthReleased) {
1217
- depthReleased = true;
1218
- state.downloadWaiterDepth = Math.max(0, state.downloadWaiterDepth - 1);
1219
- }
1220
- if (timer) clearTimeout(timer);
1221
- timer = void 0;
1222
- if (handler) {
1223
- page.off("download", handler);
1224
- handler = void 0;
1225
- }
1226
- };
1227
- return {
1228
- promise: new Promise((resolve, reject) => {
1229
- handler = (download) => {
1230
- if (done) return;
1231
- done = true;
1232
- cleanup();
1233
- resolve(download);
1234
- };
1235
- page.on("download", handler);
1236
- timer = setTimeout(() => {
1237
- if (done) return;
1238
- done = true;
1239
- cleanup();
1240
- reject(/* @__PURE__ */ new Error("Timeout waiting for download"));
1241
- }, timeoutMs);
1242
- }),
1243
- cancel: () => {
1244
- if (done) return;
1245
- done = true;
1246
- cleanup();
1247
- }
1248
- };
1249
- }
1250
- async function saveDownloadPayload(download, outPath, rootDir) {
1251
- const suggested = download.suggestedFilename?.() || "download.bin";
1252
- const requestedPath = outPath?.trim();
1253
- const finalPath = await writeExternalFileWithinOutputRoot({
1254
- rootDir,
1255
- path: path.resolve(requestedPath || buildTempDownloadPath(suggested)),
1256
- write: async (tempPath) => {
1257
- await download.saveAs?.(tempPath);
1258
- }
1259
- });
1260
- return {
1261
- url: download.url?.() || "",
1262
- suggestedFilename: suggested,
1263
- path: finalPath
1264
- };
1265
- }
1266
- async function awaitDownloadPayload(params) {
1267
- try {
1268
- const download = await params.waiter.promise;
1269
- if (params.state.armIdDownload !== params.armId) throw new Error("Download was superseded by another waiter");
1270
- return await saveDownloadPayload(download, params.outPath ?? "", params.rootDir);
1271
- } catch (err) {
1272
- params.waiter.cancel();
1273
- throw err;
1274
- }
1275
- }
1276
- async function armFileUploadViaPlaywright(opts) {
1277
- const page = await getPageForTargetId(opts);
1278
- const state = ensurePageState(page);
1279
- const timeout = Math.max(500, Math.min(12e4, opts.timeoutMs ?? 12e4));
1280
- state.armIdUpload = bumpUploadArmId();
1281
- const armId = state.armIdUpload;
1282
- page.waitForEvent("filechooser", { timeout }).then(async (fileChooser) => {
1283
- if (state.armIdUpload !== armId) return;
1284
- if (!opts.paths?.length) {
1285
- try {
1286
- await page.keyboard.press("Escape");
1287
- } catch {}
1288
- return;
1289
- }
1290
- const uploadPathsResult = await resolveStrictExistingPathsWithinRoot({
1291
- rootDir: DEFAULT_UPLOAD_DIR,
1292
- requestedPaths: opts.paths,
1293
- scopeLabel: `uploads directory (${DEFAULT_UPLOAD_DIR})`
1294
- });
1295
- if (!uploadPathsResult.ok) {
1296
- try {
1297
- await page.keyboard.press("Escape");
1298
- } catch {}
1299
- return;
1300
- }
1301
- await fileChooser.setFiles(uploadPathsResult.paths);
1302
- try {
1303
- const input = typeof fileChooser.element === "function" ? await Promise.resolve(fileChooser.element()) : null;
1304
- if (input) await input.evaluate((el) => {
1305
- el.dispatchEvent(new Event("input", { bubbles: true }));
1306
- el.dispatchEvent(new Event("change", { bubbles: true }));
1307
- });
1308
- } catch {}
1309
- }).catch(() => {});
1310
- }
1311
- async function armDialogViaPlaywright(opts) {
1312
- const page = await getPageForTargetId(opts);
1313
- const timeout = normalizeTimeoutMs(opts.timeoutMs, 12e4);
1314
- try {
1315
- await respondToObservedDialogOnPage({
1316
- page,
1317
- accept: opts.accept,
1318
- closedBy: "agent",
1319
- ...opts.dialogId !== void 0 ? { dialogId: opts.dialogId } : {},
1320
- ...opts.promptText !== void 0 ? { promptText: opts.promptText } : {}
1321
- });
1322
- return;
1323
- } catch (err) {
1324
- if (opts.dialogId || err instanceof Error && !err.message.includes("No dialog is pending")) throw err;
1325
- }
1326
- armObservedDialogResponseOnPage({
1327
- page,
1328
- accept: opts.accept,
1329
- timeoutMs: timeout,
1330
- ...opts.promptText !== void 0 ? { promptText: opts.promptText } : {}
1331
- });
1332
- }
1333
- async function waitForDownloadViaPlaywright(opts) {
1334
- const page = await getPageForTargetId(opts);
1335
- const state = ensurePageState(page);
1336
- const timeout = normalizeTimeoutMs(opts.timeoutMs, 12e4);
1337
- state.armIdDownload = bumpDownloadArmId();
1338
- const armId = state.armIdDownload;
1339
- return await awaitDownloadPayload({
1340
- waiter: createPageDownloadWaiter(page, timeout),
1341
- state,
1342
- armId,
1343
- outPath: opts.path,
1344
- rootDir: opts.rootDir
1345
- });
1346
- }
1347
- async function downloadViaPlaywright(opts) {
1348
- const page = await getPageForTargetId(opts);
1349
- const state = ensurePageState(page);
1350
- restoreRoleRefsForTarget({
1351
- cdpUrl: opts.cdpUrl,
1352
- targetId: opts.targetId,
1353
- page
1354
- });
1355
- const timeout = normalizeTimeoutMs(opts.timeoutMs, 12e4);
1356
- const ref = requireRef(opts.ref);
1357
- const outPath = opts.path?.trim() ?? "";
1358
- if (!outPath) throw new Error("path is required");
1359
- state.armIdDownload = bumpDownloadArmId();
1360
- const armId = state.armIdDownload;
1361
- const waiter = createPageDownloadWaiter(page, timeout);
1362
- try {
1363
- const locator = refLocator(page, ref);
1364
- try {
1365
- await locator.click({ timeout });
1366
- } catch (err) {
1367
- throw toAIFriendlyError(err, ref);
1368
- }
1369
- return await awaitDownloadPayload({
1370
- waiter,
1371
- state,
1372
- armId,
1373
- outPath,
1374
- rootDir: opts.rootDir
1375
- });
1376
- } catch (err) {
1377
- waiter.cancel();
1378
- throw err;
1379
- }
1380
- }
1381
- //#endregion
1382
- //#region extensions/browser/src/browser/pw-tools-core.snapshot.ts
1383
- async function collectSnapshotUrls(page) {
1384
- const urls = await page.evaluate(() => {
1385
- const seen = /* @__PURE__ */ new Set();
1386
- const out = [];
1387
- for (const anchor of Array.from(document.querySelectorAll("a[href]"))) {
1388
- const href = anchor instanceof HTMLAnchorElement ? anchor.href : "";
1389
- if (!href || seen.has(href)) continue;
1390
- const text = (anchor.textContent || anchor.getAttribute("aria-label") || "").replace(/\s+/g, " ").trim().slice(0, 120) || href;
1391
- seen.add(href);
1392
- out.push({
1393
- text,
1394
- url: href
1395
- });
1396
- if (out.length >= 100) break;
1397
- }
1398
- return out;
1399
- }).catch(() => []);
1400
- return Array.isArray(urls) ? urls : [];
1401
- }
1402
- function appendSnapshotUrls(snapshot, urls) {
1403
- if (urls.length === 0) return snapshot;
1404
- return `${snapshot}\n\nLinks:\n${urls.map((entry, index) => `${index + 1}. ${entry.text} -> ${entry.url}`).join("\n")}`;
1405
- }
1406
- function buildStoredAriaRefs(nodes, markedRefs) {
1407
- const refs = {};
1408
- const counts = /* @__PURE__ */ new Map();
1409
- const refsByKey = /* @__PURE__ */ new Map();
1410
- for (const node of nodes) {
1411
- const role = normalizeLowercaseStringOrEmpty(node.role) || "unknown";
1412
- const name = node.name.trim() || void 0;
1413
- const key = `${role}:${name ?? ""}`;
1414
- const nth = counts.get(key) ?? 0;
1415
- counts.set(key, nth + 1);
1416
- refsByKey.set(key, [...refsByKey.get(key) ?? [], node.ref]);
1417
- refs[node.ref] = {
1418
- role,
1419
- ...name ? { name } : {},
1420
- ...nth > 0 ? { nth } : {},
1421
- ...markedRefs.has(node.ref) ? { domMarker: true } : {}
1422
- };
1423
- }
1424
- for (const refsForKey of refsByKey.values()) {
1425
- if (refsForKey.length > 1) continue;
1426
- const ref = refsForKey[0];
1427
- if (ref) delete refs[ref]?.nth;
1428
- }
1429
- return refs;
1430
- }
1431
- async function storeAriaSnapshotRefsViaPlaywright(opts) {
1432
- const page = opts.page ?? await getPageForTargetId({
1433
- cdpUrl: opts.cdpUrl,
1434
- targetId: opts.targetId
1435
- });
1436
- ensurePageState(page);
1437
- const markedRefs = await markBackendDomRefsOnPage({
1438
- page,
1439
- refs: opts.nodes.flatMap((node) => typeof node.backendDOMNodeId === "number" ? [{
1440
- ref: node.ref,
1441
- backendDOMNodeId: node.backendDOMNodeId
1442
- }] : [])
1443
- });
1444
- storeRoleRefsForTarget({
1445
- page,
1446
- cdpUrl: opts.cdpUrl,
1447
- targetId: opts.targetId,
1448
- refs: buildStoredAriaRefs(opts.nodes, markedRefs),
1449
- mode: "role"
1450
- });
1451
- }
1452
- async function snapshotAriaViaPlaywright(opts) {
1453
- const limit = Math.max(1, Math.min(2e3, Math.floor(opts.limit ?? 500)));
1454
- const page = await getPageForTargetId({
1455
- cdpUrl: opts.cdpUrl,
1456
- targetId: opts.targetId
1457
- });
1458
- ensurePageState(page);
1459
- if (opts.ssrfPolicy) await assertPageNavigationCompletedSafely({
1460
- cdpUrl: opts.cdpUrl,
1461
- page,
1462
- response: null,
1463
- ssrfPolicy: opts.ssrfPolicy,
1464
- targetId: opts.targetId
1465
- });
1466
- const res = await withPageScopedCdpClient({
1467
- cdpUrl: opts.cdpUrl,
1468
- page,
1469
- targetId: opts.targetId,
1470
- fn: async (send) => {
1471
- await send("Accessibility.enable").catch(() => {});
1472
- return await send("Accessibility.getFullAXTree");
1473
- }
1474
- });
1475
- const formatted = formatAriaSnapshot(Array.isArray(res?.nodes) ? res.nodes : [], limit);
1476
- await storeAriaSnapshotRefsViaPlaywright({
1477
- cdpUrl: opts.cdpUrl,
1478
- targetId: opts.targetId,
1479
- nodes: formatted,
1480
- page
1481
- });
1482
- return { nodes: formatted };
1483
- }
1484
- async function snapshotAiViaPlaywright(opts) {
1485
- const page = await getPageForTargetId({
1486
- cdpUrl: opts.cdpUrl,
1487
- targetId: opts.targetId
1488
- });
1489
- ensurePageState(page);
1490
- if (opts.ssrfPolicy) await assertPageNavigationCompletedSafely({
1491
- cdpUrl: opts.cdpUrl,
1492
- page,
1493
- response: null,
1494
- ssrfPolicy: opts.ssrfPolicy,
1495
- targetId: opts.targetId
1496
- });
1497
- let snapshot = await page.ariaSnapshot({
1498
- mode: "ai",
1499
- timeout: Math.max(500, Math.min(6e4, Math.floor(opts.timeoutMs ?? 5e3)))
1500
- });
1501
- if (opts.urls) snapshot = appendSnapshotUrls(snapshot, await collectSnapshotUrls(page));
1502
- const maxChars = opts.maxChars;
1503
- const limit = typeof maxChars === "number" && Number.isFinite(maxChars) && maxChars > 0 ? Math.floor(maxChars) : void 0;
1504
- let truncated = false;
1505
- if (limit && snapshot.length > limit) {
1506
- snapshot = `${snapshot.slice(0, limit)}\n\n[...TRUNCATED - page too large]`;
1507
- truncated = true;
1508
- }
1509
- const built = buildRoleSnapshotFromAiSnapshot(snapshot);
1510
- storeRoleRefsForTarget({
1511
- page,
1512
- cdpUrl: opts.cdpUrl,
1513
- targetId: opts.targetId,
1514
- refs: built.refs,
1515
- mode: "aria"
1516
- });
1517
- return truncated ? {
1518
- snapshot,
1519
- truncated,
1520
- refs: built.refs
1521
- } : {
1522
- snapshot,
1523
- refs: built.refs
1524
- };
1525
- }
1526
- async function snapshotRoleViaPlaywright(opts) {
1527
- const page = await getPageForTargetId({
1528
- cdpUrl: opts.cdpUrl,
1529
- targetId: opts.targetId
1530
- });
1531
- ensurePageState(page);
1532
- if (opts.ssrfPolicy) await assertPageNavigationCompletedSafely({
1533
- cdpUrl: opts.cdpUrl,
1534
- page,
1535
- response: null,
1536
- ssrfPolicy: opts.ssrfPolicy,
1537
- targetId: opts.targetId
1538
- });
1539
- if (opts.refsMode === "aria") {
1540
- if (normalizeOptionalString$1(opts.selector) || normalizeOptionalString$1(opts.frameSelector)) throw new Error("refs=aria does not support selector/frame snapshots yet.");
1541
- const built = buildRoleSnapshotFromAiSnapshot(await page.ariaSnapshot({
1542
- mode: "ai",
1543
- timeout: 5e3
1544
- }), opts.options);
1545
- const snapshotWithUrls = opts.urls ? appendSnapshotUrls(built.snapshot, await collectSnapshotUrls(page)) : built.snapshot;
1546
- storeRoleRefsForTarget({
1547
- page,
1548
- cdpUrl: opts.cdpUrl,
1549
- targetId: opts.targetId,
1550
- refs: built.refs,
1551
- mode: "aria"
1552
- });
1553
- return {
1554
- snapshot: snapshotWithUrls,
1555
- refs: built.refs,
1556
- stats: getRoleSnapshotStats(snapshotWithUrls, built.refs)
1557
- };
1558
- }
1559
- const frameSelector = normalizeOptionalString$1(opts.frameSelector) ?? "";
1560
- const selector = normalizeOptionalString$1(opts.selector) ?? "";
1561
- const built = buildRoleSnapshotFromAriaSnapshot(await (frameSelector ? selector ? page.frameLocator(frameSelector).locator(selector) : page.frameLocator(frameSelector).locator(":root") : selector ? page.locator(selector) : page.locator(":root")).ariaSnapshot() ?? "", opts.options);
1562
- const snapshotWithUrls = opts.urls ? appendSnapshotUrls(built.snapshot, await collectSnapshotUrls(page)) : built.snapshot;
1563
- storeRoleRefsForTarget({
1564
- page,
1565
- cdpUrl: opts.cdpUrl,
1566
- targetId: opts.targetId,
1567
- refs: built.refs,
1568
- frameSelector: frameSelector || void 0,
1569
- mode: "role"
1570
- });
1571
- return {
1572
- snapshot: snapshotWithUrls,
1573
- refs: built.refs,
1574
- stats: getRoleSnapshotStats(snapshotWithUrls, built.refs)
1575
- };
1576
- }
1577
- async function navigateViaPlaywright(opts) {
1578
- const isRetryableNavigateError = (err) => {
1579
- const msg = typeof err === "string" ? err.toLowerCase() : err instanceof Error ? err.message.toLowerCase() : "";
1580
- return msg.includes("frame has been detached") || msg.includes("target page, context or browser has been closed");
1581
- };
1582
- const url = normalizeOptionalString$1(opts.url) ?? "";
1583
- if (!url) throw new Error("url is required");
1584
- await assertBrowserNavigationAllowed({
1585
- url,
1586
- ...withBrowserNavigationPolicy(opts.ssrfPolicy, { browserProxyMode: opts.browserProxyMode })
1587
- });
1588
- const timeout = Math.max(1e3, Math.min(12e4, opts.timeoutMs ?? 2e4));
1589
- let page = await getPageForTargetId(opts);
1590
- ensurePageState(page);
1591
- const navigate = async () => await gotoPageWithNavigationGuard({
1592
- cdpUrl: opts.cdpUrl,
1593
- page,
1594
- url,
1595
- timeoutMs: timeout,
1596
- ssrfPolicy: opts.ssrfPolicy,
1597
- browserProxyMode: opts.browserProxyMode,
1598
- targetId: opts.targetId
1599
- });
1600
- let response;
1601
- try {
1602
- response = await navigate();
1603
- } catch (err) {
1604
- if (!isRetryableNavigateError(err)) throw err;
1605
- await forceDisconnectPlaywrightForTarget({
1606
- cdpUrl: opts.cdpUrl,
1607
- targetId: opts.targetId,
1608
- reason: "retry navigate after detached frame"
1609
- }).catch(() => {});
1610
- page = await getPageForTargetId(opts);
1611
- ensurePageState(page);
1612
- response = await navigate();
1613
- }
1614
- try {
1615
- await assertPageNavigationCompletedSafely({
1616
- cdpUrl: opts.cdpUrl,
1617
- page,
1618
- response,
1619
- ssrfPolicy: opts.ssrfPolicy,
1620
- browserProxyMode: opts.browserProxyMode,
1621
- targetId: opts.targetId
1622
- });
1623
- } catch (err) {
1624
- if (isPolicyDenyNavigationError(err)) await closeBlockedNavigationTarget({
1625
- cdpUrl: opts.cdpUrl,
1626
- page,
1627
- targetId: opts.targetId
1628
- });
1629
- throw err;
1630
- }
1631
- return { url: page.url() };
1632
- }
1633
- async function resizeViewportViaPlaywright(opts) {
1634
- const page = await getPageForTargetId(opts);
1635
- ensurePageState(page);
1636
- await page.setViewportSize({
1637
- width: Math.max(1, Math.floor(opts.width)),
1638
- height: Math.max(1, Math.floor(opts.height))
1639
- });
1640
- }
1641
- async function closePageViaPlaywright(opts) {
1642
- const page = await getPageForTargetId(opts);
1643
- ensurePageState(page);
1644
- await page.close();
1645
- }
1646
- async function pdfViaPlaywright(opts) {
1647
- const page = await getPageForTargetId(opts);
1648
- ensurePageState(page);
1649
- return { buffer: await page.pdf({ printBackground: true }) };
1650
- }
1651
- //#endregion
1652
- //#region extensions/browser/src/browser/pw-tools-core.interactions.ts
1653
- const INTERACTION_NAVIGATION_GRACE_MS = 250;
1654
- const pendingInteractionNavigationGuardCleanup = /* @__PURE__ */ new WeakMap();
1655
- function resolveBoundedDelayMs(value, label, maxMs) {
1656
- const normalized = Math.floor(value ?? 0);
1657
- if (!Number.isFinite(normalized) || normalized < 0) throw new Error(`${label} must be >= 0`);
1658
- if (normalized > maxMs) throw new Error(`${label} exceeds maximum of ${maxMs}ms`);
1659
- return normalized;
1660
- }
1661
- async function getRestoredPageForTarget(opts) {
1662
- const page = await getPageForTargetId(opts);
1663
- ensurePageState(page);
1664
- restoreRoleRefsForTarget({
1665
- cdpUrl: opts.cdpUrl,
1666
- targetId: opts.targetId,
1667
- page
1668
- });
1669
- return page;
1670
- }
1671
- function toFriendlyInteractionError(err, label) {
1672
- return isBrowserObservedDialogBlockedError(err) ? err : toAIFriendlyError(err, label);
1673
- }
1674
- function reconcileRemoteDialogAfterActionSettled(page, signal) {
1675
- if (isBrowserObservedDialogBlockedError(signal?.reason)) markObservedDialogsHandledRemotelyForPage(page);
1676
- }
1677
- const resolveInteractionTimeoutMs = resolveActInteractionTimeoutMs;
1678
- function didCrossDocumentUrlChange(page, previousUrl) {
1679
- const currentUrl = page.url();
1680
- if (currentUrl === previousUrl) return false;
1681
- try {
1682
- const prev = new URL(previousUrl);
1683
- const curr = new URL(currentUrl);
1684
- if (prev.origin === curr.origin && prev.pathname === curr.pathname && prev.search === curr.search) return false;
1685
- } catch {}
1686
- return true;
1687
- }
1688
- function isHashOnlyNavigation(currentUrl, previousUrl) {
1689
- if (currentUrl === previousUrl) return false;
1690
- try {
1691
- const prev = new URL(previousUrl);
1692
- const curr = new URL(currentUrl);
1693
- return prev.origin === curr.origin && prev.pathname === curr.pathname && prev.search === curr.search;
1694
- } catch {
1695
- return false;
1696
- }
1697
- }
1698
- function isMainFrameNavigation(page, frame) {
1699
- if (typeof page.mainFrame !== "function") return true;
1700
- return frame === page.mainFrame();
1701
- }
1702
- async function assertSubframeNavigationAllowed(frameUrl, ssrfPolicy) {
1703
- if (!ssrfPolicy || !frameUrl.startsWith("http://") && !frameUrl.startsWith("https://")) return;
1704
- await assertBrowserNavigationResultAllowed({
1705
- url: frameUrl,
1706
- ...withBrowserNavigationPolicy(ssrfPolicy)
1707
- });
1708
- }
1709
- function snapshotNetworkFrameUrl(frame) {
1710
- try {
1711
- const frameUrl = frame.url();
1712
- return frameUrl.startsWith("http://") || frameUrl.startsWith("https://") ? frameUrl : null;
1713
- } catch {
1714
- return null;
1715
- }
1716
- }
1717
- async function assertObservedDelayedNavigations(opts) {
1718
- let subframeError;
1719
- try {
1720
- for (const frameUrl of opts.observed.subframes) await assertSubframeNavigationAllowed(frameUrl, opts.ssrfPolicy);
1721
- } catch (err) {
1722
- subframeError = err;
1723
- }
1724
- if (opts.observed.mainFrameNavigated) await assertPageNavigationCompletedSafely({
1725
- cdpUrl: opts.cdpUrl,
1726
- page: opts.page,
1727
- response: null,
1728
- ssrfPolicy: opts.ssrfPolicy,
1729
- targetId: opts.targetId
1730
- });
1731
- if (subframeError) throw subframeError;
1732
- }
1733
- function observeDelayedInteractionNavigation(page, previousUrl) {
1734
- if (didCrossDocumentUrlChange(page, previousUrl)) return Promise.resolve({
1735
- mainFrameNavigated: true,
1736
- subframes: []
1737
- });
1738
- if (typeof page.on !== "function" || typeof page.off !== "function") return Promise.resolve({
1739
- mainFrameNavigated: false,
1740
- subframes: []
1741
- });
1742
- return new Promise((resolve) => {
1743
- const subframes = [];
1744
- const onFrameNavigated = (frame) => {
1745
- if (!isMainFrameNavigation(page, frame)) {
1746
- const frameUrl = snapshotNetworkFrameUrl(frame);
1747
- if (frameUrl) subframes.push(frameUrl);
1748
- return;
1749
- }
1750
- if (isHashOnlyNavigation(page.url(), previousUrl)) return;
1751
- cleanup();
1752
- resolve({
1753
- mainFrameNavigated: true,
1754
- subframes
1755
- });
1756
- };
1757
- const timeout = setTimeout(() => {
1758
- cleanup();
1759
- resolve({
1760
- mainFrameNavigated: didCrossDocumentUrlChange(page, previousUrl),
1761
- subframes
1762
- });
1763
- }, INTERACTION_NAVIGATION_GRACE_MS);
1764
- const cleanup = () => {
1765
- clearTimeout(timeout);
1766
- page.off("framenavigated", onFrameNavigated);
1767
- };
1768
- page.on("framenavigated", onFrameNavigated);
1769
- });
1770
- }
1771
- function scheduleDelayedInteractionNavigationGuard(opts) {
1772
- if (!opts.ssrfPolicy) return Promise.resolve();
1773
- const page = opts.page;
1774
- if (didCrossDocumentUrlChange(page, opts.previousUrl)) return assertPageNavigationCompletedSafely({
1775
- cdpUrl: opts.cdpUrl,
1776
- page: opts.page,
1777
- response: null,
1778
- ssrfPolicy: opts.ssrfPolicy,
1779
- targetId: opts.targetId
1780
- });
1781
- if (typeof page.on !== "function" || typeof page.off !== "function") return Promise.resolve();
1782
- pendingInteractionNavigationGuardCleanup.get(opts.page)?.();
1783
- return new Promise((resolve, reject) => {
1784
- const settle = (err) => {
1785
- cleanup();
1786
- if (err) {
1787
- reject(err);
1788
- return;
1789
- }
1790
- resolve();
1791
- };
1792
- const subframes = [];
1793
- const onFrameNavigated = (frame) => {
1794
- if (!isMainFrameNavigation(page, frame)) {
1795
- const frameUrl = snapshotNetworkFrameUrl(frame);
1796
- if (frameUrl) subframes.push(frameUrl);
1797
- return;
1798
- }
1799
- if (isHashOnlyNavigation(page.url(), opts.previousUrl)) return;
1800
- cleanup();
1801
- assertObservedDelayedNavigations({
1802
- cdpUrl: opts.cdpUrl,
1803
- page: opts.page,
1804
- ssrfPolicy: opts.ssrfPolicy,
1805
- targetId: opts.targetId,
1806
- observed: {
1807
- mainFrameNavigated: true,
1808
- subframes
1809
- }
1810
- }).then(() => settle(), settle);
1811
- };
1812
- const timeout = setTimeout(() => {
1813
- cleanup();
1814
- assertObservedDelayedNavigations({
1815
- cdpUrl: opts.cdpUrl,
1816
- page: opts.page,
1817
- ssrfPolicy: opts.ssrfPolicy,
1818
- targetId: opts.targetId,
1819
- observed: {
1820
- mainFrameNavigated: didCrossDocumentUrlChange(page, opts.previousUrl),
1821
- subframes
1822
- }
1823
- }).then(() => settle(), settle);
1824
- }, INTERACTION_NAVIGATION_GRACE_MS);
1825
- const cleanup = () => {
1826
- clearTimeout(timeout);
1827
- page.off("framenavigated", onFrameNavigated);
1828
- if (pendingInteractionNavigationGuardCleanup.get(opts.page) === settle) pendingInteractionNavigationGuardCleanup.delete(opts.page);
1829
- };
1830
- pendingInteractionNavigationGuardCleanup.set(opts.page, settle);
1831
- page.on("framenavigated", onFrameNavigated);
1832
- });
1833
- }
1834
- async function assertInteractionNavigationCompletedSafely(opts) {
1835
- if (!opts.ssrfPolicy) return await opts.action();
1836
- const navPage = opts.page;
1837
- let navigatedDuringAction = false;
1838
- const subframeNavigationsDuringAction = [];
1839
- const onFrameNavigated = (frame) => {
1840
- if (!isMainFrameNavigation(navPage, frame)) {
1841
- const frameUrl = snapshotNetworkFrameUrl(frame);
1842
- if (frameUrl) subframeNavigationsDuringAction.push(frameUrl);
1843
- return;
1844
- }
1845
- if (!isHashOnlyNavigation(opts.page.url(), opts.previousUrl)) navigatedDuringAction = true;
1846
- };
1847
- if (typeof navPage.on === "function") navPage.on("framenavigated", onFrameNavigated);
1848
- let result;
1849
- let actionError = null;
1850
- try {
1851
- result = await opts.action();
1852
- } catch (err) {
1853
- actionError = err;
1854
- } finally {
1855
- if (typeof navPage.off === "function") navPage.off("framenavigated", onFrameNavigated);
1856
- }
1857
- const navigationObserved = navigatedDuringAction || didCrossDocumentUrlChange(opts.page, opts.previousUrl);
1858
- let subframeError;
1859
- try {
1860
- for (const frameUrl of subframeNavigationsDuringAction) await assertSubframeNavigationAllowed(frameUrl, opts.ssrfPolicy);
1861
- } catch (err) {
1862
- subframeError = err;
1863
- }
1864
- if (navigationObserved) await assertPageNavigationCompletedSafely({
1865
- cdpUrl: opts.cdpUrl,
1866
- page: opts.page,
1867
- response: null,
1868
- ssrfPolicy: opts.ssrfPolicy,
1869
- targetId: opts.targetId
1870
- });
1871
- else if (actionError) {
1872
- const observed = await observeDelayedInteractionNavigation(opts.page, opts.previousUrl);
1873
- if (observed.mainFrameNavigated || observed.subframes.length > 0) await assertObservedDelayedNavigations({
1874
- cdpUrl: opts.cdpUrl,
1875
- page: opts.page,
1876
- ssrfPolicy: opts.ssrfPolicy,
1877
- targetId: opts.targetId,
1878
- observed
1879
- });
1880
- } else await scheduleDelayedInteractionNavigationGuard({
1881
- cdpUrl: opts.cdpUrl,
1882
- page: opts.page,
1883
- previousUrl: opts.previousUrl,
1884
- ssrfPolicy: opts.ssrfPolicy,
1885
- targetId: opts.targetId
1886
- });
1887
- if (subframeError) throw subframeError;
1888
- if (actionError) throw actionError;
1889
- return result;
1890
- }
1891
- async function awaitActionWithAbort(actionPromise, abortPromise, onActionResolvedAfterAbort) {
1892
- if (!abortPromise) return await actionPromise;
1893
- try {
1894
- return await Promise.race([actionPromise, abortPromise]);
1895
- } catch (err) {
1896
- actionPromise.then(() => onActionResolvedAfterAbort?.(), () => {});
1897
- throw err;
1898
- }
1899
- }
1900
- function createAbortPromise(signal) {
1901
- return createAbortPromiseWithListener(signal);
1902
- }
1903
- function createAbortPromiseWithListener(signal, onAbort) {
1904
- if (!signal) return { cleanup: () => {} };
1905
- let abortListener;
1906
- const abortPromise = signal.aborted ? (() => {
1907
- onAbort?.(signal.reason);
1908
- return Promise.reject(signal.reason ?? /* @__PURE__ */ new Error("aborted"));
1909
- })() : new Promise((_, reject) => {
1910
- abortListener = () => {
1911
- onAbort?.(signal.reason);
1912
- reject(signal.reason ?? /* @__PURE__ */ new Error("aborted"));
1913
- };
1914
- signal.addEventListener("abort", abortListener, { once: true });
1915
- });
1916
- abortPromise.catch(() => {});
1917
- return {
1918
- abortPromise,
1919
- cleanup: () => {
1920
- if (abortListener) signal.removeEventListener("abort", abortListener);
1921
- }
1922
- };
1923
- }
1924
- async function highlightViaPlaywright(opts) {
1925
- const page = await getRestoredPageForTarget(opts);
1926
- const ref = requireRef(opts.ref);
1927
- try {
1928
- await refLocator(page, ref).highlight();
1929
- } catch (err) {
1930
- throw toFriendlyInteractionError(err, ref);
1931
- }
1932
- }
1933
- async function clickViaPlaywright(opts) {
1934
- const resolved = requireRefOrSelector(opts.ref, opts.selector);
1935
- const page = await getRestoredPageForTarget(opts);
1936
- const label = resolved.ref ?? resolved.selector;
1937
- const locator = resolved.ref ? refLocator(page, requireRef(resolved.ref)) : page.locator(resolved.selector);
1938
- const timeout = resolveInteractionTimeoutMs(opts.timeoutMs);
1939
- const previousUrl = page.url();
1940
- const signal = opts.signal;
1941
- let abortListener;
1942
- let abortReject;
1943
- let abortPromise;
1944
- if (signal) {
1945
- abortPromise = new Promise((_, reject) => {
1946
- abortReject = reject;
1947
- });
1948
- abortPromise.catch(() => {});
1949
- const disconnect = () => {
1950
- if (isBrowserObservedDialogBlockedError(signal.reason)) return;
1951
- forceDisconnectPlaywrightForTarget({
1952
- cdpUrl: opts.cdpUrl,
1953
- targetId: opts.targetId,
1954
- reason: "click aborted"
1955
- }).catch(() => {});
1956
- };
1957
- if (signal.aborted) {
1958
- disconnect();
1959
- throw signal.reason ?? /* @__PURE__ */ new Error("aborted");
1960
- }
1961
- abortListener = () => {
1962
- disconnect();
1963
- abortReject?.(signal.reason ?? /* @__PURE__ */ new Error("aborted"));
1964
- };
1965
- signal.addEventListener("abort", abortListener, { once: true });
1966
- if (signal.aborted) {
1967
- abortListener();
1968
- throw signal.reason ?? /* @__PURE__ */ new Error("aborted");
1969
- }
1970
- }
1971
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, signal);
1972
- try {
1973
- await assertInteractionNavigationCompletedSafely({
1974
- action: async () => {
1975
- const delayMs = resolveBoundedDelayMs(opts.delayMs, "click delayMs", ACT_MAX_CLICK_DELAY_MS);
1976
- if (delayMs > 0) {
1977
- await awaitActionWithAbort(locator.hover({ timeout }), abortPromise, reconcileRemoteDialog);
1978
- await new Promise((resolve) => setTimeout(resolve, delayMs));
1979
- }
1980
- if (opts.doubleClick) {
1981
- await awaitActionWithAbort(locator.dblclick({
1982
- timeout,
1983
- button: opts.button,
1984
- modifiers: opts.modifiers
1985
- }), abortPromise, reconcileRemoteDialog);
1986
- return;
1987
- }
1988
- await awaitActionWithAbort(locator.click({
1989
- timeout,
1990
- button: opts.button,
1991
- modifiers: opts.modifiers
1992
- }), abortPromise, reconcileRemoteDialog);
1993
- },
1994
- cdpUrl: opts.cdpUrl,
1995
- page,
1996
- previousUrl,
1997
- ssrfPolicy: opts.ssrfPolicy,
1998
- targetId: opts.targetId
1999
- });
2000
- } catch (err) {
2001
- throw toFriendlyInteractionError(err, label);
2002
- } finally {
2003
- if (signal && abortListener) signal.removeEventListener("abort", abortListener);
2004
- }
2005
- }
2006
- async function clickCoordsViaPlaywright(opts) {
2007
- const page = await getRestoredPageForTarget(opts);
2008
- const previousUrl = page.url();
2009
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2010
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2011
- await assertInteractionNavigationCompletedSafely({
2012
- action: async () => {
2013
- await awaitActionWithAbort(page.mouse.click(opts.x, opts.y, {
2014
- button: opts.button,
2015
- clickCount: opts.doubleClick ? 2 : 1,
2016
- delay: resolveBoundedDelayMs(opts.delayMs, "clickCoords delayMs", ACT_MAX_CLICK_DELAY_MS)
2017
- }), abortPromise, reconcileRemoteDialog);
2018
- },
2019
- cdpUrl: opts.cdpUrl,
2020
- page,
2021
- previousUrl,
2022
- ssrfPolicy: opts.ssrfPolicy,
2023
- targetId: opts.targetId
2024
- }).finally(cleanup);
2025
- }
2026
- async function hoverViaPlaywright(opts) {
2027
- const resolved = requireRefOrSelector(opts.ref, opts.selector);
2028
- const page = await getRestoredPageForTarget(opts);
2029
- const label = resolved.ref ?? resolved.selector;
2030
- const locator = resolved.ref ? refLocator(page, requireRef(resolved.ref)) : page.locator(resolved.selector);
2031
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2032
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2033
- try {
2034
- await awaitActionWithAbort(locator.hover({ timeout: resolveInteractionTimeoutMs(opts.timeoutMs) }), abortPromise, reconcileRemoteDialog);
2035
- } catch (err) {
2036
- throw toFriendlyInteractionError(err, label);
2037
- } finally {
2038
- cleanup();
2039
- }
2040
- }
2041
- async function dragViaPlaywright(opts) {
2042
- const resolvedStart = requireRefOrSelector(opts.startRef, opts.startSelector);
2043
- const resolvedEnd = requireRefOrSelector(opts.endRef, opts.endSelector);
2044
- const page = await getRestoredPageForTarget(opts);
2045
- const startLocator = resolvedStart.ref ? refLocator(page, requireRef(resolvedStart.ref)) : page.locator(resolvedStart.selector);
2046
- const endLocator = resolvedEnd.ref ? refLocator(page, requireRef(resolvedEnd.ref)) : page.locator(resolvedEnd.selector);
2047
- const startLabel = resolvedStart.ref ?? resolvedStart.selector;
2048
- const endLabel = resolvedEnd.ref ?? resolvedEnd.selector;
2049
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2050
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2051
- try {
2052
- await awaitActionWithAbort(startLocator.dragTo(endLocator, { timeout: resolveInteractionTimeoutMs(opts.timeoutMs) }), abortPromise, reconcileRemoteDialog);
2053
- } catch (err) {
2054
- throw toFriendlyInteractionError(err, `${startLabel} -> ${endLabel}`);
2055
- } finally {
2056
- cleanup();
2057
- }
2058
- }
2059
- async function selectOptionViaPlaywright(opts) {
2060
- const resolved = requireRefOrSelector(opts.ref, opts.selector);
2061
- if (!opts.values?.length) throw new Error("values are required");
2062
- const page = await getRestoredPageForTarget(opts);
2063
- const label = resolved.ref ?? resolved.selector;
2064
- const locator = resolved.ref ? refLocator(page, requireRef(resolved.ref)) : page.locator(resolved.selector);
2065
- const previousUrl = page.url();
2066
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2067
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2068
- try {
2069
- await assertInteractionNavigationCompletedSafely({
2070
- action: async () => {
2071
- await awaitActionWithAbort(locator.selectOption(opts.values, { timeout: resolveInteractionTimeoutMs(opts.timeoutMs) }), abortPromise, reconcileRemoteDialog);
2072
- },
2073
- cdpUrl: opts.cdpUrl,
2074
- page,
2075
- previousUrl,
2076
- ssrfPolicy: opts.ssrfPolicy,
2077
- targetId: opts.targetId
2078
- });
2079
- } catch (err) {
2080
- throw toFriendlyInteractionError(err, label);
2081
- } finally {
2082
- cleanup();
2083
- }
2084
- }
2085
- async function pressKeyViaPlaywright(opts) {
2086
- const key = normalizeOptionalString$1(opts.key) ?? "";
2087
- if (!key) throw new Error("key is required");
2088
- const page = await getPageForTargetId(opts);
2089
- ensurePageState(page);
2090
- const previousUrl = page.url();
2091
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2092
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2093
- try {
2094
- await assertInteractionNavigationCompletedSafely({
2095
- action: async () => {
2096
- await awaitActionWithAbort(page.keyboard.press(key, { delay: Math.max(0, Math.floor(opts.delayMs ?? 0)) }), abortPromise, reconcileRemoteDialog);
2097
- },
2098
- cdpUrl: opts.cdpUrl,
2099
- page,
2100
- previousUrl,
2101
- ssrfPolicy: opts.ssrfPolicy,
2102
- targetId: opts.targetId
2103
- });
2104
- } finally {
2105
- cleanup();
2106
- }
2107
- }
2108
- async function typeViaPlaywright(opts) {
2109
- const resolved = requireRefOrSelector(opts.ref, opts.selector);
2110
- const text = opts.text ?? "";
2111
- const page = await getRestoredPageForTarget(opts);
2112
- const label = resolved.ref ?? resolved.selector;
2113
- const locator = resolved.ref ? refLocator(page, requireRef(resolved.ref)) : page.locator(resolved.selector);
2114
- const timeout = resolveInteractionTimeoutMs(opts.timeoutMs);
2115
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2116
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2117
- try {
2118
- const previousUrl = page.url();
2119
- if (opts.slowly) await assertInteractionNavigationCompletedSafely({
2120
- action: async () => {
2121
- await awaitActionWithAbort(locator.click({ timeout }), abortPromise, reconcileRemoteDialog);
2122
- await awaitActionWithAbort(locator.type(text, {
2123
- timeout,
2124
- delay: 75
2125
- }), abortPromise, reconcileRemoteDialog);
2126
- if (opts.submit) await awaitActionWithAbort(locator.press("Enter", { timeout }), abortPromise, reconcileRemoteDialog);
2127
- },
2128
- cdpUrl: opts.cdpUrl,
2129
- page,
2130
- previousUrl,
2131
- ssrfPolicy: opts.ssrfPolicy,
2132
- targetId: opts.targetId
2133
- });
2134
- else await assertInteractionNavigationCompletedSafely({
2135
- action: async () => {
2136
- await awaitActionWithAbort(locator.fill(text, { timeout }), abortPromise, reconcileRemoteDialog);
2137
- if (opts.submit) await awaitActionWithAbort(locator.press("Enter", { timeout }), abortPromise, reconcileRemoteDialog);
2138
- },
2139
- cdpUrl: opts.cdpUrl,
2140
- page,
2141
- previousUrl,
2142
- ssrfPolicy: opts.ssrfPolicy,
2143
- targetId: opts.targetId
2144
- });
2145
- } catch (err) {
2146
- throw toFriendlyInteractionError(err, label);
2147
- } finally {
2148
- cleanup();
2149
- }
2150
- }
2151
- async function fillFormViaPlaywright(opts) {
2152
- const page = await getRestoredPageForTarget(opts);
2153
- const timeout = resolveInteractionTimeoutMs(opts.timeoutMs);
2154
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2155
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2156
- try {
2157
- for (const field of opts.fields) {
2158
- const ref = field.ref.trim();
2159
- const type = (field.type || "text").trim() || "text";
2160
- const rawValue = field.value;
2161
- const value = typeof rawValue === "string" ? rawValue : typeof rawValue === "number" || typeof rawValue === "boolean" ? String(rawValue) : "";
2162
- if (!ref) continue;
2163
- const locator = refLocator(page, ref);
2164
- if (type === "checkbox" || type === "radio") {
2165
- const checked = rawValue === true || rawValue === 1 || rawValue === "1" || rawValue === "true";
2166
- try {
2167
- const previousUrl = page.url();
2168
- await assertInteractionNavigationCompletedSafely({
2169
- action: async () => {
2170
- await awaitActionWithAbort(locator.setChecked(checked, { timeout }), abortPromise, reconcileRemoteDialog);
2171
- },
2172
- cdpUrl: opts.cdpUrl,
2173
- page,
2174
- previousUrl,
2175
- ssrfPolicy: opts.ssrfPolicy,
2176
- targetId: opts.targetId
2177
- });
2178
- } catch (err) {
2179
- throw toFriendlyInteractionError(err, ref);
2180
- }
2181
- continue;
2182
- }
2183
- try {
2184
- const previousUrl = page.url();
2185
- await assertInteractionNavigationCompletedSafely({
2186
- action: async () => {
2187
- await awaitActionWithAbort(locator.fill(value, { timeout }), abortPromise, reconcileRemoteDialog);
2188
- },
2189
- cdpUrl: opts.cdpUrl,
2190
- page,
2191
- previousUrl,
2192
- ssrfPolicy: opts.ssrfPolicy,
2193
- targetId: opts.targetId
2194
- });
2195
- } catch (err) {
2196
- throw toFriendlyInteractionError(err, ref);
2197
- }
2198
- }
2199
- } finally {
2200
- cleanup();
2201
- }
2202
- }
2203
- async function evaluateViaPlaywright(opts) {
2204
- const fnText = normalizeOptionalString$1(opts.fn) ?? "";
2205
- if (!fnText) throw new Error("function is required");
2206
- const page = await getRestoredPageForTarget(opts);
2207
- const outerTimeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
2208
- let evaluateTimeout = Math.max(1e3, Math.min(12e4, outerTimeout - 500));
2209
- evaluateTimeout = Math.min(evaluateTimeout, outerTimeout);
2210
- const signal = opts.signal;
2211
- const { abortPromise, cleanup } = createAbortPromiseWithListener(signal, (reason) => {
2212
- if (isBrowserObservedDialogBlockedError(reason)) return;
2213
- forceDisconnectPlaywrightForTarget({
2214
- cdpUrl: opts.cdpUrl,
2215
- targetId: opts.targetId,
2216
- reason: "evaluate aborted"
2217
- }).catch(() => {});
2218
- });
2219
- if (signal?.aborted) throw signal.reason ?? /* @__PURE__ */ new Error("aborted");
2220
- try {
2221
- const previousUrl = page.url();
2222
- if (opts.ssrfPolicy) await assertPageNavigationCompletedSafely({
2223
- cdpUrl: opts.cdpUrl,
2224
- page,
2225
- response: null,
2226
- ssrfPolicy: opts.ssrfPolicy,
2227
- targetId: opts.targetId
2228
- });
2229
- if (opts.ref) {
2230
- const locator = refLocator(page, opts.ref);
2231
- const elementEvaluator = new Function("el", "args", `
2232
- "use strict";
2233
- var fnBody = args.fnBody, timeoutMs = args.timeoutMs;
2234
- try {
2235
- var candidate = eval("(" + fnBody + ")");
2236
- var result = typeof candidate === "function" ? candidate(el) : candidate;
2237
- if (result && typeof result.then === "function") {
2238
- return Promise.race([
2239
- result,
2240
- new Promise(function(_, reject) {
2241
- setTimeout(function() { reject(new Error("evaluate timed out after " + timeoutMs + "ms")); }, timeoutMs);
2242
- })
2243
- ]);
2244
- }
2245
- return result;
2246
- } catch (err) {
2247
- throw new Error("Invalid evaluate function: " + (err && err.message ? err.message : String(err)));
2248
- }
2249
- `);
2250
- const evalPromise = locator.evaluate(elementEvaluator, {
2251
- fnBody: fnText,
2252
- timeoutMs: evaluateTimeout
2253
- });
2254
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, signal);
2255
- return await assertInteractionNavigationCompletedSafely({
2256
- action: () => awaitActionWithAbort(evalPromise, abortPromise, reconcileRemoteDialog),
2257
- cdpUrl: opts.cdpUrl,
2258
- page,
2259
- previousUrl,
2260
- ssrfPolicy: opts.ssrfPolicy,
2261
- targetId: opts.targetId
2262
- });
2263
- }
2264
- const browserEvaluator = new Function("args", `
2265
- "use strict";
2266
- var fnBody = args.fnBody, timeoutMs = args.timeoutMs;
2267
- try {
2268
- var candidate = eval("(" + fnBody + ")");
2269
- var result = typeof candidate === "function" ? candidate() : candidate;
2270
- if (result && typeof result.then === "function") {
2271
- return Promise.race([
2272
- result,
2273
- new Promise(function(_, reject) {
2274
- setTimeout(function() { reject(new Error("evaluate timed out after " + timeoutMs + "ms")); }, timeoutMs);
2275
- })
2276
- ]);
2277
- }
2278
- return result;
2279
- } catch (err) {
2280
- throw new Error("Invalid evaluate function: " + (err && err.message ? err.message : String(err)));
2281
- }
2282
- `);
2283
- const evalPromise = page.evaluate(browserEvaluator, {
2284
- fnBody: fnText,
2285
- timeoutMs: evaluateTimeout
2286
- });
2287
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, signal);
2288
- return await assertInteractionNavigationCompletedSafely({
2289
- action: () => awaitActionWithAbort(evalPromise, abortPromise, reconcileRemoteDialog),
2290
- cdpUrl: opts.cdpUrl,
2291
- page,
2292
- previousUrl,
2293
- ssrfPolicy: opts.ssrfPolicy,
2294
- targetId: opts.targetId
2295
- });
2296
- } finally {
2297
- cleanup();
2298
- }
2299
- }
2300
- async function scrollIntoViewViaPlaywright(opts) {
2301
- const resolved = requireRefOrSelector(opts.ref, opts.selector);
2302
- const page = await getRestoredPageForTarget(opts);
2303
- const timeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
2304
- const label = resolved.ref ?? resolved.selector;
2305
- const locator = resolved.ref ? refLocator(page, requireRef(resolved.ref)) : page.locator(resolved.selector);
2306
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2307
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2308
- try {
2309
- await awaitActionWithAbort(locator.scrollIntoViewIfNeeded({ timeout }), abortPromise, reconcileRemoteDialog);
2310
- } catch (err) {
2311
- throw toFriendlyInteractionError(err, label);
2312
- } finally {
2313
- cleanup();
2314
- }
2315
- }
2316
- async function waitForViaPlaywright(opts) {
2317
- const page = await getPageForTargetId(opts);
2318
- ensurePageState(page);
2319
- const timeout = resolveActWaitTimeoutMs(opts.timeoutMs);
2320
- const { abortPromise, cleanup } = createAbortPromise(opts.signal);
2321
- const reconcileRemoteDialog = () => reconcileRemoteDialogAfterActionSettled(page, opts.signal);
2322
- const waitForStep = async (stepPromise) => {
2323
- await awaitActionWithAbort(stepPromise, abortPromise, reconcileRemoteDialog);
2324
- };
2325
- try {
2326
- if (typeof opts.timeMs === "number" && Number.isFinite(opts.timeMs)) await waitForStep(page.waitForTimeout(resolveBoundedDelayMs(opts.timeMs, "wait timeMs", ACT_MAX_WAIT_TIME_MS)));
2327
- if (opts.text) await waitForStep(page.getByText(opts.text).first().waitFor({
2328
- state: "visible",
2329
- timeout
2330
- }));
2331
- if (opts.textGone) await waitForStep(page.getByText(opts.textGone).first().waitFor({
2332
- state: "hidden",
2333
- timeout
2334
- }));
2335
- if (opts.selector) {
2336
- const selector = normalizeOptionalString$1(opts.selector) ?? "";
2337
- if (selector) await waitForStep(page.locator(selector).first().waitFor({
2338
- state: "visible",
2339
- timeout
2340
- }));
2341
- }
2342
- if (opts.url) {
2343
- const url = normalizeOptionalString$1(opts.url) ?? "";
2344
- if (url) await waitForStep(page.waitForURL(url, { timeout }));
2345
- }
2346
- if (opts.loadState) await waitForStep(page.waitForLoadState(opts.loadState, { timeout }));
2347
- if (opts.fn) {
2348
- const fn = normalizeOptionalString$1(opts.fn) ?? "";
2349
- if (fn) await waitForStep(page.waitForFunction(fn, { timeout }));
2350
- }
2351
- } finally {
2352
- cleanup();
2353
- }
2354
- }
2355
- async function takeScreenshotViaPlaywright(opts) {
2356
- const page = await getPageForTargetId(opts);
2357
- ensurePageState(page);
2358
- restoreRoleRefsForTarget({
2359
- cdpUrl: opts.cdpUrl,
2360
- targetId: opts.targetId,
2361
- page
2362
- });
2363
- const type = opts.type ?? "png";
2364
- if (opts.ref) {
2365
- if (opts.fullPage) throw new Error("fullPage is not supported for element screenshots");
2366
- return { buffer: await refLocator(page, opts.ref).screenshot({
2367
- type,
2368
- timeout: opts.timeoutMs
2369
- }) };
2370
- }
2371
- if (opts.element) {
2372
- if (opts.fullPage) throw new Error("fullPage is not supported for element screenshots");
2373
- return { buffer: await page.locator(opts.element).first().screenshot({
2374
- type,
2375
- timeout: opts.timeoutMs
2376
- }) };
2377
- }
2378
- return { buffer: await page.screenshot({
2379
- type,
2380
- fullPage: Boolean(opts.fullPage),
2381
- timeout: opts.timeoutMs
2382
- }) };
2383
- }
2384
- async function screenshotWithLabelsViaPlaywright(opts) {
2385
- const page = await getPageForTargetId(opts);
2386
- ensurePageState(page);
2387
- restoreRoleRefsForTarget({
2388
- cdpUrl: opts.cdpUrl,
2389
- targetId: opts.targetId,
2390
- page
2391
- });
2392
- const type = opts.type ?? "png";
2393
- const maxLabels = typeof opts.maxLabels === "number" && Number.isFinite(opts.maxLabels) ? Math.max(1, Math.floor(opts.maxLabels)) : 150;
2394
- const viewport = await page.evaluate(() => ({
2395
- scrollX: window.scrollX || 0,
2396
- scrollY: window.scrollY || 0,
2397
- width: window.innerWidth || 0,
2398
- height: window.innerHeight || 0
2399
- }));
2400
- const refs = Object.keys(opts.refs ?? {});
2401
- const boxes = [];
2402
- let skipped = 0;
2403
- for (const ref of refs) {
2404
- if (boxes.length >= maxLabels) {
2405
- skipped += 1;
2406
- continue;
2407
- }
2408
- try {
2409
- const box = await refLocator(page, ref).boundingBox();
2410
- if (!box) {
2411
- skipped += 1;
2412
- continue;
2413
- }
2414
- const x0 = box.x;
2415
- const y0 = box.y;
2416
- const x1 = box.x + box.width;
2417
- const y1 = box.y + box.height;
2418
- const vx0 = viewport.scrollX;
2419
- const vy0 = viewport.scrollY;
2420
- const vx1 = viewport.scrollX + viewport.width;
2421
- const vy1 = viewport.scrollY + viewport.height;
2422
- if (x1 < vx0 || x0 > vx1 || y1 < vy0 || y0 > vy1) {
2423
- skipped += 1;
2424
- continue;
2425
- }
2426
- boxes.push({
2427
- ref,
2428
- x: x0 - viewport.scrollX,
2429
- y: y0 - viewport.scrollY,
2430
- w: Math.max(1, box.width),
2431
- h: Math.max(1, box.height)
2432
- });
2433
- } catch {
2434
- skipped += 1;
2435
- }
2436
- }
2437
- try {
2438
- if (boxes.length > 0) await page.evaluate((labels) => {
2439
- document.querySelectorAll("[data-daocore-labels]").forEach((el) => el.remove());
2440
- const root = document.createElement("div");
2441
- root.setAttribute("data-daocore-labels", "1");
2442
- root.style.position = "fixed";
2443
- root.style.left = "0";
2444
- root.style.top = "0";
2445
- root.style.zIndex = "2147483647";
2446
- root.style.pointerEvents = "none";
2447
- root.style.fontFamily = "\"SF Mono\",\"SFMono-Regular\",Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace";
2448
- const clamp = (value, min, max) => Math.min(max, Math.max(min, value));
2449
- for (const label of labels) {
2450
- const box = document.createElement("div");
2451
- box.setAttribute("data-daocore-labels", "1");
2452
- box.style.position = "absolute";
2453
- box.style.left = `${label.x}px`;
2454
- box.style.top = `${label.y}px`;
2455
- box.style.width = `${label.w}px`;
2456
- box.style.height = `${label.h}px`;
2457
- box.style.border = "2px solid #ffb020";
2458
- box.style.boxSizing = "border-box";
2459
- const tag = document.createElement("div");
2460
- tag.setAttribute("data-daocore-labels", "1");
2461
- tag.textContent = label.ref;
2462
- tag.style.position = "absolute";
2463
- tag.style.left = `${label.x}px`;
2464
- tag.style.top = `${clamp(label.y - 18, 0, 2e4)}px`;
2465
- tag.style.background = "#ffb020";
2466
- tag.style.color = "#1a1a1a";
2467
- tag.style.fontSize = "12px";
2468
- tag.style.lineHeight = "14px";
2469
- tag.style.padding = "1px 4px";
2470
- tag.style.borderRadius = "3px";
2471
- tag.style.boxShadow = "0 1px 2px rgba(0,0,0,0.35)";
2472
- tag.style.whiteSpace = "nowrap";
2473
- root.appendChild(box);
2474
- root.appendChild(tag);
2475
- }
2476
- document.documentElement.appendChild(root);
2477
- }, boxes);
2478
- return {
2479
- buffer: await page.screenshot({
2480
- type,
2481
- timeout: opts.timeoutMs
2482
- }),
2483
- labels: boxes.length,
2484
- skipped
2485
- };
2486
- } finally {
2487
- await page.evaluate(() => {
2488
- document.querySelectorAll("[data-daocore-labels]").forEach((el) => el.remove());
2489
- }).catch(() => {});
2490
- }
2491
- }
2492
- async function setInputFilesViaPlaywright(opts) {
2493
- const page = await getPageForTargetId(opts);
2494
- ensurePageState(page);
2495
- restoreRoleRefsForTarget({
2496
- cdpUrl: opts.cdpUrl,
2497
- targetId: opts.targetId,
2498
- page
2499
- });
2500
- if (!opts.paths.length) throw new Error("paths are required");
2501
- const inputRef = normalizeOptionalString$1(opts.inputRef) ?? "";
2502
- const element = normalizeOptionalString$1(opts.element) ?? "";
2503
- if (inputRef && element) throw new Error("inputRef and element are mutually exclusive");
2504
- if (!inputRef && !element) throw new Error("inputRef or element is required");
2505
- const locator = inputRef ? refLocator(page, inputRef) : page.locator(element).first();
2506
- const uploadPathsResult = await resolveStrictExistingPathsWithinRoot({
2507
- rootDir: DEFAULT_UPLOAD_DIR,
2508
- requestedPaths: opts.paths,
2509
- scopeLabel: `uploads directory (${DEFAULT_UPLOAD_DIR})`
2510
- });
2511
- if (!uploadPathsResult.ok) throw new Error(uploadPathsResult.error);
2512
- const resolvedPaths = uploadPathsResult.paths;
2513
- try {
2514
- await locator.setInputFiles(resolvedPaths);
2515
- } catch (err) {
2516
- throw toFriendlyInteractionError(err, inputRef || element);
2517
- }
2518
- try {
2519
- const handle = await locator.elementHandle();
2520
- if (handle) await handle.evaluate((el) => {
2521
- el.dispatchEvent(new Event("input", { bubbles: true }));
2522
- el.dispatchEvent(new Event("change", { bubbles: true }));
2523
- });
2524
- } catch {}
2525
- }
2526
- async function executeSingleAction(action, cdpUrl, targetId, evaluateEnabled, ssrfPolicy, depth = 0, signal) {
2527
- if (depth > 5) throw new Error(`Batch nesting depth exceeds maximum of 5`);
2528
- const effectiveTargetId = action.targetId ?? targetId;
2529
- switch (action.kind) {
2530
- case "click":
2531
- await clickViaPlaywright({
2532
- cdpUrl,
2533
- targetId: effectiveTargetId,
2534
- ref: action.ref,
2535
- selector: action.selector,
2536
- doubleClick: action.doubleClick,
2537
- button: action.button,
2538
- modifiers: action.modifiers,
2539
- delayMs: action.delayMs,
2540
- timeoutMs: action.timeoutMs,
2541
- ssrfPolicy,
2542
- signal
2543
- });
2544
- break;
2545
- case "clickCoords":
2546
- await clickCoordsViaPlaywright({
2547
- cdpUrl,
2548
- targetId: effectiveTargetId,
2549
- x: action.x,
2550
- y: action.y,
2551
- doubleClick: action.doubleClick,
2552
- button: action.button,
2553
- delayMs: action.delayMs,
2554
- timeoutMs: action.timeoutMs,
2555
- ssrfPolicy,
2556
- signal
2557
- });
2558
- break;
2559
- case "type":
2560
- await typeViaPlaywright({
2561
- cdpUrl,
2562
- targetId: effectiveTargetId,
2563
- ref: action.ref,
2564
- selector: action.selector,
2565
- text: action.text,
2566
- submit: action.submit,
2567
- slowly: action.slowly,
2568
- timeoutMs: action.timeoutMs,
2569
- ssrfPolicy,
2570
- signal
2571
- });
2572
- break;
2573
- case "press":
2574
- await pressKeyViaPlaywright({
2575
- cdpUrl,
2576
- targetId: effectiveTargetId,
2577
- key: action.key,
2578
- delayMs: action.delayMs,
2579
- ssrfPolicy,
2580
- signal
2581
- });
2582
- break;
2583
- case "hover":
2584
- await hoverViaPlaywright({
2585
- cdpUrl,
2586
- targetId: effectiveTargetId,
2587
- ref: action.ref,
2588
- selector: action.selector,
2589
- timeoutMs: action.timeoutMs,
2590
- signal
2591
- });
2592
- break;
2593
- case "scrollIntoView":
2594
- await scrollIntoViewViaPlaywright({
2595
- cdpUrl,
2596
- targetId: effectiveTargetId,
2597
- ref: action.ref,
2598
- selector: action.selector,
2599
- timeoutMs: action.timeoutMs,
2600
- signal
2601
- });
2602
- break;
2603
- case "drag":
2604
- await dragViaPlaywright({
2605
- cdpUrl,
2606
- targetId: effectiveTargetId,
2607
- startRef: action.startRef,
2608
- startSelector: action.startSelector,
2609
- endRef: action.endRef,
2610
- endSelector: action.endSelector,
2611
- timeoutMs: action.timeoutMs,
2612
- signal
2613
- });
2614
- break;
2615
- case "select":
2616
- await selectOptionViaPlaywright({
2617
- cdpUrl,
2618
- targetId: effectiveTargetId,
2619
- ref: action.ref,
2620
- selector: action.selector,
2621
- values: action.values,
2622
- timeoutMs: action.timeoutMs,
2623
- ssrfPolicy,
2624
- signal
2625
- });
2626
- break;
2627
- case "fill":
2628
- await fillFormViaPlaywright({
2629
- cdpUrl,
2630
- targetId: effectiveTargetId,
2631
- fields: action.fields,
2632
- timeoutMs: action.timeoutMs,
2633
- ssrfPolicy,
2634
- signal
2635
- });
2636
- break;
2637
- case "resize":
2638
- await resizeViewportViaPlaywright({
2639
- cdpUrl,
2640
- targetId: effectiveTargetId,
2641
- width: action.width,
2642
- height: action.height
2643
- });
2644
- break;
2645
- case "wait":
2646
- if (action.fn && !evaluateEnabled) throw new Error("wait --fn is disabled by config (browser.evaluateEnabled=false)");
2647
- await waitForViaPlaywright({
2648
- cdpUrl,
2649
- targetId: effectiveTargetId,
2650
- timeMs: action.timeMs,
2651
- text: action.text,
2652
- textGone: action.textGone,
2653
- selector: action.selector,
2654
- url: action.url,
2655
- loadState: action.loadState,
2656
- fn: action.fn,
2657
- timeoutMs: action.timeoutMs,
2658
- signal
2659
- });
2660
- break;
2661
- case "evaluate":
2662
- if (!evaluateEnabled) throw new Error("act:evaluate is disabled by config (browser.evaluateEnabled=false)");
2663
- return await evaluateViaPlaywright({
2664
- cdpUrl,
2665
- targetId: effectiveTargetId,
2666
- ssrfPolicy,
2667
- fn: action.fn,
2668
- ref: action.ref,
2669
- timeoutMs: action.timeoutMs,
2670
- signal
2671
- });
2672
- case "close":
2673
- await closePageViaPlaywright({
2674
- cdpUrl,
2675
- targetId: effectiveTargetId
2676
- });
2677
- break;
2678
- case "batch":
2679
- await batchViaPlaywright({
2680
- cdpUrl,
2681
- targetId: effectiveTargetId,
2682
- ssrfPolicy,
2683
- actions: action.actions,
2684
- stopOnError: action.stopOnError,
2685
- evaluateEnabled,
2686
- depth: depth + 1,
2687
- signal
2688
- });
2689
- break;
2690
- default: throw new Error(`Unsupported batch action kind: ${action.kind}`);
2691
- }
2692
- }
2693
- async function executeActViaPlaywright(opts) {
2694
- const dialogAbort = createObservedDialogAbortSignalForPage({
2695
- page: await getPageForTargetId({
2696
- cdpUrl: opts.cdpUrl,
2697
- targetId: opts.targetId,
2698
- ssrfPolicy: opts.ssrfPolicy
2699
- }),
2700
- parentSignal: opts.signal
2701
- });
2702
- try {
2703
- if (opts.action.kind === "batch") return { results: (await batchViaPlaywright({
2704
- cdpUrl: opts.cdpUrl,
2705
- targetId: opts.targetId,
2706
- ssrfPolicy: opts.ssrfPolicy,
2707
- actions: opts.action.actions,
2708
- stopOnError: opts.action.stopOnError,
2709
- evaluateEnabled: opts.evaluateEnabled,
2710
- signal: dialogAbort.signal
2711
- })).results };
2712
- const result = await executeSingleAction(opts.action, opts.cdpUrl, opts.targetId, opts.evaluateEnabled, opts.ssrfPolicy, 0, dialogAbort.signal);
2713
- if (opts.action.kind === "evaluate") return { result };
2714
- return {};
2715
- } catch (err) {
2716
- if (isBrowserObservedDialogBlockedError(err)) return {
2717
- blockedByDialog: true,
2718
- browserState: err.browserState
2719
- };
2720
- throw err;
2721
- } finally {
2722
- dialogAbort.cleanup();
2723
- }
2724
- }
2725
- async function batchViaPlaywright(opts) {
2726
- const depth = opts.depth ?? 0;
2727
- if (depth > 5) throw new Error(`Batch nesting depth exceeds maximum of 5`);
2728
- if (opts.actions.length > 100) throw new Error(`Batch exceeds maximum of 100 actions`);
2729
- const results = [];
2730
- for (const action of opts.actions) {
2731
- if (opts.signal?.aborted) throw opts.signal.reason ?? /* @__PURE__ */ new Error("aborted");
2732
- try {
2733
- await executeSingleAction(action, opts.cdpUrl, opts.targetId, opts.evaluateEnabled, opts.ssrfPolicy, depth, opts.signal);
2734
- results.push({ ok: true });
2735
- } catch (err) {
2736
- if (isBrowserObservedDialogBlockedError(err)) throw err;
2737
- const message = formatErrorMessage(err);
2738
- results.push({
2739
- ok: false,
2740
- error: message
2741
- });
2742
- if (opts.stopOnError !== false) break;
2743
- }
2744
- }
2745
- return { results };
2746
- }
2747
- //#endregion
2748
- //#region extensions/browser/src/browser/pw-tools-core.responses.ts
2749
- function normalizeOptionalString(value) {
2750
- return typeof value === "string" ? value.trim() || void 0 : void 0;
2751
- }
2752
- async function responseBodyViaPlaywright(opts) {
2753
- const pattern = normalizeOptionalString(opts.url) ?? "";
2754
- if (!pattern) throw new Error("url is required");
2755
- const maxChars = typeof opts.maxChars === "number" && Number.isFinite(opts.maxChars) ? Math.max(1, Math.min(5e6, Math.floor(opts.maxChars))) : 2e5;
2756
- const timeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
2757
- const page = await getPageForTargetId(opts);
2758
- ensurePageState(page);
2759
- const resp = await new Promise((resolve, reject) => {
2760
- let done = false;
2761
- let timer;
2762
- let handler;
2763
- const cleanup = () => {
2764
- if (timer) clearTimeout(timer);
2765
- timer = void 0;
2766
- if (handler) page.off("response", handler);
2767
- };
2768
- handler = (resp) => {
2769
- if (done) return;
2770
- if (!matchBrowserUrlPattern(pattern, resp.url?.() || "")) return;
2771
- done = true;
2772
- cleanup();
2773
- resolve(resp);
2774
- };
2775
- page.on("response", handler);
2776
- timer = setTimeout(() => {
2777
- if (done) return;
2778
- done = true;
2779
- cleanup();
2780
- reject(/* @__PURE__ */ new Error(`Response not found for url pattern "${pattern}". Run 'daocore browser requests' to inspect recent network activity.`));
2781
- }, timeout);
2782
- });
2783
- const url = resp.url?.() || "";
2784
- const status = resp.status?.();
2785
- const headers = resp.headers?.();
2786
- let bodyText = "";
2787
- try {
2788
- if (typeof resp.text === "function") bodyText = await resp.text();
2789
- else if (typeof resp.body === "function") {
2790
- const buf = await resp.body();
2791
- bodyText = new TextDecoder("utf-8").decode(buf);
2792
- }
2793
- } catch (err) {
2794
- throw new Error(`Failed to read response body for "${url}": ${String(err)}`, { cause: err });
2795
- }
2796
- return {
2797
- url,
2798
- status,
2799
- headers,
2800
- body: bodyText.length > maxChars ? bodyText.slice(0, maxChars) : bodyText,
2801
- truncated: bodyText.length > maxChars ? true : void 0
2802
- };
2803
- }
2804
- //#endregion
2805
- //#region extensions/browser/src/browser/pw-tools-core.state.ts
2806
- const { devices: playwrightDevices } = playwrightCore;
2807
- async function setOfflineViaPlaywright(opts) {
2808
- const page = await getPageForTargetId(opts);
2809
- ensurePageState(page);
2810
- await page.context().setOffline(opts.offline);
2811
- }
2812
- async function setExtraHTTPHeadersViaPlaywright(opts) {
2813
- const page = await getPageForTargetId(opts);
2814
- ensurePageState(page);
2815
- await page.context().setExtraHTTPHeaders(opts.headers);
2816
- }
2817
- async function setHttpCredentialsViaPlaywright(opts) {
2818
- const page = await getPageForTargetId(opts);
2819
- ensurePageState(page);
2820
- if (opts.clear) {
2821
- await page.context().setHTTPCredentials(null);
2822
- return;
2823
- }
2824
- const username = opts.username ?? "";
2825
- const password = opts.password ?? "";
2826
- if (!username) throw new Error("username is required (or set clear=true)");
2827
- await page.context().setHTTPCredentials({
2828
- username,
2829
- password
2830
- });
2831
- }
2832
- async function setGeolocationViaPlaywright(opts) {
2833
- const page = await getPageForTargetId(opts);
2834
- ensurePageState(page);
2835
- const context = page.context();
2836
- if (opts.clear) {
2837
- await context.setGeolocation(null);
2838
- await context.clearPermissions().catch(() => {});
2839
- return;
2840
- }
2841
- if (typeof opts.latitude !== "number" || typeof opts.longitude !== "number") throw new Error("latitude and longitude are required (or set clear=true)");
2842
- await context.setGeolocation({
2843
- latitude: opts.latitude,
2844
- longitude: opts.longitude,
2845
- accuracy: typeof opts.accuracy === "number" ? opts.accuracy : void 0
2846
- });
2847
- const origin = normalizeOptionalString$1(opts.origin) || (() => {
2848
- try {
2849
- return new URL(page.url()).origin;
2850
- } catch {
2851
- return "";
2852
- }
2853
- })();
2854
- if (origin) await context.grantPermissions(["geolocation"], { origin }).catch(() => {});
2855
- }
2856
- async function emulateMediaViaPlaywright(opts) {
2857
- const page = await getPageForTargetId(opts);
2858
- ensurePageState(page);
2859
- await page.emulateMedia({ colorScheme: opts.colorScheme });
2860
- }
2861
- async function setLocaleViaPlaywright(opts) {
2862
- const page = await getPageForTargetId(opts);
2863
- ensurePageState(page);
2864
- const locale = normalizeOptionalString$1(opts.locale) ?? "";
2865
- if (!locale) throw new Error("locale is required");
2866
- await withPageScopedCdpClient({
2867
- cdpUrl: opts.cdpUrl,
2868
- page,
2869
- targetId: opts.targetId,
2870
- fn: async (send) => {
2871
- try {
2872
- await send("Emulation.setLocaleOverride", { locale });
2873
- } catch (err) {
2874
- if (String(err).includes("Another locale override is already in effect")) return;
2875
- throw err;
2876
- }
2877
- }
2878
- });
2879
- }
2880
- async function setTimezoneViaPlaywright(opts) {
2881
- const page = await getPageForTargetId(opts);
2882
- ensurePageState(page);
2883
- const timezoneId = normalizeOptionalString$1(opts.timezoneId) ?? "";
2884
- if (!timezoneId) throw new Error("timezoneId is required");
2885
- await withPageScopedCdpClient({
2886
- cdpUrl: opts.cdpUrl,
2887
- page,
2888
- targetId: opts.targetId,
2889
- fn: async (send) => {
2890
- try {
2891
- await send("Emulation.setTimezoneOverride", { timezoneId });
2892
- } catch (err) {
2893
- const msg = String(err);
2894
- if (msg.includes("Timezone override is already in effect")) return;
2895
- if (msg.includes("Invalid timezone")) throw new Error(`Invalid timezone ID: ${timezoneId}`, { cause: err });
2896
- throw err;
2897
- }
2898
- }
2899
- });
2900
- }
2901
- async function setDeviceViaPlaywright(opts) {
2902
- const page = await getPageForTargetId(opts);
2903
- ensurePageState(page);
2904
- const name = normalizeOptionalString$1(opts.name) ?? "";
2905
- if (!name) throw new Error("device name is required");
2906
- const descriptor = playwrightDevices[name];
2907
- if (!descriptor) throw new Error(`Unknown device "${name}".`);
2908
- if (descriptor.viewport) await page.setViewportSize({
2909
- width: descriptor.viewport.width,
2910
- height: descriptor.viewport.height
2911
- });
2912
- await withPageScopedCdpClient({
2913
- cdpUrl: opts.cdpUrl,
2914
- page,
2915
- targetId: opts.targetId,
2916
- fn: async (send) => {
2917
- if (descriptor.userAgent || descriptor.locale) await send("Emulation.setUserAgentOverride", {
2918
- userAgent: descriptor.userAgent ?? "",
2919
- acceptLanguage: descriptor.locale ?? void 0
2920
- });
2921
- if (descriptor.viewport) await send("Emulation.setDeviceMetricsOverride", {
2922
- mobile: Boolean(descriptor.isMobile),
2923
- width: descriptor.viewport.width,
2924
- height: descriptor.viewport.height,
2925
- deviceScaleFactor: descriptor.deviceScaleFactor ?? 1,
2926
- screenWidth: descriptor.viewport.width,
2927
- screenHeight: descriptor.viewport.height
2928
- });
2929
- if (descriptor.hasTouch) await send("Emulation.setTouchEmulationEnabled", { enabled: true });
2930
- }
2931
- });
2932
- }
2933
- //#endregion
2934
- //#region extensions/browser/src/browser/pw-tools-core.storage.ts
2935
- async function cookiesGetViaPlaywright(opts) {
2936
- const page = await getPageForTargetId(opts);
2937
- ensurePageState(page);
2938
- return { cookies: await page.context().cookies() };
2939
- }
2940
- async function cookiesSetViaPlaywright(opts) {
2941
- const page = await getPageForTargetId(opts);
2942
- ensurePageState(page);
2943
- const cookie = opts.cookie;
2944
- if (!cookie.name || cookie.value === void 0) throw new Error("cookie name and value are required");
2945
- const hasUrl = typeof cookie.url === "string" && cookie.url.trim();
2946
- const hasDomainPath = typeof cookie.domain === "string" && cookie.domain.trim() && typeof cookie.path === "string" && cookie.path.trim();
2947
- if (!hasUrl && !hasDomainPath) throw new Error("cookie requires url, or domain+path");
2948
- await page.context().addCookies([cookie]);
2949
- }
2950
- async function cookiesClearViaPlaywright(opts) {
2951
- const page = await getPageForTargetId(opts);
2952
- ensurePageState(page);
2953
- await page.context().clearCookies();
2954
- }
2955
- async function storageGetViaPlaywright(opts) {
2956
- const page = await getPageForTargetId(opts);
2957
- ensurePageState(page);
2958
- const kind = opts.kind;
2959
- const key = readStringValue(opts.key);
2960
- return { values: await page.evaluate(({ kind: kind2, key: key2 }) => {
2961
- const store = kind2 === "session" ? window.sessionStorage : window.localStorage;
2962
- if (key2) {
2963
- const value = store.getItem(key2);
2964
- return value === null ? {} : { [key2]: value };
2965
- }
2966
- const out = {};
2967
- for (let i = 0; i < store.length; i += 1) {
2968
- const k = store.key(i);
2969
- if (!k) continue;
2970
- const v = store.getItem(k);
2971
- if (v !== null) out[k] = v;
2972
- }
2973
- return out;
2974
- }, {
2975
- kind,
2976
- key
2977
- }) ?? {} };
2978
- }
2979
- async function storageSetViaPlaywright(opts) {
2980
- const page = await getPageForTargetId(opts);
2981
- ensurePageState(page);
2982
- const key = opts.key;
2983
- if (!key) throw new Error("key is required");
2984
- await page.evaluate(({ kind, key: k, value }) => {
2985
- (kind === "session" ? window.sessionStorage : window.localStorage).setItem(k, value);
2986
- }, {
2987
- kind: opts.kind,
2988
- key,
2989
- value: opts.value
2990
- });
2991
- }
2992
- async function storageClearViaPlaywright(opts) {
2993
- const page = await getPageForTargetId(opts);
2994
- ensurePageState(page);
2995
- await page.evaluate(({ kind }) => {
2996
- (kind === "session" ? window.sessionStorage : window.localStorage).clear();
2997
- }, { kind: opts.kind });
2998
- }
2999
- //#endregion
3000
- //#region extensions/browser/src/browser/pw-tools-core.trace.ts
3001
- async function traceStartViaPlaywright(opts) {
3002
- const context = (await getPageForTargetId(opts)).context();
3003
- const ctxState = ensureContextState(context);
3004
- if (ctxState.traceActive) throw new Error("Trace already running. Stop the current trace before starting a new one.");
3005
- await context.tracing.start({
3006
- screenshots: opts.screenshots ?? true,
3007
- snapshots: opts.snapshots ?? true,
3008
- sources: opts.sources ?? false
3009
- });
3010
- ctxState.traceActive = true;
3011
- }
3012
- async function traceStopViaPlaywright(opts) {
3013
- const context = (await getPageForTargetId(opts)).context();
3014
- const ctxState = ensureContextState(context);
3015
- if (!ctxState.traceActive) throw new Error("No active trace. Start a trace before stopping it.");
3016
- await writeViaSiblingTempPath({
3017
- rootDir: DEFAULT_TRACE_DIR,
3018
- targetPath: opts.path,
3019
- writeTemp: async (tempPath) => {
3020
- await context.tracing.stop({ path: tempPath });
3021
- }
3022
- });
3023
- ctxState.traceActive = false;
3024
- }
3025
- //#endregion
3026
- //#region extensions/browser/src/browser/pw-ai.ts
3027
- markPwAiLoaded();
3028
- //#endregion
3029
- export { armDialogViaPlaywright, armFileUploadViaPlaywright, batchViaPlaywright, clickViaPlaywright, closePageByTargetIdViaPlaywright, closePageViaPlaywright, closePlaywrightBrowserConnection, cookiesClearViaPlaywright, cookiesGetViaPlaywright, cookiesSetViaPlaywright, createObservedDialogAbortSignalForPage, createPageViaPlaywright, downloadViaPlaywright, dragViaPlaywright, emulateMediaViaPlaywright, ensurePageState, evaluateViaPlaywright, executeActViaPlaywright, fillFormViaPlaywright, focusPageByTargetIdViaPlaywright, forceDisconnectPlaywrightForTarget, getConsoleMessagesViaPlaywright, getNetworkRequestsViaPlaywright, getObservedBrowserStateForPage, getObservedBrowserStateViaPlaywright, getPageErrorsViaPlaywright, getPageForTargetId, highlightViaPlaywright, hoverViaPlaywright, isBrowserObservedDialogBlockedError, listPagesViaPlaywright, markObservedDialogsHandledRemotelyForPage, navigateViaPlaywright, pdfViaPlaywright, pressKeyViaPlaywright, refLocator, resizeViewportViaPlaywright, respondToObservedDialogOnPage, respondToObservedDialogViaPlaywright, responseBodyViaPlaywright, screenshotWithLabelsViaPlaywright, scrollIntoViewViaPlaywright, selectOptionViaPlaywright, setDeviceViaPlaywright, setExtraHTTPHeadersViaPlaywright, setGeolocationViaPlaywright, setHttpCredentialsViaPlaywright, setInputFilesViaPlaywright, setLocaleViaPlaywright, setOfflineViaPlaywright, setTimezoneViaPlaywright, snapshotAiViaPlaywright, snapshotAriaViaPlaywright, snapshotRoleViaPlaywright, storageClearViaPlaywright, storageGetViaPlaywright, storageSetViaPlaywright, storeAriaSnapshotRefsViaPlaywright, takeScreenshotViaPlaywright, traceStartViaPlaywright, traceStopViaPlaywright, typeViaPlaywright, waitForDownloadViaPlaywright, waitForViaPlaywright };