remoteclaw 0.1.0-next.cd6ddde → 0.1.0-next.cf9ccbe

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 (1054) hide show
  1. package/dist/accounts-79XhjwAj.js +32 -0
  2. package/dist/accounts-B1M3fOxL.js +272 -0
  3. package/dist/accounts-BwbvnKsW.js +205 -0
  4. package/dist/accounts-CIVjmTg9.js +270 -0
  5. package/dist/accounts-D1awQXKu.js +36 -0
  6. package/dist/accounts-DHkGVGUR.js +36 -0
  7. package/dist/accounts-P7cmIXUM.js +206 -0
  8. package/dist/accounts-XFgBY644.js +47 -0
  9. package/dist/accounts-_ZuNC5bz.js +47 -0
  10. package/dist/ack-reactions-BGJ9Vigf.js +621 -0
  11. package/dist/ack-reactions-Diu9O24z.js +621 -0
  12. package/dist/acp-cli-BwZ-va2P.js +1316 -0
  13. package/dist/acp-cli-eVKByz-j.js +1311 -0
  14. package/dist/active-listener--jrUO-8L.js +37 -0
  15. package/dist/active-listener-C7SyMcNY.js +37 -0
  16. package/dist/agent-BAxK2KQW.js +688 -0
  17. package/dist/agent-Dd5Yfhmq.js +687 -0
  18. package/dist/agent-helpers-5F0tdxud.js +400 -0
  19. package/dist/agent-scope-BA1HP4K6.js +114 -0
  20. package/dist/agent-scope-CAQLm3LP.js +116 -0
  21. package/dist/agents-2VlLHxv-.js +754 -0
  22. package/dist/agents.config-CmyzLYqW.js +116 -0
  23. package/dist/agents.config-DerBqRzk.js +116 -0
  24. package/dist/audio-ClIuKwkl.js +43 -0
  25. package/dist/audio-DqlIYYTb.js +43 -0
  26. package/dist/audit-Cn0cNCE4.js +3114 -0
  27. package/dist/audit-DXY4NHBC.js +3114 -0
  28. package/dist/auth-B-QK8JhI.js +315 -0
  29. package/dist/auth-C1zx1O24.js +314 -0
  30. package/dist/auth-DDmNYVMW.js +448 -0
  31. package/dist/auth-DH1wEw0w.js +448 -0
  32. package/dist/banner-CBWZhANO.js +294 -0
  33. package/dist/binaries-CYwLdubd.js +13 -0
  34. package/dist/bindings-DFAFatwT.js +69 -0
  35. package/dist/bindings-GUKIzFCp.js +69 -0
  36. package/dist/bonjour-discovery-AQMJqY4V.js +378 -0
  37. package/dist/bonjour-discovery-BLcPWHFJ.js +378 -0
  38. package/dist/boot/handler.js +28 -28
  39. package/dist/browser-cli-8Dv5ogFT.js +1690 -0
  40. package/dist/browser-cli-wNLo8SOy.js +1694 -0
  41. package/dist/build-info.json +3 -3
  42. package/dist/call-BTHzKFbN.js +518 -0
  43. package/dist/call-D_NchaCs.js +517 -0
  44. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  45. package/dist/catalog-DgpN5jxU.js +186 -0
  46. package/dist/catalog-k056Nh93.js +186 -0
  47. package/dist/channel-account-context-BHIy71Yh.js +133 -0
  48. package/dist/channel-account-context-DXU_-EkJ.js +133 -0
  49. package/dist/channel-activity-BatlvP_U.js +292 -0
  50. package/dist/channel-activity-BhT7NQ_v.js +94 -0
  51. package/dist/channel-activity-CvjEwpJz.js +94 -0
  52. package/dist/channel-options-BCccA2WC.js +32 -0
  53. package/dist/channel-options-VPR_pNyS.js +33 -0
  54. package/dist/channel-selection-AH6_y6RS.js +51 -0
  55. package/dist/channel-selection-ovohyJQZ.js +51 -0
  56. package/dist/channel-web-APDaQ_wp.js +2134 -0
  57. package/dist/channel-web-BW_YuNlT.js +2132 -0
  58. package/dist/channels-cli-BBkHQtBI.js +1440 -0
  59. package/dist/channels-cli-CKcOwL-Q.js +1436 -0
  60. package/dist/channels-status-issues-BbYNzwLp.js +18 -0
  61. package/dist/channels-status-issues-DRybAijg.js +18 -0
  62. package/dist/chat-envelope-AJFUAuBM.js +248 -0
  63. package/dist/chat-envelope-BrfcPlDM.js +248 -0
  64. package/dist/chrome-Bv2UtAMQ.js +1732 -0
  65. package/dist/chrome-C6Vc_7su.js +1733 -0
  66. package/dist/chunk-BzVoFUZL.js +341 -0
  67. package/dist/clack-prompter-C6mBTOzE.js +122 -0
  68. package/dist/clack-prompter-DKcYqv3o.js +121 -0
  69. package/dist/cleanup-utils-Cb-leJcy.js +94 -0
  70. package/dist/cli/daemon-cli.js +1 -1
  71. package/dist/cli-Cs1n6-eD.js +135 -0
  72. package/dist/cli-Di3p1tLN.js +131 -0
  73. package/dist/client-B6h7bgbF.js +2311 -0
  74. package/dist/client-CMtdm9Ii.js +2311 -0
  75. package/dist/clipboard-A06eV_5C.js +31 -0
  76. package/dist/clipboard-DQBl3coj.js +31 -0
  77. package/dist/command-format-BiiNHkWG.js +18 -0
  78. package/dist/command-format-Dntg_tnC.js +32 -0
  79. package/dist/command-logger/handler.js +1 -1
  80. package/dist/command-registry-BV2MH_iw.js +215 -0
  81. package/dist/commands-D93TXYhv.js +41 -0
  82. package/dist/commands-UD7V7QC9.js +41 -0
  83. package/dist/commands-registry-CCbTtSSK.js +891 -0
  84. package/dist/commands-registry-De8JhZLG.js +890 -0
  85. package/dist/common-D4fL3S2m.js +156 -0
  86. package/dist/common-DXNisGxw.js +156 -0
  87. package/dist/completion-cli-319xyosV.js +452 -0
  88. package/dist/completion-cli-B6Zimnek.js +452 -0
  89. package/dist/config-BTH7fB_v.js +3345 -0
  90. package/dist/config-DwuBnd6D.js +3347 -0
  91. package/dist/config-cli-c_Itt86J.js +247 -0
  92. package/dist/config-cli-rcMB3A3B.js +243 -0
  93. package/dist/config-guard-BcT7soTj.js +92 -0
  94. package/dist/config-guard-Bqak3bDc.js +75 -0
  95. package/dist/config-validation-CHEjSJ5K.js +18 -0
  96. package/dist/config-validation-CvgqLhyG.js +18 -0
  97. package/dist/configure-Cb3bbYnh.js +891 -0
  98. package/dist/configure-R2gWNv5y.js +889 -0
  99. package/dist/control-auth-DrGYtMJM.js +397 -0
  100. package/dist/control-auth-KY4Qdr2I.js +397 -0
  101. package/dist/control-ui-assets-DO1L6M0S.js +186 -0
  102. package/dist/control-ui-assets-S_TLo6Fs.js +186 -0
  103. package/dist/conversation-label-CMOfgCVl.js +36 -0
  104. package/dist/cron-cli-C7h_hLHu.js +495 -0
  105. package/dist/cron-cli-DTNg0Uvl.js +499 -0
  106. package/dist/daemon-cli-BlJS9zWM.js +737 -0
  107. package/dist/daemon-cli-Cfc1yszp.js +735 -0
  108. package/dist/daemon-cli.js +124 -1071
  109. package/dist/daemon-install-BbBLuLWg.js +60 -0
  110. package/dist/daemon-install-WEBvqVOj.js +56 -0
  111. package/dist/daemon-install-helpers-BVtPC2TK.js +504 -0
  112. package/dist/daemon-install-helpers-DVr51zvE.js +504 -0
  113. package/dist/deliver-EB272zWh.js +481 -0
  114. package/dist/deliver-iGD_woru.js +481 -0
  115. package/dist/delivery-queue-BDvalA10.js +244 -0
  116. package/dist/delivery-queue-BimvYz5E.js +244 -0
  117. package/dist/devices-cli-BXCOsNFc.js +323 -0
  118. package/dist/devices-cli-CHGdYfrz.js +319 -0
  119. package/dist/diagnostics-BzzhTQzK.js +35 -0
  120. package/dist/diagnostics-DILtxtcE.js +35 -0
  121. package/dist/directory-cli-COS40yI9.js +221 -0
  122. package/dist/directory-cli-Cb5j1JTC.js +225 -0
  123. package/dist/dispatcher-BUqxh_mA.js +174 -0
  124. package/dist/dispatcher-By-KZRWZ.js +173 -0
  125. package/dist/dm-policy-shared-BCp9_z3w.js +22 -0
  126. package/dist/dm-policy-shared-DgeKqjOu.js +22 -0
  127. package/dist/dns-cli-B8yyXB2N.js +203 -0
  128. package/dist/dns-cli-DAkTk-gM.js +199 -0
  129. package/dist/dock-B0bIIDS3.js +906 -0
  130. package/dist/dock-C3PzQ6CS.js +907 -0
  131. package/dist/doctor-completion-B_Zp4fZk.js +92 -0
  132. package/dist/doctor-completion-CZ1P5laQ.js +92 -0
  133. package/dist/doctor-config-flow-BDDsR2J1.js +978 -0
  134. package/dist/doctor-config-flow-CwFFRUic.js +979 -0
  135. package/dist/enable-C3I9dWel.js +59 -0
  136. package/dist/enable-DnwKeWnR.js +59 -0
  137. package/dist/entry.js +62 -6
  138. package/dist/env-DyyqmxSM.js +60 -0
  139. package/dist/errors-0dfGxeYQ.js +35 -0
  140. package/dist/errors-C1kDByVU.js +35 -0
  141. package/dist/exec-CAk1dxq_.js +164 -0
  142. package/dist/exec-epNpA1aU.js +164 -0
  143. package/dist/extensionAPI.js +263 -1088
  144. package/dist/fetch-BMQq41sB.js +281 -0
  145. package/dist/fetch-Cky99wYB.js +281 -0
  146. package/dist/fetch-D3tw4B4n.js +67 -0
  147. package/dist/fetch-Dgm9ZHFm.js +67 -0
  148. package/dist/file-lock-DWH0TfVu.js +107 -0
  149. package/dist/file-lock-DXW9h9ek.js +107 -0
  150. package/dist/fs-safe-BjSd07M4.js +115 -0
  151. package/dist/fs-safe-aWIhCWlb.js +125 -0
  152. package/dist/gateway-cli-BLeY_1DX.js +24154 -0
  153. package/dist/gateway-cli-Cu4vwhmi.js +24150 -0
  154. package/dist/gateway-rpc-B92CH0D3.js +28 -0
  155. package/dist/gateway-rpc-DZNlWapO.js +28 -0
  156. package/dist/gmail-setup-utils-CKyh29_R.js +422 -0
  157. package/dist/gmail-setup-utils-DquflkMR.js +423 -0
  158. package/dist/health-BYl7T-4m.js +1417 -0
  159. package/dist/health-DdviISKg.js +1414 -0
  160. package/dist/health-format-BE5TK5bs.js +28 -0
  161. package/dist/heartbeat-visibility-BO3iRpB6.js +125 -0
  162. package/dist/heartbeat-visibility-Cwp4TrTv.js +125 -0
  163. package/dist/help-format-D3JhWp1E.js +17 -0
  164. package/dist/hook-runner-global-C1thol1d.js +527 -0
  165. package/dist/hooks-cli-BKS9uZ0H.js +1221 -0
  166. package/dist/hooks-cli-FLWcCr9q.js +1217 -0
  167. package/dist/image-ops-CX41n0v5.js +354 -0
  168. package/dist/image-ops-DSL3eFfQ.js +354 -0
  169. package/dist/import-BSFgt760.js +604 -0
  170. package/dist/import-Da1CHJJg.js +606 -0
  171. package/dist/inbound-context-a5bzQvRt.js +68 -0
  172. package/dist/index.js +127 -101
  173. package/dist/inspect-BEpFbi0c.js +286 -0
  174. package/dist/inspect-BeNNpWna.js +286 -0
  175. package/dist/installs-CH7Qq_m_.js +319 -0
  176. package/dist/installs-CcM8H2YA.js +319 -0
  177. package/dist/ipv4-DNo9AFDu.js +46 -0
  178. package/dist/ipv4-VfoVR5uR.js +46 -0
  179. package/dist/ir-BPwP8hIc.js +972 -0
  180. package/dist/lifecycle-core-5Zxqwa6V.js +476 -0
  181. package/dist/lifecycle-core-C1bGeLby.js +474 -0
  182. package/dist/links-CtGBIrG8.js +15 -0
  183. package/dist/loader-BoP3JA-r.js +22411 -0
  184. package/dist/loader-DXbpue-L.js +22414 -0
  185. package/dist/logger-ASsO5Nz-.js +49 -0
  186. package/dist/logging-Cd9y2AdQ.js +20 -0
  187. package/dist/login-B2UXzgaB.js +61 -0
  188. package/dist/login-BEFL3xY9.js +62 -0
  189. package/dist/login-qr-C7wAz2fe.js +329 -0
  190. package/dist/login-qr-DWpUP1Ud.js +325 -0
  191. package/dist/logs-cli-CAcd-pXA.js +240 -0
  192. package/dist/logs-cli-D7Bzarht.js +236 -0
  193. package/dist/markdown-tables-BBNUZp4n.js +29 -0
  194. package/dist/markdown-tables-NgPcfXoF.js +29 -0
  195. package/dist/media-4-qOIjO-.js +971 -0
  196. package/dist/media-DTwJhAbE.js +9481 -0
  197. package/dist/message-action-names-BsNTjuBE.js +2520 -0
  198. package/dist/message-action-names-ocKcq8_3.js +2520 -0
  199. package/dist/message-channel-CtcVHawF.js +91 -0
  200. package/dist/mime-CAqaK3kp.js +146 -0
  201. package/dist/mime-ViuhRuMM.js +146 -0
  202. package/dist/net-DSkFMHJ8.js +225 -0
  203. package/dist/net-DTqfFYzt.js +225 -0
  204. package/dist/node-cli-BeXU67eQ.js +1458 -0
  205. package/dist/node-cli-i2aCtnmM.js +1462 -0
  206. package/dist/node-service-RyMlWp8N.js +67 -0
  207. package/dist/node-service-TL9b6Qfz.js +67 -0
  208. package/dist/nodes-cli-CtqnXBMD.js +1346 -0
  209. package/dist/nodes-cli-DgQU3LrG.js +1350 -0
  210. package/dist/nodes-screen-B7HJugJ0.js +250 -0
  211. package/dist/nodes-screen-nCRd71Mk.js +250 -0
  212. package/dist/note-B6142LyJ.js +92 -0
  213. package/dist/note-D-EI0czq.js +92 -0
  214. package/dist/npm-registry-spec-PPyRXSpx.js +786 -0
  215. package/dist/npm-registry-spec-uUmDWe6v.js +786 -0
  216. package/dist/npm-resolution-BC1LqCm2.js +86 -0
  217. package/dist/npm-resolution-DhlhUmRF.js +86 -0
  218. package/dist/onboard-CHowLVEG.js +647 -0
  219. package/dist/onboard-D_eCnKjt.js +649 -0
  220. package/dist/onboard-auth-cNtb3FTP.js +211 -0
  221. package/dist/onboard-auth-gwz-0mZ6.js +207 -0
  222. package/dist/onboard-channels-CFsUIDWq.js +2618 -0
  223. package/dist/onboard-channels-ZCML5CWb.js +2619 -0
  224. package/dist/onboard-helpers-8afRV_Tm.js +364 -0
  225. package/dist/onboard-helpers-DTRrJLj-.js +363 -0
  226. package/dist/onboard-remote-CFkvVAYg.js +127 -0
  227. package/dist/onboard-remote-JfBnmK70.js +127 -0
  228. package/dist/onboarding-DIxNghyi.js +586 -0
  229. package/dist/onboarding-Dhh0bjrb.js +588 -0
  230. package/dist/onboarding.finalize-5uipJuOl.js +403 -0
  231. package/dist/onboarding.finalize-De4etQul.js +405 -0
  232. package/dist/onboarding.gateway-config-DolBTXWT.js +196 -0
  233. package/dist/onboarding.gateway-config-rJkIamlG.js +202 -0
  234. package/dist/outbound-CPMaDtgC.js +220 -0
  235. package/dist/outbound-CYSuCMiW.js +221 -0
  236. package/dist/outbound-attachment-Ci02LXoq.js +18 -0
  237. package/dist/outbound-attachment-CqZ7Qc_o.js +18 -0
  238. package/dist/outbound-attachment-CuqWdsdV.js +18 -0
  239. package/dist/pairing-cli-B9JKvvST.js +126 -0
  240. package/dist/pairing-cli-C4HrfIHe.js +130 -0
  241. package/dist/pairing-labels-CBmGQ31P.js +9 -0
  242. package/dist/pairing-labels-D0xwC7Xb.js +9 -0
  243. package/dist/pairing-store-BoF0g-iN.js +459 -0
  244. package/dist/pairing-store-CseXj-5p.js +460 -0
  245. package/dist/path-env-CPZbb7me.js +89 -0
  246. package/dist/path-safety-BFE0XmGC.js +14 -0
  247. package/dist/path-safety-BJ8ge6Ho.js +14 -0
  248. package/dist/paths-DHuXVC00.js +229 -0
  249. package/dist/plugin-auto-enable-B_9J1XED.js +302 -0
  250. package/dist/plugin-auto-enable-DghjlFCL.js +301 -0
  251. package/dist/plugin-registry-68h2T8vi.js +33 -0
  252. package/dist/plugin-registry-BitdVPb4.js +33 -0
  253. package/dist/plugin-sdk/agents/subagent-registry.store.d.ts +0 -1
  254. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +0 -11
  255. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -4
  256. package/dist/plugin-sdk/auto-reply/reply/commands-subagents/shared.d.ts +1 -1
  257. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +1 -10
  258. package/dist/plugin-sdk/auto-reply/reply/directive-handling.levels.d.ts +1 -4
  259. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +1 -8
  260. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +1 -23
  261. package/dist/plugin-sdk/auto-reply/reply/directive-handling.persist.d.ts +0 -2
  262. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +0 -22
  263. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +2 -29
  264. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-apply.d.ts +0 -8
  265. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives-utils.d.ts +0 -1
  266. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -15
  267. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +1 -8
  268. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +1 -11
  269. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +1 -13
  270. package/dist/plugin-sdk/auto-reply/reply.d.ts +1 -1
  271. package/dist/plugin-sdk/auto-reply/status.d.ts +1 -4
  272. package/dist/plugin-sdk/auto-reply/templating.d.ts +0 -4
  273. package/dist/plugin-sdk/auto-reply/thinking.d.ts +0 -4
  274. package/dist/plugin-sdk/channels/dock.d.ts +1 -2
  275. package/dist/plugin-sdk/channels/plugins/types.adapters.d.ts +0 -6
  276. package/dist/plugin-sdk/channels/plugins/types.d.ts +1 -1
  277. package/dist/plugin-sdk/channels/plugins/types.plugin.d.ts +1 -2
  278. package/dist/plugin-sdk/commands/onboard-helpers.d.ts +0 -1
  279. package/dist/plugin-sdk/commands/onboard-types.d.ts +0 -2
  280. package/dist/plugin-sdk/config/legacy.migrations.d.ts +2 -1
  281. package/dist/plugin-sdk/config/legacy.shared.d.ts +0 -9
  282. package/dist/plugin-sdk/config/sessions/types.d.ts +0 -7
  283. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +0 -8
  284. package/dist/plugin-sdk/config/types.base.d.ts +0 -1
  285. package/dist/plugin-sdk/config/types.messages.d.ts +0 -4
  286. package/dist/plugin-sdk/config/types.tools.d.ts +0 -73
  287. package/dist/plugin-sdk/config/types.tts.d.ts +2 -1
  288. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +0 -4
  289. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +7 -197
  290. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +2 -10
  291. package/dist/plugin-sdk/config/zod-schema.core.d.ts +6 -234
  292. package/dist/plugin-sdk/config/zod-schema.d.ts +98 -301
  293. package/dist/plugin-sdk/config/zod-schema.providers-core.d.ts +148 -160
  294. package/dist/plugin-sdk/config/zod-schema.providers-whatsapp.d.ts +12 -12
  295. package/dist/plugin-sdk/config/zod-schema.providers.d.ts +88 -96
  296. package/dist/plugin-sdk/config/zod-schema.session.d.ts +4 -10
  297. package/dist/plugin-sdk/gateway/protocol/index.d.ts +11 -16
  298. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +0 -5
  299. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +0 -1
  300. package/dist/plugin-sdk/index.js +295 -1236
  301. package/dist/plugin-sdk/line/config-schema.d.ts +4 -4
  302. package/dist/plugin-sdk/logging/levels.d.ts +1 -1
  303. package/dist/plugin-sdk/middleware/cli-runtime-base.d.ts +6 -0
  304. package/dist/plugin-sdk/middleware/runtimes/claude.d.ts +6 -0
  305. package/dist/plugin-sdk/middleware/runtimes/codex.d.ts +2 -2
  306. package/dist/plugin-sdk/middleware/runtimes/gemini.d.ts +8 -1
  307. package/dist/plugin-sdk/plugin-sdk/index.d.ts +3 -1
  308. package/dist/plugin-sdk/plugins/manifest-registry.d.ts +2 -0
  309. package/dist/plugin-sdk/plugins/manifest.d.ts +4 -4
  310. package/dist/plugin-sdk/plugins/registry.d.ts +18 -0
  311. package/dist/plugin-sdk/plugins/types.d.ts +4 -0
  312. package/dist/plugin-sdk/slack/manifest.d.ts +17 -0
  313. package/dist/plugin-sdk/stt/preflight.d.ts +2 -4
  314. package/dist/plugin-sdk/stt/providers/index.d.ts +1 -1
  315. package/dist/plugin-sdk/stt/providers/shared.d.ts +20 -1
  316. package/dist/plugin-sdk/tts/providers/edge.d.ts +2 -0
  317. package/dist/plugin-sdk/tts/providers/elevenlabs.d.ts +2 -0
  318. package/dist/plugin-sdk/tts/providers/index.d.ts +4 -0
  319. package/dist/plugin-sdk/tts/providers/openai.d.ts +2 -0
  320. package/dist/plugin-sdk/tts/tts.d.ts +13 -5
  321. package/dist/plugin-sdk/tts/types.d.ts +21 -0
  322. package/dist/plugins-BviLFPLV.js +255 -0
  323. package/dist/plugins-CaudBUbl.js +254 -0
  324. package/dist/plugins-cli-CsLhphNr.js +803 -0
  325. package/dist/plugins-cli-CujSP9NS.js +807 -0
  326. package/dist/ports-BtuzUQHl.js +370 -0
  327. package/dist/ports-CMcHia07.js +96 -0
  328. package/dist/ports-gRBeuUtp.js +316 -0
  329. package/dist/preflight-Bq8rimP-.js +667 -0
  330. package/dist/preflight-DyYbEp9X.js +667 -0
  331. package/dist/program-G8cGMPuz.js +250 -0
  332. package/dist/program-context-B9BwrbSx.js +474 -0
  333. package/dist/progress-BcwxtM9Q.js +124 -0
  334. package/dist/prompt-DtWGd43j.js +21 -0
  335. package/dist/prompt-select-styled-CpOsmtZi.js +1672 -0
  336. package/dist/prompt-select-styled-D-qBqrEJ.js +1669 -0
  337. package/dist/prompt-style-BpUMhEHC.js +9 -0
  338. package/dist/provider-auth-B7QgxlKt.js +187 -0
  339. package/dist/provider-auth-j-EQvvIk.js +187 -0
  340. package/dist/provider-dispatcher-Bx6CaIoV.js +660 -0
  341. package/dist/provider-dispatcher-DhkvjhO5.js +659 -0
  342. package/dist/push-apns--nEiZmEN.js +711 -0
  343. package/dist/push-apns-BtS6B6lb.js +713 -0
  344. package/dist/pw-ai-BpCsXF-x.js +1908 -0
  345. package/dist/pw-ai-ud_Kbn5S.js +1911 -0
  346. package/dist/qr-cli-BCeVLGfz.js +353 -0
  347. package/dist/qr-cli-Crsqtw01.js +349 -0
  348. package/dist/redact-Ci96Gj0O.js +191 -0
  349. package/dist/redact-snapshot-B9nof-Pb.js +1952 -0
  350. package/dist/redact-snapshot-BKiS91Mj.js +1952 -0
  351. package/dist/register.agent-GnCbOS2U.js +1014 -0
  352. package/dist/register.agent-Mwu5hgjA.js +292 -0
  353. package/dist/register.configure-By-Re240.js +130 -0
  354. package/dist/register.configure-rB-Q0WKu.js +135 -0
  355. package/dist/register.import-B83Dn36B.js +29 -0
  356. package/dist/register.import-wIYU2cVW.js +31 -0
  357. package/dist/register.maintenance-D5KctP9K.js +503 -0
  358. package/dist/register.maintenance-Er88Oxcm.js +501 -0
  359. package/dist/register.message-BQhRoEQQ.js +687 -0
  360. package/dist/register.message-CvZKWeGb.js +691 -0
  361. package/dist/register.onboard-BG064oHg.js +94 -0
  362. package/dist/register.onboard-CAKyc1Fc.js +98 -0
  363. package/dist/register.setup-C9sZLS_P.js +114 -0
  364. package/dist/register.setup-CVsZdhkJ.js +118 -0
  365. package/dist/register.status-health-sessions-BZJ0wTSa.js +429 -0
  366. package/dist/register.status-health-sessions-CyrUwwtB.js +667 -0
  367. package/dist/register.subclis-CQ_Pjkyv.js +267 -0
  368. package/dist/replies-BIx-MbQ7.js +136 -0
  369. package/dist/replies-DVU655H4.js +136 -0
  370. package/dist/reply-CL5VMSKN.js +12372 -0
  371. package/dist/reply-XKyfU3rS.js +12375 -0
  372. package/dist/reply-directives-DQfJ001O.js +182 -0
  373. package/dist/reply-directives-DfUITt7C.js +182 -0
  374. package/dist/reply-payloads-ZHo6kfTS.js +527 -0
  375. package/dist/reply-prefix-BSf3PC0x.js +37 -0
  376. package/dist/reply-prefix-DBTlMHLK.js +37 -0
  377. package/dist/resolve-route-B-_IgETc.js +249 -0
  378. package/dist/resolve-route-C8ZsgWDQ.js +249 -0
  379. package/dist/response-prefix-template-3LeqJx2X.js +134 -0
  380. package/dist/response-prefix-template-DBrUVx5V.js +134 -0
  381. package/dist/retry-CDrH81GP.js +77 -0
  382. package/dist/retry-Dar_7pCv.js +77 -0
  383. package/dist/run-main-DBFpx1kt.js +308 -0
  384. package/dist/secure-random-CLWSvf8A.js +44 -0
  385. package/dist/security-cli-B8lXw9ke.js +488 -0
  386. package/dist/security-cli-CRkS3VAf.js +483 -0
  387. package/dist/send-6g8QKfWj.js +374 -0
  388. package/dist/send-B5Hz1PIn.js +29 -0
  389. package/dist/send-B8eIlA1u.js +349 -0
  390. package/dist/send-BFZPQE4j.js +492 -0
  391. package/dist/send-BpTDvE0D.js +1779 -0
  392. package/dist/send-BxOrO1Wv.js +1776 -0
  393. package/dist/send-C6gPJu-Z.js +11 -0
  394. package/dist/send-C7MoKtkN.js +426 -0
  395. package/dist/send-CXzq2LI6.js +2245 -0
  396. package/dist/send-CYOZoObr.js +547 -0
  397. package/dist/send-CfQyIvcC.js +332 -0
  398. package/dist/send-DUtuuwhw.js +492 -0
  399. package/dist/send-DbafVwxp.js +2245 -0
  400. package/dist/send-DeZg8K7y.js +349 -0
  401. package/dist/send-DwkjxJlv.js +547 -0
  402. package/dist/send-iX9xbxlU.js +1178 -0
  403. package/dist/server-BKfCzEzd.js +206 -0
  404. package/dist/server-fmO4eo7K.js +202 -0
  405. package/dist/server-lifecycle-CgPpP10P.js +2437 -0
  406. package/dist/server-lifecycle-Cn8yY5MW.js +2437 -0
  407. package/dist/server-node-events-C-ZzSBYh.js +391 -0
  408. package/dist/server-node-events-DYlyfDHM.js +395 -0
  409. package/dist/service-C2j81L86.js +670 -0
  410. package/dist/service-C8a0SXHD.js +670 -0
  411. package/dist/session-AulYhqOb.js +170 -0
  412. package/dist/session-C6VKWvx6.js +170 -0
  413. package/dist/session-cost-usage-0Vs4hgMe.js +627 -0
  414. package/dist/session-cost-usage-C-DsaOfN.js +627 -0
  415. package/dist/session-dirs-CO1f2ArM.js +318 -0
  416. package/dist/session-dirs-DoboH7Oy.js +318 -0
  417. package/dist/session-utils-CRK8ToKG.js +621 -0
  418. package/dist/session-utils-DWlkmCX8.js +621 -0
  419. package/dist/sessions-DtqrmUJS.js +2553 -0
  420. package/dist/sessions-gT-4fcX-.js +245 -0
  421. package/dist/shell-env-c3j5zcU9.js +163 -0
  422. package/dist/ssrf-8wNqPNzN.js +183 -0
  423. package/dist/ssrf-CJIdPXuS.js +183 -0
  424. package/dist/status-BI_-xpDt.js +1947 -0
  425. package/dist/status-PZVwjKjl.js +1943 -0
  426. package/dist/status.update-BmuDZ7E7.js +449 -0
  427. package/dist/status.update-Mf6HSRvU.js +449 -0
  428. package/dist/store-B7PGEdFf.js +2555 -0
  429. package/dist/store-CzhBjUCN.js +64 -0
  430. package/dist/store-YkSxKAey.js +53 -0
  431. package/dist/store-ZNeFv2Q7.js +64 -0
  432. package/dist/subagent-registry-R1DiAM4R.js +4839 -0
  433. package/dist/subagent-registry-xLRXC8Bg.js +4841 -0
  434. package/dist/subsystem-BAW_f3DI.js +1195 -0
  435. package/dist/subsystem-DGSHVL8I.js +1081 -0
  436. package/dist/system-cli-9SvRrT9D.js +77 -0
  437. package/dist/system-cli-yCa5Q1YM.js +73 -0
  438. package/dist/systemd-40Rij3QR.js +547 -0
  439. package/dist/systemd-5C97CSzd.js +547 -0
  440. package/dist/systemd-hints-3iQteJw-.js +278 -0
  441. package/dist/systemd-hints-CyQqHq1i.js +278 -0
  442. package/dist/systemd-linger-B2rPbnAi.js +75 -0
  443. package/dist/systemd-linger-DDvkfxH-.js +75 -0
  444. package/dist/table-DFx25vNb.js +279 -0
  445. package/dist/tables-C5fI0PmT.js +55 -0
  446. package/dist/tables-Cm9qvQ9D.js +55 -0
  447. package/dist/tables-fRe01eP1.js +55 -0
  448. package/dist/tailnet-Da-_9e8E.js +40 -0
  449. package/dist/tailnet-xt92Yaop.js +40 -0
  450. package/dist/tailscale-CnV0JWca.js +230 -0
  451. package/dist/tailscale-VkEC8dzj.js +230 -0
  452. package/dist/targets-C99szk_e.js +114 -0
  453. package/dist/targets-CPaTjbpp.js +2607 -0
  454. package/dist/targets-CmC5m7Ey.js +53 -0
  455. package/dist/targets-D-p4rJVS.js +650 -0
  456. package/dist/targets-D2OQt8-7.js +650 -0
  457. package/dist/targets-D94MtTiZ.js +2606 -0
  458. package/dist/targets-RajrXTl7.js +220 -0
  459. package/dist/targets-_UWmnyI9.js +53 -0
  460. package/dist/thinking-4nOZPunr.js +60 -0
  461. package/dist/thinking-ZfH2V9Os.js +60 -0
  462. package/dist/tokens-TtJJxzRr.js +21 -0
  463. package/dist/tool-display-Bxs_1jIn.js +785 -0
  464. package/dist/tool-display-D9p_Ttkq.js +785 -0
  465. package/dist/tool-images-9Ron321Q.js +263 -0
  466. package/dist/tool-images-BWhy6WRN.js +263 -0
  467. package/dist/trash-B5xyvBDf.js +125 -0
  468. package/dist/trash-BpB96kHe.js +125 -0
  469. package/dist/tui-Ba0uZDrg.js +3237 -0
  470. package/dist/tui-Biz0HqDj.js +3237 -0
  471. package/dist/tui-cli-C-UV6o2v.js +63 -0
  472. package/dist/tui-cli-Ds_bLT-h.js +67 -0
  473. package/dist/types.tools-BBb2rl3g.js +23 -0
  474. package/dist/types.tools-BDJw1yFx.js +23 -0
  475. package/dist/update-Barj5dsg.js +349 -0
  476. package/dist/update-D839Q8su.js +349 -0
  477. package/dist/update-cli-2I4hm0Gy.js +1150 -0
  478. package/dist/update-cli-CcwXmMKB.js +1148 -0
  479. package/dist/usage-BI9kergH.js +5465 -0
  480. package/dist/utils-DPoNpP7D.js +631 -0
  481. package/dist/voice-credentials-64XAMSJm.js +46 -0
  482. package/dist/voice-credentials-v-CQkTpD.js +46 -0
  483. package/dist/web-63IbbidQ.js +3051 -0
  484. package/dist/web-D9N764Da.js +80 -0
  485. package/dist/web-DUvNYLzr.js +75 -0
  486. package/dist/webhooks-cli-owhVNNkz.js +334 -0
  487. package/dist/webhooks-cli-zlvka6QD.js +330 -0
  488. package/dist/whatsapp-actions-8DejyRG5.js +126 -0
  489. package/dist/whatsapp-actions-DCzp5LKe.js +131 -0
  490. package/dist/widearea-dns-CQqZIeu8.js +127 -0
  491. package/dist/workspace-CB7pVojf.js +441 -0
  492. package/dist/workspace-DWEyzM0F.js +439 -0
  493. package/dist/zod-schema-CvFqwpNE.js +2719 -0
  494. package/dist/zod-schema-Y5SQgJLm.js +2719 -0
  495. package/package.json +1 -1
  496. package/dist/accounts-Aqbb2_Fn.js +0 -270
  497. package/dist/accounts-Bo2bX8jP.js +0 -272
  498. package/dist/accounts-CJUdvsIZ.js +0 -32
  499. package/dist/accounts-D3fAPVzU.js +0 -36
  500. package/dist/accounts-DZmv4bXS.js +0 -47
  501. package/dist/accounts-DmB4SVPK.js +0 -47
  502. package/dist/accounts-DtkyfvwR.js +0 -36
  503. package/dist/ack-reactions-BqcZUQJ3.js +0 -446
  504. package/dist/ack-reactions-DXHaDBH-.js +0 -446
  505. package/dist/acp-cli-DVXhDMc6.js +0 -1324
  506. package/dist/acp-cli-QBL4_qcW.js +0 -1319
  507. package/dist/active-listener-CwxZ24bZ.js +0 -37
  508. package/dist/active-listener-v2sItamh.js +0 -37
  509. package/dist/agent-C5PZDKE1.js +0 -687
  510. package/dist/agent-helpers-BSGqeJr-.js +0 -400
  511. package/dist/agent-qCBPcUcF.js +0 -688
  512. package/dist/agent-scope-CJW7vnF8.js +0 -114
  513. package/dist/agent-scope-_ND_-bJy.js +0 -116
  514. package/dist/agents-Byc39Y4A.js +0 -760
  515. package/dist/agents.config-BgDBcY4h.js +0 -116
  516. package/dist/agents.config-D8gLHPWo.js +0 -116
  517. package/dist/audio-BIvUsncf.js +0 -43
  518. package/dist/audio-CQ8TfmVN.js +0 -43
  519. package/dist/audit-C0x7Cm6K.js +0 -3150
  520. package/dist/audit-CAY-uzWP.js +0 -3150
  521. package/dist/auth-DGqCLaQq.js +0 -448
  522. package/dist/auth-DLTRySEi.js +0 -314
  523. package/dist/auth-Drf91ntw.js +0 -315
  524. package/dist/auth-ku2khJyQ.js +0 -448
  525. package/dist/banner-CGI3XOm4.js +0 -294
  526. package/dist/binaries-BTvHIrCr.js +0 -13
  527. package/dist/bindings-Dr0bGRst.js +0 -69
  528. package/dist/bindings-DsWJQVKh.js +0 -69
  529. package/dist/bonjour-discovery-BElR62fH.js +0 -378
  530. package/dist/bonjour-discovery-C8XyVsjb.js +0 -378
  531. package/dist/browser-cli-DxJew43l.js +0 -1694
  532. package/dist/browser-cli-p0nakrjO.js +0 -1690
  533. package/dist/call-BrTmlOx3.js +0 -518
  534. package/dist/call-ChdUdwb4.js +0 -517
  535. package/dist/catalog-DTlcfTT9.js +0 -185
  536. package/dist/catalog-PixZqhZK.js +0 -185
  537. package/dist/channel-account-context-BO245Tcn.js +0 -133
  538. package/dist/channel-account-context-BgK0hm-I.js +0 -133
  539. package/dist/channel-activity-B0qlUR5e.js +0 -292
  540. package/dist/channel-activity-C-L6rDrQ.js +0 -94
  541. package/dist/channel-activity-DdgLBZ7M.js +0 -94
  542. package/dist/channel-options-C1Q9SUhv.js +0 -33
  543. package/dist/channel-options-zANFhRx_.js +0 -32
  544. package/dist/channel-selection-DW21dXB1.js +0 -51
  545. package/dist/channel-selection-wK_6S2Ku.js +0 -51
  546. package/dist/channel-web-DCSjrtlh.js +0 -2136
  547. package/dist/channel-web-JCgegBgG.js +0 -2134
  548. package/dist/channels-cli-D48ytzLq.js +0 -1438
  549. package/dist/channels-cli-hZbUcB3G.js +0 -1434
  550. package/dist/channels-status-issues-B6I2l7Sm.js +0 -18
  551. package/dist/channels-status-issues-DhDH2fWp.js +0 -18
  552. package/dist/chat-envelope-BIujl9Cj.js +0 -248
  553. package/dist/chat-envelope-CrM0X4sl.js +0 -248
  554. package/dist/chrome-Dqtq7zCc.js +0 -1733
  555. package/dist/chrome-XeSY99Z_.js +0 -1732
  556. package/dist/chunk-LUabyS9k.js +0 -341
  557. package/dist/clack-prompter-fAgbvPW4.js +0 -122
  558. package/dist/clack-prompter-kf9qTN5p.js +0 -121
  559. package/dist/cleanup-utils-CNwlTKyR.js +0 -94
  560. package/dist/cli-BTLaY8q4.js +0 -133
  561. package/dist/cli-CZV23GbW.js +0 -129
  562. package/dist/client-B9u3JdT_.js +0 -2316
  563. package/dist/client-DEEOhx0w.js +0 -2316
  564. package/dist/clipboard-B2nstLx7.js +0 -31
  565. package/dist/clipboard-C8QI9fes.js +0 -31
  566. package/dist/command-format-D0vKipG9.js +0 -32
  567. package/dist/command-format-LFmgWzKJ.js +0 -18
  568. package/dist/command-registry-BPXqH4ST.js +0 -215
  569. package/dist/commands-BAYwlS3d.js +0 -41
  570. package/dist/commands-D842kCjj.js +0 -41
  571. package/dist/commands-registry-Cg2GTT2J.js +0 -892
  572. package/dist/commands-registry-Yz-uV5oG.js +0 -891
  573. package/dist/common-B67cBSew.js +0 -156
  574. package/dist/common-DEoiTqOr.js +0 -156
  575. package/dist/completion-cli-D5J3fPka.js +0 -452
  576. package/dist/completion-cli-Dd1g-p7S.js +0 -452
  577. package/dist/config-CAa0rZSx.js +0 -4225
  578. package/dist/config-W0w-gi2j.js +0 -4223
  579. package/dist/config-cli-Ddz-yCdQ.js +0 -247
  580. package/dist/config-cli-shgSFYig.js +0 -243
  581. package/dist/config-guard-BI85dxHR.js +0 -99
  582. package/dist/config-guard-DQqnigKh.js +0 -75
  583. package/dist/config-validation-D-h4LHyA.js +0 -18
  584. package/dist/config-validation-Df_kroIQ.js +0 -18
  585. package/dist/configure-BnFwpZ3l.js +0 -891
  586. package/dist/configure-Cj4mlKSH.js +0 -889
  587. package/dist/control-auth-BrBr2xb8.js +0 -397
  588. package/dist/control-auth-CehjYKnL.js +0 -397
  589. package/dist/control-ui-assets-D8F383Mo.js +0 -186
  590. package/dist/control-ui-assets-DYKtRIm0.js +0 -186
  591. package/dist/conversation-label-Bn5j3lUT.js +0 -36
  592. package/dist/cron-cli-DVzDHzAX.js +0 -494
  593. package/dist/cron-cli-gkH2qKM4.js +0 -498
  594. package/dist/daemon-cli-BTdNO1vH.js +0 -737
  595. package/dist/daemon-cli-DNNqI2LD.js +0 -735
  596. package/dist/daemon-install-CaEHG92p.js +0 -56
  597. package/dist/daemon-install-DbpDSDfW.js +0 -60
  598. package/dist/daemon-install-helpers-DjE_WnlY.js +0 -504
  599. package/dist/daemon-install-helpers-DocTUxqQ.js +0 -504
  600. package/dist/deliver-CDcL8ok6.js +0 -481
  601. package/dist/deliver-CS8JsevV.js +0 -481
  602. package/dist/delivery-queue-CTaYZQ_8.js +0 -244
  603. package/dist/delivery-queue-DMZ7mH8P.js +0 -244
  604. package/dist/devices-cli-BBJ4His-.js +0 -319
  605. package/dist/devices-cli-DHSJSFW1.js +0 -323
  606. package/dist/diagnostics-BSvCaLNs.js +0 -35
  607. package/dist/diagnostics-mWFAsFeo.js +0 -35
  608. package/dist/directory-cli-C-oHD_XE.js +0 -224
  609. package/dist/directory-cli-Cw99VGvr.js +0 -220
  610. package/dist/dispatcher-C8d1NNLZ.js +0 -174
  611. package/dist/dispatcher-DY6Ga60j.js +0 -173
  612. package/dist/dm-policy-shared-CRQ-Wr5g.js +0 -22
  613. package/dist/dm-policy-shared-CXXf2ltd.js +0 -22
  614. package/dist/dns-cli-BOqx9qo1.js +0 -199
  615. package/dist/dns-cli-WfqSC3JU.js +0 -203
  616. package/dist/dock-Big-J2VN.js +0 -929
  617. package/dist/dock-Cj4PKiUh.js +0 -928
  618. package/dist/doctor-completion-B9RsNJKh.js +0 -92
  619. package/dist/doctor-completion-DhNvADTs.js +0 -92
  620. package/dist/doctor-config-flow-BUuADMDa.js +0 -1935
  621. package/dist/doctor-config-flow-yOUpQC2B.js +0 -1934
  622. package/dist/enable-DC9V0nTO.js +0 -59
  623. package/dist/enable-DzXMQJ-o.js +0 -59
  624. package/dist/env-B3zr72vQ.js +0 -60
  625. package/dist/errors-CdmXrBic.js +0 -35
  626. package/dist/errors-Cr_NbOb4.js +0 -35
  627. package/dist/exec-D_s-zAtY.js +0 -164
  628. package/dist/exec-Zz6eJ6YU.js +0 -164
  629. package/dist/fetch-C8pdlo4-.js +0 -67
  630. package/dist/fetch-DRVdxxEj.js +0 -67
  631. package/dist/file-lock-6NXMPZTT.js +0 -107
  632. package/dist/file-lock-C_KRlR7M.js +0 -107
  633. package/dist/fs-safe-DZHpH7TI.js +0 -98
  634. package/dist/fs-safe-vm3JMUkq.js +0 -88
  635. package/dist/gateway-cli-CebjflhZ.js +0 -24337
  636. package/dist/gateway-cli-Y9U6rbPB.js +0 -24333
  637. package/dist/gateway-rpc-BCFkQPa2.js +0 -28
  638. package/dist/gateway-rpc-DOgYbsOG.js +0 -28
  639. package/dist/gmail-setup-utils-DMeA1UM1.js +0 -423
  640. package/dist/gmail-setup-utils-FHWSAur3.js +0 -422
  641. package/dist/health-CXWQZGNz.js +0 -1414
  642. package/dist/health-DCC6hoLO.js +0 -1417
  643. package/dist/health-format-CVgQD-z9.js +0 -28
  644. package/dist/heartbeat-visibility-Cv0ejWJ-.js +0 -125
  645. package/dist/heartbeat-visibility-Da3TDQp2.js +0 -125
  646. package/dist/help-format-DM6-OBt-.js +0 -17
  647. package/dist/hook-runner-global-C0DFQmQw.js +0 -527
  648. package/dist/hooks-cli-CB5rKhHe.js +0 -1221
  649. package/dist/hooks-cli-Dy7m9hzM.js +0 -1225
  650. package/dist/image-ops-B9ofmzSq.js +0 -354
  651. package/dist/image-ops-CMuvRsMY.js +0 -354
  652. package/dist/import-BH13F5mT.js +0 -606
  653. package/dist/import-D8HVcDqO.js +0 -604
  654. package/dist/inbound-context-CmmmT8IP.js +0 -68
  655. package/dist/inbound-path-policy-BdmTOUka.js +0 -90
  656. package/dist/inbound-path-policy-BurOAu44.js +0 -90
  657. package/dist/inspect-nW8LAukU.js +0 -286
  658. package/dist/inspect-xy2EHy8G.js +0 -286
  659. package/dist/installs-CpfHmKY1.js +0 -325
  660. package/dist/installs-DebiMrGj.js +0 -325
  661. package/dist/ipv4-ysiNGssl.js +0 -46
  662. package/dist/ipv4-zc_Hfvbp.js +0 -46
  663. package/dist/ir-CaxTklDC.js +0 -940
  664. package/dist/lifecycle-core-Z5SScMlU.js +0 -476
  665. package/dist/lifecycle-core-pPwYSt7m.js +0 -474
  666. package/dist/links-D5vtq30Q.js +0 -15
  667. package/dist/loader-BVHaRcP7.js +0 -22404
  668. package/dist/loader-CxSGgugQ.js +0 -22401
  669. package/dist/local-roots-CrJ_Jv_G.js +0 -314
  670. package/dist/local-roots-n_Y4iYwb.js +0 -313
  671. package/dist/logger-B8yHnzPl.js +0 -49
  672. package/dist/logging-FctZEleJ.js +0 -20
  673. package/dist/login-C99fsB0N.js +0 -61
  674. package/dist/login-cLvGPjeO.js +0 -62
  675. package/dist/login-qr-CGqRFwgl.js +0 -329
  676. package/dist/login-qr-dnY5DC2C.js +0 -325
  677. package/dist/logs-cli-Bda7xY4N.js +0 -236
  678. package/dist/logs-cli-HzR-vnpD.js +0 -240
  679. package/dist/markdown-tables-58Hq__7K.js +0 -29
  680. package/dist/markdown-tables-GFEX0OR6.js +0 -29
  681. package/dist/media-C1SIfGTn.js +0 -10452
  682. package/dist/media-CFsyXs3H.js +0 -940
  683. package/dist/message-action-names-BgsKGLDS.js +0 -2521
  684. package/dist/message-action-names-DkZwEFhU.js +0 -2521
  685. package/dist/message-channel-FMNRI5Ax.js +0 -91
  686. package/dist/mime-AuIDUZPG.js +0 -149
  687. package/dist/mime-Cqg1jjia.js +0 -149
  688. package/dist/net-BEFkF-nI.js +0 -225
  689. package/dist/net-CNsUGiSw.js +0 -225
  690. package/dist/node-cli-Bu-InsO9.js +0 -1462
  691. package/dist/node-cli-DE7Pm7Fr.js +0 -1458
  692. package/dist/node-service-CumFZc9L.js +0 -67
  693. package/dist/node-service-DY1gG06I.js +0 -67
  694. package/dist/nodes-cli-B5aAExN0.js +0 -1350
  695. package/dist/nodes-cli-eKRqlKuO.js +0 -1346
  696. package/dist/nodes-screen-B3Sij1uT.js +0 -250
  697. package/dist/nodes-screen-DEvpoFmH.js +0 -250
  698. package/dist/note-CPFJCWJJ.js +0 -92
  699. package/dist/note-DHUJACHE.js +0 -92
  700. package/dist/npm-registry-spec-BgMtTHvq.js +0 -786
  701. package/dist/npm-registry-spec-Dz3z1Zpd.js +0 -786
  702. package/dist/npm-resolution-BXiQH99t.js +0 -86
  703. package/dist/npm-resolution-CqE0nhxJ.js +0 -86
  704. package/dist/onboard-DK2z3w1P.js +0 -649
  705. package/dist/onboard-auth-C_wHkop1.js +0 -207
  706. package/dist/onboard-auth-CkCBLvTg.js +0 -211
  707. package/dist/onboard-channels-C8_OLbPk.js +0 -2547
  708. package/dist/onboard-channels-w_tnOhVu.js +0 -2548
  709. package/dist/onboard-helpers-Q7M6vdzh.js +0 -363
  710. package/dist/onboard-helpers-SCO3k5Y8.js +0 -364
  711. package/dist/onboard-remote-Co2hv1AD.js +0 -127
  712. package/dist/onboard-remote-Dl3BFSg2.js +0 -127
  713. package/dist/onboard-rioH3DW6.js +0 -647
  714. package/dist/onboarding-CsXVuzFP.js +0 -586
  715. package/dist/onboarding-r5RCkc-Z.js +0 -588
  716. package/dist/onboarding.finalize-BY8uN1nD.js +0 -402
  717. package/dist/onboarding.finalize-C-kfj-aR.js +0 -404
  718. package/dist/onboarding.gateway-config-BL0Q7Wpg.js +0 -201
  719. package/dist/onboarding.gateway-config-D2QsXMYO.js +0 -195
  720. package/dist/outbound-CcaPcetn.js +0 -220
  721. package/dist/outbound-CeiW8z3a.js +0 -221
  722. package/dist/outbound-attachment-BLSGI2dJ.js +0 -18
  723. package/dist/outbound-attachment-Bfm5-JYe.js +0 -18
  724. package/dist/outbound-attachment-CZ7zoYxB.js +0 -18
  725. package/dist/pairing-cli-CgX79ujL.js +0 -125
  726. package/dist/pairing-cli-DvbbXFgC.js +0 -129
  727. package/dist/pairing-labels-3wDxaApH.js +0 -9
  728. package/dist/pairing-labels-DCbWnbWk.js +0 -9
  729. package/dist/pairing-store-CdY7iRS0.js +0 -459
  730. package/dist/pairing-store-DykkYpQ7.js +0 -460
  731. package/dist/path-env-Cqo5LZmw.js +0 -89
  732. package/dist/path-guards-DOpzcMXz.js +0 -31
  733. package/dist/path-guards-DipYoPVw.js +0 -31
  734. package/dist/path-safety-CXKAVpMp.js +0 -14
  735. package/dist/path-safety-DGB91qBk.js +0 -14
  736. package/dist/paths-BTaH3rLn.js +0 -232
  737. package/dist/plugin-auto-enable-C6FPGg_-.js +0 -301
  738. package/dist/plugin-auto-enable-L8eOc8iC.js +0 -302
  739. package/dist/plugin-registry-BTycBIix.js +0 -33
  740. package/dist/plugin-registry-CFty9Gym.js +0 -33
  741. package/dist/plugin-sdk/auto-reply/reply/elevated-allowlist-matcher.d.ts +0 -20
  742. package/dist/plugin-sdk/auto-reply/reply/elevated-unavailable.d.ts +0 -8
  743. package/dist/plugin-sdk/auto-reply/reply/reply-elevated.d.ts +0 -16
  744. package/dist/plugin-sdk/compat/legacy-names.d.ts +0 -8
  745. package/dist/plugin-sdk/config/legacy.migrations.part-1.d.ts +0 -2
  746. package/dist/plugin-sdk/config/legacy.migrations.part-2.d.ts +0 -2
  747. package/dist/plugin-sdk/config/legacy.migrations.part-3.d.ts +0 -2
  748. package/dist/plugin-sdk/cron/legacy-delivery.d.ts +0 -3
  749. package/dist/plugin-sdk/cron/payload-migration.d.ts +0 -3
  750. package/dist/plugin-sdk/link-understanding/apply.d.ts +0 -10
  751. package/dist/plugin-sdk/link-understanding/defaults.d.ts +0 -2
  752. package/dist/plugin-sdk/link-understanding/detect.d.ts +0 -3
  753. package/dist/plugin-sdk/link-understanding/format.d.ts +0 -4
  754. package/dist/plugin-sdk/link-understanding/runner.d.ts +0 -11
  755. package/dist/plugin-sdk/media/input-files.d.ts +0 -95
  756. package/dist/plugin-sdk/media-understanding/apply.d.ts +0 -19
  757. package/dist/plugin-sdk/media-understanding/attachments.d.ts +0 -49
  758. package/dist/plugin-sdk/media-understanding/concurrency.d.ts +0 -1
  759. package/dist/plugin-sdk/media-understanding/defaults.d.ts +0 -11
  760. package/dist/plugin-sdk/media-understanding/errors.d.ts +0 -6
  761. package/dist/plugin-sdk/media-understanding/format.d.ts +0 -7
  762. package/dist/plugin-sdk/media-understanding/fs.d.ts +0 -1
  763. package/dist/plugin-sdk/media-understanding/output-extract.d.ts +0 -2
  764. package/dist/plugin-sdk/media-understanding/providers/anthropic/index.d.ts +0 -2
  765. package/dist/plugin-sdk/media-understanding/providers/deepgram/audio.d.ts +0 -1
  766. package/dist/plugin-sdk/media-understanding/providers/deepgram/index.d.ts +0 -2
  767. package/dist/plugin-sdk/media-understanding/providers/google/audio.d.ts +0 -1
  768. package/dist/plugin-sdk/media-understanding/providers/google/index.d.ts +0 -2
  769. package/dist/plugin-sdk/media-understanding/providers/google/video.d.ts +0 -3
  770. package/dist/plugin-sdk/media-understanding/providers/groq/index.d.ts +0 -2
  771. package/dist/plugin-sdk/media-understanding/providers/index.d.ts +0 -4
  772. package/dist/plugin-sdk/media-understanding/providers/minimax/index.d.ts +0 -2
  773. package/dist/plugin-sdk/media-understanding/providers/mistral/index.d.ts +0 -2
  774. package/dist/plugin-sdk/media-understanding/providers/moonshot/index.d.ts +0 -2
  775. package/dist/plugin-sdk/media-understanding/providers/moonshot/video.d.ts +0 -3
  776. package/dist/plugin-sdk/media-understanding/providers/openai/audio.d.ts +0 -1
  777. package/dist/plugin-sdk/media-understanding/providers/openai/index.d.ts +0 -2
  778. package/dist/plugin-sdk/media-understanding/providers/shared.d.ts +0 -20
  779. package/dist/plugin-sdk/media-understanding/providers/zai/index.d.ts +0 -2
  780. package/dist/plugin-sdk/media-understanding/resolve.d.ts +0 -44
  781. package/dist/plugin-sdk/media-understanding/runner.d.ts +0 -34
  782. package/dist/plugin-sdk/media-understanding/runner.entries.d.ts +0 -33
  783. package/dist/plugin-sdk/media-understanding/scope.d.ts +0 -9
  784. package/dist/plugin-sdk/media-understanding/types.d.ts +0 -59
  785. package/dist/plugin-sdk/media-understanding/video.d.ts +0 -2
  786. package/dist/plugin-sdk/utils/run-with-concurrency.d.ts +0 -11
  787. package/dist/plugins-7B167wIj.js +0 -453
  788. package/dist/plugins-BRHOfy1Z.js +0 -455
  789. package/dist/plugins-cli-CQGW40I-.js +0 -797
  790. package/dist/plugins-cli-D-ZfWRTw.js +0 -801
  791. package/dist/ports-CAqyeQYZ.js +0 -316
  792. package/dist/ports-CTUgXF2d.js +0 -96
  793. package/dist/ports-DqfnVnCw.js +0 -370
  794. package/dist/preflight-CJqKHCYa.js +0 -64
  795. package/dist/preflight-TR92sc61.js +0 -68
  796. package/dist/program-_SGrjcuG.js +0 -248
  797. package/dist/program-context-B6yIPfYd.js +0 -474
  798. package/dist/progress-BOdRbOHD.js +0 -124
  799. package/dist/prompt-WEkXwIMT.js +0 -21
  800. package/dist/prompt-select-styled-BiBnOTh8.js +0 -1669
  801. package/dist/prompt-select-styled-DQacku67.js +0 -1672
  802. package/dist/prompt-style-B4Cq4PyQ.js +0 -9
  803. package/dist/provider-dispatcher-BjsUFEpi.js +0 -659
  804. package/dist/provider-dispatcher-BxNDRVIT.js +0 -660
  805. package/dist/push-apns-Cj0Ryn18.js +0 -713
  806. package/dist/push-apns-fFfYCqda.js +0 -711
  807. package/dist/pw-ai-CnN2sITD.js +0 -1908
  808. package/dist/pw-ai-fnX3cecw.js +0 -1911
  809. package/dist/qr-cli-CriPg41m.js +0 -349
  810. package/dist/qr-cli-DSURqD0D.js +0 -353
  811. package/dist/redact-gXuh8MFk.js +0 -191
  812. package/dist/redact-snapshot-BecRL_h6.js +0 -2016
  813. package/dist/redact-snapshot-pTdzSrex.js +0 -2016
  814. package/dist/register.agent-Bpwvc5By.js +0 -1018
  815. package/dist/register.agent-DQFcnOVQ.js +0 -290
  816. package/dist/register.configure-C5CK8tgd.js +0 -133
  817. package/dist/register.configure-CEJ5Wrkl.js +0 -128
  818. package/dist/register.import-CPQqqdje.js +0 -31
  819. package/dist/register.import-D1UaH1QV.js +0 -29
  820. package/dist/register.maintenance-Bpz-NOhG.js +0 -499
  821. package/dist/register.maintenance-DDwlfAfw.js +0 -501
  822. package/dist/register.message-BoNswT8e.js +0 -685
  823. package/dist/register.message-pvz70g_-.js +0 -689
  824. package/dist/register.onboard-BvcVLNp3.js +0 -93
  825. package/dist/register.onboard-CZV7LvZI.js +0 -97
  826. package/dist/register.setup-Cgv2uSPG.js +0 -117
  827. package/dist/register.setup-yTqvTinY.js +0 -113
  828. package/dist/register.status-health-sessions-LK50hWDT.js +0 -428
  829. package/dist/register.status-health-sessions-kDGDihye.js +0 -668
  830. package/dist/register.subclis-DSr7AHAr.js +0 -267
  831. package/dist/replies-IpiCq1Ht.js +0 -136
  832. package/dist/replies-LSx_XhsP.js +0 -136
  833. package/dist/reply-B8It91bP.js +0 -13652
  834. package/dist/reply-CbgHVTv2.js +0 -13649
  835. package/dist/reply-directives-Cz7622Qx.js +0 -182
  836. package/dist/reply-directives-ssnaPNiU.js +0 -182
  837. package/dist/reply-payloads-CQMtrphw.js +0 -527
  838. package/dist/reply-prefix-CWcAZKhE.js +0 -37
  839. package/dist/reply-prefix-Drq7Pf3A.js +0 -37
  840. package/dist/resolve-route-B8uIc2H3.js +0 -249
  841. package/dist/resolve-route-C8ooNlI4.js +0 -249
  842. package/dist/response-prefix-template-D3ZcJP4E.js +0 -134
  843. package/dist/response-prefix-template-DPOggmPO.js +0 -134
  844. package/dist/retry-B19gMxS7.js +0 -77
  845. package/dist/retry-BdhJlZQI.js +0 -77
  846. package/dist/run-main-BP3UHEJa.js +0 -306
  847. package/dist/runner-CD3YycXx.js +0 -2365
  848. package/dist/runner-D74Wiza_.js +0 -2365
  849. package/dist/secure-random-CQa3H-OL.js +0 -44
  850. package/dist/security-cli-05blEYyC.js +0 -482
  851. package/dist/security-cli-DYbt8duB.js +0 -487
  852. package/dist/send-7O3-bRtl.js +0 -547
  853. package/dist/send-9Huf62k3.js +0 -2245
  854. package/dist/send-B0C42B2A.js +0 -426
  855. package/dist/send-B9mIJdUo.js +0 -547
  856. package/dist/send-BHm9dk6D.js +0 -1178
  857. package/dist/send-BetMntNc.js +0 -11
  858. package/dist/send-Bj0RXr-a.js +0 -492
  859. package/dist/send-COuVtZ4b.js +0 -374
  860. package/dist/send-CXNuhYA-.js +0 -332
  861. package/dist/send-Ce_BDa8P.js +0 -349
  862. package/dist/send-ChvasRSh.js +0 -1779
  863. package/dist/send-DNVRlTEF.js +0 -29
  864. package/dist/send-DWf7BCPe.js +0 -492
  865. package/dist/send-Dd2_MykI.js +0 -2245
  866. package/dist/send-IJaUAa8H.js +0 -1776
  867. package/dist/send-vvZXksNU.js +0 -349
  868. package/dist/server-BrzR9JmX.js +0 -206
  869. package/dist/server-_h27-uP_.js +0 -202
  870. package/dist/server-lifecycle-CUdA6Far.js +0 -2437
  871. package/dist/server-lifecycle-DQZWL8iP.js +0 -2437
  872. package/dist/server-node-events-DSefRBGC.js +0 -394
  873. package/dist/server-node-events-jDiG1-M2.js +0 -390
  874. package/dist/service-9le8AnC-.js +0 -670
  875. package/dist/service-Drb0kx6I.js +0 -670
  876. package/dist/session-BIAOl5QR.js +0 -170
  877. package/dist/session-Wu00pCn_.js +0 -170
  878. package/dist/session-cost-usage-7plmOKbs.js +0 -627
  879. package/dist/session-cost-usage-CPFxBFUg.js +0 -627
  880. package/dist/session-dirs-CfIrIJxG.js +0 -318
  881. package/dist/session-dirs-DlPpWt5Q.js +0 -318
  882. package/dist/session-utils-Sd9w4vc1.js +0 -622
  883. package/dist/session-utils-iL47hYmZ.js +0 -622
  884. package/dist/sessions-6pKQ3gN3.js +0 -247
  885. package/dist/sessions-ZRmCDdj1.js +0 -2569
  886. package/dist/shell-env-DYZq9PqC.js +0 -163
  887. package/dist/ssrf-B-rF_tZB.js +0 -183
  888. package/dist/ssrf-DJW14Wkh.js +0 -183
  889. package/dist/status-BGM-EJGk.js +0 -1983
  890. package/dist/status-CGkrO9om.js +0 -1979
  891. package/dist/status.update-DlBReI5-.js +0 -449
  892. package/dist/status.update-v7fEQ7R9.js +0 -449
  893. package/dist/store-B5989JkX.js +0 -64
  894. package/dist/store-BpXxa0Uf.js +0 -53
  895. package/dist/store-DCrrxHyS.js +0 -2571
  896. package/dist/store-Ql6vAcsg.js +0 -64
  897. package/dist/subagent-registry-BGknZEUI.js +0 -4856
  898. package/dist/subagent-registry-CWeRBjfn.js +0 -4854
  899. package/dist/subsystem-Ct6qOOqZ.js +0 -1079
  900. package/dist/subsystem-PQ64_nsu.js +0 -1136
  901. package/dist/system-cli-CmO-4Rju.js +0 -77
  902. package/dist/system-cli-VBsa18K6.js +0 -73
  903. package/dist/systemd-CqFpK30Y.js +0 -547
  904. package/dist/systemd-fK9AV5bP.js +0 -547
  905. package/dist/systemd-hints-D3rr0j14.js +0 -278
  906. package/dist/systemd-hints-DNOSRaqA.js +0 -278
  907. package/dist/systemd-linger-B907NVVy.js +0 -75
  908. package/dist/systemd-linger-wYksBbM7.js +0 -75
  909. package/dist/table-C-dba-5-.js +0 -279
  910. package/dist/tables-CO_kxD0e.js +0 -55
  911. package/dist/tables-Rd6ZUH0u.js +0 -55
  912. package/dist/tables-WZp8Vt9n.js +0 -55
  913. package/dist/tailnet-CfZhpSnt.js +0 -40
  914. package/dist/tailnet-D0NV0tRJ.js +0 -40
  915. package/dist/tailscale-B__xvMjA.js +0 -230
  916. package/dist/tailscale-q_ZrxUCc.js +0 -230
  917. package/dist/targets-B4rMyQFJ.js +0 -53
  918. package/dist/targets-BEBzTa22.js +0 -114
  919. package/dist/targets-BjWhDMJM.js +0 -650
  920. package/dist/targets-BlEVuFSt.js +0 -2474
  921. package/dist/targets-CHwGDIgO.js +0 -650
  922. package/dist/targets-CbbmgMRV.js +0 -2473
  923. package/dist/targets-SpN-MPBH.js +0 -220
  924. package/dist/targets-mqj9GNg1.js +0 -53
  925. package/dist/thinking-BqJmU6Zp.js +0 -88
  926. package/dist/thinking-l-rrvZwu.js +0 -88
  927. package/dist/tokens-DAFBx5qr.js +0 -21
  928. package/dist/tool-display-C0hpLmkw.js +0 -785
  929. package/dist/tool-display-CQTRHo3Z.js +0 -785
  930. package/dist/tool-images-BYY11Gw3.js +0 -263
  931. package/dist/tool-images-CnJ0R8Fo.js +0 -263
  932. package/dist/trash-C0mjnHuW.js +0 -125
  933. package/dist/trash-Cgwc9mLD.js +0 -125
  934. package/dist/tui-9cJnR1dN.js +0 -3282
  935. package/dist/tui-BR3egaFJ.js +0 -3282
  936. package/dist/tui-cli-BYpkhE6J.js +0 -66
  937. package/dist/tui-cli-DndeZyup.js +0 -62
  938. package/dist/update-BJVdkzk7.js +0 -349
  939. package/dist/update-DjI6KTA5.js +0 -349
  940. package/dist/update-cli-DR-zFdCm.js +0 -1146
  941. package/dist/update-cli-EuHV_AUf.js +0 -1148
  942. package/dist/usage-BQUMGgBj.js +0 -5350
  943. package/dist/utils-C5daYcFn.js +0 -631
  944. package/dist/voice-credentials-CXdoE4IF.js +0 -45
  945. package/dist/voice-credentials-Cu7htUQq.js +0 -45
  946. package/dist/web-6WVkqhtO.js +0 -3087
  947. package/dist/web-BfSXKISl.js +0 -74
  948. package/dist/web-Cngqu3vs.js +0 -79
  949. package/dist/webhooks-cli-0yQha2yj.js +0 -334
  950. package/dist/webhooks-cli-ula0bTX-.js +0 -330
  951. package/dist/whatsapp-actions-3NdzsNg1.js +0 -130
  952. package/dist/whatsapp-actions-y_1vjkYY.js +0 -125
  953. package/dist/widearea-dns-C-0P7TRi.js +0 -127
  954. package/dist/workspace-BT3X-qCZ.js +0 -449
  955. package/dist/workspace-D5hHXubL.js +0 -447
  956. package/dist/zod-schema-CbqZAIYy.js +0 -2696
  957. package/dist/zod-schema-YGQJEcnj.js +0 -2696
  958. /package/dist/{account-lookup-BOCzCnir.js → account-lookup-CIY_RKhi.js} +0 -0
  959. /package/dist/{agent-helpers-eEHy5uX2.js → agent-helpers-Bs2nBXeI.js} +0 -0
  960. /package/dist/{api-Cd_7aESj.js → api-BE4ZCWWB.js} +0 -0
  961. /package/dist/{api-DJ_oWYus.js → api-wsk9zRVi.js} +0 -0
  962. /package/dist/{chat-type-DyovJwCt.js → chat-type-BP9akbag.js} +0 -0
  963. /package/dist/{chunk-CWD_zrz_.js → chunk-BAMyFYtF.js} +0 -0
  964. /package/dist/{cleanup-utils-gNzIs9yk.js → cleanup-utils-ZC2zvntc.js} +0 -0
  965. /package/dist/{cli-name-3MdfbvIR.js → cli-name-BZsYSp9l.js} +0 -0
  966. /package/dist/{cli-name-CRLBidNP.js → cli-name-CRe5Ow_t.js} +0 -0
  967. /package/dist/{cli-utils-5ZIfXAfM.js → cli-utils-CGB3cBZm.js} +0 -0
  968. /package/dist/{client-D5m46AuY.js → client-9dK56xly.js} +0 -0
  969. /package/dist/{client-DFyI5I0n.js → client-D-R1YdRD.js} +0 -0
  970. /package/dist/{command-options-Cn2fc1Of.js → command-options-CnHA4TzR.js} +0 -0
  971. /package/dist/{config-eval-BCKpAS_K.js → config-eval-BQIR-wSg.js} +0 -0
  972. /package/dist/{config-eval-CU2G7a83.js → config-eval-Bh82JoXK.js} +0 -0
  973. /package/dist/{constants-CRGAZ2ow.js → constants-C7j1VA2S.js} +0 -0
  974. /package/dist/{constants-BAZuhSRm.js → constants-PMRtHBHU.js} +0 -0
  975. /package/dist/{credentials-DMAWNZdV.js → credentials-C_RoJFmK.js} +0 -0
  976. /package/dist/{credentials-Dmc3H-jd.js → credentials-DM_Dj0m8.js} +0 -0
  977. /package/dist/{daemon-runtime-aQhinwSL.js → daemon-runtime-9oDBR7YW.js} +0 -0
  978. /package/dist/{dangerous-name-matching-BCaPvXy_.js → dangerous-name-matching-CSq9sJDG.js} +0 -0
  979. /package/dist/{dangerous-tools-E1i3IoxZ.js → dangerous-tools-D4jtl72G.js} +0 -0
  980. /package/dist/{fetch-DTR2MlOk.js → fetch-DTsU2XnC.js} +0 -0
  981. /package/dist/{fetch-timeout-l_6RdoMw.js → fetch-timeout-CytN1wiO.js} +0 -0
  982. /package/dist/{file-identity-BnGA6wyc.js → file-identity-CeRK5CJC.js} +0 -0
  983. /package/dist/{format-relative-Cywx6ldk.js → format-relative-Czf5fUjn.js} +0 -0
  984. /package/dist/{format-relative-DcQZUAYl.js → format-relative-zwkkXJvs.js} +0 -0
  985. /package/dist/{health-format-CL2Xq92A.js → health-format-DF54wvUU.js} +0 -0
  986. /package/dist/{heartbeat-wake-DjsTDzF3.js → heartbeat-wake-CvHncCjP.js} +0 -0
  987. /package/dist/{helpers-D-r6yhnI.js → helpers-DAEoFkbn.js} +0 -0
  988. /package/dist/{helpers-DSMIGYx2.js → helpers-n2CtWpm9.js} +0 -0
  989. /package/dist/{helpers-CRrn7Err.js → helpers-ndPQWl6m.js} +0 -0
  990. /package/dist/{input-provenance-BgfeDgck.js → input-provenance-gIfDn1ki.js} +0 -0
  991. /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-wkso1o5V.js} +0 -0
  992. /package/dist/{ip-BAhS4rY2.js → ip-D4VG5EJO.js} +0 -0
  993. /package/dist/{ip-BUhsZdJu.js → ip-MwCwRA7c.js} +0 -0
  994. /package/dist/{json-file-Dbg7nZg1.js → json-file-BW22hGtf.js} +0 -0
  995. /package/dist/{json-file-B5WEJJye.js → json-file-DwRAfAAy.js} +0 -0
  996. /package/dist/{json-files-CfhnuGaC.js → json-files-BI20PLIm.js} +0 -0
  997. /package/dist/{json-files-BFGbyEzL.js → json-files-Dy52honG.js} +0 -0
  998. /package/dist/{lanes-4FoQemog.js → lanes-1CBKdsiR.js} +0 -0
  999. /package/dist/{lanes-BhdzrAIa.js → lanes-DqVYfPRG.js} +0 -0
  1000. /package/dist/{logger-IA_Dr_BT.js → logger-B8BE0PyS.js} +0 -0
  1001. /package/dist/{logger-nEdVxm5D.js → logger-CPvz-aPM.js} +0 -0
  1002. /package/dist/{logger-O6JX52kK.js → logger-cL0D2DCr.js} +0 -0
  1003. /package/dist/{logging-BiuZwq5D.js → logging-DRwtiLIS.js} +0 -0
  1004. /package/dist/{logging-Bs1VqVFL.js → logging-DTEoeoa3.js} +0 -0
  1005. /package/dist/{logging-JZEg5nDp.js → logging-fywhKCmE.js} +0 -0
  1006. /package/dist/{mutable-allowlist-detectors-TCG6mnbz.js → mutable-allowlist-detectors-BXE7Hr7F.js} +0 -0
  1007. /package/dist/{onboard-config-BxfgUqk6.js → onboard-config-DOmXYEvJ.js} +0 -0
  1008. /package/dist/{onboard-config-DNzlo8Cg.js → onboard-config-JmR21VYa.js} +0 -0
  1009. /package/dist/{parse-log-line-CT0H1-oQ.js → parse-log-line-GisaZn5H.js} +0 -0
  1010. /package/dist/{parse-log-line-pij_xhtE.js → parse-log-line-ZsbwG_u7.js} +0 -0
  1011. /package/dist/{parse-timeout-CvODy9RC.js → parse-timeout-BpphuwYl.js} +0 -0
  1012. /package/dist/{parse-timeout-CxYHsZWc.js → parse-timeout-CE6BjmGU.js} +0 -0
  1013. /package/dist/plugin-sdk/{media-understanding → stt}/providers/google/inline-data.d.ts +0 -0
  1014. /package/dist/{plugins-allowlist-Bcqe9Gd8.js → plugins-allowlist-A38nxBRG.js} +0 -0
  1015. /package/dist/{plugins-allowlist-ptAp-oPY.js → plugins-allowlist-D2tS9tcu.js} +0 -0
  1016. /package/dist/{polls-DQrR-qT3.js → polls-BLyT08ZI.js} +0 -0
  1017. /package/dist/{polls-ybwcqkWt.js → polls-BmymsJEe.js} +0 -0
  1018. /package/dist/{ports-BS8kQkd9.js → ports-DALdfBQy.js} +0 -0
  1019. /package/dist/{process-scoped-map-BwUkYFQV.js → process-scoped-map-BCJR56ZB.js} +0 -0
  1020. /package/dist/{process-scoped-map-_zxf_kLz.js → process-scoped-map-Cb1EHPyN.js} +0 -0
  1021. /package/dist/{program-context-CG-t6Yp-.js → program-context-DlXnmuB7.js} +0 -0
  1022. /package/dist/{prompt-style-B1740PBl.js → prompt-style-CUuA6OCy.js} +0 -0
  1023. /package/dist/{proxy-BdjLhNln.js → proxy-D-qGA1vm.js} +0 -0
  1024. /package/dist/{pw-ai-state-DaISdsXY.js → pw-ai-state--TxTVwRW.js} +0 -0
  1025. /package/dist/{redact-CqWx9rpK.js → redact-BW8tobyp.js} +0 -0
  1026. /package/dist/{redact-identifier-DR54qsoT.js → redact-identifier-Bv5SUUw-.js} +0 -0
  1027. /package/dist/{remoteclaw-root-u8dAeHID.js → remoteclaw-root-BfPjgewe.js} +0 -0
  1028. /package/dist/{remoteclaw-root-CgNyrbxc.js → remoteclaw-root-E4-hmb4E.js} +0 -0
  1029. /package/dist/{render-CDCvpfhh.js → render-BhKzKdV0.js} +0 -0
  1030. /package/dist/{render-CJl4GK1B.js → render-e7fENCYH.js} +0 -0
  1031. /package/dist/{retry-cXXk2j6_.js → retry-BWv_fy4u.js} +0 -0
  1032. /package/dist/{runtime-guard-BS55uiSW.js → runtime-guard-Bhx-pb8_.js} +0 -0
  1033. /package/dist/{runtime-status-BhW7hP_U.js → runtime-status-CR9445g5.js} +0 -0
  1034. /package/dist/{secret-equal-CJzes24Z.js → secret-equal-D6AoXne1.js} +0 -0
  1035. /package/dist/{secret-equal-CQAmGfGc.js → secret-equal-DLnUuWM3.js} +0 -0
  1036. /package/dist/{secure-random-B3f7Ri2X.js → secure-random-CJtykx_p.js} +0 -0
  1037. /package/dist/{secure-random-BkZFG9cd.js → secure-random-CRVHgtmO.js} +0 -0
  1038. /package/dist/{stagger-B-_Wnofy.js → stagger--wvODnNe.js} +0 -0
  1039. /package/dist/{stagger-B2ORDHsP.js → stagger-BLmTO4cK.js} +0 -0
  1040. /package/dist/{status-C6YNwimj.js → status-1zVD-Clq.js} +0 -0
  1041. /package/dist/{status-yrDGXYZM.js → status-BtRY0nXQ.js} +0 -0
  1042. /package/dist/{strip-inbound-meta-0cvL6itU.js → strip-inbound-meta-zmUXypSS.js} +0 -0
  1043. /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-zqtN9FTK.js} +0 -0
  1044. /package/dist/{table-ByMyHTh_.js → table-On3hkCqi.js} +0 -0
  1045. /package/dist/{targets-DOJXjN1U.js → targets-B46m7u5J.js} +0 -0
  1046. /package/dist/{targets-WSwPflb6.js → targets-D7PT_rdO.js} +0 -0
  1047. /package/dist/{text-format-mr5bZq0f.js → text-format-Ds92M9UT.js} +0 -0
  1048. /package/dist/{tokens-C8yGxAcR.js → tokens-Dw7ZdYwT.js} +0 -0
  1049. /package/dist/{usage-BXi79Rq6.js → usage-BIzKZ5dT.js} +0 -0
  1050. /package/dist/{usage-C1lHaofV.js → usage-BvZOzIC7.js} +0 -0
  1051. /package/dist/{usage-format-CD5jsZY1.js → usage-format-CmniSPCG.js} +0 -0
  1052. /package/dist/{usage-format-CRVpDVj1.js → usage-format-D_KQYQ-w.js} +0 -0
  1053. /package/dist/{widearea-dns-DFZMcfLf.js → widearea-dns-D01FFYZ8.js} +0 -0
  1054. /package/dist/{wsl-D28w2jQC.js → wsl-PDLKeX04.js} +0 -0
@@ -1,1694 +0,0 @@
1
- import { h as resolveStateDir } from "./paths-BTaH3rLn.js";
2
- import { E as info, L as theme, T as danger, b as shortenHomePath } from "./utils-C5daYcFn.js";
3
- import "./subsystem-PQ64_nsu.js";
4
- import { i as defaultRuntime } from "./ansi-DtaiOnt1.js";
5
- import "./agent-scope-_ND_-bJy.js";
6
- import "./message-channel-FMNRI5Ax.js";
7
- import { i as loadConfig } from "./config-CAa0rZSx.js";
8
- import { i as parseBooleanValue } from "./env-B3zr72vQ.js";
9
- import "./host-env-security-BGibnCbS.js";
10
- import "./shell-env-DYZq9PqC.js";
11
- import "./version-CVMnqdzu.js";
12
- import "./env-vars-a7S70ba7.js";
13
- import "./zod-schema-CbqZAIYy.js";
14
- import "./logger-B8yHnzPl.js";
15
- import "./ip-BAhS4rY2.js";
16
- import "./exec-Zz6eJ6YU.js";
17
- import "./redact-gXuh8MFk.js";
18
- import "./errors-CdmXrBic.js";
19
- import { t as formatCliCommand } from "./command-format-D0vKipG9.js";
20
- import "./client-B9u3JdT_.js";
21
- import "./call-BrTmlOx3.js";
22
- import "./net-CNsUGiSw.js";
23
- import "./tailnet-CfZhpSnt.js";
24
- import "./fs-safe-DZHpH7TI.js";
25
- import { t as formatDocsLink } from "./links-D5vtq30Q.js";
26
- import { a as resolveExistingPathsWithinRoot, i as DEFAULT_UPLOAD_DIR, t as movePathToTrash } from "./trash-Cgwc9mLD.js";
27
- import { n as inheritOptionFromParent } from "./command-options-Cn2fc1Of.js";
28
- import "./progress-BOdRbOHD.js";
29
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DOgYbsOG.js";
30
- import { t as runCommandWithRuntime } from "./cli-utils-5ZIfXAfM.js";
31
- import { t as copyToClipboard } from "./clipboard-B2nstLx7.js";
32
- import { t as formatHelpExamples } from "./help-format-DM6-OBt-.js";
33
- import { fileURLToPath } from "node:url";
34
- import fs from "node:fs";
35
- import path from "node:path";
36
-
37
- //#region src/cli/browser-cli-shared.ts
38
- function normalizeQuery(query) {
39
- if (!query) return;
40
- const out = {};
41
- for (const [key, value] of Object.entries(query)) {
42
- if (value === void 0) continue;
43
- out[key] = String(value);
44
- }
45
- return Object.keys(out).length ? out : void 0;
46
- }
47
- async function callBrowserRequest(opts, params, extra) {
48
- 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;
49
- const resolvedTimeout = typeof resolvedTimeoutMs === "number" && Number.isFinite(resolvedTimeoutMs) ? resolvedTimeoutMs : void 0;
50
- const timeout = typeof resolvedTimeout === "number" ? String(resolvedTimeout) : opts.timeout;
51
- const payload = await callGatewayFromCli("browser.request", {
52
- ...opts,
53
- timeout
54
- }, {
55
- method: params.method,
56
- path: params.path,
57
- query: normalizeQuery(params.query),
58
- body: params.body,
59
- timeoutMs: resolvedTimeout
60
- }, { progress: extra?.progress });
61
- if (payload === void 0) throw new Error("Unexpected browser.request response");
62
- return payload;
63
- }
64
- async function callBrowserResize(opts, params, extra) {
65
- return callBrowserRequest(opts, {
66
- method: "POST",
67
- path: "/act",
68
- query: params.profile ? { profile: params.profile } : void 0,
69
- body: {
70
- kind: "resize",
71
- width: params.width,
72
- height: params.height,
73
- targetId: params.targetId?.trim() || void 0
74
- }
75
- }, extra);
76
- }
77
-
78
- //#endregion
79
- //#region src/cli/browser-cli-actions-input/shared.ts
80
- function resolveBrowserActionContext(cmd, parentOpts) {
81
- const parent = parentOpts(cmd);
82
- return {
83
- parent,
84
- profile: parent?.browserProfile
85
- };
86
- }
87
- async function callBrowserAct(params) {
88
- return await callBrowserRequest(params.parent, {
89
- method: "POST",
90
- path: "/act",
91
- query: params.profile ? { profile: params.profile } : void 0,
92
- body: params.body
93
- }, { timeoutMs: params.timeoutMs ?? 2e4 });
94
- }
95
- function requireRef(ref) {
96
- const refValue = typeof ref === "string" ? ref.trim() : "";
97
- if (!refValue) {
98
- defaultRuntime.error(danger("ref is required"));
99
- defaultRuntime.exit(1);
100
- return null;
101
- }
102
- return refValue;
103
- }
104
- async function readFile(path) {
105
- return await (await import("node:fs/promises")).readFile(path, "utf8");
106
- }
107
- async function readFields(opts) {
108
- const payload = opts.fieldsFile ? await readFile(opts.fieldsFile) : opts.fields ?? "";
109
- if (!payload.trim()) throw new Error("fields are required");
110
- const parsed = JSON.parse(payload);
111
- if (!Array.isArray(parsed)) throw new Error("fields must be an array");
112
- return parsed.map((entry, index) => {
113
- if (!entry || typeof entry !== "object") throw new Error(`fields[${index}] must be an object`);
114
- const rec = entry;
115
- const ref = typeof rec.ref === "string" ? rec.ref.trim() : "";
116
- const type = typeof rec.type === "string" ? rec.type.trim() : "";
117
- if (!ref || !type) throw new Error(`fields[${index}] must include ref and type`);
118
- if (typeof rec.value === "string" || typeof rec.value === "number" || typeof rec.value === "boolean") return {
119
- ref,
120
- type,
121
- value: rec.value
122
- };
123
- if (rec.value === void 0 || rec.value === null) return {
124
- ref,
125
- type
126
- };
127
- throw new Error(`fields[${index}].value must be string, number, boolean, or null`);
128
- });
129
- }
130
-
131
- //#endregion
132
- //#region src/cli/browser-cli-actions-input/register.element.ts
133
- function registerBrowserElementCommands(browser, parentOpts) {
134
- 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) => {
135
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
136
- const refValue = requireRef(ref);
137
- if (!refValue) return;
138
- const modifiers = opts.modifiers ? String(opts.modifiers).split(",").map((v) => v.trim()).filter(Boolean) : void 0;
139
- try {
140
- const result = await callBrowserAct({
141
- parent,
142
- profile,
143
- body: {
144
- kind: "click",
145
- ref: refValue,
146
- targetId: opts.targetId?.trim() || void 0,
147
- doubleClick: Boolean(opts.double),
148
- button: opts.button?.trim() || void 0,
149
- modifiers
150
- }
151
- });
152
- if (parent?.json) {
153
- defaultRuntime.log(JSON.stringify(result, null, 2));
154
- return;
155
- }
156
- const suffix = result.url ? ` on ${result.url}` : "";
157
- defaultRuntime.log(`clicked ref ${refValue}${suffix}`);
158
- } catch (err) {
159
- defaultRuntime.error(danger(String(err)));
160
- defaultRuntime.exit(1);
161
- }
162
- });
163
- 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) => {
164
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
165
- const refValue = requireRef(ref);
166
- if (!refValue) return;
167
- try {
168
- const result = await callBrowserAct({
169
- parent,
170
- profile,
171
- body: {
172
- kind: "type",
173
- ref: refValue,
174
- text,
175
- submit: Boolean(opts.submit),
176
- slowly: Boolean(opts.slowly),
177
- targetId: opts.targetId?.trim() || void 0
178
- }
179
- });
180
- if (parent?.json) {
181
- defaultRuntime.log(JSON.stringify(result, null, 2));
182
- return;
183
- }
184
- defaultRuntime.log(`typed into ref ${refValue}`);
185
- } catch (err) {
186
- defaultRuntime.error(danger(String(err)));
187
- defaultRuntime.exit(1);
188
- }
189
- });
190
- 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) => {
191
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
192
- try {
193
- const result = await callBrowserAct({
194
- parent,
195
- profile,
196
- body: {
197
- kind: "press",
198
- key,
199
- targetId: opts.targetId?.trim() || void 0
200
- }
201
- });
202
- if (parent?.json) {
203
- defaultRuntime.log(JSON.stringify(result, null, 2));
204
- return;
205
- }
206
- defaultRuntime.log(`pressed ${key}`);
207
- } catch (err) {
208
- defaultRuntime.error(danger(String(err)));
209
- defaultRuntime.exit(1);
210
- }
211
- });
212
- 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) => {
213
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
214
- try {
215
- const result = await callBrowserAct({
216
- parent,
217
- profile,
218
- body: {
219
- kind: "hover",
220
- ref,
221
- targetId: opts.targetId?.trim() || void 0
222
- }
223
- });
224
- if (parent?.json) {
225
- defaultRuntime.log(JSON.stringify(result, null, 2));
226
- return;
227
- }
228
- defaultRuntime.log(`hovered ref ${ref}`);
229
- } catch (err) {
230
- defaultRuntime.error(danger(String(err)));
231
- defaultRuntime.exit(1);
232
- }
233
- });
234
- 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) => {
235
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
236
- const refValue = requireRef(ref);
237
- if (!refValue) return;
238
- try {
239
- const result = await callBrowserAct({
240
- parent,
241
- profile,
242
- body: {
243
- kind: "scrollIntoView",
244
- ref: refValue,
245
- targetId: opts.targetId?.trim() || void 0,
246
- timeoutMs: Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0
247
- },
248
- timeoutMs: Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0
249
- });
250
- if (parent?.json) {
251
- defaultRuntime.log(JSON.stringify(result, null, 2));
252
- return;
253
- }
254
- defaultRuntime.log(`scrolled into view: ${refValue}`);
255
- } catch (err) {
256
- defaultRuntime.error(danger(String(err)));
257
- defaultRuntime.exit(1);
258
- }
259
- });
260
- 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) => {
261
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
262
- try {
263
- const result = await callBrowserAct({
264
- parent,
265
- profile,
266
- body: {
267
- kind: "drag",
268
- startRef,
269
- endRef,
270
- targetId: opts.targetId?.trim() || void 0
271
- }
272
- });
273
- if (parent?.json) {
274
- defaultRuntime.log(JSON.stringify(result, null, 2));
275
- return;
276
- }
277
- defaultRuntime.log(`dragged ${startRef} → ${endRef}`);
278
- } catch (err) {
279
- defaultRuntime.error(danger(String(err)));
280
- defaultRuntime.exit(1);
281
- }
282
- });
283
- 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) => {
284
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
285
- try {
286
- const result = await callBrowserAct({
287
- parent,
288
- profile,
289
- body: {
290
- kind: "select",
291
- ref,
292
- values,
293
- targetId: opts.targetId?.trim() || void 0
294
- }
295
- });
296
- if (parent?.json) {
297
- defaultRuntime.log(JSON.stringify(result, null, 2));
298
- return;
299
- }
300
- defaultRuntime.log(`selected ${values.join(", ")}`);
301
- } catch (err) {
302
- defaultRuntime.error(danger(String(err)));
303
- defaultRuntime.exit(1);
304
- }
305
- });
306
- }
307
-
308
- //#endregion
309
- //#region src/cli/browser-cli-actions-input/register.files-downloads.ts
310
- async function normalizeUploadPaths(paths) {
311
- const result = await resolveExistingPathsWithinRoot({
312
- rootDir: DEFAULT_UPLOAD_DIR,
313
- requestedPaths: paths,
314
- scopeLabel: `uploads directory (${DEFAULT_UPLOAD_DIR})`
315
- });
316
- if (!result.ok) throw new Error(result.error);
317
- return result.paths;
318
- }
319
- function registerBrowserFilesAndDownloadsCommands(browser, parentOpts) {
320
- const resolveTimeoutAndTarget = (opts) => {
321
- return {
322
- timeoutMs: Number.isFinite(opts.timeoutMs) ? Number(opts.timeoutMs) : void 0,
323
- targetId: typeof opts.targetId === "string" ? opts.targetId.trim() || void 0 : void 0
324
- };
325
- };
326
- const runDownloadCommand = async (cmd, opts, request) => {
327
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
328
- try {
329
- const { timeoutMs, targetId } = resolveTimeoutAndTarget(opts);
330
- const result = await callBrowserRequest(parent, {
331
- method: "POST",
332
- path: request.path,
333
- query: profile ? { profile } : void 0,
334
- body: {
335
- ...request.body,
336
- targetId,
337
- timeoutMs
338
- }
339
- }, { timeoutMs: timeoutMs ?? 2e4 });
340
- if (parent?.json) {
341
- defaultRuntime.log(JSON.stringify(result, null, 2));
342
- return;
343
- }
344
- defaultRuntime.log(`downloaded: ${shortenHomePath(result.download.path)}`);
345
- } catch (err) {
346
- defaultRuntime.error(danger(String(err)));
347
- defaultRuntime.exit(1);
348
- }
349
- };
350
- 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) => {
351
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
352
- try {
353
- const normalizedPaths = await normalizeUploadPaths(paths);
354
- const { timeoutMs, targetId } = resolveTimeoutAndTarget(opts);
355
- const result = await callBrowserRequest(parent, {
356
- method: "POST",
357
- path: "/hooks/file-chooser",
358
- query: profile ? { profile } : void 0,
359
- body: {
360
- paths: normalizedPaths,
361
- ref: opts.ref?.trim() || void 0,
362
- inputRef: opts.inputRef?.trim() || void 0,
363
- element: opts.element?.trim() || void 0,
364
- targetId,
365
- timeoutMs
366
- }
367
- }, { timeoutMs: timeoutMs ?? 2e4 });
368
- if (parent?.json) {
369
- defaultRuntime.log(JSON.stringify(result, null, 2));
370
- return;
371
- }
372
- defaultRuntime.log(`upload armed for ${paths.length} file(s)`);
373
- } catch (err) {
374
- defaultRuntime.error(danger(String(err)));
375
- defaultRuntime.exit(1);
376
- }
377
- });
378
- 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) => {
379
- await runDownloadCommand(cmd, opts, {
380
- path: "/wait/download",
381
- body: { path: outPath?.trim() || void 0 }
382
- });
383
- });
384
- 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) => {
385
- await runDownloadCommand(cmd, opts, {
386
- path: "/download",
387
- body: {
388
- ref,
389
- path: outPath
390
- }
391
- });
392
- });
393
- 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) => {
394
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
395
- const accept = opts.accept ? true : opts.dismiss ? false : void 0;
396
- if (accept === void 0) {
397
- defaultRuntime.error(danger("Specify --accept or --dismiss"));
398
- defaultRuntime.exit(1);
399
- return;
400
- }
401
- try {
402
- const { timeoutMs, targetId } = resolveTimeoutAndTarget(opts);
403
- const result = await callBrowserRequest(parent, {
404
- method: "POST",
405
- path: "/hooks/dialog",
406
- query: profile ? { profile } : void 0,
407
- body: {
408
- accept,
409
- promptText: opts.prompt?.trim() || void 0,
410
- targetId,
411
- timeoutMs
412
- }
413
- }, { timeoutMs: timeoutMs ?? 2e4 });
414
- if (parent?.json) {
415
- defaultRuntime.log(JSON.stringify(result, null, 2));
416
- return;
417
- }
418
- defaultRuntime.log("dialog armed");
419
- } catch (err) {
420
- defaultRuntime.error(danger(String(err)));
421
- defaultRuntime.exit(1);
422
- }
423
- });
424
- }
425
-
426
- //#endregion
427
- //#region src/cli/browser-cli-actions-input/register.form-wait-eval.ts
428
- function registerBrowserFormWaitEvalCommands(browser, parentOpts) {
429
- 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) => {
430
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
431
- try {
432
- const fields = await readFields({
433
- fields: opts.fields,
434
- fieldsFile: opts.fieldsFile
435
- });
436
- const result = await callBrowserAct({
437
- parent,
438
- profile,
439
- body: {
440
- kind: "fill",
441
- fields,
442
- targetId: opts.targetId?.trim() || void 0
443
- }
444
- });
445
- if (parent?.json) {
446
- defaultRuntime.log(JSON.stringify(result, null, 2));
447
- return;
448
- }
449
- defaultRuntime.log(`filled ${fields.length} field(s)`);
450
- } catch (err) {
451
- defaultRuntime.error(danger(String(err)));
452
- defaultRuntime.exit(1);
453
- }
454
- });
455
- 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) => {
456
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
457
- try {
458
- const sel = selector?.trim() || void 0;
459
- const load = opts.load === "load" || opts.load === "domcontentloaded" || opts.load === "networkidle" ? opts.load : void 0;
460
- const timeoutMs = Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0;
461
- const result = await callBrowserAct({
462
- parent,
463
- profile,
464
- body: {
465
- kind: "wait",
466
- timeMs: Number.isFinite(opts.time) ? opts.time : void 0,
467
- text: opts.text?.trim() || void 0,
468
- textGone: opts.textGone?.trim() || void 0,
469
- selector: sel,
470
- url: opts.url?.trim() || void 0,
471
- loadState: load,
472
- fn: opts.fn?.trim() || void 0,
473
- targetId: opts.targetId?.trim() || void 0,
474
- timeoutMs
475
- },
476
- timeoutMs
477
- });
478
- if (parent?.json) {
479
- defaultRuntime.log(JSON.stringify(result, null, 2));
480
- return;
481
- }
482
- defaultRuntime.log("wait complete");
483
- } catch (err) {
484
- defaultRuntime.error(danger(String(err)));
485
- defaultRuntime.exit(1);
486
- }
487
- });
488
- 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) => {
489
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
490
- if (!opts.fn) {
491
- defaultRuntime.error(danger("Missing --fn"));
492
- defaultRuntime.exit(1);
493
- return;
494
- }
495
- try {
496
- const result = await callBrowserAct({
497
- parent,
498
- profile,
499
- body: {
500
- kind: "evaluate",
501
- fn: opts.fn,
502
- ref: opts.ref?.trim() || void 0,
503
- targetId: opts.targetId?.trim() || void 0
504
- }
505
- });
506
- if (parent?.json) {
507
- defaultRuntime.log(JSON.stringify(result, null, 2));
508
- return;
509
- }
510
- defaultRuntime.log(JSON.stringify(result.result ?? null, null, 2));
511
- } catch (err) {
512
- defaultRuntime.error(danger(String(err)));
513
- defaultRuntime.exit(1);
514
- }
515
- });
516
- }
517
-
518
- //#endregion
519
- //#region src/cli/browser-cli-resize.ts
520
- async function runBrowserResizeWithOutput(params) {
521
- const { width, height } = params;
522
- if (!Number.isFinite(width) || !Number.isFinite(height)) {
523
- defaultRuntime.error(danger("width and height must be numbers"));
524
- defaultRuntime.exit(1);
525
- return;
526
- }
527
- const result = await callBrowserResize(params.parent, {
528
- profile: params.profile,
529
- width,
530
- height,
531
- targetId: params.targetId
532
- }, { timeoutMs: params.timeoutMs ?? 2e4 });
533
- if (params.parent?.json) {
534
- defaultRuntime.log(JSON.stringify(result, null, 2));
535
- return;
536
- }
537
- defaultRuntime.log(params.successMessage);
538
- }
539
-
540
- //#endregion
541
- //#region src/cli/browser-cli-actions-input/register.navigation.ts
542
- function registerBrowserNavigationCommands(browser, parentOpts) {
543
- 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) => {
544
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
545
- try {
546
- const result = await callBrowserRequest(parent, {
547
- method: "POST",
548
- path: "/navigate",
549
- query: profile ? { profile } : void 0,
550
- body: {
551
- url,
552
- targetId: opts.targetId?.trim() || void 0
553
- }
554
- }, { timeoutMs: 2e4 });
555
- if (parent?.json) {
556
- defaultRuntime.log(JSON.stringify(result, null, 2));
557
- return;
558
- }
559
- defaultRuntime.log(`navigated to ${result.url ?? url}`);
560
- } catch (err) {
561
- defaultRuntime.error(danger(String(err)));
562
- defaultRuntime.exit(1);
563
- }
564
- });
565
- 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) => {
566
- const { parent, profile } = resolveBrowserActionContext(cmd, parentOpts);
567
- try {
568
- await runBrowserResizeWithOutput({
569
- parent,
570
- profile,
571
- width,
572
- height,
573
- targetId: opts.targetId,
574
- timeoutMs: 2e4,
575
- successMessage: `resized to ${width}x${height}`
576
- });
577
- } catch (err) {
578
- defaultRuntime.error(danger(String(err)));
579
- defaultRuntime.exit(1);
580
- }
581
- });
582
- }
583
-
584
- //#endregion
585
- //#region src/cli/browser-cli-actions-input/register.ts
586
- function registerBrowserActionInputCommands(browser, parentOpts) {
587
- registerBrowserNavigationCommands(browser, parentOpts);
588
- registerBrowserElementCommands(browser, parentOpts);
589
- registerBrowserFilesAndDownloadsCommands(browser, parentOpts);
590
- registerBrowserFormWaitEvalCommands(browser, parentOpts);
591
- }
592
-
593
- //#endregion
594
- //#region src/cli/browser-cli-actions-observe.ts
595
- function runBrowserObserve(action) {
596
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
597
- defaultRuntime.error(danger(String(err)));
598
- defaultRuntime.exit(1);
599
- });
600
- }
601
- function registerBrowserActionObserveCommands(browser, parentOpts) {
602
- 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) => {
603
- const parent = parentOpts(cmd);
604
- const profile = parent?.browserProfile;
605
- await runBrowserObserve(async () => {
606
- const result = await callBrowserRequest(parent, {
607
- method: "GET",
608
- path: "/console",
609
- query: {
610
- level: opts.level?.trim() || void 0,
611
- targetId: opts.targetId?.trim() || void 0,
612
- profile
613
- }
614
- }, { timeoutMs: 2e4 });
615
- if (parent?.json) {
616
- defaultRuntime.log(JSON.stringify(result, null, 2));
617
- return;
618
- }
619
- defaultRuntime.log(JSON.stringify(result.messages, null, 2));
620
- });
621
- });
622
- browser.command("pdf").description("Save page as PDF").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
623
- const parent = parentOpts(cmd);
624
- const profile = parent?.browserProfile;
625
- await runBrowserObserve(async () => {
626
- const result = await callBrowserRequest(parent, {
627
- method: "POST",
628
- path: "/pdf",
629
- query: profile ? { profile } : void 0,
630
- body: { targetId: opts.targetId?.trim() || void 0 }
631
- }, { timeoutMs: 2e4 });
632
- if (parent?.json) {
633
- defaultRuntime.log(JSON.stringify(result, null, 2));
634
- return;
635
- }
636
- defaultRuntime.log(`PDF: ${shortenHomePath(result.path)}`);
637
- });
638
- });
639
- 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) => {
640
- const parent = parentOpts(cmd);
641
- const profile = parent?.browserProfile;
642
- await runBrowserObserve(async () => {
643
- const timeoutMs = Number.isFinite(opts.timeoutMs) ? opts.timeoutMs : void 0;
644
- const maxChars = Number.isFinite(opts.maxChars) ? opts.maxChars : void 0;
645
- const result = await callBrowserRequest(parent, {
646
- method: "POST",
647
- path: "/response/body",
648
- query: profile ? { profile } : void 0,
649
- body: {
650
- url,
651
- targetId: opts.targetId?.trim() || void 0,
652
- timeoutMs,
653
- maxChars
654
- }
655
- }, { timeoutMs: timeoutMs ?? 2e4 });
656
- if (parent?.json) {
657
- defaultRuntime.log(JSON.stringify(result, null, 2));
658
- return;
659
- }
660
- defaultRuntime.log(result.response.body);
661
- });
662
- });
663
- }
664
-
665
- //#endregion
666
- //#region src/cli/browser-cli-debug.ts
667
- function runBrowserDebug(action) {
668
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
669
- defaultRuntime.error(danger(String(err)));
670
- defaultRuntime.exit(1);
671
- });
672
- }
673
- function resolveDebugQuery(params) {
674
- return {
675
- targetId: typeof params.targetId === "string" ? params.targetId.trim() || void 0 : void 0,
676
- filter: typeof params.filter === "string" ? params.filter.trim() || void 0 : void 0,
677
- clear: Boolean(params.clear),
678
- profile: params.profile
679
- };
680
- }
681
- function registerBrowserDebugCommands(browser, parentOpts) {
682
- 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) => {
683
- const parent = parentOpts(cmd);
684
- const profile = parent?.browserProfile;
685
- await runBrowserDebug(async () => {
686
- const result = await callBrowserRequest(parent, {
687
- method: "POST",
688
- path: "/highlight",
689
- query: profile ? { profile } : void 0,
690
- body: {
691
- ref: ref.trim(),
692
- targetId: opts.targetId?.trim() || void 0
693
- }
694
- }, { timeoutMs: 2e4 });
695
- if (parent?.json) {
696
- defaultRuntime.log(JSON.stringify(result, null, 2));
697
- return;
698
- }
699
- defaultRuntime.log(`highlighted ${ref.trim()}`);
700
- });
701
- });
702
- 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) => {
703
- const parent = parentOpts(cmd);
704
- const profile = parent?.browserProfile;
705
- await runBrowserDebug(async () => {
706
- const result = await callBrowserRequest(parent, {
707
- method: "GET",
708
- path: "/errors",
709
- query: resolveDebugQuery({
710
- targetId: opts.targetId,
711
- clear: opts.clear,
712
- profile
713
- })
714
- }, { timeoutMs: 2e4 });
715
- if (parent?.json) {
716
- defaultRuntime.log(JSON.stringify(result, null, 2));
717
- return;
718
- }
719
- if (!result.errors.length) {
720
- defaultRuntime.log("No page errors.");
721
- return;
722
- }
723
- defaultRuntime.log(result.errors.map((e) => `${e.timestamp} ${e.name ? `${e.name}: ` : ""}${e.message}`).join("\n"));
724
- });
725
- });
726
- 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) => {
727
- const parent = parentOpts(cmd);
728
- const profile = parent?.browserProfile;
729
- await runBrowserDebug(async () => {
730
- const result = await callBrowserRequest(parent, {
731
- method: "GET",
732
- path: "/requests",
733
- query: resolveDebugQuery({
734
- targetId: opts.targetId,
735
- filter: opts.filter,
736
- clear: opts.clear,
737
- profile
738
- })
739
- }, { timeoutMs: 2e4 });
740
- if (parent?.json) {
741
- defaultRuntime.log(JSON.stringify(result, null, 2));
742
- return;
743
- }
744
- if (!result.requests.length) {
745
- defaultRuntime.log("No requests recorded.");
746
- return;
747
- }
748
- defaultRuntime.log(result.requests.map((r) => {
749
- const status = typeof r.status === "number" ? ` ${r.status}` : "";
750
- const ok = r.ok === true ? " ok" : r.ok === false ? " fail" : "";
751
- const fail = r.failureText ? ` (${r.failureText})` : "";
752
- return `${r.timestamp} ${r.method}${status}${ok} ${r.url}${fail}`;
753
- }).join("\n"));
754
- });
755
- });
756
- const trace = browser.command("trace").description("Record a Playwright trace");
757
- 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) => {
758
- const parent = parentOpts(cmd);
759
- const profile = parent?.browserProfile;
760
- await runBrowserDebug(async () => {
761
- const result = await callBrowserRequest(parent, {
762
- method: "POST",
763
- path: "/trace/start",
764
- query: profile ? { profile } : void 0,
765
- body: {
766
- targetId: opts.targetId?.trim() || void 0,
767
- screenshots: Boolean(opts.screenshots),
768
- snapshots: Boolean(opts.snapshots),
769
- sources: Boolean(opts.sources)
770
- }
771
- }, { timeoutMs: 2e4 });
772
- if (parent?.json) {
773
- defaultRuntime.log(JSON.stringify(result, null, 2));
774
- return;
775
- }
776
- defaultRuntime.log("trace started");
777
- });
778
- });
779
- 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) => {
780
- const parent = parentOpts(cmd);
781
- const profile = parent?.browserProfile;
782
- await runBrowserDebug(async () => {
783
- const result = await callBrowserRequest(parent, {
784
- method: "POST",
785
- path: "/trace/stop",
786
- query: profile ? { profile } : void 0,
787
- body: {
788
- targetId: opts.targetId?.trim() || void 0,
789
- path: opts.out?.trim() || void 0
790
- }
791
- }, { timeoutMs: 2e4 });
792
- if (parent?.json) {
793
- defaultRuntime.log(JSON.stringify(result, null, 2));
794
- return;
795
- }
796
- defaultRuntime.log(`TRACE:${shortenHomePath(result.path)}`);
797
- });
798
- });
799
- }
800
-
801
- //#endregion
802
- //#region src/cli/browser-cli-examples.ts
803
- const browserCoreExamples = [
804
- "remoteclaw browser status",
805
- "remoteclaw browser start",
806
- "remoteclaw browser stop",
807
- "remoteclaw browser tabs",
808
- "remoteclaw browser open https://example.com",
809
- "remoteclaw browser focus abcd1234",
810
- "remoteclaw browser close abcd1234",
811
- "remoteclaw browser screenshot",
812
- "remoteclaw browser screenshot --full-page",
813
- "remoteclaw browser screenshot --ref 12",
814
- "remoteclaw browser snapshot",
815
- "remoteclaw browser snapshot --format aria --limit 200",
816
- "remoteclaw browser snapshot --efficient",
817
- "remoteclaw browser snapshot --labels"
818
- ];
819
- const browserActionExamples = [
820
- "remoteclaw browser navigate https://example.com",
821
- "remoteclaw browser resize 1280 720",
822
- "remoteclaw browser click 12 --double",
823
- "remoteclaw browser type 23 \"hello\" --submit",
824
- "remoteclaw browser press Enter",
825
- "remoteclaw browser hover 44",
826
- "remoteclaw browser drag 10 11",
827
- "remoteclaw browser select 9 OptionA OptionB",
828
- "remoteclaw browser upload /tmp/remoteclaw/uploads/file.pdf",
829
- "remoteclaw browser fill --fields '[{\"ref\":\"1\",\"value\":\"Ada\"}]'",
830
- "remoteclaw browser dialog --accept",
831
- "remoteclaw browser wait --text \"Done\"",
832
- "remoteclaw browser evaluate --fn '(el) => el.textContent' --ref 7",
833
- "remoteclaw browser console --level error",
834
- "remoteclaw browser pdf"
835
- ];
836
-
837
- //#endregion
838
- //#region src/cli/browser-cli-extension.ts
839
- function resolveBundledExtensionRootDir(here = path.dirname(fileURLToPath(import.meta.url))) {
840
- let current = here;
841
- while (true) {
842
- const candidate = path.join(current, "assets", "chrome-extension");
843
- if (hasManifest(candidate)) return candidate;
844
- const parent = path.dirname(current);
845
- if (parent === current) break;
846
- current = parent;
847
- }
848
- return path.resolve(here, "../../assets/chrome-extension");
849
- }
850
- function installedExtensionRootDir() {
851
- return path.join(resolveStateDir(), "browser", "chrome-extension");
852
- }
853
- function hasManifest(dir) {
854
- return fs.existsSync(path.join(dir, "manifest.json"));
855
- }
856
- async function installChromeExtension(opts) {
857
- const src = opts?.sourceDir ?? resolveBundledExtensionRootDir();
858
- if (!hasManifest(src)) throw new Error("Bundled Chrome extension is missing. Reinstall RemoteClaw and try again.");
859
- const stateDir = opts?.stateDir ?? resolveStateDir();
860
- const dest = path.join(stateDir, "browser", "chrome-extension");
861
- fs.mkdirSync(path.dirname(dest), { recursive: true });
862
- if (fs.existsSync(dest)) await movePathToTrash(dest).catch(() => {
863
- const backup = `${dest}.old-${Date.now()}`;
864
- fs.renameSync(dest, backup);
865
- });
866
- await fs.promises.cp(src, dest, { recursive: true });
867
- if (!hasManifest(dest)) throw new Error("Chrome extension install failed (manifest.json missing). Try again.");
868
- return { path: dest };
869
- }
870
- function registerBrowserExtensionCommands(browser, parentOpts) {
871
- const ext = browser.command("extension").description("Chrome extension helpers");
872
- ext.command("install").description("Install the Chrome extension to a stable local path").action(async (_opts, cmd) => {
873
- const parent = parentOpts(cmd);
874
- let installed;
875
- try {
876
- installed = await installChromeExtension();
877
- } catch (err) {
878
- defaultRuntime.error(danger(String(err)));
879
- defaultRuntime.exit(1);
880
- return;
881
- }
882
- if (parent?.json) {
883
- defaultRuntime.log(JSON.stringify({
884
- ok: true,
885
- path: installed.path
886
- }, null, 2));
887
- return;
888
- }
889
- const displayPath = shortenHomePath(installed.path);
890
- defaultRuntime.log(displayPath);
891
- const copied = await copyToClipboard(installed.path).catch(() => false);
892
- defaultRuntime.error(info([
893
- copied ? "Copied to clipboard." : "Copy to clipboard unavailable.",
894
- "Next:",
895
- `- Chrome → chrome://extensions → enable “Developer mode”`,
896
- `- “Load unpacked” → select: ${displayPath}`,
897
- `- Pin “RemoteClaw Browser Relay”, then click it on the tab (badge shows ON)`,
898
- "",
899
- `${theme.muted("Docs:")} ${formatDocsLink("/tools/chrome-extension", "docs.remoteclaw.org/tools/chrome-extension")}`
900
- ].join("\n")));
901
- });
902
- ext.command("path").description("Print the path to the installed Chrome extension (load unpacked)").action(async (_opts, cmd) => {
903
- const parent = parentOpts(cmd);
904
- const dir = installedExtensionRootDir();
905
- if (!hasManifest(dir)) {
906
- 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")));
907
- defaultRuntime.exit(1);
908
- }
909
- if (parent?.json) {
910
- defaultRuntime.log(JSON.stringify({ path: dir }, null, 2));
911
- return;
912
- }
913
- const displayPath = shortenHomePath(dir);
914
- defaultRuntime.log(displayPath);
915
- if (await copyToClipboard(dir).catch(() => false)) defaultRuntime.error(info("Copied to clipboard."));
916
- });
917
- }
918
-
919
- //#endregion
920
- //#region src/cli/browser-cli-inspect.ts
921
- function registerBrowserInspectCommands(browser, parentOpts) {
922
- 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) => {
923
- const parent = parentOpts(cmd);
924
- const profile = parent?.browserProfile;
925
- try {
926
- const result = await callBrowserRequest(parent, {
927
- method: "POST",
928
- path: "/screenshot",
929
- query: profile ? { profile } : void 0,
930
- body: {
931
- targetId: targetId?.trim() || void 0,
932
- fullPage: Boolean(opts.fullPage),
933
- ref: opts.ref?.trim() || void 0,
934
- element: opts.element?.trim() || void 0,
935
- type: opts.type === "jpeg" ? "jpeg" : "png"
936
- }
937
- }, { timeoutMs: 2e4 });
938
- if (parent?.json) {
939
- defaultRuntime.log(JSON.stringify(result, null, 2));
940
- return;
941
- }
942
- defaultRuntime.log(`MEDIA:${shortenHomePath(result.path)}`);
943
- } catch (err) {
944
- defaultRuntime.error(danger(String(err)));
945
- defaultRuntime.exit(1);
946
- }
947
- });
948
- 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) => {
949
- const parent = parentOpts(cmd);
950
- const profile = parent?.browserProfile;
951
- const format = opts.format === "aria" ? "aria" : "ai";
952
- const configMode = format === "ai" && loadConfig().browser?.snapshotDefaults?.mode === "efficient" ? "efficient" : void 0;
953
- const mode = opts.efficient === true || opts.mode === "efficient" ? "efficient" : configMode;
954
- try {
955
- const result = await callBrowserRequest(parent, {
956
- method: "GET",
957
- path: "/snapshot",
958
- query: {
959
- format,
960
- targetId: opts.targetId?.trim() || void 0,
961
- limit: Number.isFinite(opts.limit) ? opts.limit : void 0,
962
- interactive: opts.interactive ? true : void 0,
963
- compact: opts.compact ? true : void 0,
964
- depth: Number.isFinite(opts.depth) ? opts.depth : void 0,
965
- selector: opts.selector?.trim() || void 0,
966
- frame: opts.frame?.trim() || void 0,
967
- labels: opts.labels ? true : void 0,
968
- mode,
969
- profile
970
- }
971
- }, { timeoutMs: 2e4 });
972
- if (opts.out) {
973
- const fs = await import("node:fs/promises");
974
- if (result.format === "ai") await fs.writeFile(opts.out, result.snapshot, "utf8");
975
- else {
976
- const payload = JSON.stringify(result, null, 2);
977
- await fs.writeFile(opts.out, payload, "utf8");
978
- }
979
- if (parent?.json) defaultRuntime.log(JSON.stringify({
980
- ok: true,
981
- out: opts.out,
982
- ...result.format === "ai" && result.imagePath ? { imagePath: result.imagePath } : {}
983
- }, null, 2));
984
- else {
985
- defaultRuntime.log(shortenHomePath(opts.out));
986
- if (result.format === "ai" && result.imagePath) defaultRuntime.log(`MEDIA:${shortenHomePath(result.imagePath)}`);
987
- }
988
- return;
989
- }
990
- if (parent?.json) {
991
- defaultRuntime.log(JSON.stringify(result, null, 2));
992
- return;
993
- }
994
- if (result.format === "ai") {
995
- defaultRuntime.log(result.snapshot);
996
- if (result.imagePath) defaultRuntime.log(`MEDIA:${shortenHomePath(result.imagePath)}`);
997
- return;
998
- }
999
- const nodes = "nodes" in result ? result.nodes : [];
1000
- defaultRuntime.log(nodes.map((n) => {
1001
- const indent = " ".repeat(Math.min(20, n.depth));
1002
- const name = n.name ? ` "${n.name}"` : "";
1003
- const value = n.value ? ` = "${n.value}"` : "";
1004
- return `${indent}- ${n.role}${name}${value}`;
1005
- }).join("\n"));
1006
- } catch (err) {
1007
- defaultRuntime.error(danger(String(err)));
1008
- defaultRuntime.exit(1);
1009
- }
1010
- });
1011
- }
1012
-
1013
- //#endregion
1014
- //#region src/cli/browser-cli-manage.ts
1015
- async function fetchBrowserStatus(parent, profile) {
1016
- return await callBrowserRequest(parent, {
1017
- method: "GET",
1018
- path: "/",
1019
- query: profile ? { profile } : void 0
1020
- }, { timeoutMs: 1500 });
1021
- }
1022
- async function runBrowserToggle(parent, params) {
1023
- await callBrowserRequest(parent, {
1024
- method: "POST",
1025
- path: params.path,
1026
- query: params.profile ? { profile: params.profile } : void 0
1027
- }, { timeoutMs: 15e3 });
1028
- const status = await fetchBrowserStatus(parent, params.profile);
1029
- if (parent?.json) {
1030
- defaultRuntime.log(JSON.stringify(status, null, 2));
1031
- return;
1032
- }
1033
- const name = status.profile ?? "remoteclaw";
1034
- defaultRuntime.log(info(`🦀 browser [${name}] running: ${status.running}`));
1035
- }
1036
- function runBrowserCommand$1(action) {
1037
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
1038
- defaultRuntime.error(danger(String(err)));
1039
- defaultRuntime.exit(1);
1040
- });
1041
- }
1042
- function logBrowserTabs(tabs, json) {
1043
- if (json) {
1044
- defaultRuntime.log(JSON.stringify({ tabs }, null, 2));
1045
- return;
1046
- }
1047
- if (tabs.length === 0) {
1048
- defaultRuntime.log("No tabs (browser closed or no targets).");
1049
- return;
1050
- }
1051
- defaultRuntime.log(tabs.map((t, i) => `${i + 1}. ${t.title || "(untitled)"}\n ${t.url}\n id: ${t.targetId}`).join("\n"));
1052
- }
1053
- function registerBrowserManageCommands(browser, parentOpts) {
1054
- browser.command("status").description("Show browser status").action(async (_opts, cmd) => {
1055
- const parent = parentOpts(cmd);
1056
- await runBrowserCommand$1(async () => {
1057
- const status = await fetchBrowserStatus(parent, parent?.browserProfile);
1058
- if (parent?.json) {
1059
- defaultRuntime.log(JSON.stringify(status, null, 2));
1060
- return;
1061
- }
1062
- const detectedPath = status.detectedExecutablePath ?? status.executablePath;
1063
- const detectedDisplay = detectedPath ? shortenHomePath(detectedPath) : "auto";
1064
- defaultRuntime.log([
1065
- `profile: ${status.profile ?? "remoteclaw"}`,
1066
- `enabled: ${status.enabled}`,
1067
- `running: ${status.running}`,
1068
- `cdpPort: ${status.cdpPort}`,
1069
- `cdpUrl: ${status.cdpUrl ?? `http://127.0.0.1:${status.cdpPort}`}`,
1070
- `browser: ${status.chosenBrowser ?? "unknown"}`,
1071
- `detectedBrowser: ${status.detectedBrowser ?? "unknown"}`,
1072
- `detectedPath: ${detectedDisplay}`,
1073
- `profileColor: ${status.color}`,
1074
- ...status.detectError ? [`detectError: ${status.detectError}`] : []
1075
- ].join("\n"));
1076
- });
1077
- });
1078
- browser.command("start").description("Start the browser (no-op if already running)").action(async (_opts, cmd) => {
1079
- const parent = parentOpts(cmd);
1080
- const profile = parent?.browserProfile;
1081
- await runBrowserCommand$1(async () => {
1082
- await runBrowserToggle(parent, {
1083
- profile,
1084
- path: "/start"
1085
- });
1086
- });
1087
- });
1088
- browser.command("stop").description("Stop the browser (best-effort)").action(async (_opts, cmd) => {
1089
- const parent = parentOpts(cmd);
1090
- const profile = parent?.browserProfile;
1091
- await runBrowserCommand$1(async () => {
1092
- await runBrowserToggle(parent, {
1093
- profile,
1094
- path: "/stop"
1095
- });
1096
- });
1097
- });
1098
- browser.command("reset-profile").description("Reset browser profile (moves it to Trash)").action(async (_opts, cmd) => {
1099
- const parent = parentOpts(cmd);
1100
- const profile = parent?.browserProfile;
1101
- await runBrowserCommand$1(async () => {
1102
- const result = await callBrowserRequest(parent, {
1103
- method: "POST",
1104
- path: "/reset-profile",
1105
- query: profile ? { profile } : void 0
1106
- }, { timeoutMs: 2e4 });
1107
- if (parent?.json) {
1108
- defaultRuntime.log(JSON.stringify(result, null, 2));
1109
- return;
1110
- }
1111
- if (!result.moved) {
1112
- defaultRuntime.log(info(`🦀 browser profile already missing.`));
1113
- return;
1114
- }
1115
- const dest = result.to ?? result.from;
1116
- defaultRuntime.log(info(`🦀 browser profile moved to Trash (${dest})`));
1117
- });
1118
- });
1119
- browser.command("tabs").description("List open tabs").action(async (_opts, cmd) => {
1120
- const parent = parentOpts(cmd);
1121
- const profile = parent?.browserProfile;
1122
- await runBrowserCommand$1(async () => {
1123
- logBrowserTabs((await callBrowserRequest(parent, {
1124
- method: "GET",
1125
- path: "/tabs",
1126
- query: profile ? { profile } : void 0
1127
- }, { timeoutMs: 3e3 })).tabs ?? [], parent?.json);
1128
- });
1129
- });
1130
- const tab = browser.command("tab").description("Tab shortcuts (index-based)").action(async (_opts, cmd) => {
1131
- const parent = parentOpts(cmd);
1132
- const profile = parent?.browserProfile;
1133
- await runBrowserCommand$1(async () => {
1134
- logBrowserTabs((await callBrowserRequest(parent, {
1135
- method: "POST",
1136
- path: "/tabs/action",
1137
- query: profile ? { profile } : void 0,
1138
- body: { action: "list" }
1139
- }, { timeoutMs: 1e4 })).tabs ?? [], parent?.json);
1140
- });
1141
- });
1142
- tab.command("new").description("Open a new tab (about:blank)").action(async (_opts, cmd) => {
1143
- const parent = parentOpts(cmd);
1144
- const profile = parent?.browserProfile;
1145
- await runBrowserCommand$1(async () => {
1146
- const result = await callBrowserRequest(parent, {
1147
- method: "POST",
1148
- path: "/tabs/action",
1149
- query: profile ? { profile } : void 0,
1150
- body: { action: "new" }
1151
- }, { timeoutMs: 1e4 });
1152
- if (parent?.json) {
1153
- defaultRuntime.log(JSON.stringify(result, null, 2));
1154
- return;
1155
- }
1156
- defaultRuntime.log("opened new tab");
1157
- });
1158
- });
1159
- tab.command("select").description("Focus tab by index (1-based)").argument("<index>", "Tab index (1-based)", (v) => Number(v)).action(async (index, _opts, cmd) => {
1160
- const parent = parentOpts(cmd);
1161
- const profile = parent?.browserProfile;
1162
- if (!Number.isFinite(index) || index < 1) {
1163
- defaultRuntime.error(danger("index must be a positive number"));
1164
- defaultRuntime.exit(1);
1165
- return;
1166
- }
1167
- await runBrowserCommand$1(async () => {
1168
- const result = await callBrowserRequest(parent, {
1169
- method: "POST",
1170
- path: "/tabs/action",
1171
- query: profile ? { profile } : void 0,
1172
- body: {
1173
- action: "select",
1174
- index: Math.floor(index) - 1
1175
- }
1176
- }, { timeoutMs: 1e4 });
1177
- if (parent?.json) {
1178
- defaultRuntime.log(JSON.stringify(result, null, 2));
1179
- return;
1180
- }
1181
- defaultRuntime.log(`selected tab ${Math.floor(index)}`);
1182
- });
1183
- });
1184
- 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) => {
1185
- const parent = parentOpts(cmd);
1186
- const profile = parent?.browserProfile;
1187
- const idx = typeof index === "number" && Number.isFinite(index) ? Math.floor(index) - 1 : void 0;
1188
- if (typeof idx === "number" && idx < 0) {
1189
- defaultRuntime.error(danger("index must be >= 1"));
1190
- defaultRuntime.exit(1);
1191
- return;
1192
- }
1193
- await runBrowserCommand$1(async () => {
1194
- const result = await callBrowserRequest(parent, {
1195
- method: "POST",
1196
- path: "/tabs/action",
1197
- query: profile ? { profile } : void 0,
1198
- body: {
1199
- action: "close",
1200
- index: idx
1201
- }
1202
- }, { timeoutMs: 1e4 });
1203
- if (parent?.json) {
1204
- defaultRuntime.log(JSON.stringify(result, null, 2));
1205
- return;
1206
- }
1207
- defaultRuntime.log("closed tab");
1208
- });
1209
- });
1210
- browser.command("open").description("Open a URL in a new tab").argument("<url>", "URL to open").action(async (url, _opts, cmd) => {
1211
- const parent = parentOpts(cmd);
1212
- const profile = parent?.browserProfile;
1213
- await runBrowserCommand$1(async () => {
1214
- const tab = await callBrowserRequest(parent, {
1215
- method: "POST",
1216
- path: "/tabs/open",
1217
- query: profile ? { profile } : void 0,
1218
- body: { url }
1219
- }, { timeoutMs: 15e3 });
1220
- if (parent?.json) {
1221
- defaultRuntime.log(JSON.stringify(tab, null, 2));
1222
- return;
1223
- }
1224
- defaultRuntime.log(`opened: ${tab.url}\nid: ${tab.targetId}`);
1225
- });
1226
- });
1227
- 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) => {
1228
- const parent = parentOpts(cmd);
1229
- const profile = parent?.browserProfile;
1230
- await runBrowserCommand$1(async () => {
1231
- await callBrowserRequest(parent, {
1232
- method: "POST",
1233
- path: "/tabs/focus",
1234
- query: profile ? { profile } : void 0,
1235
- body: { targetId }
1236
- }, { timeoutMs: 5e3 });
1237
- if (parent?.json) {
1238
- defaultRuntime.log(JSON.stringify({ ok: true }, null, 2));
1239
- return;
1240
- }
1241
- defaultRuntime.log(`focused tab ${targetId}`);
1242
- });
1243
- });
1244
- browser.command("close").description("Close a tab (target id optional)").argument("[targetId]", "Target id or unique prefix (optional)").action(async (targetId, _opts, cmd) => {
1245
- const parent = parentOpts(cmd);
1246
- const profile = parent?.browserProfile;
1247
- await runBrowserCommand$1(async () => {
1248
- if (targetId?.trim()) await callBrowserRequest(parent, {
1249
- method: "DELETE",
1250
- path: `/tabs/${encodeURIComponent(targetId.trim())}`,
1251
- query: profile ? { profile } : void 0
1252
- }, { timeoutMs: 5e3 });
1253
- else await callBrowserRequest(parent, {
1254
- method: "POST",
1255
- path: "/act",
1256
- query: profile ? { profile } : void 0,
1257
- body: { kind: "close" }
1258
- }, { timeoutMs: 2e4 });
1259
- if (parent?.json) {
1260
- defaultRuntime.log(JSON.stringify({ ok: true }, null, 2));
1261
- return;
1262
- }
1263
- defaultRuntime.log("closed tab");
1264
- });
1265
- });
1266
- browser.command("profiles").description("List all browser profiles").action(async (_opts, cmd) => {
1267
- const parent = parentOpts(cmd);
1268
- await runBrowserCommand$1(async () => {
1269
- const profiles = (await callBrowserRequest(parent, {
1270
- method: "GET",
1271
- path: "/profiles"
1272
- }, { timeoutMs: 3e3 })).profiles ?? [];
1273
- if (parent?.json) {
1274
- defaultRuntime.log(JSON.stringify({ profiles }, null, 2));
1275
- return;
1276
- }
1277
- if (profiles.length === 0) {
1278
- defaultRuntime.log("No profiles configured.");
1279
- return;
1280
- }
1281
- defaultRuntime.log(profiles.map((p) => {
1282
- const status = p.running ? "running" : "stopped";
1283
- const tabs = p.running ? ` (${p.tabCount} tabs)` : "";
1284
- const def = p.isDefault ? " [default]" : "";
1285
- const loc = p.isRemote ? `cdpUrl: ${p.cdpUrl}` : `port: ${p.cdpPort}`;
1286
- const remote = p.isRemote ? " [remote]" : "";
1287
- return `${p.name}: ${status}${tabs}${def}${remote}\n ${loc}, color: ${p.color}`;
1288
- }).join("\n"));
1289
- });
1290
- });
1291
- 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) => {
1292
- const parent = parentOpts(cmd);
1293
- await runBrowserCommand$1(async () => {
1294
- const result = await callBrowserRequest(parent, {
1295
- method: "POST",
1296
- path: "/profiles/create",
1297
- body: {
1298
- name: opts.name,
1299
- color: opts.color,
1300
- cdpUrl: opts.cdpUrl,
1301
- driver: opts.driver === "extension" ? "extension" : void 0
1302
- }
1303
- }, { timeoutMs: 1e4 });
1304
- if (parent?.json) {
1305
- defaultRuntime.log(JSON.stringify(result, null, 2));
1306
- return;
1307
- }
1308
- const loc = result.isRemote ? ` cdpUrl: ${result.cdpUrl}` : ` port: ${result.cdpPort}`;
1309
- defaultRuntime.log(info(`🦀 Created profile "${result.profile}"\n${loc}\n color: ${result.color}${opts.driver === "extension" ? "\n driver: extension" : ""}`));
1310
- });
1311
- });
1312
- browser.command("delete-profile").description("Delete a browser profile").requiredOption("--name <name>", "Profile name to delete").action(async (opts, cmd) => {
1313
- const parent = parentOpts(cmd);
1314
- await runBrowserCommand$1(async () => {
1315
- const result = await callBrowserRequest(parent, {
1316
- method: "DELETE",
1317
- path: `/profiles/${encodeURIComponent(opts.name)}`
1318
- }, { timeoutMs: 2e4 });
1319
- if (parent?.json) {
1320
- defaultRuntime.log(JSON.stringify(result, null, 2));
1321
- return;
1322
- }
1323
- const msg = result.deleted ? `🦀 Deleted profile "${result.profile}" (user data removed)` : `🦀 Deleted profile "${result.profile}" (no user data found)`;
1324
- defaultRuntime.log(info(msg));
1325
- });
1326
- });
1327
- }
1328
-
1329
- //#endregion
1330
- //#region src/cli/browser-cli-state.cookies-storage.ts
1331
- function resolveUrl(opts, command) {
1332
- if (typeof opts.url === "string" && opts.url.trim()) return opts.url.trim();
1333
- const inherited = inheritOptionFromParent(command, "url");
1334
- if (typeof inherited === "string" && inherited.trim()) return inherited.trim();
1335
- }
1336
- function resolveTargetId(rawTargetId, command) {
1337
- const local = typeof rawTargetId === "string" ? rawTargetId.trim() : "";
1338
- if (local) return local;
1339
- const inherited = inheritOptionFromParent(command, "targetId");
1340
- if (typeof inherited !== "string") return;
1341
- const trimmed = inherited.trim();
1342
- return trimmed ? trimmed : void 0;
1343
- }
1344
- function registerBrowserCookiesAndStorageCommands(browser, parentOpts) {
1345
- const cookies = browser.command("cookies").description("Read/write cookies");
1346
- cookies.option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
1347
- const parent = parentOpts(cmd);
1348
- const profile = parent?.browserProfile;
1349
- const targetId = resolveTargetId(opts.targetId, cmd);
1350
- try {
1351
- const result = await callBrowserRequest(parent, {
1352
- method: "GET",
1353
- path: "/cookies",
1354
- query: {
1355
- targetId,
1356
- profile
1357
- }
1358
- }, { timeoutMs: 2e4 });
1359
- if (parent?.json) {
1360
- defaultRuntime.log(JSON.stringify(result, null, 2));
1361
- return;
1362
- }
1363
- defaultRuntime.log(JSON.stringify(result.cookies ?? [], null, 2));
1364
- } catch (err) {
1365
- defaultRuntime.error(danger(String(err)));
1366
- defaultRuntime.exit(1);
1367
- }
1368
- });
1369
- 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) => {
1370
- const parent = parentOpts(cmd);
1371
- const profile = parent?.browserProfile;
1372
- const targetId = resolveTargetId(opts.targetId, cmd);
1373
- const url = resolveUrl(opts, cmd);
1374
- if (!url) {
1375
- defaultRuntime.error(danger("Missing required --url option for cookies set"));
1376
- defaultRuntime.exit(1);
1377
- return;
1378
- }
1379
- try {
1380
- const result = await callBrowserRequest(parent, {
1381
- method: "POST",
1382
- path: "/cookies/set",
1383
- query: profile ? { profile } : void 0,
1384
- body: {
1385
- targetId,
1386
- cookie: {
1387
- name,
1388
- value,
1389
- url
1390
- }
1391
- }
1392
- }, { timeoutMs: 2e4 });
1393
- if (parent?.json) {
1394
- defaultRuntime.log(JSON.stringify(result, null, 2));
1395
- return;
1396
- }
1397
- defaultRuntime.log(`cookie set: ${name}`);
1398
- } catch (err) {
1399
- defaultRuntime.error(danger(String(err)));
1400
- defaultRuntime.exit(1);
1401
- }
1402
- });
1403
- cookies.command("clear").description("Clear all cookies").option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd) => {
1404
- const parent = parentOpts(cmd);
1405
- const profile = parent?.browserProfile;
1406
- const targetId = resolveTargetId(opts.targetId, cmd);
1407
- try {
1408
- const result = await callBrowserRequest(parent, {
1409
- method: "POST",
1410
- path: "/cookies/clear",
1411
- query: profile ? { profile } : void 0,
1412
- body: { targetId }
1413
- }, { timeoutMs: 2e4 });
1414
- if (parent?.json) {
1415
- defaultRuntime.log(JSON.stringify(result, null, 2));
1416
- return;
1417
- }
1418
- defaultRuntime.log("cookies cleared");
1419
- } catch (err) {
1420
- defaultRuntime.error(danger(String(err)));
1421
- defaultRuntime.exit(1);
1422
- }
1423
- });
1424
- const storage = browser.command("storage").description("Read/write localStorage/sessionStorage");
1425
- function registerStorageKind(kind) {
1426
- const cmd = storage.command(kind).description(`${kind}Storage commands`);
1427
- 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) => {
1428
- const parent = parentOpts(cmd2);
1429
- const profile = parent?.browserProfile;
1430
- const targetId = resolveTargetId(opts.targetId, cmd2);
1431
- try {
1432
- const result = await callBrowserRequest(parent, {
1433
- method: "GET",
1434
- path: `/storage/${kind}`,
1435
- query: {
1436
- key: key?.trim() || void 0,
1437
- targetId,
1438
- profile
1439
- }
1440
- }, { timeoutMs: 2e4 });
1441
- if (parent?.json) {
1442
- defaultRuntime.log(JSON.stringify(result, null, 2));
1443
- return;
1444
- }
1445
- defaultRuntime.log(JSON.stringify(result.values ?? {}, null, 2));
1446
- } catch (err) {
1447
- defaultRuntime.error(danger(String(err)));
1448
- defaultRuntime.exit(1);
1449
- }
1450
- });
1451
- 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) => {
1452
- const parent = parentOpts(cmd2);
1453
- const profile = parent?.browserProfile;
1454
- const targetId = resolveTargetId(opts.targetId, cmd2);
1455
- try {
1456
- const result = await callBrowserRequest(parent, {
1457
- method: "POST",
1458
- path: `/storage/${kind}/set`,
1459
- query: profile ? { profile } : void 0,
1460
- body: {
1461
- key,
1462
- value,
1463
- targetId
1464
- }
1465
- }, { timeoutMs: 2e4 });
1466
- if (parent?.json) {
1467
- defaultRuntime.log(JSON.stringify(result, null, 2));
1468
- return;
1469
- }
1470
- defaultRuntime.log(`${kind}Storage set: ${key}`);
1471
- } catch (err) {
1472
- defaultRuntime.error(danger(String(err)));
1473
- defaultRuntime.exit(1);
1474
- }
1475
- });
1476
- cmd.command("clear").description(`Clear all ${kind}Storage keys`).option("--target-id <id>", "CDP target id (or unique prefix)").action(async (opts, cmd2) => {
1477
- const parent = parentOpts(cmd2);
1478
- const profile = parent?.browserProfile;
1479
- const targetId = resolveTargetId(opts.targetId, cmd2);
1480
- try {
1481
- const result = await callBrowserRequest(parent, {
1482
- method: "POST",
1483
- path: `/storage/${kind}/clear`,
1484
- query: profile ? { profile } : void 0,
1485
- body: { targetId }
1486
- }, { timeoutMs: 2e4 });
1487
- if (parent?.json) {
1488
- defaultRuntime.log(JSON.stringify(result, null, 2));
1489
- return;
1490
- }
1491
- defaultRuntime.log(`${kind}Storage cleared`);
1492
- } catch (err) {
1493
- defaultRuntime.error(danger(String(err)));
1494
- defaultRuntime.exit(1);
1495
- }
1496
- });
1497
- }
1498
- registerStorageKind("local");
1499
- registerStorageKind("session");
1500
- }
1501
-
1502
- //#endregion
1503
- //#region src/cli/browser-cli-state.ts
1504
- function parseOnOff(raw) {
1505
- const parsed = parseBooleanValue(raw);
1506
- return parsed === void 0 ? null : parsed;
1507
- }
1508
- function runBrowserCommand(action) {
1509
- return runCommandWithRuntime(defaultRuntime, action, (err) => {
1510
- defaultRuntime.error(danger(String(err)));
1511
- defaultRuntime.exit(1);
1512
- });
1513
- }
1514
- async function runBrowserSetRequest(params) {
1515
- await runBrowserCommand(async () => {
1516
- const profile = params.parent?.browserProfile;
1517
- const result = await callBrowserRequest(params.parent, {
1518
- method: "POST",
1519
- path: params.path,
1520
- query: profile ? { profile } : void 0,
1521
- body: params.body
1522
- }, { timeoutMs: 2e4 });
1523
- if (params.parent?.json) {
1524
- defaultRuntime.log(JSON.stringify(result, null, 2));
1525
- return;
1526
- }
1527
- defaultRuntime.log(params.successMessage);
1528
- });
1529
- }
1530
- function registerBrowserStateCommands(browser, parentOpts) {
1531
- registerBrowserCookiesAndStorageCommands(browser, parentOpts);
1532
- const set = browser.command("set").description("Browser environment settings");
1533
- 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) => {
1534
- const parent = parentOpts(cmd);
1535
- const profile = parent?.browserProfile;
1536
- await runBrowserCommand(async () => {
1537
- await runBrowserResizeWithOutput({
1538
- parent,
1539
- profile,
1540
- width,
1541
- height,
1542
- targetId: opts.targetId,
1543
- timeoutMs: 2e4,
1544
- successMessage: `viewport set: ${width}x${height}`
1545
- });
1546
- });
1547
- });
1548
- 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) => {
1549
- const parent = parentOpts(cmd);
1550
- const offline = parseOnOff(value);
1551
- if (offline === null) {
1552
- defaultRuntime.error(danger("Expected on|off"));
1553
- defaultRuntime.exit(1);
1554
- return;
1555
- }
1556
- await runBrowserSetRequest({
1557
- parent,
1558
- path: "/set/offline",
1559
- body: {
1560
- offline,
1561
- targetId: opts.targetId?.trim() || void 0
1562
- },
1563
- successMessage: `offline: ${offline}`
1564
- });
1565
- });
1566
- 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) => {
1567
- const parent = parentOpts(cmd);
1568
- await runBrowserCommand(async () => {
1569
- const headersJsonValue = typeof opts.headersJson === "string" && opts.headersJson.trim() || (headersJson?.trim() ? headersJson.trim() : void 0);
1570
- if (!headersJsonValue) throw new Error("Missing headers JSON (pass --headers-json or positional JSON argument)");
1571
- const parsed = JSON.parse(String(headersJsonValue));
1572
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) throw new Error("Headers JSON must be a JSON object");
1573
- const headers = {};
1574
- for (const [k, v] of Object.entries(parsed)) if (typeof v === "string") headers[k] = v;
1575
- const profile = parent?.browserProfile;
1576
- const result = await callBrowserRequest(parent, {
1577
- method: "POST",
1578
- path: "/set/headers",
1579
- query: profile ? { profile } : void 0,
1580
- body: {
1581
- headers,
1582
- targetId: opts.targetId?.trim() || void 0
1583
- }
1584
- }, { timeoutMs: 2e4 });
1585
- if (parent?.json) {
1586
- defaultRuntime.log(JSON.stringify(result, null, 2));
1587
- return;
1588
- }
1589
- defaultRuntime.log("headers set");
1590
- });
1591
- });
1592
- 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) => {
1593
- await runBrowserSetRequest({
1594
- parent: parentOpts(cmd),
1595
- path: "/set/credentials",
1596
- body: {
1597
- username: username?.trim() || void 0,
1598
- password,
1599
- clear: Boolean(opts.clear),
1600
- targetId: opts.targetId?.trim() || void 0
1601
- },
1602
- successMessage: opts.clear ? "credentials cleared" : "credentials set"
1603
- });
1604
- });
1605
- 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) => {
1606
- await runBrowserSetRequest({
1607
- parent: parentOpts(cmd),
1608
- path: "/set/geolocation",
1609
- body: {
1610
- latitude: Number.isFinite(latitude) ? latitude : void 0,
1611
- longitude: Number.isFinite(longitude) ? longitude : void 0,
1612
- accuracy: Number.isFinite(opts.accuracy) ? opts.accuracy : void 0,
1613
- origin: opts.origin?.trim() || void 0,
1614
- clear: Boolean(opts.clear),
1615
- targetId: opts.targetId?.trim() || void 0
1616
- },
1617
- successMessage: opts.clear ? "geolocation cleared" : "geolocation set"
1618
- });
1619
- });
1620
- 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) => {
1621
- const parent = parentOpts(cmd);
1622
- const v = value.trim().toLowerCase();
1623
- const colorScheme = v === "dark" ? "dark" : v === "light" ? "light" : v === "none" ? "none" : null;
1624
- if (!colorScheme) {
1625
- defaultRuntime.error(danger("Expected dark|light|none"));
1626
- defaultRuntime.exit(1);
1627
- return;
1628
- }
1629
- await runBrowserSetRequest({
1630
- parent,
1631
- path: "/set/media",
1632
- body: {
1633
- colorScheme,
1634
- targetId: opts.targetId?.trim() || void 0
1635
- },
1636
- successMessage: `media colorScheme: ${colorScheme}`
1637
- });
1638
- });
1639
- 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) => {
1640
- await runBrowserSetRequest({
1641
- parent: parentOpts(cmd),
1642
- path: "/set/timezone",
1643
- body: {
1644
- timezoneId,
1645
- targetId: opts.targetId?.trim() || void 0
1646
- },
1647
- successMessage: `timezone: ${timezoneId}`
1648
- });
1649
- });
1650
- 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) => {
1651
- await runBrowserSetRequest({
1652
- parent: parentOpts(cmd),
1653
- path: "/set/locale",
1654
- body: {
1655
- locale,
1656
- targetId: opts.targetId?.trim() || void 0
1657
- },
1658
- successMessage: `locale: ${locale}`
1659
- });
1660
- });
1661
- 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) => {
1662
- await runBrowserSetRequest({
1663
- parent: parentOpts(cmd),
1664
- path: "/set/device",
1665
- body: {
1666
- name,
1667
- targetId: opts.targetId?.trim() || void 0
1668
- },
1669
- successMessage: `device: ${name}`
1670
- });
1671
- });
1672
- }
1673
-
1674
- //#endregion
1675
- //#region src/cli/browser-cli.ts
1676
- function registerBrowserCli(program) {
1677
- 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(() => {
1678
- browser.outputHelp();
1679
- defaultRuntime.error(danger(`Missing subcommand. Try: "${formatCliCommand("remoteclaw browser status")}"`));
1680
- defaultRuntime.exit(1);
1681
- });
1682
- addGatewayClientOptions(browser);
1683
- const parentOpts = (cmd) => cmd.parent?.opts?.();
1684
- registerBrowserManageCommands(browser, parentOpts);
1685
- registerBrowserExtensionCommands(browser, parentOpts);
1686
- registerBrowserInspectCommands(browser, parentOpts);
1687
- registerBrowserActionInputCommands(browser, parentOpts);
1688
- registerBrowserActionObserveCommands(browser, parentOpts);
1689
- registerBrowserDebugCommands(browser, parentOpts);
1690
- registerBrowserStateCommands(browser, parentOpts);
1691
- }
1692
-
1693
- //#endregion
1694
- export { registerBrowserCli };