remoteclaw 0.1.0-next.2abd2fa → 0.1.0-next.2e9a6cd

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 (1052) hide show
  1. package/README.md +9 -7
  2. package/dist/accounts-A8jZK_v9.js +272 -0
  3. package/dist/accounts-BegPt5VR.js +36 -0
  4. package/dist/accounts-BmiimLpP.js +47 -0
  5. package/dist/accounts-Bomfgw0M.js +32 -0
  6. package/dist/accounts-Bpk-loA6.js +47 -0
  7. package/dist/accounts-DAdUdbPk.js +36 -0
  8. package/dist/accounts-WYyfAiie.js +270 -0
  9. package/dist/ack-reactions-CMDRj7fJ.js +446 -0
  10. package/dist/ack-reactions-D7VScSny.js +446 -0
  11. package/dist/acp-cli-BpMS0SsZ.js +1323 -0
  12. package/dist/acp-cli-DkXTlCpF.js +1317 -0
  13. package/dist/active-listener--FT8ewxl.js +37 -0
  14. package/dist/active-listener-C1StcdIA.js +37 -0
  15. package/dist/agent-C76P7tEr.js +703 -0
  16. package/dist/agent-helpers-CK3Obbsi.js +400 -0
  17. package/dist/agent-helpers-KHUla1K7.js +400 -0
  18. package/dist/agent-scope-BrDeaWWf.js +116 -0
  19. package/dist/agent-scope-DxqtYjuJ.js +114 -0
  20. package/dist/agent-ue8p9AIv.js +704 -0
  21. package/dist/agents--24oKN80.js +788 -0
  22. package/dist/agents.config-CWAUoPzG.js +116 -0
  23. package/dist/agents.config-Ck45E_ce.js +116 -0
  24. package/dist/audio-B85HoT7E.js +43 -0
  25. package/dist/audio-BbCUzndz.js +43 -0
  26. package/dist/audio-preflight-B3f0x3zu.js +69 -0
  27. package/dist/audio-preflight-Dv76vFTu.js +64 -0
  28. package/dist/audit-BAbBf2MU.js +3149 -0
  29. package/dist/audit-g55SYz1m.js +3149 -0
  30. package/dist/auth-Bq44qPUd.js +448 -0
  31. package/dist/auth-CVfoI--S.js +281 -0
  32. package/dist/auth-DTWpZJ1a.js +279 -0
  33. package/dist/auth-VItd2pwK.js +448 -0
  34. package/dist/banner-CyPQJybO.js +294 -0
  35. package/dist/binaries-DbgLoSWv.js +13 -0
  36. package/dist/bindings-6KojDoIi.js +69 -0
  37. package/dist/bindings-B6icMMUx.js +69 -0
  38. package/dist/bonjour-discovery-CQU4QbLK.js +378 -0
  39. package/dist/bonjour-discovery-D8aOnk3M.js +378 -0
  40. package/dist/boot/handler.js +42 -69
  41. package/dist/browser-cli-BH41geGr.js +1693 -0
  42. package/dist/browser-cli-u4nrjp1h.js +1688 -0
  43. package/dist/build-info.json +3 -3
  44. package/dist/call-CMDcRlGW.js +2826 -0
  45. package/dist/call-D5YKTYSM.js +2827 -0
  46. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  47. package/dist/catalog-CUY_iTaG.js +185 -0
  48. package/dist/catalog-p6W09S2j.js +185 -0
  49. package/dist/channel-account-context-CA2m93Kt.js +550 -0
  50. package/dist/channel-account-context-Las-t6RP.js +550 -0
  51. package/dist/channel-activity-BD603ehL.js +94 -0
  52. package/dist/channel-activity-CwiF_QMr.js +94 -0
  53. package/dist/channel-activity-daCpxHdT.js +292 -0
  54. package/dist/channel-options-CAlClffy.js +33 -0
  55. package/dist/channel-options-Hl_ep3UG.js +32 -0
  56. package/dist/channel-selection-CHJ7TumC.js +51 -0
  57. package/dist/channel-selection-DR7eW8UG.js +51 -0
  58. package/dist/channel-web-B79j9fSC.js +2134 -0
  59. package/dist/channel-web-DHTTcipm.js +2136 -0
  60. package/dist/channels-cli-DeZ95hcx.js +1427 -0
  61. package/dist/channels-cli-eUCi6jXk.js +1422 -0
  62. package/dist/channels-status-issues-By77REbh.js +18 -0
  63. package/dist/channels-status-issues-DXyOO-KH.js +18 -0
  64. package/dist/chat-envelope-BEDutlnF.js +248 -0
  65. package/dist/chat-envelope-vJJUdDE7.js +248 -0
  66. package/dist/chrome-BuAi16Rq.js +1732 -0
  67. package/dist/chrome-IR-2ukph.js +1733 -0
  68. package/dist/chunk-C1mQSjas.js +341 -0
  69. package/dist/chunk-D7VX4pmT.js +341 -0
  70. package/dist/clack-prompter-BX8SVxtP.js +122 -0
  71. package/dist/clack-prompter-D6HhVlZW.js +121 -0
  72. package/dist/cleanup-utils-DNd0wdKZ.js +94 -0
  73. package/dist/cli/daemon-cli.js +1 -1
  74. package/dist/cli-CK4Y43rx.js +131 -0
  75. package/dist/cli-Cha5Uk29.js +126 -0
  76. package/dist/clipboard-Cbj3McM_.js +31 -0
  77. package/dist/clipboard-Ne8gaWea.js +31 -0
  78. package/dist/command-format-D0vKipG9.js +32 -0
  79. package/dist/command-format-KkslAzwV.js +18 -0
  80. package/dist/command-logger/handler.js +3 -3
  81. package/dist/command-registry-07zlvSN8.js +215 -0
  82. package/dist/commands-DChC3pIF.js +41 -0
  83. package/dist/commands-DFHMoQgH.js +41 -0
  84. package/dist/commands-registry-BN04GIlJ.js +891 -0
  85. package/dist/commands-registry-DbS9NHeX.js +892 -0
  86. package/dist/common-DHHHAcmR.js +156 -0
  87. package/dist/common-De-Lakuh.js +156 -0
  88. package/dist/completion-cli--Jcg794c.js +452 -0
  89. package/dist/completion-cli-B8n7umme.js +452 -0
  90. package/dist/config-BupC6eiJ.js +4223 -0
  91. package/dist/config-CHDaGquZ.js +4225 -0
  92. package/dist/config-cli-Cu79BThx.js +242 -0
  93. package/dist/config-cli-DrJtiyW-.js +247 -0
  94. package/dist/config-guard-BLsqW1qt.js +98 -0
  95. package/dist/config-guard-NQ7jaYM4.js +75 -0
  96. package/dist/config-validation-BLllMW0t.js +18 -0
  97. package/dist/config-validation-DT29VEco.js +18 -0
  98. package/dist/configure-B25UEQnQ.js +889 -0
  99. package/dist/configure-CqMUE4Zw.js +891 -0
  100. package/dist/constants-BbAEYzFC.js +70 -0
  101. package/dist/constants-tLOgmZZ1.js +70 -0
  102. package/dist/control-auth-BFbDXKLK.js +397 -0
  103. package/dist/control-auth-BiiO-FNy.js +397 -0
  104. package/dist/control-ui/assets/index-CuY3pfh1.js +7716 -0
  105. package/dist/control-ui/assets/index-CuY3pfh1.js.map +1 -0
  106. package/dist/control-ui/assets/index-D_fjkN3g.css +1 -0
  107. package/dist/control-ui/index.html +2 -2
  108. package/dist/control-ui-assets-BlpSXjlT.js +186 -0
  109. package/dist/control-ui-assets-eJU2-yvs.js +186 -0
  110. package/dist/conversation-label-Bn5j3lUT.js +36 -0
  111. package/dist/conversation-label-L0QTtKji.js +36 -0
  112. package/dist/cron-cli-BV1o0UgM.js +491 -0
  113. package/dist/cron-cli-C8j-P8GF.js +496 -0
  114. package/dist/daemon-cli-BDvU0Xv6.js +1199 -0
  115. package/dist/daemon-cli-CoNl2Ugf.js +1197 -0
  116. package/dist/daemon-cli.js +53 -97
  117. package/dist/daemon-install-BMEnzWwq.js +60 -0
  118. package/dist/daemon-install-BkUJbdPC.js +55 -0
  119. package/dist/daemon-install-helpers-B9kMxC1v.js +462 -0
  120. package/dist/daemon-install-helpers-DoYR5z4H.js +462 -0
  121. package/dist/deliver-D8P9_nk-.js +481 -0
  122. package/dist/deliver-F9ed3dhp.js +481 -0
  123. package/dist/delivery-queue-B6TuHppj.js +244 -0
  124. package/dist/delivery-queue-BZc3AiGu.js +244 -0
  125. package/dist/devices-cli-DZgxMNLD.js +322 -0
  126. package/dist/devices-cli-DlG9ehK0.js +317 -0
  127. package/dist/diagnostics-CK2HGAFw.js +46 -0
  128. package/dist/diagnostics-G-C-IuxO.js +46 -0
  129. package/dist/directory-cli-CY6tHRIZ.js +218 -0
  130. package/dist/directory-cli-HyvRJ1Ua.js +223 -0
  131. package/dist/dm-policy-shared-1FdjwGtJ.js +22 -0
  132. package/dist/dm-policy-shared-CT3er5HI.js +22 -0
  133. package/dist/dns-cli-Cu-wYvll.js +203 -0
  134. package/dist/dns-cli-DQdnNJh4.js +198 -0
  135. package/dist/dock-D038fZZl.js +929 -0
  136. package/dist/dock-D5pZ3a44.js +928 -0
  137. package/dist/doctor-completion-BrHnayfU.js +92 -0
  138. package/dist/doctor-completion-CoZP2KiR.js +92 -0
  139. package/dist/doctor-config-flow-DJ1nWCTZ.js +1935 -0
  140. package/dist/doctor-config-flow-DYhXUwEq.js +1934 -0
  141. package/dist/enable-B5dIjgnm.js +59 -0
  142. package/dist/enable-FmiEY4ng.js +59 -0
  143. package/dist/entry.js +14 -16
  144. package/dist/env-DUb5GiQe.js +60 -0
  145. package/dist/env-vars-C8WMB8Ix.js +93 -0
  146. package/dist/errors-CdmXrBic.js +35 -0
  147. package/dist/errors-DdLfwEVi.js +35 -0
  148. package/dist/exec-BhkXWg7V.js +164 -0
  149. package/dist/exec-ClUTXFZ9.js +164 -0
  150. package/dist/export-html/template.css +0 -36
  151. package/dist/export-html/template.js +1 -32
  152. package/dist/extensionAPI.js +1015 -142
  153. package/dist/fetch-CCuD0LYV.js +67 -0
  154. package/dist/fetch-JBWLkOpL.js +67 -0
  155. package/dist/fetch-oku6r8tJ.js +67 -0
  156. package/dist/file-lock-6NXMPZTT.js +107 -0
  157. package/dist/file-lock-Ks-RPU6W.js +107 -0
  158. package/dist/fs-safe-93aDW4mH.js +98 -0
  159. package/dist/fs-safe-ACrBwOF5.js +88 -0
  160. package/dist/gateway-cli-CJs4Mxlv.js +23730 -0
  161. package/dist/gateway-cli-gUVR20v7.js +23725 -0
  162. package/dist/gateway-rpc-CSdrtPzg.js +28 -0
  163. package/dist/gateway-rpc-PNA_wUoe.js +28 -0
  164. package/dist/gmail-setup-utils-DNZEf6T0.js +422 -0
  165. package/dist/gmail-setup-utils-KPAKWwGy.js +423 -0
  166. package/dist/health-BCidscV-.js +1417 -0
  167. package/dist/health-Cw2dr19V.js +1414 -0
  168. package/dist/health-format-DOhfU1rY.js +28 -0
  169. package/dist/heartbeat-visibility-C5Vxudi9.js +125 -0
  170. package/dist/heartbeat-visibility-DHeZ-ko1.js +125 -0
  171. package/dist/help-format-Ch0EWh7N.js +17 -0
  172. package/dist/helpers-B4NWktS8.js +10 -0
  173. package/dist/hook-runner-global-Vj-YQxeR.js +527 -0
  174. package/dist/hooks-cli---vy0V0j.js +1218 -0
  175. package/dist/hooks-cli-CX-JUHdJ.js +1223 -0
  176. package/dist/image-ops-DMl7j7f4.js +354 -0
  177. package/dist/image-ops-DpkTOzhI.js +354 -0
  178. package/dist/import-DIjlFm_Y.js +493 -0
  179. package/dist/import-DdQvVR-_.js +495 -0
  180. package/dist/inbound-context-CmmmT8IP.js +68 -0
  181. package/dist/inbound-context-oxIWzEgc.js +68 -0
  182. package/dist/inbound-path-policy-BdmTOUka.js +90 -0
  183. package/dist/inbound-path-policy-DYTLjca8.js +90 -0
  184. package/dist/index.js +106 -105
  185. package/dist/inspect-C9d1V-lI.js +559 -0
  186. package/dist/inspect-rHjRqr3W.js +559 -0
  187. package/dist/installs-QUjSL2ZA.js +325 -0
  188. package/dist/installs-vT5wnxC4.js +325 -0
  189. package/dist/ipv4-DdcyK1aU.js +46 -0
  190. package/dist/ipv4-OHvujh00.js +46 -0
  191. package/dist/ir-CnMQRFBu.js +940 -0
  192. package/dist/json-files-BiA_B-xm.js +46 -0
  193. package/dist/links-CIHbVNO_.js +15 -0
  194. package/dist/loader-CYigLbch.js +22404 -0
  195. package/dist/loader-ElWX62xE.js +22401 -0
  196. package/dist/local-roots-B0QcJDJI.js +313 -0
  197. package/dist/local-roots-BfXsZRkm.js +314 -0
  198. package/dist/logger-BtwpYD7c.js +49 -0
  199. package/dist/logging-CLc3Umm0.js +20 -0
  200. package/dist/login-C8jHYLxN.js +61 -0
  201. package/dist/login-D__FYZX9.js +62 -0
  202. package/dist/login-qr-C0Gd6ybl.js +323 -0
  203. package/dist/login-qr-D7dw54Yp.js +328 -0
  204. package/dist/logs-cli-CFOVARdJ.js +234 -0
  205. package/dist/logs-cli-DtAR__VH.js +239 -0
  206. package/dist/markdown-tables-ChBqQA_Q.js +29 -0
  207. package/dist/markdown-tables-xMuH3QnS.js +29 -0
  208. package/dist/media-CmiNXiOZ.js +10453 -0
  209. package/dist/media-DYopaoc0.js +940 -0
  210. package/dist/message-action-names-CACBi-HB.js +2521 -0
  211. package/dist/message-action-names-CFwlz01T.js +2521 -0
  212. package/dist/message-channel-DF4I2vOK.js +91 -0
  213. package/dist/net-COL170MG.js +225 -0
  214. package/dist/net-QZ8IHNXc.js +225 -0
  215. package/dist/node-cli-CW8jOcHO.js +24 -0
  216. package/dist/nodes-cli-B4lvU9N5.js +1349 -0
  217. package/dist/nodes-cli-B8iTBsI6.js +1344 -0
  218. package/dist/nodes-screen-CZCXHrWB.js +250 -0
  219. package/dist/nodes-screen-C_K1vcS5.js +250 -0
  220. package/dist/note-BVerR3D5.js +92 -0
  221. package/dist/note-Dk8-EaJg.js +92 -0
  222. package/dist/npm-registry-spec-Dma0KHft.js +786 -0
  223. package/dist/npm-registry-spec-vYkxZb6u.js +786 -0
  224. package/dist/npm-resolution-CcZYnzrL.js +86 -0
  225. package/dist/npm-resolution-DsATEEGx.js +86 -0
  226. package/dist/onboard-Csm4bDd_.js +438 -0
  227. package/dist/onboard-D1b535pC.js +436 -0
  228. package/dist/onboard-channels-5EIXyDZh.js +2547 -0
  229. package/dist/onboard-channels-bedB47Hs.js +2548 -0
  230. package/dist/onboard-config-CcPV3Cqz.js +39 -0
  231. package/dist/onboard-config-DcTaxmuf.js +39 -0
  232. package/dist/onboard-helpers-BHNXyhA4.js +364 -0
  233. package/dist/onboard-helpers-eTUU00t8.js +363 -0
  234. package/dist/onboard-remote-DwDKQk1K.js +127 -0
  235. package/dist/onboard-remote-TPbiye5m.js +127 -0
  236. package/dist/onboarding-D0YGZ_Ux.js +588 -0
  237. package/dist/onboarding-DCfmKzl2.js +586 -0
  238. package/dist/onboarding.finalize-BhpsVwME.js +399 -0
  239. package/dist/onboarding.finalize-CY8vgmi9.js +402 -0
  240. package/dist/onboarding.gateway-config-C_eqpJ7D.js +192 -0
  241. package/dist/onboarding.gateway-config-DR1ey6tU.js +199 -0
  242. package/dist/outbound-Be4BgVqF.js +220 -0
  243. package/dist/outbound-CXJLn8kn.js +221 -0
  244. package/dist/outbound-attachment-CbNLn0lk.js +18 -0
  245. package/dist/outbound-attachment-DNCMF74c.js +18 -0
  246. package/dist/outbound-attachment-DaStRTGv.js +18 -0
  247. package/dist/pairing-cli-CxGDUsLT.js +128 -0
  248. package/dist/pairing-cli-D83T3PG9.js +123 -0
  249. package/dist/pairing-labels-6f8FqSS5.js +9 -0
  250. package/dist/pairing-labels-CI5j-OUT.js +9 -0
  251. package/dist/pairing-store-DnTHRcnO.js +459 -0
  252. package/dist/pairing-store-ONzqxcNb.js +460 -0
  253. package/dist/path-env-D7VB7sOO.js +89 -0
  254. package/dist/path-env-DFiYvvI-.js +89 -0
  255. package/dist/path-safety-BshBsw4P.js +14 -0
  256. package/dist/path-safety-CZbhQciI.js +14 -0
  257. package/dist/plugin-auto-enable-BnCQKkIK.js +302 -0
  258. package/dist/plugin-auto-enable-CFRs-pcA.js +301 -0
  259. package/dist/plugin-registry-CV5pfXOU.js +33 -0
  260. package/dist/plugin-registry-CmG34W0u.js +33 -0
  261. package/dist/plugin-sdk/agents/agent-helpers.d.ts +0 -1
  262. package/dist/plugin-sdk/agents/agent-scope.d.ts +10 -0
  263. package/dist/plugin-sdk/agents/agent-types.d.ts +1 -6
  264. package/dist/plugin-sdk/agents/agent-utils.d.ts +0 -14
  265. package/dist/plugin-sdk/agents/provider-utils.d.ts +0 -1
  266. package/dist/plugin-sdk/agents/subagent-spawn.d.ts +0 -1
  267. package/dist/plugin-sdk/agents/tools/sessions-helpers.d.ts +0 -1
  268. package/dist/plugin-sdk/auth/constants.d.ts +16 -0
  269. package/dist/plugin-sdk/auth/display.d.ts +7 -0
  270. package/dist/plugin-sdk/auth/doctor.d.ts +8 -0
  271. package/dist/plugin-sdk/auth/env-injection.d.ts +41 -0
  272. package/dist/plugin-sdk/auth/index.d.ts +8 -0
  273. package/dist/plugin-sdk/auth/oauth.d.ts +14 -0
  274. package/dist/plugin-sdk/auth/provider-auth.d.ts +40 -0
  275. package/dist/plugin-sdk/auth/session-override.d.ts +18 -0
  276. package/dist/plugin-sdk/auto-reply/reply/agent-runner-execution.d.ts +0 -1
  277. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +0 -2
  278. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -4
  279. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +1 -4
  280. package/dist/plugin-sdk/auto-reply/reply/directive-handling.levels.d.ts +1 -7
  281. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +1 -4
  282. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +1 -7
  283. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +1 -4
  284. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +3 -15
  285. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -5
  286. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +1 -5
  287. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +1 -5
  288. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +1 -3
  289. package/dist/plugin-sdk/auto-reply/reply/response-prefix-template.d.ts +4 -6
  290. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +0 -7
  291. package/dist/plugin-sdk/auto-reply/reply/session-updates.d.ts +0 -10
  292. package/dist/plugin-sdk/auto-reply/reply.d.ts +1 -1
  293. package/dist/plugin-sdk/auto-reply/status.d.ts +2 -6
  294. package/dist/plugin-sdk/auto-reply/thinking.d.ts +0 -11
  295. package/dist/plugin-sdk/auto-reply/types.d.ts +1 -2
  296. package/dist/plugin-sdk/commands/agent/session.d.ts +1 -2
  297. package/dist/plugin-sdk/config/defaults.d.ts +0 -1
  298. package/dist/plugin-sdk/config/sessions/types.d.ts +0 -8
  299. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +28 -112
  300. package/dist/plugin-sdk/config/types.agents.d.ts +8 -0
  301. package/dist/plugin-sdk/config/types.messages.d.ts +1 -2
  302. package/dist/plugin-sdk/config/types.tools.d.ts +1 -1
  303. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +9 -66
  304. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +5 -13
  305. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +12 -76
  306. package/dist/plugin-sdk/config/zod-schema.d.ts +12 -76
  307. package/dist/plugin-sdk/daemon/constants.d.ts +2 -2
  308. package/dist/plugin-sdk/gateway/protocol/index.d.ts +1 -3
  309. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +0 -2
  310. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +0 -2
  311. package/dist/plugin-sdk/index.js +108 -134
  312. package/dist/plugin-sdk/middleware/auth-key-retry.d.ts +32 -0
  313. package/dist/plugin-sdk/middleware/channel-bridge.d.ts +4 -0
  314. package/dist/plugin-sdk/middleware/error-classifier.d.ts +5 -0
  315. package/dist/plugin-sdk/middleware/media-resolver.d.ts +12 -0
  316. package/dist/plugin-sdk/middleware/runtime-factory.d.ts +42 -0
  317. package/dist/plugin-sdk/middleware/types.d.ts +33 -1
  318. package/dist/plugin-sdk/plugins/types.d.ts +1 -1
  319. package/dist/plugin-sdk/terminal/palette.d.ts +2 -2
  320. package/dist/plugins-B4waLB_f.js +453 -0
  321. package/dist/plugins-D6-JJ1il.js +455 -0
  322. package/dist/plugins-cli-DG2zHgdP.js +799 -0
  323. package/dist/plugins-cli-DZvQzkWd.js +794 -0
  324. package/dist/ports-BcTKFlWl.js +96 -0
  325. package/dist/ports-DAc2AlZE.js +316 -0
  326. package/dist/ports-HiuYk3bt.js +96 -0
  327. package/dist/ports-dEePqmCq.js +370 -0
  328. package/dist/program-CX-EtQ9W.js +245 -0
  329. package/dist/program-context-R3wsjl2f.js +474 -0
  330. package/dist/progress-DQ1drugY.js +124 -0
  331. package/dist/prompt-edYTUtju.js +21 -0
  332. package/dist/prompt-select-styled-BzL7v1zQ.js +1647 -0
  333. package/dist/prompt-select-styled-g5q4srtu.js +1650 -0
  334. package/dist/prompt-style-CYEpbwXH.js +9 -0
  335. package/dist/provider-dispatcher-D7qFGoUR.js +660 -0
  336. package/dist/provider-dispatcher-dB_rm6tV.js +659 -0
  337. package/dist/push-apns-DQwR-i4_.js +713 -0
  338. package/dist/push-apns-Dj5RApCY.js +711 -0
  339. package/dist/pw-ai-DOQMJFB-.js +1911 -0
  340. package/dist/pw-ai-oqtYDmjQ.js +1907 -0
  341. package/dist/qr-cli-CBGm_Cik.js +353 -0
  342. package/dist/qr-cli-D2jZPdW9.js +348 -0
  343. package/dist/redact-gXuh8MFk.js +191 -0
  344. package/dist/redact-snapshot-B-2V56Yb.js +2016 -0
  345. package/dist/redact-snapshot-CD36XSYE.js +2016 -0
  346. package/dist/register.agent-DLSuiqWE.js +287 -0
  347. package/dist/register.agent-DcvEt3hG.js +1044 -0
  348. package/dist/register.configure-3edoYZai.js +131 -0
  349. package/dist/register.configure-CyOJCmnY.js +125 -0
  350. package/dist/register.import-Cku0T-PA.js +31 -0
  351. package/dist/register.import-Dr8TiUVx.js +28 -0
  352. package/dist/register.maintenance-5aaPQbJk.js +495 -0
  353. package/dist/register.maintenance-DPSswZDJ.js +498 -0
  354. package/dist/register.message-BaSVFv92.js +682 -0
  355. package/dist/register.message-FEI0RiNN.js +687 -0
  356. package/dist/register.onboard-CO1UZL-9.js +258 -0
  357. package/dist/register.onboard-DuLKxjXl.js +263 -0
  358. package/dist/register.setup-CFYYd_Ev.js +115 -0
  359. package/dist/register.setup-P0UHDBMS.js +110 -0
  360. package/dist/register.status-health-sessions-D_3vm2yw.js +424 -0
  361. package/dist/register.status-health-sessions-z9x79dmg.js +665 -0
  362. package/dist/register.subclis-B-d970d6.js +267 -0
  363. package/dist/replies-BvarRpHb.js +136 -0
  364. package/dist/replies-CSzm5168.js +136 -0
  365. package/dist/reply-CTgksTO1.js +13695 -0
  366. package/dist/reply-CUyafs4J.js +13692 -0
  367. package/dist/reply-directives-Caq4zVTg.js +182 -0
  368. package/dist/reply-directives-D91fapDF.js +182 -0
  369. package/dist/reply-payloads-te0YnESs.js +527 -0
  370. package/dist/reply-prefix-Bv8Mv9q8.js +37 -0
  371. package/dist/reply-prefix-Rk_UEaJa.js +37 -0
  372. package/dist/resolve-route-BPa6q23t.js +249 -0
  373. package/dist/resolve-route-CN9BEALz.js +249 -0
  374. package/dist/response-prefix-template-D-ptXREi.js +134 -0
  375. package/dist/response-prefix-template-Dckjdftg.js +134 -0
  376. package/dist/retry-BcZuGfnV.js +77 -0
  377. package/dist/retry-BzWBtFpP.js +77 -0
  378. package/dist/run-main-BugUkGES.js +303 -0
  379. package/dist/runner-CVMXkHe9.js +2295 -0
  380. package/dist/runner-DOWTBU0-.js +2295 -0
  381. package/dist/runtime-guard-CXt4yzo-.js +60 -0
  382. package/dist/secure-random-CBwDBdj1.js +44 -0
  383. package/dist/security-cli-BQzdzJUp.js +479 -0
  384. package/dist/security-cli-D2d8RvsT.js +485 -0
  385. package/dist/send-B3G3I3II.js +349 -0
  386. package/dist/send-B6IB6ELR.js +547 -0
  387. package/dist/send-BT8XEvZB.js +332 -0
  388. package/dist/send-BTupAHVX.js +2245 -0
  389. package/dist/send-BZCfto_I.js +1174 -0
  390. package/dist/send-C5EDjThR.js +492 -0
  391. package/dist/send-CBM54hgN.js +349 -0
  392. package/dist/send-CPBd6ItT.js +29 -0
  393. package/dist/send-CzYm7ULP.js +2245 -0
  394. package/dist/send-D2m_x8xM.js +374 -0
  395. package/dist/send-DmEBPE2S.js +1779 -0
  396. package/dist/send-Dt4iCx61.js +426 -0
  397. package/dist/send-MWjpLHEV.js +11 -0
  398. package/dist/send-qpwqt34s.js +547 -0
  399. package/dist/send-rW25uKNz.js +1776 -0
  400. package/dist/send-uqa6CNuP.js +492 -0
  401. package/dist/server-BhmYVCED.js +201 -0
  402. package/dist/server-DaUw1o2B.js +206 -0
  403. package/dist/server-lifecycle-BeZsBQwF.js +2437 -0
  404. package/dist/server-lifecycle-C2F1_TE2.js +2437 -0
  405. package/dist/server-node-events-DoRFbKCT.js +390 -0
  406. package/dist/server-node-events-jbbbt-4R.js +395 -0
  407. package/dist/service-BDt-zUvV.js +670 -0
  408. package/dist/service-Os7W1F2S.js +670 -0
  409. package/dist/session-B9KGKVrY.js +170 -0
  410. package/dist/session-DzAupDyj.js +170 -0
  411. package/dist/session-cost-usage-BYCI739a.js +627 -0
  412. package/dist/session-cost-usage-DGsPcuMj.js +627 -0
  413. package/dist/session-dirs-BIg5RHAh.js +947 -0
  414. package/dist/session-dirs-DwDxjK1p.js +947 -0
  415. package/dist/session-utils-BgWDCbyx.js +622 -0
  416. package/dist/session-utils-CxxOeC1M.js +622 -0
  417. package/dist/sessions-Bwu0l_CG.js +2569 -0
  418. package/dist/sessions-CiuFFCnt.js +247 -0
  419. package/dist/shell-env-CsV_IkJj.js +163 -0
  420. package/dist/shell-env-hZW9j-Uc.js +163 -0
  421. package/dist/ssrf-B-rF_tZB.js +183 -0
  422. package/dist/ssrf-D6fl_7ww.js +183 -0
  423. package/dist/status-BOFm7iyj.js +2065 -0
  424. package/dist/status-RI2y_M21.js +2061 -0
  425. package/dist/status.update-DbO7izip.js +79 -0
  426. package/dist/status.update-wXyvcztI.js +79 -0
  427. package/dist/store-BLGrRL_E.js +64 -0
  428. package/dist/store-BYhcsOLr.js +64 -0
  429. package/dist/store-Dv76bGHg.js +2571 -0
  430. package/dist/store-Dw93tSB-.js +53 -0
  431. package/dist/subagent-registry-DWL-tayF.js +4856 -0
  432. package/dist/subagent-registry-HjR1tO3-.js +4854 -0
  433. package/dist/subsystem-BCkt9Ocb.js +1079 -0
  434. package/dist/subsystem-BgxIzx7w.js +1137 -0
  435. package/dist/system-cli-DtrDDmCt.js +71 -0
  436. package/dist/system-cli-xDr_Yyaa.js +76 -0
  437. package/dist/systemd-BlbIQ1PV.js +547 -0
  438. package/dist/systemd-DzXePo7r.js +547 -0
  439. package/dist/systemd-linger-mLbBF4pa.js +75 -0
  440. package/dist/systemd-linger-qlGGW2JB.js +75 -0
  441. package/dist/table-V_9n7CjP.js +279 -0
  442. package/dist/tables-Cy3gObW7.js +55 -0
  443. package/dist/tables-DAuk-Y6F.js +55 -0
  444. package/dist/tables-DRh09aPZ.js +55 -0
  445. package/dist/tailnet-BoTa0e2q.js +40 -0
  446. package/dist/tailnet-Cy0Q27lj.js +40 -0
  447. package/dist/tailscale-CiWkh0vS.js +230 -0
  448. package/dist/tailscale-Driw3j8E.js +230 -0
  449. package/dist/targets-3hewwPvM.js +120 -0
  450. package/dist/targets-Bkw_co-B.js +220 -0
  451. package/dist/targets-C1Tt0ZWd.js +2406 -0
  452. package/dist/targets-CsrqF2M4.js +650 -0
  453. package/dist/targets-DKriCISG.js +53 -0
  454. package/dist/targets-DTM2OPnS.js +650 -0
  455. package/dist/targets-DhhaK2xG.js +53 -0
  456. package/dist/targets-tDrl_ioQ.js +46 -0
  457. package/dist/targets-yq1kGK1_.js +2407 -0
  458. package/dist/thinking-XA5P_zFw.js +88 -0
  459. package/dist/thinking-l-rrvZwu.js +88 -0
  460. package/dist/tokens-7ZtWRjA3.js +21 -0
  461. package/dist/tool-display-AxpSXZVq.js +785 -0
  462. package/dist/tool-display-D6GD-41Y.js +785 -0
  463. package/dist/tool-images-D16vIWPg.js +263 -0
  464. package/dist/tool-images-IVIZ29ID.js +263 -0
  465. package/dist/trash--8b4GDyV.js +125 -0
  466. package/dist/trash-ivbG2QWV.js +125 -0
  467. package/dist/tui-Cbe1EW-B.js +3319 -0
  468. package/dist/tui-Dj3XrTCV.js +3319 -0
  469. package/dist/tui-cli-EGqEcdfE.js +64 -0
  470. package/dist/tui-cli-KKmqnNs2.js +59 -0
  471. package/dist/update-DruVguh4.js +349 -0
  472. package/dist/update-cli-C5tdQeGG.js +1371 -0
  473. package/dist/update-cli-Canq11sh.js +1374 -0
  474. package/dist/update-y8nz-3OC.js +349 -0
  475. package/dist/usage-CAuX4vsd.js +5384 -0
  476. package/dist/utils-C5daYcFn.js +631 -0
  477. package/dist/web-B9gR_cGR.js +3071 -0
  478. package/dist/web-DZ8ahrhK.js +77 -0
  479. package/dist/web-DkYPsnyd.js +71 -0
  480. package/dist/webhooks-cli-DFqGwW1f.js +329 -0
  481. package/dist/webhooks-cli-y-E-q0Xo.js +334 -0
  482. package/dist/whatsapp-actions-BXIe-Uei.js +123 -0
  483. package/dist/whatsapp-actions-BictxOCB.js +129 -0
  484. package/dist/widearea-dns-fHQt5-Q3.js +127 -0
  485. package/dist/workspace-DvbSDgO_.js +449 -0
  486. package/dist/workspace-zLfKNRwR.js +447 -0
  487. package/dist/zod-schema-B9RGngMW.js +2696 -0
  488. package/dist/zod-schema-D3hQ5SKe.js +2696 -0
  489. package/extensions/matrix/src/matrix/monitor/replies.ts +0 -24
  490. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -1
  491. package/package.json +3 -3
  492. package/dist/accounts-BFy_Z3od.js +0 -272
  493. package/dist/accounts-BTXSfPWi.js +0 -270
  494. package/dist/accounts-BxGS70Do.js +0 -36
  495. package/dist/accounts-CNY1TGj1.js +0 -47
  496. package/dist/accounts-DBohBlww.js +0 -32
  497. package/dist/accounts-DqRQ75w3.js +0 -36
  498. package/dist/accounts-iODF3SK2.js +0 -47
  499. package/dist/ack-reactions-B11TAC2D.js +0 -446
  500. package/dist/ack-reactions-BWVjL4H6.js +0 -446
  501. package/dist/acp-cli-CA1xMmVo.js +0 -1320
  502. package/dist/acp-cli-CGo6fJVZ.js +0 -1326
  503. package/dist/active-listener-VzhWW8W6.js +0 -37
  504. package/dist/active-listener-z0qVEcom.js +0 -37
  505. package/dist/agent-CTizRPIJ.js +0 -732
  506. package/dist/agent-D2RVoS5g.js +0 -731
  507. package/dist/agent-helpers-B6VfZ9_u.js +0 -606
  508. package/dist/agent-helpers-CTx5KKJu.js +0 -606
  509. package/dist/agent-scope-BGYzhtWQ.js +0 -121
  510. package/dist/agent-scope-C50VuLKh.js +0 -119
  511. package/dist/agents-BuYn-obw.js +0 -788
  512. package/dist/agents.config-BSTxuTVd.js +0 -116
  513. package/dist/agents.config-p3V3b9u6.js +0 -116
  514. package/dist/audio-DPOuhNq7.js +0 -43
  515. package/dist/audio-VBcVDa08.js +0 -43
  516. package/dist/audio-preflight-BwmCYeuM.js +0 -64
  517. package/dist/audio-preflight-co8gjlPX.js +0 -69
  518. package/dist/audit-oH4urD3G.js +0 -3138
  519. package/dist/audit-qgtCT3ik.js +0 -3138
  520. package/dist/auth-CAczFgAO.js +0 -448
  521. package/dist/auth-Deh9i9Eg.js +0 -448
  522. package/dist/auth-profiles-BquJGKLC.js +0 -279
  523. package/dist/auth-profiles-D8vKiBPq.js +0 -281
  524. package/dist/banner-Cf978khN.js +0 -294
  525. package/dist/binaries-DXW6oATV.js +0 -13
  526. package/dist/bindings-CRU_udk8.js +0 -69
  527. package/dist/bindings-DQZAu8Wv.js +0 -69
  528. package/dist/bonjour-discovery-DdAk1VyO.js +0 -378
  529. package/dist/bonjour-discovery-DuhiIZZx.js +0 -378
  530. package/dist/browser-cli-CZC4h5V4.js +0 -1687
  531. package/dist/browser-cli-DAgi_aQk.js +0 -1692
  532. package/dist/call-BbwtB9Y-.js +0 -2828
  533. package/dist/call-PivL7Uex.js +0 -2829
  534. package/dist/catalog-BqO6yem_.js +0 -185
  535. package/dist/catalog-DFmaYwfk.js +0 -185
  536. package/dist/channel-account-context-CvIDAtHS.js +0 -550
  537. package/dist/channel-account-context-q-o0pG1A.js +0 -550
  538. package/dist/channel-activity-BaCNOZpP.js +0 -94
  539. package/dist/channel-activity-C-G4n9BK.js +0 -292
  540. package/dist/channel-activity-DTKGf3j5.js +0 -94
  541. package/dist/channel-options-Cyappik_.js +0 -32
  542. package/dist/channel-options-DFnypY5S.js +0 -33
  543. package/dist/channel-selection-BGl53D5K.js +0 -51
  544. package/dist/channel-selection-NNPbxnyZ.js +0 -51
  545. package/dist/channel-web-DmhVkWbP.js +0 -2134
  546. package/dist/channel-web-kRC3UYBJ.js +0 -2136
  547. package/dist/channels-cli-C5XRkPJl.js +0 -1421
  548. package/dist/channels-cli-D6TqCI0m.js +0 -1426
  549. package/dist/channels-status-issues-CUc9mpeW.js +0 -18
  550. package/dist/channels-status-issues-DwRDzwrV.js +0 -18
  551. package/dist/chat-envelope-DEZ-5RY8.js +0 -248
  552. package/dist/chat-envelope-el7Uo-Fe.js +0 -248
  553. package/dist/chrome-0QaGKb3L.js +0 -1732
  554. package/dist/chrome-CFeWdP0Y.js +0 -1733
  555. package/dist/chunk-CSQfUhgF.js +0 -341
  556. package/dist/chunk-D0Y_w4oX.js +0 -341
  557. package/dist/clack-prompter-B7tOxhJd.js +0 -122
  558. package/dist/clack-prompter-CCFnKP_1.js +0 -121
  559. package/dist/cleanup-utils-CqAVZz2b.js +0 -94
  560. package/dist/cli-BR2J3c4l.js +0 -125
  561. package/dist/cli-C1q1vSmN.js +0 -130
  562. package/dist/clipboard-D7_SKHPK.js +0 -31
  563. package/dist/clipboard-Dzkx6Q2K.js +0 -31
  564. package/dist/command-format-CVfo8I5f.js +0 -18
  565. package/dist/command-format-DgXcqxBt.js +0 -32
  566. package/dist/command-registry-CYjvOp8W.js +0 -215
  567. package/dist/commands-CDonBOrw.js +0 -41
  568. package/dist/commands-D_-bgTlO.js +0 -41
  569. package/dist/commands-registry-CWJv6xe2.js +0 -892
  570. package/dist/commands-registry-Ci8_cFk9.js +0 -893
  571. package/dist/common-CMI-qsF8.js +0 -156
  572. package/dist/common-DSVmydhm.js +0 -156
  573. package/dist/completion-cli-8iZJqfmX.js +0 -452
  574. package/dist/completion-cli-CYDjEZSt.js +0 -452
  575. package/dist/config-D5XU45KD.js +0 -6953
  576. package/dist/config-FHu9Bn4R.js +0 -6951
  577. package/dist/config-cli-Gehy4sav.js +0 -241
  578. package/dist/config-cli-RC9qMgJq.js +0 -246
  579. package/dist/config-guard-J-Q_DFWk.js +0 -97
  580. package/dist/config-guard-cB5a_ANg.js +0 -75
  581. package/dist/config-validation-BPNyd9_3.js +0 -18
  582. package/dist/config-validation-BPWuvhVe.js +0 -18
  583. package/dist/configure-CC2XdRRm.js +0 -891
  584. package/dist/configure-DxFBJuhZ.js +0 -889
  585. package/dist/constants-BmRFoHl0.js +0 -67
  586. package/dist/constants-C9WPAluB.js +0 -67
  587. package/dist/control-auth-D0tpV3ts.js +0 -397
  588. package/dist/control-auth-_-0PGRUs.js +0 -397
  589. package/dist/control-ui/assets/index-B4ZM1lW1.js +0 -7738
  590. package/dist/control-ui/assets/index-B4ZM1lW1.js.map +0 -1
  591. package/dist/control-ui/assets/index-PED72sKF.css +0 -1
  592. package/dist/control-ui-assets-Cx_mw4D0.js +0 -186
  593. package/dist/control-ui-assets-W1AUuGrO.js +0 -186
  594. package/dist/conversation-label-C4SDz4sT.js +0 -36
  595. package/dist/conversation-label-D1frnvYe.js +0 -36
  596. package/dist/cron-cli-BzERxhr5.js +0 -495
  597. package/dist/cron-cli-C8j_uslU.js +0 -490
  598. package/dist/daemon-cli-C95XNbX0.js +0 -1199
  599. package/dist/daemon-cli-e6sURMqd.js +0 -1197
  600. package/dist/daemon-install-CcohRvKV.js +0 -55
  601. package/dist/daemon-install-DDshfT0J.js +0 -60
  602. package/dist/daemon-install-helpers-CFGAfRlj.js +0 -462
  603. package/dist/daemon-install-helpers-DIUzSFG1.js +0 -462
  604. package/dist/defaults-B5KStIBg.js +0 -7
  605. package/dist/defaults-xUAL2Z-F.js +0 -7
  606. package/dist/deliver-912khjLK.js +0 -481
  607. package/dist/deliver-D56J4-1F.js +0 -481
  608. package/dist/delivery-queue-Cfa9Wmxp.js +0 -244
  609. package/dist/delivery-queue-CxVRi4tw.js +0 -244
  610. package/dist/devices-cli-0qDhTgZR.js +0 -316
  611. package/dist/devices-cli-6SKMR2bV.js +0 -321
  612. package/dist/diagnostics-99iCgBUh.js +0 -46
  613. package/dist/diagnostics-VC0cz7kX.js +0 -46
  614. package/dist/directory-cli-5YXdoVdn.js +0 -217
  615. package/dist/directory-cli-D3IKCHmn.js +0 -222
  616. package/dist/dm-policy-shared-4rkjhcrM.js +0 -22
  617. package/dist/dm-policy-shared-D8lgnmrC.js +0 -22
  618. package/dist/dns-cli-11CtErVU.js +0 -197
  619. package/dist/dns-cli-SiEd_1Lq.js +0 -202
  620. package/dist/dock-BqNINg7k.js +0 -928
  621. package/dist/dock-CQuu41bw.js +0 -929
  622. package/dist/doctor-completion-BR1SlAT3.js +0 -92
  623. package/dist/doctor-completion-CZwpEhIK.js +0 -92
  624. package/dist/doctor-config-flow-BVkHcvoj.js +0 -1933
  625. package/dist/doctor-config-flow-DVYRn0An.js +0 -1934
  626. package/dist/enable-DcJnkzfz.js +0 -59
  627. package/dist/enable-ibNq4UWy.js +0 -59
  628. package/dist/env-DeF64iu0.js +0 -60
  629. package/dist/env-vars-7aZqKPhk.js +0 -93
  630. package/dist/errors-8F-77i6m.js +0 -35
  631. package/dist/errors-DZ199hOo.js +0 -35
  632. package/dist/exec-DbKuYyM1.js +0 -164
  633. package/dist/exec-DkFE7lqU.js +0 -164
  634. package/dist/fetch-BFSBLBkA.js +0 -67
  635. package/dist/fetch-C6XKGA11.js +0 -67
  636. package/dist/fetch-CEDsOiql.js +0 -67
  637. package/dist/file-lock-CIvloidc.js +0 -107
  638. package/dist/file-lock-CzBL_VIx.js +0 -107
  639. package/dist/fs-safe-DSwT85uK.js +0 -88
  640. package/dist/fs-safe-DkBhNAc3.js +0 -98
  641. package/dist/gateway-cli-BEEZhCHv.js +0 -23747
  642. package/dist/gateway-cli-Nob0g_4y.js +0 -23742
  643. package/dist/gateway-rpc-CksB-N83.js +0 -28
  644. package/dist/gateway-rpc-Dq44SkOv.js +0 -28
  645. package/dist/gmail-setup-utils-Cnx8A5pW.js +0 -422
  646. package/dist/gmail-setup-utils-nkabbKOE.js +0 -423
  647. package/dist/health-RT-F3hzT.js +0 -1423
  648. package/dist/health-SOuaKNRa.js +0 -1420
  649. package/dist/health-format-BG95OE6N.js +0 -28
  650. package/dist/heartbeat-visibility-BxkZjE5m.js +0 -125
  651. package/dist/heartbeat-visibility-CGG-G7px.js +0 -125
  652. package/dist/help-format-DAxf0l_h.js +0 -17
  653. package/dist/helpers-kkeXif0Q.js +0 -10
  654. package/dist/hook-runner-global-DJ14gXFP.js +0 -527
  655. package/dist/hooks-cli-DyEKryW8.js +0 -1217
  656. package/dist/hooks-cli-RuEn0-oy.js +0 -1222
  657. package/dist/image-ops-Bi6JPSkD.js +0 -354
  658. package/dist/image-ops-DWytvdh_.js +0 -354
  659. package/dist/import-D8BBZQgl.js +0 -170
  660. package/dist/import-DQ6NI4Fz.js +0 -168
  661. package/dist/inbound-context-CPkkQW0i.js +0 -68
  662. package/dist/inbound-context-DS_kpIYI.js +0 -68
  663. package/dist/inbound-path-policy-Bg4gZBx-.js +0 -250
  664. package/dist/inbound-path-policy-sdr5Ji0k.js +0 -250
  665. package/dist/inspect-Dt8hogS3.js +0 -559
  666. package/dist/inspect-vYIL1oA0.js +0 -559
  667. package/dist/installs-aM5dWAyn.js +0 -325
  668. package/dist/installs-pWdqG8HL.js +0 -325
  669. package/dist/ipv4--2WXMVtE.js +0 -46
  670. package/dist/ipv4-CDQpx1A7.js +0 -46
  671. package/dist/ir-BpaAMTfW.js +0 -940
  672. package/dist/json-files-DzpTak5i.js +0 -46
  673. package/dist/links-C3soDNDH.js +0 -15
  674. package/dist/loader-Ccwsh8Sh.js +0 -22624
  675. package/dist/loader-y9MhJewT.js +0 -22621
  676. package/dist/local-roots-BrH0Q63K.js +0 -313
  677. package/dist/local-roots-nImrw2WR.js +0 -314
  678. package/dist/logger-Bw3cFE5t.js +0 -49
  679. package/dist/logging-C-nxX2fn.js +0 -20
  680. package/dist/login-C_Kt57nO.js +0 -62
  681. package/dist/login-DOmWDMeP.js +0 -61
  682. package/dist/login-qr-CXU0wC5K.js +0 -322
  683. package/dist/login-qr-D0u6fdeO.js +0 -327
  684. package/dist/logs-cli-CschwP4d.js +0 -238
  685. package/dist/logs-cli-D7ayUvz_.js +0 -233
  686. package/dist/markdown-tables-CrmghPAr.js +0 -29
  687. package/dist/markdown-tables-jrnSPvZ6.js +0 -29
  688. package/dist/media-CojxZ45J.js +0 -10492
  689. package/dist/media-DN7yRfrH.js +0 -940
  690. package/dist/message-action-names-CtEZcmlU.js +0 -2521
  691. package/dist/message-action-names-WglOO_DT.js +0 -2521
  692. package/dist/message-channel-DzJqHVZD.js +0 -91
  693. package/dist/net-Cg8AQeke.js +0 -225
  694. package/dist/net-D6D0wgcF.js +0 -225
  695. package/dist/node-cli-Q2-n3Fgv.js +0 -24
  696. package/dist/nodes-cli-C2SoKfCv.js +0 -1343
  697. package/dist/nodes-cli-CQmlfx0K.js +0 -1348
  698. package/dist/nodes-screen-BR9sYoPa.js +0 -250
  699. package/dist/nodes-screen-Cw7Hv7M2.js +0 -250
  700. package/dist/note-Dlv4NmlQ.js +0 -92
  701. package/dist/note-kvWV4xtw.js +0 -92
  702. package/dist/npm-registry-spec-0qiKawvv.js +0 -786
  703. package/dist/npm-registry-spec-COvUzy5J.js +0 -786
  704. package/dist/npm-resolution-6v_Zm-9G.js +0 -86
  705. package/dist/npm-resolution-BFz7LeoN.js +0 -86
  706. package/dist/onboard-CgyU-mDL.js +0 -407
  707. package/dist/onboard-RI4vNTZd.js +0 -405
  708. package/dist/onboard-channels-DN5JoKPd.js +0 -2548
  709. package/dist/onboard-channels-DyAd1OZr.js +0 -2547
  710. package/dist/onboard-config-BCTthQ7J.js +0 -24
  711. package/dist/onboard-config-y-2cgT0V.js +0 -24
  712. package/dist/onboard-helpers-BCzZUD0z.js +0 -363
  713. package/dist/onboard-helpers-sDc2Ky6H.js +0 -362
  714. package/dist/onboard-remote-CJrMtttl.js +0 -127
  715. package/dist/onboard-remote-hyQIBguz.js +0 -127
  716. package/dist/onboarding-DCu1iBTV.js +0 -541
  717. package/dist/onboarding-zKMitzpb.js +0 -543
  718. package/dist/onboarding.finalize-ClHhYE2E.js +0 -401
  719. package/dist/onboarding.finalize-D5JkVJgg.js +0 -398
  720. package/dist/onboarding.gateway-config-DFh71Ndn.js +0 -198
  721. package/dist/onboarding.gateway-config-VBk6AP9U.js +0 -191
  722. package/dist/outbound-BYlZshIw.js +0 -221
  723. package/dist/outbound-CFfJC1j5.js +0 -220
  724. package/dist/outbound-attachment-BCNs1u1F.js +0 -18
  725. package/dist/outbound-attachment-B_0D60Yr.js +0 -18
  726. package/dist/outbound-attachment-o0seS0CP.js +0 -18
  727. package/dist/pairing-cli-BeydfoF9.js +0 -122
  728. package/dist/pairing-cli-DWzX866x.js +0 -127
  729. package/dist/pairing-labels-B-N8S5Fc.js +0 -9
  730. package/dist/pairing-labels-B_53dY5L.js +0 -9
  731. package/dist/pairing-store-BxdqFZGK.js +0 -460
  732. package/dist/pairing-store-CTkD51uW.js +0 -459
  733. package/dist/path-env-DR5vn3QL.js +0 -89
  734. package/dist/path-env-qRJbjJzj.js +0 -89
  735. package/dist/path-safety-DkT9RmTG.js +0 -14
  736. package/dist/path-safety-juI2XbO1.js +0 -14
  737. package/dist/plugin-auto-enable-D23gv7Aw.js +0 -302
  738. package/dist/plugin-auto-enable-DuPS9XiJ.js +0 -301
  739. package/dist/plugin-registry-CNu_1KZz.js +0 -33
  740. package/dist/plugin-registry-DeHwd2jk.js +0 -33
  741. package/dist/plugin-sdk/agents/agent-helpers/thinking.d.ts +0 -5
  742. package/dist/plugin-sdk/agents/auth-profiles/constants.d.ts +0 -16
  743. package/dist/plugin-sdk/agents/auth-profiles/display.d.ts +0 -7
  744. package/dist/plugin-sdk/agents/auth-profiles/doctor.d.ts +0 -8
  745. package/dist/plugin-sdk/agents/auth-profiles/oauth.d.ts +0 -14
  746. package/dist/plugin-sdk/agents/auth-profiles/session-override.d.ts +0 -18
  747. package/dist/plugin-sdk/agents/auth-profiles.d.ts +0 -8
  748. package/dist/plugin-sdk/agents/defaults.d.ts +0 -3
  749. package/dist/plugin-sdk/agents/provider-auth.d.ts +0 -40
  750. package/dist/plugin-sdk/auto-reply/model-runtime.d.ts +0 -17
  751. package/dist/plugin-sdk/config/model-input.d.ts +0 -9
  752. package/dist/plugin-sdk/config/zod-schema.agent-model.d.ts +0 -5
  753. package/dist/plugin-sdk/sessions/model-overrides.d.ts +0 -14
  754. package/dist/plugin-sdk/telegram/reasoning-lane-coordinator.d.ts +0 -18
  755. package/dist/plugins-BflZz0sp.js +0 -453
  756. package/dist/plugins-cli-DV82scUw.js +0 -798
  757. package/dist/plugins-cli-Qj1UyIZO.js +0 -793
  758. package/dist/plugins-woGRXMzU.js +0 -455
  759. package/dist/ports-DrruB2fK.js +0 -370
  760. package/dist/ports-GT1yV-Tg.js +0 -96
  761. package/dist/ports-NPqtlfp0.js +0 -316
  762. package/dist/ports-QMI4-F9m.js +0 -96
  763. package/dist/program-CQmIaRUI.js +0 -244
  764. package/dist/program-context-DEU6ACnL.js +0 -474
  765. package/dist/progress-CBkSaM6z.js +0 -124
  766. package/dist/prompt-Bllj1dhc.js +0 -21
  767. package/dist/prompt-select-styled-BhTN6zE2.js +0 -1650
  768. package/dist/prompt-select-styled-WopXnjIy.js +0 -1647
  769. package/dist/prompt-style-DVEm3BZW.js +0 -9
  770. package/dist/provider-dispatcher-B4QMe-I6.js +0 -659
  771. package/dist/provider-dispatcher-Bfauw6zz.js +0 -660
  772. package/dist/push-apns-C0LyG-WB.js +0 -713
  773. package/dist/push-apns-DuG95AKC.js +0 -711
  774. package/dist/pw-ai-D9n6-Wa6.js +0 -1906
  775. package/dist/pw-ai-T280E6Mn.js +0 -1910
  776. package/dist/qr-cli-DVECWTHN.js +0 -352
  777. package/dist/qr-cli-hSLixZCe.js +0 -347
  778. package/dist/redact-eZq1uwNK.js +0 -191
  779. package/dist/redact-snapshot-BZYLIqe-.js +0 -2028
  780. package/dist/redact-snapshot-C6hVx_9I.js +0 -2028
  781. package/dist/register.agent-Dmj-sgEl.js +0 -1043
  782. package/dist/register.agent-IspcBFeD.js +0 -286
  783. package/dist/register.configure-BqJEqyGL.js +0 -130
  784. package/dist/register.configure-PPkU_4Ea.js +0 -124
  785. package/dist/register.import-Bs-UkOs-.js +0 -27
  786. package/dist/register.import-DLng8g-e.js +0 -30
  787. package/dist/register.maintenance-BbpkJil3.js +0 -497
  788. package/dist/register.maintenance-C5nkOQxa.js +0 -494
  789. package/dist/register.message-C83Hi1b3.js +0 -681
  790. package/dist/register.message-D16isu4u.js +0 -686
  791. package/dist/register.onboard-B8EzX3wY.js +0 -257
  792. package/dist/register.onboard-CyRbr_0V.js +0 -262
  793. package/dist/register.setup-DWyoowAz.js +0 -109
  794. package/dist/register.setup-Dz6GwMnu.js +0 -114
  795. package/dist/register.status-health-sessions-CbQOfycz.js +0 -423
  796. package/dist/register.status-health-sessions-DXIWG47y.js +0 -669
  797. package/dist/register.subclis-DeGP5UPU.js +0 -267
  798. package/dist/replies-BKrzM0QI.js +0 -136
  799. package/dist/replies-Cl2gYBVt.js +0 -136
  800. package/dist/reply-CCu_DY64.js +0 -13900
  801. package/dist/reply-DSKC8kyS.js +0 -13897
  802. package/dist/reply-directives-BHJKp1Du.js +0 -182
  803. package/dist/reply-directives-CD2WycBM.js +0 -182
  804. package/dist/reply-payloads-D_BM1Anb.js +0 -527
  805. package/dist/reply-prefix-DBLCYiup.js +0 -38
  806. package/dist/reply-prefix-Q4DOJSn_.js +0 -38
  807. package/dist/resolve-route-CBVbY0xS.js +0 -249
  808. package/dist/resolve-route-DGEgTEif.js +0 -249
  809. package/dist/response-prefix-template-rVZQOViK.js +0 -136
  810. package/dist/response-prefix-template-up4REfuR.js +0 -136
  811. package/dist/retry-BhuXOEVR.js +0 -77
  812. package/dist/retry-DUjAzOBy.js +0 -77
  813. package/dist/run-main-Um5xhxla.js +0 -320
  814. package/dist/runner-yVJ4HB2K.js +0 -2294
  815. package/dist/runner-z92MWZ3m.js +0 -2294
  816. package/dist/runtime-guard-DZ_xuCc4.js +0 -60
  817. package/dist/secure-random-Pl9rPl0l.js +0 -44
  818. package/dist/security-cli-CdwbWZUj.js +0 -484
  819. package/dist/security-cli-DP5QJpa5.js +0 -478
  820. package/dist/send-B1_Ymjb9.js +0 -1778
  821. package/dist/send-B84axiIa.js +0 -29
  822. package/dist/send-BN_zYVlx.js +0 -547
  823. package/dist/send-BqVOxAmK.js +0 -1174
  824. package/dist/send-Bx9bUGav.js +0 -492
  825. package/dist/send-C3pdJ6p-.js +0 -2245
  826. package/dist/send-CBGSXjfD.js +0 -2245
  827. package/dist/send-CGXyTF22.js +0 -426
  828. package/dist/send-CKavrhXj.js +0 -11
  829. package/dist/send-D08Je6DL.js +0 -374
  830. package/dist/send-D1aYEG-k.js +0 -332
  831. package/dist/send-DHldI3gf.js +0 -492
  832. package/dist/send-D_DUQJ6H.js +0 -349
  833. package/dist/send-Ds63eF4a.js +0 -349
  834. package/dist/send-YRVDWfSs.js +0 -547
  835. package/dist/send-xnwty9cY.js +0 -1775
  836. package/dist/server-BQFoyCRR.js +0 -200
  837. package/dist/server-DhXw25Jq.js +0 -205
  838. package/dist/server-lifecycle-BjCCyD3w.js +0 -2437
  839. package/dist/server-lifecycle-Coyr6Lda.js +0 -2437
  840. package/dist/server-node-events-De4WZQQD.js +0 -393
  841. package/dist/server-node-events-dXXayuqY.js +0 -398
  842. package/dist/service-Bjqii5nW.js +0 -670
  843. package/dist/service-fp29z5Ww.js +0 -670
  844. package/dist/session-DBL5nHDy.js +0 -170
  845. package/dist/session-cost-usage-DX09eTPU.js +0 -627
  846. package/dist/session-cost-usage-yYi525j3.js +0 -627
  847. package/dist/session-dirs-Cj5xi7zX.js +0 -947
  848. package/dist/session-dirs-DdF6TDsE.js +0 -947
  849. package/dist/session-utils-CEtEq6bi.js +0 -625
  850. package/dist/session-utils-WmlWAs1r.js +0 -625
  851. package/dist/session-xKIW6gL2.js +0 -170
  852. package/dist/sessions--PykPynp.js +0 -2593
  853. package/dist/sessions-Bw4LRnSr.js +0 -252
  854. package/dist/ssrf-Ck9HDZpv.js +0 -183
  855. package/dist/ssrf-m7kFIobZ.js +0 -183
  856. package/dist/status-CtzYFLLF.js +0 -2072
  857. package/dist/status-DiN1cq2p.js +0 -2068
  858. package/dist/status.update-C55QM2xs.js +0 -79
  859. package/dist/status.update-CBmPXwYN.js +0 -79
  860. package/dist/store-C3tOpizT.js +0 -64
  861. package/dist/store-CPJXuhvQ.js +0 -53
  862. package/dist/store-SusmIfz7.js +0 -2595
  863. package/dist/store-v3P-OWhi.js +0 -64
  864. package/dist/subagent-registry-Db4Ho_2Y.js +0 -4858
  865. package/dist/subagent-registry-Du_j0Fnt.js +0 -4860
  866. package/dist/subsystem-BUXAJwPD.js +0 -1079
  867. package/dist/subsystem-COd61u0P.js +0 -1139
  868. package/dist/system-cli-DYCpLO3T.js +0 -75
  869. package/dist/system-cli-eAk5wVbP.js +0 -70
  870. package/dist/systemd-DSnlM3jX.js +0 -547
  871. package/dist/systemd-TfK8GuTx.js +0 -547
  872. package/dist/systemd-linger-Axnc1xCb.js +0 -75
  873. package/dist/systemd-linger-_0_-RY4v.js +0 -75
  874. package/dist/table-DPTzZyhu.js +0 -279
  875. package/dist/tables-DI5LGEr1.js +0 -55
  876. package/dist/tables-PxcSPSO0.js +0 -55
  877. package/dist/tables-TWiml6b1.js +0 -55
  878. package/dist/tailnet-CEudzG0i.js +0 -40
  879. package/dist/tailnet-PnMrjwGT.js +0 -40
  880. package/dist/tailscale-DTATQxAG.js +0 -230
  881. package/dist/tailscale-Dbyahx0J.js +0 -230
  882. package/dist/targets-C1NeMn2J.js +0 -220
  883. package/dist/targets-CcTME3bp.js +0 -46
  884. package/dist/targets-CmC5m7Ey.js +0 -53
  885. package/dist/targets-D-u6Kyio.js +0 -650
  886. package/dist/targets-D7OKVXMI.js +0 -650
  887. package/dist/targets-DB4vBpIQ.js +0 -2172
  888. package/dist/targets-DfqPGOmM.js +0 -2173
  889. package/dist/targets-DyybKefq.js +0 -53
  890. package/dist/targets-JCISV-hS.js +0 -120
  891. package/dist/tokens-DzFOtLlW.js +0 -21
  892. package/dist/tool-display-Br6mwaJc.js +0 -785
  893. package/dist/tool-display-sgNwLOBj.js +0 -785
  894. package/dist/tool-images-BNfIJ_Kj.js +0 -263
  895. package/dist/tool-images-kloBqxqK.js +0 -263
  896. package/dist/trash-DPi0aCCQ.js +0 -125
  897. package/dist/trash-D_Jd_yQZ.js +0 -125
  898. package/dist/tui-CHc0EfJO.js +0 -3392
  899. package/dist/tui-CyHwc2uX.js +0 -3392
  900. package/dist/tui-cli-BvwbrIYO.js +0 -63
  901. package/dist/tui-cli-C9I18SfW.js +0 -58
  902. package/dist/update-DxyjwCL2.js +0 -349
  903. package/dist/update-IX7vdqA8.js +0 -349
  904. package/dist/update-cli-CBeXUSzq.js +0 -1373
  905. package/dist/update-cli-DkAWmUrp.js +0 -1370
  906. package/dist/usage-CYlQW4M2.js +0 -5279
  907. package/dist/utils-LBKvDoPx.js +0 -631
  908. package/dist/web-BUYUdnRH.js +0 -3065
  909. package/dist/web-Dquzwqf4.js +0 -70
  910. package/dist/web-tS8diboh.js +0 -76
  911. package/dist/webhooks-cli-B7Vw3CMz.js +0 -333
  912. package/dist/webhooks-cli-BpZHQlVd.js +0 -328
  913. package/dist/whatsapp-actions-D5HXezjp.js +0 -128
  914. package/dist/whatsapp-actions-DaA291Ya.js +0 -122
  915. package/dist/widearea-dns-DSoaA-eH.js +0 -127
  916. package/dist/workspace-B4ZvVYT9.js +0 -447
  917. package/dist/workspace-B8PA8oxJ.js +0 -449
  918. /package/dist/{account-lookup-0KDSp5Mj.js → account-lookup-BOCzCnir.js} +0 -0
  919. /package/dist/{account-lookup-zvANGr2x.js → account-lookup-DGscKBsr.js} +0 -0
  920. /package/dist/{ansi-D04X81yq.js → ansi-aRwLYlzD.js} +0 -0
  921. /package/dist/{api-BeQMq2iS.js → api-BDff51CS.js} +0 -0
  922. /package/dist/{api-CxX8-gGz.js → api-qWSMsT8m.js} +0 -0
  923. /package/dist/{argv-Co-b9Zsc.js → argv-neJY_Hxm.js} +0 -0
  924. /package/dist/{brew-C4zKZsHX.js → brew-ByYl36Mt.js} +0 -0
  925. /package/dist/{brew-DbSbN8sD.js → brew-CMSQ5Fek.js} +0 -0
  926. /package/dist/{chat-type-CYPyHAj-.js → chat-type-BKe459rw.js} +0 -0
  927. /package/dist/{chat-type-DKb2TlGZ.js → chat-type-DyovJwCt.js} +0 -0
  928. /package/dist/{cleanup-utils-CwQvD73q.js → cleanup-utils-S_P5Jebv.js} +0 -0
  929. /package/dist/{cli-name-BicfmwQX.js → cli-name-CRLBidNP.js} +0 -0
  930. /package/dist/{cli-name-C6rJGl18.js → cli-name-Yv30OygA.js} +0 -0
  931. /package/dist/{cli-utils-BhXbz2UF.js → cli-utils-C5nQDfa6.js} +0 -0
  932. /package/dist/{cli-utils-DZe_rVkZ.js → cli-utils-KcEwAsuZ.js} +0 -0
  933. /package/dist/{client-C61M8zI3.js → client-C7B0uFB0.js} +0 -0
  934. /package/dist/{client-DdpmATKq.js → client-Cd2HNUX0.js} +0 -0
  935. /package/dist/{command-options-C4paWSGf.js → command-options-1bi44p_B.js} +0 -0
  936. /package/dist/{command-options-CA30lfLK.js → command-options-7y5Zrv4M.js} +0 -0
  937. /package/dist/{config-eval-CjGZtLwx.js → config-eval-CJtk3Msr.js} +0 -0
  938. /package/dist/{config-eval-H_wlEYIG.js → config-eval-DQIwdWg7.js} +0 -0
  939. /package/dist/{constants-ChptG3d7.js → constants--3PuQVaS.js} +0 -0
  940. /package/dist/{constants-DY6b-_Wl.js → constants-DNWjlxZ5.js} +0 -0
  941. /package/dist/{credentials-BHWUBHMd.js → credentials-BhnauW0K.js} +0 -0
  942. /package/dist/{credentials-DFsi1_e8.js → credentials-eZcqWNG_.js} +0 -0
  943. /package/dist/{daemon-runtime-CMnbwryP.js → daemon-runtime-99xh1fGv.js} +0 -0
  944. /package/dist/{daemon-runtime-CvqE4ysg.js → daemon-runtime-BOcdJaFy.js} +0 -0
  945. /package/dist/{dangerous-name-matching-BzmiLXmA.js → dangerous-name-matching-YeatnYIA.js} +0 -0
  946. /package/dist/{dangerous-name-matching-DaVRgwer.js → dangerous-name-matching-oVb1EqYT.js} +0 -0
  947. /package/dist/{dangerous-tools-BOLoCRv4.js → dangerous-tools-BMt8-6jE.js} +0 -0
  948. /package/dist/{dangerous-tools-Baq7Q-i6.js → dangerous-tools-CripTfYv.js} +0 -0
  949. /package/dist/{fetch-timeout-DTIN7CGM.js → fetch-timeout-Db3da8yR.js} +0 -0
  950. /package/dist/{fetch-timeout-DoySHqfO.js → fetch-timeout-l_6RdoMw.js} +0 -0
  951. /package/dist/{file-identity-BxlKD8Ys.js → file-identity-Bs9zZOi2.js} +0 -0
  952. /package/dist/{format-duration-CqUERz51.js → format-duration-Bo-Mxi3E.js} +0 -0
  953. /package/dist/{format-duration-Ct-yiwkS.js → format-duration-CfrJ5T8k.js} +0 -0
  954. /package/dist/{format-relative-79_Y1n2Y.js → format-relative-8cNYQsqb.js} +0 -0
  955. /package/dist/{format-relative-CxLpEQOX.js → format-relative-CZOlQ2pA.js} +0 -0
  956. /package/dist/{health-format-B_QRD8Si.js → health-format-WMRp1BbP.js} +0 -0
  957. /package/dist/{heartbeat-wake-LGEgcXjs.js → heartbeat-wake-BtRrOB-t.js} +0 -0
  958. /package/dist/{heartbeat-wake-Y97geucO.js → heartbeat-wake-eRINROYK.js} +0 -0
  959. /package/dist/{help-format-NNm_Ov4H.js → help-format-BEb0SPHF.js} +0 -0
  960. /package/dist/{helpers-BAsMXprO.js → helpers-BJtPtu_2.js} +0 -0
  961. /package/dist/{helpers-DLgbkcEn.js → helpers-Cj6f8SPZ.js} +0 -0
  962. /package/dist/{helpers-R7bU5IBz.js → helpers-ryxLx-aM.js} +0 -0
  963. /package/dist/{host-env-security-szwfmhC4.js → host-env-security-CbiODGvQ.js} +0 -0
  964. /package/dist/{input-provenance-Bn6thJNm.js → input-provenance-CPhdY-0F.js} +0 -0
  965. /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-DUNEQoFM.js} +0 -0
  966. /package/dist/{ip-C9q3Oq20.js → ip-BAhS4rY2.js} +0 -0
  967. /package/dist/{ip-D0zgNmBV.js → ip-BcdPcLiP.js} +0 -0
  968. /package/dist/{is-main-DN8-sNR5.js → is-main-KcWqINzy.js} +0 -0
  969. /package/dist/{json-file-ChO_R9yh.js → json-file-BVvmrQG3.js} +0 -0
  970. /package/dist/{json-file-B7l5-Xhr.js → json-file-Dbg7nZg1.js} +0 -0
  971. /package/dist/{json-files-CmpYSF4G.js → json-files-DSKEdz7x.js} +0 -0
  972. /package/dist/{lanes-ByWMUgrz.js → lanes-Brd-nf-Z.js} +0 -0
  973. /package/dist/{lanes-cHJ5arWg.js → lanes-COs3zODW.js} +0 -0
  974. /package/dist/{links-Bz4V7R_p.js → links-gse8sWn-.js} +0 -0
  975. /package/dist/{location-DBWCGNLq.js → location-D1FM_C63.js} +0 -0
  976. /package/dist/{location-GbZ0bBRU.js → location-LuzkqHGi.js} +0 -0
  977. /package/dist/{logger-DyL5G2DO.js → logger-BMP_j_Lx.js} +0 -0
  978. /package/dist/{logger-BWMPnILd.js → logger-DWbwXLjl.js} +0 -0
  979. /package/dist/{logger-GvipVDfh.js → logger-DXCDb7qu.js} +0 -0
  980. /package/dist/{logging-D8-Kozjc.js → logging-CAgCb3n3.js} +0 -0
  981. /package/dist/{message-channel-uWMAiywE.js → message-channel-D72Bc6Tb.js} +0 -0
  982. /package/dist/{mime-BS3jhcZE.js → mime-Cqg1jjia.js} +0 -0
  983. /package/dist/{mime-Cxh_64P6.js → mime-D4bQLMJL.js} +0 -0
  984. /package/dist/{mutable-allowlist-detectors-DiZDtmlZ.js → mutable-allowlist-detectors-NtI6s4TE.js} +0 -0
  985. /package/dist/{mutable-allowlist-detectors-U5ThQr9V.js → mutable-allowlist-detectors-nAmo9v5u.js} +0 -0
  986. /package/dist/{node-cli-Uf6lAntf.js → node-cli-bNJbha3z.js} +0 -0
  987. /package/dist/{parse-log-line-enq8pduH.js → parse-log-line-BY9Vz72K.js} +0 -0
  988. /package/dist/{parse-log-line-mz9TG6ig.js → parse-log-line-BrrE4onI.js} +0 -0
  989. /package/dist/{parse-timeout-BMP8a0_a.js → parse-timeout-Dfyln-4M.js} +0 -0
  990. /package/dist/{path-guards-CIx4hURU.js → path-guards-D9LU0y9L.js} +0 -0
  991. /package/dist/{path-guards-CrQOUlsq.js → path-guards-crZaTVvq.js} +0 -0
  992. /package/dist/plugin-sdk/{agents → auth}/api-key-rotation.d.ts +0 -0
  993. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/paths.d.ts +0 -0
  994. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/profiles.d.ts +0 -0
  995. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/store.d.ts +0 -0
  996. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/types.d.ts +0 -0
  997. /package/dist/{plugins-allowlist-BbTQ5Z2k.js → plugins-allowlist-CD4oIJNk.js} +0 -0
  998. /package/dist/{plugins-allowlist-C20oaESO.js → plugins-allowlist-CUhk3GDh.js} +0 -0
  999. /package/dist/{polls-B0CCBDeR.js → polls-ChvH1OIW.js} +0 -0
  1000. /package/dist/{polls-CwwHzYBM.js → polls-Dn1C2d1-.js} +0 -0
  1001. /package/dist/{ports-lsof-Wteul3ju.js → ports-lsof-BDQWExpn.js} +0 -0
  1002. /package/dist/{process-scoped-map-CV9kDvfG.js → process-scoped-map-BwUkYFQV.js} +0 -0
  1003. /package/dist/{process-scoped-map-PEvnG75N.js → process-scoped-map-CBWcUvTa.js} +0 -0
  1004. /package/dist/{program-context-jqeI5alP.js → program-context-DtsEOsdM.js} +0 -0
  1005. /package/dist/{progress-C1kUfYL-.js → progress-BjGCAXH7.js} +0 -0
  1006. /package/dist/{prompt-Yn2yClg1.js → prompt-FIISMuNm.js} +0 -0
  1007. /package/dist/{prompt-style-DjEYC_s-.js → prompt-style-DL64_X-p.js} +0 -0
  1008. /package/dist/{provider-utils-3JTMJroG.js → provider-utils-DiLhkKQp.js} +0 -0
  1009. /package/dist/{proxy-DL3MD6-P.js → proxy-DUTF0OYE.js} +0 -0
  1010. /package/dist/{proxy-DpNv2cSV.js → proxy-Dv0sbx6A.js} +0 -0
  1011. /package/dist/{pw-ai-state-CGfLv6nV.js → pw-ai-state-DKhOTqDv.js} +0 -0
  1012. /package/dist/{pw-ai-state-Dynx20hr.js → pw-ai-state-kkp06zyZ.js} +0 -0
  1013. /package/dist/{redact-Dx1Fue21.js → redact-BTeK8lMZ.js} +0 -0
  1014. /package/dist/{redact-identifier-BTIWtaa-.js → redact-identifier-F6t5pklx.js} +0 -0
  1015. /package/dist/{redact-identifier-CAagcfWA.js → redact-identifier-VdOrq-IK.js} +0 -0
  1016. /package/dist/{remoteclaw-root-C2HV2VeC.js → remoteclaw-root-DF8m3X4C.js} +0 -0
  1017. /package/dist/{remoteclaw-root-DybYl8PL.js → remoteclaw-root-rJHOCwzo.js} +0 -0
  1018. /package/dist/{render-CCLsW6Lz.js → render-e7fENCYH.js} +0 -0
  1019. /package/dist/{render-uf6PvGMV.js → render-qcqmrHse.js} +0 -0
  1020. /package/dist/{retry-DnqPAqWp.js → retry-CwZiwLDN.js} +0 -0
  1021. /package/dist/{runtime-DJNp29jv.js → runtime-Ds3E9SqF.js} +0 -0
  1022. /package/dist/{runtime-guard-U-ewY_QH.js → runtime-guard-CdJVmJc0.js} +0 -0
  1023. /package/dist/{secret-equal-BbHdTtqY.js → secret-equal-CDUVxXmp.js} +0 -0
  1024. /package/dist/{secret-equal-CXJEZiWb.js → secret-equal-d3sEnK98.js} +0 -0
  1025. /package/dist/{secure-random-CS2mSdTn.js → secure-random-CJtykx_p.js} +0 -0
  1026. /package/dist/{secure-random-_dzDDlFo.js → secure-random-y6N6Gted.js} +0 -0
  1027. /package/dist/{session-key-5YLnn_qf.js → session-key-BF-9YzxC.js} +0 -0
  1028. /package/dist/{stagger-BXv_apuy.js → stagger-B-_Wnofy.js} +0 -0
  1029. /package/dist/{stagger-MI9gd2rQ.js → stagger-CjkdqPuN.js} +0 -0
  1030. /package/dist/{status-BmtCS3T1.js → status-BFmH9Uge.js} +0 -0
  1031. /package/dist/{status-BrwHRn2B.js → status-BIupzBh9.js} +0 -0
  1032. /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-BNXRYvmY.js} +0 -0
  1033. /package/dist/{strip-inbound-meta-jy3bkUab.js → strip-inbound-meta-BtNFmc6V.js} +0 -0
  1034. /package/dist/{table-C1rdyYl9.js → table-Au5EeKD6.js} +0 -0
  1035. /package/dist/{target-errors-BDpPcwh5.js → target-errors-B6YON-5k.js} +0 -0
  1036. /package/dist/{target-errors-DdIAPcMM.js → target-errors-sPHoHj73.js} +0 -0
  1037. /package/dist/{targets-D-qLBpTA.js → targets-BtGRUQMa.js} +0 -0
  1038. /package/dist/{targets-BMenhVHg.js → targets-D3r6Zgic.js} +0 -0
  1039. /package/dist/{targets-C-2xwh9f.js → targets-DDdPVd12.js} +0 -0
  1040. /package/dist/{targets-UncQvCVs.js → targets-Ds5eT_RZ.js} +0 -0
  1041. /package/dist/{targets-D7PT_rdO.js → targets-DtvPW-B8.js} +0 -0
  1042. /package/dist/{text-format-BQ3z_OXA.js → text-format-CFm4X8Ze.js} +0 -0
  1043. /package/dist/{text-format-oWqzVmah.js → text-format-KHU3KzvQ.js} +0 -0
  1044. /package/dist/{tokens-B-jmvNR9.js → tokens-BGw4xHhW.js} +0 -0
  1045. /package/dist/{usage-BdhBT0Vz.js → usage-BEjWlD9A.js} +0 -0
  1046. /package/dist/{usage-format-C3mNLfhI.js → usage-format-Cx3JveFn.js} +0 -0
  1047. /package/dist/{usage-format-DAaPzr_z.js → usage-format-D-ZaYT_e.js} +0 -0
  1048. /package/dist/{usage-BtQcAnf6.js → usage-o8O_TxA-.js} +0 -0
  1049. /package/dist/{widearea-dns-CsmBVbez.js → widearea-dns-DUDYT3z2.js} +0 -0
  1050. /package/dist/{workspace-BzPeZDew.js → workspace-9__vtmnA.js} +0 -0
  1051. /package/dist/{wsl-B_sPlzWw.js → wsl-BLrG__iS.js} +0 -0
  1052. /package/dist/{wsl-BCnYV9O0.js → wsl-C2dudsWt.js} +0 -0
@@ -1,1687 +0,0 @@
1
- import { Ct as theme, _ as defaultRuntime, a as parseBooleanValue, dt as danger, ft as info, ot as shortenHomePath, qt as resolveStateDir } from "./entry.js";
2
- import { t as formatCliCommand } from "./command-format-CVfo8I5f.js";
3
- import { i as loadConfig } from "./config-FHu9Bn4R.js";
4
- import "./host-env-security-szwfmhC4.js";
5
- import "./inbound-path-policy-sdr5Ji0k.js";
6
- import "./env-vars-7aZqKPhk.js";
7
- import "./agent-scope-C50VuLKh.js";
8
- import "./message-channel-uWMAiywE.js";
9
- import "./call-BbwtB9Y-.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 "./fs-safe-DSwT85uK.js";
17
- import "./errors-DZ199hOo.js";
18
- import { a as resolveExistingPathsWithinRoot, i as DEFAULT_UPLOAD_DIR, t as movePathToTrash } from "./trash-DPi0aCCQ.js";
19
- import { t as formatDocsLink } from "./links-Bz4V7R_p.js";
20
- import { n as inheritOptionFromParent } from "./command-options-C4paWSGf.js";
21
- import "./progress-C1kUfYL-.js";
22
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-Dq44SkOv.js";
23
- import { t as runCommandWithRuntime } from "./cli-utils-BhXbz2UF.js";
24
- import { t as copyToClipboard } from "./clipboard-Dzkx6Q2K.js";
25
- import { t as formatHelpExamples } from "./help-format-NNm_Ov4H.js";
26
- import { fileURLToPath } from "node:url";
27
- import path from "node:path";
28
- import fs from "node:fs";
29
-
30
- //#region src/cli/browser-cli-shared.ts
31
- function normalizeQuery(query) {
32
- if (!query) return;
33
- const out = {};
34
- for (const [key, value] of Object.entries(query)) {
35
- if (value === void 0) continue;
36
- out[key] = String(value);
37
- }
38
- return Object.keys(out).length ? out : void 0;
39
- }
40
- async function callBrowserRequest(opts, params, extra) {
41
- const resolvedTimeoutMs = typeof extra?.timeoutMs === "number" && Number.isFinite(extra.timeoutMs) ? Math.max(1, Math.floor(extra.timeoutMs)) : typeof opts.timeout === "string" ? Number.parseInt(opts.timeout, 10) : void 0;
42
- const resolvedTimeout = typeof resolvedTimeoutMs === "number" && Number.isFinite(resolvedTimeoutMs) ? resolvedTimeoutMs : void 0;
43
- const timeout = typeof resolvedTimeout === "number" ? String(resolvedTimeout) : opts.timeout;
44
- const payload = await callGatewayFromCli("browser.request", {
45
- ...opts,
46
- timeout
47
- }, {
48
- method: params.method,
49
- path: params.path,
50
- query: normalizeQuery(params.query),
51
- body: params.body,
52
- timeoutMs: resolvedTimeout
53
- }, { progress: extra?.progress });
54
- if (payload === void 0) throw new Error("Unexpected browser.request response");
55
- return payload;
56
- }
57
- async function callBrowserResize(opts, params, extra) {
58
- return callBrowserRequest(opts, {
59
- method: "POST",
60
- path: "/act",
61
- query: params.profile ? { profile: params.profile } : void 0,
62
- body: {
63
- kind: "resize",
64
- width: params.width,
65
- height: params.height,
66
- targetId: params.targetId?.trim() || void 0
67
- }
68
- }, extra);
69
- }
70
-
71
- //#endregion
72
- //#region src/cli/browser-cli-actions-input/shared.ts
73
- function resolveBrowserActionContext(cmd, parentOpts) {
74
- const parent = parentOpts(cmd);
75
- return {
76
- parent,
77
- profile: parent?.browserProfile
78
- };
79
- }
80
- async function callBrowserAct(params) {
81
- return await callBrowserRequest(params.parent, {
82
- method: "POST",
83
- path: "/act",
84
- query: params.profile ? { profile: params.profile } : void 0,
85
- body: params.body
86
- }, { timeoutMs: params.timeoutMs ?? 2e4 });
87
- }
88
- function requireRef(ref) {
89
- const refValue = typeof ref === "string" ? ref.trim() : "";
90
- if (!refValue) {
91
- defaultRuntime.error(danger("ref is required"));
92
- defaultRuntime.exit(1);
93
- return null;
94
- }
95
- return refValue;
96
- }
97
- async function readFile(path) {
98
- return await (await import("node:fs/promises")).readFile(path, "utf8");
99
- }
100
- async function readFields(opts) {
101
- const payload = opts.fieldsFile ? await readFile(opts.fieldsFile) : opts.fields ?? "";
102
- if (!payload.trim()) throw new Error("fields are required");
103
- const parsed = JSON.parse(payload);
104
- if (!Array.isArray(parsed)) throw new Error("fields must be an array");
105
- return parsed.map((entry, index) => {
106
- if (!entry || typeof entry !== "object") throw new Error(`fields[${index}] must be an object`);
107
- const rec = entry;
108
- const ref = typeof rec.ref === "string" ? rec.ref.trim() : "";
109
- const type = typeof rec.type === "string" ? rec.type.trim() : "";
110
- if (!ref || !type) throw new Error(`fields[${index}] must include ref and type`);
111
- if (typeof rec.value === "string" || typeof rec.value === "number" || typeof rec.value === "boolean") return {
112
- ref,
113
- type,
114
- value: rec.value
115
- };
116
- if (rec.value === void 0 || rec.value === null) return {
117
- ref,
118
- type
119
- };
120
- throw new Error(`fields[${index}].value must be string, number, boolean, or null`);
121
- });
122
- }
123
-
124
- //#endregion
125
- //#region src/cli/browser-cli-actions-input/register.element.ts
126
- function registerBrowserElementCommands(browser, parentOpts) {
127
- browser.command("click").description("Click an element by ref from snapshot").argument("<ref>", "Ref id from snapshot").option("--target-id <id>", "CDP target id (or unique prefix)").option("--double", "Double click", false).option("--button <left|right|middle>", "Mouse button to use").option("--modifiers <list>", "Comma-separated modifiers (Shift,Alt,Meta)").action(async (ref, opts, cmd) => {
128
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
129
- const refValue = requireRef(ref);
130
- if (!refValue) return;
131
- const modifiers = opts.modifiers ? String(opts.modifiers).split(",").map((v) => v.trim()).filter(Boolean) : void 0;
132
- try {
133
- const result = await callBrowserAct({
134
- parent,
135
- profile,
136
- body: {
137
- kind: "click",
138
- ref: refValue,
139
- targetId: opts.targetId?.trim() || void 0,
140
- doubleClick: Boolean(opts.double),
141
- button: opts.button?.trim() || void 0,
142
- modifiers
143
- }
144
- });
145
- if (parent?.json) {
146
- defaultRuntime.log(JSON.stringify(result, null, 2));
147
- return;
148
- }
149
- const suffix = result.url ? ` on ${result.url}` : "";
150
- defaultRuntime.log(`clicked ref ${refValue}${suffix}`);
151
- } catch (err) {
152
- defaultRuntime.error(danger(String(err)));
153
- defaultRuntime.exit(1);
154
- }
155
- });
156
- browser.command("type").description("Type into an element by ref from snapshot").argument("<ref>", "Ref id from snapshot").argument("<text>", "Text to type").option("--submit", "Press Enter after typing", false).option("--slowly", "Type slowly (human-like)", false).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (ref, text, opts, cmd) => {
157
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
158
- const refValue = requireRef(ref);
159
- if (!refValue) return;
160
- try {
161
- const result = await callBrowserAct({
162
- parent,
163
- profile,
164
- body: {
165
- kind: "type",
166
- ref: refValue,
167
- text,
168
- submit: Boolean(opts.submit),
169
- slowly: Boolean(opts.slowly),
170
- targetId: opts.targetId?.trim() || void 0
171
- }
172
- });
173
- if (parent?.json) {
174
- defaultRuntime.log(JSON.stringify(result, null, 2));
175
- return;
176
- }
177
- defaultRuntime.log(`typed into ref ${refValue}`);
178
- } catch (err) {
179
- defaultRuntime.error(danger(String(err)));
180
- defaultRuntime.exit(1);
181
- }
182
- });
183
- browser.command("press").description("Press a key").argument("<key>", "Key to press (e.g. Enter)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (key, opts, cmd) => {
184
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
185
- try {
186
- const result = await callBrowserAct({
187
- parent,
188
- profile,
189
- body: {
190
- kind: "press",
191
- key,
192
- targetId: opts.targetId?.trim() || void 0
193
- }
194
- });
195
- if (parent?.json) {
196
- defaultRuntime.log(JSON.stringify(result, null, 2));
197
- return;
198
- }
199
- defaultRuntime.log(`pressed ${key}`);
200
- } catch (err) {
201
- defaultRuntime.error(danger(String(err)));
202
- defaultRuntime.exit(1);
203
- }
204
- });
205
- browser.command("hover").description("Hover an element by ai ref").argument("<ref>", "Ref id from snapshot").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (ref, opts, cmd) => {
206
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
207
- try {
208
- const result = await callBrowserAct({
209
- parent,
210
- profile,
211
- body: {
212
- kind: "hover",
213
- ref,
214
- targetId: opts.targetId?.trim() || void 0
215
- }
216
- });
217
- if (parent?.json) {
218
- defaultRuntime.log(JSON.stringify(result, null, 2));
219
- return;
220
- }
221
- defaultRuntime.log(`hovered ref ${ref}`);
222
- } catch (err) {
223
- defaultRuntime.error(danger(String(err)));
224
- defaultRuntime.exit(1);
225
- }
226
- });
227
- browser.command("scrollintoview").description("Scroll an element into view by ref from snapshot").argument("<ref>", "Ref id from snapshot").option("--target-id <id>", "CDP target id (or unique prefix)").option("--timeout-ms <ms>", "How long to wait for scroll (default: 20000)", (v) => Number(v)).action(async (ref, opts, cmd) => {
228
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
229
- const refValue = requireRef(ref);
230
- if (!refValue) return;
231
- try {
232
- const result = await callBrowserAct({
233
- parent,
234
- profile,
235
- body: {
236
- kind: "scrollIntoView",
237
- ref: refValue,
238
- targetId: opts.targetId?.trim() || void 0,
239
- timeoutMs: Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0
240
- },
241
- timeoutMs: Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0
242
- });
243
- if (parent?.json) {
244
- defaultRuntime.log(JSON.stringify(result, null, 2));
245
- return;
246
- }
247
- defaultRuntime.log(`scrolled into view: ${refValue}`);
248
- } catch (err) {
249
- defaultRuntime.error(danger(String(err)));
250
- defaultRuntime.exit(1);
251
- }
252
- });
253
- browser.command("drag").description("Drag from one ref to another").argument("<startRef>", "Start ref id").argument("<endRef>", "End ref id").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (startRef, endRef, opts, cmd) => {
254
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
255
- try {
256
- const result = await callBrowserAct({
257
- parent,
258
- profile,
259
- body: {
260
- kind: "drag",
261
- startRef,
262
- endRef,
263
- targetId: opts.targetId?.trim() || void 0
264
- }
265
- });
266
- if (parent?.json) {
267
- defaultRuntime.log(JSON.stringify(result, null, 2));
268
- return;
269
- }
270
- defaultRuntime.log(`dragged ${startRef} → ${endRef}`);
271
- } catch (err) {
272
- defaultRuntime.error(danger(String(err)));
273
- defaultRuntime.exit(1);
274
- }
275
- });
276
- browser.command("select").description("Select option(s) in a select element").argument("<ref>", "Ref id from snapshot").argument("<values...>", "Option values to select").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (ref, values, opts, cmd) => {
277
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
278
- try {
279
- const result = await callBrowserAct({
280
- parent,
281
- profile,
282
- body: {
283
- kind: "select",
284
- ref,
285
- values,
286
- targetId: opts.targetId?.trim() || void 0
287
- }
288
- });
289
- if (parent?.json) {
290
- defaultRuntime.log(JSON.stringify(result, null, 2));
291
- return;
292
- }
293
- defaultRuntime.log(`selected ${values.join(", ")}`);
294
- } catch (err) {
295
- defaultRuntime.error(danger(String(err)));
296
- defaultRuntime.exit(1);
297
- }
298
- });
299
- }
300
-
301
- //#endregion
302
- //#region src/cli/browser-cli-actions-input/register.files-downloads.ts
303
- async function normalizeUploadPaths(paths) {
304
- const result = await resolveExistingPathsWithinRoot({
305
- rootDir: DEFAULT_UPLOAD_DIR,
306
- requestedPaths: paths,
307
- scopeLabel: `uploads directory (${DEFAULT_UPLOAD_DIR})`
308
- });
309
- if (!result.ok) throw new Error(result.error);
310
- return result.paths;
311
- }
312
- function registerBrowserFilesAndDownloadsCommands(browser, parentOpts) {
313
- const resolveTimeoutAndTarget = (opts) => {
314
- return {
315
- timeoutMs: Number.isFinite(opts.timeoutMs) ? Number(opts.timeoutMs) : void 0,
316
- targetId: typeof opts.targetId === "string" ? opts.targetId.trim() || void 0 : void 0
317
- };
318
- };
319
- const runDownloadCommand = async (cmd, opts, request) => {
320
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
321
- try {
322
- const { timeoutMs, targetId } = resolveTimeoutAndTarget(opts);
323
- const result = await callBrowserRequest(parent, {
324
- method: "POST",
325
- path: request.path,
326
- query: profile ? { profile } : void 0,
327
- body: {
328
- ...request.body,
329
- targetId,
330
- timeoutMs
331
- }
332
- }, { timeoutMs: timeoutMs ?? 2e4 });
333
- if (parent?.json) {
334
- defaultRuntime.log(JSON.stringify(result, null, 2));
335
- return;
336
- }
337
- defaultRuntime.log(`downloaded: ${shortenHomePath(result.download.path)}`);
338
- } catch (err) {
339
- defaultRuntime.error(danger(String(err)));
340
- defaultRuntime.exit(1);
341
- }
342
- };
343
- browser.command("upload").description("Arm file upload for the next file chooser").argument("<paths...>", "File paths to upload (must be within RemoteClaw temp uploads dir, e.g. /tmp/remoteclaw/uploads/file.pdf)").option("--ref <ref>", "Ref id from snapshot to click after arming").option("--input-ref <ref>", "Ref id for <input type=file> to set directly").option("--element <selector>", "CSS selector for <input type=file>").option("--target-id <id>", "CDP target id (or unique prefix)").option("--timeout-ms <ms>", "How long to wait for the next file chooser (default: 120000)", (v) => Number(v)).action(async (paths, opts, cmd) => {
344
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
345
- try {
346
- const normalizedPaths = await normalizeUploadPaths(paths);
347
- const { timeoutMs, targetId } = resolveTimeoutAndTarget(opts);
348
- const result = await callBrowserRequest(parent, {
349
- method: "POST",
350
- path: "/hooks/file-chooser",
351
- query: profile ? { profile } : void 0,
352
- body: {
353
- paths: normalizedPaths,
354
- ref: opts.ref?.trim() || void 0,
355
- inputRef: opts.inputRef?.trim() || void 0,
356
- element: opts.element?.trim() || void 0,
357
- targetId,
358
- timeoutMs
359
- }
360
- }, { timeoutMs: timeoutMs ?? 2e4 });
361
- if (parent?.json) {
362
- defaultRuntime.log(JSON.stringify(result, null, 2));
363
- return;
364
- }
365
- defaultRuntime.log(`upload armed for ${paths.length} file(s)`);
366
- } catch (err) {
367
- defaultRuntime.error(danger(String(err)));
368
- defaultRuntime.exit(1);
369
- }
370
- });
371
- browser.command("waitfordownload").description("Wait for the next download (and save it)").argument("[path]", "Save path within remoteclaw temp downloads dir (default: /tmp/remoteclaw/downloads/...; fallback: os.tmpdir()/remoteclaw/downloads/...)").option("--target-id <id>", "CDP target id (or unique prefix)").option("--timeout-ms <ms>", "How long to wait for the next download (default: 120000)", (v) => Number(v)).action(async (outPath, opts, cmd) => {
372
- await runDownloadCommand(cmd, opts, {
373
- path: "/wait/download",
374
- body: { path: outPath?.trim() || void 0 }
375
- });
376
- });
377
- browser.command("download").description("Click a ref and save the resulting download").argument("<ref>", "Ref id from snapshot to click").argument("<path>", "Save path within remoteclaw temp downloads dir (e.g. report.pdf or /tmp/remoteclaw/downloads/report.pdf)").option("--target-id <id>", "CDP target id (or unique prefix)").option("--timeout-ms <ms>", "How long to wait for the download to start (default: 120000)", (v) => Number(v)).action(async (ref, outPath, opts, cmd) => {
378
- await runDownloadCommand(cmd, opts, {
379
- path: "/download",
380
- body: {
381
- ref,
382
- path: outPath
383
- }
384
- });
385
- });
386
- browser.command("dialog").description("Arm the next modal dialog (alert/confirm/prompt)").option("--accept", "Accept the dialog", false).option("--dismiss", "Dismiss the dialog", false).option("--prompt <text>", "Prompt response text").option("--target-id <id>", "CDP target id (or unique prefix)").option("--timeout-ms <ms>", "How long to wait for the next dialog (default: 120000)", (v) => Number(v)).action(async (opts, cmd) => {
387
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
388
- const accept = opts.accept ? true : opts.dismiss ? false : void 0;
389
- if (accept === void 0) {
390
- defaultRuntime.error(danger("Specify --accept or --dismiss"));
391
- defaultRuntime.exit(1);
392
- return;
393
- }
394
- try {
395
- const { timeoutMs, targetId } = resolveTimeoutAndTarget(opts);
396
- const result = await callBrowserRequest(parent, {
397
- method: "POST",
398
- path: "/hooks/dialog",
399
- query: profile ? { profile } : void 0,
400
- body: {
401
- accept,
402
- promptText: opts.prompt?.trim() || void 0,
403
- targetId,
404
- timeoutMs
405
- }
406
- }, { timeoutMs: timeoutMs ?? 2e4 });
407
- if (parent?.json) {
408
- defaultRuntime.log(JSON.stringify(result, null, 2));
409
- return;
410
- }
411
- defaultRuntime.log("dialog armed");
412
- } catch (err) {
413
- defaultRuntime.error(danger(String(err)));
414
- defaultRuntime.exit(1);
415
- }
416
- });
417
- }
418
-
419
- //#endregion
420
- //#region src/cli/browser-cli-actions-input/register.form-wait-eval.ts
421
- function registerBrowserFormWaitEvalCommands(browser, parentOpts) {
422
- browser.command("fill").description("Fill a form with JSON field descriptors").option("--fields <json>", "JSON array of field objects").option("--fields-file <path>", "Read JSON array from a file").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
423
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
424
- try {
425
- const fields = await readFields({
426
- fields: opts.fields,
427
- fieldsFile: opts.fieldsFile
428
- });
429
- const result = await callBrowserAct({
430
- parent,
431
- profile,
432
- body: {
433
- kind: "fill",
434
- fields,
435
- targetId: opts.targetId?.trim() || void 0
436
- }
437
- });
438
- if (parent?.json) {
439
- defaultRuntime.log(JSON.stringify(result, null, 2));
440
- return;
441
- }
442
- defaultRuntime.log(`filled ${fields.length} field(s)`);
443
- } catch (err) {
444
- defaultRuntime.error(danger(String(err)));
445
- defaultRuntime.exit(1);
446
- }
447
- });
448
- browser.command("wait").description("Wait for time, selector, URL, load state, or JS conditions").argument("[selector]", "CSS selector to wait for (visible)").option("--time <ms>", "Wait for N milliseconds", (v) => Number(v)).option("--text <value>", "Wait for text to appear").option("--text-gone <value>", "Wait for text to disappear").option("--url <pattern>", "Wait for URL (supports globs like **/dash)").option("--load <load|domcontentloaded|networkidle>", "Wait for load state").option("--fn <js>", "Wait for JS condition (passed to waitForFunction)").option("--timeout-ms <ms>", "How long to wait for each condition (default: 20000)", (v) => Number(v)).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (selector, opts, cmd) => {
449
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
450
- try {
451
- const sel = selector?.trim() || void 0;
452
- const load = opts.load === "load" || opts.load === "domcontentloaded" || opts.load === "networkidle" ? opts.load : void 0;
453
- const timeoutMs = Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0;
454
- const result = await callBrowserAct({
455
- parent,
456
- profile,
457
- body: {
458
- kind: "wait",
459
- timeMs: Number.isFinite(opts.time) ? opts.time : void 0,
460
- text: opts.text?.trim() || void 0,
461
- textGone: opts.textGone?.trim() || void 0,
462
- selector: sel,
463
- url: opts.url?.trim() || void 0,
464
- loadState: load,
465
- fn: opts.fn?.trim() || void 0,
466
- targetId: opts.targetId?.trim() || void 0,
467
- timeoutMs
468
- },
469
- timeoutMs
470
- });
471
- if (parent?.json) {
472
- defaultRuntime.log(JSON.stringify(result, null, 2));
473
- return;
474
- }
475
- defaultRuntime.log("wait complete");
476
- } catch (err) {
477
- defaultRuntime.error(danger(String(err)));
478
- defaultRuntime.exit(1);
479
- }
480
- });
481
- browser.command("evaluate").description("Evaluate a function against the page or a ref").option("--fn <code>", "Function source, e.g. (el) => el.textContent").option("--ref <id>", "Ref from snapshot").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
482
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
483
- if (!opts.fn) {
484
- defaultRuntime.error(danger("Missing --fn"));
485
- defaultRuntime.exit(1);
486
- return;
487
- }
488
- try {
489
- const result = await callBrowserAct({
490
- parent,
491
- profile,
492
- body: {
493
- kind: "evaluate",
494
- fn: opts.fn,
495
- ref: opts.ref?.trim() || void 0,
496
- targetId: opts.targetId?.trim() || void 0
497
- }
498
- });
499
- if (parent?.json) {
500
- defaultRuntime.log(JSON.stringify(result, null, 2));
501
- return;
502
- }
503
- defaultRuntime.log(JSON.stringify(result.result ?? null, null, 2));
504
- } catch (err) {
505
- defaultRuntime.error(danger(String(err)));
506
- defaultRuntime.exit(1);
507
- }
508
- });
509
- }
510
-
511
- //#endregion
512
- //#region src/cli/browser-cli-resize.ts
513
- async function runBrowserResizeWithOutput(params) {
514
- const { width, height } = params;
515
- if (!Number.isFinite(width) || !Number.isFinite(height)) {
516
- defaultRuntime.error(danger("width and height must be numbers"));
517
- defaultRuntime.exit(1);
518
- return;
519
- }
520
- const result = await callBrowserResize(params.parent, {
521
- profile: params.profile,
522
- width,
523
- height,
524
- targetId: params.targetId
525
- }, { timeoutMs: params.timeoutMs ?? 2e4 });
526
- if (params.parent?.json) {
527
- defaultRuntime.log(JSON.stringify(result, null, 2));
528
- return;
529
- }
530
- defaultRuntime.log(params.successMessage);
531
- }
532
-
533
- //#endregion
534
- //#region src/cli/browser-cli-actions-input/register.navigation.ts
535
- function registerBrowserNavigationCommands(browser, parentOpts) {
536
- browser.command("navigate").description("Navigate the current tab to a URL").argument("<url>", "URL to navigate to").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (url, opts, cmd) => {
537
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
538
- try {
539
- const result = await callBrowserRequest(parent, {
540
- method: "POST",
541
- path: "/navigate",
542
- query: profile ? { profile } : void 0,
543
- body: {
544
- url,
545
- targetId: opts.targetId?.trim() || void 0
546
- }
547
- }, { timeoutMs: 2e4 });
548
- if (parent?.json) {
549
- defaultRuntime.log(JSON.stringify(result, null, 2));
550
- return;
551
- }
552
- defaultRuntime.log(`navigated to ${result.url ?? url}`);
553
- } catch (err) {
554
- defaultRuntime.error(danger(String(err)));
555
- defaultRuntime.exit(1);
556
- }
557
- });
558
- browser.command("resize").description("Resize the viewport").argument("<width>", "Viewport width", (v) => Number(v)).argument("<height>", "Viewport height", (v) => Number(v)).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (width, height, opts, cmd) => {
559
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
560
- try {
561
- await runBrowserResizeWithOutput({
562
- parent,
563
- profile,
564
- width,
565
- height,
566
- targetId: opts.targetId,
567
- timeoutMs: 2e4,
568
- successMessage: `resized to ${width}x${height}`
569
- });
570
- } catch (err) {
571
- defaultRuntime.error(danger(String(err)));
572
- defaultRuntime.exit(1);
573
- }
574
- });
575
- }
576
-
577
- //#endregion
578
- //#region src/cli/browser-cli-actions-input/register.ts
579
- function registerBrowserActionInputCommands(browser, parentOpts) {
580
- registerBrowserNavigationCommands(browser, parentOpts);
581
- registerBrowserElementCommands(browser, parentOpts);
582
- registerBrowserFilesAndDownloadsCommands(browser, parentOpts);
583
- registerBrowserFormWaitEvalCommands(browser, parentOpts);
584
- }
585
-
586
- //#endregion
587
- //#region src/cli/browser-cli-actions-observe.ts
588
- function runBrowserObserve(action) {
589
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
590
- defaultRuntime.error(danger(String(err)));
591
- defaultRuntime.exit(1);
592
- });
593
- }
594
- function registerBrowserActionObserveCommands(browser, parentOpts) {
595
- browser.command("console").description("Get recent console messages").option("--level <level>", "Filter by level (error, warn, info)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
596
- const parent = parentOpts(cmd);
597
- const profile = parent?.browserProfile;
598
- await runBrowserObserve(async () => {
599
- const result = await callBrowserRequest(parent, {
600
- method: "GET",
601
- path: "/console",
602
- query: {
603
- level: opts.level?.trim() || void 0,
604
- targetId: opts.targetId?.trim() || void 0,
605
- profile
606
- }
607
- }, { timeoutMs: 2e4 });
608
- if (parent?.json) {
609
- defaultRuntime.log(JSON.stringify(result, null, 2));
610
- return;
611
- }
612
- defaultRuntime.log(JSON.stringify(result.messages, null, 2));
613
- });
614
- });
615
- browser.command("pdf").description("Save page as PDF").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
616
- const parent = parentOpts(cmd);
617
- const profile = parent?.browserProfile;
618
- await runBrowserObserve(async () => {
619
- const result = await callBrowserRequest(parent, {
620
- method: "POST",
621
- path: "/pdf",
622
- query: profile ? { profile } : void 0,
623
- body: { targetId: opts.targetId?.trim() || void 0 }
624
- }, { timeoutMs: 2e4 });
625
- if (parent?.json) {
626
- defaultRuntime.log(JSON.stringify(result, null, 2));
627
- return;
628
- }
629
- defaultRuntime.log(`PDF: ${shortenHomePath(result.path)}`);
630
- });
631
- });
632
- browser.command("responsebody").description("Wait for a network response and return its body").argument("<url>", "URL (exact, substring, or glob like **/api)").option("--target-id <id>", "CDP target id (or unique prefix)").option("--timeout-ms <ms>", "How long to wait for the response (default: 20000)", (v) => Number(v)).option("--max-chars <n>", "Max body chars to return (default: 200000)", (v) => Number(v)).action(async (url, opts, cmd) => {
633
- const parent = parentOpts(cmd);
634
- const profile = parent?.browserProfile;
635
- await runBrowserObserve(async () => {
636
- const timeoutMs = Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0;
637
- const maxChars = Number.isFinite(opts.maxChars) ? opts.maxChars : void 0;
638
- const result = await callBrowserRequest(parent, {
639
- method: "POST",
640
- path: "/response/body",
641
- query: profile ? { profile } : void 0,
642
- body: {
643
- url,
644
- targetId: opts.targetId?.trim() || void 0,
645
- timeoutMs,
646
- maxChars
647
- }
648
- }, { timeoutMs: timeoutMs ?? 2e4 });
649
- if (parent?.json) {
650
- defaultRuntime.log(JSON.stringify(result, null, 2));
651
- return;
652
- }
653
- defaultRuntime.log(result.response.body);
654
- });
655
- });
656
- }
657
-
658
- //#endregion
659
- //#region src/cli/browser-cli-debug.ts
660
- function runBrowserDebug(action) {
661
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
662
- defaultRuntime.error(danger(String(err)));
663
- defaultRuntime.exit(1);
664
- });
665
- }
666
- function resolveDebugQuery(params) {
667
- return {
668
- targetId: typeof params.targetId === "string" ? params.targetId.trim() || void 0 : void 0,
669
- filter: typeof params.filter === "string" ? params.filter.trim() || void 0 : void 0,
670
- clear: Boolean(params.clear),
671
- profile: params.profile
672
- };
673
- }
674
- function registerBrowserDebugCommands(browser, parentOpts) {
675
- browser.command("highlight").description("Highlight an element by ref").argument("<ref>", "Ref id from snapshot").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (ref, opts, cmd) => {
676
- const parent = parentOpts(cmd);
677
- const profile = parent?.browserProfile;
678
- await runBrowserDebug(async () => {
679
- const result = await callBrowserRequest(parent, {
680
- method: "POST",
681
- path: "/highlight",
682
- query: profile ? { profile } : void 0,
683
- body: {
684
- ref: ref.trim(),
685
- targetId: opts.targetId?.trim() || void 0
686
- }
687
- }, { timeoutMs: 2e4 });
688
- if (parent?.json) {
689
- defaultRuntime.log(JSON.stringify(result, null, 2));
690
- return;
691
- }
692
- defaultRuntime.log(`highlighted ${ref.trim()}`);
693
- });
694
- });
695
- browser.command("errors").description("Get recent page errors").option("--clear", "Clear stored errors after reading", false).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
696
- const parent = parentOpts(cmd);
697
- const profile = parent?.browserProfile;
698
- await runBrowserDebug(async () => {
699
- const result = await callBrowserRequest(parent, {
700
- method: "GET",
701
- path: "/errors",
702
- query: resolveDebugQuery({
703
- targetId: opts.targetId,
704
- clear: opts.clear,
705
- profile
706
- })
707
- }, { timeoutMs: 2e4 });
708
- if (parent?.json) {
709
- defaultRuntime.log(JSON.stringify(result, null, 2));
710
- return;
711
- }
712
- if (!result.errors.length) {
713
- defaultRuntime.log("No page errors.");
714
- return;
715
- }
716
- defaultRuntime.log(result.errors.map((e) => `${e.timestamp} ${e.name ? `${e.name}: ` : ""}${e.message}`).join("\n"));
717
- });
718
- });
719
- browser.command("requests").description("Get recent network requests (best-effort)").option("--filter <text>", "Only show URLs that contain this substring").option("--clear", "Clear stored requests after reading", false).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
720
- const parent = parentOpts(cmd);
721
- const profile = parent?.browserProfile;
722
- await runBrowserDebug(async () => {
723
- const result = await callBrowserRequest(parent, {
724
- method: "GET",
725
- path: "/requests",
726
- query: resolveDebugQuery({
727
- targetId: opts.targetId,
728
- filter: opts.filter,
729
- clear: opts.clear,
730
- profile
731
- })
732
- }, { timeoutMs: 2e4 });
733
- if (parent?.json) {
734
- defaultRuntime.log(JSON.stringify(result, null, 2));
735
- return;
736
- }
737
- if (!result.requests.length) {
738
- defaultRuntime.log("No requests recorded.");
739
- return;
740
- }
741
- defaultRuntime.log(result.requests.map((r) => {
742
- const status = typeof r.status === "number" ? ` ${r.status}` : "";
743
- const ok = r.ok === true ? " ok" : r.ok === false ? " fail" : "";
744
- const fail = r.failureText ? ` (${r.failureText})` : "";
745
- return `${r.timestamp} ${r.method}${status}${ok} ${r.url}${fail}`;
746
- }).join("\n"));
747
- });
748
- });
749
- const trace = browser.command("trace").description("Record a Playwright trace");
750
- trace.command("start").description("Start trace recording").option("--target-id <id>", "CDP target id (or unique prefix)").option("--no-screenshots", "Disable screenshots").option("--no-snapshots", "Disable snapshots").option("--sources", "Include sources (bigger traces)", false).action(async (opts, cmd) => {
751
- const parent = parentOpts(cmd);
752
- const profile = parent?.browserProfile;
753
- await runBrowserDebug(async () => {
754
- const result = await callBrowserRequest(parent, {
755
- method: "POST",
756
- path: "/trace/start",
757
- query: profile ? { profile } : void 0,
758
- body: {
759
- targetId: opts.targetId?.trim() || void 0,
760
- screenshots: Boolean(opts.screenshots),
761
- snapshots: Boolean(opts.snapshots),
762
- sources: Boolean(opts.sources)
763
- }
764
- }, { timeoutMs: 2e4 });
765
- if (parent?.json) {
766
- defaultRuntime.log(JSON.stringify(result, null, 2));
767
- return;
768
- }
769
- defaultRuntime.log("trace started");
770
- });
771
- });
772
- trace.command("stop").description("Stop trace recording and write a .zip").option("--out <path>", "Output path within remoteclaw temp dir (e.g. trace.zip or /tmp/remoteclaw/trace.zip)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
773
- const parent = parentOpts(cmd);
774
- const profile = parent?.browserProfile;
775
- await runBrowserDebug(async () => {
776
- const result = await callBrowserRequest(parent, {
777
- method: "POST",
778
- path: "/trace/stop",
779
- query: profile ? { profile } : void 0,
780
- body: {
781
- targetId: opts.targetId?.trim() || void 0,
782
- path: opts.out?.trim() || void 0
783
- }
784
- }, { timeoutMs: 2e4 });
785
- if (parent?.json) {
786
- defaultRuntime.log(JSON.stringify(result, null, 2));
787
- return;
788
- }
789
- defaultRuntime.log(`TRACE:${shortenHomePath(result.path)}`);
790
- });
791
- });
792
- }
793
-
794
- //#endregion
795
- //#region src/cli/browser-cli-examples.ts
796
- const browserCoreExamples = [
797
- "remoteclaw browser status",
798
- "remoteclaw browser start",
799
- "remoteclaw browser stop",
800
- "remoteclaw browser tabs",
801
- "remoteclaw browser open https://example.com",
802
- "remoteclaw browser focus abcd1234",
803
- "remoteclaw browser close abcd1234",
804
- "remoteclaw browser screenshot",
805
- "remoteclaw browser screenshot --full-page",
806
- "remoteclaw browser screenshot --ref 12",
807
- "remoteclaw browser snapshot",
808
- "remoteclaw browser snapshot --format aria --limit 200",
809
- "remoteclaw browser snapshot --efficient",
810
- "remoteclaw browser snapshot --labels"
811
- ];
812
- const browserActionExamples = [
813
- "remoteclaw browser navigate https://example.com",
814
- "remoteclaw browser resize 1280 720",
815
- "remoteclaw browser click 12 --double",
816
- "remoteclaw browser type 23 \"hello\" --submit",
817
- "remoteclaw browser press Enter",
818
- "remoteclaw browser hover 44",
819
- "remoteclaw browser drag 10 11",
820
- "remoteclaw browser select 9 OptionA OptionB",
821
- "remoteclaw browser upload /tmp/remoteclaw/uploads/file.pdf",
822
- "remoteclaw browser fill --fields '[{\"ref\":\"1\",\"value\":\"Ada\"}]'",
823
- "remoteclaw browser dialog --accept",
824
- "remoteclaw browser wait --text \"Done\"",
825
- "remoteclaw browser evaluate --fn '(el) => el.textContent' --ref 7",
826
- "remoteclaw browser console --level error",
827
- "remoteclaw browser pdf"
828
- ];
829
-
830
- //#endregion
831
- //#region src/cli/browser-cli-extension.ts
832
- function resolveBundledExtensionRootDir(here = path.dirname(fileURLToPath(import.meta.url))) {
833
- let current = here;
834
- while (true) {
835
- const candidate = path.join(current, "assets", "chrome-extension");
836
- if (hasManifest(candidate)) return candidate;
837
- const parent = path.dirname(current);
838
- if (parent === current) break;
839
- current = parent;
840
- }
841
- return path.resolve(here, "../../assets/chrome-extension");
842
- }
843
- function installedExtensionRootDir() {
844
- return path.join(resolveStateDir(), "browser", "chrome-extension");
845
- }
846
- function hasManifest(dir) {
847
- return fs.existsSync(path.join(dir, "manifest.json"));
848
- }
849
- async function installChromeExtension(opts) {
850
- const src = opts?.sourceDir ?? resolveBundledExtensionRootDir();
851
- if (!hasManifest(src)) throw new Error("Bundled Chrome extension is missing. Reinstall RemoteClaw and try again.");
852
- const stateDir = opts?.stateDir ?? resolveStateDir();
853
- const dest = path.join(stateDir, "browser", "chrome-extension");
854
- fs.mkdirSync(path.dirname(dest), { recursive: true });
855
- if (fs.existsSync(dest)) await movePathToTrash(dest).catch(() => {
856
- const backup = `${dest}.old-${Date.now()}`;
857
- fs.renameSync(dest, backup);
858
- });
859
- await fs.promises.cp(src, dest, { recursive: true });
860
- if (!hasManifest(dest)) throw new Error("Chrome extension install failed (manifest.json missing). Try again.");
861
- return { path: dest };
862
- }
863
- function registerBrowserExtensionCommands(browser, parentOpts) {
864
- const ext = browser.command("extension").description("Chrome extension helpers");
865
- ext.command("install").description("Install the Chrome extension to a stable local path").action(async (_opts, cmd) => {
866
- const parent = parentOpts(cmd);
867
- let installed;
868
- try {
869
- installed = await installChromeExtension();
870
- } catch (err) {
871
- defaultRuntime.error(danger(String(err)));
872
- defaultRuntime.exit(1);
873
- return;
874
- }
875
- if (parent?.json) {
876
- defaultRuntime.log(JSON.stringify({
877
- ok: true,
878
- path: installed.path
879
- }, null, 2));
880
- return;
881
- }
882
- const displayPath = shortenHomePath(installed.path);
883
- defaultRuntime.log(displayPath);
884
- const copied = await copyToClipboard(installed.path).catch(() => false);
885
- defaultRuntime.error(info([
886
- copied ? "Copied to clipboard." : "Copy to clipboard unavailable.",
887
- "Next:",
888
- `- Chrome → chrome://extensions → enable “Developer mode”`,
889
- `- “Load unpacked” → select: ${displayPath}`,
890
- `- Pin “RemoteClaw Browser Relay”, then click it on the tab (badge shows ON)`,
891
- "",
892
- `${theme.muted("Docs:")} ${formatDocsLink("/tools/chrome-extension", "docs.remoteclaw.org/tools/chrome-extension")}`
893
- ].join("\n")));
894
- });
895
- ext.command("path").description("Print the path to the installed Chrome extension (load unpacked)").action(async (_opts, cmd) => {
896
- const parent = parentOpts(cmd);
897
- const dir = installedExtensionRootDir();
898
- if (!hasManifest(dir)) {
899
- defaultRuntime.error(danger([`Chrome extension is not installed. Run: "${formatCliCommand("remoteclaw browser extension install")}"`, `Docs: ${formatDocsLink("/tools/chrome-extension", "docs.remoteclaw.org/tools/chrome-extension")}`].join("\n")));
900
- defaultRuntime.exit(1);
901
- }
902
- if (parent?.json) {
903
- defaultRuntime.log(JSON.stringify({ path: dir }, null, 2));
904
- return;
905
- }
906
- const displayPath = shortenHomePath(dir);
907
- defaultRuntime.log(displayPath);
908
- if (await copyToClipboard(dir).catch(() => false)) defaultRuntime.error(info("Copied to clipboard."));
909
- });
910
- }
911
-
912
- //#endregion
913
- //#region src/cli/browser-cli-inspect.ts
914
- function registerBrowserInspectCommands(browser, parentOpts) {
915
- browser.command("screenshot").description("Capture a screenshot (MEDIA:<path>)").argument("[targetId]", "CDP target id (or unique prefix)").option("--full-page", "Capture full scrollable page", false).option("--ref <ref>", "ARIA ref from ai snapshot").option("--element <selector>", "CSS selector for element screenshot").option("--type <png|jpeg>", "Output type (default: png)", "png").action(async (targetId, opts, cmd) => {
916
- const parent = parentOpts(cmd);
917
- const profile = parent?.browserProfile;
918
- try {
919
- const result = await callBrowserRequest(parent, {
920
- method: "POST",
921
- path: "/screenshot",
922
- query: profile ? { profile } : void 0,
923
- body: {
924
- targetId: targetId?.trim() || void 0,
925
- fullPage: Boolean(opts.fullPage),
926
- ref: opts.ref?.trim() || void 0,
927
- element: opts.element?.trim() || void 0,
928
- type: opts.type === "jpeg" ? "jpeg" : "png"
929
- }
930
- }, { timeoutMs: 2e4 });
931
- if (parent?.json) {
932
- defaultRuntime.log(JSON.stringify(result, null, 2));
933
- return;
934
- }
935
- defaultRuntime.log(`MEDIA:${shortenHomePath(result.path)}`);
936
- } catch (err) {
937
- defaultRuntime.error(danger(String(err)));
938
- defaultRuntime.exit(1);
939
- }
940
- });
941
- browser.command("snapshot").description("Capture a snapshot (default: ai; aria is the accessibility tree)").option("--format <aria|ai>", "Snapshot format (default: ai)", "ai").option("--target-id <id>", "CDP target id (or unique prefix)").option("--limit <n>", "Max nodes (default: 500/800)", (v) => Number(v)).option("--mode <efficient>", "Snapshot preset (efficient)").option("--efficient", "Use the efficient snapshot preset", false).option("--interactive", "Role snapshot: interactive elements only", false).option("--compact", "Role snapshot: compact output", false).option("--depth <n>", "Role snapshot: max depth", (v) => Number(v)).option("--selector <sel>", "Role snapshot: scope to CSS selector").option("--frame <sel>", "Role snapshot: scope to an iframe selector").option("--labels", "Include viewport label overlay screenshot", false).option("--out <path>", "Write snapshot to a file").action(async (opts, cmd) => {
942
- const parent = parentOpts(cmd);
943
- const profile = parent?.browserProfile;
944
- const format = opts.format === "aria" ? "aria" : "ai";
945
- const configMode = format === "ai" && loadConfig().browser?.snapshotDefaults?.mode === "efficient" ? "efficient" : void 0;
946
- const mode = opts.efficient === true || opts.mode === "efficient" ? "efficient" : configMode;
947
- try {
948
- const result = await callBrowserRequest(parent, {
949
- method: "GET",
950
- path: "/snapshot",
951
- query: {
952
- format,
953
- targetId: opts.targetId?.trim() || void 0,
954
- limit: Number.isFinite(opts.limit) ? opts.limit : void 0,
955
- interactive: opts.interactive ? true : void 0,
956
- compact: opts.compact ? true : void 0,
957
- depth: Number.isFinite(opts.depth) ? opts.depth : void 0,
958
- selector: opts.selector?.trim() || void 0,
959
- frame: opts.frame?.trim() || void 0,
960
- labels: opts.labels ? true : void 0,
961
- mode,
962
- profile
963
- }
964
- }, { timeoutMs: 2e4 });
965
- if (opts.out) {
966
- const fs = await import("node:fs/promises");
967
- if (result.format === "ai") await fs.writeFile(opts.out, result.snapshot, "utf8");
968
- else {
969
- const payload = JSON.stringify(result, null, 2);
970
- await fs.writeFile(opts.out, payload, "utf8");
971
- }
972
- if (parent?.json) defaultRuntime.log(JSON.stringify({
973
- ok: true,
974
- out: opts.out,
975
- ...result.format === "ai" && result.imagePath ? { imagePath: result.imagePath } : {}
976
- }, null, 2));
977
- else {
978
- defaultRuntime.log(shortenHomePath(opts.out));
979
- if (result.format === "ai" && result.imagePath) defaultRuntime.log(`MEDIA:${shortenHomePath(result.imagePath)}`);
980
- }
981
- return;
982
- }
983
- if (parent?.json) {
984
- defaultRuntime.log(JSON.stringify(result, null, 2));
985
- return;
986
- }
987
- if (result.format === "ai") {
988
- defaultRuntime.log(result.snapshot);
989
- if (result.imagePath) defaultRuntime.log(`MEDIA:${shortenHomePath(result.imagePath)}`);
990
- return;
991
- }
992
- const nodes = "nodes" in result ? result.nodes : [];
993
- defaultRuntime.log(nodes.map((n) => {
994
- const indent = " ".repeat(Math.min(20, n.depth));
995
- const name = n.name ? ` "${n.name}"` : "";
996
- const value = n.value ? ` = "${n.value}"` : "";
997
- return `${indent}- ${n.role}${name}${value}`;
998
- }).join("\n"));
999
- } catch (err) {
1000
- defaultRuntime.error(danger(String(err)));
1001
- defaultRuntime.exit(1);
1002
- }
1003
- });
1004
- }
1005
-
1006
- //#endregion
1007
- //#region src/cli/browser-cli-manage.ts
1008
- async function fetchBrowserStatus(parent, profile) {
1009
- return await callBrowserRequest(parent, {
1010
- method: "GET",
1011
- path: "/",
1012
- query: profile ? { profile } : void 0
1013
- }, { timeoutMs: 1500 });
1014
- }
1015
- async function runBrowserToggle(parent, params) {
1016
- await callBrowserRequest(parent, {
1017
- method: "POST",
1018
- path: params.path,
1019
- query: params.profile ? { profile: params.profile } : void 0
1020
- }, { timeoutMs: 15e3 });
1021
- const status = await fetchBrowserStatus(parent, params.profile);
1022
- if (parent?.json) {
1023
- defaultRuntime.log(JSON.stringify(status, null, 2));
1024
- return;
1025
- }
1026
- const name = status.profile ?? "remoteclaw";
1027
- defaultRuntime.log(info(`🦞 browser [${name}] running: ${status.running}`));
1028
- }
1029
- function runBrowserCommand$1(action) {
1030
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
1031
- defaultRuntime.error(danger(String(err)));
1032
- defaultRuntime.exit(1);
1033
- });
1034
- }
1035
- function logBrowserTabs(tabs, json) {
1036
- if (json) {
1037
- defaultRuntime.log(JSON.stringify({ tabs }, null, 2));
1038
- return;
1039
- }
1040
- if (tabs.length === 0) {
1041
- defaultRuntime.log("No tabs (browser closed or no targets).");
1042
- return;
1043
- }
1044
- defaultRuntime.log(tabs.map((t, i) => `${i + 1}. ${t.title || "(untitled)"}\n ${t.url}\n id: ${t.targetId}`).join("\n"));
1045
- }
1046
- function registerBrowserManageCommands(browser, parentOpts) {
1047
- browser.command("status").description("Show browser status").action(async (_opts, cmd) => {
1048
- const parent = parentOpts(cmd);
1049
- await runBrowserCommand$1(async () => {
1050
- const status = await fetchBrowserStatus(parent, parent?.browserProfile);
1051
- if (parent?.json) {
1052
- defaultRuntime.log(JSON.stringify(status, null, 2));
1053
- return;
1054
- }
1055
- const detectedPath = status.detectedExecutablePath ?? status.executablePath;
1056
- const detectedDisplay = detectedPath ? shortenHomePath(detectedPath) : "auto";
1057
- defaultRuntime.log([
1058
- `profile: ${status.profile ?? "remoteclaw"}`,
1059
- `enabled: ${status.enabled}`,
1060
- `running: ${status.running}`,
1061
- `cdpPort: ${status.cdpPort}`,
1062
- `cdpUrl: ${status.cdpUrl ?? `http://127.0.0.1:${status.cdpPort}`}`,
1063
- `browser: ${status.chosenBrowser ?? "unknown"}`,
1064
- `detectedBrowser: ${status.detectedBrowser ?? "unknown"}`,
1065
- `detectedPath: ${detectedDisplay}`,
1066
- `profileColor: ${status.color}`,
1067
- ...status.detectError ? [`detectError: ${status.detectError}`] : []
1068
- ].join("\n"));
1069
- });
1070
- });
1071
- browser.command("start").description("Start the browser (no-op if already running)").action(async (_opts, cmd) => {
1072
- const parent = parentOpts(cmd);
1073
- const profile = parent?.browserProfile;
1074
- await runBrowserCommand$1(async () => {
1075
- await runBrowserToggle(parent, {
1076
- profile,
1077
- path: "/start"
1078
- });
1079
- });
1080
- });
1081
- browser.command("stop").description("Stop the browser (best-effort)").action(async (_opts, cmd) => {
1082
- const parent = parentOpts(cmd);
1083
- const profile = parent?.browserProfile;
1084
- await runBrowserCommand$1(async () => {
1085
- await runBrowserToggle(parent, {
1086
- profile,
1087
- path: "/stop"
1088
- });
1089
- });
1090
- });
1091
- browser.command("reset-profile").description("Reset browser profile (moves it to Trash)").action(async (_opts, cmd) => {
1092
- const parent = parentOpts(cmd);
1093
- const profile = parent?.browserProfile;
1094
- await runBrowserCommand$1(async () => {
1095
- const result = await callBrowserRequest(parent, {
1096
- method: "POST",
1097
- path: "/reset-profile",
1098
- query: profile ? { profile } : void 0
1099
- }, { timeoutMs: 2e4 });
1100
- if (parent?.json) {
1101
- defaultRuntime.log(JSON.stringify(result, null, 2));
1102
- return;
1103
- }
1104
- if (!result.moved) {
1105
- defaultRuntime.log(info(`🦞 browser profile already missing.`));
1106
- return;
1107
- }
1108
- const dest = result.to ?? result.from;
1109
- defaultRuntime.log(info(`🦞 browser profile moved to Trash (${dest})`));
1110
- });
1111
- });
1112
- browser.command("tabs").description("List open tabs").action(async (_opts, cmd) => {
1113
- const parent = parentOpts(cmd);
1114
- const profile = parent?.browserProfile;
1115
- await runBrowserCommand$1(async () => {
1116
- logBrowserTabs((await callBrowserRequest(parent, {
1117
- method: "GET",
1118
- path: "/tabs",
1119
- query: profile ? { profile } : void 0
1120
- }, { timeoutMs: 3e3 })).tabs ?? [], parent?.json);
1121
- });
1122
- });
1123
- const tab = browser.command("tab").description("Tab shortcuts (index-based)").action(async (_opts, cmd) => {
1124
- const parent = parentOpts(cmd);
1125
- const profile = parent?.browserProfile;
1126
- await runBrowserCommand$1(async () => {
1127
- logBrowserTabs((await callBrowserRequest(parent, {
1128
- method: "POST",
1129
- path: "/tabs/action",
1130
- query: profile ? { profile } : void 0,
1131
- body: { action: "list" }
1132
- }, { timeoutMs: 1e4 })).tabs ?? [], parent?.json);
1133
- });
1134
- });
1135
- tab.command("new").description("Open a new tab (about:blank)").action(async (_opts, cmd) => {
1136
- const parent = parentOpts(cmd);
1137
- const profile = parent?.browserProfile;
1138
- await runBrowserCommand$1(async () => {
1139
- const result = await callBrowserRequest(parent, {
1140
- method: "POST",
1141
- path: "/tabs/action",
1142
- query: profile ? { profile } : void 0,
1143
- body: { action: "new" }
1144
- }, { timeoutMs: 1e4 });
1145
- if (parent?.json) {
1146
- defaultRuntime.log(JSON.stringify(result, null, 2));
1147
- return;
1148
- }
1149
- defaultRuntime.log("opened new tab");
1150
- });
1151
- });
1152
- tab.command("select").description("Focus tab by index (1-based)").argument("<index>", "Tab index (1-based)", (v) => Number(v)).action(async (index, _opts, cmd) => {
1153
- const parent = parentOpts(cmd);
1154
- const profile = parent?.browserProfile;
1155
- if (!Number.isFinite(index) || index < 1) {
1156
- defaultRuntime.error(danger("index must be a positive number"));
1157
- defaultRuntime.exit(1);
1158
- return;
1159
- }
1160
- await runBrowserCommand$1(async () => {
1161
- const result = await callBrowserRequest(parent, {
1162
- method: "POST",
1163
- path: "/tabs/action",
1164
- query: profile ? { profile } : void 0,
1165
- body: {
1166
- action: "select",
1167
- index: Math.floor(index) - 1
1168
- }
1169
- }, { timeoutMs: 1e4 });
1170
- if (parent?.json) {
1171
- defaultRuntime.log(JSON.stringify(result, null, 2));
1172
- return;
1173
- }
1174
- defaultRuntime.log(`selected tab ${Math.floor(index)}`);
1175
- });
1176
- });
1177
- tab.command("close").description("Close tab by index (1-based); default: first tab").argument("[index]", "Tab index (1-based)", (v) => Number(v)).action(async (index, _opts, cmd) => {
1178
- const parent = parentOpts(cmd);
1179
- const profile = parent?.browserProfile;
1180
- const idx = typeof index === "number" && Number.isFinite(index) ? Math.floor(index) - 1 : void 0;
1181
- if (typeof idx === "number" && idx < 0) {
1182
- defaultRuntime.error(danger("index must be >= 1"));
1183
- defaultRuntime.exit(1);
1184
- return;
1185
- }
1186
- await runBrowserCommand$1(async () => {
1187
- const result = await callBrowserRequest(parent, {
1188
- method: "POST",
1189
- path: "/tabs/action",
1190
- query: profile ? { profile } : void 0,
1191
- body: {
1192
- action: "close",
1193
- index: idx
1194
- }
1195
- }, { timeoutMs: 1e4 });
1196
- if (parent?.json) {
1197
- defaultRuntime.log(JSON.stringify(result, null, 2));
1198
- return;
1199
- }
1200
- defaultRuntime.log("closed tab");
1201
- });
1202
- });
1203
- browser.command("open").description("Open a URL in a new tab").argument("<url>", "URL to open").action(async (url, _opts, cmd) => {
1204
- const parent = parentOpts(cmd);
1205
- const profile = parent?.browserProfile;
1206
- await runBrowserCommand$1(async () => {
1207
- const tab = await callBrowserRequest(parent, {
1208
- method: "POST",
1209
- path: "/tabs/open",
1210
- query: profile ? { profile } : void 0,
1211
- body: { url }
1212
- }, { timeoutMs: 15e3 });
1213
- if (parent?.json) {
1214
- defaultRuntime.log(JSON.stringify(tab, null, 2));
1215
- return;
1216
- }
1217
- defaultRuntime.log(`opened: ${tab.url}\nid: ${tab.targetId}`);
1218
- });
1219
- });
1220
- browser.command("focus").description("Focus a tab by target id (or unique prefix)").argument("<targetId>", "Target id or unique prefix").action(async (targetId, _opts, cmd) => {
1221
- const parent = parentOpts(cmd);
1222
- const profile = parent?.browserProfile;
1223
- await runBrowserCommand$1(async () => {
1224
- await callBrowserRequest(parent, {
1225
- method: "POST",
1226
- path: "/tabs/focus",
1227
- query: profile ? { profile } : void 0,
1228
- body: { targetId }
1229
- }, { timeoutMs: 5e3 });
1230
- if (parent?.json) {
1231
- defaultRuntime.log(JSON.stringify({ ok: true }, null, 2));
1232
- return;
1233
- }
1234
- defaultRuntime.log(`focused tab ${targetId}`);
1235
- });
1236
- });
1237
- browser.command("close").description("Close a tab (target id optional)").argument("[targetId]", "Target id or unique prefix (optional)").action(async (targetId, _opts, cmd) => {
1238
- const parent = parentOpts(cmd);
1239
- const profile = parent?.browserProfile;
1240
- await runBrowserCommand$1(async () => {
1241
- if (targetId?.trim()) await callBrowserRequest(parent, {
1242
- method: "DELETE",
1243
- path: `/tabs/${encodeURIComponent(targetId.trim())}`,
1244
- query: profile ? { profile } : void 0
1245
- }, { timeoutMs: 5e3 });
1246
- else await callBrowserRequest(parent, {
1247
- method: "POST",
1248
- path: "/act",
1249
- query: profile ? { profile } : void 0,
1250
- body: { kind: "close" }
1251
- }, { timeoutMs: 2e4 });
1252
- if (parent?.json) {
1253
- defaultRuntime.log(JSON.stringify({ ok: true }, null, 2));
1254
- return;
1255
- }
1256
- defaultRuntime.log("closed tab");
1257
- });
1258
- });
1259
- browser.command("profiles").description("List all browser profiles").action(async (_opts, cmd) => {
1260
- const parent = parentOpts(cmd);
1261
- await runBrowserCommand$1(async () => {
1262
- const profiles = (await callBrowserRequest(parent, {
1263
- method: "GET",
1264
- path: "/profiles"
1265
- }, { timeoutMs: 3e3 })).profiles ?? [];
1266
- if (parent?.json) {
1267
- defaultRuntime.log(JSON.stringify({ profiles }, null, 2));
1268
- return;
1269
- }
1270
- if (profiles.length === 0) {
1271
- defaultRuntime.log("No profiles configured.");
1272
- return;
1273
- }
1274
- defaultRuntime.log(profiles.map((p) => {
1275
- const status = p.running ? "running" : "stopped";
1276
- const tabs = p.running ? ` (${p.tabCount} tabs)` : "";
1277
- const def = p.isDefault ? " [default]" : "";
1278
- const loc = p.isRemote ? `cdpUrl: ${p.cdpUrl}` : `port: ${p.cdpPort}`;
1279
- const remote = p.isRemote ? " [remote]" : "";
1280
- return `${p.name}: ${status}${tabs}${def}${remote}\n ${loc}, color: ${p.color}`;
1281
- }).join("\n"));
1282
- });
1283
- });
1284
- browser.command("create-profile").description("Create a new browser profile").requiredOption("--name <name>", "Profile name (lowercase, numbers, hyphens)").option("--color <hex>", "Profile color (hex format, e.g. #0066CC)").option("--cdp-url <url>", "CDP URL for remote Chrome (http/https)").option("--driver <driver>", "Profile driver (remoteclaw|extension). Default: remoteclaw").action(async (opts, cmd) => {
1285
- const parent = parentOpts(cmd);
1286
- await runBrowserCommand$1(async () => {
1287
- const result = await callBrowserRequest(parent, {
1288
- method: "POST",
1289
- path: "/profiles/create",
1290
- body: {
1291
- name: opts.name,
1292
- color: opts.color,
1293
- cdpUrl: opts.cdpUrl,
1294
- driver: opts.driver === "extension" ? "extension" : void 0
1295
- }
1296
- }, { timeoutMs: 1e4 });
1297
- if (parent?.json) {
1298
- defaultRuntime.log(JSON.stringify(result, null, 2));
1299
- return;
1300
- }
1301
- const loc = result.isRemote ? ` cdpUrl: ${result.cdpUrl}` : ` port: ${result.cdpPort}`;
1302
- defaultRuntime.log(info(`🦞 Created profile "${result.profile}"\n${loc}\n color: ${result.color}${opts.driver === "extension" ? "\n driver: extension" : ""}`));
1303
- });
1304
- });
1305
- browser.command("delete-profile").description("Delete a browser profile").requiredOption("--name <name>", "Profile name to delete").action(async (opts, cmd) => {
1306
- const parent = parentOpts(cmd);
1307
- await runBrowserCommand$1(async () => {
1308
- const result = await callBrowserRequest(parent, {
1309
- method: "DELETE",
1310
- path: `/profiles/${encodeURIComponent(opts.name)}`
1311
- }, { timeoutMs: 2e4 });
1312
- if (parent?.json) {
1313
- defaultRuntime.log(JSON.stringify(result, null, 2));
1314
- return;
1315
- }
1316
- const msg = result.deleted ? `🦞 Deleted profile "${result.profile}" (user data removed)` : `🦞 Deleted profile "${result.profile}" (no user data found)`;
1317
- defaultRuntime.log(info(msg));
1318
- });
1319
- });
1320
- }
1321
-
1322
- //#endregion
1323
- //#region src/cli/browser-cli-state.cookies-storage.ts
1324
- function resolveUrl(opts, command) {
1325
- if (typeof opts.url === "string" && opts.url.trim()) return opts.url.trim();
1326
- const inherited = inheritOptionFromParent(command, "url");
1327
- if (typeof inherited === "string" && inherited.trim()) return inherited.trim();
1328
- }
1329
- function resolveTargetId(rawTargetId, command) {
1330
- const local = typeof rawTargetId === "string" ? rawTargetId.trim() : "";
1331
- if (local) return local;
1332
- const inherited = inheritOptionFromParent(command, "targetId");
1333
- if (typeof inherited !== "string") return;
1334
- const trimmed = inherited.trim();
1335
- return trimmed ? trimmed : void 0;
1336
- }
1337
- function registerBrowserCookiesAndStorageCommands(browser, parentOpts) {
1338
- const cookies = browser.command("cookies").description("Read/write cookies");
1339
- cookies.option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
1340
- const parent = parentOpts(cmd);
1341
- const profile = parent?.browserProfile;
1342
- const targetId = resolveTargetId(opts.targetId, cmd);
1343
- try {
1344
- const result = await callBrowserRequest(parent, {
1345
- method: "GET",
1346
- path: "/cookies",
1347
- query: {
1348
- targetId,
1349
- profile
1350
- }
1351
- }, { timeoutMs: 2e4 });
1352
- if (parent?.json) {
1353
- defaultRuntime.log(JSON.stringify(result, null, 2));
1354
- return;
1355
- }
1356
- defaultRuntime.log(JSON.stringify(result.cookies ?? [], null, 2));
1357
- } catch (err) {
1358
- defaultRuntime.error(danger(String(err)));
1359
- defaultRuntime.exit(1);
1360
- }
1361
- });
1362
- cookies.command("set").description("Set a cookie (requires --url or domain+path)").argument("<name>", "Cookie name").argument("<value>", "Cookie value").option("--url <url>", "Cookie URL scope (recommended)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (name, value, opts, cmd) => {
1363
- const parent = parentOpts(cmd);
1364
- const profile = parent?.browserProfile;
1365
- const targetId = resolveTargetId(opts.targetId, cmd);
1366
- const url = resolveUrl(opts, cmd);
1367
- if (!url) {
1368
- defaultRuntime.error(danger("Missing required --url option for cookies set"));
1369
- defaultRuntime.exit(1);
1370
- return;
1371
- }
1372
- try {
1373
- const result = await callBrowserRequest(parent, {
1374
- method: "POST",
1375
- path: "/cookies/set",
1376
- query: profile ? { profile } : void 0,
1377
- body: {
1378
- targetId,
1379
- cookie: {
1380
- name,
1381
- value,
1382
- url
1383
- }
1384
- }
1385
- }, { timeoutMs: 2e4 });
1386
- if (parent?.json) {
1387
- defaultRuntime.log(JSON.stringify(result, null, 2));
1388
- return;
1389
- }
1390
- defaultRuntime.log(`cookie set: ${name}`);
1391
- } catch (err) {
1392
- defaultRuntime.error(danger(String(err)));
1393
- defaultRuntime.exit(1);
1394
- }
1395
- });
1396
- cookies.command("clear").description("Clear all cookies").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
1397
- const parent = parentOpts(cmd);
1398
- const profile = parent?.browserProfile;
1399
- const targetId = resolveTargetId(opts.targetId, cmd);
1400
- try {
1401
- const result = await callBrowserRequest(parent, {
1402
- method: "POST",
1403
- path: "/cookies/clear",
1404
- query: profile ? { profile } : void 0,
1405
- body: { targetId }
1406
- }, { timeoutMs: 2e4 });
1407
- if (parent?.json) {
1408
- defaultRuntime.log(JSON.stringify(result, null, 2));
1409
- return;
1410
- }
1411
- defaultRuntime.log("cookies cleared");
1412
- } catch (err) {
1413
- defaultRuntime.error(danger(String(err)));
1414
- defaultRuntime.exit(1);
1415
- }
1416
- });
1417
- const storage = browser.command("storage").description("Read/write localStorage/sessionStorage");
1418
- function registerStorageKind(kind) {
1419
- const cmd = storage.command(kind).description(`${kind}Storage commands`);
1420
- cmd.command("get").description(`Get ${kind}Storage (all keys or one key)`).argument("[key]", "Key (optional)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (key, opts, cmd2) => {
1421
- const parent = parentOpts(cmd2);
1422
- const profile = parent?.browserProfile;
1423
- const targetId = resolveTargetId(opts.targetId, cmd2);
1424
- try {
1425
- const result = await callBrowserRequest(parent, {
1426
- method: "GET",
1427
- path: `/storage/${kind}`,
1428
- query: {
1429
- key: key?.trim() || void 0,
1430
- targetId,
1431
- profile
1432
- }
1433
- }, { timeoutMs: 2e4 });
1434
- if (parent?.json) {
1435
- defaultRuntime.log(JSON.stringify(result, null, 2));
1436
- return;
1437
- }
1438
- defaultRuntime.log(JSON.stringify(result.values ?? {}, null, 2));
1439
- } catch (err) {
1440
- defaultRuntime.error(danger(String(err)));
1441
- defaultRuntime.exit(1);
1442
- }
1443
- });
1444
- cmd.command("set").description(`Set a ${kind}Storage key`).argument("<key>", "Key").argument("<value>", "Value").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (key, value, opts, cmd2) => {
1445
- const parent = parentOpts(cmd2);
1446
- const profile = parent?.browserProfile;
1447
- const targetId = resolveTargetId(opts.targetId, cmd2);
1448
- try {
1449
- const result = await callBrowserRequest(parent, {
1450
- method: "POST",
1451
- path: `/storage/${kind}/set`,
1452
- query: profile ? { profile } : void 0,
1453
- body: {
1454
- key,
1455
- value,
1456
- targetId
1457
- }
1458
- }, { timeoutMs: 2e4 });
1459
- if (parent?.json) {
1460
- defaultRuntime.log(JSON.stringify(result, null, 2));
1461
- return;
1462
- }
1463
- defaultRuntime.log(`${kind}Storage set: ${key}`);
1464
- } catch (err) {
1465
- defaultRuntime.error(danger(String(err)));
1466
- defaultRuntime.exit(1);
1467
- }
1468
- });
1469
- cmd.command("clear").description(`Clear all ${kind}Storage keys`).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd2) => {
1470
- const parent = parentOpts(cmd2);
1471
- const profile = parent?.browserProfile;
1472
- const targetId = resolveTargetId(opts.targetId, cmd2);
1473
- try {
1474
- const result = await callBrowserRequest(parent, {
1475
- method: "POST",
1476
- path: `/storage/${kind}/clear`,
1477
- query: profile ? { profile } : void 0,
1478
- body: { targetId }
1479
- }, { timeoutMs: 2e4 });
1480
- if (parent?.json) {
1481
- defaultRuntime.log(JSON.stringify(result, null, 2));
1482
- return;
1483
- }
1484
- defaultRuntime.log(`${kind}Storage cleared`);
1485
- } catch (err) {
1486
- defaultRuntime.error(danger(String(err)));
1487
- defaultRuntime.exit(1);
1488
- }
1489
- });
1490
- }
1491
- registerStorageKind("local");
1492
- registerStorageKind("session");
1493
- }
1494
-
1495
- //#endregion
1496
- //#region src/cli/browser-cli-state.ts
1497
- function parseOnOff(raw) {
1498
- const parsed = parseBooleanValue(raw);
1499
- return parsed === void 0 ? null : parsed;
1500
- }
1501
- function runBrowserCommand(action) {
1502
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
1503
- defaultRuntime.error(danger(String(err)));
1504
- defaultRuntime.exit(1);
1505
- });
1506
- }
1507
- async function runBrowserSetRequest(params) {
1508
- await runBrowserCommand(async () => {
1509
- const profile = params.parent?.browserProfile;
1510
- const result = await callBrowserRequest(params.parent, {
1511
- method: "POST",
1512
- path: params.path,
1513
- query: profile ? { profile } : void 0,
1514
- body: params.body
1515
- }, { timeoutMs: 2e4 });
1516
- if (params.parent?.json) {
1517
- defaultRuntime.log(JSON.stringify(result, null, 2));
1518
- return;
1519
- }
1520
- defaultRuntime.log(params.successMessage);
1521
- });
1522
- }
1523
- function registerBrowserStateCommands(browser, parentOpts) {
1524
- registerBrowserCookiesAndStorageCommands(browser, parentOpts);
1525
- const set = browser.command("set").description("Browser environment settings");
1526
- set.command("viewport").description("Set viewport size (alias for resize)").argument("<width>", "Viewport width", (v) => Number(v)).argument("<height>", "Viewport height", (v) => Number(v)).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (width, height, opts, cmd) => {
1527
- const parent = parentOpts(cmd);
1528
- const profile = parent?.browserProfile;
1529
- await runBrowserCommand(async () => {
1530
- await runBrowserResizeWithOutput({
1531
- parent,
1532
- profile,
1533
- width,
1534
- height,
1535
- targetId: opts.targetId,
1536
- timeoutMs: 2e4,
1537
- successMessage: `viewport set: ${width}x${height}`
1538
- });
1539
- });
1540
- });
1541
- set.command("offline").description("Toggle offline mode").argument("<on|off>", "on/off").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (value, opts, cmd) => {
1542
- const parent = parentOpts(cmd);
1543
- const offline = parseOnOff(value);
1544
- if (offline === null) {
1545
- defaultRuntime.error(danger("Expected on|off"));
1546
- defaultRuntime.exit(1);
1547
- return;
1548
- }
1549
- await runBrowserSetRequest({
1550
- parent,
1551
- path: "/set/offline",
1552
- body: {
1553
- offline,
1554
- targetId: opts.targetId?.trim() || void 0
1555
- },
1556
- successMessage: `offline: ${offline}`
1557
- });
1558
- });
1559
- set.command("headers").description("Set extra HTTP headers (JSON object)").argument("[headersJson]", "JSON object of headers (alternative to --headers-json)").option("--headers-json <json>", "JSON object of headers").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (headersJson, opts, cmd) => {
1560
- const parent = parentOpts(cmd);
1561
- await runBrowserCommand(async () => {
1562
- const headersJsonValue = typeof opts.headersJson === "string" && opts.headersJson.trim() || (headersJson?.trim() ? headersJson.trim() : void 0);
1563
- if (!headersJsonValue) throw new Error("Missing headers JSON (pass --headers-json or positional JSON argument)");
1564
- const parsed = JSON.parse(String(headersJsonValue));
1565
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("Headers JSON must be a JSON object");
1566
- const headers = {};
1567
- for (const [k, v] of Object.entries(parsed)) if (typeof v === "string") headers[k] = v;
1568
- const profile = parent?.browserProfile;
1569
- const result = await callBrowserRequest(parent, {
1570
- method: "POST",
1571
- path: "/set/headers",
1572
- query: profile ? { profile } : void 0,
1573
- body: {
1574
- headers,
1575
- targetId: opts.targetId?.trim() || void 0
1576
- }
1577
- }, { timeoutMs: 2e4 });
1578
- if (parent?.json) {
1579
- defaultRuntime.log(JSON.stringify(result, null, 2));
1580
- return;
1581
- }
1582
- defaultRuntime.log("headers set");
1583
- });
1584
- });
1585
- set.command("credentials").description("Set HTTP basic auth credentials").option("--clear", "Clear credentials", false).argument("[username]", "Username").argument("[password]", "Password").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (username, password, opts, cmd) => {
1586
- await runBrowserSetRequest({
1587
- parent: parentOpts(cmd),
1588
- path: "/set/credentials",
1589
- body: {
1590
- username: username?.trim() || void 0,
1591
- password,
1592
- clear: Boolean(opts.clear),
1593
- targetId: opts.targetId?.trim() || void 0
1594
- },
1595
- successMessage: opts.clear ? "credentials cleared" : "credentials set"
1596
- });
1597
- });
1598
- set.command("geo").description("Set geolocation (and grant permission)").option("--clear", "Clear geolocation + permissions", false).argument("[latitude]", "Latitude", (v) => Number(v)).argument("[longitude]", "Longitude", (v) => Number(v)).option("--accuracy <m>", "Accuracy in meters", (v) => Number(v)).option("--origin <origin>", "Origin to grant permissions for").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (latitude, longitude, opts, cmd) => {
1599
- await runBrowserSetRequest({
1600
- parent: parentOpts(cmd),
1601
- path: "/set/geolocation",
1602
- body: {
1603
- latitude: Number.isFinite(latitude) ? latitude : void 0,
1604
- longitude: Number.isFinite(longitude) ? longitude : void 0,
1605
- accuracy: Number.isFinite(opts.accuracy) ? opts.accuracy : void 0,
1606
- origin: opts.origin?.trim() || void 0,
1607
- clear: Boolean(opts.clear),
1608
- targetId: opts.targetId?.trim() || void 0
1609
- },
1610
- successMessage: opts.clear ? "geolocation cleared" : "geolocation set"
1611
- });
1612
- });
1613
- set.command("media").description("Emulate prefers-color-scheme").argument("<dark|light|none>", "dark/light/none").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (value, opts, cmd) => {
1614
- const parent = parentOpts(cmd);
1615
- const v = value.trim().toLowerCase();
1616
- const colorScheme = v === "dark" ? "dark" : v === "light" ? "light" : v === "none" ? "none" : null;
1617
- if (!colorScheme) {
1618
- defaultRuntime.error(danger("Expected dark|light|none"));
1619
- defaultRuntime.exit(1);
1620
- return;
1621
- }
1622
- await runBrowserSetRequest({
1623
- parent,
1624
- path: "/set/media",
1625
- body: {
1626
- colorScheme,
1627
- targetId: opts.targetId?.trim() || void 0
1628
- },
1629
- successMessage: `media colorScheme: ${colorScheme}`
1630
- });
1631
- });
1632
- set.command("timezone").description("Override timezone (CDP)").argument("<timezoneId>", "Timezone ID (e.g. America/New_York)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (timezoneId, opts, cmd) => {
1633
- await runBrowserSetRequest({
1634
- parent: parentOpts(cmd),
1635
- path: "/set/timezone",
1636
- body: {
1637
- timezoneId,
1638
- targetId: opts.targetId?.trim() || void 0
1639
- },
1640
- successMessage: `timezone: ${timezoneId}`
1641
- });
1642
- });
1643
- set.command("locale").description("Override locale (CDP)").argument("<locale>", "Locale (e.g. en-US)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (locale, opts, cmd) => {
1644
- await runBrowserSetRequest({
1645
- parent: parentOpts(cmd),
1646
- path: "/set/locale",
1647
- body: {
1648
- locale,
1649
- targetId: opts.targetId?.trim() || void 0
1650
- },
1651
- successMessage: `locale: ${locale}`
1652
- });
1653
- });
1654
- set.command("device").description("Apply a Playwright device descriptor (e.g. \"iPhone 14\")").argument("<name>", "Device name (Playwright devices)").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (name, opts, cmd) => {
1655
- await runBrowserSetRequest({
1656
- parent: parentOpts(cmd),
1657
- path: "/set/device",
1658
- body: {
1659
- name,
1660
- targetId: opts.targetId?.trim() || void 0
1661
- },
1662
- successMessage: `device: ${name}`
1663
- });
1664
- });
1665
- }
1666
-
1667
- //#endregion
1668
- //#region src/cli/browser-cli.ts
1669
- function registerBrowserCli(program) {
1670
- const browser = program.command("browser").description("Manage RemoteClaw's dedicated browser (Chrome/Chromium)").option("--browser-profile <name>", "Browser profile name (default from config)").option("--json", "Output machine-readable JSON", false).addHelpText("after", () => `\n${theme.heading("Examples:")}\n${formatHelpExamples([...browserCoreExamples, ...browserActionExamples].map((cmd) => [cmd, ""]), true)}\n\n${theme.muted("Docs:")} ${formatDocsLink("/cli/browser", "docs.remoteclaw.org/cli/browser")}\n`).action(() => {
1671
- browser.outputHelp();
1672
- defaultRuntime.error(danger(`Missing subcommand. Try: "${formatCliCommand("remoteclaw browser status")}"`));
1673
- defaultRuntime.exit(1);
1674
- });
1675
- addGatewayClientOptions(browser);
1676
- const parentOpts = (cmd) => cmd.parent?.opts?.();
1677
- registerBrowserManageCommands(browser, parentOpts);
1678
- registerBrowserExtensionCommands(browser, parentOpts);
1679
- registerBrowserInspectCommands(browser, parentOpts);
1680
- registerBrowserActionInputCommands(browser, parentOpts);
1681
- registerBrowserActionObserveCommands(browser, parentOpts);
1682
- registerBrowserDebugCommands(browser, parentOpts);
1683
- registerBrowserStateCommands(browser, parentOpts);
1684
- }
1685
-
1686
- //#endregion
1687
- export { registerBrowserCli };