remoteclaw 0.1.0-next.da482d8 → 0.1.0-next.db8a792

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 (1020) hide show
  1. package/dist/accounts-BZ2kR_Ij.js +47 -0
  2. package/dist/accounts-Bi4rFQG5.js +272 -0
  3. package/dist/accounts-Bpk-loA6.js +47 -0
  4. package/dist/accounts-D1CBpsaa.js +32 -0
  5. package/dist/accounts-DAdUdbPk.js +36 -0
  6. package/dist/accounts-WYyfAiie.js +270 -0
  7. package/dist/accounts-zQKMwnvt.js +36 -0
  8. package/dist/ack-reactions-B1l-vKPr.js +621 -0
  9. package/dist/ack-reactions-BnG0DLMu.js +621 -0
  10. package/dist/acp-cli-Btx71t69.js +1319 -0
  11. package/dist/acp-cli-DVQMjl0p.js +1324 -0
  12. package/dist/active-listener-BfN4RKlA.js +37 -0
  13. package/dist/active-listener-Bq7ckjOV.js +37 -0
  14. package/dist/agent-D2IwuL6g.js +688 -0
  15. package/dist/agent-WaE2mXI1.js +687 -0
  16. package/dist/agent-helpers-BcaiJFiG.js +400 -0
  17. package/dist/agent-scope-DVvX_nkQ.js +116 -0
  18. package/dist/agents-BwnT7jca.js +760 -0
  19. package/dist/agents.config-Dorm30BQ.js +116 -0
  20. package/dist/audio-B1lTyRqS.js +43 -0
  21. package/dist/audio-e0dFnrn8.js +43 -0
  22. package/dist/audit-DZvqycbG.js +3150 -0
  23. package/dist/audit-Mit73dYD.js +3150 -0
  24. package/dist/auth-C-XX0Tdt.js +314 -0
  25. package/dist/auth-D8--b01l.js +315 -0
  26. package/dist/auth-DJ7XEBDO.js +448 -0
  27. package/dist/auth-otyjXf9l.js +448 -0
  28. package/dist/banner-DSE-i7gH.js +294 -0
  29. package/dist/binaries-BSjilwX-.js +13 -0
  30. package/dist/bindings-DFTxQj8x.js +69 -0
  31. package/dist/bonjour-discovery-BnxTMHRd.js +378 -0
  32. package/dist/bonjour-discovery-CVJYHT3g.js +378 -0
  33. package/dist/boot/handler.js +28 -44
  34. package/dist/browser-cli-BR2pZWTC.js +1694 -0
  35. package/dist/browser-cli-I0kfR7FV.js +1690 -0
  36. package/dist/build-info.json +3 -3
  37. package/dist/call-Ck7ysmEl.js +517 -0
  38. package/dist/call-MN6mCJEB.js +518 -0
  39. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  40. package/dist/catalog-Bt9EM4sK.js +185 -0
  41. package/dist/catalog-BtUvWKd9.js +185 -0
  42. package/dist/channel-account-context-BLQq9NKz.js +133 -0
  43. package/dist/channel-account-context-CaCzVa76.js +133 -0
  44. package/dist/channel-activity-BatlvP_U.js +292 -0
  45. package/dist/channel-activity-DHVMMb2x.js +94 -0
  46. package/dist/channel-activity-DtRx3b0W.js +94 -0
  47. package/dist/channel-options-C6kT3nXB.js +32 -0
  48. package/dist/channel-options-CbgR_vsp.js +33 -0
  49. package/dist/channel-selection-CzbrpDPd.js +51 -0
  50. package/dist/channel-selection-Xv5UFxOx.js +51 -0
  51. package/dist/channel-web-DfDokU69.js +2134 -0
  52. package/dist/channel-web-DtvksSuY.js +2132 -0
  53. package/dist/channels-cli-BmdCVX6O.js +1435 -0
  54. package/dist/channels-cli-CrAZpaiN.js +1439 -0
  55. package/dist/channels-status-issues-B77y-TLr.js +18 -0
  56. package/dist/channels-status-issues-COECL8nx.js +18 -0
  57. package/dist/chrome-Cr5wmMk8.js +1733 -0
  58. package/dist/chrome-YBrnJN-g.js +1732 -0
  59. package/dist/chunk-CrfQ_O--.js +341 -0
  60. package/dist/chunk-DFBUmlXU.js +341 -0
  61. package/dist/clack-prompter-CFNKgQXx.js +122 -0
  62. package/dist/clack-prompter-DDlR2e34.js +121 -0
  63. package/dist/cli/daemon-cli.js +1 -1
  64. package/dist/cli-BbOinSy6.js +130 -0
  65. package/dist/cli-DuvHXQ5h.js +134 -0
  66. package/dist/client-BZeatr3g.js +2316 -0
  67. package/dist/client-Bc9JFAwL.js +2316 -0
  68. package/dist/clipboard-Com-8GBg.js +31 -0
  69. package/dist/clipboard-J_9AABIu.js +31 -0
  70. package/dist/command-format-CMAQa4dB.js +32 -0
  71. package/dist/command-format-KkslAzwV.js +18 -0
  72. package/dist/command-logger/handler.js +1 -1
  73. package/dist/command-registry-BJnVtHo0.js +215 -0
  74. package/dist/commands-ijxtne0J.js +41 -0
  75. package/dist/commands-kZtQfqDl.js +41 -0
  76. package/dist/commands-registry-BrBtH2_B.js +891 -0
  77. package/dist/commands-registry-xZoSouba.js +892 -0
  78. package/dist/common-6D7nhDP-.js +156 -0
  79. package/dist/common-B4cjsvqP.js +156 -0
  80. package/dist/completion-cli-CpUq9QC3.js +452 -0
  81. package/dist/completion-cli-De4umD_N.js +452 -0
  82. package/dist/config-C_WcTz_O.js +4231 -0
  83. package/dist/config-DfcqHTH-.js +4229 -0
  84. package/dist/config-cli-C7rq2n_m.js +243 -0
  85. package/dist/config-cli-VToCKln2.js +247 -0
  86. package/dist/config-guard-BlAcGEao.js +75 -0
  87. package/dist/config-guard-C-h_KIeI.js +99 -0
  88. package/dist/config-validation-C0YXR2dY.js +18 -0
  89. package/dist/config-validation-DDYBTmxT.js +18 -0
  90. package/dist/configure-Bkre1zEB.js +891 -0
  91. package/dist/configure-ifuEamRQ.js +889 -0
  92. package/dist/control-auth-DK6cIBzl.js +397 -0
  93. package/dist/control-auth-DQ8bfDMk.js +397 -0
  94. package/dist/control-ui-assets-DLEWfed6.js +186 -0
  95. package/dist/control-ui-assets-DVhkAyhv.js +186 -0
  96. package/dist/conversation-label-HuHoShPF.js +36 -0
  97. package/dist/conversation-label-L0QTtKji.js +36 -0
  98. package/dist/cron-cli-DnxnTi83.js +498 -0
  99. package/dist/cron-cli-yqcBkqZT.js +494 -0
  100. package/dist/daemon-cli-CmQYq8uO.js +735 -0
  101. package/dist/daemon-cli-_OIRoswC.js +737 -0
  102. package/dist/daemon-cli.js +34 -69
  103. package/dist/daemon-install-BEgffqDj.js +56 -0
  104. package/dist/daemon-install-DAorzotp.js +60 -0
  105. package/dist/daemon-install-helpers-B82uvJjJ.js +504 -0
  106. package/dist/daemon-install-helpers-BhL2Gh4l.js +504 -0
  107. package/dist/deliver-CCvDBk5c.js +481 -0
  108. package/dist/deliver-CqKw0wFi.js +481 -0
  109. package/dist/delivery-queue-CK7VnUJf.js +244 -0
  110. package/dist/delivery-queue-DMeQchpT.js +244 -0
  111. package/dist/devices-cli-C6UAfRV_.js +323 -0
  112. package/dist/devices-cli-Le-isdZB.js +319 -0
  113. package/dist/diagnostics-BhFwk6F3.js +35 -0
  114. package/dist/diagnostics-BtaQtaVR.js +35 -0
  115. package/dist/directory-cli-BqMfX5og.js +220 -0
  116. package/dist/directory-cli-DD72TTD4.js +224 -0
  117. package/dist/dispatcher-BLC2WYZv.js +173 -0
  118. package/dist/dispatcher-Cm2FAG_D.js +174 -0
  119. package/dist/dm-policy-shared-DOzpxMHC.js +22 -0
  120. package/dist/dm-policy-shared-DZY0f1bR.js +22 -0
  121. package/dist/dns-cli-BgsNg-bn.js +203 -0
  122. package/dist/dns-cli-CdMU5yuG.js +199 -0
  123. package/dist/dock-ByrYnLiz.js +929 -0
  124. package/dist/dock-CpNmmysM.js +928 -0
  125. package/dist/doctor-completion-BPeaRbmd.js +92 -0
  126. package/dist/doctor-completion-CfOyGJd3.js +92 -0
  127. package/dist/doctor-config-flow-DMyTycn7.js +1935 -0
  128. package/dist/doctor-config-flow-DoMu-pTm.js +1934 -0
  129. package/dist/enable-D5KetMo7.js +59 -0
  130. package/dist/entry.js +61 -1
  131. package/dist/env-BJ36dSrx.js +60 -0
  132. package/dist/errors-BfONuT95.js +35 -0
  133. package/dist/errors-_DSePI1C.js +35 -0
  134. package/dist/exec-DkFE7lqU.js +164 -0
  135. package/dist/exec-mY96dhIg.js +164 -0
  136. package/dist/extensionAPI.js +112 -76
  137. package/dist/fetch-B3EQXbTa.js +67 -0
  138. package/dist/fetch-BPeSHPvr.js +281 -0
  139. package/dist/fetch-BQ7HvRwe.js +67 -0
  140. package/dist/fetch-CbGTzJ8L.js +281 -0
  141. package/dist/fetch-CfIaWynF.js +67 -0
  142. package/dist/file-lock-BHfqppLm.js +107 -0
  143. package/dist/file-lock-CCBpdPM_.js +107 -0
  144. package/dist/fs-safe-BcEpbVjc.js +88 -0
  145. package/dist/fs-safe-S3Zvbabd.js +98 -0
  146. package/dist/gateway-cli-BXipRcsU.js +24602 -0
  147. package/dist/gateway-cli-Bv2K3rXx.js +24606 -0
  148. package/dist/gateway-rpc-BHnd7P1q.js +28 -0
  149. package/dist/gateway-rpc-COEQDswS.js +28 -0
  150. package/dist/gmail-setup-utils-BpdKFe3P.js +423 -0
  151. package/dist/gmail-setup-utils-CqbWr0Kq.js +422 -0
  152. package/dist/health-1ero5j64.js +1414 -0
  153. package/dist/health-ioP2au7j.js +1417 -0
  154. package/dist/heartbeat-visibility-C88L-_f2.js +125 -0
  155. package/dist/heartbeat-visibility-Dk_Q02qX.js +125 -0
  156. package/dist/hook-runner-global-BztoD8lu.js +527 -0
  157. package/dist/hooks-cli-B8D9DzRR.js +1226 -0
  158. package/dist/hooks-cli-rZ3GOXag.js +1222 -0
  159. package/dist/image-ops-Cx1ym2Hi.js +354 -0
  160. package/dist/image-ops-DWytvdh_.js +354 -0
  161. package/dist/import-CTUBsy7D.js +604 -0
  162. package/dist/import-cBp4f62k.js +606 -0
  163. package/dist/inbound-context-COwswi8z.js +68 -0
  164. package/dist/inbound-context-ChcNR30g.js +68 -0
  165. package/dist/index.js +127 -102
  166. package/dist/inspect-BsS3_z-x.js +286 -0
  167. package/dist/inspect-drfsUSIW.js +286 -0
  168. package/dist/installs-BFmmM5Zd.js +325 -0
  169. package/dist/installs-DA7SG0Tx.js +325 -0
  170. package/dist/ipv4-BZGSwnH4.js +46 -0
  171. package/dist/ipv4-DsOgHE0B.js +46 -0
  172. package/dist/ir-R3Pk8Cv8.js +972 -0
  173. package/dist/lifecycle-core-BZMeOT7u.js +474 -0
  174. package/dist/lifecycle-core-C6-_Gts0.js +476 -0
  175. package/dist/loader-CJ2UHqV7.js +22414 -0
  176. package/dist/loader-dEFvmwXu.js +22411 -0
  177. package/dist/logger-9I2fg5mr.js +49 -0
  178. package/dist/login-D9uJTyEv.js +62 -0
  179. package/dist/login-DTh702_w.js +61 -0
  180. package/dist/login-qr-BKsmW6XI.js +325 -0
  181. package/dist/login-qr-SOXdIR58.js +329 -0
  182. package/dist/logs-cli-BshJBHZQ.js +236 -0
  183. package/dist/logs-cli-Ckh-BBTT.js +240 -0
  184. package/dist/markdown-tables-Cfz7zDXI.js +29 -0
  185. package/dist/markdown-tables-DeFSK6aY.js +29 -0
  186. package/dist/media-BD2cZGXT.js +971 -0
  187. package/dist/media-CjvpnJmQ.js +10388 -0
  188. package/dist/message-action-names-CZHrHMRE.js +2520 -0
  189. package/dist/message-action-names-CiZ-0Smk.js +2520 -0
  190. package/dist/message-channel-EMCYRaxk.js +91 -0
  191. package/dist/mime-1E7nn9IU.js +146 -0
  192. package/dist/mime-mSgQeDnC.js +146 -0
  193. package/dist/net-Cg8AQeke.js +225 -0
  194. package/dist/net-DMh1m8AZ.js +225 -0
  195. package/dist/node-cli-BJ5CCbqx.js +1462 -0
  196. package/dist/node-cli-wYYhAs8x.js +1458 -0
  197. package/dist/node-service-CkwVlcey.js +67 -0
  198. package/dist/node-service-DTVW9YJh.js +67 -0
  199. package/dist/nodes-cli-CMFYLD1o.js +1346 -0
  200. package/dist/nodes-cli-DC2zUx3f.js +1350 -0
  201. package/dist/nodes-screen-6pXv1lYa.js +250 -0
  202. package/dist/nodes-screen-CTIZKksn.js +250 -0
  203. package/dist/note-CMELkPJN.js +92 -0
  204. package/dist/npm-registry-spec-BiJI7Rkr.js +786 -0
  205. package/dist/npm-registry-spec-Dza35Ig4.js +786 -0
  206. package/dist/npm-resolution-CUQGDty4.js +86 -0
  207. package/dist/npm-resolution-CwbZK9AI.js +86 -0
  208. package/dist/onboard-8Qd9lU8x.js +649 -0
  209. package/dist/onboard-Q3cY65m8.js +647 -0
  210. package/dist/onboard-auth-BUzYDEqf.js +211 -0
  211. package/dist/onboard-auth-DcVXyd-Z.js +207 -0
  212. package/dist/onboard-channels-BFHuA-AU.js +2548 -0
  213. package/dist/onboard-channels-DVrPP_ie.js +2547 -0
  214. package/dist/onboard-helpers-B-bBSsyR.js +363 -0
  215. package/dist/onboard-helpers-YsCa-sAt.js +364 -0
  216. package/dist/onboard-remote-BWFcuEOD.js +127 -0
  217. package/dist/onboard-remote-C0THuDTK.js +127 -0
  218. package/dist/onboarding-B31lnOPp.js +586 -0
  219. package/dist/onboarding-DmN_qC8e.js +588 -0
  220. package/dist/onboarding.finalize-DGD0PA-D.js +402 -0
  221. package/dist/onboarding.finalize-DNIb3meE.js +404 -0
  222. package/dist/onboarding.gateway-config-BaeIuA62.js +195 -0
  223. package/dist/onboarding.gateway-config-DMV2Odzr.js +201 -0
  224. package/dist/outbound-BdxBHDax.js +220 -0
  225. package/dist/outbound-D-Y9rMgB.js +221 -0
  226. package/dist/outbound-attachment-CvZ04r5k.js +18 -0
  227. package/dist/outbound-attachment-DYa1asB5.js +18 -0
  228. package/dist/outbound-attachment-DgUpk7Uh.js +18 -0
  229. package/dist/pairing-cli-BxTv78V7.js +125 -0
  230. package/dist/pairing-cli-CxUCzNUc.js +129 -0
  231. package/dist/pairing-labels-DVO6NJr0.js +9 -0
  232. package/dist/pairing-labels-D_pD8Cag.js +9 -0
  233. package/dist/pairing-store-Bu9pVlkO.js +459 -0
  234. package/dist/pairing-store-CWaGbAGi.js +460 -0
  235. package/dist/path-env-RsuO6yO-.js +89 -0
  236. package/dist/path-env-_my-d_iR.js +89 -0
  237. package/dist/path-safety-CfiVyVz7.js +14 -0
  238. package/dist/path-safety-D-wLK4pV.js +14 -0
  239. package/dist/plugin-auto-enable-CW01H36W.js +301 -0
  240. package/dist/plugin-auto-enable-CeHhBLCU.js +302 -0
  241. package/dist/plugin-registry-CWL37HnB.js +33 -0
  242. package/dist/plugin-registry-ELliiumZ.js +33 -0
  243. package/dist/plugin-sdk/auth/provider-auth.d.ts +0 -6
  244. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +9 -29
  245. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +0 -2
  246. package/dist/plugin-sdk/auto-reply/reply/commands-subagents/shared.d.ts +1 -1
  247. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +0 -2
  248. package/dist/plugin-sdk/auto-reply/status.d.ts +0 -4
  249. package/dist/plugin-sdk/auto-reply/templating.d.ts +0 -4
  250. package/dist/plugin-sdk/config/sessions/types.d.ts +0 -2
  251. package/dist/plugin-sdk/config/types.tools.d.ts +1 -59
  252. package/dist/plugin-sdk/config/types.tts.d.ts +2 -1
  253. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +0 -177
  254. package/dist/plugin-sdk/config/zod-schema.core.d.ts +2 -230
  255. package/dist/plugin-sdk/config/zod-schema.d.ts +3 -192
  256. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +3 -15
  257. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +2 -10
  258. package/dist/plugin-sdk/config/zod-schema.session.d.ts +1 -5
  259. package/dist/plugin-sdk/gateway/protocol/index.d.ts +5 -5
  260. package/dist/plugin-sdk/index.js +72 -142
  261. package/dist/plugin-sdk/middleware/cli-runtime-base.d.ts +6 -0
  262. package/dist/plugin-sdk/middleware/runtimes/claude.d.ts +6 -0
  263. package/dist/plugin-sdk/middleware/runtimes/codex.d.ts +2 -2
  264. package/dist/plugin-sdk/plugin-sdk/index.d.ts +2 -0
  265. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +2 -0
  266. package/dist/plugin-sdk/plugins/manifest.d.ts +2 -0
  267. package/dist/plugin-sdk/plugins/registry.d.ts +18 -0
  268. package/dist/plugin-sdk/plugins/types.d.ts +4 -0
  269. package/dist/plugin-sdk/stt/preflight.d.ts +2 -4
  270. package/dist/plugin-sdk/stt/providers/index.d.ts +1 -1
  271. package/dist/plugin-sdk/stt/providers/shared.d.ts +20 -1
  272. package/dist/plugin-sdk/tts/providers/edge.d.ts +2 -0
  273. package/dist/plugin-sdk/tts/providers/elevenlabs.d.ts +2 -0
  274. package/dist/plugin-sdk/tts/providers/index.d.ts +4 -0
  275. package/dist/plugin-sdk/tts/providers/openai.d.ts +2 -0
  276. package/dist/plugin-sdk/tts/tts.d.ts +13 -5
  277. package/dist/plugin-sdk/tts/types.d.ts +21 -0
  278. package/dist/plugins-DExsdlTp.js +455 -0
  279. package/dist/plugins-DdMgSc_b.js +453 -0
  280. package/dist/plugins-cli-DqBWiT_G.js +806 -0
  281. package/dist/plugins-cli-KQEzhU6P.js +802 -0
  282. package/dist/ports-CL0pXAXO.js +96 -0
  283. package/dist/ports-CRI-HSZx.js +370 -0
  284. package/dist/ports-DiQFcKUB.js +316 -0
  285. package/dist/ports-HRurfPIr.js +96 -0
  286. package/dist/preflight-6QRqxWh7.js +667 -0
  287. package/dist/preflight-DDZjr5KD.js +667 -0
  288. package/dist/program-DmhbOJj3.js +249 -0
  289. package/dist/program-context-PPMzZ6Gu.js +474 -0
  290. package/dist/prompt-select-styled-CmSWunD8.js +1669 -0
  291. package/dist/prompt-select-styled-PfxT9zl9.js +1672 -0
  292. package/dist/provider-auth-CfdnLqh3.js +187 -0
  293. package/dist/provider-auth-gpHOMUBP.js +187 -0
  294. package/dist/provider-dispatcher-D4eY8LZW.js +659 -0
  295. package/dist/provider-dispatcher-D5Q7M15D.js +660 -0
  296. package/dist/push-apns-BNwVMXX9.js +713 -0
  297. package/dist/push-apns-BszVkcZK.js +711 -0
  298. package/dist/pw-ai-Bdb3zrBM.js +1911 -0
  299. package/dist/pw-ai-BvcvEdGs.js +1908 -0
  300. package/dist/qr-cli-BBgk2ci1.js +349 -0
  301. package/dist/qr-cli-BLzVrhia.js +353 -0
  302. package/dist/redact-snapshot-CyBDcb_a.js +1966 -0
  303. package/dist/redact-snapshot-D9oPMqA-.js +1966 -0
  304. package/dist/register.agent-CAhKX3Ft.js +1019 -0
  305. package/dist/register.agent-RKHXtLLm.js +291 -0
  306. package/dist/register.configure-CW6XRGxV.js +129 -0
  307. package/dist/register.configure-dvrKc0j7.js +134 -0
  308. package/dist/register.import-CRLOolHv.js +31 -0
  309. package/dist/register.import-dhDEj7Om.js +29 -0
  310. package/dist/register.maintenance-EAhr1tJ9.js +500 -0
  311. package/dist/register.maintenance-lWz4v90u.js +502 -0
  312. package/dist/register.message-DyWkwUIU.js +690 -0
  313. package/dist/register.message-bl2Khz6c.js +686 -0
  314. package/dist/register.onboard-BAozmeei.js +97 -0
  315. package/dist/register.onboard-Da9hWQR1.js +93 -0
  316. package/dist/register.setup-DVrQWLoF.js +117 -0
  317. package/dist/register.setup-DbiLuuqg.js +113 -0
  318. package/dist/register.status-health-sessions-CA8ApUkH.js +668 -0
  319. package/dist/register.status-health-sessions-lGszs-NJ.js +428 -0
  320. package/dist/register.subclis-C-lqMygb.js +267 -0
  321. package/dist/replies-BTC1z8j0.js +136 -0
  322. package/dist/replies-BhlnuFp0.js +136 -0
  323. package/dist/reply-DZMooMoq.js +12880 -0
  324. package/dist/reply-directives-C0-hYyAt.js +182 -0
  325. package/dist/reply-directives-C_CGXLBJ.js +182 -0
  326. package/dist/reply-payloads-BospFSPI.js +527 -0
  327. package/dist/reply-prefix-DDgh77yy.js +37 -0
  328. package/dist/reply-prefix-DwKZPZyG.js +37 -0
  329. package/dist/reply-yGEQ0UW4.js +12877 -0
  330. package/dist/resolve-route-B73QhBIl.js +249 -0
  331. package/dist/resolve-route-DckdRbW8.js +249 -0
  332. package/dist/response-prefix-template-x5RBQnEy.js +134 -0
  333. package/dist/retry-CDrH81GP.js +77 -0
  334. package/dist/run-main-D869n5qf.js +307 -0
  335. package/dist/secure-random-CxzxAnMS.js +44 -0
  336. package/dist/security-cli-CfqosyUf.js +487 -0
  337. package/dist/security-cli-DMZun6gO.js +482 -0
  338. package/dist/send-3wvngctD.js +547 -0
  339. package/dist/send-AY7Fs5ky.js +374 -0
  340. package/dist/send-BSWD4Kr_.js +2245 -0
  341. package/dist/send-BT4HhTLm.js +349 -0
  342. package/dist/send-BvuxToC8.js +2245 -0
  343. package/dist/send-CaUxFvu0.js +492 -0
  344. package/dist/send-CiBRE4OY.js +1178 -0
  345. package/dist/send-Cidd4lQn.js +11 -0
  346. package/dist/send-Cq_Db9wG.js +1779 -0
  347. package/dist/send-DBFcxDPm.js +1776 -0
  348. package/dist/send-DUha0nIz.js +492 -0
  349. package/dist/send-DgYBI05s.js +332 -0
  350. package/dist/send-Dnf5bISH.js +426 -0
  351. package/dist/send-NcQk6UH1.js +547 -0
  352. package/dist/send-Og0-IMee.js +29 -0
  353. package/dist/send-oCN80Pl2.js +349 -0
  354. package/dist/server-DoGGLeP3.js +202 -0
  355. package/dist/server-V7G9FG2A.js +206 -0
  356. package/dist/server-lifecycle-CSWpSlvn.js +2437 -0
  357. package/dist/server-lifecycle-Cal8hBP1.js +2437 -0
  358. package/dist/server-node-events-DSee6jSG.js +394 -0
  359. package/dist/server-node-events-DbQWkU3M.js +390 -0
  360. package/dist/service-Duw0xMJX.js +670 -0
  361. package/dist/service-SRcnA1Am.js +670 -0
  362. package/dist/session-BLcfWX5_.js +170 -0
  363. package/dist/session-CQwkaAs-.js +170 -0
  364. package/dist/session-cost-usage-C-UcrvL4.js +627 -0
  365. package/dist/session-cost-usage-Dg3dzS0E.js +627 -0
  366. package/dist/session-dirs-D6mFEF90.js +318 -0
  367. package/dist/session-dirs-DVsG6e7L.js +318 -0
  368. package/dist/session-utils-C6522g3D.js +622 -0
  369. package/dist/session-utils-Dq2BJyVy.js +622 -0
  370. package/dist/sessions-CNkj4Eq8.js +247 -0
  371. package/dist/sessions-DDIoP7Rl.js +2569 -0
  372. package/dist/shell-env-D8nXPDbP.js +163 -0
  373. package/dist/ssrf-7I3FUHpm.js +183 -0
  374. package/dist/ssrf-DZi4qw5c.js +183 -0
  375. package/dist/status-CrAe8ZYt.js +1983 -0
  376. package/dist/status-DetRJxvZ.js +1979 -0
  377. package/dist/status.update-DquSK3p7.js +449 -0
  378. package/dist/status.update-iABAY3iW.js +449 -0
  379. package/dist/store-Bnm6zwaq.js +2571 -0
  380. package/dist/store-CVkGKjWm.js +64 -0
  381. package/dist/store-D_gpBpAW.js +64 -0
  382. package/dist/store-mxh63FBa.js +53 -0
  383. package/dist/subagent-registry-DNAz7Heu.js +4856 -0
  384. package/dist/subagent-registry-Dhz6HC4Z.js +4854 -0
  385. package/dist/subsystem-DGSHVL8I.js +1081 -0
  386. package/dist/subsystem-m7RSGQoR.js +1196 -0
  387. package/dist/system-cli-ByVDF6p8.js +77 -0
  388. package/dist/system-cli-CERb89Bl.js +73 -0
  389. package/dist/systemd-CSUtfsJx.js +547 -0
  390. package/dist/systemd-hints-BCxkQemJ.js +278 -0
  391. package/dist/systemd-hints-ef7m-7ZH.js +278 -0
  392. package/dist/systemd-linger-CWLgT0Wr.js +75 -0
  393. package/dist/systemd-linger-DT0E7YET.js +75 -0
  394. package/dist/systemd-tS61V4ao.js +547 -0
  395. package/dist/tables-DED01JNI.js +55 -0
  396. package/dist/tables-K3rOiGaJ.js +55 -0
  397. package/dist/tables-NcsXz3r_.js +55 -0
  398. package/dist/tailnet-CEudzG0i.js +40 -0
  399. package/dist/tailnet-D66Y5zC7.js +40 -0
  400. package/dist/tailscale-DjSRjPA-.js +230 -0
  401. package/dist/tailscale-DngZHD9L.js +230 -0
  402. package/dist/targets-BOpYPsGM.js +2545 -0
  403. package/dist/targets-BVsxzQh1.js +220 -0
  404. package/dist/targets-C99szk_e.js +114 -0
  405. package/dist/targets-CA4zx5G4.js +650 -0
  406. package/dist/targets-CTNm3bJ8.js +2544 -0
  407. package/dist/targets-DpmQjetK.js +53 -0
  408. package/dist/targets-Q-YGeAqu.js +650 -0
  409. package/dist/targets-rdWlC6Y-.js +53 -0
  410. package/dist/tool-display-Br6mwaJc.js +785 -0
  411. package/dist/tool-display-CLBf5cRa.js +785 -0
  412. package/dist/tool-images-DB4f57XK.js +263 -0
  413. package/dist/tool-images-kloBqxqK.js +263 -0
  414. package/dist/trash-B32LfX0l.js +125 -0
  415. package/dist/trash-SlUJxKO7.js +125 -0
  416. package/dist/tui-CHOtFK6k.js +3282 -0
  417. package/dist/tui-D4yiSpop.js +3282 -0
  418. package/dist/tui-cli-CzrjmAMZ.js +66 -0
  419. package/dist/tui-cli-Dpbs2QW_.js +62 -0
  420. package/dist/update-B5nYVxpc.js +349 -0
  421. package/dist/update-Bs3HhSnE.js +349 -0
  422. package/dist/update-cli-D_yz9Kyz.js +1147 -0
  423. package/dist/update-cli-DdfwNAsA.js +1149 -0
  424. package/dist/usage-BVyabt5E.js +5421 -0
  425. package/dist/voice-credentials-CI4VgB6u.js +46 -0
  426. package/dist/voice-credentials-l_d_gZiG.js +46 -0
  427. package/dist/web-B5xSAAH2.js +74 -0
  428. package/dist/web-Cc4tDVO9.js +3067 -0
  429. package/dist/web-Cdp9_IUk.js +79 -0
  430. package/dist/webhooks-cli-BDPcBkZL.js +330 -0
  431. package/dist/webhooks-cli-sRfsNesg.js +334 -0
  432. package/dist/whatsapp-actions-BGZXdWiP.js +125 -0
  433. package/dist/whatsapp-actions-HdmZu8oU.js +130 -0
  434. package/dist/workspace-D5LAl41l.js +449 -0
  435. package/dist/workspace-DRYGbrDM.js +447 -0
  436. package/dist/zod-schema-C8gEV0uz.js +2739 -0
  437. package/dist/zod-schema-CCUbW_Si.js +2739 -0
  438. package/package.json +1 -1
  439. package/dist/accounts-Aqbb2_Fn.js +0 -270
  440. package/dist/accounts-Bo2bX8jP.js +0 -272
  441. package/dist/accounts-D3fAPVzU.js +0 -36
  442. package/dist/accounts-DUEDngp6.js +0 -32
  443. package/dist/accounts-DZmv4bXS.js +0 -47
  444. package/dist/accounts-DmB4SVPK.js +0 -47
  445. package/dist/accounts-DtkyfvwR.js +0 -36
  446. package/dist/ack-reactions-Bvfy17SM.js +0 -446
  447. package/dist/ack-reactions-DYU8uhcz.js +0 -446
  448. package/dist/acp-cli-DVXhDMc6.js +0 -1324
  449. package/dist/acp-cli-QBL4_qcW.js +0 -1319
  450. package/dist/active-listener-CwxZ24bZ.js +0 -37
  451. package/dist/active-listener-v2sItamh.js +0 -37
  452. package/dist/agent-BisC5WZ6.js +0 -704
  453. package/dist/agent-Bqdrc0AK.js +0 -703
  454. package/dist/agent-helpers-BSGqeJr-.js +0 -400
  455. package/dist/agent-scope-_ND_-bJy.js +0 -116
  456. package/dist/agents-khSbraAA.js +0 -760
  457. package/dist/agents.config-D8gLHPWo.js +0 -116
  458. package/dist/audio-BIvUsncf.js +0 -43
  459. package/dist/audio-CQ8TfmVN.js +0 -43
  460. package/dist/audit-C0x7Cm6K.js +0 -3150
  461. package/dist/audit-CAY-uzWP.js +0 -3150
  462. package/dist/auth-DGqCLaQq.js +0 -448
  463. package/dist/auth-DLTRySEi.js +0 -314
  464. package/dist/auth-Drf91ntw.js +0 -315
  465. package/dist/auth-ku2khJyQ.js +0 -448
  466. package/dist/banner-txHC40UW.js +0 -294
  467. package/dist/binaries-BTvHIrCr.js +0 -13
  468. package/dist/bindings-DsWJQVKh.js +0 -69
  469. package/dist/bonjour-discovery-BElR62fH.js +0 -378
  470. package/dist/bonjour-discovery-C8XyVsjb.js +0 -378
  471. package/dist/browser-cli-DxJew43l.js +0 -1694
  472. package/dist/browser-cli-p0nakrjO.js +0 -1690
  473. package/dist/call-BrTmlOx3.js +0 -518
  474. package/dist/call-ChdUdwb4.js +0 -517
  475. package/dist/catalog-DTlcfTT9.js +0 -185
  476. package/dist/catalog-PixZqhZK.js +0 -185
  477. package/dist/channel-account-context-BO245Tcn.js +0 -133
  478. package/dist/channel-account-context-BgK0hm-I.js +0 -133
  479. package/dist/channel-activity-B0qlUR5e.js +0 -292
  480. package/dist/channel-activity-C-L6rDrQ.js +0 -94
  481. package/dist/channel-activity-DdgLBZ7M.js +0 -94
  482. package/dist/channel-options-CjlvAHSH.js +0 -32
  483. package/dist/channel-options-DpjP7qQf.js +0 -33
  484. package/dist/channel-selection-DW21dXB1.js +0 -51
  485. package/dist/channel-selection-wK_6S2Ku.js +0 -51
  486. package/dist/channel-web-COTkzJBt.js +0 -2136
  487. package/dist/channel-web-DUz5bn9h.js +0 -2134
  488. package/dist/channels-cli-D8RS8g2Q.js +0 -1438
  489. package/dist/channels-cli-X_8rENR6.js +0 -1434
  490. package/dist/channels-status-issues-B6I2l7Sm.js +0 -18
  491. package/dist/channels-status-issues-DhDH2fWp.js +0 -18
  492. package/dist/chrome-Dqtq7zCc.js +0 -1733
  493. package/dist/chrome-XeSY99Z_.js +0 -1732
  494. package/dist/chunk-CWD_zrz_.js +0 -341
  495. package/dist/chunk-LUabyS9k.js +0 -341
  496. package/dist/clack-prompter-fAgbvPW4.js +0 -122
  497. package/dist/clack-prompter-kf9qTN5p.js +0 -121
  498. package/dist/cli-BjPLpuZR.js +0 -133
  499. package/dist/cli-fFyOTtkD.js +0 -129
  500. package/dist/client-B9u3JdT_.js +0 -2316
  501. package/dist/client-DEEOhx0w.js +0 -2316
  502. package/dist/clipboard-B2nstLx7.js +0 -31
  503. package/dist/clipboard-C8QI9fes.js +0 -31
  504. package/dist/command-format-D0vKipG9.js +0 -32
  505. package/dist/command-format-LFmgWzKJ.js +0 -18
  506. package/dist/command-registry-BsPaMI53.js +0 -215
  507. package/dist/commands-BAYwlS3d.js +0 -41
  508. package/dist/commands-D842kCjj.js +0 -41
  509. package/dist/commands-registry-Cg2GTT2J.js +0 -892
  510. package/dist/commands-registry-Yz-uV5oG.js +0 -891
  511. package/dist/common-B67cBSew.js +0 -156
  512. package/dist/common-DEoiTqOr.js +0 -156
  513. package/dist/completion-cli-BO5mIPLa.js +0 -452
  514. package/dist/completion-cli-z9a6MVgr.js +0 -452
  515. package/dist/config-CAa0rZSx.js +0 -4225
  516. package/dist/config-W0w-gi2j.js +0 -4223
  517. package/dist/config-cli-DdRue35G.js +0 -243
  518. package/dist/config-cli-uOwxu5AC.js +0 -247
  519. package/dist/config-guard-BI85dxHR.js +0 -99
  520. package/dist/config-guard-DQqnigKh.js +0 -75
  521. package/dist/config-validation-D-h4LHyA.js +0 -18
  522. package/dist/config-validation-Df_kroIQ.js +0 -18
  523. package/dist/configure-B7ChPbXv.js +0 -891
  524. package/dist/configure-QspkIXME.js +0 -889
  525. package/dist/control-auth-BrBr2xb8.js +0 -397
  526. package/dist/control-auth-CehjYKnL.js +0 -397
  527. package/dist/control-ui-assets-D8F383Mo.js +0 -186
  528. package/dist/control-ui-assets-DYKtRIm0.js +0 -186
  529. package/dist/conversation-label-Bn5j3lUT.js +0 -36
  530. package/dist/conversation-label-CDH4rKMG.js +0 -36
  531. package/dist/cron-cli-DVzDHzAX.js +0 -494
  532. package/dist/cron-cli-gkH2qKM4.js +0 -498
  533. package/dist/daemon-cli-BTdNO1vH.js +0 -737
  534. package/dist/daemon-cli-DNNqI2LD.js +0 -735
  535. package/dist/daemon-install-CaEHG92p.js +0 -56
  536. package/dist/daemon-install-DbpDSDfW.js +0 -60
  537. package/dist/daemon-install-helpers-DjE_WnlY.js +0 -504
  538. package/dist/daemon-install-helpers-DocTUxqQ.js +0 -504
  539. package/dist/deliver-CDcL8ok6.js +0 -481
  540. package/dist/deliver-CS8JsevV.js +0 -481
  541. package/dist/delivery-queue-CTaYZQ_8.js +0 -244
  542. package/dist/delivery-queue-DMZ7mH8P.js +0 -244
  543. package/dist/devices-cli-BBJ4His-.js +0 -319
  544. package/dist/devices-cli-DHSJSFW1.js +0 -323
  545. package/dist/diagnostics-BSvCaLNs.js +0 -35
  546. package/dist/diagnostics-mWFAsFeo.js +0 -35
  547. package/dist/directory-cli-C-oHD_XE.js +0 -224
  548. package/dist/directory-cli-Cw99VGvr.js +0 -220
  549. package/dist/dispatcher-C8d1NNLZ.js +0 -174
  550. package/dist/dispatcher-DY6Ga60j.js +0 -173
  551. package/dist/dm-policy-shared-CRQ-Wr5g.js +0 -22
  552. package/dist/dm-policy-shared-CXXf2ltd.js +0 -22
  553. package/dist/dns-cli-BOqx9qo1.js +0 -199
  554. package/dist/dns-cli-WfqSC3JU.js +0 -203
  555. package/dist/dock-Big-J2VN.js +0 -929
  556. package/dist/dock-Cj4PKiUh.js +0 -928
  557. package/dist/doctor-completion-hYqcZ7IE.js +0 -92
  558. package/dist/doctor-completion-nxQQ5bEw.js +0 -92
  559. package/dist/doctor-config-flow-BUuADMDa.js +0 -1935
  560. package/dist/doctor-config-flow-yOUpQC2B.js +0 -1934
  561. package/dist/enable-DC9V0nTO.js +0 -59
  562. package/dist/env-B3zr72vQ.js +0 -60
  563. package/dist/errors-CdmXrBic.js +0 -35
  564. package/dist/errors-Cr_NbOb4.js +0 -35
  565. package/dist/exec-D_s-zAtY.js +0 -164
  566. package/dist/exec-Zz6eJ6YU.js +0 -164
  567. package/dist/fetch-BIZkXB5i.js +0 -67
  568. package/dist/fetch-DRVdxxEj.js +0 -67
  569. package/dist/fetch-DTR2MlOk.js +0 -67
  570. package/dist/file-lock-6NXMPZTT.js +0 -107
  571. package/dist/file-lock-C_KRlR7M.js +0 -107
  572. package/dist/fs-safe-DZHpH7TI.js +0 -98
  573. package/dist/fs-safe-vm3JMUkq.js +0 -88
  574. package/dist/gateway-cli-DEW-Ukmc.js +0 -24351
  575. package/dist/gateway-cli-DQYcZCOV.js +0 -24347
  576. package/dist/gateway-rpc-BCFkQPa2.js +0 -28
  577. package/dist/gateway-rpc-DOgYbsOG.js +0 -28
  578. package/dist/gmail-setup-utils-DMeA1UM1.js +0 -423
  579. package/dist/gmail-setup-utils-FHWSAur3.js +0 -422
  580. package/dist/health-BrLNGkZV.js +0 -1414
  581. package/dist/health-C8p9mnfl.js +0 -1417
  582. package/dist/heartbeat-visibility-CJVdaMZF.js +0 -125
  583. package/dist/heartbeat-visibility-DwK1UL0t.js +0 -125
  584. package/dist/hook-runner-global-C0DFQmQw.js +0 -527
  585. package/dist/hooks-cli-DEKi-tbA.js +0 -1221
  586. package/dist/hooks-cli-FndXPMD3.js +0 -1225
  587. package/dist/image-ops-B9ofmzSq.js +0 -354
  588. package/dist/image-ops-CMuvRsMY.js +0 -354
  589. package/dist/import-BH13F5mT.js +0 -606
  590. package/dist/import-D8HVcDqO.js +0 -604
  591. package/dist/inbound-context-BLy-G2Eq.js +0 -68
  592. package/dist/inbound-context-CmmmT8IP.js +0 -68
  593. package/dist/inbound-path-policy-BdmTOUka.js +0 -90
  594. package/dist/inbound-path-policy-BurOAu44.js +0 -90
  595. package/dist/inspect-nW8LAukU.js +0 -286
  596. package/dist/inspect-xy2EHy8G.js +0 -286
  597. package/dist/installs-CpfHmKY1.js +0 -325
  598. package/dist/installs-DebiMrGj.js +0 -325
  599. package/dist/ipv4-ysiNGssl.js +0 -46
  600. package/dist/ipv4-zc_Hfvbp.js +0 -46
  601. package/dist/ir-CaxTklDC.js +0 -940
  602. package/dist/lifecycle-core-Z5SScMlU.js +0 -476
  603. package/dist/lifecycle-core-pPwYSt7m.js +0 -474
  604. package/dist/loader-BapIdJyx.js +0 -22404
  605. package/dist/loader-BdAToyDH.js +0 -22401
  606. package/dist/local-roots-CrJ_Jv_G.js +0 -314
  607. package/dist/local-roots-n_Y4iYwb.js +0 -313
  608. package/dist/logger-B8yHnzPl.js +0 -49
  609. package/dist/login-C99fsB0N.js +0 -61
  610. package/dist/login-cLvGPjeO.js +0 -62
  611. package/dist/login-qr-CGqRFwgl.js +0 -329
  612. package/dist/login-qr-dnY5DC2C.js +0 -325
  613. package/dist/logs-cli-Bda7xY4N.js +0 -236
  614. package/dist/logs-cli-HzR-vnpD.js +0 -240
  615. package/dist/markdown-tables-58Hq__7K.js +0 -29
  616. package/dist/markdown-tables-GFEX0OR6.js +0 -29
  617. package/dist/media-CFsyXs3H.js +0 -940
  618. package/dist/media-Du5SHtnp.js +0 -10452
  619. package/dist/message-action-names-BfuEvR6j.js +0 -2521
  620. package/dist/message-action-names-CVBkpOLt.js +0 -2521
  621. package/dist/message-channel-FMNRI5Ax.js +0 -91
  622. package/dist/mime-AuIDUZPG.js +0 -149
  623. package/dist/mime-Cqg1jjia.js +0 -149
  624. package/dist/net-BEFkF-nI.js +0 -225
  625. package/dist/net-CNsUGiSw.js +0 -225
  626. package/dist/node-cli-Bu-InsO9.js +0 -1462
  627. package/dist/node-cli-DE7Pm7Fr.js +0 -1458
  628. package/dist/node-service-CumFZc9L.js +0 -67
  629. package/dist/node-service-DY1gG06I.js +0 -67
  630. package/dist/nodes-cli-B5aAExN0.js +0 -1350
  631. package/dist/nodes-cli-eKRqlKuO.js +0 -1346
  632. package/dist/nodes-screen-B3Sij1uT.js +0 -250
  633. package/dist/nodes-screen-DEvpoFmH.js +0 -250
  634. package/dist/note-CPFJCWJJ.js +0 -92
  635. package/dist/npm-registry-spec-BgMtTHvq.js +0 -786
  636. package/dist/npm-registry-spec-Dz3z1Zpd.js +0 -786
  637. package/dist/npm-resolution-Buio63BQ.js +0 -86
  638. package/dist/npm-resolution-gH1zHW2a.js +0 -86
  639. package/dist/onboard-BSf6qJWk.js +0 -647
  640. package/dist/onboard-V-SsZRk-.js +0 -649
  641. package/dist/onboard-auth-C_wHkop1.js +0 -207
  642. package/dist/onboard-auth-CkCBLvTg.js +0 -211
  643. package/dist/onboard-channels-DQTGPC18.js +0 -2548
  644. package/dist/onboard-channels-DSDQfR0u.js +0 -2547
  645. package/dist/onboard-helpers-Q7M6vdzh.js +0 -363
  646. package/dist/onboard-helpers-SCO3k5Y8.js +0 -364
  647. package/dist/onboard-remote-Co2hv1AD.js +0 -127
  648. package/dist/onboard-remote-Dl3BFSg2.js +0 -127
  649. package/dist/onboarding-B0bJfZ20.js +0 -588
  650. package/dist/onboarding-CeBR9OBi.js +0 -586
  651. package/dist/onboarding.finalize-BPgfWPB9.js +0 -404
  652. package/dist/onboarding.finalize-BmfLvNPJ.js +0 -402
  653. package/dist/onboarding.gateway-config-BL0Q7Wpg.js +0 -201
  654. package/dist/onboarding.gateway-config-D2QsXMYO.js +0 -195
  655. package/dist/outbound-CcaPcetn.js +0 -220
  656. package/dist/outbound-CeiW8z3a.js +0 -221
  657. package/dist/outbound-attachment-BIvFb3Is.js +0 -18
  658. package/dist/outbound-attachment-Bfm5-JYe.js +0 -18
  659. package/dist/outbound-attachment-CZ7zoYxB.js +0 -18
  660. package/dist/pairing-cli-CgX79ujL.js +0 -125
  661. package/dist/pairing-cli-DvbbXFgC.js +0 -129
  662. package/dist/pairing-labels-3wDxaApH.js +0 -9
  663. package/dist/pairing-labels-DCbWnbWk.js +0 -9
  664. package/dist/pairing-store-CdY7iRS0.js +0 -459
  665. package/dist/pairing-store-DykkYpQ7.js +0 -460
  666. package/dist/path-env-Cqo5LZmw.js +0 -89
  667. package/dist/path-env-GTM4HXCN.js +0 -89
  668. package/dist/path-safety-CXKAVpMp.js +0 -14
  669. package/dist/path-safety-DGB91qBk.js +0 -14
  670. package/dist/plugin-auto-enable-C6FPGg_-.js +0 -301
  671. package/dist/plugin-auto-enable-L8eOc8iC.js +0 -302
  672. package/dist/plugin-registry-CHlaWZD7.js +0 -33
  673. package/dist/plugin-registry-DQdMze4z.js +0 -33
  674. package/dist/plugin-sdk/auth/session-override.d.ts +0 -17
  675. package/dist/plugin-sdk/auto-reply/reply/directive-handling.auth.d.ts +0 -18
  676. package/dist/plugin-sdk/link-understanding/apply.d.ts +0 -10
  677. package/dist/plugin-sdk/link-understanding/defaults.d.ts +0 -2
  678. package/dist/plugin-sdk/link-understanding/detect.d.ts +0 -3
  679. package/dist/plugin-sdk/link-understanding/format.d.ts +0 -4
  680. package/dist/plugin-sdk/link-understanding/runner.d.ts +0 -11
  681. package/dist/plugin-sdk/media/input-files.d.ts +0 -95
  682. package/dist/plugin-sdk/media-understanding/apply.d.ts +0 -19
  683. package/dist/plugin-sdk/media-understanding/attachments.d.ts +0 -49
  684. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +0 -1
  685. package/dist/plugin-sdk/media-understanding/defaults.d.ts +0 -11
  686. package/dist/plugin-sdk/media-understanding/errors.d.ts +0 -6
  687. package/dist/plugin-sdk/media-understanding/format.d.ts +0 -7
  688. package/dist/plugin-sdk/media-understanding/fs.d.ts +0 -1
  689. package/dist/plugin-sdk/media-understanding/output-extract.d.ts +0 -2
  690. package/dist/plugin-sdk/media-understanding/providers/anthropic/index.d.ts +0 -2
  691. package/dist/plugin-sdk/media-understanding/providers/deepgram/audio.d.ts +0 -1
  692. package/dist/plugin-sdk/media-understanding/providers/deepgram/index.d.ts +0 -2
  693. package/dist/plugin-sdk/media-understanding/providers/google/audio.d.ts +0 -1
  694. package/dist/plugin-sdk/media-understanding/providers/google/index.d.ts +0 -2
  695. package/dist/plugin-sdk/media-understanding/providers/google/video.d.ts +0 -3
  696. package/dist/plugin-sdk/media-understanding/providers/groq/index.d.ts +0 -2
  697. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +0 -4
  698. package/dist/plugin-sdk/media-understanding/providers/minimax/index.d.ts +0 -2
  699. package/dist/plugin-sdk/media-understanding/providers/mistral/index.d.ts +0 -2
  700. package/dist/plugin-sdk/media-understanding/providers/moonshot/index.d.ts +0 -2
  701. package/dist/plugin-sdk/media-understanding/providers/moonshot/video.d.ts +0 -3
  702. package/dist/plugin-sdk/media-understanding/providers/openai/audio.d.ts +0 -1
  703. package/dist/plugin-sdk/media-understanding/providers/openai/index.d.ts +0 -2
  704. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +0 -20
  705. package/dist/plugin-sdk/media-understanding/providers/zai/index.d.ts +0 -2
  706. package/dist/plugin-sdk/media-understanding/resolve.d.ts +0 -44
  707. package/dist/plugin-sdk/media-understanding/runner.d.ts +0 -34
  708. package/dist/plugin-sdk/media-understanding/runner.entries.d.ts +0 -33
  709. package/dist/plugin-sdk/media-understanding/scope.d.ts +0 -9
  710. package/dist/plugin-sdk/media-understanding/types.d.ts +0 -59
  711. package/dist/plugin-sdk/media-understanding/video.d.ts +0 -2
  712. package/dist/plugin-sdk/utils/mask-api-key.d.ts +0 -1
  713. package/dist/plugin-sdk/utils/run-with-concurrency.d.ts +0 -11
  714. package/dist/plugins-7B167wIj.js +0 -453
  715. package/dist/plugins-BRHOfy1Z.js +0 -455
  716. package/dist/plugins-cli--I43zIaS.js +0 -797
  717. package/dist/plugins-cli-DIxMbY9I.js +0 -801
  718. package/dist/ports-BS8kQkd9.js +0 -96
  719. package/dist/ports-CAqyeQYZ.js +0 -316
  720. package/dist/ports-CTUgXF2d.js +0 -96
  721. package/dist/ports-DqfnVnCw.js +0 -370
  722. package/dist/preflight-CaRJtknt.js +0 -64
  723. package/dist/preflight-DeDRKMx4.js +0 -68
  724. package/dist/program-context-9dv7ClZz.js +0 -474
  725. package/dist/program-wVSvyiD-.js +0 -248
  726. package/dist/prompt-select-styled-BE_4W66Z.js +0 -1672
  727. package/dist/prompt-select-styled-BTPf06Os.js +0 -1669
  728. package/dist/provider-dispatcher-VZWITjmt.js +0 -660
  729. package/dist/provider-dispatcher-zYYGo00g.js +0 -659
  730. package/dist/push-apns-Cj0Ryn18.js +0 -713
  731. package/dist/push-apns-fFfYCqda.js +0 -711
  732. package/dist/pw-ai-CnN2sITD.js +0 -1908
  733. package/dist/pw-ai-fnX3cecw.js +0 -1911
  734. package/dist/qr-cli-CriPg41m.js +0 -349
  735. package/dist/qr-cli-DSURqD0D.js +0 -353
  736. package/dist/redact-snapshot-BecRL_h6.js +0 -2016
  737. package/dist/redact-snapshot-pTdzSrex.js +0 -2016
  738. package/dist/register.agent-B5_1XatO.js +0 -290
  739. package/dist/register.agent-Dba3CYyo.js +0 -1018
  740. package/dist/register.configure-DmwHGsPG.js +0 -128
  741. package/dist/register.configure-DrPlgBqB.js +0 -133
  742. package/dist/register.import-CPQqqdje.js +0 -31
  743. package/dist/register.import-D1UaH1QV.js +0 -29
  744. package/dist/register.maintenance-D76tiF4W.js +0 -501
  745. package/dist/register.maintenance-hUriFBfi.js +0 -499
  746. package/dist/register.message--VzmF3u4.js +0 -685
  747. package/dist/register.message-itNWUdvP.js +0 -689
  748. package/dist/register.onboard-Co8D908b.js +0 -93
  749. package/dist/register.onboard-q8JzWtuv.js +0 -97
  750. package/dist/register.setup-Djc6jZTc.js +0 -113
  751. package/dist/register.setup-hhPii4O7.js +0 -117
  752. package/dist/register.status-health-sessions-C1FhACQB.js +0 -668
  753. package/dist/register.status-health-sessions-DcUegHcH.js +0 -428
  754. package/dist/register.subclis-DAfihpBz.js +0 -267
  755. package/dist/replies-IpiCq1Ht.js +0 -136
  756. package/dist/replies-LSx_XhsP.js +0 -136
  757. package/dist/reply-D0CLqcBY.js +0 -13718
  758. package/dist/reply-Djq8ghfI.js +0 -13715
  759. package/dist/reply-directives-Cz7622Qx.js +0 -182
  760. package/dist/reply-directives-ssnaPNiU.js +0 -182
  761. package/dist/reply-payloads-CQMtrphw.js +0 -527
  762. package/dist/reply-prefix-CWcAZKhE.js +0 -37
  763. package/dist/reply-prefix-Drq7Pf3A.js +0 -37
  764. package/dist/resolve-route-B8uIc2H3.js +0 -249
  765. package/dist/resolve-route-C8ooNlI4.js +0 -249
  766. package/dist/response-prefix-template-DPOggmPO.js +0 -134
  767. package/dist/retry-BdhJlZQI.js +0 -77
  768. package/dist/run-main-B-Cb62fC.js +0 -306
  769. package/dist/runner-DUnmgjJ8.js +0 -2394
  770. package/dist/runner-EobZIrDt.js +0 -2394
  771. package/dist/secure-random-B5qmFc3N.js +0 -44
  772. package/dist/security-cli-05blEYyC.js +0 -482
  773. package/dist/security-cli-DYbt8duB.js +0 -487
  774. package/dist/send-7O3-bRtl.js +0 -547
  775. package/dist/send-9Huf62k3.js +0 -2245
  776. package/dist/send-B9mIJdUo.js +0 -547
  777. package/dist/send-Bj0RXr-a.js +0 -492
  778. package/dist/send-BzkAsn7K.js +0 -29
  779. package/dist/send-CXFhFLP9.js +0 -11
  780. package/dist/send-Ce_BDa8P.js +0 -349
  781. package/dist/send-ChvasRSh.js +0 -1779
  782. package/dist/send-Cl5BhbnF.js +0 -426
  783. package/dist/send-CpebTvM6.js +0 -374
  784. package/dist/send-DWf7BCPe.js +0 -492
  785. package/dist/send-DX8QSuSI.js +0 -1174
  786. package/dist/send-DZRn6PT2.js +0 -332
  787. package/dist/send-Dd2_MykI.js +0 -2245
  788. package/dist/send-IJaUAa8H.js +0 -1776
  789. package/dist/send-vvZXksNU.js +0 -349
  790. package/dist/server-BrzR9JmX.js +0 -206
  791. package/dist/server-_h27-uP_.js +0 -202
  792. package/dist/server-lifecycle-CUdA6Far.js +0 -2437
  793. package/dist/server-lifecycle-DQZWL8iP.js +0 -2437
  794. package/dist/server-node-events-DgB1z2Cx.js +0 -392
  795. package/dist/server-node-events-DtvPfM1I.js +0 -396
  796. package/dist/service-9le8AnC-.js +0 -670
  797. package/dist/service-Drb0kx6I.js +0 -670
  798. package/dist/session-BIAOl5QR.js +0 -170
  799. package/dist/session-Wu00pCn_.js +0 -170
  800. package/dist/session-cost-usage-7plmOKbs.js +0 -627
  801. package/dist/session-cost-usage-CPFxBFUg.js +0 -627
  802. package/dist/session-dirs-CfIrIJxG.js +0 -318
  803. package/dist/session-dirs-DlPpWt5Q.js +0 -318
  804. package/dist/session-utils-Sd9w4vc1.js +0 -622
  805. package/dist/session-utils-iL47hYmZ.js +0 -622
  806. package/dist/sessions-6pKQ3gN3.js +0 -247
  807. package/dist/sessions-ZRmCDdj1.js +0 -2569
  808. package/dist/shell-env-DYZq9PqC.js +0 -163
  809. package/dist/ssrf-B-rF_tZB.js +0 -183
  810. package/dist/ssrf-DJW14Wkh.js +0 -183
  811. package/dist/status-CTRQCXRj.js +0 -1979
  812. package/dist/status-Y67xsH93.js +0 -1983
  813. package/dist/status.update-DlBReI5-.js +0 -449
  814. package/dist/status.update-v7fEQ7R9.js +0 -449
  815. package/dist/store-B5989JkX.js +0 -64
  816. package/dist/store-BgtgYJoX.js +0 -53
  817. package/dist/store-DCrrxHyS.js +0 -2571
  818. package/dist/store-Ql6vAcsg.js +0 -64
  819. package/dist/subagent-registry-BGknZEUI.js +0 -4856
  820. package/dist/subagent-registry-CWeRBjfn.js +0 -4854
  821. package/dist/subsystem-Ct6qOOqZ.js +0 -1079
  822. package/dist/subsystem-PQ64_nsu.js +0 -1136
  823. package/dist/system-cli-CmO-4Rju.js +0 -77
  824. package/dist/system-cli-VBsa18K6.js +0 -73
  825. package/dist/systemd-CqFpK30Y.js +0 -547
  826. package/dist/systemd-fK9AV5bP.js +0 -547
  827. package/dist/systemd-hints-D3rr0j14.js +0 -278
  828. package/dist/systemd-hints-DNOSRaqA.js +0 -278
  829. package/dist/systemd-linger-B907NVVy.js +0 -75
  830. package/dist/systemd-linger-wYksBbM7.js +0 -75
  831. package/dist/tables-Boxa9MJH.js +0 -55
  832. package/dist/tables-CO_kxD0e.js +0 -55
  833. package/dist/tables-WZp8Vt9n.js +0 -55
  834. package/dist/tailnet-CfZhpSnt.js +0 -40
  835. package/dist/tailnet-D0NV0tRJ.js +0 -40
  836. package/dist/tailscale-B__xvMjA.js +0 -230
  837. package/dist/tailscale-q_ZrxUCc.js +0 -230
  838. package/dist/targets-B4rMyQFJ.js +0 -53
  839. package/dist/targets-BHYLCv06.js +0 -2534
  840. package/dist/targets-BjWhDMJM.js +0 -650
  841. package/dist/targets-BnpMZZC_.js +0 -120
  842. package/dist/targets-CHwGDIgO.js +0 -650
  843. package/dist/targets-DIDKlfKI.js +0 -220
  844. package/dist/targets-bqjVeCnF.js +0 -2535
  845. package/dist/targets-mqj9GNg1.js +0 -53
  846. package/dist/tool-display-C0hpLmkw.js +0 -785
  847. package/dist/tool-display-CQTRHo3Z.js +0 -785
  848. package/dist/tool-images-BYY11Gw3.js +0 -263
  849. package/dist/tool-images-CnJ0R8Fo.js +0 -263
  850. package/dist/trash-C0mjnHuW.js +0 -125
  851. package/dist/trash-Cgwc9mLD.js +0 -125
  852. package/dist/tui-9cJnR1dN.js +0 -3282
  853. package/dist/tui-BR3egaFJ.js +0 -3282
  854. package/dist/tui-cli-BYpkhE6J.js +0 -66
  855. package/dist/tui-cli-DndeZyup.js +0 -62
  856. package/dist/update-BJVdkzk7.js +0 -349
  857. package/dist/update-DjI6KTA5.js +0 -349
  858. package/dist/update-cli-B7Rl2Qr2.js +0 -1146
  859. package/dist/update-cli-CFk_jqUm.js +0 -1148
  860. package/dist/usage-CFv4a1Nf.js +0 -5448
  861. package/dist/voice-credentials-D59RcLbl.js +0 -45
  862. package/dist/voice-credentials-fjA7GShF.js +0 -45
  863. package/dist/web-Bs1td8Qw.js +0 -79
  864. package/dist/web-CSiw--Px.js +0 -3070
  865. package/dist/web-jRTtDiNf.js +0 -74
  866. package/dist/webhooks-cli-0yQha2yj.js +0 -334
  867. package/dist/webhooks-cli-ula0bTX-.js +0 -330
  868. package/dist/whatsapp-actions-3NdzsNg1.js +0 -130
  869. package/dist/whatsapp-actions-y_1vjkYY.js +0 -125
  870. package/dist/workspace-BT3X-qCZ.js +0 -449
  871. package/dist/workspace-D5hHXubL.js +0 -447
  872. package/dist/zod-schema-CbqZAIYy.js +0 -2696
  873. package/dist/zod-schema-YGQJEcnj.js +0 -2696
  874. /package/dist/{account-lookup-BOCzCnir.js → account-lookup-CIY_RKhi.js} +0 -0
  875. /package/dist/{account-lookup-C0ndrpt-.js → account-lookup-DGscKBsr.js} +0 -0
  876. /package/dist/{agent-helpers-eEHy5uX2.js → agent-helpers-D83kfcF9.js} +0 -0
  877. /package/dist/{agents.config-BgDBcY4h.js → agents.config-BPe_hkMn.js} +0 -0
  878. /package/dist/{api-Cd_7aESj.js → api-D8QQo5bc.js} +0 -0
  879. /package/dist/{api-DJ_oWYus.js → api-GywrnwRm.js} +0 -0
  880. /package/dist/{argv-BY8EVMTP.js → argv-DW4MYBdJ.js} +0 -0
  881. /package/dist/{bindings-Dr0bGRst.js → bindings-BpL4pISF.js} +0 -0
  882. /package/dist/{brew-CmTYeZk1.js → brew-CBsS-Vq1.js} +0 -0
  883. /package/dist/{brew-V4lMBeE3.js → brew-Clw9vXhE.js} +0 -0
  884. /package/dist/{chat-envelope-CrM0X4sl.js → chat-envelope-CY1yvCc-.js} +0 -0
  885. /package/dist/{chat-envelope-BIujl9Cj.js → chat-envelope-DUMcMMB2.js} +0 -0
  886. /package/dist/{chat-type-CH3W-zKy.js → chat-type-BKe459rw.js} +0 -0
  887. /package/dist/{chat-type-DyovJwCt.js → chat-type-CE6cJOyt.js} +0 -0
  888. /package/dist/{cleanup-utils-CNwlTKyR.js → cleanup-utils-365rf8YN.js} +0 -0
  889. /package/dist/{cleanup-utils-gNzIs9yk.js → cleanup-utils-rqUXvR3Z.js} +0 -0
  890. /package/dist/{cli-name-3MdfbvIR.js → cli-name-7Gb97Vyl.js} +0 -0
  891. /package/dist/{cli-name-CRLBidNP.js → cli-name-Yv30OygA.js} +0 -0
  892. /package/dist/{cli-utils-5ZIfXAfM.js → cli-utils-5W6ugvN5.js} +0 -0
  893. /package/dist/{cli-utils-BUOtyfnU.js → cli-utils-CZJacPS2.js} +0 -0
  894. /package/dist/{client-D5m46AuY.js → client-DQ-Nh-rV.js} +0 -0
  895. /package/dist/{client-DFyI5I0n.js → client-Fi2k2G9Z.js} +0 -0
  896. /package/dist/{command-options-Cn2fc1Of.js → command-options-CXHYeogR.js} +0 -0
  897. /package/dist/{command-options-D2nN4AXX.js → command-options-Cx6evn0x.js} +0 -0
  898. /package/dist/{config-eval-CU2G7a83.js → config-eval-DU_v_3lY.js} +0 -0
  899. /package/dist/{config-eval-BCKpAS_K.js → config-eval-V26Gl6eZ.js} +0 -0
  900. /package/dist/{constants-CRGAZ2ow.js → constants-C7gkSGRE.js} +0 -0
  901. /package/dist/{constants-BAZuhSRm.js → constants-DAiBiWlI.js} +0 -0
  902. /package/dist/{constants-DoYLsBmv.js → constants-DOnQraOP.js} +0 -0
  903. /package/dist/{constants-BBVTjb1j.js → constants-DQxqJVLu.js} +0 -0
  904. /package/dist/{credentials-DMAWNZdV.js → credentials-BHWUBHMd.js} +0 -0
  905. /package/dist/{credentials-Dmc3H-jd.js → credentials-DG0tD6-e.js} +0 -0
  906. /package/dist/{daemon-runtime-CzFI2dPw.js → daemon-runtime-B7Tmba31.js} +0 -0
  907. /package/dist/{daemon-runtime-aQhinwSL.js → daemon-runtime-KyXiP2ib.js} +0 -0
  908. /package/dist/{dangerous-name-matching-BlTBBZns.js → dangerous-name-matching-B4MRPcn-.js} +0 -0
  909. /package/dist/{dangerous-tools-BRmbBvRf.js → dangerous-tools-CIPZZJoN.js} +0 -0
  910. /package/dist/{dangerous-tools-E1i3IoxZ.js → dangerous-tools-D-GNbdpV.js} +0 -0
  911. /package/dist/{fetch-timeout-DBRRPNBi.js → fetch-timeout-CPe2rPLq.js} +0 -0
  912. /package/dist/{fetch-timeout-l_6RdoMw.js → fetch-timeout-DkT3EnRA.js} +0 -0
  913. /package/dist/{file-identity-BnGA6wyc.js → file-identity-C8MIb5lb.js} +0 -0
  914. /package/dist/{format-duration-B-Uv5nOi.js → format-duration-Cd7SCued.js} +0 -0
  915. /package/dist/{format-duration-D1M3Zxu6.js → format-duration-Oj8pTbYL.js} +0 -0
  916. /package/dist/{format-relative-Cywx6ldk.js → format-relative-8dpVUfzZ.js} +0 -0
  917. /package/dist/{format-relative-DcQZUAYl.js → format-relative-BMNeqaxW.js} +0 -0
  918. /package/dist/{health-format-CL2Xq92A.js → health-format-CwLlmYSK.js} +0 -0
  919. /package/dist/{health-format-CVgQD-z9.js → health-format-CycFH5Sj.js} +0 -0
  920. /package/dist/{heartbeat-wake-DLxQm6-U.js → heartbeat-wake-D6Lt5YUk.js} +0 -0
  921. /package/dist/{heartbeat-wake-DjsTDzF3.js → heartbeat-wake-uZkAP-tP.js} +0 -0
  922. /package/dist/{help-format-DM6-OBt-.js → help-format-B0YIbosn.js} +0 -0
  923. /package/dist/{help-format-CJQ7APRn.js → help-format-GeOPYD_A.js} +0 -0
  924. /package/dist/{helpers-BER76F_2.js → helpers-6_MYSJEW.js} +0 -0
  925. /package/dist/{helpers-DSMIGYx2.js → helpers-703bXVlF.js} +0 -0
  926. /package/dist/{helpers-D-r6yhnI.js → helpers-p_u0Gnj_.js} +0 -0
  927. /package/dist/{input-provenance-BgfeDgck.js → input-provenance-C4nlFv5Y.js} +0 -0
  928. /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-duDehu0D.js} +0 -0
  929. /package/dist/{ip-BAhS4rY2.js → ip-BFJnbRh9.js} +0 -0
  930. /package/dist/{ip-BUhsZdJu.js → ip-D0zgNmBV.js} +0 -0
  931. /package/dist/{is-main-BmHYGRhd.js → is-main-BE1Jih91.js} +0 -0
  932. /package/dist/{json-file-B5WEJJye.js → json-file-CsV03dh-.js} +0 -0
  933. /package/dist/{json-file-Dbg7nZg1.js → json-file-CtQKYRLl.js} +0 -0
  934. /package/dist/{json-files-BFGbyEzL.js → json-files-B2yMsppu.js} +0 -0
  935. /package/dist/{json-files-CfhnuGaC.js → json-files-BYH8U7Mx.js} +0 -0
  936. /package/dist/{lanes-4FoQemog.js → lanes-BWL_LwXG.js} +0 -0
  937. /package/dist/{lanes-BhdzrAIa.js → lanes-cHJ5arWg.js} +0 -0
  938. /package/dist/{links-CwTlzaPe.js → links-BFtUmGLH.js} +0 -0
  939. /package/dist/{links-D5vtq30Q.js → links-BNjLUJ9U.js} +0 -0
  940. /package/dist/{location-50gaJF5Z.js → location-BC45kOxc.js} +0 -0
  941. /package/dist/{location-Qo8Ii1zo.js → location-BUhzov-a.js} +0 -0
  942. /package/dist/{logger-IA_Dr_BT.js → logger-1QWMF9Hc.js} +0 -0
  943. /package/dist/{logger-nEdVxm5D.js → logger-BWMPnILd.js} +0 -0
  944. /package/dist/{logger-O6JX52kK.js → logger-Liu31nEU.js} +0 -0
  945. /package/dist/{logging-FctZEleJ.js → logging-CtbzyUjs.js} +0 -0
  946. /package/dist/{logging-BiuZwq5D.js → logging-DJFQvfGD.js} +0 -0
  947. /package/dist/{logging-Bs1VqVFL.js → logging-JiRrQn2_.js} +0 -0
  948. /package/dist/{logging-JZEg5nDp.js → logging-kuFzZMsG.js} +0 -0
  949. /package/dist/{message-channel-tuc9CdEw.js → message-channel-DOyKgFu8.js} +0 -0
  950. /package/dist/{mutable-allowlist-detectors-CtKavajp.js → mutable-allowlist-detectors-4m-Kc8Kn.js} +0 -0
  951. /package/dist/{mutable-allowlist-detectors-TCG6mnbz.js → mutable-allowlist-detectors-BECxOoKX.js} +0 -0
  952. /package/dist/{onboard-config-BxfgUqk6.js → onboard-config-C9so5ggC.js} +0 -0
  953. /package/dist/{onboard-config-DNzlo8Cg.js → onboard-config-oXID97rS.js} +0 -0
  954. /package/dist/{parse-log-line-CT0H1-oQ.js → parse-log-line-BtFI563v.js} +0 -0
  955. /package/dist/{parse-log-line-pij_xhtE.js → parse-log-line-COptqka7.js} +0 -0
  956. /package/dist/{parse-timeout-CvODy9RC.js → parse-timeout-BpphuwYl.js} +0 -0
  957. /package/dist/{path-guards-DOpzcMXz.js → path-guards-DJteVA0d.js} +0 -0
  958. /package/dist/{path-guards-DipYoPVw.js → path-guards-DVRUJZVN.js} +0 -0
  959. /package/dist/plugin-sdk/{media-understanding → stt}/providers/google/inline-data.d.ts +0 -0
  960. /package/dist/{plugins-allowlist-Bcqe9Gd8.js → plugins-allowlist-Clt6dsY6.js} +0 -0
  961. /package/dist/{polls-DQrR-qT3.js → polls-C5xr-8pM.js} +0 -0
  962. /package/dist/{polls-ybwcqkWt.js → polls-DXd67TD8.js} +0 -0
  963. /package/dist/{ports-lsof-CDyv5GJd.js → ports-lsof-xWMTWvMQ.js} +0 -0
  964. /package/dist/{process-scoped-map-BwUkYFQV.js → process-scoped-map-C7KeadUK.js} +0 -0
  965. /package/dist/{process-scoped-map-_zxf_kLz.js → process-scoped-map-CQ1C5MbT.js} +0 -0
  966. /package/dist/{program-context-CG-t6Yp-.js → program-context-LuBAPt4y.js} +0 -0
  967. /package/dist/{progress-DRLmcFiG.js → progress-C-hTn2yV.js} +0 -0
  968. /package/dist/{progress-BOdRbOHD.js → progress-ChmZpgvt.js} +0 -0
  969. /package/dist/{prompt-WEkXwIMT.js → prompt-BXeXEH0o.js} +0 -0
  970. /package/dist/{prompt-BRGfic91.js → prompt-C31r0R5I.js} +0 -0
  971. /package/dist/{prompt-style-B4Cq4PyQ.js → prompt-style-BcM-VSMx.js} +0 -0
  972. /package/dist/{proxy-BMJL0Qog.js → proxy-dRhp8Ykw.js} +0 -0
  973. /package/dist/{pw-ai-state-CwXeO5d0.js → pw-ai-state-CjfcKQoO.js} +0 -0
  974. /package/dist/{pw-ai-state-DaISdsXY.js → pw-ai-state-DfjyEttO.js} +0 -0
  975. /package/dist/{redact-gXuh8MFk.js → redact-D975G-N6.js} +0 -0
  976. /package/dist/{redact-CqWx9rpK.js → redact-Dx1Fue21.js} +0 -0
  977. /package/dist/{redact-identifier-BJOQDEj0.js → redact-identifier-Bqj_YiPd.js} +0 -0
  978. /package/dist/{redact-identifier-DR54qsoT.js → redact-identifier-HyK89Sod.js} +0 -0
  979. /package/dist/{remoteclaw-root-CgNyrbxc.js → remoteclaw-root-B1iQBmbi.js} +0 -0
  980. /package/dist/{remoteclaw-root-u8dAeHID.js → remoteclaw-root-BmYwCzQN.js} +0 -0
  981. /package/dist/{render-CDCvpfhh.js → render-BvFSFJZW.js} +0 -0
  982. /package/dist/{render-CJl4GK1B.js → render-flG67HhW.js} +0 -0
  983. /package/dist/{response-prefix-template-D3ZcJP4E.js → response-prefix-template-DDvbVpx6.js} +0 -0
  984. /package/dist/{retry-cXXk2j6_.js → retry-CByUYDAZ.js} +0 -0
  985. /package/dist/{retry-B19gMxS7.js → retry-oNE3cBeG.js} +0 -0
  986. /package/dist/{runtime-guard-BS55uiSW.js → runtime-guard-CqNug-FG.js} +0 -0
  987. /package/dist/{runtime-guard-CK80eucm.js → runtime-guard-DAHXelsb.js} +0 -0
  988. /package/dist/{runtime-status-BhW7hP_U.js → runtime-status-CM4rzyfO.js} +0 -0
  989. /package/dist/{runtime-status-hFVEC3wO.js → runtime-status-DJYthOLz.js} +0 -0
  990. /package/dist/{secret-equal-CJzes24Z.js → secret-equal-1-dwi8DL.js} +0 -0
  991. /package/dist/{secret-equal-CQAmGfGc.js → secret-equal-CXJEZiWb.js} +0 -0
  992. /package/dist/{secure-random-B3f7Ri2X.js → secure-random-Ba4Y5xG5.js} +0 -0
  993. /package/dist/{secure-random-BkZFG9cd.js → secure-random-C6AVByhV.js} +0 -0
  994. /package/dist/{stagger-B-_Wnofy.js → stagger-CjeisVRF.js} +0 -0
  995. /package/dist/{stagger-B2ORDHsP.js → stagger-vkvpUmOz.js} +0 -0
  996. /package/dist/{status-C6YNwimj.js → status-DNLnVQZ4.js} +0 -0
  997. /package/dist/{status-yrDGXYZM.js → status-DZhl73dM.js} +0 -0
  998. /package/dist/{strip-inbound-meta-0cvL6itU.js → strip-inbound-meta-C3Cwe_ZO.js} +0 -0
  999. /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-DuDjnGjC.js} +0 -0
  1000. /package/dist/{table-ByMyHTh_.js → table-B9zSN_7D.js} +0 -0
  1001. /package/dist/{table-C-dba-5-.js → table-j8Ayarot.js} +0 -0
  1002. /package/dist/{target-errors-DJVRKFcU.js → target-errors-ChjvOMuV.js} +0 -0
  1003. /package/dist/{target-errors-GZXDqlUu.js → target-errors-Dn4aykSV.js} +0 -0
  1004. /package/dist/{targets-B_d_1z3N.js → targets-BtGRUQMa.js} +0 -0
  1005. /package/dist/{targets-DOJXjN1U.js → targets-CE4AYRI9.js} +0 -0
  1006. /package/dist/{targets-D01MJGnh.js → targets-DlufWCmy.js} +0 -0
  1007. /package/dist/{targets-WSwPflb6.js → targets-akvAerZF.js} +0 -0
  1008. /package/dist/{text-format-DarxU3JH.js → text-format-VSogn9Yq.js} +0 -0
  1009. /package/dist/{text-format-mr5bZq0f.js → text-format-xeHt9ywT.js} +0 -0
  1010. /package/dist/{thinking-BqJmU6Zp.js → thinking-B171Rc3-.js} +0 -0
  1011. /package/dist/{tokens-C8yGxAcR.js → tokens-B-jmvNR9.js} +0 -0
  1012. /package/dist/{tokens-DAFBx5qr.js → tokens-kTLGxaAF.js} +0 -0
  1013. /package/dist/{usage-BXi79Rq6.js → usage-CRJFqYf8.js} +0 -0
  1014. /package/dist/{usage-C1lHaofV.js → usage-Txvb0Iq2.js} +0 -0
  1015. /package/dist/{usage-format-CD5jsZY1.js → usage-format-70DvrseE.js} +0 -0
  1016. /package/dist/{usage-format-CRVpDVj1.js → usage-format-Bs8DkQtr.js} +0 -0
  1017. /package/dist/{widearea-dns-C-0P7TRi.js → widearea-dns-BOgHvO4O.js} +0 -0
  1018. /package/dist/{widearea-dns-DFZMcfLf.js → widearea-dns-CGhfClCr.js} +0 -0
  1019. /package/dist/{workspace-BJCKO8Ns.js → workspace-DhUqtMK_.js} +0 -0
  1020. /package/dist/{wsl-kFaeW76c.js → wsl-Cs-gowFJ.js} +0 -0
@@ -0,0 +1,1908 @@
1
+ import { Mt as resolvePreferredRemoteClawTmpDir } from "./entry.js";
2
+ import "./config-DfcqHTH-.js";
3
+ import "./host-env-security-axRnIi8d.js";
4
+ import "./shell-env-DBS5su07.js";
5
+ import "./version-3QUZW8EP.js";
6
+ import "./env-vars-CD2_baIP.js";
7
+ import "./zod-schema-C8gEV0uz.js";
8
+ import "./agent-scope-CJW7vnF8.js";
9
+ import { t as formatCliCommand } from "./command-format-KkslAzwV.js";
10
+ import "./net-Cg8AQeke.js";
11
+ import "./logger-BWMPnILd.js";
12
+ import "./ip-D0zgNmBV.js";
13
+ import "./tailnet-CEudzG0i.js";
14
+ import "./exec-DkFE7lqU.js";
15
+ import "./redact-Dx1Fue21.js";
16
+ import "./ssrf-7I3FUHpm.js";
17
+ import { n as formatErrorMessage } from "./errors-BfONuT95.js";
18
+ import { n as markPwAiLoaded } from "./pw-ai-state-DfjyEttO.js";
19
+ import { _ as appendCdpPath, b as getHeadersWithAuth, d as normalizeCdpWsUrl, g as withBrowserNavigationPolicy, h as assertBrowserNavigationResultAllowed, m as assertBrowserNavigationAllowed, t as getChromeWebSocketUrl, u as formatAriaSnapshot, v as fetchJson, x as withCdpSocket } from "./chrome-YBrnJN-g.js";
20
+ import "./ports-DiQFcKUB.js";
21
+ import "./ports-lsof-xWMTWvMQ.js";
22
+ import path from "node:path";
23
+ import crypto from "node:crypto";
24
+ import fsp from "node:fs/promises";
25
+ import { chromium, devices } from "playwright-core";
26
+
27
+ //#region src/browser/pw-session.ts
28
+ const pageStates = /* @__PURE__ */ new WeakMap();
29
+ const contextStates = /* @__PURE__ */ new WeakMap();
30
+ const observedContexts = /* @__PURE__ */ new WeakSet();
31
+ const observedPages = /* @__PURE__ */ new WeakSet();
32
+ const roleRefsByTarget = /* @__PURE__ */ new Map();
33
+ const MAX_ROLE_REFS_CACHE = 50;
34
+ const MAX_CONSOLE_MESSAGES = 500;
35
+ const MAX_PAGE_ERRORS = 200;
36
+ const MAX_NETWORK_REQUESTS = 500;
37
+ let cached = null;
38
+ let connecting = null;
39
+ function normalizeCdpUrl(raw) {
40
+ return raw.replace(/\/$/, "");
41
+ }
42
+ function findNetworkRequestById(state, id) {
43
+ for (let i = state.requests.length - 1; i >= 0; i -= 1) {
44
+ const candidate = state.requests[i];
45
+ if (candidate && candidate.id === id) return candidate;
46
+ }
47
+ }
48
+ function roleRefsKey(cdpUrl, targetId) {
49
+ return `${normalizeCdpUrl(cdpUrl)}::${targetId}`;
50
+ }
51
+ function rememberRoleRefsForTarget(opts) {
52
+ const targetId = opts.targetId.trim();
53
+ if (!targetId) return;
54
+ roleRefsByTarget.set(roleRefsKey(opts.cdpUrl, targetId), {
55
+ refs: opts.refs,
56
+ ...opts.frameSelector ? { frameSelector: opts.frameSelector } : {},
57
+ ...opts.mode ? { mode: opts.mode } : {}
58
+ });
59
+ while (roleRefsByTarget.size > MAX_ROLE_REFS_CACHE) {
60
+ const first = roleRefsByTarget.keys().next();
61
+ if (first.done) break;
62
+ roleRefsByTarget.delete(first.value);
63
+ }
64
+ }
65
+ function storeRoleRefsForTarget(opts) {
66
+ const state = ensurePageState(opts.page);
67
+ state.roleRefs = opts.refs;
68
+ state.roleRefsFrameSelector = opts.frameSelector;
69
+ state.roleRefsMode = opts.mode;
70
+ if (!opts.targetId?.trim()) return;
71
+ rememberRoleRefsForTarget({
72
+ cdpUrl: opts.cdpUrl,
73
+ targetId: opts.targetId,
74
+ refs: opts.refs,
75
+ frameSelector: opts.frameSelector,
76
+ mode: opts.mode
77
+ });
78
+ }
79
+ function restoreRoleRefsForTarget(opts) {
80
+ const targetId = opts.targetId?.trim() || "";
81
+ if (!targetId) return;
82
+ const cached = roleRefsByTarget.get(roleRefsKey(opts.cdpUrl, targetId));
83
+ if (!cached) return;
84
+ const state = ensurePageState(opts.page);
85
+ if (state.roleRefs) return;
86
+ state.roleRefs = cached.refs;
87
+ state.roleRefsFrameSelector = cached.frameSelector;
88
+ state.roleRefsMode = cached.mode;
89
+ }
90
+ function ensurePageState(page) {
91
+ const existing = pageStates.get(page);
92
+ if (existing) return existing;
93
+ const state = {
94
+ console: [],
95
+ errors: [],
96
+ requests: [],
97
+ requestIds: /* @__PURE__ */ new WeakMap(),
98
+ nextRequestId: 0,
99
+ armIdUpload: 0,
100
+ armIdDialog: 0,
101
+ armIdDownload: 0
102
+ };
103
+ pageStates.set(page, state);
104
+ if (!observedPages.has(page)) {
105
+ observedPages.add(page);
106
+ page.on("console", (msg) => {
107
+ const entry = {
108
+ type: msg.type(),
109
+ text: msg.text(),
110
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
111
+ location: msg.location()
112
+ };
113
+ state.console.push(entry);
114
+ if (state.console.length > MAX_CONSOLE_MESSAGES) state.console.shift();
115
+ });
116
+ page.on("pageerror", (err) => {
117
+ state.errors.push({
118
+ message: err?.message ? String(err.message) : String(err),
119
+ name: err?.name ? String(err.name) : void 0,
120
+ stack: err?.stack ? String(err.stack) : void 0,
121
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
122
+ });
123
+ if (state.errors.length > MAX_PAGE_ERRORS) state.errors.shift();
124
+ });
125
+ page.on("request", (req) => {
126
+ state.nextRequestId += 1;
127
+ const id = `r${state.nextRequestId}`;
128
+ state.requestIds.set(req, id);
129
+ state.requests.push({
130
+ id,
131
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
132
+ method: req.method(),
133
+ url: req.url(),
134
+ resourceType: req.resourceType()
135
+ });
136
+ if (state.requests.length > MAX_NETWORK_REQUESTS) state.requests.shift();
137
+ });
138
+ page.on("response", (resp) => {
139
+ const req = resp.request();
140
+ const id = state.requestIds.get(req);
141
+ if (!id) return;
142
+ const rec = findNetworkRequestById(state, id);
143
+ if (!rec) return;
144
+ rec.status = resp.status();
145
+ rec.ok = resp.ok();
146
+ });
147
+ page.on("requestfailed", (req) => {
148
+ const id = state.requestIds.get(req);
149
+ if (!id) return;
150
+ const rec = findNetworkRequestById(state, id);
151
+ if (!rec) return;
152
+ rec.failureText = req.failure()?.errorText;
153
+ rec.ok = false;
154
+ });
155
+ page.on("close", () => {
156
+ pageStates.delete(page);
157
+ observedPages.delete(page);
158
+ });
159
+ }
160
+ return state;
161
+ }
162
+ function observeContext(context) {
163
+ if (observedContexts.has(context)) return;
164
+ observedContexts.add(context);
165
+ ensureContextState(context);
166
+ for (const page of context.pages()) ensurePageState(page);
167
+ context.on("page", (page) => ensurePageState(page));
168
+ }
169
+ function ensureContextState(context) {
170
+ const existing = contextStates.get(context);
171
+ if (existing) return existing;
172
+ const state = { traceActive: false };
173
+ contextStates.set(context, state);
174
+ return state;
175
+ }
176
+ function observeBrowser(browser) {
177
+ for (const context of browser.contexts()) observeContext(context);
178
+ }
179
+ async function connectBrowser(cdpUrl) {
180
+ const normalized = normalizeCdpUrl(cdpUrl);
181
+ if (cached?.cdpUrl === normalized) return cached;
182
+ if (connecting) return await connecting;
183
+ const connectWithRetry = async () => {
184
+ let lastErr;
185
+ for (let attempt = 0; attempt < 3; attempt += 1) try {
186
+ const timeout = 5e3 + attempt * 2e3;
187
+ const endpoint = await getChromeWebSocketUrl(normalized, timeout).catch(() => null) ?? normalized;
188
+ const headers = getHeadersWithAuth(endpoint);
189
+ const browser = await chromium.connectOverCDP(endpoint, {
190
+ timeout,
191
+ headers
192
+ });
193
+ const onDisconnected = () => {
194
+ if (cached?.browser === browser) cached = null;
195
+ };
196
+ const connected = {
197
+ browser,
198
+ cdpUrl: normalized,
199
+ onDisconnected
200
+ };
201
+ cached = connected;
202
+ browser.on("disconnected", onDisconnected);
203
+ observeBrowser(browser);
204
+ return connected;
205
+ } catch (err) {
206
+ lastErr = err;
207
+ const delay = 250 + attempt * 250;
208
+ await new Promise((r) => setTimeout(r, delay));
209
+ }
210
+ if (lastErr instanceof Error) throw lastErr;
211
+ const message = lastErr ? formatErrorMessage(lastErr) : "CDP connect failed";
212
+ throw new Error(message);
213
+ };
214
+ connecting = connectWithRetry().finally(() => {
215
+ connecting = null;
216
+ });
217
+ return await connecting;
218
+ }
219
+ async function getAllPages(browser) {
220
+ return browser.contexts().flatMap((c) => c.pages());
221
+ }
222
+ async function pageTargetId(page) {
223
+ const session = await page.context().newCDPSession(page);
224
+ try {
225
+ const info = await session.send("Target.getTargetInfo");
226
+ return String(info?.targetInfo?.targetId ?? "").trim() || null;
227
+ } finally {
228
+ await session.detach().catch(() => {});
229
+ }
230
+ }
231
+ async function findPageByTargetId(browser, targetId, cdpUrl) {
232
+ const pages = await getAllPages(browser);
233
+ let resolvedViaCdp = false;
234
+ for (const page of pages) {
235
+ let tid = null;
236
+ try {
237
+ tid = await pageTargetId(page);
238
+ resolvedViaCdp = true;
239
+ } catch {
240
+ tid = null;
241
+ }
242
+ if (tid && tid === targetId) return page;
243
+ }
244
+ if (!resolvedViaCdp && pages.length === 1) return pages[0];
245
+ if (cdpUrl) try {
246
+ const listUrl = `${cdpUrl.replace(/\/+$/, "").replace(/^ws:/, "http:").replace(/\/cdp$/, "")}/json/list`;
247
+ const response = await fetch(listUrl, { headers: getHeadersWithAuth(listUrl) });
248
+ if (response.ok) {
249
+ const targets = await response.json();
250
+ const target = targets.find((t) => t.id === targetId);
251
+ if (target) {
252
+ const urlMatch = pages.filter((p) => p.url() === target.url);
253
+ if (urlMatch.length === 1) return urlMatch[0];
254
+ if (urlMatch.length > 1) {
255
+ const sameUrlTargets = targets.filter((t) => t.url === target.url);
256
+ if (sameUrlTargets.length === urlMatch.length) {
257
+ const idx = sameUrlTargets.findIndex((t) => t.id === targetId);
258
+ if (idx >= 0 && idx < urlMatch.length) return urlMatch[idx];
259
+ }
260
+ }
261
+ }
262
+ }
263
+ } catch {}
264
+ return null;
265
+ }
266
+ async function getPageForTargetId(opts) {
267
+ const { browser } = await connectBrowser(opts.cdpUrl);
268
+ const pages = await getAllPages(browser);
269
+ if (!pages.length) throw new Error("No pages available in the connected browser.");
270
+ const first = pages[0];
271
+ if (!opts.targetId) return first;
272
+ const found = await findPageByTargetId(browser, opts.targetId, opts.cdpUrl);
273
+ if (!found) {
274
+ if (pages.length === 1) return first;
275
+ throw new Error("tab not found");
276
+ }
277
+ return found;
278
+ }
279
+ function refLocator(page, ref) {
280
+ const normalized = ref.startsWith("@") ? ref.slice(1) : ref.startsWith("ref=") ? ref.slice(4) : ref;
281
+ if (/^e\d+$/.test(normalized)) {
282
+ const state = pageStates.get(page);
283
+ if (state?.roleRefsMode === "aria") return (state.roleRefsFrameSelector ? page.frameLocator(state.roleRefsFrameSelector) : page).locator(`aria-ref=${normalized}`);
284
+ const info = state?.roleRefs?.[normalized];
285
+ if (!info) throw new Error(`Unknown ref "${normalized}". Run a new snapshot and use a ref from that snapshot.`);
286
+ const locAny = state?.roleRefsFrameSelector ? page.frameLocator(state.roleRefsFrameSelector) : page;
287
+ const locator = info.name ? locAny.getByRole(info.role, {
288
+ name: info.name,
289
+ exact: true
290
+ }) : locAny.getByRole(info.role);
291
+ return info.nth !== void 0 ? locator.nth(info.nth) : locator;
292
+ }
293
+ return page.locator(`aria-ref=${normalized}`);
294
+ }
295
+ async function closePlaywrightBrowserConnection() {
296
+ const cur = cached;
297
+ cached = null;
298
+ connecting = null;
299
+ if (!cur) return;
300
+ if (cur.onDisconnected && typeof cur.browser.off === "function") cur.browser.off("disconnected", cur.onDisconnected);
301
+ await cur.browser.close().catch(() => {});
302
+ }
303
+ function normalizeCdpHttpBaseForJsonEndpoints(cdpUrl) {
304
+ try {
305
+ const url = new URL(cdpUrl);
306
+ if (url.protocol === "ws:") url.protocol = "http:";
307
+ else if (url.protocol === "wss:") url.protocol = "https:";
308
+ url.pathname = url.pathname.replace(/\/devtools\/browser\/.*$/, "");
309
+ url.pathname = url.pathname.replace(/\/cdp$/, "");
310
+ return url.toString().replace(/\/$/, "");
311
+ } catch {
312
+ return cdpUrl.replace(/^ws:/, "http:").replace(/^wss:/, "https:").replace(/\/devtools\/browser\/.*$/, "").replace(/\/cdp$/, "").replace(/\/$/, "");
313
+ }
314
+ }
315
+ function cdpSocketNeedsAttach(wsUrl) {
316
+ try {
317
+ const pathname = new URL(wsUrl).pathname;
318
+ return pathname === "/cdp" || pathname.endsWith("/cdp") || pathname.includes("/devtools/browser/");
319
+ } catch {
320
+ return false;
321
+ }
322
+ }
323
+ async function tryTerminateExecutionViaCdp(opts) {
324
+ const cdpHttpBase = normalizeCdpHttpBaseForJsonEndpoints(opts.cdpUrl);
325
+ const pages = await fetchJson(appendCdpPath(cdpHttpBase, "/json/list"), 2e3).catch(() => null);
326
+ if (!pages || pages.length === 0) return;
327
+ const target = pages.find((p) => String(p.id ?? "").trim() === opts.targetId);
328
+ const wsUrlRaw = String(target?.webSocketDebuggerUrl ?? "").trim();
329
+ if (!wsUrlRaw) return;
330
+ const wsUrl = normalizeCdpWsUrl(wsUrlRaw, cdpHttpBase);
331
+ const needsAttach = cdpSocketNeedsAttach(wsUrl);
332
+ const runWithTimeout = async (work, ms) => {
333
+ let timer;
334
+ const timeoutPromise = new Promise((_, reject) => {
335
+ timer = setTimeout(() => reject(/* @__PURE__ */ new Error("CDP command timed out")), ms);
336
+ });
337
+ try {
338
+ return await Promise.race([work, timeoutPromise]);
339
+ } finally {
340
+ if (timer) clearTimeout(timer);
341
+ }
342
+ };
343
+ await withCdpSocket(wsUrl, async (send) => {
344
+ let sessionId;
345
+ try {
346
+ if (needsAttach) {
347
+ const attached = await runWithTimeout(send("Target.attachToTarget", {
348
+ targetId: opts.targetId,
349
+ flatten: true
350
+ }), 1500);
351
+ if (typeof attached?.sessionId === "string" && attached.sessionId.trim()) sessionId = attached.sessionId;
352
+ }
353
+ await runWithTimeout(send("Runtime.terminateExecution", void 0, sessionId), 1500);
354
+ if (sessionId) send("Target.detachFromTarget", { sessionId }).catch(() => {});
355
+ } catch {}
356
+ }, { handshakeTimeoutMs: 2e3 }).catch(() => {});
357
+ }
358
+ /**
359
+ * Best-effort cancellation for stuck page operations.
360
+ *
361
+ * Playwright serializes CDP commands per page; a long-running or stuck operation (notably evaluate)
362
+ * can block all subsequent commands. We cannot safely "cancel" an individual command, and we do
363
+ * not want to close the actual Chromium tab. Instead, we disconnect Playwright's CDP connection
364
+ * so in-flight commands fail fast and the next request reconnects transparently.
365
+ *
366
+ * IMPORTANT: We CANNOT call Connection.close() because Playwright shares a single Connection
367
+ * across all objects (BrowserType, Browser, etc.). Closing it corrupts the entire Playwright
368
+ * instance, preventing reconnection.
369
+ *
370
+ * Instead we:
371
+ * 1. Null out `cached` so the next call triggers a fresh connectOverCDP
372
+ * 2. Fire-and-forget browser.close() — it may hang but won't block us
373
+ * 3. The next connectBrowser() creates a completely new CDP WebSocket connection
374
+ *
375
+ * The old browser.close() eventually resolves when the in-browser evaluate timeout fires,
376
+ * or the old connection gets GC'd. Either way, it doesn't affect the fresh connection.
377
+ */
378
+ async function forceDisconnectPlaywrightForTarget(opts) {
379
+ const normalized = normalizeCdpUrl(opts.cdpUrl);
380
+ if (cached?.cdpUrl !== normalized) return;
381
+ const cur = cached;
382
+ cached = null;
383
+ connecting = null;
384
+ if (cur) {
385
+ if (cur.onDisconnected && typeof cur.browser.off === "function") cur.browser.off("disconnected", cur.onDisconnected);
386
+ const targetId = opts.targetId?.trim() || "";
387
+ if (targetId) await tryTerminateExecutionViaCdp({
388
+ cdpUrl: normalized,
389
+ targetId
390
+ }).catch(() => {});
391
+ cur.browser.close().catch(() => {});
392
+ }
393
+ }
394
+ /**
395
+ * List all pages/tabs from the persistent Playwright connection.
396
+ * Used for remote profiles where HTTP-based /json/list is ephemeral.
397
+ */
398
+ async function listPagesViaPlaywright(opts) {
399
+ const { browser } = await connectBrowser(opts.cdpUrl);
400
+ const pages = await getAllPages(browser);
401
+ const results = [];
402
+ for (const page of pages) {
403
+ const tid = await pageTargetId(page).catch(() => null);
404
+ if (tid) results.push({
405
+ targetId: tid,
406
+ title: await page.title().catch(() => ""),
407
+ url: page.url(),
408
+ type: "page"
409
+ });
410
+ }
411
+ return results;
412
+ }
413
+ /**
414
+ * Create a new page/tab using the persistent Playwright connection.
415
+ * Used for remote profiles where HTTP-based /json/new is ephemeral.
416
+ * Returns the new page's targetId and metadata.
417
+ */
418
+ async function createPageViaPlaywright(opts) {
419
+ const { browser } = await connectBrowser(opts.cdpUrl);
420
+ const context = browser.contexts()[0] ?? await browser.newContext();
421
+ ensureContextState(context);
422
+ const page = await context.newPage();
423
+ ensurePageState(page);
424
+ const targetUrl = opts.url.trim() || "about:blank";
425
+ if (targetUrl !== "about:blank") {
426
+ const navigationPolicy = withBrowserNavigationPolicy(opts.ssrfPolicy);
427
+ await assertBrowserNavigationAllowed({
428
+ url: targetUrl,
429
+ ...navigationPolicy
430
+ });
431
+ await page.goto(targetUrl, { timeout: 3e4 }).catch(() => {});
432
+ await assertBrowserNavigationResultAllowed({
433
+ url: page.url(),
434
+ ...navigationPolicy
435
+ });
436
+ }
437
+ const tid = await pageTargetId(page).catch(() => null);
438
+ if (!tid) throw new Error("Failed to get targetId for new page");
439
+ return {
440
+ targetId: tid,
441
+ title: await page.title().catch(() => ""),
442
+ url: page.url(),
443
+ type: "page"
444
+ };
445
+ }
446
+ /**
447
+ * Close a page/tab by targetId using the persistent Playwright connection.
448
+ * Used for remote profiles where HTTP-based /json/close is ephemeral.
449
+ */
450
+ async function closePageByTargetIdViaPlaywright(opts) {
451
+ const { browser } = await connectBrowser(opts.cdpUrl);
452
+ const page = await findPageByTargetId(browser, opts.targetId, opts.cdpUrl);
453
+ if (!page) throw new Error("tab not found");
454
+ await page.close();
455
+ }
456
+ /**
457
+ * Focus a page/tab by targetId using the persistent Playwright connection.
458
+ * Used for remote profiles where HTTP-based /json/activate can be ephemeral.
459
+ */
460
+ async function focusPageByTargetIdViaPlaywright(opts) {
461
+ const { browser } = await connectBrowser(opts.cdpUrl);
462
+ const page = await findPageByTargetId(browser, opts.targetId, opts.cdpUrl);
463
+ if (!page) throw new Error("tab not found");
464
+ try {
465
+ await page.bringToFront();
466
+ } catch (err) {
467
+ const session = await page.context().newCDPSession(page);
468
+ try {
469
+ await session.send("Page.bringToFront");
470
+ return;
471
+ } catch {
472
+ throw err;
473
+ } finally {
474
+ await session.detach().catch(() => {});
475
+ }
476
+ }
477
+ }
478
+
479
+ //#endregion
480
+ //#region src/browser/pw-tools-core.activity.ts
481
+ async function getPageErrorsViaPlaywright(opts) {
482
+ const state = ensurePageState(await getPageForTargetId(opts));
483
+ const errors = [...state.errors];
484
+ if (opts.clear) state.errors = [];
485
+ return { errors };
486
+ }
487
+ async function getNetworkRequestsViaPlaywright(opts) {
488
+ const state = ensurePageState(await getPageForTargetId(opts));
489
+ const raw = [...state.requests];
490
+ const filter = typeof opts.filter === "string" ? opts.filter.trim() : "";
491
+ const requests = filter ? raw.filter((r) => r.url.includes(filter)) : raw;
492
+ if (opts.clear) {
493
+ state.requests = [];
494
+ state.requestIds = /* @__PURE__ */ new WeakMap();
495
+ }
496
+ return { requests };
497
+ }
498
+ function consolePriority(level) {
499
+ switch (level) {
500
+ case "error": return 3;
501
+ case "warning": return 2;
502
+ case "info":
503
+ case "log": return 1;
504
+ case "debug": return 0;
505
+ default: return 1;
506
+ }
507
+ }
508
+ async function getConsoleMessagesViaPlaywright(opts) {
509
+ const state = ensurePageState(await getPageForTargetId(opts));
510
+ if (!opts.level) return [...state.console];
511
+ const min = consolePriority(opts.level);
512
+ return state.console.filter((msg) => consolePriority(msg.type) >= min);
513
+ }
514
+
515
+ //#endregion
516
+ //#region src/browser/pw-role-snapshot.ts
517
+ const INTERACTIVE_ROLES = new Set([
518
+ "button",
519
+ "link",
520
+ "textbox",
521
+ "checkbox",
522
+ "radio",
523
+ "combobox",
524
+ "listbox",
525
+ "menuitem",
526
+ "menuitemcheckbox",
527
+ "menuitemradio",
528
+ "option",
529
+ "searchbox",
530
+ "slider",
531
+ "spinbutton",
532
+ "switch",
533
+ "tab",
534
+ "treeitem"
535
+ ]);
536
+ const CONTENT_ROLES = new Set([
537
+ "heading",
538
+ "cell",
539
+ "gridcell",
540
+ "columnheader",
541
+ "rowheader",
542
+ "listitem",
543
+ "article",
544
+ "region",
545
+ "main",
546
+ "navigation"
547
+ ]);
548
+ const STRUCTURAL_ROLES = new Set([
549
+ "generic",
550
+ "group",
551
+ "list",
552
+ "table",
553
+ "row",
554
+ "rowgroup",
555
+ "grid",
556
+ "treegrid",
557
+ "menu",
558
+ "menubar",
559
+ "toolbar",
560
+ "tablist",
561
+ "tree",
562
+ "directory",
563
+ "document",
564
+ "application",
565
+ "presentation",
566
+ "none"
567
+ ]);
568
+ function getRoleSnapshotStats(snapshot, refs) {
569
+ const interactive = Object.values(refs).filter((r) => INTERACTIVE_ROLES.has(r.role)).length;
570
+ return {
571
+ lines: snapshot.split("\n").length,
572
+ chars: snapshot.length,
573
+ refs: Object.keys(refs).length,
574
+ interactive
575
+ };
576
+ }
577
+ function getIndentLevel(line) {
578
+ const match = line.match(/^(\s*)/);
579
+ return match ? Math.floor(match[1].length / 2) : 0;
580
+ }
581
+ function matchInteractiveSnapshotLine(line, options) {
582
+ const depth = getIndentLevel(line);
583
+ if (options.maxDepth !== void 0 && depth > options.maxDepth) return null;
584
+ const match = line.match(/^(\s*-\s*)(\w+)(?:\s+"([^"]*)")?(.*)$/);
585
+ if (!match) return null;
586
+ const [, , roleRaw, name, suffix] = match;
587
+ if (roleRaw.startsWith("/")) return null;
588
+ return {
589
+ roleRaw,
590
+ role: roleRaw.toLowerCase(),
591
+ ...name ? { name } : {},
592
+ suffix
593
+ };
594
+ }
595
+ function createRoleNameTracker() {
596
+ const counts = /* @__PURE__ */ new Map();
597
+ const refsByKey = /* @__PURE__ */ new Map();
598
+ return {
599
+ counts,
600
+ refsByKey,
601
+ getKey(role, name) {
602
+ return `${role}:${name ?? ""}`;
603
+ },
604
+ getNextIndex(role, name) {
605
+ const key = this.getKey(role, name);
606
+ const current = counts.get(key) ?? 0;
607
+ counts.set(key, current + 1);
608
+ return current;
609
+ },
610
+ trackRef(role, name, ref) {
611
+ const key = this.getKey(role, name);
612
+ const list = refsByKey.get(key) ?? [];
613
+ list.push(ref);
614
+ refsByKey.set(key, list);
615
+ },
616
+ getDuplicateKeys() {
617
+ const out = /* @__PURE__ */ new Set();
618
+ for (const [key, refs] of refsByKey) if (refs.length > 1) out.add(key);
619
+ return out;
620
+ }
621
+ };
622
+ }
623
+ function removeNthFromNonDuplicates(refs, tracker) {
624
+ const duplicates = tracker.getDuplicateKeys();
625
+ for (const [ref, data] of Object.entries(refs)) {
626
+ const key = tracker.getKey(data.role, data.name);
627
+ if (!duplicates.has(key)) delete refs[ref]?.nth;
628
+ }
629
+ }
630
+ function compactTree(tree) {
631
+ const lines = tree.split("\n");
632
+ const result = [];
633
+ for (let i = 0; i < lines.length; i += 1) {
634
+ const line = lines[i];
635
+ if (line.includes("[ref=")) {
636
+ result.push(line);
637
+ continue;
638
+ }
639
+ if (line.includes(":") && !line.trimEnd().endsWith(":")) {
640
+ result.push(line);
641
+ continue;
642
+ }
643
+ const currentIndent = getIndentLevel(line);
644
+ let hasRelevantChildren = false;
645
+ for (let j = i + 1; j < lines.length; j += 1) {
646
+ if (getIndentLevel(lines[j]) <= currentIndent) break;
647
+ if (lines[j]?.includes("[ref=")) {
648
+ hasRelevantChildren = true;
649
+ break;
650
+ }
651
+ }
652
+ if (hasRelevantChildren) result.push(line);
653
+ }
654
+ return result.join("\n");
655
+ }
656
+ function processLine(line, refs, options, tracker, nextRef) {
657
+ const depth = getIndentLevel(line);
658
+ if (options.maxDepth !== void 0 && depth > options.maxDepth) return null;
659
+ const match = line.match(/^(\s*-\s*)(\w+)(?:\s+"([^"]*)")?(.*)$/);
660
+ if (!match) return options.interactive ? null : line;
661
+ const [, prefix, roleRaw, name, suffix] = match;
662
+ if (roleRaw.startsWith("/")) return options.interactive ? null : line;
663
+ const role = roleRaw.toLowerCase();
664
+ const isInteractive = INTERACTIVE_ROLES.has(role);
665
+ const isContent = CONTENT_ROLES.has(role);
666
+ const isStructural = STRUCTURAL_ROLES.has(role);
667
+ if (options.interactive && !isInteractive) return null;
668
+ if (options.compact && isStructural && !name) return null;
669
+ if (!(isInteractive || isContent && name)) return line;
670
+ const ref = nextRef();
671
+ const nth = tracker.getNextIndex(role, name);
672
+ tracker.trackRef(role, name, ref);
673
+ refs[ref] = {
674
+ role,
675
+ name,
676
+ nth
677
+ };
678
+ let enhanced = `${prefix}${roleRaw}`;
679
+ if (name) enhanced += ` "${name}"`;
680
+ enhanced += ` [ref=${ref}]`;
681
+ if (nth > 0) enhanced += ` [nth=${nth}]`;
682
+ if (suffix) enhanced += suffix;
683
+ return enhanced;
684
+ }
685
+ function buildInteractiveSnapshotLines(params) {
686
+ const out = [];
687
+ for (const line of params.lines) {
688
+ const parsed = matchInteractiveSnapshotLine(line, params.options);
689
+ if (!parsed) continue;
690
+ if (!INTERACTIVE_ROLES.has(parsed.role)) continue;
691
+ const resolved = params.resolveRef(parsed);
692
+ if (!resolved?.ref) continue;
693
+ params.recordRef(parsed, resolved.ref, resolved.nth);
694
+ let enhanced = `- ${parsed.roleRaw}`;
695
+ if (parsed.name) enhanced += ` "${parsed.name}"`;
696
+ enhanced += ` [ref=${resolved.ref}]`;
697
+ if ((resolved.nth ?? 0) > 0) enhanced += ` [nth=${resolved.nth}]`;
698
+ if (params.includeSuffix(parsed.suffix)) enhanced += parsed.suffix;
699
+ out.push(enhanced);
700
+ }
701
+ return out;
702
+ }
703
+ function parseRoleRef(raw) {
704
+ const trimmed = raw.trim();
705
+ if (!trimmed) return null;
706
+ const normalized = trimmed.startsWith("@") ? trimmed.slice(1) : trimmed.startsWith("ref=") ? trimmed.slice(4) : trimmed;
707
+ return /^e\d+$/.test(normalized) ? normalized : null;
708
+ }
709
+ function buildRoleSnapshotFromAriaSnapshot(ariaSnapshot, options = {}) {
710
+ const lines = ariaSnapshot.split("\n");
711
+ const refs = {};
712
+ const tracker = createRoleNameTracker();
713
+ let counter = 0;
714
+ const nextRef = () => {
715
+ counter += 1;
716
+ return `e${counter}`;
717
+ };
718
+ if (options.interactive) {
719
+ const result = buildInteractiveSnapshotLines({
720
+ lines,
721
+ options,
722
+ resolveRef: ({ role, name }) => {
723
+ const ref = nextRef();
724
+ const nth = tracker.getNextIndex(role, name);
725
+ tracker.trackRef(role, name, ref);
726
+ return {
727
+ ref,
728
+ nth
729
+ };
730
+ },
731
+ recordRef: ({ role, name }, ref, nth) => {
732
+ refs[ref] = {
733
+ role,
734
+ name,
735
+ nth
736
+ };
737
+ },
738
+ includeSuffix: (suffix) => suffix.includes("[")
739
+ });
740
+ removeNthFromNonDuplicates(refs, tracker);
741
+ return {
742
+ snapshot: result.join("\n") || "(no interactive elements)",
743
+ refs
744
+ };
745
+ }
746
+ const result = [];
747
+ for (const line of lines) {
748
+ const processed = processLine(line, refs, options, tracker, nextRef);
749
+ if (processed !== null) result.push(processed);
750
+ }
751
+ removeNthFromNonDuplicates(refs, tracker);
752
+ const tree = result.join("\n") || "(empty)";
753
+ return {
754
+ snapshot: options.compact ? compactTree(tree) : tree,
755
+ refs
756
+ };
757
+ }
758
+ function parseAiSnapshotRef(suffix) {
759
+ const match = suffix.match(/\[ref=(e\d+)\]/i);
760
+ return match ? match[1] : null;
761
+ }
762
+ /**
763
+ * Build a role snapshot from Playwright's AI snapshot output while preserving Playwright's own
764
+ * aria-ref ids (e.g. ref=e13). This makes the refs self-resolving across calls.
765
+ */
766
+ function buildRoleSnapshotFromAiSnapshot(aiSnapshot, options = {}) {
767
+ const lines = String(aiSnapshot ?? "").split("\n");
768
+ const refs = {};
769
+ if (options.interactive) return {
770
+ snapshot: buildInteractiveSnapshotLines({
771
+ lines,
772
+ options,
773
+ resolveRef: ({ suffix }) => {
774
+ const ref = parseAiSnapshotRef(suffix);
775
+ return ref ? { ref } : null;
776
+ },
777
+ recordRef: ({ role, name }, ref) => {
778
+ refs[ref] = {
779
+ role,
780
+ ...name ? { name } : {}
781
+ };
782
+ },
783
+ includeSuffix: () => true
784
+ }).join("\n") || "(no interactive elements)",
785
+ refs
786
+ };
787
+ const out = [];
788
+ for (const line of lines) {
789
+ const depth = getIndentLevel(line);
790
+ if (options.maxDepth !== void 0 && depth > options.maxDepth) continue;
791
+ const match = line.match(/^(\s*-\s*)(\w+)(?:\s+"([^"]*)")?(.*)$/);
792
+ if (!match) {
793
+ out.push(line);
794
+ continue;
795
+ }
796
+ const [, , roleRaw, name, suffix] = match;
797
+ if (roleRaw.startsWith("/")) {
798
+ out.push(line);
799
+ continue;
800
+ }
801
+ const role = roleRaw.toLowerCase();
802
+ const isStructural = STRUCTURAL_ROLES.has(role);
803
+ if (options.compact && isStructural && !name) continue;
804
+ const ref = parseAiSnapshotRef(suffix);
805
+ if (ref) refs[ref] = {
806
+ role,
807
+ ...name ? { name } : {}
808
+ };
809
+ out.push(line);
810
+ }
811
+ const tree = out.join("\n") || "(empty)";
812
+ return {
813
+ snapshot: options.compact ? compactTree(tree) : tree,
814
+ refs
815
+ };
816
+ }
817
+
818
+ //#endregion
819
+ //#region src/browser/pw-tools-core.shared.ts
820
+ let nextUploadArmId = 0;
821
+ let nextDialogArmId = 0;
822
+ let nextDownloadArmId = 0;
823
+ function bumpUploadArmId() {
824
+ nextUploadArmId += 1;
825
+ return nextUploadArmId;
826
+ }
827
+ function bumpDialogArmId() {
828
+ nextDialogArmId += 1;
829
+ return nextDialogArmId;
830
+ }
831
+ function bumpDownloadArmId() {
832
+ nextDownloadArmId += 1;
833
+ return nextDownloadArmId;
834
+ }
835
+ function requireRef(value) {
836
+ const raw = typeof value === "string" ? value.trim() : "";
837
+ const ref = (raw ? parseRoleRef(raw) : null) ?? (raw.startsWith("@") ? raw.slice(1) : raw);
838
+ if (!ref) throw new Error("ref is required");
839
+ return ref;
840
+ }
841
+ function normalizeTimeoutMs(timeoutMs, fallback) {
842
+ return Math.max(500, Math.min(12e4, timeoutMs ?? fallback));
843
+ }
844
+ function toAIFriendlyError(error, selector) {
845
+ const message = error instanceof Error ? error.message : String(error);
846
+ if (message.includes("strict mode violation")) {
847
+ const countMatch = message.match(/resolved to (\d+) elements/);
848
+ const count = countMatch ? countMatch[1] : "multiple";
849
+ return /* @__PURE__ */ new Error(`Selector "${selector}" matched ${count} elements. Run a new snapshot to get updated refs, or use a different ref.`);
850
+ }
851
+ if ((message.includes("Timeout") || message.includes("waiting for")) && (message.includes("to be visible") || message.includes("not visible"))) return /* @__PURE__ */ new Error(`Element "${selector}" not found or not visible. Run a new snapshot to see current page elements.`);
852
+ 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.`);
853
+ return error instanceof Error ? error : new Error(message);
854
+ }
855
+
856
+ //#endregion
857
+ //#region src/browser/pw-tools-core.downloads.ts
858
+ function sanitizeDownloadFileName(fileName) {
859
+ const trimmed = String(fileName ?? "").trim();
860
+ if (!trimmed) return "download.bin";
861
+ let base = path.posix.basename(trimmed);
862
+ base = path.win32.basename(base);
863
+ let cleaned = "";
864
+ for (let i = 0; i < base.length; i++) {
865
+ const code = base.charCodeAt(i);
866
+ if (code < 32 || code === 127) continue;
867
+ cleaned += base[i];
868
+ }
869
+ base = cleaned.trim();
870
+ if (!base || base === "." || base === "..") return "download.bin";
871
+ if (base.length > 200) base = base.slice(0, 200);
872
+ return base;
873
+ }
874
+ function buildTempDownloadPath(fileName) {
875
+ const id = crypto.randomUUID();
876
+ const safeName = sanitizeDownloadFileName(fileName);
877
+ return path.join(resolvePreferredRemoteClawTmpDir(), "downloads", `${id}-${safeName}`);
878
+ }
879
+ function createPageDownloadWaiter(page, timeoutMs) {
880
+ let done = false;
881
+ let timer;
882
+ let handler;
883
+ const cleanup = () => {
884
+ if (timer) clearTimeout(timer);
885
+ timer = void 0;
886
+ if (handler) {
887
+ page.off("download", handler);
888
+ handler = void 0;
889
+ }
890
+ };
891
+ return {
892
+ promise: new Promise((resolve, reject) => {
893
+ handler = (download) => {
894
+ if (done) return;
895
+ done = true;
896
+ cleanup();
897
+ resolve(download);
898
+ };
899
+ page.on("download", handler);
900
+ timer = setTimeout(() => {
901
+ if (done) return;
902
+ done = true;
903
+ cleanup();
904
+ reject(/* @__PURE__ */ new Error("Timeout waiting for download"));
905
+ }, timeoutMs);
906
+ }),
907
+ cancel: () => {
908
+ if (done) return;
909
+ done = true;
910
+ cleanup();
911
+ }
912
+ };
913
+ }
914
+ async function saveDownloadPayload(download, outPath) {
915
+ const suggested = download.suggestedFilename?.() || "download.bin";
916
+ const resolvedOutPath = outPath?.trim() || buildTempDownloadPath(suggested);
917
+ await fsp.mkdir(path.dirname(resolvedOutPath), { recursive: true });
918
+ await download.saveAs?.(resolvedOutPath);
919
+ return {
920
+ url: download.url?.() || "",
921
+ suggestedFilename: suggested,
922
+ path: path.resolve(resolvedOutPath)
923
+ };
924
+ }
925
+ async function awaitDownloadPayload(params) {
926
+ try {
927
+ const download = await params.waiter.promise;
928
+ if (params.state.armIdDownload !== params.armId) throw new Error("Download was superseded by another waiter");
929
+ return await saveDownloadPayload(download, params.outPath ?? "");
930
+ } catch (err) {
931
+ params.waiter.cancel();
932
+ throw err;
933
+ }
934
+ }
935
+ async function armFileUploadViaPlaywright(opts) {
936
+ const page = await getPageForTargetId(opts);
937
+ const state = ensurePageState(page);
938
+ const timeout = Math.max(500, Math.min(12e4, opts.timeoutMs ?? 12e4));
939
+ state.armIdUpload = bumpUploadArmId();
940
+ const armId = state.armIdUpload;
941
+ page.waitForEvent("filechooser", { timeout }).then(async (fileChooser) => {
942
+ if (state.armIdUpload !== armId) return;
943
+ if (!opts.paths?.length) {
944
+ try {
945
+ await page.keyboard.press("Escape");
946
+ } catch {}
947
+ return;
948
+ }
949
+ await fileChooser.setFiles(opts.paths);
950
+ try {
951
+ const input = typeof fileChooser.element === "function" ? await Promise.resolve(fileChooser.element()) : null;
952
+ if (input) await input.evaluate((el) => {
953
+ el.dispatchEvent(new Event("input", { bubbles: true }));
954
+ el.dispatchEvent(new Event("change", { bubbles: true }));
955
+ });
956
+ } catch {}
957
+ }).catch(() => {});
958
+ }
959
+ async function armDialogViaPlaywright(opts) {
960
+ const page = await getPageForTargetId(opts);
961
+ const state = ensurePageState(page);
962
+ const timeout = normalizeTimeoutMs(opts.timeoutMs, 12e4);
963
+ state.armIdDialog = bumpDialogArmId();
964
+ const armId = state.armIdDialog;
965
+ page.waitForEvent("dialog", { timeout }).then(async (dialog) => {
966
+ if (state.armIdDialog !== armId) return;
967
+ if (opts.accept) await dialog.accept(opts.promptText);
968
+ else await dialog.dismiss();
969
+ }).catch(() => {});
970
+ }
971
+ async function waitForDownloadViaPlaywright(opts) {
972
+ const page = await getPageForTargetId(opts);
973
+ const state = ensurePageState(page);
974
+ const timeout = normalizeTimeoutMs(opts.timeoutMs, 12e4);
975
+ state.armIdDownload = bumpDownloadArmId();
976
+ const armId = state.armIdDownload;
977
+ return await awaitDownloadPayload({
978
+ waiter: createPageDownloadWaiter(page, timeout),
979
+ state,
980
+ armId,
981
+ outPath: opts.path
982
+ });
983
+ }
984
+ async function downloadViaPlaywright(opts) {
985
+ const page = await getPageForTargetId(opts);
986
+ const state = ensurePageState(page);
987
+ restoreRoleRefsForTarget({
988
+ cdpUrl: opts.cdpUrl,
989
+ targetId: opts.targetId,
990
+ page
991
+ });
992
+ const timeout = normalizeTimeoutMs(opts.timeoutMs, 12e4);
993
+ const ref = requireRef(opts.ref);
994
+ const outPath = String(opts.path ?? "").trim();
995
+ if (!outPath) throw new Error("path is required");
996
+ state.armIdDownload = bumpDownloadArmId();
997
+ const armId = state.armIdDownload;
998
+ const waiter = createPageDownloadWaiter(page, timeout);
999
+ try {
1000
+ const locator = refLocator(page, ref);
1001
+ try {
1002
+ await locator.click({ timeout });
1003
+ } catch (err) {
1004
+ throw toAIFriendlyError(err, ref);
1005
+ }
1006
+ return await awaitDownloadPayload({
1007
+ waiter,
1008
+ state,
1009
+ armId,
1010
+ outPath
1011
+ });
1012
+ } catch (err) {
1013
+ waiter.cancel();
1014
+ throw err;
1015
+ }
1016
+ }
1017
+
1018
+ //#endregion
1019
+ //#region src/browser/pw-tools-core.interactions.ts
1020
+ async function highlightViaPlaywright(opts) {
1021
+ const page = await getPageForTargetId(opts);
1022
+ ensurePageState(page);
1023
+ restoreRoleRefsForTarget({
1024
+ cdpUrl: opts.cdpUrl,
1025
+ targetId: opts.targetId,
1026
+ page
1027
+ });
1028
+ const ref = requireRef(opts.ref);
1029
+ try {
1030
+ await refLocator(page, ref).highlight();
1031
+ } catch (err) {
1032
+ throw toAIFriendlyError(err, ref);
1033
+ }
1034
+ }
1035
+ async function clickViaPlaywright(opts) {
1036
+ const page = await getPageForTargetId({
1037
+ cdpUrl: opts.cdpUrl,
1038
+ targetId: opts.targetId
1039
+ });
1040
+ ensurePageState(page);
1041
+ restoreRoleRefsForTarget({
1042
+ cdpUrl: opts.cdpUrl,
1043
+ targetId: opts.targetId,
1044
+ page
1045
+ });
1046
+ const ref = requireRef(opts.ref);
1047
+ const locator = refLocator(page, ref);
1048
+ const timeout = Math.max(500, Math.min(6e4, Math.floor(opts.timeoutMs ?? 8e3)));
1049
+ try {
1050
+ if (opts.doubleClick) await locator.dblclick({
1051
+ timeout,
1052
+ button: opts.button,
1053
+ modifiers: opts.modifiers
1054
+ });
1055
+ else await locator.click({
1056
+ timeout,
1057
+ button: opts.button,
1058
+ modifiers: opts.modifiers
1059
+ });
1060
+ } catch (err) {
1061
+ throw toAIFriendlyError(err, ref);
1062
+ }
1063
+ }
1064
+ async function hoverViaPlaywright(opts) {
1065
+ const ref = requireRef(opts.ref);
1066
+ const page = await getPageForTargetId(opts);
1067
+ ensurePageState(page);
1068
+ restoreRoleRefsForTarget({
1069
+ cdpUrl: opts.cdpUrl,
1070
+ targetId: opts.targetId,
1071
+ page
1072
+ });
1073
+ try {
1074
+ await refLocator(page, ref).hover({ timeout: Math.max(500, Math.min(6e4, opts.timeoutMs ?? 8e3)) });
1075
+ } catch (err) {
1076
+ throw toAIFriendlyError(err, ref);
1077
+ }
1078
+ }
1079
+ async function dragViaPlaywright(opts) {
1080
+ const startRef = requireRef(opts.startRef);
1081
+ const endRef = requireRef(opts.endRef);
1082
+ if (!startRef || !endRef) throw new Error("startRef and endRef are required");
1083
+ const page = await getPageForTargetId(opts);
1084
+ ensurePageState(page);
1085
+ restoreRoleRefsForTarget({
1086
+ cdpUrl: opts.cdpUrl,
1087
+ targetId: opts.targetId,
1088
+ page
1089
+ });
1090
+ try {
1091
+ await refLocator(page, startRef).dragTo(refLocator(page, endRef), { timeout: Math.max(500, Math.min(6e4, opts.timeoutMs ?? 8e3)) });
1092
+ } catch (err) {
1093
+ throw toAIFriendlyError(err, `${startRef} -> ${endRef}`);
1094
+ }
1095
+ }
1096
+ async function selectOptionViaPlaywright(opts) {
1097
+ const ref = requireRef(opts.ref);
1098
+ if (!opts.values?.length) throw new Error("values are required");
1099
+ const page = await getPageForTargetId(opts);
1100
+ ensurePageState(page);
1101
+ restoreRoleRefsForTarget({
1102
+ cdpUrl: opts.cdpUrl,
1103
+ targetId: opts.targetId,
1104
+ page
1105
+ });
1106
+ try {
1107
+ await refLocator(page, ref).selectOption(opts.values, { timeout: Math.max(500, Math.min(6e4, opts.timeoutMs ?? 8e3)) });
1108
+ } catch (err) {
1109
+ throw toAIFriendlyError(err, ref);
1110
+ }
1111
+ }
1112
+ async function pressKeyViaPlaywright(opts) {
1113
+ const key = String(opts.key ?? "").trim();
1114
+ if (!key) throw new Error("key is required");
1115
+ const page = await getPageForTargetId(opts);
1116
+ ensurePageState(page);
1117
+ await page.keyboard.press(key, { delay: Math.max(0, Math.floor(opts.delayMs ?? 0)) });
1118
+ }
1119
+ async function typeViaPlaywright(opts) {
1120
+ const text = String(opts.text ?? "");
1121
+ const page = await getPageForTargetId(opts);
1122
+ ensurePageState(page);
1123
+ restoreRoleRefsForTarget({
1124
+ cdpUrl: opts.cdpUrl,
1125
+ targetId: opts.targetId,
1126
+ page
1127
+ });
1128
+ const ref = requireRef(opts.ref);
1129
+ const locator = refLocator(page, ref);
1130
+ const timeout = Math.max(500, Math.min(6e4, opts.timeoutMs ?? 8e3));
1131
+ try {
1132
+ if (opts.slowly) {
1133
+ await locator.click({ timeout });
1134
+ await locator.type(text, {
1135
+ timeout,
1136
+ delay: 75
1137
+ });
1138
+ } else await locator.fill(text, { timeout });
1139
+ if (opts.submit) await locator.press("Enter", { timeout });
1140
+ } catch (err) {
1141
+ throw toAIFriendlyError(err, ref);
1142
+ }
1143
+ }
1144
+ async function fillFormViaPlaywright(opts) {
1145
+ const page = await getPageForTargetId(opts);
1146
+ ensurePageState(page);
1147
+ restoreRoleRefsForTarget({
1148
+ cdpUrl: opts.cdpUrl,
1149
+ targetId: opts.targetId,
1150
+ page
1151
+ });
1152
+ const timeout = Math.max(500, Math.min(6e4, opts.timeoutMs ?? 8e3));
1153
+ for (const field of opts.fields) {
1154
+ const ref = field.ref.trim();
1155
+ const type = field.type.trim();
1156
+ const rawValue = field.value;
1157
+ const value = typeof rawValue === "string" ? rawValue : typeof rawValue === "number" || typeof rawValue === "boolean" ? String(rawValue) : "";
1158
+ if (!ref || !type) continue;
1159
+ const locator = refLocator(page, ref);
1160
+ if (type === "checkbox" || type === "radio") {
1161
+ const checked = rawValue === true || rawValue === 1 || rawValue === "1" || rawValue === "true";
1162
+ try {
1163
+ await locator.setChecked(checked, { timeout });
1164
+ } catch (err) {
1165
+ throw toAIFriendlyError(err, ref);
1166
+ }
1167
+ continue;
1168
+ }
1169
+ try {
1170
+ await locator.fill(value, { timeout });
1171
+ } catch (err) {
1172
+ throw toAIFriendlyError(err, ref);
1173
+ }
1174
+ }
1175
+ }
1176
+ async function evaluateViaPlaywright(opts) {
1177
+ const fnText = String(opts.fn ?? "").trim();
1178
+ if (!fnText) throw new Error("function is required");
1179
+ const page = await getPageForTargetId(opts);
1180
+ ensurePageState(page);
1181
+ restoreRoleRefsForTarget({
1182
+ cdpUrl: opts.cdpUrl,
1183
+ targetId: opts.targetId,
1184
+ page
1185
+ });
1186
+ const outerTimeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
1187
+ let evaluateTimeout = Math.max(1e3, Math.min(12e4, outerTimeout - 500));
1188
+ evaluateTimeout = Math.min(evaluateTimeout, outerTimeout);
1189
+ const signal = opts.signal;
1190
+ let abortListener;
1191
+ let abortReject;
1192
+ let abortPromise;
1193
+ if (signal) {
1194
+ abortPromise = new Promise((_, reject) => {
1195
+ abortReject = reject;
1196
+ });
1197
+ abortPromise.catch(() => {});
1198
+ }
1199
+ if (signal) {
1200
+ const disconnect = () => {
1201
+ forceDisconnectPlaywrightForTarget({
1202
+ cdpUrl: opts.cdpUrl,
1203
+ targetId: opts.targetId,
1204
+ reason: "evaluate aborted"
1205
+ }).catch(() => {});
1206
+ };
1207
+ if (signal.aborted) {
1208
+ disconnect();
1209
+ throw signal.reason ?? /* @__PURE__ */ new Error("aborted");
1210
+ }
1211
+ abortListener = () => {
1212
+ disconnect();
1213
+ abortReject?.(signal.reason ?? /* @__PURE__ */ new Error("aborted"));
1214
+ };
1215
+ signal.addEventListener("abort", abortListener, { once: true });
1216
+ if (signal.aborted) {
1217
+ abortListener();
1218
+ throw signal.reason ?? /* @__PURE__ */ new Error("aborted");
1219
+ }
1220
+ }
1221
+ try {
1222
+ if (opts.ref) {
1223
+ const locator = refLocator(page, opts.ref);
1224
+ const elementEvaluator = new Function("el", "args", `
1225
+ "use strict";
1226
+ var fnBody = args.fnBody, timeoutMs = args.timeoutMs;
1227
+ try {
1228
+ var candidate = eval("(" + fnBody + ")");
1229
+ var result = typeof candidate === "function" ? candidate(el) : candidate;
1230
+ if (result && typeof result.then === "function") {
1231
+ return Promise.race([
1232
+ result,
1233
+ new Promise(function(_, reject) {
1234
+ setTimeout(function() { reject(new Error("evaluate timed out after " + timeoutMs + "ms")); }, timeoutMs);
1235
+ })
1236
+ ]);
1237
+ }
1238
+ return result;
1239
+ } catch (err) {
1240
+ throw new Error("Invalid evaluate function: " + (err && err.message ? err.message : String(err)));
1241
+ }
1242
+ `);
1243
+ const evalPromise = locator.evaluate(elementEvaluator, {
1244
+ fnBody: fnText,
1245
+ timeoutMs: evaluateTimeout
1246
+ });
1247
+ if (!abortPromise) return await evalPromise;
1248
+ try {
1249
+ return await Promise.race([evalPromise, abortPromise]);
1250
+ } catch (err) {
1251
+ evalPromise.catch(() => {});
1252
+ throw err;
1253
+ }
1254
+ }
1255
+ const browserEvaluator = new Function("args", `
1256
+ "use strict";
1257
+ var fnBody = args.fnBody, timeoutMs = args.timeoutMs;
1258
+ try {
1259
+ var candidate = eval("(" + fnBody + ")");
1260
+ var result = typeof candidate === "function" ? candidate() : candidate;
1261
+ if (result && typeof result.then === "function") {
1262
+ return Promise.race([
1263
+ result,
1264
+ new Promise(function(_, reject) {
1265
+ setTimeout(function() { reject(new Error("evaluate timed out after " + timeoutMs + "ms")); }, timeoutMs);
1266
+ })
1267
+ ]);
1268
+ }
1269
+ return result;
1270
+ } catch (err) {
1271
+ throw new Error("Invalid evaluate function: " + (err && err.message ? err.message : String(err)));
1272
+ }
1273
+ `);
1274
+ const evalPromise = page.evaluate(browserEvaluator, {
1275
+ fnBody: fnText,
1276
+ timeoutMs: evaluateTimeout
1277
+ });
1278
+ if (!abortPromise) return await evalPromise;
1279
+ try {
1280
+ return await Promise.race([evalPromise, abortPromise]);
1281
+ } catch (err) {
1282
+ evalPromise.catch(() => {});
1283
+ throw err;
1284
+ }
1285
+ } finally {
1286
+ if (signal && abortListener) signal.removeEventListener("abort", abortListener);
1287
+ }
1288
+ }
1289
+ async function scrollIntoViewViaPlaywright(opts) {
1290
+ const page = await getPageForTargetId(opts);
1291
+ ensurePageState(page);
1292
+ restoreRoleRefsForTarget({
1293
+ cdpUrl: opts.cdpUrl,
1294
+ targetId: opts.targetId,
1295
+ page
1296
+ });
1297
+ const timeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
1298
+ const ref = requireRef(opts.ref);
1299
+ const locator = refLocator(page, ref);
1300
+ try {
1301
+ await locator.scrollIntoViewIfNeeded({ timeout });
1302
+ } catch (err) {
1303
+ throw toAIFriendlyError(err, ref);
1304
+ }
1305
+ }
1306
+ async function waitForViaPlaywright(opts) {
1307
+ const page = await getPageForTargetId(opts);
1308
+ ensurePageState(page);
1309
+ const timeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
1310
+ if (typeof opts.timeMs === "number" && Number.isFinite(opts.timeMs)) await page.waitForTimeout(Math.max(0, opts.timeMs));
1311
+ if (opts.text) await page.getByText(opts.text).first().waitFor({
1312
+ state: "visible",
1313
+ timeout
1314
+ });
1315
+ if (opts.textGone) await page.getByText(opts.textGone).first().waitFor({
1316
+ state: "hidden",
1317
+ timeout
1318
+ });
1319
+ if (opts.selector) {
1320
+ const selector = String(opts.selector).trim();
1321
+ if (selector) await page.locator(selector).first().waitFor({
1322
+ state: "visible",
1323
+ timeout
1324
+ });
1325
+ }
1326
+ if (opts.url) {
1327
+ const url = String(opts.url).trim();
1328
+ if (url) await page.waitForURL(url, { timeout });
1329
+ }
1330
+ if (opts.loadState) await page.waitForLoadState(opts.loadState, { timeout });
1331
+ if (opts.fn) {
1332
+ const fn = String(opts.fn).trim();
1333
+ if (fn) await page.waitForFunction(fn, { timeout });
1334
+ }
1335
+ }
1336
+ async function takeScreenshotViaPlaywright(opts) {
1337
+ const page = await getPageForTargetId(opts);
1338
+ ensurePageState(page);
1339
+ restoreRoleRefsForTarget({
1340
+ cdpUrl: opts.cdpUrl,
1341
+ targetId: opts.targetId,
1342
+ page
1343
+ });
1344
+ const type = opts.type ?? "png";
1345
+ if (opts.ref) {
1346
+ if (opts.fullPage) throw new Error("fullPage is not supported for element screenshots");
1347
+ return { buffer: await refLocator(page, opts.ref).screenshot({ type }) };
1348
+ }
1349
+ if (opts.element) {
1350
+ if (opts.fullPage) throw new Error("fullPage is not supported for element screenshots");
1351
+ return { buffer: await page.locator(opts.element).first().screenshot({ type }) };
1352
+ }
1353
+ return { buffer: await page.screenshot({
1354
+ type,
1355
+ fullPage: Boolean(opts.fullPage)
1356
+ }) };
1357
+ }
1358
+ async function screenshotWithLabelsViaPlaywright(opts) {
1359
+ const page = await getPageForTargetId(opts);
1360
+ ensurePageState(page);
1361
+ restoreRoleRefsForTarget({
1362
+ cdpUrl: opts.cdpUrl,
1363
+ targetId: opts.targetId,
1364
+ page
1365
+ });
1366
+ const type = opts.type ?? "png";
1367
+ const maxLabels = typeof opts.maxLabels === "number" && Number.isFinite(opts.maxLabels) ? Math.max(1, Math.floor(opts.maxLabels)) : 150;
1368
+ const viewport = await page.evaluate(() => ({
1369
+ scrollX: window.scrollX || 0,
1370
+ scrollY: window.scrollY || 0,
1371
+ width: window.innerWidth || 0,
1372
+ height: window.innerHeight || 0
1373
+ }));
1374
+ const refs = Object.keys(opts.refs ?? {});
1375
+ const boxes = [];
1376
+ let skipped = 0;
1377
+ for (const ref of refs) {
1378
+ if (boxes.length >= maxLabels) {
1379
+ skipped += 1;
1380
+ continue;
1381
+ }
1382
+ try {
1383
+ const box = await refLocator(page, ref).boundingBox();
1384
+ if (!box) {
1385
+ skipped += 1;
1386
+ continue;
1387
+ }
1388
+ const x0 = box.x;
1389
+ const y0 = box.y;
1390
+ const x1 = box.x + box.width;
1391
+ const y1 = box.y + box.height;
1392
+ const vx0 = viewport.scrollX;
1393
+ const vy0 = viewport.scrollY;
1394
+ const vx1 = viewport.scrollX + viewport.width;
1395
+ const vy1 = viewport.scrollY + viewport.height;
1396
+ if (x1 < vx0 || x0 > vx1 || y1 < vy0 || y0 > vy1) {
1397
+ skipped += 1;
1398
+ continue;
1399
+ }
1400
+ boxes.push({
1401
+ ref,
1402
+ x: x0 - viewport.scrollX,
1403
+ y: y0 - viewport.scrollY,
1404
+ w: Math.max(1, box.width),
1405
+ h: Math.max(1, box.height)
1406
+ });
1407
+ } catch {
1408
+ skipped += 1;
1409
+ }
1410
+ }
1411
+ try {
1412
+ if (boxes.length > 0) await page.evaluate((labels) => {
1413
+ document.querySelectorAll("[data-remoteclaw-labels]").forEach((el) => el.remove());
1414
+ const root = document.createElement("div");
1415
+ root.setAttribute("data-remoteclaw-labels", "1");
1416
+ root.style.position = "fixed";
1417
+ root.style.left = "0";
1418
+ root.style.top = "0";
1419
+ root.style.zIndex = "2147483647";
1420
+ root.style.pointerEvents = "none";
1421
+ root.style.fontFamily = "\"SF Mono\",\"SFMono-Regular\",Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace";
1422
+ const clamp = (value, min, max) => Math.min(max, Math.max(min, value));
1423
+ for (const label of labels) {
1424
+ const box = document.createElement("div");
1425
+ box.setAttribute("data-remoteclaw-labels", "1");
1426
+ box.style.position = "absolute";
1427
+ box.style.left = `${label.x}px`;
1428
+ box.style.top = `${label.y}px`;
1429
+ box.style.width = `${label.w}px`;
1430
+ box.style.height = `${label.h}px`;
1431
+ box.style.border = "2px solid #ffb020";
1432
+ box.style.boxSizing = "border-box";
1433
+ const tag = document.createElement("div");
1434
+ tag.setAttribute("data-remoteclaw-labels", "1");
1435
+ tag.textContent = label.ref;
1436
+ tag.style.position = "absolute";
1437
+ tag.style.left = `${label.x}px`;
1438
+ tag.style.top = `${clamp(label.y - 18, 0, 2e4)}px`;
1439
+ tag.style.background = "#ffb020";
1440
+ tag.style.color = "#1a1a1a";
1441
+ tag.style.fontSize = "12px";
1442
+ tag.style.lineHeight = "14px";
1443
+ tag.style.padding = "1px 4px";
1444
+ tag.style.borderRadius = "3px";
1445
+ tag.style.boxShadow = "0 1px 2px rgba(0,0,0,0.35)";
1446
+ tag.style.whiteSpace = "nowrap";
1447
+ root.appendChild(box);
1448
+ root.appendChild(tag);
1449
+ }
1450
+ document.documentElement.appendChild(root);
1451
+ }, boxes);
1452
+ return {
1453
+ buffer: await page.screenshot({ type }),
1454
+ labels: boxes.length,
1455
+ skipped
1456
+ };
1457
+ } finally {
1458
+ await page.evaluate(() => {
1459
+ document.querySelectorAll("[data-remoteclaw-labels]").forEach((el) => el.remove());
1460
+ }).catch(() => {});
1461
+ }
1462
+ }
1463
+ async function setInputFilesViaPlaywright(opts) {
1464
+ const page = await getPageForTargetId(opts);
1465
+ ensurePageState(page);
1466
+ restoreRoleRefsForTarget({
1467
+ cdpUrl: opts.cdpUrl,
1468
+ targetId: opts.targetId,
1469
+ page
1470
+ });
1471
+ if (!opts.paths.length) throw new Error("paths are required");
1472
+ const inputRef = typeof opts.inputRef === "string" ? opts.inputRef.trim() : "";
1473
+ const element = typeof opts.element === "string" ? opts.element.trim() : "";
1474
+ if (inputRef && element) throw new Error("inputRef and element are mutually exclusive");
1475
+ if (!inputRef && !element) throw new Error("inputRef or element is required");
1476
+ const locator = inputRef ? refLocator(page, inputRef) : page.locator(element).first();
1477
+ try {
1478
+ await locator.setInputFiles(opts.paths);
1479
+ } catch (err) {
1480
+ throw toAIFriendlyError(err, inputRef || element);
1481
+ }
1482
+ try {
1483
+ const handle = await locator.elementHandle();
1484
+ if (handle) await handle.evaluate((el) => {
1485
+ el.dispatchEvent(new Event("input", { bubbles: true }));
1486
+ el.dispatchEvent(new Event("change", { bubbles: true }));
1487
+ });
1488
+ } catch {}
1489
+ }
1490
+
1491
+ //#endregion
1492
+ //#region src/browser/pw-tools-core.responses.ts
1493
+ function matchUrlPattern(pattern, url) {
1494
+ const p = pattern.trim();
1495
+ if (!p) return false;
1496
+ if (p === url) return true;
1497
+ if (p.includes("*")) {
1498
+ const escaped = p.replace(/[|\\{}()[\]^$+?.]/g, "\\$&");
1499
+ return new RegExp(`^${escaped.replace(/\*\*/g, ".*").replace(/\*/g, ".*")}$`).test(url);
1500
+ }
1501
+ return url.includes(p);
1502
+ }
1503
+ async function responseBodyViaPlaywright(opts) {
1504
+ const pattern = String(opts.url ?? "").trim();
1505
+ if (!pattern) throw new Error("url is required");
1506
+ const maxChars = typeof opts.maxChars === "number" && Number.isFinite(opts.maxChars) ? Math.max(1, Math.min(5e6, Math.floor(opts.maxChars))) : 2e5;
1507
+ const timeout = normalizeTimeoutMs(opts.timeoutMs, 2e4);
1508
+ const page = await getPageForTargetId(opts);
1509
+ ensurePageState(page);
1510
+ const resp = await new Promise((resolve, reject) => {
1511
+ let done = false;
1512
+ let timer;
1513
+ let handler;
1514
+ const cleanup = () => {
1515
+ if (timer) clearTimeout(timer);
1516
+ timer = void 0;
1517
+ if (handler) page.off("response", handler);
1518
+ };
1519
+ handler = (resp) => {
1520
+ if (done) return;
1521
+ if (!matchUrlPattern(pattern, resp.url?.() || "")) return;
1522
+ done = true;
1523
+ cleanup();
1524
+ resolve(resp);
1525
+ };
1526
+ page.on("response", handler);
1527
+ timer = setTimeout(() => {
1528
+ if (done) return;
1529
+ done = true;
1530
+ cleanup();
1531
+ reject(/* @__PURE__ */ new Error(`Response not found for url pattern "${pattern}". Run '${formatCliCommand("remoteclaw browser requests")}' to inspect recent network activity.`));
1532
+ }, timeout);
1533
+ });
1534
+ const url = resp.url?.() || "";
1535
+ const status = resp.status?.();
1536
+ const headers = resp.headers?.();
1537
+ let bodyText = "";
1538
+ try {
1539
+ if (typeof resp.text === "function") bodyText = await resp.text();
1540
+ else if (typeof resp.body === "function") {
1541
+ const buf = await resp.body();
1542
+ bodyText = new TextDecoder("utf-8").decode(buf);
1543
+ }
1544
+ } catch (err) {
1545
+ throw new Error(`Failed to read response body for "${url}": ${String(err)}`, { cause: err });
1546
+ }
1547
+ return {
1548
+ url,
1549
+ status,
1550
+ headers,
1551
+ body: bodyText.length > maxChars ? bodyText.slice(0, maxChars) : bodyText,
1552
+ truncated: bodyText.length > maxChars ? true : void 0
1553
+ };
1554
+ }
1555
+
1556
+ //#endregion
1557
+ //#region src/browser/pw-tools-core.snapshot.ts
1558
+ async function snapshotAriaViaPlaywright(opts) {
1559
+ const limit = Math.max(1, Math.min(2e3, Math.floor(opts.limit ?? 500)));
1560
+ const page = await getPageForTargetId({
1561
+ cdpUrl: opts.cdpUrl,
1562
+ targetId: opts.targetId
1563
+ });
1564
+ ensurePageState(page);
1565
+ const session = await page.context().newCDPSession(page);
1566
+ try {
1567
+ await session.send("Accessibility.enable").catch(() => {});
1568
+ const res = await session.send("Accessibility.getFullAXTree");
1569
+ return { nodes: formatAriaSnapshot(Array.isArray(res?.nodes) ? res.nodes : [], limit) };
1570
+ } finally {
1571
+ await session.detach().catch(() => {});
1572
+ }
1573
+ }
1574
+ async function snapshotAiViaPlaywright(opts) {
1575
+ const page = await getPageForTargetId({
1576
+ cdpUrl: opts.cdpUrl,
1577
+ targetId: opts.targetId
1578
+ });
1579
+ ensurePageState(page);
1580
+ const maybe = page;
1581
+ if (!maybe._snapshotForAI) throw new Error("Playwright _snapshotForAI is not available. Upgrade playwright-core.");
1582
+ const result = await maybe._snapshotForAI({
1583
+ timeout: Math.max(500, Math.min(6e4, Math.floor(opts.timeoutMs ?? 5e3))),
1584
+ track: "response"
1585
+ });
1586
+ let snapshot = String(result?.full ?? "");
1587
+ const maxChars = opts.maxChars;
1588
+ const limit = typeof maxChars === "number" && Number.isFinite(maxChars) && maxChars > 0 ? Math.floor(maxChars) : void 0;
1589
+ let truncated = false;
1590
+ if (limit && snapshot.length > limit) {
1591
+ snapshot = `${snapshot.slice(0, limit)}\n\n[...TRUNCATED - page too large]`;
1592
+ truncated = true;
1593
+ }
1594
+ const built = buildRoleSnapshotFromAiSnapshot(snapshot);
1595
+ storeRoleRefsForTarget({
1596
+ page,
1597
+ cdpUrl: opts.cdpUrl,
1598
+ targetId: opts.targetId,
1599
+ refs: built.refs,
1600
+ mode: "aria"
1601
+ });
1602
+ return truncated ? {
1603
+ snapshot,
1604
+ truncated,
1605
+ refs: built.refs
1606
+ } : {
1607
+ snapshot,
1608
+ refs: built.refs
1609
+ };
1610
+ }
1611
+ async function snapshotRoleViaPlaywright(opts) {
1612
+ const page = await getPageForTargetId({
1613
+ cdpUrl: opts.cdpUrl,
1614
+ targetId: opts.targetId
1615
+ });
1616
+ ensurePageState(page);
1617
+ if (opts.refsMode === "aria") {
1618
+ if (opts.selector?.trim() || opts.frameSelector?.trim()) throw new Error("refs=aria does not support selector/frame snapshots yet.");
1619
+ const maybe = page;
1620
+ if (!maybe._snapshotForAI) throw new Error("refs=aria requires Playwright _snapshotForAI support.");
1621
+ const result = await maybe._snapshotForAI({
1622
+ timeout: 5e3,
1623
+ track: "response"
1624
+ });
1625
+ const built = buildRoleSnapshotFromAiSnapshot(String(result?.full ?? ""), opts.options);
1626
+ storeRoleRefsForTarget({
1627
+ page,
1628
+ cdpUrl: opts.cdpUrl,
1629
+ targetId: opts.targetId,
1630
+ refs: built.refs,
1631
+ mode: "aria"
1632
+ });
1633
+ return {
1634
+ snapshot: built.snapshot,
1635
+ refs: built.refs,
1636
+ stats: getRoleSnapshotStats(built.snapshot, built.refs)
1637
+ };
1638
+ }
1639
+ const frameSelector = opts.frameSelector?.trim() || "";
1640
+ const selector = opts.selector?.trim() || "";
1641
+ const ariaSnapshot = await (frameSelector ? selector ? page.frameLocator(frameSelector).locator(selector) : page.frameLocator(frameSelector).locator(":root") : selector ? page.locator(selector) : page.locator(":root")).ariaSnapshot();
1642
+ const built = buildRoleSnapshotFromAriaSnapshot(String(ariaSnapshot ?? ""), opts.options);
1643
+ storeRoleRefsForTarget({
1644
+ page,
1645
+ cdpUrl: opts.cdpUrl,
1646
+ targetId: opts.targetId,
1647
+ refs: built.refs,
1648
+ frameSelector: frameSelector || void 0,
1649
+ mode: "role"
1650
+ });
1651
+ return {
1652
+ snapshot: built.snapshot,
1653
+ refs: built.refs,
1654
+ stats: getRoleSnapshotStats(built.snapshot, built.refs)
1655
+ };
1656
+ }
1657
+ async function navigateViaPlaywright(opts) {
1658
+ const url = String(opts.url ?? "").trim();
1659
+ if (!url) throw new Error("url is required");
1660
+ await assertBrowserNavigationAllowed({
1661
+ url,
1662
+ ...withBrowserNavigationPolicy(opts.ssrfPolicy)
1663
+ });
1664
+ const page = await getPageForTargetId(opts);
1665
+ ensurePageState(page);
1666
+ await page.goto(url, { timeout: Math.max(1e3, Math.min(12e4, opts.timeoutMs ?? 2e4)) });
1667
+ const finalUrl = page.url();
1668
+ await assertBrowserNavigationResultAllowed({
1669
+ url: finalUrl,
1670
+ ...withBrowserNavigationPolicy(opts.ssrfPolicy)
1671
+ });
1672
+ return { url: finalUrl };
1673
+ }
1674
+ async function resizeViewportViaPlaywright(opts) {
1675
+ const page = await getPageForTargetId(opts);
1676
+ ensurePageState(page);
1677
+ await page.setViewportSize({
1678
+ width: Math.max(1, Math.floor(opts.width)),
1679
+ height: Math.max(1, Math.floor(opts.height))
1680
+ });
1681
+ }
1682
+ async function closePageViaPlaywright(opts) {
1683
+ const page = await getPageForTargetId(opts);
1684
+ ensurePageState(page);
1685
+ await page.close();
1686
+ }
1687
+ async function pdfViaPlaywright(opts) {
1688
+ const page = await getPageForTargetId(opts);
1689
+ ensurePageState(page);
1690
+ return { buffer: await page.pdf({ printBackground: true }) };
1691
+ }
1692
+
1693
+ //#endregion
1694
+ //#region src/browser/pw-tools-core.state.ts
1695
+ async function withCdpSession(page, fn) {
1696
+ const session = await page.context().newCDPSession(page);
1697
+ try {
1698
+ return await fn(session);
1699
+ } finally {
1700
+ await session.detach().catch(() => {});
1701
+ }
1702
+ }
1703
+ async function setOfflineViaPlaywright(opts) {
1704
+ const page = await getPageForTargetId(opts);
1705
+ ensurePageState(page);
1706
+ await page.context().setOffline(Boolean(opts.offline));
1707
+ }
1708
+ async function setExtraHTTPHeadersViaPlaywright(opts) {
1709
+ const page = await getPageForTargetId(opts);
1710
+ ensurePageState(page);
1711
+ await page.context().setExtraHTTPHeaders(opts.headers);
1712
+ }
1713
+ async function setHttpCredentialsViaPlaywright(opts) {
1714
+ const page = await getPageForTargetId(opts);
1715
+ ensurePageState(page);
1716
+ if (opts.clear) {
1717
+ await page.context().setHTTPCredentials(null);
1718
+ return;
1719
+ }
1720
+ const username = String(opts.username ?? "");
1721
+ const password = String(opts.password ?? "");
1722
+ if (!username) throw new Error("username is required (or set clear=true)");
1723
+ await page.context().setHTTPCredentials({
1724
+ username,
1725
+ password
1726
+ });
1727
+ }
1728
+ async function setGeolocationViaPlaywright(opts) {
1729
+ const page = await getPageForTargetId(opts);
1730
+ ensurePageState(page);
1731
+ const context = page.context();
1732
+ if (opts.clear) {
1733
+ await context.setGeolocation(null);
1734
+ await context.clearPermissions().catch(() => {});
1735
+ return;
1736
+ }
1737
+ if (typeof opts.latitude !== "number" || typeof opts.longitude !== "number") throw new Error("latitude and longitude are required (or set clear=true)");
1738
+ await context.setGeolocation({
1739
+ latitude: opts.latitude,
1740
+ longitude: opts.longitude,
1741
+ accuracy: typeof opts.accuracy === "number" ? opts.accuracy : void 0
1742
+ });
1743
+ const origin = opts.origin?.trim() || (() => {
1744
+ try {
1745
+ return new URL(page.url()).origin;
1746
+ } catch {
1747
+ return "";
1748
+ }
1749
+ })();
1750
+ if (origin) await context.grantPermissions(["geolocation"], { origin }).catch(() => {});
1751
+ }
1752
+ async function emulateMediaViaPlaywright(opts) {
1753
+ const page = await getPageForTargetId(opts);
1754
+ ensurePageState(page);
1755
+ await page.emulateMedia({ colorScheme: opts.colorScheme });
1756
+ }
1757
+ async function setLocaleViaPlaywright(opts) {
1758
+ const page = await getPageForTargetId(opts);
1759
+ ensurePageState(page);
1760
+ const locale = String(opts.locale ?? "").trim();
1761
+ if (!locale) throw new Error("locale is required");
1762
+ await withCdpSession(page, async (session) => {
1763
+ try {
1764
+ await session.send("Emulation.setLocaleOverride", { locale });
1765
+ } catch (err) {
1766
+ if (String(err).includes("Another locale override is already in effect")) return;
1767
+ throw err;
1768
+ }
1769
+ });
1770
+ }
1771
+ async function setTimezoneViaPlaywright(opts) {
1772
+ const page = await getPageForTargetId(opts);
1773
+ ensurePageState(page);
1774
+ const timezoneId = String(opts.timezoneId ?? "").trim();
1775
+ if (!timezoneId) throw new Error("timezoneId is required");
1776
+ await withCdpSession(page, async (session) => {
1777
+ try {
1778
+ await session.send("Emulation.setTimezoneOverride", { timezoneId });
1779
+ } catch (err) {
1780
+ const msg = String(err);
1781
+ if (msg.includes("Timezone override is already in effect")) return;
1782
+ if (msg.includes("Invalid timezone")) throw new Error(`Invalid timezone ID: ${timezoneId}`, { cause: err });
1783
+ throw err;
1784
+ }
1785
+ });
1786
+ }
1787
+ async function setDeviceViaPlaywright(opts) {
1788
+ const page = await getPageForTargetId(opts);
1789
+ ensurePageState(page);
1790
+ const name = String(opts.name ?? "").trim();
1791
+ if (!name) throw new Error("device name is required");
1792
+ const descriptor = devices[name];
1793
+ if (!descriptor) throw new Error(`Unknown device "${name}".`);
1794
+ if (descriptor.viewport) await page.setViewportSize({
1795
+ width: descriptor.viewport.width,
1796
+ height: descriptor.viewport.height
1797
+ });
1798
+ await withCdpSession(page, async (session) => {
1799
+ if (descriptor.userAgent || descriptor.locale) await session.send("Emulation.setUserAgentOverride", {
1800
+ userAgent: descriptor.userAgent ?? "",
1801
+ acceptLanguage: descriptor.locale ?? void 0
1802
+ });
1803
+ if (descriptor.viewport) await session.send("Emulation.setDeviceMetricsOverride", {
1804
+ mobile: Boolean(descriptor.isMobile),
1805
+ width: descriptor.viewport.width,
1806
+ height: descriptor.viewport.height,
1807
+ deviceScaleFactor: descriptor.deviceScaleFactor ?? 1,
1808
+ screenWidth: descriptor.viewport.width,
1809
+ screenHeight: descriptor.viewport.height
1810
+ });
1811
+ if (descriptor.hasTouch) await session.send("Emulation.setTouchEmulationEnabled", { enabled: true });
1812
+ });
1813
+ }
1814
+
1815
+ //#endregion
1816
+ //#region src/browser/pw-tools-core.storage.ts
1817
+ async function cookiesGetViaPlaywright(opts) {
1818
+ const page = await getPageForTargetId(opts);
1819
+ ensurePageState(page);
1820
+ return { cookies: await page.context().cookies() };
1821
+ }
1822
+ async function cookiesSetViaPlaywright(opts) {
1823
+ const page = await getPageForTargetId(opts);
1824
+ ensurePageState(page);
1825
+ const cookie = opts.cookie;
1826
+ if (!cookie.name || cookie.value === void 0) throw new Error("cookie name and value are required");
1827
+ const hasUrl = typeof cookie.url === "string" && cookie.url.trim();
1828
+ const hasDomainPath = typeof cookie.domain === "string" && cookie.domain.trim() && typeof cookie.path === "string" && cookie.path.trim();
1829
+ if (!hasUrl && !hasDomainPath) throw new Error("cookie requires url, or domain+path");
1830
+ await page.context().addCookies([cookie]);
1831
+ }
1832
+ async function cookiesClearViaPlaywright(opts) {
1833
+ const page = await getPageForTargetId(opts);
1834
+ ensurePageState(page);
1835
+ await page.context().clearCookies();
1836
+ }
1837
+ async function storageGetViaPlaywright(opts) {
1838
+ const page = await getPageForTargetId(opts);
1839
+ ensurePageState(page);
1840
+ const kind = opts.kind;
1841
+ const key = typeof opts.key === "string" ? opts.key : void 0;
1842
+ return { values: await page.evaluate(({ kind: kind2, key: key2 }) => {
1843
+ const store = kind2 === "session" ? window.sessionStorage : window.localStorage;
1844
+ if (key2) {
1845
+ const value = store.getItem(key2);
1846
+ return value === null ? {} : { [key2]: value };
1847
+ }
1848
+ const out = {};
1849
+ for (let i = 0; i < store.length; i += 1) {
1850
+ const k = store.key(i);
1851
+ if (!k) continue;
1852
+ const v = store.getItem(k);
1853
+ if (v !== null) out[k] = v;
1854
+ }
1855
+ return out;
1856
+ }, {
1857
+ kind,
1858
+ key
1859
+ }) ?? {} };
1860
+ }
1861
+ async function storageSetViaPlaywright(opts) {
1862
+ const page = await getPageForTargetId(opts);
1863
+ ensurePageState(page);
1864
+ const key = String(opts.key ?? "");
1865
+ if (!key) throw new Error("key is required");
1866
+ await page.evaluate(({ kind, key: k, value }) => {
1867
+ (kind === "session" ? window.sessionStorage : window.localStorage).setItem(k, value);
1868
+ }, {
1869
+ kind: opts.kind,
1870
+ key,
1871
+ value: String(opts.value ?? "")
1872
+ });
1873
+ }
1874
+ async function storageClearViaPlaywright(opts) {
1875
+ const page = await getPageForTargetId(opts);
1876
+ ensurePageState(page);
1877
+ await page.evaluate(({ kind }) => {
1878
+ (kind === "session" ? window.sessionStorage : window.localStorage).clear();
1879
+ }, { kind: opts.kind });
1880
+ }
1881
+
1882
+ //#endregion
1883
+ //#region src/browser/pw-tools-core.trace.ts
1884
+ async function traceStartViaPlaywright(opts) {
1885
+ const context = (await getPageForTargetId(opts)).context();
1886
+ const ctxState = ensureContextState(context);
1887
+ if (ctxState.traceActive) throw new Error("Trace already running. Stop the current trace before starting a new one.");
1888
+ await context.tracing.start({
1889
+ screenshots: opts.screenshots ?? true,
1890
+ snapshots: opts.snapshots ?? true,
1891
+ sources: opts.sources ?? false
1892
+ });
1893
+ ctxState.traceActive = true;
1894
+ }
1895
+ async function traceStopViaPlaywright(opts) {
1896
+ const context = (await getPageForTargetId(opts)).context();
1897
+ const ctxState = ensureContextState(context);
1898
+ if (!ctxState.traceActive) throw new Error("No active trace. Start a trace before stopping it.");
1899
+ await context.tracing.stop({ path: opts.path });
1900
+ ctxState.traceActive = false;
1901
+ }
1902
+
1903
+ //#endregion
1904
+ //#region src/browser/pw-ai.ts
1905
+ markPwAiLoaded();
1906
+
1907
+ //#endregion
1908
+ export { armDialogViaPlaywright, armFileUploadViaPlaywright, clickViaPlaywright, closePageByTargetIdViaPlaywright, closePageViaPlaywright, closePlaywrightBrowserConnection, cookiesClearViaPlaywright, cookiesGetViaPlaywright, cookiesSetViaPlaywright, createPageViaPlaywright, downloadViaPlaywright, dragViaPlaywright, emulateMediaViaPlaywright, ensurePageState, evaluateViaPlaywright, fillFormViaPlaywright, focusPageByTargetIdViaPlaywright, forceDisconnectPlaywrightForTarget, getConsoleMessagesViaPlaywright, getNetworkRequestsViaPlaywright, getPageErrorsViaPlaywright, getPageForTargetId, highlightViaPlaywright, hoverViaPlaywright, listPagesViaPlaywright, navigateViaPlaywright, pdfViaPlaywright, pressKeyViaPlaywright, refLocator, resizeViewportViaPlaywright, responseBodyViaPlaywright, screenshotWithLabelsViaPlaywright, scrollIntoViewViaPlaywright, selectOptionViaPlaywright, setDeviceViaPlaywright, setExtraHTTPHeadersViaPlaywright, setGeolocationViaPlaywright, setHttpCredentialsViaPlaywright, setInputFilesViaPlaywright, setLocaleViaPlaywright, setOfflineViaPlaywright, setTimezoneViaPlaywright, snapshotAiViaPlaywright, snapshotAriaViaPlaywright, snapshotRoleViaPlaywright, storageClearViaPlaywright, storageGetViaPlaywright, storageSetViaPlaywright, takeScreenshotViaPlaywright, traceStartViaPlaywright, traceStopViaPlaywright, typeViaPlaywright, waitForDownloadViaPlaywright, waitForViaPlaywright };