@qqbrowser/openclaw-qbot 0.0.139 → 0.0.142

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 (1565) hide show
  1. package/dist/account-lookup-CW-_CL7y.js +1 -0
  2. package/dist/acp-cli-BaslDuk6.js +1 -0
  3. package/dist/acp-cli-f5-uI85a.js +1 -0
  4. package/dist/active-listener-Cce5tcPa.js +1 -0
  5. package/dist/active-listener-D8VOdVx3.js +1 -0
  6. package/dist/active-listener-DeKRt_UV.js +1 -0
  7. package/dist/active-listener-Dle9QX40.js +1 -0
  8. package/dist/agent-scope-DAWJwFfl.js +1 -0
  9. package/dist/agent-scope-DXZc3eNT.js +1 -0
  10. package/dist/agents-Bpp_F5In.js +1 -0
  11. package/dist/agents.config-B6LRG9eP.js +1 -0
  12. package/dist/agents.config-DfIJAGcd.js +1 -0
  13. package/dist/allow-from-B6dI7oz8.js +1 -0
  14. package/dist/allow-from-DEeVIPKS.js +1 -0
  15. package/dist/api-BeG0ObSq.js +1 -0
  16. package/dist/api-Dx8x1KTs.js +1 -0
  17. package/dist/api-key-rotation-BRt-vnRV.js +1 -0
  18. package/dist/api-key-rotation-CCH1wYVU.js +1 -0
  19. package/dist/api-key-rotation-D0QU-kQ9.js +1 -0
  20. package/dist/api-key-rotation-Di6QgXx7.js +1 -0
  21. package/dist/arg-split-BOqSMBuf.js +1 -0
  22. package/dist/arg-split-DE5RqDHq.js +1 -0
  23. package/dist/audio-preflight-B5o7P9qi.js +1 -0
  24. package/dist/audio-preflight-CxD7VCHW.js +1 -0
  25. package/dist/audio-preflight-DKSCBKRb.js +1 -0
  26. package/dist/audio-preflight-Dpk8-Bmk.js +1 -0
  27. package/dist/audio-transcription-runner-Bd1OZC6K.js +1 -0
  28. package/dist/audio-transcription-runner-D4Bp6MM7.js +1 -0
  29. package/dist/audio-transcription-runner-DPwmBYQj.js +1 -0
  30. package/dist/audio-transcription-runner-DSr6OIz1.js +1 -0
  31. package/dist/audit-C7RP7G_g.js +1 -0
  32. package/dist/audit-jkdcAUep.js +1 -0
  33. package/dist/audit-membership-runtime-BpRsMj5-.js +1 -0
  34. package/dist/audit-membership-runtime-BsfLZNBj.js +1 -0
  35. package/dist/audit-membership-runtime-DRHirRmx.js +1 -0
  36. package/dist/audit-membership-runtime-g0dEWJTp.js +1 -0
  37. package/dist/audit-membership-runtime-kdyToskD.js +1 -0
  38. package/dist/auth-choice-B7LSoXZ_.js +1 -0
  39. package/dist/auth-choice-CxMH4c-u.js +1 -0
  40. package/dist/auth-choice-DvTApGhx.js +1 -0
  41. package/dist/auth-choice-EQdNd7jO.js +1 -0
  42. package/dist/auth-choice-options-B3WQyS7I.js +1 -0
  43. package/dist/auth-choice-options-Dw14noox.js +1 -0
  44. package/dist/auth-choice-prompt-uegl56cf.js +1 -0
  45. package/dist/auth-choice-prompt-xYj13czb.js +1 -0
  46. package/dist/auth-choice.apply-helpers-B7S-PcH_.js +1 -0
  47. package/dist/auth-choice.apply-helpers-gaL-oSft.js +1 -0
  48. package/dist/auth-profiles-T8DuH3ax.js +1 -0
  49. package/dist/auth-token-9OTF1FmL.js +1 -0
  50. package/dist/auth-token-kGltuM6S.js +1 -0
  51. package/dist/banner-9u45RL26.js +1 -0
  52. package/dist/bonjour-discovery-CFZXPega.js +1 -0
  53. package/dist/bonjour-discovery-CjivQOxi.js +1 -0
  54. package/dist/boolean-Ch3DfXPy.js +1 -0
  55. package/dist/boolean-D15s2V33.js +1 -0
  56. package/dist/boolean-DypnRoRK.js +1 -0
  57. package/dist/brew-COcDl8CB.js +1 -0
  58. package/dist/brew-DDPm_HfE.js +1 -0
  59. package/dist/browser-cli-DQHE2iPY.js +1 -0
  60. package/dist/browser-cli-Dt0ds-an.js +1 -0
  61. package/dist/build-info.json +3 -3
  62. package/dist/bundled/boot-md/handler.js +1 -0
  63. package/dist/bundled/bootstrap-extra-files/handler.js +1 -0
  64. package/dist/bundled/command-logger/handler.js +1 -0
  65. package/dist/bundled/session-memory/handler.js +1 -0
  66. package/dist/call-B8Fb4_oh.js +1 -0
  67. package/dist/call-CqoMqP5b.js +1 -0
  68. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  69. package/dist/canvas-host/a2ui/a2ui.bundle.js +1705 -2
  70. package/dist/channel-account-context-BMPAMZEv.js +1 -0
  71. package/dist/channel-account-context-DAcarnqW.js +1 -0
  72. package/dist/channel-activity-B04WbrrK.js +1 -0
  73. package/dist/channel-activity-BBrgoad1.js +1 -0
  74. package/dist/channel-activity-CgbOWaay.js +1 -0
  75. package/dist/channel-activity-YIMhOAUo.js +1 -0
  76. package/dist/channel-activity-YjYNzCpJ.js +1 -0
  77. package/dist/channel-options-CEIzjOno.js +1 -0
  78. package/dist/channel-options-D2syI791.js +1 -0
  79. package/dist/channel-selection-BBeE1TmB.js +1 -0
  80. package/dist/channel-selection-CbNtbAEf.js +1 -0
  81. package/dist/channel-web-BrElpZAc.js +1 -0
  82. package/dist/channel-web-CxHbET4B.js +1 -0
  83. package/dist/channels/plugins/actions/discord.js +1 -0
  84. package/dist/channels/plugins/actions/signal.js +1 -0
  85. package/dist/channels/plugins/actions/telegram.js +1 -0
  86. package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -0
  87. package/dist/channels-cli-BmAJuuRs.js +1 -0
  88. package/dist/channels-cli-Dgosczr6.js +1 -0
  89. package/dist/channels-status-issues-8eFrGKyf.js +1 -0
  90. package/dist/channels-status-issues-PRgOT90w.js +1 -0
  91. package/dist/chat-envelope-Bznn2SoS.js +1 -0
  92. package/dist/chat-envelope-HVpKusFc.js +1 -0
  93. package/dist/clack-prompter-DBPdGdqp.js +1 -0
  94. package/dist/clack-prompter-Dq0aY6iM.js +1 -0
  95. package/dist/clawbot-cli-CgS7TkEx.js +1 -0
  96. package/dist/clawbot-cli-DZ2K0OTk.js +1 -0
  97. package/dist/cleanup-utils-BWm70DoD.js +1 -0
  98. package/dist/cleanup-utils-D-RhEX6F.js +1 -0
  99. package/dist/cli-BcnoCo4z.js +1 -0
  100. package/dist/cli-D8T2tphD.js +1 -0
  101. package/dist/cli-utils-BY7dLMFy.js +1 -0
  102. package/dist/cli-utils-BleB1eys.js +1 -0
  103. package/dist/clipboard-Bk8cviBt.js +1 -0
  104. package/dist/clipboard-CKT_VIkG.js +1 -0
  105. package/dist/cmd-argv-BBT5l8AV.js +1 -0
  106. package/dist/cmd-argv-Bh-KpaZ0.js +1 -0
  107. package/dist/command-format-BbDT1tlm.js +1 -0
  108. package/dist/command-format-CLxIPuLR.js +1 -0
  109. package/dist/command-options-BpOUDl2S.js +1 -0
  110. package/dist/command-options-Bq5nQxz6.js +1 -0
  111. package/dist/command-poll-backoff-BZLHYB2k.js +1 -0
  112. package/dist/command-poll-backoff-Cww_r-24.js +1 -0
  113. package/dist/command-poll-backoff-Df6cOQrX.js +1 -0
  114. package/dist/command-poll-backoff-endAPdwn.js +1 -0
  115. package/dist/command-registry-CfuXCRwV.js +1 -0
  116. package/dist/command-secret-targets-BVN3kiT9.js +1 -0
  117. package/dist/command-secret-targets-BlN-J_fA.js +1 -0
  118. package/dist/commands-CGpM84iR.js +1 -0
  119. package/dist/commands-Dy7duWlt.js +1 -0
  120. package/dist/commands-registry-B1x54ukc.js +1 -0
  121. package/dist/commands-registry-Cpl4QnG4.js +1 -0
  122. package/dist/commands-registry-D40KqYOm.js +1 -0
  123. package/dist/commands-registry-SeddSmFK.js +1 -0
  124. package/dist/compact-Dg66DXx_.js +1 -0
  125. package/dist/completion-cli-BZi4nuQb.js +1 -0
  126. package/dist/completion-cli-C40TWdsv.js +1 -0
  127. package/dist/config-BqW5S1xL.js +1 -0
  128. package/dist/config-D12ZLKqh.js +1 -0
  129. package/dist/config-cli-1ojSLwAj.js +1 -0
  130. package/dist/config-cli-CBte2b1h.js +1 -0
  131. package/dist/config-guard-BTNXbWoO.js +1 -0
  132. package/dist/config-guard-sYYx9zEF.js +1 -0
  133. package/dist/config-validation-C1La_IZU.js +1 -0
  134. package/dist/config-validation-DviYxW8Y.js +1 -0
  135. package/dist/configure-DJrNDEpR.js +1 -0
  136. package/dist/configure-kod4tmZa.js +1 -0
  137. package/dist/connection-auth-B_Uk6Vk8.js +1 -0
  138. package/dist/connection-auth-C8iru0UB.js +1 -0
  139. package/dist/context-window-guard-7crlatf9.js +1 -0
  140. package/dist/context-window-guard-CPChk363.js +1 -0
  141. package/dist/control-ui-assets-BIa0GGDg.js +1 -0
  142. package/dist/control-ui-assets-CTHGGgaX.js +1 -0
  143. package/dist/cron-cli-Dha16Lo-.js +1 -0
  144. package/dist/cron-cli-QHS2pKZ_.js +1 -0
  145. package/dist/daemon-cli-BuXTzSnU.js +1 -0
  146. package/dist/daemon-cli-DOTKuS7d.js +1 -0
  147. package/dist/daemon-cli.js +1 -0
  148. package/dist/daemon-install-C30rBssi.js +1 -0
  149. package/dist/daemon-install-HrqlOCrc.js +1 -0
  150. package/dist/daemon-install-plan.shared-CfA37Ut_.js +1 -0
  151. package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -0
  152. package/dist/daemon-runtime-DHiDbRuC.js +1 -0
  153. package/dist/daemon-runtime-VcpeBRJV.js +1 -0
  154. package/dist/dangerous-name-matching-BOmvAibz.js +1 -0
  155. package/dist/dangerous-name-matching-DtllRqBD.js +1 -0
  156. package/dist/dangerous-tools-CFRYQJ6V.js +1 -0
  157. package/dist/dangerous-tools-oYCu5wfC.js +1 -0
  158. package/dist/deliver-56mQkDw3.js +1 -0
  159. package/dist/deliver-BFQ4Zx9z.js +1 -0
  160. package/dist/deliver-BHuhHfkH.js +1 -0
  161. package/dist/deliver-ClBkV2eD.js +1 -0
  162. package/dist/delivery-queue-CKbauSFq.js +1 -0
  163. package/dist/delivery-queue-nkPJu0fY.js +1 -0
  164. package/dist/device-pairing-CTFpaTrD.js +1 -0
  165. package/dist/device-pairing-QTK0dod3.js +1 -0
  166. package/dist/devices-cli-Ckxd0k0I.js +1 -0
  167. package/dist/devices-cli-Db36mBHq.js +1 -0
  168. package/dist/diagnostic-BrE4lMIf.js +1 -0
  169. package/dist/diagnostic-CDxNevIQ.js +1 -0
  170. package/dist/diagnostic-DOzHPnht.js +1 -0
  171. package/dist/diagnostic-DQq4Bwrs.js +1 -0
  172. package/dist/diagnostics-BgbeL9KE.js +1 -0
  173. package/dist/diagnostics-Cdctg9K_.js +1 -0
  174. package/dist/directory-cli-DDTaUkjW.js +1 -0
  175. package/dist/directory-cli-_gTFSHMW.js +1 -0
  176. package/dist/dns-cli--4PwtR2Y.js +1 -0
  177. package/dist/dns-cli-C4DwKquN.js +1 -0
  178. package/dist/docs-cli-Cdw9Iz9a.js +1 -0
  179. package/dist/docs-cli-ClD2UyX1.js +1 -0
  180. package/dist/doctor-completion-BJ6steqx.js +1 -0
  181. package/dist/doctor-completion-DMJhfrtC.js +1 -0
  182. package/dist/doctor-config-flow-D4F3mz4h.js +1 -0
  183. package/dist/doctor-config-flow-DnOyVZhQ.js +1 -0
  184. package/dist/enable-BhD84GhD.js +1 -0
  185. package/dist/enable-Ccf9wSM8.js +1 -0
  186. package/dist/entry-status-CCwwKO43.js +1 -0
  187. package/dist/entry-status-CoXkbJcX.js +1 -0
  188. package/dist/entry.js +1 -0
  189. package/dist/env-D7wNuBx1.js +1 -0
  190. package/dist/env-overrides-DHtB4kK3.js +1 -0
  191. package/dist/env-overrides-DXJbFrwI.js +1 -0
  192. package/dist/errors-6SQWM9dj.js +1 -0
  193. package/dist/errors-Bunti32V.js +1 -0
  194. package/dist/exec-B3eleY5O.js +1 -0
  195. package/dist/exec-DHqLtFYt.js +1 -0
  196. package/dist/exec-approvals-BXO9Cezj.js +1 -0
  197. package/dist/exec-approvals-BpBNEy6i.js +1 -0
  198. package/dist/exec-approvals-allowlist-CE3nYh0K.js +1 -0
  199. package/dist/exec-approvals-allowlist-D8mN7nxV.js +1 -0
  200. package/dist/exec-approvals-cli-CUcuN63y.js +1 -0
  201. package/dist/exec-approvals-cli-CxUGD08t.js +1 -0
  202. package/dist/exec-safe-bin-runtime-policy-Dt0GchLp.js +1 -0
  203. package/dist/exec-safe-bin-runtime-policy-dcCS_Adf.js +1 -0
  204. package/dist/fetch-B9tORjG8.js +1 -0
  205. package/dist/fetch-BJT3BrkJ.js +1 -0
  206. package/dist/fetch-B_wRifvZ.js +1 -0
  207. package/dist/fetch-Bn0mWg6a.js +1 -0
  208. package/dist/fetch-CQaNr5J1.js +1 -0
  209. package/dist/fetch-Ce-scEU-.js +1 -0
  210. package/dist/fetch-D0rZDHKO.js +1 -0
  211. package/dist/fetch-DHo17YmK.js +1 -0
  212. package/dist/fetch-Dh-apy46.js +1 -0
  213. package/dist/fetch-Dikjvc5M.js +1 -0
  214. package/dist/fetch-DsjPfQlp.js +1 -0
  215. package/dist/fetch-_g8lZ8K8.js +1 -0
  216. package/dist/fetch-guard-BrTtJw7h.js +1 -0
  217. package/dist/fetch-guard-D10s0raB.js +1 -0
  218. package/dist/fetch-guard-DPdY0NXR.js +1 -0
  219. package/dist/fetch-guard-cu7DGSRF.js +1 -0
  220. package/dist/fetch-hy0JKSsm.js +1 -0
  221. package/dist/fetch-timeout-CdYxWG9w.js +1 -0
  222. package/dist/fetch-timeout-Cj8_oAls.js +1 -0
  223. package/dist/fetch-timeout-DoOI_izT.js +1 -0
  224. package/dist/fetch-timeout-u8g99Ax0.js +1 -0
  225. package/dist/format-Bn1bwJKX.js +1 -0
  226. package/dist/format-Ce7I7s-k.js +1 -0
  227. package/dist/format-duration-C8AzNqKh.js +1 -0
  228. package/dist/format-duration-D5AMtmHa.js +1 -0
  229. package/dist/format-relative-B9pSIdGe.js +1 -0
  230. package/dist/format-relative-DkMjYy7z.js +1 -0
  231. package/dist/frontmatter-BkZkwkVO.js +1 -0
  232. package/dist/frontmatter-C7mzDNxd.js +1 -0
  233. package/dist/frontmatter-CzpfPBFl.js +1 -0
  234. package/dist/gateway-cli-CKu0FA7D.js +1 -0
  235. package/dist/gateway-cli-C_s9eMlC.js +1 -0
  236. package/dist/gateway-install-token-BCnuZeh1.js +1 -0
  237. package/dist/gateway-install-token-DiDvDPJQ.js +1 -0
  238. package/dist/gateway-rpc-iFvDyHYd.js +1 -0
  239. package/dist/gateway-rpc-tEEvY0kH.js +1 -0
  240. package/dist/github-copilot-token-C79yeDKS.js +1 -0
  241. package/dist/github-copilot-token-DGYAlOmV.js +1 -0
  242. package/dist/github-copilot-token-DePP-lIf.js +1 -0
  243. package/dist/github-copilot-token-wm6mbypz.js +1 -0
  244. package/dist/gmail-setup-utils-CYOH3zzx.js +1 -0
  245. package/dist/gmail-setup-utils-S-MyEGuj.js +1 -0
  246. package/dist/group-access-BHKVOhrj.js +1 -0
  247. package/dist/group-access-D2DOYMfr.js +1 -0
  248. package/dist/health-BgOggK9k.js +1 -0
  249. package/dist/health-PaRHFItm.js +1 -0
  250. package/dist/health-format-B1nj3Wfn.js +1 -0
  251. package/dist/health-format-VBr6LEpt.js +1 -0
  252. package/dist/heartbeat-visibility-BQ_esv2m.js +1 -0
  253. package/dist/heartbeat-visibility-q74UdY8O.js +1 -0
  254. package/dist/help-format-B4aEI7V9.js +1 -0
  255. package/dist/help-format-BRbF_INg.js +1 -0
  256. package/dist/helpers-COz1ghcB.js +1 -0
  257. package/dist/helpers-Cp8gcO6u.js +1 -0
  258. package/dist/hooks-cli-BzyzTNBx.js +1 -0
  259. package/dist/hooks-cli-CsBrScq0.js +1 -0
  260. package/dist/hooks-status-BHt-Xvh4.js +1 -0
  261. package/dist/hooks-status-CRJ4J0ZW.js +1 -0
  262. package/dist/image-BkWwI54C.js +1 -0
  263. package/dist/image-CcVQg-YN.js +1 -0
  264. package/dist/image-Cm1RUBqD.js +1 -0
  265. package/dist/image-DsoO5VP5.js +1 -0
  266. package/dist/index.js +1 -0
  267. package/dist/inspect-BKV-I1UE.js +1 -0
  268. package/dist/inspect-z59cgmYc.js +1 -0
  269. package/dist/install-safe-path-C6kc_8NW.js +1 -0
  270. package/dist/install-safe-path-iesxijn2.js +1 -0
  271. package/dist/installs-BNeI_oML.js +1 -0
  272. package/dist/installs-C1xQLuby.js +1 -0
  273. package/dist/ipv4-BOuNtoGn.js +1 -0
  274. package/dist/ipv4-CWdaEiVH.js +1 -0
  275. package/dist/ir-BF0M2kGp.js +1 -0
  276. package/dist/ir-D8Hh84ab.js +1 -0
  277. package/dist/ir-DBWscfBd.js +1 -0
  278. package/dist/ir-Dk7OQ4bA.js +1 -0
  279. package/dist/is-main-DG5ueqhF.js +1 -0
  280. package/dist/issue-format-BT7cQEt3.js +1 -0
  281. package/dist/issue-format-C_lNzrKa.js +1 -0
  282. package/dist/kill-tree-B3g7HrAO.js +1 -0
  283. package/dist/lifecycle-core-D9KNCvxY.js +1 -0
  284. package/dist/lifecycle-core-LM5UUUB1.js +1 -0
  285. package/dist/line/accounts.js +1 -0
  286. package/dist/line/send.js +1 -0
  287. package/dist/line/template-messages.js +1 -0
  288. package/dist/links-CBnmRP9D.js +1 -0
  289. package/dist/links-CySwdMcF.js +1 -0
  290. package/dist/llm-slug-generator.js +1 -0
  291. package/dist/load-options-BsOW74dp.js +1 -0
  292. package/dist/load-options-C7dLuybp.js +1 -0
  293. package/dist/load-options-DV4j6Aqb.js +1 -0
  294. package/dist/load-options-Dwt0CeEg.js +1 -0
  295. package/dist/local-roots-6waH0SZ0.js +1 -0
  296. package/dist/logger-5W0OocJW.js +1 -0
  297. package/dist/logger-Bl8URnrW.js +1 -0
  298. package/dist/logger-DwWqfo66.js +1 -0
  299. package/dist/logger-kQAOe3qp.js +1 -0
  300. package/dist/logging-Dqe9dxSX.js +1 -0
  301. package/dist/logging-tYw1NbJd.js +1 -0
  302. package/dist/login-BOlqRyr0.js +1 -0
  303. package/dist/login-CkWesqf_.js +1 -0
  304. package/dist/login-Do_NA1Je.js +1 -0
  305. package/dist/login-op9S8yqv.js +1 -0
  306. package/dist/login-qr-B6rxvoTS.js +1 -0
  307. package/dist/login-qr-BGH9zmhw.js +1 -0
  308. package/dist/login-qr-CiENvgog.js +1 -0
  309. package/dist/login-qr-DsV-lxFd.js +1 -0
  310. package/dist/login-qr-QcDMg23y.js +1 -0
  311. package/dist/logs-cli-B4eUg_87.js +1 -0
  312. package/dist/logs-cli-BA3Aso8a.js +1 -0
  313. package/dist/manager-4Y9fRgdw.js +1 -0
  314. package/dist/manager-C2YW7Hkq.js +1 -0
  315. package/dist/manager-Dtd_loL8.js +1 -0
  316. package/dist/manager-M1GKhLUC.js +1 -0
  317. package/dist/memory-cli-XaxtBQm1.js +1 -0
  318. package/dist/memory-cli-jhzJ3as7.js +1 -0
  319. package/dist/model-catalog-C1kpjR75.js +1 -0
  320. package/dist/model-catalog-COVzoZD9.js +1 -0
  321. package/dist/model-param-b-B0r2cPDw.js +1 -0
  322. package/dist/model-param-b-BqIr5rY5.js +1 -0
  323. package/dist/model-picker-D3ZSpr0i.js +1 -0
  324. package/dist/model-picker-bZNuI66U.js +1 -0
  325. package/dist/model-selection-B5JsBS9D.js +1 -0
  326. package/dist/model-selection-BlC_rXAN.js +1 -0
  327. package/dist/model-selection-vfhBuN9O.js +1 -0
  328. package/dist/models-C_Vg3Cty.js +1 -0
  329. package/dist/models-cli-CDZliTXq.js +1 -0
  330. package/dist/models-cli-bGr8jwAb.js +1 -0
  331. package/dist/models-config-CdMhNxKV.js +1 -0
  332. package/dist/models-config-_htt7eY5.js +1 -0
  333. package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -0
  334. package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -0
  335. package/dist/node-cli-5lYbDZ70.js +1 -0
  336. package/dist/node-cli-Br04Qmqo.js +1 -0
  337. package/dist/node-command-policy-CejeQemH.js +1 -0
  338. package/dist/node-command-policy-CqXhdnHh.js +1 -0
  339. package/dist/node-commands-8GBOiktk.js +1 -0
  340. package/dist/node-commands-DdkziOTx.js +1 -0
  341. package/dist/node-resolve-B3BJbmQX.js +1 -0
  342. package/dist/node-resolve-DLZf3-1V.js +1 -0
  343. package/dist/node-service-BRfrNp8l.js +1 -0
  344. package/dist/node-service-C0bl7jcZ.js +1 -0
  345. package/dist/node-shell-DyOfwHrh.js +1 -0
  346. package/dist/nodes-cli-8By8--bW.js +1 -0
  347. package/dist/nodes-cli-zq41EwJN.js +1 -0
  348. package/dist/nodes-screen-DECgxo6A.js +1 -0
  349. package/dist/note-D4GAwgha.js +1 -0
  350. package/dist/note-Dp-d_utk.js +1 -0
  351. package/dist/npm-pack-install-B23L-AtF.js +1 -0
  352. package/dist/npm-pack-install-C0te3Oap.js +1 -0
  353. package/dist/npm-resolution-BnJGLwhi.js +1 -0
  354. package/dist/npm-resolution-DWPloph4.js +1 -0
  355. package/dist/oauth-env-DAamJ1oz.js +1 -0
  356. package/dist/oauth-env-DSLBTWb1.js +1 -0
  357. package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -0
  358. package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -0
  359. package/dist/ollama-setup-BMEKWyIE.js +1 -0
  360. package/dist/ollama-setup-DlwS6Gl-.js +1 -0
  361. package/dist/onboard-B0BNCQaO.js +1 -0
  362. package/dist/onboard-CjVhdaiR.js +1 -0
  363. package/dist/onboard-channels-BMIOddLN.js +1 -0
  364. package/dist/onboard-channels-CZK_7xMR.js +1 -0
  365. package/dist/onboard-config-B7U20YRw.js +1 -0
  366. package/dist/onboard-config-DS9dUv8M.js +1 -0
  367. package/dist/onboard-custom-B03SlEHB.js +1 -0
  368. package/dist/onboard-custom-Bl0y8c-g.js +1 -0
  369. package/dist/onboard-helpers-PGl5bVPE.js +1 -0
  370. package/dist/onboard-helpers-zwybUJWu.js +1 -0
  371. package/dist/onboard-hooks-CERzXObm.js +1 -0
  372. package/dist/onboard-hooks-gQ3sxBNi.js +1 -0
  373. package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -0
  374. package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -0
  375. package/dist/onboard-remote-BOpIRdDu.js +1 -0
  376. package/dist/onboard-remote-DPU-H_2O.js +1 -0
  377. package/dist/onboard-search-f2tJD4hg.js +1 -0
  378. package/dist/onboard-search-fslKKhyg.js +1 -0
  379. package/dist/onboard-skills-BMAJs6ly.js +1 -0
  380. package/dist/onboard-skills-CMSQc2Mm.js +1 -0
  381. package/dist/onboarding-B6ixWwgp.js +1 -0
  382. package/dist/onboarding-ouEqUuUr.js +1 -0
  383. package/dist/onboarding.finalize-Bgat5Npc.js +1 -0
  384. package/dist/onboarding.finalize-DsMVlTcH.js +1 -0
  385. package/dist/onboarding.gateway-config-BtLDJWJ2.js +1 -0
  386. package/dist/onboarding.gateway-config-y3pqsL9i.js +1 -0
  387. package/dist/onboarding.secret-input-BsBgh8Tc.js +1 -0
  388. package/dist/onboarding.secret-input-kO5OzYC7.js +1 -0
  389. package/dist/openai-codex-model-default-DuE2_wN7.js +1 -0
  390. package/dist/openai-codex-model-default-yVfRw-Mm.js +1 -0
  391. package/dist/openai-model-default-Bl8MHPb6.js +1 -0
  392. package/dist/openai-model-default-DJObMvLJ.js +1 -0
  393. package/dist/openclaw-exec-env-BWbOu_YC.js +1 -0
  394. package/dist/openclaw-root-CnsBf6ZU.js +1 -0
  395. package/dist/openclaw-root-D_0Q6--h.js +1 -0
  396. package/dist/outbound-BOSIEiEY.js +1 -0
  397. package/dist/outbound-BtUeDLjU.js +1 -0
  398. package/dist/outbound-Bx2Z2aYK.js +1 -0
  399. package/dist/outbound-Bz8bbrMI.js +1 -0
  400. package/dist/outbound-attachment-B7wMxwj6.js +1 -0
  401. package/dist/outbound-attachment-BgAe99RM.js +1 -0
  402. package/dist/outbound-attachment-Dds8xirj.js +1 -0
  403. package/dist/outbound-attachment-DqEKghQp.js +1 -0
  404. package/dist/pairing-cli-Bya9M-I_.js +1 -0
  405. package/dist/pairing-cli-D2JEhufv.js +1 -0
  406. package/dist/pairing-labels-BUU_-70B.js +1 -0
  407. package/dist/pairing-labels-D-kzQEL2.js +1 -0
  408. package/dist/pairing-store-BH-FTYkn.js +1 -0
  409. package/dist/pairing-store-Cg2UxreQ.js +1 -0
  410. package/dist/pairing-token-BjYBuREl.js +1 -0
  411. package/dist/pairing-token-DAR7V7FJ.js +1 -0
  412. package/dist/parse-duration-XTjMKl8s.js +1 -0
  413. package/dist/parse-finite-number-DqzUM-_s.js +1 -0
  414. package/dist/parse-finite-number-dBmDLLKL.js +1 -0
  415. package/dist/parse-log-line-CsYLg7Qu.js +1 -0
  416. package/dist/parse-log-line-NV-cipB_.js +1 -0
  417. package/dist/parse-port-Bv1Y9Wk5.js +1 -0
  418. package/dist/parse-port-JVwkxcZ8.js +1 -0
  419. package/dist/parse-timeout-DWSGfCkQ.js +1 -0
  420. package/dist/parse-timeout-Dx4QnVzo.js +1 -0
  421. package/dist/path-alias-guards-kY_ZbWs-.js +1 -0
  422. package/dist/path-alias-guards-mvyLCPlN.js +1 -0
  423. package/dist/path-env-BPd1Yd-i.js +1 -0
  424. package/dist/path-env-emdAQejM.js +1 -0
  425. package/dist/path-safety-BukYK8Kd.js +1 -0
  426. package/dist/path-safety-DaaMJFdt.js +1 -0
  427. package/dist/paths-B4IRk3wi.js +1 -0
  428. package/dist/paths-BfjJY2VL.js +1 -0
  429. package/dist/paths-BjD3T_xq.js +1 -0
  430. package/dist/paths-BpQOWYiT.js +1 -0
  431. package/dist/paths-CChBdtE8.js +1 -0
  432. package/dist/paths-CrCoPIVK.js +1 -0
  433. package/dist/paths-piJASC5k.js +1 -0
  434. package/dist/paths-yLEk_25I.js +1 -0
  435. package/dist/pi-embedded-BZSn84Bh.js +1 -0
  436. package/dist/pi-embedded-Dsz7p3MF.js +1 -0
  437. package/dist/pi-model-discovery-BbD1YJNx.js +1 -0
  438. package/dist/pi-model-discovery-CpjYoBQf.js +1 -0
  439. package/dist/pi-model-discovery-DeQdHV8O.js +1 -0
  440. package/dist/pi-model-discovery-Dps1PPWz.js +1 -0
  441. package/dist/pi-tools.before-tool-call.runtime-DseAq0gm.js +1 -0
  442. package/dist/pi-tools.before-tool-call.runtime-KKGILAuK.js +1 -0
  443. package/dist/pi-tools.before-tool-call.runtime-Pck2WdIO.js +1 -0
  444. package/dist/pi-tools.before-tool-call.runtime-ZzMJQ1BP.js +1 -0
  445. package/dist/pi-tools.policy-D40r0HmD.js +1 -0
  446. package/dist/plugin-auto-enable-DpVL6-ES.js +1 -0
  447. package/dist/plugin-auto-enable-NzmNh4oU.js +1 -0
  448. package/dist/plugin-install-plan-BobX0y9S.js +1 -0
  449. package/dist/plugin-install-plan-NvDGp0d8.js +1 -0
  450. package/dist/plugin-registry-C6dY-Et7.js +1 -0
  451. package/dist/plugin-registry-CIBiHZH1.js +1 -0
  452. package/dist/plugin-sdk/account-id.cjs +1 -0
  453. package/dist/plugin-sdk/account-id.js +1 -0
  454. package/dist/plugin-sdk/acpx.cjs +1 -0
  455. package/dist/plugin-sdk/acpx.js +1 -0
  456. package/dist/plugin-sdk/active-listener-BApFQlQn.js +1 -0
  457. package/dist/plugin-sdk/active-listener-BETopzG5.cjs +1 -0
  458. package/dist/plugin-sdk/active-listener-BEcmvyxh.cjs +1 -0
  459. package/dist/plugin-sdk/active-listener-BZPPbsNy.cjs +1 -0
  460. package/dist/plugin-sdk/active-listener-B_Mxemq7.cjs +1 -0
  461. package/dist/plugin-sdk/active-listener-BgW_qfd3.js +1 -0
  462. package/dist/plugin-sdk/active-listener-Coet66pF.cjs +1 -0
  463. package/dist/plugin-sdk/active-listener-CvML9qVF.js +1 -0
  464. package/dist/plugin-sdk/active-listener-DuO6KMXJ.js +1 -0
  465. package/dist/plugin-sdk/active-listener-DymzfmOG.cjs +1 -0
  466. package/dist/plugin-sdk/active-listener-ILBdBHMv.js +1 -0
  467. package/dist/plugin-sdk/active-listener-gRRIfN1q.js +1 -0
  468. package/dist/plugin-sdk/api-key-rotation-Bj1A9Slo.cjs +1 -0
  469. package/dist/plugin-sdk/api-key-rotation-CFPNzksf.cjs +1 -0
  470. package/dist/plugin-sdk/api-key-rotation-CXY0AyM1.js +1 -0
  471. package/dist/plugin-sdk/api-key-rotation-ClIwV8yq.js +1 -0
  472. package/dist/plugin-sdk/api-key-rotation-D5Nr1xl3.js +1 -0
  473. package/dist/plugin-sdk/api-key-rotation-DDCwA0KM.cjs +1 -0
  474. package/dist/plugin-sdk/api-key-rotation-DHMvXm70.cjs +1 -0
  475. package/dist/plugin-sdk/api-key-rotation-DaFFZfk5.js +1 -0
  476. package/dist/plugin-sdk/api-key-rotation-DcREl_0x.js +1 -0
  477. package/dist/plugin-sdk/api-key-rotation-X-5Fb7av.cjs +1 -0
  478. package/dist/plugin-sdk/api-key-rotation-_VfXYfHS.js +1 -0
  479. package/dist/plugin-sdk/api-key-rotation-wFUVOOfM.cjs +1 -0
  480. package/dist/plugin-sdk/audio-preflight-B1MP5_bc.cjs +1 -0
  481. package/dist/plugin-sdk/audio-preflight-BETx142T.cjs +1 -0
  482. package/dist/plugin-sdk/audio-preflight-BGRLhCLc.cjs +1 -0
  483. package/dist/plugin-sdk/audio-preflight-BNICfOY5.cjs +1 -0
  484. package/dist/plugin-sdk/audio-preflight-BV3Cav8M.js +1 -0
  485. package/dist/plugin-sdk/audio-preflight-BmO72Cqr.cjs +1 -0
  486. package/dist/plugin-sdk/audio-preflight-BpE8wFQc.js +1 -0
  487. package/dist/plugin-sdk/audio-preflight-CTAafaiH.js +1 -0
  488. package/dist/plugin-sdk/audio-preflight-D82aewIt.js +1 -0
  489. package/dist/plugin-sdk/audio-preflight-DmzxEaq3.cjs +1 -0
  490. package/dist/plugin-sdk/audio-preflight-DrSIYRnD.js +1 -0
  491. package/dist/plugin-sdk/audio-preflight-SZZoA2Ff.js +1 -0
  492. package/dist/plugin-sdk/audio-transcription-runner-B54MyF1_.js +1 -0
  493. package/dist/plugin-sdk/audio-transcription-runner-BIqM5H5q.js +1 -0
  494. package/dist/plugin-sdk/audio-transcription-runner-BLAxZL-U.js +1 -0
  495. package/dist/plugin-sdk/audio-transcription-runner-BVmaaA2k.js +1 -0
  496. package/dist/plugin-sdk/audio-transcription-runner-BdY-TMcc.js +1 -0
  497. package/dist/plugin-sdk/audio-transcription-runner-By3lSLub.cjs +1 -0
  498. package/dist/plugin-sdk/audio-transcription-runner-CH5CoZrF.cjs +1 -0
  499. package/dist/plugin-sdk/audio-transcription-runner-CMsp7bhn.cjs +1 -0
  500. package/dist/plugin-sdk/audio-transcription-runner-ClGibmMi.cjs +1 -0
  501. package/dist/plugin-sdk/audio-transcription-runner-QfEC19vE.cjs +1 -0
  502. package/dist/plugin-sdk/audio-transcription-runner-g7L0m-Z5.cjs +1 -0
  503. package/dist/plugin-sdk/audio-transcription-runner-pVTD93vq.js +1 -0
  504. package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -0
  505. package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -0
  506. package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -0
  507. package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -0
  508. package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -0
  509. package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -0
  510. package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -0
  511. package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -0
  512. package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -0
  513. package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -0
  514. package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -0
  515. package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -0
  516. package/dist/plugin-sdk/bluebubbles.cjs +1 -0
  517. package/dist/plugin-sdk/bluebubbles.js +1 -0
  518. package/dist/plugin-sdk/channel-activity-BGK-Bj2_.cjs +1 -0
  519. package/dist/plugin-sdk/channel-activity-BRHvpV0C.js +1 -0
  520. package/dist/plugin-sdk/channel-activity-CKfWFchu.js +1 -0
  521. package/dist/plugin-sdk/channel-activity-CLUi31fX.cjs +1 -0
  522. package/dist/plugin-sdk/channel-activity-CVOp-PL4.cjs +1 -0
  523. package/dist/plugin-sdk/channel-activity-CgXnZ0GC.cjs +1 -0
  524. package/dist/plugin-sdk/channel-activity-CmYpOPAn.js +1 -0
  525. package/dist/plugin-sdk/channel-activity-CwaMf9qT.cjs +1 -0
  526. package/dist/plugin-sdk/channel-activity-D5D5tBWf.cjs +1 -0
  527. package/dist/plugin-sdk/channel-activity-D7tpmatp.js +1 -0
  528. package/dist/plugin-sdk/channel-activity-DpxSOlXF.js +1 -0
  529. package/dist/plugin-sdk/channel-activity-spvDzlTl.js +1 -0
  530. package/dist/plugin-sdk/channel-web-4ZQVqsrt.js +1 -0
  531. package/dist/plugin-sdk/channel-web-9zn1Itpg.cjs +1 -0
  532. package/dist/plugin-sdk/channel-web-BrB00HKH.js +1 -0
  533. package/dist/plugin-sdk/channel-web-DN5La-Ol.cjs +1 -0
  534. package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -0
  535. package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -0
  536. package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -0
  537. package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -0
  538. package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -0
  539. package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -0
  540. package/dist/plugin-sdk/commands-registry-5lStNoKW.cjs +1 -0
  541. package/dist/plugin-sdk/commands-registry-C8wnXqNa.cjs +1 -0
  542. package/dist/plugin-sdk/commands-registry-Cnr6PvIw.js +1 -0
  543. package/dist/plugin-sdk/commands-registry-CtYCWfuM.cjs +1 -0
  544. package/dist/plugin-sdk/commands-registry-D2gv242l.js +1 -0
  545. package/dist/plugin-sdk/commands-registry-DI2vPscP.js +1 -0
  546. package/dist/plugin-sdk/commands-registry-DcBvmwSU.js +1 -0
  547. package/dist/plugin-sdk/commands-registry-DkUhCIDk.cjs +1 -0
  548. package/dist/plugin-sdk/commands-registry-DsMbmie-.cjs +1 -0
  549. package/dist/plugin-sdk/commands-registry-MCsWR5Vf.js +1 -0
  550. package/dist/plugin-sdk/commands-registry-SHZVq_qf.cjs +1 -0
  551. package/dist/plugin-sdk/commands-registry-kRjFifgj.js +1 -0
  552. package/dist/plugin-sdk/common-B4iFXuoZ.cjs +1 -0
  553. package/dist/plugin-sdk/common-B6fDMl_i.js +1 -0
  554. package/dist/plugin-sdk/compat.cjs +1 -0
  555. package/dist/plugin-sdk/compat.js +1 -0
  556. package/dist/plugin-sdk/config-ByA2hluR.js +1 -0
  557. package/dist/plugin-sdk/config-rBz8C_Hi.cjs +1 -0
  558. package/dist/plugin-sdk/copilot-proxy.cjs +1 -0
  559. package/dist/plugin-sdk/copilot-proxy.js +1 -0
  560. package/dist/plugin-sdk/core.cjs +1 -0
  561. package/dist/plugin-sdk/core.js +1 -0
  562. package/dist/plugin-sdk/deliver-B0fB4hAV.js +1 -0
  563. package/dist/plugin-sdk/deliver-BOLmjIJ3.js +1 -0
  564. package/dist/plugin-sdk/deliver-BrfVwkYz.cjs +1 -0
  565. package/dist/plugin-sdk/deliver-C-tChWTI.cjs +1 -0
  566. package/dist/plugin-sdk/deliver-CjQPkWS-.cjs +1 -0
  567. package/dist/plugin-sdk/deliver-D1P0FNTu.js +1 -0
  568. package/dist/plugin-sdk/deliver-DCrO9mvv.cjs +1 -0
  569. package/dist/plugin-sdk/deliver-DQLekoj2.cjs +1 -0
  570. package/dist/plugin-sdk/deliver-DkfCVM78.js +1 -0
  571. package/dist/plugin-sdk/deliver-Dkh3lqXR.js +1 -0
  572. package/dist/plugin-sdk/deliver-DsFtXFyr.cjs +1 -0
  573. package/dist/plugin-sdk/deliver-vYe_sYOL.js +1 -0
  574. package/dist/plugin-sdk/device-pair.cjs +1 -0
  575. package/dist/plugin-sdk/device-pair.js +1 -0
  576. package/dist/plugin-sdk/diagnostic-8iX73nz_.cjs +1 -0
  577. package/dist/plugin-sdk/diagnostic-CLUtpxAp.js +1 -0
  578. package/dist/plugin-sdk/diagnostic-CVS4k9hh.cjs +1 -0
  579. package/dist/plugin-sdk/diagnostic-CkePwN5F.js +1 -0
  580. package/dist/plugin-sdk/diagnostic-Cu1PGj0E.cjs +1 -0
  581. package/dist/plugin-sdk/diagnostic-D0oCfBju.cjs +1 -0
  582. package/dist/plugin-sdk/diagnostic-D7A9cQYf.cjs +1 -0
  583. package/dist/plugin-sdk/diagnostic-DGLX0zXU.js +1 -0
  584. package/dist/plugin-sdk/diagnostic-DXscFT8t.cjs +1 -0
  585. package/dist/plugin-sdk/diagnostic-Efe4b81B.js +1 -0
  586. package/dist/plugin-sdk/diagnostic-EqHqw9xo.js +1 -0
  587. package/dist/plugin-sdk/diagnostic-vsjHZ_fY.js +1 -0
  588. package/dist/plugin-sdk/diagnostics-otel.cjs +1 -0
  589. package/dist/plugin-sdk/diagnostics-otel.js +1 -0
  590. package/dist/plugin-sdk/diffs.cjs +1 -0
  591. package/dist/plugin-sdk/diffs.js +1 -0
  592. package/dist/plugin-sdk/discord.cjs +1 -0
  593. package/dist/plugin-sdk/discord.js +1 -0
  594. package/dist/plugin-sdk/dispatch-5v3v8zzA.js +1 -0
  595. package/dist/plugin-sdk/dispatch-B6UbZCpL.cjs +1 -0
  596. package/dist/plugin-sdk/dispatch-BYlcmJ9u.js +1 -0
  597. package/dist/plugin-sdk/dispatch-C2YTqGlf.js +1 -0
  598. package/dist/plugin-sdk/dispatch-CNy3g9ma.cjs +1 -0
  599. package/dist/plugin-sdk/dispatch-DCSwqteL.js +1 -0
  600. package/dist/plugin-sdk/dispatch-DHbSBeFJ.js +1 -0
  601. package/dist/plugin-sdk/dispatch-DK5ub8qa.cjs +1 -0
  602. package/dist/plugin-sdk/dispatch-SWyfAZT0.cjs +1 -0
  603. package/dist/plugin-sdk/dispatch-mR2vLkGa.cjs +1 -0
  604. package/dist/plugin-sdk/feishu.cjs +1 -0
  605. package/dist/plugin-sdk/feishu.js +1 -0
  606. package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -0
  607. package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -0
  608. package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -0
  609. package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -0
  610. package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -0
  611. package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -0
  612. package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -0
  613. package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -0
  614. package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -0
  615. package/dist/plugin-sdk/fetch-BtZY623f.js +1 -0
  616. package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -0
  617. package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -0
  618. package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -0
  619. package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -0
  620. package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -0
  621. package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -0
  622. package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -0
  623. package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -0
  624. package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -0
  625. package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -0
  626. package/dist/plugin-sdk/fetch-guard-8I7EHbDM.cjs +1 -0
  627. package/dist/plugin-sdk/fetch-guard-CIJUkBIL.cjs +1 -0
  628. package/dist/plugin-sdk/fetch-guard-CY03i4gu.js +1 -0
  629. package/dist/plugin-sdk/fetch-guard-Cz-cgYmR.cjs +1 -0
  630. package/dist/plugin-sdk/fetch-guard-DB85MORy.cjs +1 -0
  631. package/dist/plugin-sdk/fetch-guard-DE9BslxX.js +1 -0
  632. package/dist/plugin-sdk/fetch-guard-DLNzldn9.cjs +1 -0
  633. package/dist/plugin-sdk/fetch-guard-DSvAbvSx.js +1 -0
  634. package/dist/plugin-sdk/fetch-guard-DXe8oqEE.js +1 -0
  635. package/dist/plugin-sdk/fetch-guard-DY9jpsXo.cjs +1 -0
  636. package/dist/plugin-sdk/fetch-guard-DbOZYxyN.js +1 -0
  637. package/dist/plugin-sdk/fetch-guard-_fifU0fX.js +1 -0
  638. package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -0
  639. package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -0
  640. package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -0
  641. package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -0
  642. package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -0
  643. package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -0
  644. package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -0
  645. package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -0
  646. package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -0
  647. package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -0
  648. package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -0
  649. package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -0
  650. package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -0
  651. package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -0
  652. package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -0
  653. package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -0
  654. package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -0
  655. package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -0
  656. package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -0
  657. package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -0
  658. package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -0
  659. package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -0
  660. package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -0
  661. package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -0
  662. package/dist/plugin-sdk/googlechat.cjs +1 -0
  663. package/dist/plugin-sdk/googlechat.js +1 -0
  664. package/dist/plugin-sdk/image-B6HEHWlJ.js +1 -0
  665. package/dist/plugin-sdk/image-Bte8cr4F.js +1 -0
  666. package/dist/plugin-sdk/image-BxafJgQ6.cjs +1 -0
  667. package/dist/plugin-sdk/image-CDI5SqeR.js +1 -0
  668. package/dist/plugin-sdk/image-CTgwucug.cjs +1 -0
  669. package/dist/plugin-sdk/image-CWnsS03L.js +1 -0
  670. package/dist/plugin-sdk/image-CoksjGBL.cjs +1 -0
  671. package/dist/plugin-sdk/image-CuOIoxl2.cjs +1 -0
  672. package/dist/plugin-sdk/image-DJyEMzkq.cjs +1 -0
  673. package/dist/plugin-sdk/image-DegWnAZU.cjs +1 -0
  674. package/dist/plugin-sdk/image-TCSQZpr6.js +1 -0
  675. package/dist/plugin-sdk/image-aG-5S1vd.js +1 -0
  676. package/dist/plugin-sdk/imessage.cjs +1 -0
  677. package/dist/plugin-sdk/imessage.js +1 -0
  678. package/dist/plugin-sdk/index.cjs +1 -0
  679. package/dist/plugin-sdk/index.js +1 -0
  680. package/dist/plugin-sdk/ir-8rDh7div.js +1 -0
  681. package/dist/plugin-sdk/ir-Bh6lKGdS.js +1 -0
  682. package/dist/plugin-sdk/ir-C3VNqnc2.cjs +1 -0
  683. package/dist/plugin-sdk/ir-CZOtKajq.cjs +1 -0
  684. package/dist/plugin-sdk/ir-CveCWs8q.cjs +1 -0
  685. package/dist/plugin-sdk/ir-DAxY-7c1.cjs +1 -0
  686. package/dist/plugin-sdk/ir-DSuLr2UE.cjs +1 -0
  687. package/dist/plugin-sdk/ir-DanxCjD-.cjs +1 -0
  688. package/dist/plugin-sdk/ir-Dgc6qZMX.js +1 -0
  689. package/dist/plugin-sdk/ir-OBi5zaEW.js +1 -0
  690. package/dist/plugin-sdk/ir-hQ6EW92h.js +1 -0
  691. package/dist/plugin-sdk/ir-ynWQeZD9.js +1 -0
  692. package/dist/plugin-sdk/irc.cjs +1 -0
  693. package/dist/plugin-sdk/irc.js +1 -0
  694. package/dist/plugin-sdk/keyed-async-queue.cjs +1 -0
  695. package/dist/plugin-sdk/keyed-async-queue.js +1 -0
  696. package/dist/plugin-sdk/line.cjs +1 -0
  697. package/dist/plugin-sdk/line.js +1 -0
  698. package/dist/plugin-sdk/llm-task.cjs +1 -0
  699. package/dist/plugin-sdk/llm-task.js +1 -0
  700. package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -0
  701. package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -0
  702. package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -0
  703. package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -0
  704. package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -0
  705. package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -0
  706. package/dist/plugin-sdk/lobster.cjs +1 -0
  707. package/dist/plugin-sdk/lobster.js +1 -0
  708. package/dist/plugin-sdk/local-roots-5udQUs81.js +1 -0
  709. package/dist/plugin-sdk/local-roots-BmhNPIJm.cjs +1 -0
  710. package/dist/plugin-sdk/local-roots-C5UoE741.cjs +1 -0
  711. package/dist/plugin-sdk/local-roots-Ca8KoAAp.js +1 -0
  712. package/dist/plugin-sdk/local-roots-CeAYfmPb.cjs +1 -0
  713. package/dist/plugin-sdk/local-roots-Cu7YCpql.cjs +1 -0
  714. package/dist/plugin-sdk/local-roots-D0yN794S.js +1 -0
  715. package/dist/plugin-sdk/local-roots-D4i3H0UG.cjs +1 -0
  716. package/dist/plugin-sdk/local-roots-DGe-SRNu.js +1 -0
  717. package/dist/plugin-sdk/local-roots-bWA2msT0.js +1 -0
  718. package/dist/plugin-sdk/local-roots-tee85Q-1.js +1 -0
  719. package/dist/plugin-sdk/local-roots-wTkpE7go.cjs +1 -0
  720. package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -0
  721. package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -0
  722. package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -0
  723. package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -0
  724. package/dist/plugin-sdk/logger-C210xuWx.js +1 -0
  725. package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -0
  726. package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -0
  727. package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -0
  728. package/dist/plugin-sdk/logger-DwWqfo66.js +1 -0
  729. package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -0
  730. package/dist/plugin-sdk/login-B5IwNcl4.cjs +1 -0
  731. package/dist/plugin-sdk/login-BIbt7ZL_.js +1 -0
  732. package/dist/plugin-sdk/login-CxnDKwXC.js +1 -0
  733. package/dist/plugin-sdk/login-D5iTWowo.cjs +1 -0
  734. package/dist/plugin-sdk/login-DHE1rzB1.js +1 -0
  735. package/dist/plugin-sdk/login-DIPBcPQc.cjs +1 -0
  736. package/dist/plugin-sdk/login-DtDOozuU.js +1 -0
  737. package/dist/plugin-sdk/login-UrWNtI80.cjs +1 -0
  738. package/dist/plugin-sdk/login-VviMkBU2.js +1 -0
  739. package/dist/plugin-sdk/login-jQwwt6C-.js +1 -0
  740. package/dist/plugin-sdk/login-mGjCzJzb.cjs +1 -0
  741. package/dist/plugin-sdk/login-pZnnpj38.cjs +1 -0
  742. package/dist/plugin-sdk/login-qr-BexuTIDJ.cjs +1 -0
  743. package/dist/plugin-sdk/login-qr-C366Qlh-.cjs +1 -0
  744. package/dist/plugin-sdk/login-qr-CQY4ty0o.js +1 -0
  745. package/dist/plugin-sdk/login-qr-CSabEb-n.cjs +1 -0
  746. package/dist/plugin-sdk/login-qr-CUgNKijx.js +1 -0
  747. package/dist/plugin-sdk/login-qr-C_LEw1Bi.js +1 -0
  748. package/dist/plugin-sdk/login-qr-CcPvldsG.js +1 -0
  749. package/dist/plugin-sdk/login-qr-CnNGKwDR.cjs +1 -0
  750. package/dist/plugin-sdk/login-qr-DQm50pXk.js +1 -0
  751. package/dist/plugin-sdk/login-qr-DayvAWkx.js +1 -0
  752. package/dist/plugin-sdk/login-qr-eodIsL9V.cjs +1 -0
  753. package/dist/plugin-sdk/login-qr-yIJE7MmY.cjs +1 -0
  754. package/dist/plugin-sdk/manager-932XljTT.js +1 -0
  755. package/dist/plugin-sdk/manager-CGHd5p2T.js +1 -0
  756. package/dist/plugin-sdk/manager-CbGA_JDa.js +1 -0
  757. package/dist/plugin-sdk/manager-CdD7HaGW.cjs +1 -0
  758. package/dist/plugin-sdk/manager-CmAH_a7A.cjs +1 -0
  759. package/dist/plugin-sdk/manager-DIS4ywpb.cjs +1 -0
  760. package/dist/plugin-sdk/manager-DQ2C-2IU.cjs +1 -0
  761. package/dist/plugin-sdk/manager-DdvFnsT7.cjs +1 -0
  762. package/dist/plugin-sdk/manager-DfdDglld.js +1 -0
  763. package/dist/plugin-sdk/manager-MR9stU_p.js +1 -0
  764. package/dist/plugin-sdk/manager-WwW37IUu.js +1 -0
  765. package/dist/plugin-sdk/manager-gE9187gu.cjs +1 -0
  766. package/dist/plugin-sdk/matrix.cjs +1 -0
  767. package/dist/plugin-sdk/matrix.js +1 -0
  768. package/dist/plugin-sdk/mattermost.cjs +1 -0
  769. package/dist/plugin-sdk/mattermost.js +1 -0
  770. package/dist/plugin-sdk/memory-core.cjs +1 -0
  771. package/dist/plugin-sdk/memory-core.js +1 -0
  772. package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -0
  773. package/dist/plugin-sdk/minimax-portal-auth.js +1 -0
  774. package/dist/plugin-sdk/model-auth-BpS4IWDi.cjs +1 -0
  775. package/dist/plugin-sdk/model-auth-BwajGuoF.cjs +1 -0
  776. package/dist/plugin-sdk/model-auth-C1YL9HcW.js +1 -0
  777. package/dist/plugin-sdk/model-auth-Cc-8H6Cu.js +1 -0
  778. package/dist/plugin-sdk/model-auth-Cw3fuhm_.js +1 -0
  779. package/dist/plugin-sdk/model-auth-CycDtQl-.js +1 -0
  780. package/dist/plugin-sdk/model-auth-D-7xiXhK.cjs +1 -0
  781. package/dist/plugin-sdk/model-auth-TFUxaK0f.cjs +1 -0
  782. package/dist/plugin-sdk/model-selection-BADTZM9n.cjs +1 -0
  783. package/dist/plugin-sdk/model-selection-DUAudCtL.js +1 -0
  784. package/dist/plugin-sdk/msteams.cjs +1 -0
  785. package/dist/plugin-sdk/msteams.js +1 -0
  786. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -0
  787. package/dist/plugin-sdk/nextcloud-talk.js +1 -0
  788. package/dist/plugin-sdk/nostr.cjs +1 -0
  789. package/dist/plugin-sdk/nostr.js +1 -0
  790. package/dist/plugin-sdk/outbound-2Lo6mZEY.js +1 -0
  791. package/dist/plugin-sdk/outbound-9XFlZzaF.cjs +1 -0
  792. package/dist/plugin-sdk/outbound-BlWsUmjQ.js +1 -0
  793. package/dist/plugin-sdk/outbound-Bs2rUcWZ.cjs +1 -0
  794. package/dist/plugin-sdk/outbound-C18nEOFP.js +1 -0
  795. package/dist/plugin-sdk/outbound-CW3o4Eng.cjs +1 -0
  796. package/dist/plugin-sdk/outbound-CzsdW5sy.js +1 -0
  797. package/dist/plugin-sdk/outbound-DcP22VOo.cjs +1 -0
  798. package/dist/plugin-sdk/outbound-QhOJAEO8.cjs +1 -0
  799. package/dist/plugin-sdk/outbound-attachment-1pf06Oiu.cjs +1 -0
  800. package/dist/plugin-sdk/outbound-attachment-B8-ZVX2i.cjs +1 -0
  801. package/dist/plugin-sdk/outbound-attachment-BDwI_tn0.cjs +1 -0
  802. package/dist/plugin-sdk/outbound-attachment-BXhbJils.js +1 -0
  803. package/dist/plugin-sdk/outbound-attachment-Bgf1pCh8.js +1 -0
  804. package/dist/plugin-sdk/outbound-attachment-COgf85S8.cjs +1 -0
  805. package/dist/plugin-sdk/outbound-attachment-CfN9OvMC.js +1 -0
  806. package/dist/plugin-sdk/outbound-attachment-CftilZWd.js +1 -0
  807. package/dist/plugin-sdk/outbound-attachment-Cujprd6T.cjs +1 -0
  808. package/dist/plugin-sdk/outbound-attachment-CvSHb9ci.js +1 -0
  809. package/dist/plugin-sdk/outbound-attachment-DQYtdTUw.js +1 -0
  810. package/dist/plugin-sdk/outbound-attachment-FqWC0WJx.cjs +1 -0
  811. package/dist/plugin-sdk/outbound-dTvIiFIZ.js +1 -0
  812. package/dist/plugin-sdk/outbound-fZ1WJGfe.cjs +1 -0
  813. package/dist/plugin-sdk/outbound-oHoWYWxf.js +1 -0
  814. package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -0
  815. package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -0
  816. package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -0
  817. package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -0
  818. package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -0
  819. package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -0
  820. package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -0
  821. package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -0
  822. package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -0
  823. package/dist/plugin-sdk/paths-CtrEseGU.js +1 -0
  824. package/dist/plugin-sdk/paths-D55o_j8-.js +1 -0
  825. package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -0
  826. package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -0
  827. package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -0
  828. package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -0
  829. package/dist/plugin-sdk/paths-Do0djuaj.js +1 -0
  830. package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -0
  831. package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -0
  832. package/dist/plugin-sdk/paths-piJASC5k.js +1 -0
  833. package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -0
  834. package/dist/plugin-sdk/pi-model-discovery-B9boErNZ.cjs +1 -0
  835. package/dist/plugin-sdk/pi-model-discovery-BJ8wTgFH.cjs +1 -0
  836. package/dist/plugin-sdk/pi-model-discovery-Bb2vCP6M.js +1 -0
  837. package/dist/plugin-sdk/pi-model-discovery-Bor7jHYd.js +1 -0
  838. package/dist/plugin-sdk/pi-model-discovery-BrTw1qE2.cjs +1 -0
  839. package/dist/plugin-sdk/pi-model-discovery-BuEMyAsU.js +1 -0
  840. package/dist/plugin-sdk/pi-model-discovery-CV9NTjC4.js +1 -0
  841. package/dist/plugin-sdk/pi-model-discovery-D5tLf04u.js +1 -0
  842. package/dist/plugin-sdk/pi-model-discovery-D5xlUS2J.cjs +1 -0
  843. package/dist/plugin-sdk/pi-model-discovery-DGoPUzBj.cjs +1 -0
  844. package/dist/plugin-sdk/pi-model-discovery-DMrqvV1O.cjs +1 -0
  845. package/dist/plugin-sdk/pi-model-discovery-DoY7qnlI.cjs +1 -0
  846. package/dist/plugin-sdk/pi-model-discovery-Dqq9Vm8o.js +1 -0
  847. package/dist/plugin-sdk/pi-model-discovery-zCuISPPq.js +1 -0
  848. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-4238P8NF.js +1 -0
  849. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BEoqzgFe.cjs +1 -0
  850. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BGPjibRD.js +1 -0
  851. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BJ_amISU.cjs +1 -0
  852. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BX2r_qPT.cjs +1 -0
  853. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CGLHFxSr.js +1 -0
  854. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CsNn_Lv8.js +1 -0
  855. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CsiKBTHg.cjs +1 -0
  856. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CuXQQk4F.cjs +1 -0
  857. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DNatrz-3.cjs +1 -0
  858. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-PApjB0tY.js +1 -0
  859. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-xsXDBYNq.js +1 -0
  860. package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -0
  861. package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -0
  862. package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -0
  863. package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -0
  864. package/dist/plugin-sdk/polls-PGxiE05J.js +1 -0
  865. package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -0
  866. package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -0
  867. package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -0
  868. package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -0
  869. package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -0
  870. package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -0
  871. package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -0
  872. package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -0
  873. package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -0
  874. package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -0
  875. package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -0
  876. package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -0
  877. package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -0
  878. package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -0
  879. package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -0
  880. package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -0
  881. package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -0
  882. package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -0
  883. package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -0
  884. package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -0
  885. package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -0
  886. package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -0
  887. package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -0
  888. package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -0
  889. package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -0
  890. package/dist/plugin-sdk/pw-ai-B0_rvdfF.js +1 -0
  891. package/dist/plugin-sdk/pw-ai-BqdrA15F.js +1 -0
  892. package/dist/plugin-sdk/pw-ai-CDzxu5B3.js +1 -0
  893. package/dist/plugin-sdk/pw-ai-CJIogpwF.cjs +1 -0
  894. package/dist/plugin-sdk/pw-ai-CL_gU5PJ.cjs +1 -0
  895. package/dist/plugin-sdk/pw-ai-Ca4aZTaG.cjs +1 -0
  896. package/dist/plugin-sdk/pw-ai-CrfYxLI8.cjs +1 -0
  897. package/dist/plugin-sdk/pw-ai-DCiFlwP8.js +1 -0
  898. package/dist/plugin-sdk/pw-ai-DSqXNmNZ.js +1 -0
  899. package/dist/plugin-sdk/pw-ai-Dh55xTz1.cjs +1 -0
  900. package/dist/plugin-sdk/pw-ai-DxAvipyK.cjs +1 -0
  901. package/dist/plugin-sdk/pw-ai-U9nPHH-0.js +1 -0
  902. package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -0
  903. package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -0
  904. package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -0
  905. package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -0
  906. package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -0
  907. package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -0
  908. package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -0
  909. package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -0
  910. package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -0
  911. package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -0
  912. package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -0
  913. package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -0
  914. package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -0
  915. package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -0
  916. package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -0
  917. package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -0
  918. package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -0
  919. package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -0
  920. package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -0
  921. package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -0
  922. package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -0
  923. package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -0
  924. package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -0
  925. package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -0
  926. package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -0
  927. package/dist/plugin-sdk/qwen-portal-auth.js +1 -0
  928. package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -0
  929. package/dist/plugin-sdk/render-CBsnn-2A.js +1 -0
  930. package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -0
  931. package/dist/plugin-sdk/render-DGmfCIRG.js +1 -0
  932. package/dist/plugin-sdk/render-DhTJXP1U.js +1 -0
  933. package/dist/plugin-sdk/render-Djx15dPh.js +1 -0
  934. package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -0
  935. package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -0
  936. package/dist/plugin-sdk/reply-0zCEbT4w.cjs +1 -0
  937. package/dist/plugin-sdk/reply-D-f2bbXy.js +1 -0
  938. package/dist/plugin-sdk/resolve-outbound-target-CrQGbaua.js +1 -0
  939. package/dist/plugin-sdk/resolve-outbound-target-H7Q9HcfW.js +1 -0
  940. package/dist/plugin-sdk/resolve-outbound-target-MS6Xpp17.cjs +1 -0
  941. package/dist/plugin-sdk/resolve-outbound-target-cDxjy3TL.cjs +1 -0
  942. package/dist/plugin-sdk/send-3VNTSIhr.js +1 -0
  943. package/dist/plugin-sdk/send-61GHLNYP.cjs +1 -0
  944. package/dist/plugin-sdk/send-6q4owAw0.js +1 -0
  945. package/dist/plugin-sdk/send-A2s5sPTd.js +1 -0
  946. package/dist/plugin-sdk/send-B2qa7CSk.js +1 -0
  947. package/dist/plugin-sdk/send-B3aEYvqG.cjs +1 -0
  948. package/dist/plugin-sdk/send-BAoqP09M.cjs +1 -0
  949. package/dist/plugin-sdk/send-BNBJ4CF8.js +1 -0
  950. package/dist/plugin-sdk/send-BTE2rI1E.js +1 -0
  951. package/dist/plugin-sdk/send-BlWuQHYB.js +1 -0
  952. package/dist/plugin-sdk/send-Bnvt7ZUE.cjs +1 -0
  953. package/dist/plugin-sdk/send-Bq6Mqs9G.cjs +1 -0
  954. package/dist/plugin-sdk/send-Bq787fi_.js +1 -0
  955. package/dist/plugin-sdk/send-BrAHLYBR.js +1 -0
  956. package/dist/plugin-sdk/send-Bt2eFBk2.js +1 -0
  957. package/dist/plugin-sdk/send-C4ZFbUux.js +1 -0
  958. package/dist/plugin-sdk/send-C4cyMW4S.cjs +1 -0
  959. package/dist/plugin-sdk/send-C8f5H4XV.cjs +1 -0
  960. package/dist/plugin-sdk/send-CDwTrbgT.cjs +1 -0
  961. package/dist/plugin-sdk/send-CEfs0Fsr.js +1 -0
  962. package/dist/plugin-sdk/send-CFuJjCNB.cjs +1 -0
  963. package/dist/plugin-sdk/send-CJGLeSJ8.cjs +1 -0
  964. package/dist/plugin-sdk/send-CL0W7jLW.js +1 -0
  965. package/dist/plugin-sdk/send-CLl490Gb.cjs +1 -0
  966. package/dist/plugin-sdk/send-CQtITZ7k.cjs +1 -0
  967. package/dist/plugin-sdk/send-CSGh_GVr.cjs +1 -0
  968. package/dist/plugin-sdk/send-CicLiXB4.js +1 -0
  969. package/dist/plugin-sdk/send-Cm7bEwx-.cjs +1 -0
  970. package/dist/plugin-sdk/send-CmO9z2-b.js +1 -0
  971. package/dist/plugin-sdk/send-Co_Wy2kT.cjs +1 -0
  972. package/dist/plugin-sdk/send-Cox_iyYB.cjs +1 -0
  973. package/dist/plugin-sdk/send-CuX4LcJ3.cjs +1 -0
  974. package/dist/plugin-sdk/send-CxMiTtxI.cjs +1 -0
  975. package/dist/plugin-sdk/send-CyyzWwDr.js +1 -0
  976. package/dist/plugin-sdk/send-D-HZnehy.cjs +1 -0
  977. package/dist/plugin-sdk/send-D-qD7BCb.js +1 -0
  978. package/dist/plugin-sdk/send-D3imkSlz.cjs +1 -0
  979. package/dist/plugin-sdk/send-D5UwpCoU.cjs +1 -0
  980. package/dist/plugin-sdk/send-D75OGJco.js +1 -0
  981. package/dist/plugin-sdk/send-DB4i1kUy.cjs +1 -0
  982. package/dist/plugin-sdk/send-DBjzdBda.cjs +1 -0
  983. package/dist/plugin-sdk/send-DPgRTM8s.js +1 -0
  984. package/dist/plugin-sdk/send-DPpBLiL4.js +1 -0
  985. package/dist/plugin-sdk/send-DV_afQnj.cjs +1 -0
  986. package/dist/plugin-sdk/send-DWuChr46.js +1 -0
  987. package/dist/plugin-sdk/send-DZ4szmEa.cjs +1 -0
  988. package/dist/plugin-sdk/send-DZr98eqE.cjs +1 -0
  989. package/dist/plugin-sdk/send-D_1K0zmx.cjs +1 -0
  990. package/dist/plugin-sdk/send-DaLB9Lca.js +1 -0
  991. package/dist/plugin-sdk/send-De4qiprb.js +1 -0
  992. package/dist/plugin-sdk/send-DeU-T5ps.js +1 -0
  993. package/dist/plugin-sdk/send-DtjJM0LO.js +1 -0
  994. package/dist/plugin-sdk/send-DvDCmTQf.js +1 -0
  995. package/dist/plugin-sdk/send-EvcsiFBC.cjs +1 -0
  996. package/dist/plugin-sdk/send-GuISe9C82.js +1 -0
  997. package/dist/plugin-sdk/send-IoGcE0w2.js +1 -0
  998. package/dist/plugin-sdk/send-JVdUTsN1.cjs +1 -0
  999. package/dist/plugin-sdk/send-NpNVFRmY.js +1 -0
  1000. package/dist/plugin-sdk/send-XMOZsJcs.js +1 -0
  1001. package/dist/plugin-sdk/send-h--iKoQE.cjs +1 -0
  1002. package/dist/plugin-sdk/session-8BcB905y.cjs +1 -0
  1003. package/dist/plugin-sdk/session-B2oURX5K.js +1 -0
  1004. package/dist/plugin-sdk/session-BJhNqIOi.js +1 -0
  1005. package/dist/plugin-sdk/session-BRgGsw96.cjs +1 -0
  1006. package/dist/plugin-sdk/session-Be_7rXAz.js +1 -0
  1007. package/dist/plugin-sdk/session-C66IXbE-.js +1 -0
  1008. package/dist/plugin-sdk/session-CCYDbcyV.js +1 -0
  1009. package/dist/plugin-sdk/session-CHu3C2m0.cjs +1 -0
  1010. package/dist/plugin-sdk/session-DUlmK2IL.cjs +1 -0
  1011. package/dist/plugin-sdk/session-DxTRZTnu.js +1 -0
  1012. package/dist/plugin-sdk/session-DzhI0nj-.cjs +1 -0
  1013. package/dist/plugin-sdk/session-WRCBgAzG.cjs +1 -0
  1014. package/dist/plugin-sdk/sessions-DxXXAfdI.js +1 -0
  1015. package/dist/plugin-sdk/sessions-Dz5JUL8j.cjs +1 -0
  1016. package/dist/plugin-sdk/signal.cjs +1 -0
  1017. package/dist/plugin-sdk/signal.js +1 -0
  1018. package/dist/plugin-sdk/skill-commands-B4wI8ETo.cjs +1 -0
  1019. package/dist/plugin-sdk/skill-commands-BoTeA376.cjs +1 -0
  1020. package/dist/plugin-sdk/skill-commands-BwrYJu7Z.js +1 -0
  1021. package/dist/plugin-sdk/skill-commands-BzkMuA58.cjs +1 -0
  1022. package/dist/plugin-sdk/skill-commands-CIAf9cWN.cjs +1 -0
  1023. package/dist/plugin-sdk/skill-commands-CKc7JO_c.cjs +1 -0
  1024. package/dist/plugin-sdk/skill-commands-Cvb6oXym.js +1 -0
  1025. package/dist/plugin-sdk/skill-commands-DWDtyCtB.js +1 -0
  1026. package/dist/plugin-sdk/skill-commands-Hmuw0PPK.js +1 -0
  1027. package/dist/plugin-sdk/skill-commands-KyN0FGaC.cjs +1 -0
  1028. package/dist/plugin-sdk/skill-commands-KzwEqk5p.js +1 -0
  1029. package/dist/plugin-sdk/skill-commands-Ny38ZFIC.js +1 -0
  1030. package/dist/plugin-sdk/slack.cjs +1 -0
  1031. package/dist/plugin-sdk/slack.js +1 -0
  1032. package/dist/plugin-sdk/synology-chat.cjs +1 -0
  1033. package/dist/plugin-sdk/synology-chat.js +1 -0
  1034. package/dist/plugin-sdk/tables-BIDWwpX8.js +1 -0
  1035. package/dist/plugin-sdk/tables-Bk8lHaPx.cjs +1 -0
  1036. package/dist/plugin-sdk/tables-BlNIkMV8.js +1 -0
  1037. package/dist/plugin-sdk/tables-Bp0a2WRP.cjs +1 -0
  1038. package/dist/plugin-sdk/tables-BtVUf77b.cjs +1 -0
  1039. package/dist/plugin-sdk/tables-C4j5Bar_.js +1 -0
  1040. package/dist/plugin-sdk/tables-CZGtYzDC.cjs +1 -0
  1041. package/dist/plugin-sdk/tables-CnrHab5d.cjs +1 -0
  1042. package/dist/plugin-sdk/tables-DtslIPYw.js +1 -0
  1043. package/dist/plugin-sdk/tables-NrdtIJGp.cjs +1 -0
  1044. package/dist/plugin-sdk/tables-XYb3T-vE.js +1 -0
  1045. package/dist/plugin-sdk/tables-lbv-0tl3.js +1 -0
  1046. package/dist/plugin-sdk/target-errors-9cdJA1L2.cjs +1 -0
  1047. package/dist/plugin-sdk/target-errors-BEkhKWCq.cjs +1 -0
  1048. package/dist/plugin-sdk/target-errors-BZRN-lPd.js +1 -0
  1049. package/dist/plugin-sdk/target-errors-BrwqillR.cjs +1 -0
  1050. package/dist/plugin-sdk/target-errors-Buo5pfom.js +1 -0
  1051. package/dist/plugin-sdk/target-errors-CFzzcffg.js +1 -0
  1052. package/dist/plugin-sdk/target-errors-DFmK5loi.js +1 -0
  1053. package/dist/plugin-sdk/target-errors-DXqwykNX.js +1 -0
  1054. package/dist/plugin-sdk/target-errors-Dd6CopYF.cjs +1 -0
  1055. package/dist/plugin-sdk/target-errors-DeNJ10ks.cjs +1 -0
  1056. package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -0
  1057. package/dist/plugin-sdk/targets-BSkiizml.js +1 -0
  1058. package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -0
  1059. package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -0
  1060. package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -0
  1061. package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -0
  1062. package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -0
  1063. package/dist/plugin-sdk/targets-CrkJkzil.js +1 -0
  1064. package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -0
  1065. package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -0
  1066. package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -0
  1067. package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -0
  1068. package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -0
  1069. package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -0
  1070. package/dist/plugin-sdk/telegram.cjs +1 -0
  1071. package/dist/plugin-sdk/telegram.js +1 -0
  1072. package/dist/plugin-sdk/test-utils.cjs +1 -0
  1073. package/dist/plugin-sdk/test-utils.js +1 -0
  1074. package/dist/plugin-sdk/tlon.cjs +1 -0
  1075. package/dist/plugin-sdk/tlon.js +1 -0
  1076. package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -0
  1077. package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -0
  1078. package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -0
  1079. package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -0
  1080. package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -0
  1081. package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -0
  1082. package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -0
  1083. package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -0
  1084. package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -0
  1085. package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -0
  1086. package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -0
  1087. package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -0
  1088. package/dist/plugin-sdk/twitch.cjs +1 -0
  1089. package/dist/plugin-sdk/twitch.js +1 -0
  1090. package/dist/plugin-sdk/utils-BJtJR72k.js +1 -0
  1091. package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -0
  1092. package/dist/plugin-sdk/voice-call.cjs +1 -0
  1093. package/dist/plugin-sdk/voice-call.js +1 -0
  1094. package/dist/plugin-sdk/web-B-QDcVRv.cjs +1 -0
  1095. package/dist/plugin-sdk/web-B2PwjHsu.cjs +1 -0
  1096. package/dist/plugin-sdk/web-BdnQzLgF.js +1 -0
  1097. package/dist/plugin-sdk/web-C9T7tf6w.js +1 -0
  1098. package/dist/plugin-sdk/web-CODD4ksc.cjs +1 -0
  1099. package/dist/plugin-sdk/web-CkdCvvR-.js +1 -0
  1100. package/dist/plugin-sdk/web-_tj8xNZE.js +1 -0
  1101. package/dist/plugin-sdk/web-pcTha_l7.cjs +1 -0
  1102. package/dist/plugin-sdk/weixin.cjs +1 -0
  1103. package/dist/plugin-sdk/weixin.js +1 -0
  1104. package/dist/plugin-sdk/whatsapp-actions-Bhz2j1uz.cjs +1 -0
  1105. package/dist/plugin-sdk/whatsapp-actions-Bm2UyRYg.cjs +1 -0
  1106. package/dist/plugin-sdk/whatsapp-actions-Bolz0jl5.js +1 -0
  1107. package/dist/plugin-sdk/whatsapp-actions-CJ3LDpaG.js +1 -0
  1108. package/dist/plugin-sdk/whatsapp-actions-CL1Gmkb0.js +1 -0
  1109. package/dist/plugin-sdk/whatsapp-actions-D-bZRT7s.js +1 -0
  1110. package/dist/plugin-sdk/whatsapp-actions-DSGTTE8M.cjs +1 -0
  1111. package/dist/plugin-sdk/whatsapp-actions-DjQxgMpW.cjs +1 -0
  1112. package/dist/plugin-sdk/whatsapp-actions-DrPBBi5t.cjs +1 -0
  1113. package/dist/plugin-sdk/whatsapp-actions-DtK657CZ.cjs +1 -0
  1114. package/dist/plugin-sdk/whatsapp-actions-Xwev51_N.js +1 -0
  1115. package/dist/plugin-sdk/whatsapp-actions-m7vLtNAA.js +1 -0
  1116. package/dist/plugin-sdk/whatsapp.cjs +1 -0
  1117. package/dist/plugin-sdk/whatsapp.js +1 -0
  1118. package/dist/plugin-sdk/zalo.cjs +1 -0
  1119. package/dist/plugin-sdk/zalo.js +1 -0
  1120. package/dist/plugin-sdk/zalouser.cjs +1 -0
  1121. package/dist/plugin-sdk/zalouser.js +1 -0
  1122. package/dist/plugins-CYLrFT4h.js +1 -0
  1123. package/dist/plugins-DNlgeTTc.js +1 -0
  1124. package/dist/plugins-cli-BbjMbzJU.js +1 -0
  1125. package/dist/plugins-cli-BiVMAr5T.js +1 -0
  1126. package/dist/polls-BIVz6a4F.js +1 -0
  1127. package/dist/polls-Bh5wc9-6.js +1 -0
  1128. package/dist/polls-C_XSFz3d.js +1 -0
  1129. package/dist/polls-DKJOFSzJ.js +1 -0
  1130. package/dist/ports-B0XdGTfS.js +1 -0
  1131. package/dist/ports-BR0PLRtq.js +1 -0
  1132. package/dist/probe-auth-BMA0yM94.js +1 -0
  1133. package/dist/probe-auth-VI96zmTK.js +1 -0
  1134. package/dist/profile-utils-CWmra1aY.js +1 -0
  1135. package/dist/program-BrAZTwFr.js +1 -0
  1136. package/dist/program-context-B9ydtPje.js +1 -0
  1137. package/dist/program-context-CH9p6anW.js +1 -0
  1138. package/dist/progress-LNttnI-y.js +1 -0
  1139. package/dist/progress-d1m2sqR1.js +1 -0
  1140. package/dist/prompt-select-styled-BeJNbzSa.js +1 -0
  1141. package/dist/prompt-select-styled-DIOWLjl0.js +1 -0
  1142. package/dist/prompt-style-BThRSQJR.js +1 -0
  1143. package/dist/prompt-style-CXKekIBY.js +1 -0
  1144. package/dist/prompts-CMzglboN.js +1 -0
  1145. package/dist/prompts-wv-lfVrJ.js +1 -0
  1146. package/dist/provider-auth-helpers-1lU43eTW.js +1 -0
  1147. package/dist/provider-auth-helpers-pBVCjBj9.js +1 -0
  1148. package/dist/provider-env-vars-D8p6Ohpj.js +1 -0
  1149. package/dist/provider-env-vars-Dt0Q29Su.js +1 -0
  1150. package/dist/proxy-env-BNhTHkd_.js +1 -0
  1151. package/dist/proxy-env-DcmW_urA.js +1 -0
  1152. package/dist/proxy-env-DrC3TIGh.js +1 -0
  1153. package/dist/proxy-env-FJr5nlvs.js +1 -0
  1154. package/dist/proxy-fetch-BADsUK4d.js +1 -0
  1155. package/dist/proxy-fetch-BZ9O8Dvj.js +1 -0
  1156. package/dist/proxy-fetch-DnjU1fEB.js +1 -0
  1157. package/dist/proxy-fetch-gWETR3cl.js +1 -0
  1158. package/dist/push-apns-BGUOmD5M.js +1 -0
  1159. package/dist/push-apns-B_a2MBJ4.js +1 -0
  1160. package/dist/pw-ai-C-Ffkwai.js +1 -0
  1161. package/dist/pw-ai-CV1H1Vrs.js +1 -0
  1162. package/dist/pw-ai-D_MB1lrR.js +1 -0
  1163. package/dist/pw-ai-_l9lVice.js +1 -0
  1164. package/dist/qmd-manager-C_e04BNg.js +1 -0
  1165. package/dist/qmd-manager-DSQ_mDCl.js +1 -0
  1166. package/dist/qmd-manager-DcBYbt_V.js +1 -0
  1167. package/dist/qmd-manager-NLI0R6kp.js +1 -0
  1168. package/dist/qr-cli-3aG6CB6K.js +1 -0
  1169. package/dist/qr-cli-fiJxD5M4.js +1 -0
  1170. package/dist/query-expansion-0OxEb1Io.js +1 -0
  1171. package/dist/query-expansion-BUUx_oWg.js +1 -0
  1172. package/dist/query-expansion-r_iXkNzt.js +1 -0
  1173. package/dist/reaction-level-DVPHL14p.js +1 -0
  1174. package/dist/reaction-message-id-BEEe7X3D.js +1 -0
  1175. package/dist/read-only-account-inspect-DBwAwB3_.js +1 -0
  1176. package/dist/redact-3_CiXMY6.js +1 -0
  1177. package/dist/redact-CnRxK70G.js +1 -0
  1178. package/dist/register.agent-CX78s_X9.js +1 -0
  1179. package/dist/register.agent-DLDKQENq.js +1 -0
  1180. package/dist/register.backup-DkFoTcuT.js +1 -0
  1181. package/dist/register.backup-PzF5rmeU.js +1 -0
  1182. package/dist/register.configure-BA5u9hT3.js +1 -0
  1183. package/dist/register.configure-BhPtf3Qo.js +1 -0
  1184. package/dist/register.maintenance-BhsBepKS.js +1 -0
  1185. package/dist/register.maintenance-r_MzNK3-.js +1 -0
  1186. package/dist/register.message-CTF--Z2a.js +1 -0
  1187. package/dist/register.message-jcZ875be.js +1 -0
  1188. package/dist/register.onboard-C3yL50_c.js +1 -0
  1189. package/dist/register.onboard-CNwnStUk.js +1 -0
  1190. package/dist/register.setup-BRJMzgfU.js +1 -0
  1191. package/dist/register.setup-BvsS-zgm.js +1 -0
  1192. package/dist/register.status-health-sessions-DVc__2pc.js +1 -0
  1193. package/dist/register.status-health-sessions-Dqmkw820.js +1 -0
  1194. package/dist/register.subclis-D-24j83X.js +1 -0
  1195. package/dist/registry-BptzrW8D.js +1 -0
  1196. package/dist/registry-hFAtCSWG.js +1 -0
  1197. package/dist/render-BXEUPIHe.js +1 -0
  1198. package/dist/render-CBsnn-2A.js +1 -0
  1199. package/dist/render-D8OWO2hT.js +1 -0
  1200. package/dist/render-DrrPmnMI.js +1 -0
  1201. package/dist/reply-l-Y47HP4.js +1 -0
  1202. package/dist/restart-CHXEHdSC.js +1 -0
  1203. package/dist/rpc-B3ReBNXG.js +1 -0
  1204. package/dist/rpc-DumDLalJ.js +1 -0
  1205. package/dist/run-main-B_YBE_TN.js +1 -0
  1206. package/dist/runtime-BC5Ep2pJ.js +1 -0
  1207. package/dist/runtime-Dlg2-Omq.js +1 -0
  1208. package/dist/runtime-guard-DFYBaYZS.js +1 -0
  1209. package/dist/runtime-guard-DX2Ie4ri.js +1 -0
  1210. package/dist/runtime-status-CqFBmdRd.js +1 -0
  1211. package/dist/runtime-status-DszMjvJK.js +1 -0
  1212. package/dist/runtime-web-tools-D8fms06-.js +1 -0
  1213. package/dist/runtime-web-tools-bz76ZaRc.js +1 -0
  1214. package/dist/sandbox-cli-BDorUBm-.js +1 -0
  1215. package/dist/sandbox-cli-Bq40R5Vs.js +1 -0
  1216. package/dist/scan-paths-C13EseXp.js +1 -0
  1217. package/dist/scan-paths-CWtvWW40.js +1 -0
  1218. package/dist/search-manager-Bp9x20r6.js +1 -0
  1219. package/dist/secret-file-C7JffiM_.js +1 -0
  1220. package/dist/secret-file-D60EFEOe.js +1 -0
  1221. package/dist/secret-file-DuWm26jS.js +1 -0
  1222. package/dist/secrets-cli-Bo6PC32U.js +1 -0
  1223. package/dist/secrets-cli-CoXJv3Jp.js +1 -0
  1224. package/dist/secure-random-D7JQgiK-.js +1 -0
  1225. package/dist/security-cli-CgZL2KKh.js +1 -0
  1226. package/dist/security-cli-DVOfhwAP.js +1 -0
  1227. package/dist/send-B7sHR38c2.js +1 -0
  1228. package/dist/send-Bx2Qr7VH.js +1 -0
  1229. package/dist/send-C-AP01PR.js +1 -0
  1230. package/dist/send-C1CJ-GHU.js +1 -0
  1231. package/dist/send-C48Y9SAq.js +1 -0
  1232. package/dist/send-CVplsJpw.js +1 -0
  1233. package/dist/send-CW81y5Wz.js +1 -0
  1234. package/dist/send-CYgHok1p.js +1 -0
  1235. package/dist/send-Cgd_VJHR.js +1 -0
  1236. package/dist/send-Chz0YMoJ.js +1 -0
  1237. package/dist/send-D9hVVn7p2.js +1 -0
  1238. package/dist/send-DKrzj_Ts.js +1 -0
  1239. package/dist/send-DRLSCwCk.js +1 -0
  1240. package/dist/send-DavpkzhH.js +1 -0
  1241. package/dist/send-DbeEC2a3.js +1 -0
  1242. package/dist/send-DkiKKUkt.js +1 -0
  1243. package/dist/send-DlfVd5mL.js +1 -0
  1244. package/dist/send-JYgM9Sm-2.js +1 -0
  1245. package/dist/send-hZFDcGLM.js +1 -0
  1246. package/dist/send-vthbs31u.js +1 -0
  1247. package/dist/server-DpyBukwA.js +1 -0
  1248. package/dist/server-IgiSKzXH.js +1 -0
  1249. package/dist/server-node-events-CFSY_-4t.js +1 -0
  1250. package/dist/server-node-events-ZFwmPwQ-.js +1 -0
  1251. package/dist/service-BtB9epJk.js +1 -0
  1252. package/dist/service-DZ9EbS15.js +1 -0
  1253. package/dist/session-C9TDmUS7.js +1 -0
  1254. package/dist/session-CUUGjiV3.js +1 -0
  1255. package/dist/session-DA-i5xQ-.js +1 -0
  1256. package/dist/session-bk3gFwO4.js +1 -0
  1257. package/dist/session-cost-usage-BgqKixv0.js +1 -0
  1258. package/dist/session-cost-usage-CHtVgnE8.js +1 -0
  1259. package/dist/session-key-C7F_iqYg.js +1 -0
  1260. package/dist/session-key-D3P0tf5P.js +1 -0
  1261. package/dist/session-utils-8acNlxwP.js +1 -0
  1262. package/dist/sessions-BsxT0V2m.js +1 -0
  1263. package/dist/shared-9x5sqYRb.js +1 -0
  1264. package/dist/shared-BKWhOp64.js +1 -0
  1265. package/dist/shared-GesXrZzd.js +1 -0
  1266. package/dist/skill-commands-BWW6mc6t.js +1 -0
  1267. package/dist/skill-commands-CSF6wVPU.js +1 -0
  1268. package/dist/skill-commands-Db232ZRp.js +1 -0
  1269. package/dist/skill-commands-HJHHZqt6.js +1 -0
  1270. package/dist/skill-scanner-CUUF3Fvo.js +1 -0
  1271. package/dist/skill-scanner-CkxXNioD.js +1 -0
  1272. package/dist/skills-CKTicUKS.js +1 -0
  1273. package/dist/skills-DHbOKEGc.js +1 -0
  1274. package/dist/skills-cli-9Ls94z5H.js +1 -0
  1275. package/dist/skills-cli-BY7OhJzj.js +1 -0
  1276. package/dist/skills-install-CIdGCXSy.js +1 -0
  1277. package/dist/skills-install-DIdiVt9Y.js +1 -0
  1278. package/dist/skills-status-BWIugRCz.js +1 -0
  1279. package/dist/skills-status-DswSl5aD.js +1 -0
  1280. package/dist/sqlite-CILF3z9U.js +1 -0
  1281. package/dist/stagger-DmFYysrJ.js +1 -0
  1282. package/dist/stagger-DxzgG2jd.js +1 -0
  1283. package/dist/status-C-9fSiMn.js +1 -0
  1284. package/dist/status-CeBGmSAz.js +1 -0
  1285. package/dist/status-DYqPF0rB.js +1 -0
  1286. package/dist/status-JIPeVrsc.js +1 -0
  1287. package/dist/status.update-B_8Gumuc.js +1 -0
  1288. package/dist/status.update-DoSzHu2F.js +1 -0
  1289. package/dist/string-normalization-BrUPaXaM.js +1 -0
  1290. package/dist/string-normalization-DJT5zuUF.js +1 -0
  1291. package/dist/subsystem-BLbY429l.js +1 -0
  1292. package/dist/subsystem-Bc2XrjUz.js +1 -0
  1293. package/dist/subsystem-C5XF2Fy5.js +1 -0
  1294. package/dist/system-cli-CeZfoVPN.js +1 -0
  1295. package/dist/system-cli-DZkTYB9d.js +1 -0
  1296. package/dist/system-run-command-BKfMiqQM.js +1 -0
  1297. package/dist/system-run-command-DEWnZE0r.js +1 -0
  1298. package/dist/systemd-D7odsu4K.js +1 -0
  1299. package/dist/systemd-DbevZh65.js +1 -0
  1300. package/dist/systemd-hints-C0DKDl35.js +1 -0
  1301. package/dist/systemd-hints-lXpMy-kY.js +1 -0
  1302. package/dist/systemd-linger-C2MJD6KG.js +1 -0
  1303. package/dist/systemd-linger-cWKbFNpu.js +1 -0
  1304. package/dist/table-CR7TFMew.js +1 -0
  1305. package/dist/table-CY440fI1.js +1 -0
  1306. package/dist/tables-Brc2lNcB.js +1 -0
  1307. package/dist/tables-CrXdLc_6.js +1 -0
  1308. package/dist/tables-Oieq7UbT.js +1 -0
  1309. package/dist/tables-btcG3yFT.js +1 -0
  1310. package/dist/target-errors-CRlevJJ5.js +1 -0
  1311. package/dist/target-errors-CgWAJOam.js +1 -0
  1312. package/dist/target-errors-CpKXh2RS.js +1 -0
  1313. package/dist/target-errors-a35Md15n.js +1 -0
  1314. package/dist/targets-4EaxWBal.js +1 -0
  1315. package/dist/targets-BJTo7bqu.js +1 -0
  1316. package/dist/targets-BYVMrXDf.js +1 -0
  1317. package/dist/targets-Bq6rS6-Z.js +1 -0
  1318. package/dist/targets-CL5fYQi7.js +1 -0
  1319. package/dist/targets-fozeWOOg.js +1 -0
  1320. package/dist/targets-m_41k_Mv.js +1 -0
  1321. package/dist/telegram/audit.js +1 -0
  1322. package/dist/text-format-CvrvBBre.js +1 -0
  1323. package/dist/text-format-DEWK6oCT.js +1 -0
  1324. package/dist/token-DnTmiyJu.js +1 -0
  1325. package/dist/tokens-B2fq-rL6.js +1 -0
  1326. package/dist/tokens-CL2fSjGl.js +1 -0
  1327. package/dist/tokens-DRM8vzJx.js +1 -0
  1328. package/dist/tokens-XGbQGn67.js +1 -0
  1329. package/dist/tool-display-DJDtttQg.js +1 -0
  1330. package/dist/tool-display-DjuSUUbH.js +1 -0
  1331. package/dist/tui-B506apla.js +1 -0
  1332. package/dist/tui-CJUkUxHb.js +1 -0
  1333. package/dist/tui-cli-BEdGHmhc.js +1 -0
  1334. package/dist/tui-cli-Cq_eXDAV.js +1 -0
  1335. package/dist/types.secrets-C-5U96pc.js +1 -0
  1336. package/dist/types.secrets-D4tbc3Wq.js +1 -0
  1337. package/dist/update-BGrxUIyz.js +1 -0
  1338. package/dist/update-CwTy5DPl.js +1 -0
  1339. package/dist/update-cli-BwBMOeP0.js +1 -0
  1340. package/dist/update-cli-YrBbmw4f.js +1 -0
  1341. package/dist/update-runner-BvtyRBD2.js +1 -0
  1342. package/dist/update-runner-DYamgo1V.js +1 -0
  1343. package/dist/usage-format-BWD8FJFL.js +1 -0
  1344. package/dist/usage-format-yPwal8Iz.js +1 -0
  1345. package/dist/utils-CGdo13HV.js +1 -0
  1346. package/dist/utils-D3t-vPka.js +1 -0
  1347. package/dist/utils-R-mFyVJi.js +1 -0
  1348. package/dist/utils-UGOV_184.js +1 -0
  1349. package/dist/version-q3SkUw2K.js +1 -0
  1350. package/dist/warning-filter.js +1 -0
  1351. package/dist/web-Cq3xWCaD.js +1 -0
  1352. package/dist/web-DwcxsgH0.js +1 -0
  1353. package/dist/webhooks-cli-CIeyainW.js +1 -0
  1354. package/dist/webhooks-cli-DSNAve_D.js +1 -0
  1355. package/dist/whatsapp-actions-B6gt1KeB.js +1 -0
  1356. package/dist/whatsapp-actions-DACoH7qd.js +1 -0
  1357. package/dist/whatsapp-actions-iQhIeMya.js +1 -0
  1358. package/dist/whatsapp-actions-tmjID75a.js +1 -0
  1359. package/dist/widearea-dns-BDx7vkV2.js +1 -0
  1360. package/dist/widearea-dns-BFjqKXu_.js +1 -0
  1361. package/dist/windows-spawn-7oINn5ao.js +1 -0
  1362. package/dist/windows-spawn-AB7ItGAE.js +1 -0
  1363. package/dist/with-timeout-WveKxvFV.js +1 -0
  1364. package/dist/with-timeout-c1CzdShT.js +1 -0
  1365. package/dist/workspace-B0ZQeHXg.js +1 -0
  1366. package/dist/workspace-C45T1Cxg.js +1 -0
  1367. package/dist/workspace-dirs-A8Vib9_B.js +1 -0
  1368. package/dist/workspace-dirs-BhF1Dzxt.js +1 -0
  1369. package/dist/workspace-xNEpaJvu.js +1 -0
  1370. package/dist/wsl-DHxB2Ew_.js +1 -0
  1371. package/dist/wsl-Ok7GaSJ6.js +1 -0
  1372. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +2 -2
  1373. package/node_modules/@aws-sdk/token-providers/package.json +1 -1
  1374. package/node_modules/@grammyjs/types/package.json +1 -1
  1375. package/node_modules/@line/bot-sdk/dist/channel-access-token/api/channelAccessTokenClient.js +49 -3
  1376. package/node_modules/@line/bot-sdk/dist/cjs/channel-access-token/api/channelAccessTokenClient.js +49 -3
  1377. package/node_modules/@line/bot-sdk/dist/cjs/client.js +636 -0
  1378. package/node_modules/@line/bot-sdk/dist/cjs/endpoints.js +7 -0
  1379. package/node_modules/@line/bot-sdk/dist/cjs/exceptions.js +15 -1
  1380. package/node_modules/@line/bot-sdk/dist/cjs/http-axios.js +2 -6
  1381. package/node_modules/@line/bot-sdk/dist/cjs/http-fetch.js +5 -13
  1382. package/node_modules/@line/bot-sdk/dist/cjs/index.js +3 -1
  1383. package/node_modules/@line/bot-sdk/dist/cjs/insight/api/insightClient.js +3 -0
  1384. package/node_modules/@line/bot-sdk/dist/cjs/liff/api/liffClient.js +3 -0
  1385. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.factory.generated.js +66 -0
  1386. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.js +1999 -0
  1387. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.js +61 -0
  1388. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceBlobClient.js +3 -0
  1389. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceClient.js +3 -0
  1390. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiBlobClient.js +3 -0
  1391. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.js +3 -0
  1392. package/node_modules/@line/bot-sdk/dist/cjs/module/api/lineModuleClient.js +3 -0
  1393. package/node_modules/@line/bot-sdk/dist/cjs/module-attach/api/lineModuleAttachClient.js +3 -0
  1394. package/node_modules/@line/bot-sdk/dist/cjs/shop/api/shopClient.js +3 -0
  1395. package/node_modules/@line/bot-sdk/dist/cjs/utils.js +10 -0
  1396. package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
  1397. package/node_modules/@line/bot-sdk/dist/client.js +636 -0
  1398. package/node_modules/@line/bot-sdk/dist/endpoints.js +7 -0
  1399. package/node_modules/@line/bot-sdk/dist/exceptions.js +15 -1
  1400. package/node_modules/@line/bot-sdk/dist/http-axios.js +2 -6
  1401. package/node_modules/@line/bot-sdk/dist/http-fetch.js +5 -13
  1402. package/node_modules/@line/bot-sdk/dist/index.js +1 -0
  1403. package/node_modules/@line/bot-sdk/dist/insight/api/insightClient.js +3 -0
  1404. package/node_modules/@line/bot-sdk/dist/liff/api/liffClient.js +3 -0
  1405. package/node_modules/@line/bot-sdk/dist/line-bot-client.factory.generated.js +63 -0
  1406. package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.js +1995 -0
  1407. package/node_modules/@line/bot-sdk/dist/line-bot-client.js +58 -0
  1408. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceBlobClient.js +3 -0
  1409. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceClient.js +3 -0
  1410. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiBlobClient.js +3 -0
  1411. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.js +3 -0
  1412. package/node_modules/@line/bot-sdk/dist/module/api/lineModuleClient.js +3 -0
  1413. package/node_modules/@line/bot-sdk/dist/module-attach/api/lineModuleAttachClient.js +3 -0
  1414. package/node_modules/@line/bot-sdk/dist/shop/api/shopClient.js +3 -0
  1415. package/node_modules/@line/bot-sdk/dist/utils.js +9 -0
  1416. package/node_modules/@line/bot-sdk/dist/version.js +1 -1
  1417. package/node_modules/@line/bot-sdk/package.json +10 -7
  1418. package/node_modules/@mariozechner/clipboard-linux-x64-gnu/clipboard.linux-x64-gnu.node +0 -0
  1419. package/node_modules/@mariozechner/clipboard-linux-x64-gnu/package.json +25 -0
  1420. package/node_modules/@mariozechner/clipboard-linux-x64-musl/clipboard.linux-x64-musl.node +0 -0
  1421. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
  1422. package/node_modules/@slack/bolt/dist/App.js +22 -30
  1423. package/node_modules/@slack/bolt/dist/Assistant.js +21 -37
  1424. package/node_modules/@slack/bolt/dist/CustomFunction.js +1 -43
  1425. package/node_modules/@slack/bolt/dist/context/create-function-complete.js +23 -0
  1426. package/node_modules/@slack/bolt/dist/context/create-function-fail.js +23 -0
  1427. package/node_modules/@slack/bolt/dist/context/create-respond.js +11 -0
  1428. package/node_modules/@slack/bolt/dist/context/create-say-stream.js +16 -0
  1429. package/node_modules/@slack/bolt/dist/context/create-say.js +17 -0
  1430. package/node_modules/@slack/bolt/dist/context/create-set-status.js +21 -0
  1431. package/node_modules/@slack/bolt/dist/context/index.js +16 -0
  1432. package/node_modules/@slack/bolt/dist/helpers.js +79 -3
  1433. package/node_modules/@slack/bolt/dist/index.js +10 -8
  1434. package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js +5 -1
  1435. package/node_modules/@slack/bolt/dist/types/events/index.js +0 -4
  1436. package/node_modules/@slack/bolt/package.json +7 -7
  1437. package/node_modules/@smithy/config-resolver/package.json +10 -11
  1438. package/node_modules/@smithy/core/dist-cjs/getSmithyContext.js +6 -0
  1439. package/node_modules/@smithy/core/dist-cjs/index.js +1 -1
  1440. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +21 -0
  1441. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +21 -0
  1442. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +46 -0
  1443. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/index.js +6 -0
  1444. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/resolveAuthOptions.js +24 -0
  1445. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/getHttpSigningMiddleware.js +19 -0
  1446. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +27 -0
  1447. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/index.js +5 -0
  1448. package/node_modules/@smithy/core/dist-cjs/normalizeProvider.js +10 -0
  1449. package/node_modules/@smithy/core/dist-cjs/pagination/createPaginator.js +44 -0
  1450. package/node_modules/@smithy/core/dist-cjs/request-builder/requestBuilder.js +5 -0
  1451. package/node_modules/@smithy/core/dist-cjs/setFeature.js +14 -0
  1452. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +17 -0
  1453. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +38 -0
  1454. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +15 -0
  1455. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/index.js +6 -0
  1456. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/noAuth.js +9 -0
  1457. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/index.js +6 -0
  1458. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/memoizeIdentityProvider.js +61 -0
  1459. package/node_modules/@smithy/core/package.json +15 -16
  1460. package/node_modules/@smithy/credential-provider-imds/package.json +9 -10
  1461. package/node_modules/@smithy/eventstream-codec/dist-cjs/index.js +13 -0
  1462. package/node_modules/@smithy/eventstream-codec/package.json +6 -7
  1463. package/node_modules/@smithy/eventstream-serde-browser/package.json +7 -8
  1464. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +7 -8
  1465. package/node_modules/@smithy/eventstream-serde-node/package.json +7 -8
  1466. package/node_modules/@smithy/eventstream-serde-universal/package.json +9 -10
  1467. package/node_modules/@smithy/fetch-http-handler/package.json +12 -13
  1468. package/node_modules/@smithy/hash-node/package.json +6 -7
  1469. package/node_modules/@smithy/invalid-dependency/package.json +6 -7
  1470. package/node_modules/@smithy/middleware-content-length/package.json +7 -8
  1471. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +2 -2
  1472. package/node_modules/@smithy/middleware-endpoint/package.json +13 -14
  1473. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +70 -29
  1474. package/node_modules/@smithy/middleware-retry/dist-es/index.js +5 -4
  1475. package/node_modules/@smithy/middleware-retry/dist-es/longPollMiddleware.js +15 -0
  1476. package/node_modules/@smithy/middleware-retry/dist-es/parseRetryAfterHeader.js +49 -0
  1477. package/node_modules/@smithy/middleware-retry/dist-es/{StandardRetryStrategy.js → retry-pre-sra-deprecated/StandardRetryStrategy.js} +1 -1
  1478. package/node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js +13 -20
  1479. package/node_modules/@smithy/middleware-retry/package.json +16 -16
  1480. package/node_modules/@smithy/middleware-serde/package.json +10 -11
  1481. package/node_modules/@smithy/middleware-stack/package.json +7 -8
  1482. package/node_modules/@smithy/node-config-provider/package.json +8 -9
  1483. package/node_modules/@smithy/node-http-handler/package.json +10 -11
  1484. package/node_modules/@smithy/property-provider/package.json +6 -7
  1485. package/node_modules/@smithy/protocol-http/package.json +6 -7
  1486. package/node_modules/@smithy/querystring-builder/package.json +6 -7
  1487. package/node_modules/@smithy/querystring-parser/package.json +6 -7
  1488. package/node_modules/@smithy/service-error-classification/package.json +6 -7
  1489. package/node_modules/@smithy/shared-ini-file-loader/package.json +7 -8
  1490. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +13 -0
  1491. package/node_modules/@smithy/signature-v4/package.json +9 -10
  1492. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +1 -1
  1493. package/node_modules/@smithy/smithy-client/package.json +14 -15
  1494. package/node_modules/@smithy/types/package.json +7 -8
  1495. package/node_modules/@smithy/url-parser/package.json +7 -8
  1496. package/node_modules/@smithy/util-defaults-mode-browser/package.json +8 -9
  1497. package/node_modules/@smithy/util-defaults-mode-node/package.json +11 -12
  1498. package/node_modules/@smithy/util-endpoints/package.json +9 -10
  1499. package/node_modules/@smithy/util-middleware/package.json +6 -7
  1500. package/node_modules/@smithy/util-retry/dist-cjs/index.js +123 -76
  1501. package/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js +7 -4
  1502. package/node_modules/@smithy/util-retry/dist-es/ConfiguredRetryStrategy.js +2 -2
  1503. package/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js +24 -25
  1504. package/node_modules/@smithy/util-retry/dist-es/DefaultRetryBackoffStrategy.js +14 -0
  1505. package/node_modules/@smithy/util-retry/dist-es/DefaultRetryToken.js +25 -0
  1506. package/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js +39 -26
  1507. package/node_modules/@smithy/util-retry/dist-es/index.js +1 -0
  1508. package/node_modules/@smithy/util-retry/dist-es/retries-2026-config.js +18 -0
  1509. package/node_modules/@smithy/util-retry/package.json +10 -11
  1510. package/node_modules/@smithy/util-stream/package.json +12 -13
  1511. package/node_modules/@snazzah/davey-linux-x64-gnu/davey.linux-x64-gnu.node +0 -0
  1512. package/node_modules/@snazzah/davey-linux-x64-gnu/package.json +43 -0
  1513. package/node_modules/@snazzah/davey-linux-x64-musl/davey.linux-x64-musl.node +0 -0
  1514. package/node_modules/@snazzah/davey-linux-x64-musl/package.json +43 -0
  1515. package/node_modules/dotenv/lib/main.js +1 -1
  1516. package/node_modules/dotenv/package.json +1 -1
  1517. package/node_modules/dotenv/skills/dotenv/SKILL.md +32 -52
  1518. package/node_modules/dotenv/skills/dotenvx/SKILL.md +57 -273
  1519. package/node_modules/grammy/out/bot.js +1 -0
  1520. package/node_modules/grammy/out/context.js +35 -0
  1521. package/node_modules/grammy/out/convenience/keyboard.js +30 -2
  1522. package/node_modules/grammy/out/core/api.js +34 -0
  1523. package/node_modules/grammy/out/filter.js +6 -2
  1524. package/node_modules/grammy/out/web.mjs +58 -10
  1525. package/node_modules/grammy/package.json +2 -2
  1526. package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +12 -0
  1527. package/node_modules/lru-cache/dist/commonjs/index.js +227 -130
  1528. package/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  1529. package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
  1530. package/node_modules/lru-cache/dist/esm/diagnostics-channel.js +17 -0
  1531. package/node_modules/lru-cache/dist/esm/index.js +227 -130
  1532. package/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  1533. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.mts.map +1 -0
  1534. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +8 -0
  1535. package/node_modules/lru-cache/dist/esm/node/index.js +1688 -0
  1536. package/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
  1537. package/node_modules/lru-cache/package.json +29 -9
  1538. package/node_modules/netmask/dist/netmask.js +58 -0
  1539. package/node_modules/netmask/dist/netmask4.js +189 -0
  1540. package/node_modules/netmask/dist/netmask6.js +187 -0
  1541. package/node_modules/netmask/package.json +15 -6
  1542. package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
  1543. package/node_modules/path-expression-matcher/lib/pem.d.cts +93 -0
  1544. package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
  1545. package/node_modules/path-expression-matcher/package.json +1 -1
  1546. package/node_modules/path-expression-matcher/src/ExpressionSet.js +189 -0
  1547. package/node_modules/path-expression-matcher/src/Matcher.js +50 -20
  1548. package/node_modules/path-expression-matcher/src/index.js +3 -2
  1549. package/node_modules/strnum/package.json +1 -1
  1550. package/package.json +1 -1
  1551. package/preset-config.json +12 -0
  1552. package/node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js +0 -14
  1553. package/node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js +0 -11
  1554. package/node_modules/netmask/CREDITS.md +0 -30
  1555. package/node_modules/netmask/lib/netmask.coffee +0 -167
  1556. package/node_modules/netmask/lib/netmask.js +0 -208
  1557. package/node_modules/strnum/.github/SECURITY.md +0 -5
  1558. package/node_modules/strnum/.vscode/launch.json +0 -25
  1559. package/node_modules/strnum/algo.stflow +0 -84
  1560. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  1561. /package/node_modules/@smithy/middleware-retry/dist-es/{AdaptiveRetryStrategy.js → retry-pre-sra-deprecated/AdaptiveRetryStrategy.js} +0 -0
  1562. /package/node_modules/@smithy/middleware-retry/dist-es/{defaultRetryQuota.js → retry-pre-sra-deprecated/defaultRetryQuota.js} +0 -0
  1563. /package/node_modules/@smithy/middleware-retry/dist-es/{delayDecider.js → retry-pre-sra-deprecated/delayDecider.js} +0 -0
  1564. /package/node_modules/@smithy/middleware-retry/dist-es/{retryDecider.js → retry-pre-sra-deprecated/retryDecider.js} +0 -0
  1565. /package/node_modules/@smithy/middleware-retry/dist-es/{types.js → retry-pre-sra-deprecated/types.js} +0 -0
@@ -1 +1,2 @@
1
1
  import{A as e,p as t}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-T8DuH3ax.js";import"./agent-scope-DAWJwFfl.js";import"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./send-CW81y5Wz.js";import"./send-DavpkzhH.js";import"./compact-Dg66DXx_.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import"./call-B8Fb4_oh.js";import"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BBeE1TmB.js";import"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import{t as n}from"./links-CBnmRP9D.js";import{n as r,t as i}from"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./provider-env-vars-Dt0Q29Su.js";import"./note-Dp-d_utk.js";import"./clack-prompter-DBPdGdqp.js";import"./issue-format-C_lNzrKa.js";import"./table-CR7TFMew.js";import"./openai-codex-model-default-DuE2_wN7.js";import"./auth-token-kGltuM6S.js";import"./logging-tYw1NbJd.js";import{c as a}from"./provider-auth-helpers-pBVCjBj9.js";import"./oauth-tls-preflight-BSBRDIfC.js";import{_ as o,a as s,b as c,c as l,d as u,f as d,g as f,h as p,i as m,l as h,m as g,modelsListCommand as _,modelsStatusCommand as v,n as y,o as b,p as x,r as S,s as C,t as w,u as T,v as E,x as D,y as O}from"./models-C_Vg3Cty.js";function k(e){return r(t,e)}function A(r){let A=r.command(`models`).description(`Model discovery, scanning, and configuration`).option(`--status-json`,"Output JSON (alias for `models status --json`)",!1).option(`--status-plain`,"Plain output (alias for `models status --plain`)",!1).option(`--agent <id>`,`Agent id to inspect (overrides OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/models`,`docs.openclaw.ai/cli/models`)}\n`);A.command(`list`).description(`List models (configured by default)`).option(`--all`,`Show full model catalog`,!1).option(`--local`,`Filter to local models`,!1).option(`--provider <name>`,`Filter by provider`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain line output`,!1).action(async e=>{await k(async()=>{await _(e,t)})}),A.command(`status`).description(`Show configured model state`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).option(`--check`,`Exit non-zero if auth is expiring/expired (1=expired/missing, 2=expiring)`,!1).option(`--probe`,`Probe configured provider auth (live)`,!1).option(`--probe-provider <name>`,`Only probe a single provider`).option(`--probe-profile <id>`,`Only probe specific auth profile ids (repeat or comma-separated)`,(e,t)=>{let n=Array.isArray(t)?t:t?[t]:[];return n.push(e),n}).option(`--probe-timeout <ms>`,`Per-probe timeout in ms`).option(`--probe-concurrency <n>`,`Concurrent probes`).option(`--probe-max-tokens <n>`,`Probe max tokens (best-effort)`).option(`--agent <id>`,`Agent id to inspect (overrides OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)`).action(async(e,n)=>{let r=i(n,`agent`)??e.agent;await k(async()=>{await v({json:!!e.json,plain:!!e.plain,check:!!e.check,probe:!!e.probe,probeProvider:e.probeProvider,probeProfile:e.probeProfile,probeTimeout:e.probeTimeout,probeConcurrency:e.probeConcurrency,probeMaxTokens:e.probeMaxTokens,agent:r},t)})}),A.command(`set`).description(`Set the default model`).argument(`<model>`,`Model id or alias`).action(async e=>{await k(async()=>{await y(e,t)})}),A.command(`set-image`).description(`Set the image model`).argument(`<model>`,`Model id or alias`).action(async e=>{await k(async()=>{await w(e,t)})});let j=A.command(`aliases`).description(`Manage model aliases`);j.command(`list`).description(`List model aliases`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).action(async e=>{await k(async()=>{await c(e,t)})}),j.command(`add`).description(`Add or update a model alias`).argument(`<alias>`,`Alias name`).argument(`<model>`,`Model id or alias`).action(async(e,n)=>{await k(async()=>{await O(e,n,t)})}),j.command(`remove`).description(`Remove a model alias`).argument(`<alias>`,`Alias name`).action(async e=>{await k(async()=>{await D(e,t)})});let M=A.command(`fallbacks`).description(`Manage model fallback list`);M.command(`list`).description(`List fallback models`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).action(async e=>{await k(async()=>{await T(e,t)})}),M.command(`add`).description(`Add a fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await k(async()=>{await l(e,t)})}),M.command(`remove`).description(`Remove a fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await k(async()=>{await u(e,t)})}),M.command(`clear`).description(`Clear all fallback models`).action(async()=>{await k(async()=>{await h(t)})});let N=A.command(`image-fallbacks`).description(`Manage image model fallback list`);N.command(`list`).description(`List image fallback models`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).action(async e=>{await k(async()=>{await b(e,t)})}),N.command(`add`).description(`Add an image fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await k(async()=>{await m(e,t)})}),N.command(`remove`).description(`Remove an image fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await k(async()=>{await C(e,t)})}),N.command(`clear`).description(`Clear all image fallback models`).action(async()=>{await k(async()=>{await s(t)})}),A.command(`scan`).description(`Scan OpenRouter free models for tools + images`).option(`--min-params <b>`,`Minimum parameter size (billions)`).option(`--max-age-days <days>`,`Skip models older than N days`).option(`--provider <name>`,`Filter by provider prefix`).option(`--max-candidates <n>`,`Max fallback candidates`,`6`).option(`--timeout <ms>`,`Per-probe timeout in ms`).option(`--concurrency <n>`,`Probe concurrency`).option(`--no-probe`,`Skip live probes; list free candidates only`).option(`--yes`,`Accept defaults without prompting`,!1).option(`--no-input`,`Disable prompts (use defaults)`).option(`--set-default`,`Set agents.defaults.model to the first selection`,!1).option(`--set-image`,`Set agents.defaults.imageModel to the first image selection`,!1).option(`--json`,`Output JSON`,!1).action(async e=>{await k(async()=>{await S(e,t)})}),A.action(async e=>{await k(async()=>{await v({json:!!e?.statusJson,plain:!!e?.statusPlain,agent:e?.agent},t)})});let P=A.command(`auth`).description(`Manage model auth profiles`);P.option(`--agent <id>`,`Agent id for auth order get/set/clear`),P.action(()=>{P.help()}),P.command(`add`).description(`Interactive auth helper (setup-token or paste token)`).action(async()=>{await k(async()=>{await p({},t)})}),P.command(`login`).description(`Run a provider plugin auth flow (OAuth/API key)`).option(`--provider <id>`,`Provider id registered by a plugin`).option(`--method <id>`,`Provider auth method id`).option(`--set-default`,`Apply the provider's default model recommendation`,!1).action(async e=>{await k(async()=>{await f({provider:e.provider,method:e.method,setDefault:!!e.setDefault},t)})}),P.command(`setup-token`).description(`Run a provider CLI to create/sync a token (TTY required)`).option(`--provider <name>`,`Provider id (default: anthropic)`).option(`--yes`,`Skip confirmation`,!1).action(async e=>{await k(async()=>{await E({provider:e.provider,yes:!!e.yes},t)})}),P.command(`paste-token`).description(`Paste a token into auth-profiles.json and update config`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--profile-id <id>`,`Auth profile id (default: <provider>:manual)`).option(`--expires-in <duration>`,`Optional expiry duration (e.g. 365d, 12h). Stored as absolute expiresAt.`).action(async e=>{await k(async()=>{await o({provider:e.provider,profileId:e.profileId,expiresIn:e.expiresIn},t)})}),P.command(`login-github-copilot`).description(`Login to GitHub Copilot via GitHub device flow (TTY required)`).option(`--profile-id <id>`,`Auth profile id (default: github-copilot:github)`).option(`--yes`,`Overwrite existing profile without prompting`,!1).action(async e=>{await k(async()=>{await a({profileId:e.profileId,yes:!!e.yes},t)})});let F=P.command(`order`).description(`Manage per-agent auth profile order overrides`);F.command(`get`).description(`Show per-agent auth order override (from auth-profiles.json)`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).option(`--json`,`Output JSON`,!1).action(async(e,n)=>{let r=i(n,`agent`)??e.agent;await k(async()=>{await x({provider:e.provider,agent:r,json:!!e.json},t)})}),F.command(`set`).description(`Set per-agent auth order override (locks rotation to this list)`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).argument(`<profileIds...>`,`Auth profile ids (e.g. anthropic:default)`).action(async(e,n,r)=>{let a=i(r,`agent`)??n.agent;await k(async()=>{await g({provider:n.provider,agent:a,order:e},t)})}),F.command(`clear`).description(`Clear per-agent auth order override (fall back to config/round-robin)`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).action(async(e,n)=>{let r=i(n,`agent`)??e.agent;await k(async()=>{await d({provider:e.provider,agent:r},t)})})}export{A as registerModelsCli};
2
+ //# sourceMappingURL=models-cli-CDZliTXq.js.map
@@ -1,2 +1,3 @@
1
1
  import"./paths-B4IRk3wi.js";import{A as e,O as t,k as n,p as r}from"./subsystem-C5XF2Fy5.js";import{S as i}from"./utils-UGOV_184.js";import{A as a,Cs as o,D as s,Fl as c,Gl as l,Kl as u,M as d,O as f,P as p,Qs as m,Rl as h,Tt as g,Ul as _,Ws as v,Yl as y,au as b,c as x,d as S,ec as C,f as w,fu as ee,g as te,gt as T,h as ne,i as E,j as D,jt as re,nu as ie,pu as O,qs as k,r as ae,tu as oe,v as A,wt as se,yc as ce}from"./model-selection-BlC_rXAN.js";import{Ut as le,Yr as ue,a as de,f as fe,ft as pe,ht as me,i as he,mt as ge,o as _e,r as j}from"./reply-l-Y47HP4.js";import{F as M,N,P as ve,a as ye,d as be,f as P,j as F,l as xe,s as Se}from"./agent-scope-DXZc3eNT.js";import{r as Ce}from"./string-normalization-BrUPaXaM.js";import"./openclaw-root-D_0Q6--h.js";import{i as I,l as we}from"./types.secrets-C-5U96pc.js";import"./github-copilot-token-DGYAlOmV.js";import{t as Te}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./send-Cgd_VJHR.js";import"./send-hZFDcGLM.js";import{i as Ee,s as De}from"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import{n as L}from"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import{n as Oe,t as ke}from"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import"./read-only-account-inspect-DBwAwB3_.js";import"./channel-selection-CbNtbAEf.js";import"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import{i as R,s as z}from"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import{f as B}from"./onboard-helpers-zwybUJWu.js";import{n as V,r as Ae,t as H}from"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import{t as U}from"./links-CySwdMcF.js";import{n as W,t as G}from"./cli-utils-BY7dLMFy.js";import"./help-format-BRbF_INg.js";import{r as je}from"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";import"./provider-env-vars-D8p6Ohpj.js";import"./note-D4GAwgha.js";import{t as Me}from"./clack-prompter-Dq0aY6iM.js";import"./issue-format-BT7cQEt3.js";import{n as Ne,t as Pe}from"./table-CY440fI1.js";import{t as Fe}from"./model-param-b-BqIr5rY5.js";import{n as K}from"./format-Bn1bwJKX.js";import{a as q,c as Ie,d as Le,f as Re,i as ze,l as Be,m as J,n as Ve,o as He,p as Ue,r as We,s as Ge,t as Ke,u as qe}from"./openai-codex-model-default-yVfRw-Mm.js";import{Mt as Je,h as Ye,n as Xe}from"./auth-token-9OTF1FmL.js";import{t as Ze}from"./oauth-env-DSLBTWb1.js";import{n as Y}from"./logging-Dqe9dxSX.js";import{a as Qe,c as $e,i as et,n as tt,o as nt,r as rt,s as it,t as at}from"./provider-auth-helpers-1lU43eTW.js";import"./oauth-tls-preflight-ByNjbUR5.js";import ot from"node:path";import st from"node:fs/promises";import ct from"node:crypto";import{complete as lt,getEnvApiKey as ut,getModel as dt}from"@mariozechner/pi-ai";import{Type as ft}from"@sinclair/typebox";import{cancel as pt,confirm as mt,isCancel as ht,multiselect as gt,select as _t,text as vt}from"@clack/prompts";async function yt(e){try{let{snapshot:e}=await m();if(e.valid)return e.resolved}catch{}return e}async function bt(e){let t=k(),n=await yt(t),{resolvedConfig:r,diagnostics:i}=await z({config:t,commandName:e.commandName,targetIds:R()});if(e.runtime)for(let t of i)e.runtime.log(`[secrets] ${t}`);return C(r,n),{sourceConfig:n,resolvedConfig:r,diagnostics:i}}async function X(e){return(await bt(e)).resolvedConfig}async function xt(e,t){ze(e);let n=(await X({commandName:`models aliases list`,runtime:t})).agents?.defaults?.models??{},r=Object.entries(n).reduce((e,[t,n])=>{let r=n?.alias?.trim();return r&&(e[r]=t),e},{});if(e.json){t.log(JSON.stringify({aliases:r},null,2));return}if(e.plain){for(let[e,n]of Object.entries(r))t.log(`${e} ${n}`);return}if(t.log(`Aliases (${Object.keys(r).length}):`),Object.keys(r).length===0){t.log(`- none`);return}for(let[e,n]of Object.entries(r))t.log(`- ${e} -> ${n}`)}async function St(e,t,n){let r=qe(e),i=Ue({raw:t,cfg:await X({commandName:`models aliases add`,runtime:n})});await J(e=>{let t=`${i.provider}/${i.model}`,n={...e.agents?.defaults?.models};for(let[e,i]of Object.entries(n)){let n=i?.alias?.trim();if(n&&n===r&&e!==t)throw Error(`Alias ${r} already points to ${e}.`)}return n[t]={...n[t]??{},alias:r},{...e,agents:{...e.agents,defaults:{...e.agents?.defaults,models:n}}}}),Y(n),n.log(`Alias ${r} -> ${i.provider}/${i.model}`)}async function Ct(e,t){let n=qe(e),r=await J(e=>{let t={...e.agents?.defaults?.models},r=!1;for(let[e,i]of Object.entries(t))if(i?.alias?.trim()===n){t[e]={...i,alias:void 0},r=!0;break}if(!r)throw Error(`Alias not found: ${n}`);return{...e,agents:{...e.agents,defaults:{...e.agents?.defaults,models:t}}}});Y(t),(!r.agents?.defaults?.models||Object.values(r.agents.defaults.models).every(e=>!e?.alias?.trim()))&&t.log(`No aliases configured.`)}function wt(e){return(typeof e==`symbol`||ht(e))&&(pt(`Cancelled.`),process.exit(0)),e}const Tt=async e=>wt(await mt({...e,message:V(e.message)})),Et=async e=>wt(await vt({...e,message:V(e.message)})),Dt=async e=>wt(await _t({...e,message:V(e.message),options:e.options.map(e=>e.hint===void 0?e:{...e,hint:H(e.hint)})}));function Ot(e){let t=e?.trim();return t?S(t)===`anthropic`?`anthropic`:`custom`:null}function kt(e){return`${S(e)}:manual`}async function At(e,t){let n=Ot(e.provider??`anthropic`);if(n!==`anthropic`)throw Error(`Only --provider anthropic is supported for setup-token.`);if(!process.stdin.isTTY)throw Error(`setup-token requires an interactive TTY.`);if(!e.yes&&!await Tt({message:"Have you run `claude setup-token` and copied the token?",initialValue:!0}))return;let r=await Et({message:`Paste Anthropic setup-token`,validate:e=>Xe(String(e??``))}),i=String(r??``).trim(),a=kt(n);u({profileId:a,credential:{type:`token`,provider:n,token:i}}),await J(e=>Ye(e,{profileId:a,provider:n,mode:`token`})),Y(t),t.log(`Auth profile: ${a} (${n}/token)`)}async function jt(e,t){let n=e.provider?.trim();if(!n)throw Error(`Missing --provider.`);let r=S(n),i=e.profileId?.trim()||kt(r),a=await Et({message:`Paste token for ${r}`,validate:e=>e?.trim()?void 0:`Required`}),o=String(a??``).trim(),s=e.expiresIn?.trim()&&e.expiresIn.trim().length>0?Date.now()+ce(String(e.expiresIn??``).trim(),{defaultUnit:`d`}):void 0;u({profileId:i,credential:{type:`token`,provider:r,token:o,...s?{expires:s}:{}}}),await J(e=>Ye(e,{profileId:i,provider:r,mode:`token`})),Y(t),t.log(`Auth profile: ${i} (${r}/token)`)}async function Mt(e,t){let n=await Dt({message:`Token provider`,options:[{value:`anthropic`,label:`anthropic`},{value:`custom`,label:`custom (type provider id)`}]}),r=n===`custom`?S(String(await Et({message:`Provider id`,validate:e=>e?.trim()?void 0:`Required`}))):n;if(await Dt({message:`Token method`,options:[...r===`anthropic`?[{value:`setup-token`,label:`setup-token (claude)`,hint:"Paste a setup-token from `claude setup-token`"}]:[],{value:`paste`,label:`paste token`}]})===`setup-token`){await At({provider:r},t);return}let i=kt(r);await jt({provider:r,profileId:String(await Et({message:`Profile id`,initialValue:i,validate:e=>e?.trim()?void 0:`Required`})).trim(),expiresIn:await Tt({message:`Does this token expire?`,initialValue:!1})?String(await Et({message:`Expires in (duration)`,initialValue:`365d`,validate:e=>{try{ce(String(e??``),{defaultUnit:`d`});return}catch{return`Invalid duration (e.g. 365d, 12h, 30m)`}}})).trim():void 0},t)}function Nt(e,t){let n=t?.trim();if(!n)return null;let r=et(e,n);if(r)return r;let i=e.map(e=>e.id).filter(Boolean).toSorted((e,t)=>e.localeCompare(t)),a=i.length>0?i.join(`, `):`(none)`;throw Error(`Unknown provider "${n}". Loaded providers: ${a}. Verify plugins via \`${Te(`openclaw plugins list --json`)}\`.`)}function Pt(e){return e.type===`api_key`?`api_key`:e.type===`token`?`token`:`oauth`}async function Ft(e){let t=await Qe({prompter:e.prompter,runtime:e.runtime,isRemote:Ze(),openUrl:async e=>{await B(e)},localBrowserMessage:`Complete sign-in in browser…`});if(!t)throw Error(`OpenAI Codex OAuth did not return credentials.`);let n=await Je(`openai-codex`,t,e.agentDir,{syncSiblingAgents:!0});await J(t=>{let r=Ye(t,{profileId:n,provider:`openai-codex`,mode:`oauth`});return e.opts.setDefault&&(r=Ve(r).next),r}),Y(e.runtime),e.runtime.log(`Auth profile: ${n} (openai-codex/oauth)`),e.opts.setDefault?e.runtime.log(`Default model set to ${Ke}`):e.runtime.log(`Default model available: ${Ke} (use --set-default to apply)`)}async function It(e,t){if(!process.stdin.isTTY)throw Error(`models auth login requires an interactive TTY.`);let n=await Ie(),r=P(n),i=ye(n,r),a=be(n,r)??F(),o=S(String(e.provider??``)),s=Me();if(o===`openai-codex`){await Ft({opts:e,runtime:t,prompter:s,agentDir:i});return}let c=it({config:n,workspaceDir:a});if(c.length===0)throw Error(`No provider plugins found. Install one via \`${Te(`openclaw plugins install`)}\`.`);let l=Nt(c,e.provider)??await s.select({message:`Select a provider`,options:c.map(e=>({value:e.id,label:e.label,hint:e.docsPath?`Docs: ${e.docsPath}`:void 0}))}).then(e=>et(c,String(e)));if(!l)throw Error(`Unknown provider. Use --provider <id> to pick a provider plugin.`);let d=rt(l,e.method)??(l.auth.length===1?l.auth[0]:await s.select({message:`Auth method for ${l.label}`,options:l.auth.map(e=>({value:e.id,label:e.label,hint:e.hint}))}).then(e=>l.auth.find(t=>t.id===String(e))));if(!d)throw Error(`Unknown auth method. Use --method <id> to select one.`);let f=Ze(),p=await d.run({config:n,agentDir:i,workspaceDir:a,prompter:s,runtime:t,isRemote:f,openUrl:async e=>{await B(e)},oauth:{createVpsAwareHandlers:e=>nt(e)}});for(let e of p.profiles)u({profileId:e.profileId,credential:e.credential,agentDir:i});await J(t=>{let n=t;p.configPatch&&(n=tt(n,p.configPatch));for(let e of p.profiles)n=Ye(n,{profileId:e.profileId,provider:e.credential.provider,mode:Pt(e.credential)});return e.setDefault&&p.defaultModel&&(n=at(n,p.defaultModel)),n}),Y(t);for(let e of p.profiles)t.log(`Auth profile: ${e.profileId} (${e.credential.provider}/${Pt(e.credential)})`);p.defaultModel&&t.log(e.setDefault?`Default model set to ${p.defaultModel}`:`Default model available: ${p.defaultModel} (use --set-default to apply)`),p.notes&&p.notes.length>0&&await s.note(p.notes.join(`
2
2
  `),`Provider notes`)}function Lt(e,t){let n=Le({cfg:e,rawAgentId:t})??P(e);return{agentId:n,agentDir:ye(e,n)}}function Rt(e,t){let n=S(t),r=e.order?.[n];return Array.isArray(r)?r:[]}async function zt(e,t){let n=e.provider?.trim();if(!n)throw Error(`Missing --provider.`);let r=S(n),i=await X({commandName:`models auth-order`,runtime:t}),{agentId:a,agentDir:o}=Lt(i,e.agent);return{cfg:i,agentId:a,agentDir:o,provider:r}}async function Bt(e,t){let{agentId:n,agentDir:r,provider:a}=await zt(e,t),o=Rt(y(r,{allowKeychainPrompt:!1}),a);if(e.json){t.log(JSON.stringify({agentId:n,agentDir:r,provider:a,authStorePath:i(`${r}/auth-profiles.json`),order:o.length>0?o:null},null,2));return}t.log(`Agent: ${n}`),t.log(`Provider: ${a}`),t.log(`Auth file: ${i(`${r}/auth-profiles.json`)}`),t.log(o.length>0?`Order override: ${o.join(`, `)}`:`Order override: (none)`)}async function Vt(e,t){let{agentId:n,agentDir:r,provider:i}=await zt(e,t);if(!await l({agentDir:r,provider:i,order:null}))throw Error(`Failed to update auth-profiles.json (lock busy?).`);t.log(`Agent: ${n}`),t.log(`Provider: ${i}`),t.log(`Cleared per-agent order override.`)}async function Ht(e,t){let{agentId:n,agentDir:r,provider:i}=await zt(e,t),a=y(r,{allowKeychainPrompt:!1}),o=i,s=Ce(e.order??[]);if(s.length===0)throw Error(`Missing profile ids. Provide one or more profile ids.`);for(let e of s){let t=a.profiles[e];if(!t)throw Error(`Auth profile "${e}" not found in ${r}.`);if(S(t.provider)!==o)throw Error(`Auth profile "${e}" is for ${t.provider}, not ${i}.`)}let c=await l({agentDir:r,provider:i,order:s});if(!c)throw Error(`Failed to update auth-profiles.json (lock busy?).`);t.log(`Agent: ${n}`),t.log(`Provider: ${i}`),t.log(`Order override: ${Rt(c,i).join(`, `)}`)}function Ut(e,t){return N(e.agents?.defaults?.[t])}function Wt(e,t){let n=M(e.agents?.defaults?.[t.key]);return{...e,agents:{...e.agents,defaults:{...e.agents?.defaults,[t.key]:Be(n,{fallbacks:t.fallbacks}),...t.models?{models:t.models}:void 0}}}}async function Gt(e,t,n){ze(t);let r=Ut(await X({commandName:`models ${e.key} list`,runtime:n}),e.key);if(t.json){n.log(JSON.stringify({fallbacks:r},null,2));return}if(t.plain){for(let e of r)n.log(e);return}if(n.log(`${e.label} (${r.length}):`),r.length===0){n.log(`- none`);return}for(let e of r)n.log(`- ${e}`)}async function Kt(e,t,n){let r=await J(n=>{let r=Ue({raw:t,cfg:n}),i=x(r.provider,r.model),a={...n.agents?.defaults?.models};a[i]||(a[i]={});let o=Ut(n,e.key);return Re({cfg:n,entries:o}).includes(i)?n:Wt(n,{key:e.key,fallbacks:[...o,i],models:a})});Y(n),n.log(`${e.logPrefix}: ${Ut(r,e.key).join(`, `)}`)}async function qt(e,t,n){let r=await J(n=>{let r=Ue({raw:t,cfg:n}),i=x(r.provider,r.model),a=ae({cfg:n,defaultProvider:O}),o=Ut(n,e.key),s=o.filter(e=>{let t=A({raw:String(e??``),defaultProvider:O,aliasIndex:a});return t?x(t.ref.provider,t.ref.model)!==i:!0});if(s.length===o.length)throw Error(`${e.notFoundLabel} not found: ${i}`);return Wt(n,{key:e.key,fallbacks:s})});Y(n),n.log(`${e.logPrefix}: ${Ut(r,e.key).join(`, `)}`)}async function Jt(e,t){await J(t=>Wt(t,{key:e.key,fallbacks:[]})),Y(t),t.log(e.clearedMessage)}async function Yt(e,t){return await Gt({label:`Fallbacks`,key:`model`},e,t)}async function Xt(e,t){return await Kt({label:`Fallbacks`,key:`model`,logPrefix:`Fallbacks`},e,t)}async function Zt(e,t){return await qt({label:`Fallbacks`,key:`model`,notFoundLabel:`Fallback`,logPrefix:`Fallbacks`},e,t)}async function Qt(e){return await Jt({key:`model`,clearedMessage:`Fallback list cleared.`},e)}async function $t(e,t){return await Gt({label:`Image fallbacks`,key:`imageModel`},e,t)}async function en(e,t){return await Kt({label:`Image fallbacks`,key:`imageModel`,logPrefix:`Image fallbacks`},e,t)}async function tn(e,t){return await qt({label:`Image fallbacks`,key:`imageModel`,notFoundLabel:`Image fallback`,logPrefix:`Image fallbacks`},e,t)}async function nn(e){return await Jt({key:`imageModel`,clearedMessage:`Image fallback list cleared.`},e)}function rn(e){let t=ne({cfg:e,defaultProvider:O,defaultModel:ee}),n=ae({cfg:e,defaultProvider:O}),r=[],i=new Map,a=new Map;for(let[e,t]of n.byKey.entries())a.set(e,t);let o=(e,t)=>{let n=x(e.provider,e.model);i.has(n)||(i.set(n,new Set),r.push(n)),i.get(n)?.add(t)};o(t,`default`);let s=N(e.agents?.defaults?.model),c=N(e.agents?.defaults?.imageModel),l=ve(e.agents?.defaults?.imageModel)??``;if(s.forEach((e,t)=>{let r=A({raw:String(e??``),defaultProvider:O,aliasIndex:n});r&&o(r.ref,`fallback#${t+1}`)}),l){let e=A({raw:l,defaultProvider:O,aliasIndex:n});e&&o(e.ref,`image`)}c.forEach((e,t)=>{let r=A({raw:String(e??``),defaultProvider:O,aliasIndex:n});r&&o(r.ref,`img-fallback#${t+1}`)});for(let t of Object.keys(e.agents?.defaults?.models??{})){let e=w(String(t??``),O);e&&o(e,`configured`)}return{entries:r.map(e=>{let t=e.indexOf(`/`);return{key:e,ref:{provider:t===-1?e:e.slice(0,t),model:t===-1?``:e.slice(t+1)},tags:i.get(e)??new Set,aliases:a.get(e)??[]}})}}const an=`MODEL_AVAILABILITY_UNAVAILABLE`;function on(e){return e instanceof Error?e.stack??`${e.name}: ${e.message}`:String(e)}function sn(e){return e instanceof Error?e.code===an:!1}const cn=(e,t,n)=>!t||!n?!1:!!(_(n,e).length>0||e===`amazon-bedrock`&&D()||d(e)||f(t,e));function ln(e){let t=Error(e);return t.code=an,t}function un(e){return sn(e)&&e instanceof Error?e:ln(`Model availability unavailable: getAvailable() failed.\n${on(e)}`)}function dn(e){if(!Array.isArray(e))throw ln(`Model availability unavailable: getAvailable() returned a non-array value.`);for(let t of e)if(!t||typeof t!=`object`||typeof t.provider!=`string`||typeof t.id!=`string`)throw ln(`Model availability unavailable: getAvailable() returned invalid model entries.`);return e}function fn(e){let t;try{t=e.getAvailable()}catch(e){throw un(e)}try{return dn(t)}catch(e){throw un(e)}}async function pn(e,t){let n=ie(),r=Oe(ke(n),n),i=r.getAll(),a,o;try{let e=fn(r);a=new Set(e.map(e=>x(e.provider,e.id)))}catch(e){if(!sn(e))throw e;a=void 0,o||=on(e)}return{registry:r,models:i,availableKeys:a,availabilityErrorMessage:o}}function mn(e){let{model:t,key:n,tags:r,aliases:i=[],availableKeys:a,cfg:o,authStore:s,allowProviderAvailabilityFallback:c=!1}=e;if(!t)return{key:n,name:n,input:`-`,contextWindow:null,local:null,available:null,tags:[...r,`missing`],missing:!0};let l=t.input.join(`+`)||`text`,u=Ge(t.baseUrl),d=a?.has(x(t.provider,t.id))??!1,f=a!==void 0&&!c?d:d||(o&&s?cn(t.provider,o,s):!1),p=i.length>0?[`alias:${i.join(`,`)}`]:[],m=new Set(r);if(p.length>0){for(let e of m)(e===`alias`||e.startsWith(`alias:`))&&m.delete(e);for(let e of p)m.add(e)}return{key:n,name:t.name||t.id,input:l,contextWindow:t.contextWindow??null,local:u,available:f,tags:Array.from(m),missing:!1}}function hn(e,t){return!(e.provider&&t.provider.toLowerCase()!==e.provider||e.local&&!Ge(t.baseUrl??``))}function gn(e){let t=e.context.configuredByKey.get(e.key);return mn({model:e.model,key:e.key,tags:t?Array.from(t.tags):[],aliases:t?.aliases??[],availableKeys:e.context.availableKeys,cfg:e.context.cfg,authStore:e.context.authStore,allowProviderAvailabilityFallback:e.allowProviderAvailabilityFallback??!1})}async function _n(e,t){let n=await pn(e,t);return{...n,discoveredKeys:new Set(n.models.map(e=>x(e.provider,e.id)))}}function vn(e){let t=new Set,n=[...e.models].toSorted((e,t)=>{let n=e.provider.localeCompare(t.provider);return n===0?e.id.localeCompare(t.id):n});for(let r of n){if(!hn(e.context.filter,r))continue;let n=x(r.provider,r.id);e.rows.push(gn({model:r,key:n,context:e.context})),t.add(n)}return t}async function yn(e){let t=await L({config:e.context.cfg});for(let n of t){if(e.context.filter.provider&&n.provider.toLowerCase()!==e.context.filter.provider)continue;let t=x(n.provider,n.id);if(e.seenKeys.has(t))continue;let r=ue({provider:n.provider,modelId:n.id,modelRegistry:e.modelRegistry,cfg:e.context.cfg});!r||!hn(e.context.filter,r)||(e.rows.push(gn({model:r,key:t,context:e.context,allowProviderAvailabilityFallback:!e.context.discoveredKeys.has(t)})),e.seenKeys.add(t))}}function bn(e){for(let t of e.entries){if(e.context.filter.provider&&t.ref.provider.toLowerCase()!==e.context.filter.provider)continue;let n=ue({provider:t.ref.provider,modelId:t.ref.model,modelRegistry:e.modelRegistry,cfg:e.context.cfg});e.context.filter.local&&n&&!Ge(n.baseUrl??``)||e.context.filter.local&&!n||e.rows.push(mn({model:n,key:t.key,tags:Array.from(t.tags),aliases:t.aliases,availableKeys:e.context.availableKeys,cfg:e.context.cfg,authStore:e.context.authStore,allowProviderAvailabilityFallback:n?!e.context.discoveredKeys.has(x(n.provider,n.id)):!1}))}}const xn=e=>!!(n()&&!e?.json&&!e?.plain),Z=(e,t)=>e.padEnd(t),Sn=(t,n)=>n?t===`default`?e.success(t):t===`image`?e.accentBright(t):t===`configured`?e.accent(t):t===`missing`?e.error(t):t.startsWith(`fallback#`)||t.startsWith(`img-fallback#`)?e.warn(t):t.startsWith(`alias:`)?e.accentDim(t):e.muted(t):t,Cn=(e,t)=>e.length<=t?e:t<=3?e.slice(0,t):`${e.slice(0,t-3)}...`;function wn(n,r,i={}){if(i.json){r.log(JSON.stringify({count:n.length,models:n},null,2));return}if(i.plain){for(let e of n)r.log(e.key);return}let a=xn(i),o=[Z(`Model`,42),Z(`Input`,10),Z(`Ctx`,8),Z(`Local`,5),Z(`Auth`,5),`Tags`].join(` `);r.log(a?e.heading(o):o);for(let i of n){let n=Z(Cn(i.key,42),42),o=Z(i.input||`-`,10),s=Z(He(i.contextWindow),8),c=Z(i.local===null?`-`:i.local?`yes`:`no`,5),l=Z(i.available===null?`-`:i.available?`yes`:`no`,5),u=i.tags.length>0?a?i.tags.map(e=>Sn(e,a)).join(`,`):i.tags.join(`,`):``,d=t(a,i.input.includes(`image`)?e.accentBright:e.info,o),f=t(a,i.local===null?e.muted:i.local?e.success:e.muted,c),p=t(a,i.available===null?e.muted:i.available?e.success:e.error,l),m=[a?e.accent(n):n,d,s,f,p,u].join(` `);r.log(m)}}async function Tn(e,t){ze(e);let{ensureAuthProfileStore:n}=await import(`./model-selection-BlC_rXAN.js`).then(e=>e.Ct),{ensureOpenClawModelsJson:r}=await import(`./models-config-CdMhNxKV.js`).then(e=>e.n),{sourceConfig:i,resolvedConfig:a}=await bt({commandName:`models list`,runtime:t}),o=n(),s=(()=>{let t=e.provider?.trim();if(t)return w(`${t}/_`,`anthropic`)?.provider??t.toLowerCase()})(),c,l=new Set,u,d;try{await r(i??a);let e=await _n(a,{sourceConfig:i});c=e.registry,l=e.discoveredKeys,u=e.availableKeys,d=e.availabilityErrorMessage}catch(e){t.error(`Model registry unavailable:\n${on(e)}`),process.exitCode=1;return}d!==void 0&&t.error(`Model availability lookup failed; falling back to auth heuristics for discovered models: ${d}`);let{entries:f}=rn(a),p=new Map(f.map(e=>[e.key,e])),m=[],h={cfg:a,authStore:o,availableKeys:u,configuredByKey:p,discoveredKeys:l,filter:{provider:s,local:e.local}};if(e.all){let e=vn({rows:m,models:c?.getAll()??[],context:h});c&&await yn({rows:m,modelRegistry:c,context:h,seenKeys:e})}else{let e=c;if(!e){t.error(`Model registry unavailable.`),process.exitCode=1;return}bn({rows:m,entries:f,modelRegistry:e,context:h})}if(m.length===0){t.log(`No models found.`);return}wn(m,t,e)}function En(e){return T(e,{includeEnvVarName:!1})?`marker(${e.trim()})`:j(e)}function Dn(e){let t=typeof e.value==`string`?e.value.trim():``;if(t){let n=En(t);return e.kind===`token`?`token:${n}`:n}if(e.ref){let t=`ref(${e.ref.source}:${e.ref.id})`;return e.kind===`token`?`token:${t}`:t}return e.kind===`token`?`token:missing`:`missing`}function On(e){let{provider:t,cfg:n,store:r}=e,a=Date.now(),o=_(r,t),c=(e,t)=>{let n=re(r,t);if(!n||a>=n)return e;let i=r.usageStats?.[t];return`${e} [${typeof i?.disabledUntil==`number`&&a<i.disabledUntil?`disabled${i.disabledReason?`:${i.disabledReason}`:``}`:`cooldown`} ${_e(n-a)}]`},l=o.map(e=>{let t=r.profiles[e];if(!t)return`${e}=missing`;if(t.type===`api_key`)return c(`${e}=${Dn({value:t.key,ref:t.keyRef,kind:`api-key`})}`,e);if(t.type===`token`)return c(`${e}=${Dn({value:t.token,ref:t.tokenRef,kind:`token`})}`,e);let i=b({cfg:n,store:r,profileId:e}),a=i===e?``:i.startsWith(e)?i.slice(e.length).trim():`(${i})`;return c(`${e}=OAuth${a?` ${a}`:``}`,e)}),u=o.filter(e=>r.profiles[e]?.type===`oauth`).length,f=o.filter(e=>r.profiles[e]?.type===`token`).length,m=o.filter(e=>r.profiles[e]?.type===`api_key`).length,h=d(t),g=s(n,t),v=p({cfg:n,provider:t});return{provider:t,effective:o.length>0?{kind:`profiles`,detail:i(oe())}:h?{kind:`env`,detail:h.source.includes(`OAUTH_TOKEN`)||h.source.toLowerCase().includes(`oauth`)?`OAuth (env)`:j(h.apiKey)}:v?{kind:`models.json`,detail:En(v.apiKey)}:{kind:`missing`,detail:`missing`},profiles:{count:o.length,oauth:u,token:f,apiKey:m,labels:l},...h?{env:{value:h.source.includes(`OAUTH_TOKEN`)||h.source.toLowerCase().includes(`oauth`)?`OAuth (env)`:j(h.apiKey),source:h.source}}:{},...g?{modelsJson:{value:En(g),source:`models.json: ${i(e.modelsPath)}`}}:{}}}function kn(e){return e?e===`auth`||e===`auth_permanent`?`auth`:e===`rate_limit`||e===`overloaded`?`rate_limit`:e===`billing`?`billing`:e===`timeout`?`timeout`:e===`format`?`format`:`unknown`:`unknown`}function An(e){let t=new Map;for(let n of e){let e=w(String(n??``),O);if(!e)continue;let r=t.get(e.provider)??[];r.includes(e.model)||r.push(e.model),t.set(e.provider,r)}return t}function jn(e){let{provider:t,candidates:n,catalog:r}=e,i=n.get(t);if(i&&i.length>0)return{provider:t,model:i[0]};let a=r.find(e=>e.provider===t);return a?{provider:a.provider,model:a.id}:null}function Mn(e){return e===`missing_credential`?`missing_credential`:e===`expired`?`expired`:e===`invalid_expires`?`invalid_expires`:e===`unresolved_ref`?`unresolved_ref`:`ineligible_profile`}function Nn(e){let t=`Auth profile credentials are missing or expired.`;return e===`expired`?`${t}\n↳ Auth reason [expired]: token credentials are expired.`:e===`invalid_expires`?`${t}\n↳ Auth reason [invalid_expires]: token expires must be a positive Unix ms timestamp.`:e===`missing_credential`?`${t}\n↳ Auth reason [missing_credential]: no inline credential or SecretRef is configured.`:e===`unresolved_ref`?`${t}\n↳ Auth reason [unresolved_ref]: configured SecretRef could not be resolved.`:`${t}\n↳ Auth reason [ineligible_profile]: profile is incompatible with provider config.`}function Pn(e,t){let n=t.secrets?.defaults;return e.type===`api_key`?we(e.key)===void 0?I(e.keyRef,n):null:e.type===`token`&&we(e.token)===void 0?I(e.tokenRef,n):null}function Fn(e){return`Auth profile credentials are missing or expired.\n↳ Auth reason [unresolved_ref]: could not resolve SecretRef "${e}".`}async function In(e){if(!e.profile)return null;let t=Pn(e.profile,e.cfg);if(!t)return null;try{return await o(t,{config:e.cfg,env:process.env,cache:e.cache}),null}catch{return{reasonCode:`unresolved_ref`,error:Fn(`${t.source}:${t.provider}:${t.id}`)}}}async function Ln(e){let{cfg:t,providers:n,modelCandidates:r,options:i}=e,a=y(),o=i.provider?.trim(),s=o?S(o):null,c=new Set((i.profileIds??[]).map(e=>e.trim()).filter(Boolean)),l={},u=await L({config:t}),p=An(r),m=[],h=[];for(let e of n){let n=S(e);if(s&&n!==s)continue;let r=jn({provider:n,candidates:p,catalog:u}),i=_(a,n),o=E(a.order,n)??E(t?.auth?.order,n),v=o&&o.length>0?new Set(g({cfg:t,store:a,provider:n})):null,y=c.size?i.filter(e=>c.has(e)):i;if(y.length>0){for(let e of y){let i=a.profiles[e],s=i?.type,c=b({cfg:t,store:a,profileId:e});if(o&&!o.includes(e)){h.push({provider:n,profileId:e,model:r?`${r.provider}/${r.model}`:void 0,label:c,source:`profile`,mode:s,status:`unknown`,reasonCode:`excluded_by_auth_order`,error:`Excluded by auth.order for this provider.`});continue}if(v&&!v.has(e)){let i=Mn(se({cfg:t,store:a,provider:n,profileId:e}).reasonCode);h.push({provider:n,model:r?`${r.provider}/${r.model}`:void 0,profileId:e,label:c,source:`profile`,mode:s,status:`unknown`,reasonCode:i,error:Nn(i)});continue}let u=await In({cfg:t,profile:i,cache:l});if(u){h.push({provider:n,model:r?`${r.provider}/${r.model}`:void 0,profileId:e,label:c,source:`profile`,mode:s,status:`unknown`,reasonCode:u.reasonCode,error:u.error});continue}if(!r){h.push({provider:n,model:void 0,profileId:e,label:c,source:`profile`,mode:s,status:`no_model`,reasonCode:`no_model`,error:`No model available for probe`});continue}m.push({provider:n,model:r,profileId:e,label:c,source:`profile`,mode:s})}continue}if(c.size>0)continue;let x=d(n),C=f(t,n);if(!x&&!C)continue;let w=x?`env`:`models.json`,ee=x?`env`:`models.json`,te=x?.source.includes(`OAUTH_TOKEN`)?`oauth`:`api_key`;if(!r){h.push({provider:n,model:void 0,label:w,source:ee,mode:te,status:`no_model`,reasonCode:`no_model`,error:`No model available for probe`});continue}m.push({provider:n,model:r,label:w,source:ee,mode:te})}return{targets:m,results:h}}async function Rn(e){let{cfg:t,agentId:n,agentDir:r,workspaceDir:i,sessionDir:a,target:o,timeoutMs:s,maxTokens:c}=e;if(!o.model)return{provider:o.provider,model:void 0,profileId:o.profileId,label:o.label,source:o.source,mode:o.mode,status:`no_model`,reasonCode:`no_model`,error:`No model available for probe`};let l=`probe-${o.provider}-${ct.randomUUID()}`,u=Ee(l,n);await st.mkdir(a,{recursive:!0});let d=Date.now();try{return await fe({sessionId:l,sessionFile:u,agentId:n,workspaceDir:i,agentDir:r,config:t,prompt:`Reply with OK. Do not use tools.`,provider:o.model.provider,model:o.model.model,authProfileId:o.profileId,authProfileIdSource:o.profileId?`user`:void 0,timeoutMs:s,runId:`probe-${ct.randomUUID()}`,lane:`auth-probe:${o.provider}:${o.profileId??o.source}`,thinkLevel:`off`,reasoningLevel:`off`,verboseLevel:`off`,streamParams:{maxTokens:c}}),{provider:o.provider,model:`${o.model.provider}/${o.model.model}`,profileId:o.profileId,label:o.label,source:o.source,mode:o.mode,status:`ok`,latencyMs:Date.now()-d}}catch(e){let t=le(e);return{provider:o.provider,model:`${o.model.provider}/${o.model.model}`,profileId:o.profileId,label:o.label,source:o.source,mode:o.mode,status:kn(t.reason),error:K(t.message),latencyMs:Date.now()-d}}}async function zn(e){let{cfg:t,targets:n,timeoutMs:r,maxTokens:i,onProgress:a}=e,o=Math.max(1,Math.min(n.length||1,e.concurrency)),s=P(t),c=ie(),l=be(t,s)??F(),u=De(s);await st.mkdir(l,{recursive:!0});let d=0,f=Array.from({length:n.length}),p=0,m=async()=>{for(;;){let e=p;if(p+=1,e>=n.length)return;let o=n[e];a?.({completed:d,total:n.length,label:`Probing ${o.provider}${o.profileId?` (${o.label})`:``}`}),f[e]=await Rn({cfg:t,agentId:s,agentDir:c,workspaceDir:l,sessionDir:u,target:o,timeoutMs:r,maxTokens:i}),d+=1,a?.({completed:d,total:n.length})}};return await Promise.all(Array.from({length:o},()=>m())),f.filter(e=>!!e)}async function Bn(e){let t=Date.now(),n=await Ln({cfg:e.cfg,providers:e.providers,modelCandidates:e.modelCandidates,options:e.options}),r=n.targets.length;e.onProgress?.({completed:0,total:r});let i=r?await zn({cfg:e.cfg,targets:n.targets,timeoutMs:e.options.timeoutMs,maxTokens:e.options.maxTokens,concurrency:e.options.concurrency,onProgress:e.onProgress}):[],a=Date.now();return{startedAt:t,finishedAt:a,durationMs:a-t,totalTargets:r,options:e.options,results:[...n.results,...i]}}function Vn(e){return!e&&e!==0?`-`:q(e)}function Hn(e){return e.slice().toSorted((e,t)=>{let n=e.provider.localeCompare(t.provider);if(n!==0)return n;let r=e.label||e.profileId||``,i=t.label||t.profileId||``;return r.localeCompare(i)})}function Un(e){return e.totalTargets===0?`No probe targets.`:`Probed ${e.totalTargets} target${e.totalTargets===1?``:`s`} in ${q(e.durationMs)}`}async function Wn(n,r){if(ze(n),n.plain&&n.probe)throw Error(`--probe cannot be used with --plain output.`);let a=v().configPath,o=await X({commandName:`models status`,runtime:r}),s=Le({cfg:o,rawAgentId:n.agent}),l=s?ye(o,s):ie(),u=s?Se(o,s):void 0,f=s?xe(o,s):void 0,p=s?te({cfg:o,agentId:s}):ne({cfg:o,defaultProvider:O,defaultModel:ee}),m=ve(o.agents?.defaults?.model)??``,g=u??m,_=`${p.provider}/${p.model}`,b=g||_,x=N(o.agents?.defaults?.model),S=f??x,C=ve(o.agents?.defaults?.imageModel)??``,T=N(o.agents?.defaults?.imageModel),E=Object.entries(o.agents?.defaults?.models??{}).reduce((e,[t,n])=>{let r=typeof n?.alias==`string`?n.alias.trim():void 0;return r&&(e[r]=t),e},{}),D=Object.keys(o.agents?.defaults?.models??{}),k=y(l),se=ot.join(l,`models.json`),ce=new Set(Object.values(k.profiles).map(e=>e.provider).filter(e=>!!e)),le=new Set(Object.keys(o.models?.providers??{}).map(e=>typeof e==`string`?e.trim():``).filter(Boolean)),ue=new Set,fe=new Set;for(let e of[b,...S,C,...T,...D]){let t=w(String(e??``),O);t?.provider&&ue.add(t.provider)}for(let e of[b,...S,C,...T]){let t=w(String(e??``),O);t?.provider&&fe.add(t.provider)}let j=new Set;for(let e of[`anthropic`,`github-copilot`,`google-vertex`,`openai`,`google`,`groq`,`cerebras`,`xai`,`openrouter`,`zai`,`mistral`,`synthetic`])d(e)&&j.add(e);let M=Array.from(new Set([...ce,...le,...ue,...j])).map(e=>typeof e==`string`?e.trim():``).filter(Boolean).toSorted((e,t)=>e.localeCompare(t)),be=c(),P=h(process.env)||o.env?.shellEnv?.enabled===!0,F=M.map(e=>On({provider:e,cfg:o,store:k,modelsPath:se})).filter(e=>e.profiles.count>0||!!e.env||!!e.modelsJson),Ce=new Map(F.map(e=>[e.provider,e])),I=Array.from(fe).filter(e=>!Ce.has(e)).toSorted((e,t)=>e.localeCompare(t)),we=n.probeProfile?(Array.isArray(n.probeProfile)?n.probeProfile:[n.probeProfile]).flatMap(e=>String(e??``).split(`,`)).map(e=>e.trim()).filter(Boolean):[],Ee=n.probeTimeout?Number(n.probeTimeout):8e3;if(!Number.isFinite(Ee)||Ee<=0)throw Error(`--probe-timeout must be a positive number (ms).`);let De=n.probeConcurrency?Number(n.probeConcurrency):2;if(!Number.isFinite(De)||De<=0)throw Error(`--probe-concurrency must be > 0.`);let L=n.probeMaxTokens?Number(n.probeMaxTokens):8;if(!Number.isFinite(L)||L<=0)throw Error(`--probe-max-tokens must be > 0.`);let Oe=ae({cfg:o,defaultProvider:O}),ke=[g||_,...S,C,...T,...D].filter(Boolean).map(e=>A({raw:String(e??``),defaultProvider:O,aliasIndex:Oe})?.ref).filter(e=>!!e).map(e=>`${e.provider}/${e.model}`),R;n.probe&&(R=await je({label:`Probing auth profiles…`,total:1},async e=>await Bn({cfg:o,providers:M,modelCandidates:ke,options:{provider:n.probeProvider,profileIds:we,timeoutMs:Ee,concurrency:De,maxTokens:L},onProgress:e})));let z=F.filter(e=>e.profiles.oauth>0||e.profiles.token>0||e.env?.value===`OAuth (env)`).map(e=>{let t=e.profiles.oauth+e.profiles.token+(e.env?.value===`OAuth (env)`?1:0);return`${e.provider} (${t})`}),B=de({store:k,cfg:o,warnAfterMs:he,providers:M}),V=B.profiles.filter(e=>e.type===`oauth`||e.type===`token`),Ae=(()=>{let e=Date.now(),t=[];for(let n of Object.keys(k.usageStats??{})){let r=re(k,n);if(!r||e>=r)continue;let i=k.usageStats?.[n],a=typeof i?.disabledUntil==`number`&&e<i.disabledUntil?`disabled`:`cooldown`;t.push({profileId:n,provider:k.profiles[n]?.provider,kind:a,reason:i?.disabledReason,until:r,remainingMs:r-e})}return t.toSorted((e,t)=>e.remainingMs-t.remainingMs)})(),H=(()=>{let e=V.some(e=>[`expired`,`missing`].includes(e.status))||I.length>0,t=V.some(e=>e.status===`expiring`);return e?1:t?2:0})();if(n.json){r.log(JSON.stringify({configPath:a,...s?{agentId:s}:{},agentDir:l,defaultModel:b,resolvedDefault:_,fallbacks:S,imageModel:C||null,imageFallbacks:T,...s?{modelConfig:{defaultSource:u?`agent`:`defaults`,fallbacksSource:f===void 0?`defaults`:`agent`}}:{},aliases:E,allowed:D,auth:{storePath:oe(l),shellEnvFallback:{enabled:P,appliedKeys:be},providersWithOAuth:z,missingProvidersInUse:I,providers:F,unusableProfiles:Ae,oauth:{warnAfterMs:B.warnAfterMs,profiles:B.profiles,providers:B.providers},probes:R}},null,2)),n.check&&r.exit(H);return}if(n.plain){r.log(_),n.check&&r.exit(H);return}let U=xn(n),W=n=>t(U,e.accent,n.padEnd(14)),G=(e,t)=>W(t?`${e} (${t})`:e),Me=g&&g!==_?`${_} (from ${g})`:_;r.log(`${W(`Config`)}${t(U,e.muted,`:`)} ${t(U,e.info,i(a))}`),r.log(`${W(`Agent dir`)}${t(U,e.muted,`:`)} ${t(U,e.info,i(l))}`),r.log(`${G(`Default`,s?u?`agent`:`defaults`:void 0)}${t(U,e.muted,`:`)} ${t(U,e.success,Me)}`),r.log(`${G(`Fallbacks (${S.length||0})`,s?f===void 0?`defaults`:`agent`:void 0)}${t(U,e.muted,`:`)} ${t(U,S.length?e.warn:e.muted,S.length?S.join(`, `):`-`)}`),r.log(`${G(`Image model`,s?`defaults`:void 0)}${t(U,e.muted,`:`)} ${t(U,C?e.accentBright:e.muted,C||`-`)}`),r.log(`${G(`Image fallbacks (${T.length||0})`,s?`defaults`:void 0)}${t(U,e.muted,`:`)} ${t(U,T.length?e.accentBright:e.muted,T.length?T.join(`, `):`-`)}`),r.log(`${W(`Aliases (${Object.keys(E).length||0})`)}${t(U,e.muted,`:`)} ${t(U,Object.keys(E).length?e.accent:e.muted,Object.keys(E).length?Object.entries(E).map(([t,n])=>U?`${e.accentDim(t)} ${e.muted(`->`)} ${e.info(n)}`:`${t} -> ${n}`).join(`, `):`-`)}`),r.log(`${W(`Configured models (${D.length||0})`)}${t(U,e.muted,`:`)} ${t(U,D.length?e.info:e.muted,D.length?D.join(`, `):`all`)}`),r.log(``),r.log(t(U,e.heading,`Auth overview`)),r.log(`${W(`Auth store`)}${t(U,e.muted,`:`)} ${t(U,e.info,i(oe(l)))}`),r.log(`${W(`Shell env`)}${t(U,e.muted,`:`)} ${t(U,P?e.success:e.muted,P?`on`:`off`)}${be.length?t(U,e.muted,` (applied: ${be.join(`, `)})`):``}`),r.log(`${W(`Providers w/ OAuth/tokens (${z.length||0})`)}${t(U,e.muted,`:`)} ${t(U,z.length?e.info:e.muted,z.length?z.join(`, `):`-`)}`);let Fe=n=>t(U,e.warn,n),K=(n,r)=>`${Fe(n)}=${t(U,e.info,r)}`,q=()=>t(U,e.muted,` | `);for(let n of F){let i=q(),a=[];a.push(K(`effective`,`${t(U,e.accentBright,n.effective.kind)}:${t(U,e.muted,n.effective.detail)}`)),n.profiles.count>0&&(a.push(K(`profiles`,`${n.profiles.count} (oauth=${n.profiles.oauth}, token=${n.profiles.token}, api_key=${n.profiles.apiKey})`)),n.profiles.labels.length>0&&a.push(t(U,e.info,n.profiles.labels.join(`, `)))),n.env&&a.push(K(`env`,`${n.env.value}${i}${K(`source`,n.env.source)}`)),n.modelsJson&&a.push(K(`models.json`,`${n.modelsJson.value}${i}${K(`source`,n.modelsJson.source)}`)),r.log(`- ${e.heading(n.provider)} ${a.join(i)}`)}if(I.length>0){r.log(``),r.log(t(U,e.heading,`Missing auth`));for(let t of I){let n=t===`anthropic`?`Run \`claude setup-token\`, then \`${Te(`openclaw models auth setup-token`)}\` or \`${Te(`openclaw configure`)}\`.`:`Run \`${Te(`openclaw configure`)}\` or set an API key env var.`;r.log(`- ${e.heading(t)} ${n}`)}}if(r.log(``),r.log(t(U,e.heading,`OAuth/token status`)),V.length===0)r.log(t(U,e.muted,`- none`));else{let n=new Map,i=Array.from(new Set(V.map(e=>me(e.provider)).filter(e=>!!e)));if(i.length>0)try{let e=await pe({providers:i,agentDir:l,timeoutMs:3500});for(let t of e.providers){let e=ge(t,{now:Date.now(),maxWindows:2,includeResets:!0});e&&n.set(t.provider,e)}}catch{}let a=n=>n===`ok`?t(U,e.success,`ok`):n===`static`?t(U,e.muted,`static`):n===`expiring`?t(U,e.warn,`expiring`):n===`missing`?t(U,e.warn,`unknown`):t(U,e.error,`expired`),o=new Map;for(let e of V){let t=o.get(e.provider);t?t.push(e):o.set(e.provider,[e])}for(let[i,s]of o){let o=me(i),c=o?n.get(o):void 0,l=c?t(U,e.muted,` usage: ${c}`):``;r.log(`- ${t(U,e.heading,i)}${l}`);for(let n of s){let i=n.label||n.profileId,o=t(U,e.accent,i),s=a(n.status),c=n.status===`static`?``:n.expiresAt?` expires in ${_e(n.remainingMs)}`:` expires unknown`;r.log(` - ${o} ${s}${c}`)}}}if(R)if(r.log(``),r.log(t(U,e.heading,`Auth probes`)),R.results.length===0)r.log(t(U,e.muted,`- none`));else{let n=Pe(),i=Hn(R.results),a=t=>t===`ok`?e.success:t===`rate_limit`||t===`timeout`||t===`billing`?e.warn:t===`auth`||t===`format`?e.error:e.muted,o=i.map(n=>{let r=t(U,a(n.status),n.status),i=Vn(n.latencyMs),o=n.model??`${n.provider}/-`,s=n.mode?` ${t(U,e.muted,`(${n.mode})`)}`:``,c=`${t(U,e.accent,n.label)}${s}`,l=n.error?.trim(),u=l?`\n${t(U,e.muted,`↳ ${l}`)}`:``,d=`${r}${t(U,e.muted,` · ${i}`)}${u}`;return{Model:t(U,e.heading,o),Profile:c,Status:d}});r.log(Ne({width:n,columns:[{key:`Model`,header:`Model`,minWidth:18},{key:`Profile`,header:`Profile`,minWidth:24},{key:`Status`,header:`Status`,minWidth:12}],rows:o}).trimEnd()),r.log(t(U,e.muted,Un(R)))}n.check&&r.exit(H)}const Gn={name:`ping`,description:`Return OK.`,parameters:ft.Object({})};function Kn(e){return typeof e!=`number`||!Number.isFinite(e)||e<=0?null:e>0xe8d4a51000?Math.round(e):Math.round(e*1e3)}function qn(e){return e&&e.toLowerCase().split(/[^a-z]+/).filter(Boolean).includes(`image`)?[`text`,`image`]:[`text`]}function Q(e){if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=Number(t);return Number.isFinite(n)?n:null}function Jn(e){if(!e||typeof e!=`object`)return null;let t=e,n=Q(t.prompt),r=Q(t.completion),i=Q(t.request)??0,a=Q(t.image)??0,o=Q(t.web_search)??0,s=Q(t.internal_reasoning)??0;return n===null||r===null?null:{prompt:n,completion:r,request:i,image:a,webSearch:o,internalReasoning:s}}function Yn(e){return e.id.endsWith(`:free`)?!0:e.pricing?e.pricing.prompt===0&&e.pricing.completion===0:!1}async function Xn(e,t){let n=new AbortController,r=setTimeout(n.abort.bind(n),e);try{return await t(n.signal)}finally{clearTimeout(r)}}async function Zn(e){let t=await e(`https://openrouter.ai/api/v1/models`,{headers:{Accept:`application/json`}});if(!t.ok)throw Error(`OpenRouter /models failed: HTTP ${t.status}`);let n=await t.json();return(Array.isArray(n.data)?n.data:[]).map(e=>{if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id.trim():``;if(!n)return null;let r=typeof t.name==`string`&&t.name.trim()?t.name.trim():n,i=typeof t.context_length==`number`&&Number.isFinite(t.context_length)?t.context_length:null,a=typeof t.max_completion_tokens==`number`&&Number.isFinite(t.max_completion_tokens)?t.max_completion_tokens:typeof t.max_output_tokens==`number`&&Number.isFinite(t.max_output_tokens)?t.max_output_tokens:null,o=Array.isArray(t.supported_parameters)?t.supported_parameters.filter(e=>typeof e==`string`).map(e=>e.trim()).filter(Boolean):[];return{id:n,name:r,contextLength:i,maxCompletionTokens:a,supportedParameters:o,supportedParametersCount:o.length,supportsToolsMeta:o.includes(`tools`),modality:typeof t.modality==`string`&&t.modality.trim()?t.modality.trim():null,inferredParamB:Fe(`${n} ${r}`),createdAtMs:Kn(t.created_at),pricing:Jn(t.pricing)}}).filter(e=>!!e)}async function Qn(e,t,n){let r={messages:[{role:`user`,content:`Call the ping tool with {} and nothing else.`,timestamp:Date.now()}],tools:[Gn]},i=Date.now();try{return(await Xn(n,n=>lt(e,r,{apiKey:t,maxTokens:256,temperature:0,toolChoice:`required`,signal:n}))).content.some(e=>e.type===`toolCall`)?{ok:!0,latencyMs:Date.now()-i}:{ok:!1,latencyMs:Date.now()-i,error:`No tool call returned`}}catch(e){return{ok:!1,latencyMs:Date.now()-i,error:e instanceof Error?e.message:String(e)}}}async function $n(e,t,n){let r={messages:[{role:`user`,content:[{type:`text`,text:`Reply with OK.`},{type:`image`,data:`iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+X3mIAAAAASUVORK5CYII=`,mimeType:`image/png`}],timestamp:Date.now()}]},i=Date.now();try{return await Xn(n,n=>lt(e,r,{apiKey:t,maxTokens:16,temperature:0,signal:n})),{ok:!0,latencyMs:Date.now()-i}}catch(e){return{ok:!1,latencyMs:Date.now()-i,error:e instanceof Error?e.message:String(e)}}}function er(e){return e.input?.includes(`image`)?e:{...e,input:Array.from(new Set([...e.input??[],`image`]))}}function tr(e){let{entry:t,isFree:n}=e;return{id:t.id,name:t.name,provider:`openrouter`,modelRef:`openrouter/${t.id}`,contextLength:t.contextLength,maxCompletionTokens:t.maxCompletionTokens,supportedParametersCount:t.supportedParametersCount,supportsToolsMeta:t.supportsToolsMeta,modality:t.modality,inferredParamB:t.inferredParamB,createdAtMs:t.createdAtMs,pricing:t.pricing,isFree:n,tool:e.tool,image:e.image}}async function nr(e,t,n,r){let i=Math.max(1,Math.floor(t)),a=Array.from({length:e.length},()=>void 0),o=0,s=0,c=async()=>{for(;;){let t=o;if(o+=1,t>=e.length)return;a[t]=await n(e[t],t),s+=1,r?.onProgress?.(s,e.length)}};return e.length===0?(r?.onProgress?.(0,0),a):(await Promise.all(Array.from({length:Math.min(i,e.length)},()=>c())),a)}async function rr(e={}){let t=e.fetchImpl??fetch,n=e.probe??!0,r=e.apiKey?.trim()||ut(`openrouter`)||``;if(n&&!r)throw Error(`Missing OpenRouter API key. Set OPENROUTER_API_KEY to run models scan.`);let i=Math.max(1,Math.floor(e.timeoutMs??12e3)),a=Math.max(1,Math.floor(e.concurrency??3)),o=Math.max(0,Math.floor(e.minParamB??0)),s=Math.max(0,Math.floor(e.maxAgeDays??0)),c=e.providerFilter?.trim().toLowerCase()??``,l=await Zn(t),u=Date.now(),d=l.filter(e=>!(!Yn(e)||c&&(e.id.split(`/`)[0]?.toLowerCase()??``)!==c||o>0&&(e.inferredParamB??0)<o||s>0&&e.createdAtMs&&(u-e.createdAtMs)/(1440*60*1e3)>s)),f=dt(`openrouter`,`openrouter/auto`);return e.onProgress?.({phase:`probe`,completed:0,total:d.length}),nr(d,a,async e=>{let t=Yn(e);if(!n)return tr({entry:e,isFree:t,tool:{ok:!1,latencyMs:null,skipped:!0},image:{ok:!1,latencyMs:null,skipped:!0}});let a={...f,id:e.id,name:e.name||e.id,contextWindow:e.contextLength??f.contextWindow,maxTokens:e.maxCompletionTokens??f.maxTokens,input:qn(e.modality),reasoning:f.reasoning};return tr({entry:e,isFree:t,tool:await Qn(a,r,i),image:a.input?.includes(`image`)?await $n(er(a),r,i):{ok:!1,latencyMs:null,skipped:!0}})},{onProgress:(t,n)=>e.onProgress?.({phase:`probe`,completed:t,total:n})})}const ir=e=>gt({...e,message:V(e.message),options:e.options.map(e=>e.hint===void 0?e:{...e,hint:H(e.hint)})});function ar(e,t){if(ht(e))throw pt(Ae(`Model scan cancelled.`)??`Model scan cancelled.`),t.exit(0),Error(`unreachable`);return e}function or(e){return e.slice().toSorted((e,t)=>{let n=e.image.ok?1:0,r=t.image.ok?1:0;if(n!==r)return r-n;let i=e.tool.latencyMs??1/0,a=t.tool.latencyMs??1/0;return i===a?cr(e,t):i-a})}function sr(e){return e.slice().toSorted((e,t)=>{let n=e.image.latencyMs??1/0,r=t.image.latencyMs??1/0;return n===r?cr(e,t):n-r})}function cr(e,t){let n=e.contextLength??0,r=t.contextLength??0;if(n!==r)return r-n;let i=e.inferredParamB??0,a=t.inferredParamB??0;return i===a?e.modelRef.localeCompare(t.modelRef):a-i}function lr(e){return[e.tool.ok?`tool ${q(e.tool.latencyMs)}`:`tool fail`,e.image.skipped?`img skip`:e.image.ok?`img ${q(e.image.latencyMs)}`:`img fail`,e.contextLength?`ctx ${He(e.contextLength)}`:`ctx ?`,e.inferredParamB?`${e.inferredParamB}b`:null].filter(Boolean).join(` | `)}function ur(e,t){let n=e.filter(e=>e.tool.ok),r=e.filter(e=>e.image.ok),i=e.filter(e=>e.tool.ok&&e.image.ok),a=r.filter(e=>!e.tool.ok);t.log(`Scan results: tested ${e.length}, tool ok ${n.length}, image ok ${r.length}, tool+image ok ${i.length}, image only ${a.length}`)}function dr(e,t){let n=[Z(`Model`,42),Z(`Tool`,10),Z(`Image`,10),Z(`Ctx`,8),Z(`Params`,8),`Notes`].join(` `);t.log(n);for(let n of e){let e=Z(Cn(n.modelRef,42),42),r=Z(n.tool.ok?q(n.tool.latencyMs):`fail`,10),i=Z(n.image.ok?q(n.image.latencyMs):n.image.skipped?`skip`:`fail`,10),a=Z(He(n.contextLength),8),o=Z(n.inferredParamB?`${n.inferredParamB}b`:`-`,8),s=n.modality?`modality:${n.modality}`:``;t.log([e,r,i,a,o,s].join(` `))}}async function fr(e,t){let n=e.minParams?Number(e.minParams):void 0;if(n!==void 0&&(!Number.isFinite(n)||n<0))throw Error(`--min-params must be >= 0`);let r=e.maxAgeDays?Number(e.maxAgeDays):void 0;if(r!==void 0&&(!Number.isFinite(r)||r<0))throw Error(`--max-age-days must be >= 0`);let i=e.maxCandidates?Number(e.maxCandidates):6;if(!Number.isFinite(i)||i<=0)throw Error(`--max-candidates must be > 0`);let o=e.timeout?Number(e.timeout):void 0;if(o!==void 0&&(!Number.isFinite(o)||o<=0))throw Error(`--timeout must be > 0`);let s=e.concurrency?Number(e.concurrency):void 0;if(s!==void 0&&(!Number.isFinite(s)||s<=0))throw Error(`--concurrency must be > 0`);let c=await X({commandName:`models scan`,runtime:t}),l=e.probe??!0,u;if(l)try{u=(await a({provider:`openrouter`,cfg:c})).apiKey}catch{u=void 0}let d=await je({label:`Scanning OpenRouter models...`,indeterminate:!1,enabled:e.json!==!0},async t=>await rr({apiKey:u??void 0,minParamB:n,maxAgeDays:r,providerFilter:e.provider,timeoutMs:o,concurrency:s,probe:l,onProgress:({phase:e,completed:n,total:r})=>{e===`probe`&&t({completed:n,total:r,label:`${l?`Probing models`:`Scanning models`} (${n}/${r})`})}}));if(!l){e.json?t.log(JSON.stringify(d,null,2)):(t.log(`Found ${d.length} OpenRouter free models (metadata only; pass --probe to test tools/images).`),dr(or(d),t));return}let f=d.filter(e=>e.tool.ok);if(f.length===0)throw Error(`No tool-capable OpenRouter free models found.`);let p=or(d),m=or(f),h=sr(d.filter(e=>e.image.ok)),g=m.filter(e=>e.image.ok),_=(g.length>0?g:m).slice(0,Math.floor(i)).map(e=>e.modelRef),v=h.slice(0,Math.floor(i)).map(e=>e.modelRef);e.json||(ur(d,t),dr(p,t));let y=e.input===!1,b=process.stdin.isTTY&&!e.yes&&!y&&!e.json,x=_,S=v;if(b)x=ar(await ir({message:`Select fallback models (ordered)`,options:m.map(e=>({value:e.modelRef,label:e.modelRef,hint:lr(e)})),initialValues:_}),t),h.length>0&&(S=ar(await ir({message:`Select image fallback models (ordered)`,options:h.map(e=>({value:e.modelRef,label:e.modelRef,hint:lr(e)})),initialValues:v}),t));else if(!process.stdin.isTTY&&!e.yes&&!y&&!e.json)throw Error(`Non-interactive scan: pass --yes to apply defaults.`);if(x.length===0)throw Error(`No models selected for fallbacks.`);if(e.setImage&&S.length===0)throw Error(`No image-capable models selected for image model.`);if(await J(t=>{let n={...t.agents?.defaults?.models};for(let e of x)n[e]||(n[e]={});for(let e of S)n[e]||(n[e]={});let r=M(t.agents?.defaults?.imageModel),i=S.length>0?{...r?.primary?{primary:r.primary}:void 0,fallbacks:S,...e.setImage?{primary:S[0]}:{}}:t.agents?.defaults?.imageModel,a=M(t.agents?.defaults?.model),o={...t.agents?.defaults,model:{...a?.primary?{primary:a.primary}:void 0,fallbacks:x,...e.setDefault?{primary:x[0]}:{}},...i?{imageModel:i}:{},models:n};return{...t,agents:{...t.agents,defaults:o}}}),e.json){t.log(JSON.stringify({selected:x,selectedImages:S,setDefault:!!e.setDefault,setImage:!!e.setImage,results:d,warnings:[]},null,2));return}Y(t),t.log(`Fallbacks: ${x.join(`, `)}`),S.length>0&&t.log(`Image fallbacks: ${S.join(`, `)}`),e.setDefault&&t.log(`Default model: ${x[0]}`),e.setImage&&S.length>0&&t.log(`Image model: ${S[0]}`)}async function pr(e,t){let n=await J(t=>We({cfg:t,modelRaw:e,field:`model`}));Y(t),t.log(`Default model: ${ve(n.agents?.defaults?.model)??e}`)}async function mr(e,t){let n=await J(t=>We({cfg:t,modelRaw:e,field:`imageModel`}));Y(t),t.log(`Image model: ${ve(n.agents?.defaults?.imageModel)??e}`)}function $(e){return W(r,e)}function hr(t){let n=t.command(`models`).description(`Model discovery, scanning, and configuration`).option(`--status-json`,"Output JSON (alias for `models status --json`)",!1).option(`--status-plain`,"Plain output (alias for `models status --plain`)",!1).option(`--agent <id>`,`Agent id to inspect (overrides OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${U(`/cli/models`,`docs.openclaw.ai/cli/models`)}\n`);n.command(`list`).description(`List models (configured by default)`).option(`--all`,`Show full model catalog`,!1).option(`--local`,`Filter to local models`,!1).option(`--provider <name>`,`Filter by provider`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain line output`,!1).action(async e=>{await $(async()=>{await Tn(e,r)})}),n.command(`status`).description(`Show configured model state`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).option(`--check`,`Exit non-zero if auth is expiring/expired (1=expired/missing, 2=expiring)`,!1).option(`--probe`,`Probe configured provider auth (live)`,!1).option(`--probe-provider <name>`,`Only probe a single provider`).option(`--probe-profile <id>`,`Only probe specific auth profile ids (repeat or comma-separated)`,(e,t)=>{let n=Array.isArray(t)?t:t?[t]:[];return n.push(e),n}).option(`--probe-timeout <ms>`,`Per-probe timeout in ms`).option(`--probe-concurrency <n>`,`Concurrent probes`).option(`--probe-max-tokens <n>`,`Probe max tokens (best-effort)`).option(`--agent <id>`,`Agent id to inspect (overrides OPENCLAW_AGENT_DIR/PI_CODING_AGENT_DIR)`).action(async(e,t)=>{let n=G(t,`agent`)??e.agent;await $(async()=>{await Wn({json:!!e.json,plain:!!e.plain,check:!!e.check,probe:!!e.probe,probeProvider:e.probeProvider,probeProfile:e.probeProfile,probeTimeout:e.probeTimeout,probeConcurrency:e.probeConcurrency,probeMaxTokens:e.probeMaxTokens,agent:n},r)})}),n.command(`set`).description(`Set the default model`).argument(`<model>`,`Model id or alias`).action(async e=>{await $(async()=>{await pr(e,r)})}),n.command(`set-image`).description(`Set the image model`).argument(`<model>`,`Model id or alias`).action(async e=>{await $(async()=>{await mr(e,r)})});let i=n.command(`aliases`).description(`Manage model aliases`);i.command(`list`).description(`List model aliases`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).action(async e=>{await $(async()=>{await xt(e,r)})}),i.command(`add`).description(`Add or update a model alias`).argument(`<alias>`,`Alias name`).argument(`<model>`,`Model id or alias`).action(async(e,t)=>{await $(async()=>{await St(e,t,r)})}),i.command(`remove`).description(`Remove a model alias`).argument(`<alias>`,`Alias name`).action(async e=>{await $(async()=>{await Ct(e,r)})});let a=n.command(`fallbacks`).description(`Manage model fallback list`);a.command(`list`).description(`List fallback models`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).action(async e=>{await $(async()=>{await Yt(e,r)})}),a.command(`add`).description(`Add a fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await $(async()=>{await Xt(e,r)})}),a.command(`remove`).description(`Remove a fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await $(async()=>{await Zt(e,r)})}),a.command(`clear`).description(`Clear all fallback models`).action(async()=>{await $(async()=>{await Qt(r)})});let o=n.command(`image-fallbacks`).description(`Manage image model fallback list`);o.command(`list`).description(`List image fallback models`).option(`--json`,`Output JSON`,!1).option(`--plain`,`Plain output`,!1).action(async e=>{await $(async()=>{await $t(e,r)})}),o.command(`add`).description(`Add an image fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await $(async()=>{await en(e,r)})}),o.command(`remove`).description(`Remove an image fallback model`).argument(`<model>`,`Model id or alias`).action(async e=>{await $(async()=>{await tn(e,r)})}),o.command(`clear`).description(`Clear all image fallback models`).action(async()=>{await $(async()=>{await nn(r)})}),n.command(`scan`).description(`Scan OpenRouter free models for tools + images`).option(`--min-params <b>`,`Minimum parameter size (billions)`).option(`--max-age-days <days>`,`Skip models older than N days`).option(`--provider <name>`,`Filter by provider prefix`).option(`--max-candidates <n>`,`Max fallback candidates`,`6`).option(`--timeout <ms>`,`Per-probe timeout in ms`).option(`--concurrency <n>`,`Probe concurrency`).option(`--no-probe`,`Skip live probes; list free candidates only`).option(`--yes`,`Accept defaults without prompting`,!1).option(`--no-input`,`Disable prompts (use defaults)`).option(`--set-default`,`Set agents.defaults.model to the first selection`,!1).option(`--set-image`,`Set agents.defaults.imageModel to the first image selection`,!1).option(`--json`,`Output JSON`,!1).action(async e=>{await $(async()=>{await fr(e,r)})}),n.action(async e=>{await $(async()=>{await Wn({json:!!e?.statusJson,plain:!!e?.statusPlain,agent:e?.agent},r)})});let s=n.command(`auth`).description(`Manage model auth profiles`);s.option(`--agent <id>`,`Agent id for auth order get/set/clear`),s.action(()=>{s.help()}),s.command(`add`).description(`Interactive auth helper (setup-token or paste token)`).action(async()=>{await $(async()=>{await Mt({},r)})}),s.command(`login`).description(`Run a provider plugin auth flow (OAuth/API key)`).option(`--provider <id>`,`Provider id registered by a plugin`).option(`--method <id>`,`Provider auth method id`).option(`--set-default`,`Apply the provider's default model recommendation`,!1).action(async e=>{await $(async()=>{await It({provider:e.provider,method:e.method,setDefault:!!e.setDefault},r)})}),s.command(`setup-token`).description(`Run a provider CLI to create/sync a token (TTY required)`).option(`--provider <name>`,`Provider id (default: anthropic)`).option(`--yes`,`Skip confirmation`,!1).action(async e=>{await $(async()=>{await At({provider:e.provider,yes:!!e.yes},r)})}),s.command(`paste-token`).description(`Paste a token into auth-profiles.json and update config`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--profile-id <id>`,`Auth profile id (default: <provider>:manual)`).option(`--expires-in <duration>`,`Optional expiry duration (e.g. 365d, 12h). Stored as absolute expiresAt.`).action(async e=>{await $(async()=>{await jt({provider:e.provider,profileId:e.profileId,expiresIn:e.expiresIn},r)})}),s.command(`login-github-copilot`).description(`Login to GitHub Copilot via GitHub device flow (TTY required)`).option(`--profile-id <id>`,`Auth profile id (default: github-copilot:github)`).option(`--yes`,`Overwrite existing profile without prompting`,!1).action(async e=>{await $(async()=>{await $e({profileId:e.profileId,yes:!!e.yes},r)})});let c=s.command(`order`).description(`Manage per-agent auth profile order overrides`);c.command(`get`).description(`Show per-agent auth order override (from auth-profiles.json)`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).option(`--json`,`Output JSON`,!1).action(async(e,t)=>{let n=G(t,`agent`)??e.agent;await $(async()=>{await Bt({provider:e.provider,agent:n,json:!!e.json},r)})}),c.command(`set`).description(`Set per-agent auth order override (locks rotation to this list)`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).argument(`<profileIds...>`,`Auth profile ids (e.g. anthropic:default)`).action(async(e,t,n)=>{let i=G(n,`agent`)??t.agent;await $(async()=>{await Ht({provider:t.provider,agent:i,order:e},r)})}),c.command(`clear`).description(`Clear per-agent auth order override (fall back to config/round-robin)`).requiredOption(`--provider <name>`,`Provider id (e.g. anthropic)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).action(async(e,t)=>{let n=G(t,`agent`)??e.agent;await $(async()=>{await Vt({provider:e.provider,agent:n},r)})})}export{hr as registerModelsCli};
3
+ //# sourceMappingURL=models-cli-bGr8jwAb.js.map
@@ -1 +1,2 @@
1
1
  import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{d as t}from"./utils-UGOV_184.js";import{Ks as n,Ol as r,T as i,Ys as a,gt as o,nu as s,qs as c,w as l}from"./model-selection-BlC_rXAN.js";import u from"node:path";import d from"node:fs/promises";function f(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function p(e){return e.explicitPresent&&f(e.explicitValue)?e.explicitValue:f(e.implicitValue)?e.implicitValue:f(e.explicitValue)?e.explicitValue:void 0}function m(e){if(!e||typeof e!=`object`)return``;let t=e.id;return typeof t==`string`?t.trim():``}function h(e,t){let n=Array.isArray(e.models)?e.models:[],r=Array.isArray(t.models)?t.models:[];if(n.length===0)return{...e,...t};let i=new Map(n.map(e=>[m(e),e]).filter(([e])=>!!e)),a=new Set,o=r.map(e=>{let t=m(e);if(!t)return e;a.add(t);let n=i.get(t);if(!n)return e;let r=p({explicitPresent:`contextWindow`in e,explicitValue:e.contextWindow,implicitValue:n.contextWindow}),o=p({explicitPresent:`maxTokens`in e,explicitValue:e.maxTokens,implicitValue:n.maxTokens});return{...e,input:n.input,reasoning:`reasoning`in e?e.reasoning:n.reasoning,...r===void 0?{}:{contextWindow:r},...o===void 0?{}:{maxTokens:o}}});for(let e of n){let t=m(e);!t||a.has(t)||(a.add(t),o.push(e))}return{...e,...t,models:o}}function g(e){let t=e.implicit?{...e.implicit}:{};for(let[n,r]of Object.entries(e.explicit??{})){let e=n.trim();if(!e)continue;let i=t[e];t[e]=i?h(i,r):r}return t}function _(e){if(typeof e?.api==`string`)return e.api.trim()||void 0}function v(e){if(!Array.isArray(e?.models))return;let t=e.models.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e.api;return typeof t==`string`&&t.trim()?[t.trim()]:[]}).toSorted();return t.length>0?JSON.stringify(t):void 0}function y(e){return _(e)??v(e)}function b(e){let{providerKey:t,existing:n,nextEntry:r,secretRefManagedProviders:i}=e,a=typeof r.apiKey==`string`?r.apiKey:``;return a&&o(a)?!1:!i.has(t)&&typeof n.apiKey==`string`&&n.apiKey.length>0&&!o(n.apiKey,{includeEnvVarName:!1})}function x(e){let{providerKey:t,existing:n,nextEntry:r,explicitBaseUrlProviders:i}=e;if(i.has(t)||typeof n.baseUrl!=`string`||n.baseUrl.length===0)return!1;let a=y(n),o=y(r);return!a||!o||a===o}function S(e){let{nextProviders:t,existingProviders:n,secretRefManagedProviders:r,explicitBaseUrlProviders:i}=e,a={};for(let[e,t]of Object.entries(n))a[e]=t;for(let[e,o]of Object.entries(t)){let t=n[e];if(!t){a[e]=o;continue}let s={};b({providerKey:e,existing:t,nextEntry:o,secretRefManagedProviders:r})&&(s.apiKey=t.apiKey),x({providerKey:e,existing:t,nextEntry:o,explicitBaseUrlProviders:i})&&(s.baseUrl=t.baseUrl),a[e]={...o,...s}}return a}async function C(e){let{cfg:t,agentDir:n,env:r}=e,a=t.models?.providers??{};return g({implicit:await i({agentDir:n,config:t,env:r,explicitProviders:a}),explicit:a})}function w(e){return new Set(Object.entries(e?.providers??{}).map(([e,t])=>[e.trim(),t]).filter(([e,t])=>!!e&&typeof t?.baseUrl==`string`&&t.baseUrl.trim()).map(([e])=>e))}async function T(e){if(e.mode!==`merge`)return e.providers;let n=e.existingParsed;if(!t(n)||!t(n.providers))return e.providers;let r=n.providers;return S({nextProviders:e.providers,existingProviders:r,secretRefManagedProviders:e.secretRefManagedProviders,explicitBaseUrlProviders:e.explicitBaseUrlProviders})}async function E(e){let{cfg:t,agentDir:n,env:r}=e,i=await C({cfg:t,agentDir:n,env:r});if(Object.keys(i).length===0)return{action:`skip`};let a=t.models?.mode??`merge`,o=new Set,s=l({providers:i,agentDir:n,env:r,secretDefaults:t.secrets?.defaults,secretRefManagedProviders:o})??i,c=await T({mode:a,existingParsed:e.existingParsed,providers:s,secretRefManagedProviders:o,explicitBaseUrlProviders:w(t.models)}),u=`${JSON.stringify({providers:c},null,2)}\n`;return e.existingRaw===u?{action:`noop`}:{action:`write`,contents:u}}var D=e({ensureOpenClawModelsJson:()=>P});const O=new Map;async function k(e){try{let t=await d.readFile(e,`utf8`);return{raw:t,parsed:JSON.parse(t)}}catch{return{raw:``,parsed:null}}}async function A(e){await d.chmod(e,384).catch(()=>{})}async function j(e,t){let n=`${e}.${process.pid}.${Date.now()}.tmp`;await d.writeFile(n,t,{mode:384}),await d.rename(n,e)}function M(e){let t=n();return e?t?a(e):e:t??c()}async function N(e,t){let n=O.get(e)??Promise.resolve(),r=()=>{},i=new Promise(e=>{r=e}),a=n.then(()=>i);O.set(e,a);try{return await n,await t()}finally{r(),O.get(e)===a&&O.delete(e)}}async function P(e,t){let n=M(e),i=t?.trim()?t.trim():s(),a=u.join(i,`models.json`);return await N(a,async()=>{let e=r(n),t=await k(a),o=await E({cfg:n,agentDir:i,env:e,existingRaw:t.raw,existingParsed:t.parsed});return o.action===`skip`?{agentDir:i,wrote:!1}:o.action===`noop`?(await A(a),{agentDir:i,wrote:!1}):(await d.mkdir(i,{recursive:!0,mode:448}),await j(a,o.contents),await A(a),{agentDir:i,wrote:!0})})}export{D as n,P as t};
2
+ //# sourceMappingURL=models-config-CdMhNxKV.js.map
@@ -1 +1,2 @@
1
1
  import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{Ao as t,Mc as n,No as r,al as i,eu as a,il as o,jo as s,uc as c}from"./auth-profiles-T8DuH3ax.js";import{u as l}from"./utils-CGdo13HV.js";import u from"node:path";import d from"node:fs/promises";function f(e){return typeof e==`number`&&Number.isFinite(e)&&e>0}function p(e){return e.explicitPresent&&f(e.explicitValue)?e.explicitValue:f(e.implicitValue)?e.implicitValue:f(e.explicitValue)?e.explicitValue:void 0}function m(e){if(!e||typeof e!=`object`)return``;let t=e.id;return typeof t==`string`?t.trim():``}function h(e,t){let n=Array.isArray(e.models)?e.models:[],r=Array.isArray(t.models)?t.models:[];if(n.length===0)return{...e,...t};let i=new Map(n.map(e=>[m(e),e]).filter(([e])=>!!e)),a=new Set,o=r.map(e=>{let t=m(e);if(!t)return e;a.add(t);let n=i.get(t);if(!n)return e;let r=p({explicitPresent:`contextWindow`in e,explicitValue:e.contextWindow,implicitValue:n.contextWindow}),o=p({explicitPresent:`maxTokens`in e,explicitValue:e.maxTokens,implicitValue:n.maxTokens});return{...e,input:n.input,reasoning:`reasoning`in e?e.reasoning:n.reasoning,...r===void 0?{}:{contextWindow:r},...o===void 0?{}:{maxTokens:o}}});for(let e of n){let t=m(e);!t||a.has(t)||(a.add(t),o.push(e))}return{...e,...t,models:o}}function g(e){let t=e.implicit?{...e.implicit}:{};for(let[n,r]of Object.entries(e.explicit??{})){let e=n.trim();if(!e)continue;let i=t[e];t[e]=i?h(i,r):r}return t}function _(e){if(typeof e?.api==`string`)return e.api.trim()||void 0}function v(e){if(!Array.isArray(e?.models))return;let t=e.models.flatMap(e=>{if(!e||typeof e!=`object`)return[];let t=e.api;return typeof t==`string`&&t.trim()?[t.trim()]:[]}).toSorted();return t.length>0?JSON.stringify(t):void 0}function y(e){return _(e)??v(e)}function b(e){let{providerKey:t,existing:n,nextEntry:r,secretRefManagedProviders:i}=e,o=typeof r.apiKey==`string`?r.apiKey:``;return o&&a(o)?!1:!i.has(t)&&typeof n.apiKey==`string`&&n.apiKey.length>0&&!a(n.apiKey,{includeEnvVarName:!1})}function x(e){let{providerKey:t,existing:n,nextEntry:r,explicitBaseUrlProviders:i}=e;if(i.has(t)||typeof n.baseUrl!=`string`||n.baseUrl.length===0)return!1;let a=y(n),o=y(r);return!a||!o||a===o}function S(e){let{nextProviders:t,existingProviders:n,secretRefManagedProviders:r,explicitBaseUrlProviders:i}=e,a={};for(let[e,t]of Object.entries(n))a[e]=t;for(let[e,o]of Object.entries(t)){let t=n[e];if(!t){a[e]=o;continue}let s={};b({providerKey:e,existing:t,nextEntry:o,secretRefManagedProviders:r})&&(s.apiKey=t.apiKey),x({providerKey:e,existing:t,nextEntry:o,explicitBaseUrlProviders:i})&&(s.baseUrl=t.baseUrl),a[e]={...o,...s}}return a}async function C(e){let{cfg:t,agentDir:n,env:r}=e,a=t.models?.providers??{};return g({implicit:await i({agentDir:n,config:t,env:r,explicitProviders:a}),explicit:a})}function w(e){return new Set(Object.entries(e?.providers??{}).map(([e,t])=>[e.trim(),t]).filter(([e,t])=>!!e&&typeof t?.baseUrl==`string`&&t.baseUrl.trim()).map(([e])=>e))}async function T(e){if(e.mode!==`merge`)return e.providers;let t=e.existingParsed;if(!l(t)||!l(t.providers))return e.providers;let n=t.providers;return S({nextProviders:e.providers,existingProviders:n,secretRefManagedProviders:e.secretRefManagedProviders,explicitBaseUrlProviders:e.explicitBaseUrlProviders})}async function E(e){let{cfg:t,agentDir:n,env:r}=e,i=await C({cfg:t,agentDir:n,env:r});if(Object.keys(i).length===0)return{action:`skip`};let a=t.models?.mode??`merge`,s=new Set,c=o({providers:i,agentDir:n,env:r,secretDefaults:t.secrets?.defaults,secretRefManagedProviders:s})??i,l=await T({mode:a,existingParsed:e.existingParsed,providers:c,secretRefManagedProviders:s,explicitBaseUrlProviders:w(t.models)}),u=`${JSON.stringify({providers:l},null,2)}\n`;return e.existingRaw===u?{action:`noop`}:{action:`write`,contents:u}}var D=e({ensureOpenClawModelsJson:()=>P});const O=new Map;async function k(e){try{let t=await d.readFile(e,`utf8`);return{raw:t,parsed:JSON.parse(t)}}catch{return{raw:``,parsed:null}}}async function A(e){await d.chmod(e,384).catch(()=>{})}async function j(e,t){let n=`${e}.${process.pid}.${Date.now()}.tmp`;await d.writeFile(n,t,{mode:384}),await d.rename(n,e)}function M(e){let n=t();return e?n?r(e):e:n??s()}async function N(e,t){let n=O.get(e)??Promise.resolve(),r=()=>{},i=new Promise(e=>{r=e}),a=n.then(()=>i);O.set(e,a);try{return await n,await t()}finally{r(),O.get(e)===a&&O.delete(e)}}async function P(e,t){let r=M(e),i=t?.trim()?t.trim():n(),a=u.join(i,`models.json`);return await N(a,async()=>{let e=c(r),t=await k(a),n=await E({cfg:r,agentDir:i,env:e,existingRaw:t.raw,existingParsed:t.parsed});return n.action===`skip`?{agentDir:i,wrote:!1}:n.action===`noop`?(await A(a),{agentDir:i,wrote:!1}):(await d.mkdir(i,{recursive:!0,mode:448}),await j(a,n.contents),await A(a),{agentDir:i,wrote:!0})})}export{D as n,P as t};
2
+ //# sourceMappingURL=models-config-_htt7eY5.js.map
@@ -1 +1,2 @@
1
1
  function e(e){return(typeof e==`string`?e:typeof e==`number`?String(e):``).trim().replace(/^(telegram|tg):/i,``).trim()}function t(e){return/^-?\d+$/.test(e)}function n(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^<@!?/,``).replace(/>$/,``);if(/^\d+$/.test(n))return!1;for(let e of[`discord:`,`user:`,`pk:`])if(t.startsWith(e))return t.slice(e.length).trim().length===0;return!0}function r(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.match(/^<@([A-Z0-9]+)>$/i);if(n&&/^[A-Z0-9]{8,}$/i.test(n[1]??``))return!1;let r=t.replace(/^(slack|user):/i,``).trim();return!(/^[UWBCGDT][A-Z0-9]{2,}$/.test(r)||/^[A-Z0-9]{8,}$/i.test(r))}function i(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^(googlechat|google-chat|gchat):/i,``).trim();return n?n.replace(/^users\//i,``).includes(`@`):!1}function a(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^(msteams|user):/i,``).trim();return/\s/.test(n)||n.includes(`@`)}function o(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^(mattermost|user):/i,``).replace(/^@/,``).trim().toLowerCase();return!/^[a-z0-9]{26}$/.test(n)}function s(e){let t=e.trim().toLowerCase();if(!t||t===`*`)return!1;let n=t.replace(/^irc:/,``).replace(/^user:/,``).trim();return!n.includes(`!`)&&!n.includes(`@`)}export{o as a,e as c,a as i,i as n,r as o,s as r,t as s,n as t};
2
+ //# sourceMappingURL=mutable-allowlist-detectors-C4rNVag8.js.map
@@ -1 +1,2 @@
1
1
  function e(e){return(typeof e==`string`?e:typeof e==`number`?String(e):``).trim().replace(/^(telegram|tg):/i,``).trim()}function t(e){return/^-?\d+$/.test(e)}function n(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^<@!?/,``).replace(/>$/,``);if(/^\d+$/.test(n))return!1;for(let e of[`discord:`,`user:`,`pk:`])if(t.startsWith(e))return t.slice(e.length).trim().length===0;return!0}function r(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.match(/^<@([A-Z0-9]+)>$/i);if(n&&/^[A-Z0-9]{8,}$/i.test(n[1]??``))return!1;let r=t.replace(/^(slack|user):/i,``).trim();return!(/^[UWBCGDT][A-Z0-9]{2,}$/.test(r)||/^[A-Z0-9]{8,}$/i.test(r))}function i(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^(googlechat|google-chat|gchat):/i,``).trim();return n?n.replace(/^users\//i,``).includes(`@`):!1}function a(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^(msteams|user):/i,``).trim();return/\s/.test(n)||n.includes(`@`)}function o(e){let t=e.trim();if(!t||t===`*`)return!1;let n=t.replace(/^(mattermost|user):/i,``).replace(/^@/,``).trim().toLowerCase();return!/^[a-z0-9]{26}$/.test(n)}function s(e){let t=e.trim().toLowerCase();if(!t||t===`*`)return!1;let n=t.replace(/^irc:/,``).replace(/^user:/,``).trim();return!n.includes(`!`)&&!n.includes(`@`)}export{o as a,e as c,a as i,i as n,r as o,s as r,t as s,n as t};
2
+ //# sourceMappingURL=mutable-allowlist-detectors-CL0qe54J.js.map
@@ -1,2 +1,3 @@
1
1
  import{d as e,g as t}from"./paths-B4IRk3wi.js";import{A as n,O as r,p as i}from"./subsystem-C5XF2Fy5.js";import"./utils-UGOV_184.js";import{Gc as a,Mi as o,Ml as s,Qc as c,Si as l,Vc as u,Xc as d,Xi as f,Yi as p,Zc as m,Zi as h,cl as g,il as _,ol as v,pa as y,qs as b,sl as x,ul as S,xi as C}from"./model-selection-BlC_rXAN.js";import{i as ee}from"./agent-scope-DXZc3eNT.js";import{s as w}from"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as T}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import{S as te,x as ne}from"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import{i as E}from"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import{r as re}from"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import{dn as ie,g as ae}from"./call-CqoMqP5b.js";import{n as oe,t as D}from"./with-timeout-WveKxvFV.js";import{n as se,r as ce,t as le}from"./exec-approvals-allowlist-CE3nYh0K.js";import{r as ue,t as de}from"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import{t as fe}from"./connection-auth-C8iru0UB.js";import{t as pe}from"./links-CySwdMcF.js";import{t as me}from"./help-format-BRbF_INg.js";import{_ as he,c as ge,f as O,h as _e,m as ve,n as ye,o as be,p as xe,r as Se,v as Ce}from"./exec-approvals-BpBNEy6i.js";import{n as we,o as Te,t as Ee}from"./system-run-command-DEWnZE0r.js";import{_ as De,g as Oe,l as ke,v as Ae}from"./arg-split-DE5RqDHq.js";import{t as je}from"./path-env-BPd1Yd-i.js";import"./runtime-guard-DFYBaYZS.js";import"./issue-format-BT7cQEt3.js";import{l as Me,n as Ne,p as Pe,t as Fe}from"./daemon-install-plan.shared-CfA37Ut_.js";import{r as Ie,t as Le}from"./daemon-runtime-DHiDbRuC.js";import"./systemd-D7odsu4K.js";import"./service-BtB9epJk.js";import{a as Re,f as ze,g as Be,h as Ve,i as He,m as k,r as Ue,t as We}from"./lifecycle-core-LM5UUUB1.js";import{c as Ge,l as Ke,u as qe}from"./systemd-hints-C0DKDl35.js";import{t as Je}from"./parse-port-Bv1Y9Wk5.js";import{i as Ye,n as Xe,t as Ze}from"./node-commands-8GBOiktk.js";import{t as A}from"./node-service-BRfrNp8l.js";import j from"node:fs";import M from"node:path";import N from"node:fs/promises";import{spawn as Qe,spawnSync as $e}from"node:child_process";import P from"node:crypto";function et(){return M.join(t(),`node.json`)}function F(e){let t={version:1,nodeId:``,token:e?.token,displayName:e?.displayName,gateway:e?.gateway};return e?.version===1&&typeof e.nodeId==`string`&&(t.nodeId=e.nodeId.trim()),t.nodeId||=P.randomUUID(),t}async function I(){let e=et();try{let t=await N.readFile(e,`utf8`);return F(JSON.parse(t))}catch{return null}}async function tt(e){await o(et(),e,{mode:384})}async function nt(){let e=F(await I());return await tt(e),e}async function rt(e){let{socketPath:t,token:n,request:r}=e;if(!t||!n)return null;let i=e.timeoutMs??2e4,a=JSON.stringify(r),o=P.randomBytes(16).toString(`hex`),s=Date.now(),c=P.createHmac(`sha256`,n).update(`${o}:${s}:${a}`).digest(`hex`);return await Ce({socketPath:t,payload:JSON.stringify({type:`exec`,id:P.randomUUID(),nonce:o,ts:s,hmac:c,requestJson:a}),timeoutMs:i,accept:e=>{let t=e;if(t?.type===`exec-res`)return t.ok===!0&&t.payload?{ok:!0,payload:t.payload}:t.ok===!1&&t.error?{ok:!1,error:t.error}:null}})}const it=10*1024*1024;function at(e){return Array.isArray(e)?e.map(e=>e.trim()).filter(Boolean):[]}function ot(){let e=b().nodeHost?.browserProxy,t=at(e?.allowProfiles);return{enabled:e?.enabled!==!1,allowProfiles:t}}let L=null;async function st(){return L||(L=(async()=>{let e=b();if(!y(e.browser,e).enabled||!await h())throw Error(`browser control disabled`)})(),L)}function R(e){let{allowProfiles:t,profile:n}=e;return t.length?n?t.includes(n.trim()):!1:!0}function ct(e){let t=new Set,n=typeof e==`object`&&e?e:null;if(!n)return[];typeof n.path==`string`&&n.path.trim()&&t.add(n.path.trim()),typeof n.imagePath==`string`&&n.imagePath.trim()&&t.add(n.imagePath.trim());let r=n.download;if(r&&typeof r==`object`){let e=r.path;typeof e==`string`&&e.trim()&&t.add(e.trim())}return[...t]}async function lt(e){let t=await N.stat(e).catch(()=>null);if(!t||!t.isFile())return null;if(t.size>it)throw Error(`browser proxy file exceeds ${Math.round(it/(1024*1024))}MB`);let n=await N.readFile(e),r=await re({buffer:n,filePath:e});return{path:e,base64:n.toString(`base64`),mimeType:r}}function ut(e){if(!e)throw Error(`INVALID_REQUEST: paramsJSON required`);return JSON.parse(e)}function dt(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(1,Math.floor(e)):2e4}function ft(e){return String(e).includes(`browser proxy request timed out`)}function pt(e){return e===`/act`||e===`/navigate`||e===`/pdf`||e===`/screenshot`||e===`/snapshot`}async function mt(e){let t=e.profile?{profile:e.profile}:{};try{let n=await D(n=>e.dispatcher.dispatch({method:`GET`,path:`/`,query:t,signal:n}),750,`browser proxy status`);if(n.status>=400||!n.body||typeof n.body!=`object`)return null;let r=n.body;return{running:r.running,cdpHttp:r.cdpHttp,cdpReady:r.cdpReady,cdpUrl:r.cdpUrl}}catch{return null}}function ht(e){let t=[`browser proxy timed out for ${e.method} ${e.path} after ${e.timeoutMs}ms`,e.wsBacked?`ws-backed browser action`:`browser action`];if(e.profile&&t.push(`profile=${e.profile}`),e.status){let n=[`running=${String(e.status.running)}`,`cdpHttp=${String(e.status.cdpHttp)}`,`cdpReady=${String(e.status.cdpReady)}`];typeof e.status.cdpUrl==`string`&&e.status.cdpUrl.trim()&&n.push(`cdpUrl=${e.status.cdpUrl}`),t.push(`status(${n.join(`, `)})`)}return t.join(`; `)}async function gt(e){let t=ut(e),n=typeof t.path==`string`?t.path.trim():``;if(!n)throw Error(`INVALID_REQUEST: path required`);let r=ot();if(!r.enabled)throw Error(`UNAVAILABLE: node browser proxy disabled`);await st();let i=b(),a=y(i.browser,i),o=typeof t.profile==`string`?t.profile.trim():``,s=r.allowProfiles;if(s.length>0){if(n!==`/profiles`){if(!R({allowProfiles:s,profile:o||a.defaultProfile}))throw Error(`INVALID_REQUEST: browser profile not allowed`)}else if(o&&!R({allowProfiles:s,profile:o}))throw Error(`INVALID_REQUEST: browser profile not allowed`)}let c=typeof t.method==`string`?t.method.toUpperCase():`GET`,l=n.startsWith(`/`)?n:`/${n}`,u=t.body,d=dt(t.timeoutMs),m={};o&&(m.profile=o);let h=t.query??{};for(let[e,t]of Object.entries(h))t!=null&&(m[e]=typeof t==`string`?t:String(t));let g=p(f()),_;try{_=await D(e=>g.dispatch({method:c===`DELETE`?`DELETE`:c===`POST`?`POST`:`GET`,path:l,query:m,body:u,signal:e}),d,`browser proxy request`)}catch(e){if(!ft(e))throw e;let t=o||a.defaultProfile,n=await mt({dispatcher:g,profile:l===`/profiles`?void 0:t});throw Error(ht({method:c,path:l,profile:l===`/profiles`?void 0:t||void 0,timeoutMs:d,wsBacked:pt(l),status:n}),{cause:e})}if(_.status>=400){let e=_.body&&typeof _.body==`object`&&`error`in _.body?String(_.body.error):`HTTP ${_.status}`;throw Error(e)}let v=_.body;if(s.length>0&&l===`/profiles`){let e=typeof v==`object`&&v?v:{};e.profiles=(Array.isArray(e.profiles)?e.profiles:[]).filter(e=>{if(!e||typeof e!=`object`)return!1;let t=e.name;return typeof t==`string`&&s.includes(t)})}let x,S=ct(v);if(S.length>0){let e=await Promise.all(S.map(async e=>{try{let t=await lt(e);if(!t)throw Error(`file not found`);return t}catch(t){throw Error(`browser proxy file read failed for ${e}: ${String(t)}`,{cause:t})}}));e.length>0&&(x=e)}let C=x?{result:v,files:x}:{result:v};return JSON.stringify(C)}function _t(e){return e===`allow-once`||e===`allow-always`?e:null}function vt(e){return e?.windowsShellWrapperBlocked?`SYSTEM_RUN_DENIED: allowlist miss (Windows shell wrappers like cmd.exe /c require approval; approve once/always or run with --ask on-miss|always)`:e?.shellWrapperBlocked?`SYSTEM_RUN_DENIED: allowlist miss (shell wrappers like sh/bash/zsh -c require approval; approve once/always or run with --ask on-miss|always)`:`SYSTEM_RUN_DENIED: allowlist miss`}function yt(e){let t=e.security===`allowlist`&&e.shellWrapperInvocation,n=t&&e.isWindows&&e.cmdInvocation,r=t?!1:e.analysisOk,i=t?!1:e.allowlistSatisfied,a=e.approvalDecision!==null||e.approved===!0;if(e.security===`deny`)return{allowed:!1,eventReason:`security=deny`,errorMessage:`SYSTEM_RUN_DISABLED: security=deny`,analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:!1,approvalDecision:e.approvalDecision,approvedByAsk:a};let o=ve({ask:e.ask,security:e.security,analysisOk:r,allowlistSatisfied:i});return o&&!a?{allowed:!1,eventReason:`approval-required`,errorMessage:`SYSTEM_RUN_DENIED: approval required`,analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:o,approvalDecision:e.approvalDecision,approvedByAsk:a}:e.security===`allowlist`&&(!r||!i)&&!a?{allowed:!1,eventReason:`allowlist-miss`,errorMessage:vt({shellWrapperBlocked:t,windowsShellWrapperBlocked:n}),analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:o,approvalDecision:e.approvalDecision,approvedByAsk:a}:{allowed:!0,analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:o,approvalDecision:e.approvalDecision,approvedByAsk:a}}function bt(e){if(e.shellCommand){let t=se({command:e.shellCommand,allowlist:e.approvals.allowlist,safeBins:e.safeBins,safeBinProfiles:e.safeBinProfiles,cwd:e.cwd,env:e.env,trustedSafeBinDirs:e.trustedSafeBinDirs,skillBins:e.skillBins,autoAllowSkills:e.autoAllowSkills,platform:process.platform});return{analysisOk:t.analysisOk,allowlistMatches:t.allowlistMatches,allowlistSatisfied:e.security===`allowlist`&&t.analysisOk?t.allowlistSatisfied:!1,segments:t.segments}}let t=u({argv:e.argv,cwd:e.cwd,env:e.env}),n=le({analysis:t,allowlist:e.approvals.allowlist,safeBins:e.safeBins,safeBinProfiles:e.safeBinProfiles,cwd:e.cwd,trustedSafeBinDirs:e.trustedSafeBinDirs,skillBins:e.skillBins,autoAllowSkills:e.autoAllowSkills});return{analysisOk:t.ok,allowlistMatches:n.allowlistMatches,allowlistSatisfied:e.security===`allowlist`&&t.ok?n.allowlistSatisfied:!1,segments:t.segments}}function xt(e){if(e.security!==`allowlist`||e.policy.approvedByAsk||e.shellCommand||!e.policy.analysisOk||!e.policy.allowlistSatisfied||e.segments.length!==1)return;let t=a(e.segments[0]);return t&&t.length>0?t:null}function St(e){let t=e.plannedAllowlistArgv??e.argv;return e.security===`allowlist`&&e.isWindows&&!e.policy.approvedByAsk&&e.shellCommand&&e.policy.analysisOk&&e.policy.allowlistSatisfied&&e.segments.length===1&&e.segments[0]?.argv.length>0&&(t=e.segments[0].argv),t}function Ct(e){if(!e.truncated)return;let t=`... (truncated)`;e.stderr.trim().length>0?e.stderr=`${e.stderr}\n${t}`:e.stdout=`${e.stdout}\n${t}`}const wt=[/^(?:node|nodejs)$/,/^perl$/,/^php$/,/^python(?:\d+(?:\.\d+)*)?$/,/^ruby$/],Tt=new Set([`esno`,`jiti`,`ts-node`,`ts-node-esm`,`tsx`,`vite-node`]),Et=new Set([`add`,`audit`,`completions`,`create`,`exec`,`help`,`init`,`install`,`link`,`outdated`,`patch`,`pm`,`publish`,`remove`,`repl`,`run`,`test`,`unlink`,`update`,`upgrade`,`x`]),z=new Set(`--backend.--bunfig.--conditions.--config.--console-depth.--cwd.--define.--elide-lines.--env-file.--extension-order.--filter.--hot.--inspect.--inspect-brk.--inspect-wait.--install.--jsx-factory.--jsx-fragment.--jsx-import-source.--loader.--origin.--port.--preload.--smol.--tsconfig-override.-c.-e.-p.-r`.split(`.`)),Dt=new Set([`--cached-only`,`--cert`,`--config`,`--env-file`,`--ext`,`--harmony-import-attributes`,`--import-map`,`--inspect`,`--inspect-brk`,`--inspect-wait`,`--location`,`--log-level`,`--lock`,`--node-modules-dir`,`--no-check`,`--preload`,`--reload`,`--seed`,`--strace-ops`,`--unstable-bare-node-builtins`,`--v8-flags`,`--watch`,`--watch-exclude`,`-L`]);function B(e){return typeof e==`string`&&e.trim()||null}function Ot(e){let t=M.resolve(e),n=[],r=t;for(;;){n.unshift(r);let e=M.dirname(r);if(e===r)return n;r=e}}function kt(e){try{return j.accessSync(e,j.constants.W_OK),!0}catch{return!1}}function At(e){for(let t of Ot(e))try{if(!j.lstatSync(t).isSymbolicLink())continue;if(kt(M.dirname(t)))return!0}catch{return!0}return!1}function jt(e){return e.shellCommand===null?(e.wrapperChain?.length??0)===0:!1}function V(e){return P.createHash(`sha256`).update(j.readFileSync(e)).digest(`hex`)}function Mt(e){return e.startsWith(`.`)||e.startsWith(`/`)||e.startsWith(`\\`)||e.includes(`/`)||e.includes(`\\`)||M.extname(e).length>0}function H(e,t){if(!e)return!1;try{return j.statSync(M.resolve(t??process.cwd(),e)).isFile()}catch{return!1}}function U(e){let t=e,n=0;for(;;){let e=v(t);if(e.kind===`unwrapped`){n+=t.length-e.argv.length,t=e.argv;continue}let r=x(t);if(r.kind===`unwrapped`){n+=t.length-r.argv.length,t=r.argv;continue}return{argv:t,baseIndex:n}}}function Nt(e){if(S(e,g,{allowCombinedC:!0}).valueTokenIndex!==null)return null;let t=!1;for(let n=1;n<e.length;n+=1){let r=e[n]?.trim()??``;if(r){if(r===`-`)return null;if(!t&&r===`--`){t=!0;continue}if(!t&&r===`-s`)return null;if(!(!t&&r.startsWith(`-`)))return n}}return null}function W(e){let t=!1;for(let n=e.startIndex;n<e.argv.length;n+=1){let r=e.argv[n]?.trim()??``;if(r){if(t)return H(r,e.cwd)?n:null;if(r===`--`){t=!0;continue}if(r===`-`)return null;if(r.startsWith(`-`)){!r.includes(`=`)&&e.optionsWithValue?.has(r)&&(n+=1);continue}return H(r,e.cwd)?n:null}}return null}function Pt(e){let t=!1;for(let n=e.startIndex;n<e.argv.length;n+=1){let r=e.argv[n]?.trim()??``;if(r){if(t)return n;if(r===`--`){t=!0;continue}if(r===`-`)return null;if(r.startsWith(`-`)){!r.includes(`=`)&&e.optionsWithValue?.has(r)&&(n+=1);continue}return n}}return null}function Ft(e){let t=!1,n=[];for(let r=e.startIndex;r<e.argv.length;r+=1){let i=e.argv[r]?.trim()??``;if(i){if(t){H(i,e.cwd)&&n.push(r);continue}if(i===`--`){t=!0;continue}if(i===`-`)return[];i.startsWith(`-`)||H(i,e.cwd)&&n.push(r)}}return n}function It(e){let t=Ft({argv:e.argv,startIndex:1,cwd:e.cwd});return t.length===1?t[0]:null}function Lt(e){let t=Pt({argv:e.argv,startIndex:1,optionsWithValue:z});if(t===null)return null;let n=e.argv[t]?.trim()??``;return n===`run`?W({argv:e.argv,startIndex:t+1,cwd:e.cwd,optionsWithValue:z}):Et.has(n)||!Mt(n)?null:t}function Rt(e){return(e.argv[1]?.trim()??``)===`run`?W({argv:e.argv,startIndex:2,cwd:e.cwd,optionsWithValue:Dt}):null}function G(e){return Tt.has(e)||de(e)}function zt(e,t){let n=U(e),r=_(n.argv[0]??``);if(!r)return null;if(c.has(r)){let e=Nt(n.argv);return e===null?null:n.baseIndex+e}if(wt.some(e=>e.test(r))){let e=n.argv[1]?.trim()??``;if(e&&e!==`-`&&!e.startsWith(`-`))return n.baseIndex+1}if(r===`bun`){let e=Lt({argv:n.argv,cwd:t});if(e!==null)return n.baseIndex+e}if(r===`deno`){let e=Rt({argv:n.argv,cwd:t});if(e!==null)return n.baseIndex+e}if(!G(r))return null;let i=It({argv:n.argv,cwd:t});return i===null?null:n.baseIndex+i}function Bt(e){if(e.shellCommand!==null)return!1;let t=_(U(e.argv).argv[0]??``);return!t||c.has(t)?!1:G(t)}function K(e){let t=zt(e.argv,e.cwd);if(t===null)return Bt({argv:e.argv,shellCommand:e.shellCommand})?{ok:!1,message:`SYSTEM_RUN_DENIED: approval cannot safely bind this interpreter/runtime command`}:{ok:!0,snapshot:null};let n=e.argv[t]?.trim();if(!n)return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires a stable script operand`};let r=M.resolve(e.cwd??process.cwd(),n),i,a;try{i=j.realpathSync(r),a=j.statSync(i)}catch{return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires an existing script operand`}}return a.isFile()?{ok:!0,snapshot:{argvIndex:t,path:i,sha256:V(i)}}:{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires a file script operand`}}function Vt(e){let t=M.resolve(e),n,r,i,a;try{n=j.lstatSync(t),r=j.statSync(t),i=j.realpathSync(t),a=j.statSync(i)}catch{return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires an existing canonical cwd`}}return r.isDirectory()?At(t)?{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires canonical cwd (no symlink path components)`}:n.isSymbolicLink()?{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires canonical cwd (no symlink cwd)`}:!w(r,n)||!w(r,a)||!w(n,a)?{ok:!1,message:`SYSTEM_RUN_DENIED: approval cwd identity mismatch`}:{ok:!0,snapshot:{cwd:i,stat:r}}:{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires cwd to be a directory`}}function Ht(e){let t=Vt(e.snapshot.cwd);return t.ok?w(e.snapshot.stat,t.snapshot.stat):!1}function Ut(e){let t=e.argv[e.snapshot.argvIndex]?.trim();if(!t)return!1;let n=M.resolve(e.cwd??process.cwd(),t),r;try{r=j.realpathSync(n)}catch{return!1}if(r!==e.snapshot.path)return!1;try{return V(r)===e.snapshot.sha256}catch{return!1}}function Wt(e){if(!e.approvedByAsk)return{ok:!0,argv:e.argv,argvChanged:!1,cwd:e.cwd,approvedCwdSnapshot:void 0};let t=e.cwd,n;if(t){let e=Vt(t);if(!e.ok)return e;t=e.snapshot.cwd,n=e.snapshot}if(e.argv.length===0)return{ok:!0,argv:e.argv,argvChanged:!1,cwd:t,approvedCwdSnapshot:n};let r=d(e.argv,t);if(!jt({shellCommand:e.shellCommand,wrapperChain:r?.wrapperChain}))return{ok:!0,argv:e.argv,argvChanged:!1,cwd:t,approvedCwdSnapshot:n};let i=r?.resolvedRealPath??r?.resolvedPath;if(!i)return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires a stable executable path`};if(i===e.argv[0])return{ok:!0,argv:e.argv,argvChanged:!1,cwd:t,approvedCwdSnapshot:n};let a=[...e.argv];return a[0]=i,{ok:!0,argv:a,argvChanged:!0,cwd:t,approvedCwdSnapshot:n}}function Gt(e){let t=we({command:e.command,rawCommand:e.rawCommand});if(!t.ok)return{ok:!1,message:t.message};if(t.argv.length===0)return{ok:!1,message:`command required`};let n=Wt({approvedByAsk:!0,argv:t.argv,shellCommand:t.shellPayload,cwd:B(e.cwd)??void 0});if(!n.ok)return{ok:!1,message:n.message};let r=Ee(n.argv),i=t.previewText?.trim()&&t.previewText.trim()!==r?t.previewText.trim():null,a=K({argv:n.argv,cwd:n.cwd,shellCommand:t.shellPayload});return a.ok?{ok:!0,plan:{argv:n.argv,cwd:n.cwd??null,commandText:r,commandPreview:i,agentId:B(e.agentId),sessionKey:B(e.sessionKey),mutableFileOperand:a.snapshot??void 0}}:{ok:!1,message:a.message}}const Kt=new Set,qt=`SYSTEM_RUN_DENIED: approval cwd changed before execution`;function Jt(e){Kt.has(e)||(Kt.add(e),E(e))}function Yt(e){switch(e){case`security=deny`:case`approval-required`:case`allowlist-miss`:case`execution-plan-miss`:case`companion-unavailable`:case`permission:screenRecording`:return e;default:return`approval-required`}}async function q(e,t,n){await e.sendNodeEvent(e.client,`exec.denied`,e.buildExecEventPayload({sessionKey:t.sessionKey,runId:t.runId,host:`node`,command:t.commandText,reason:n.reason,suppressNotifyOnExit:t.suppressNotifyOnExit})),await e.sendInvokeResult({ok:!1,error:{code:`UNAVAILABLE`,message:n.message}})}async function Xt(e){let t=we({command:e.params.command,rawCommand:e.params.rawCommand});if(!t.ok)return await e.sendInvokeResult({ok:!1,error:{code:`INVALID_REQUEST`,message:t.message}}),null;if(t.argv.length===0)return await e.sendInvokeResult({ok:!1,error:{code:`INVALID_REQUEST`,message:`command required`}}),null;let n=t.shellPayload,r=t.commandText,i=e.params.systemRunPlan===void 0?null:Te(e.params.systemRunPlan);if(e.params.systemRunPlan!==void 0&&!i)return await e.sendInvokeResult({ok:!1,error:{code:`INVALID_REQUEST`,message:`systemRunPlan invalid`}}),null;let a=e.params.agentId?.trim()||void 0,o=e.params.sessionKey?.trim()||`node`,s=e.params.runId?.trim()||P.randomUUID(),c=e.params.suppressNotifyOnExit===!0,l=te({overrides:e.params.env??void 0,shellWrapper:n!==null});return{argv:t.argv,shellPayload:n,commandText:r,commandPreview:t.previewText,approvalPlan:i,agentId:a,sessionKey:o,runId:s,execution:{sessionKey:o,runId:s,commandText:r,suppressNotifyOnExit:c},approvalDecision:_t(e.params.approvalDecision),envOverrides:l,env:e.sanitizeEnv(l),cwd:e.params.cwd?.trim()||void 0,timeoutMs:e.params.timeoutMs??void 0,needsScreenRecording:e.params.needsScreenRecording===!0,approved:e.params.approved===!0,suppressNotifyOnExit:c}}async function Zt(e,t){let n=b(),r=t.agentId?ee(n,t.agentId)?.tools?.exec:void 0,i=e.resolveExecSecurity(r?.security??n.tools?.exec?.security),a=e.resolveExecAsk(r?.ask??n.tools?.exec?.ask),o=_e(t.agentId,{security:i,ask:a}),s=o.agent.security,c=o.agent.ask,l=o.agent.autoAllowSkills,{safeBins:u,safeBinProfiles:d,trustedSafeBinDirs:f}=ue({global:n.tools?.exec,local:r,onWarning:Jt}),p=l?await e.skillBins.current():[],{analysisOk:m,allowlistMatches:h,allowlistSatisfied:g,segments:_}=bt({shellCommand:t.shellPayload,argv:t.argv,approvals:o,security:s,safeBins:u,safeBinProfiles:d,trustedSafeBinDirs:f,cwd:t.cwd,env:t.env,skillBins:p,autoAllowSkills:l}),v=process.platform===`win32`,y=t.shellPayload?e.isCmdExeInvocation(_[0]?.argv??[]):e.isCmdExeInvocation(t.argv),x=yt({security:s,ask:c,analysisOk:m,allowlistSatisfied:g,approvalDecision:t.approvalDecision,approved:t.approved,isWindows:v,cmdInvocation:y,shellWrapperInvocation:t.shellPayload!==null});if(m=x.analysisOk,g=x.allowlistSatisfied,!x.allowed)return await q(e,t.execution,{reason:x.eventReason,message:x.errorMessage}),null;if(s===`allowlist`&&t.shellPayload&&!x.approvedByAsk)return await q(e,t.execution,{reason:`approval-required`,message:`SYSTEM_RUN_DENIED: approval required`}),null;let S=Wt({approvedByAsk:x.approvedByAsk,argv:t.argv,shellCommand:t.shellPayload,cwd:t.cwd});if(!S.ok)return await q(e,t.execution,{reason:`approval-required`,message:S.message}),null;let C=x.approvedByAsk?S.approvedCwdSnapshot:void 0;if(x.approvedByAsk&&S.cwd&&!C)return await q(e,t.execution,{reason:`approval-required`,message:qt}),null;let w=xt({security:s,shellCommand:t.shellPayload,policy:x,segments:_});return w===null?(await q(e,t.execution,{reason:`execution-plan-miss`,message:`SYSTEM_RUN_DENIED: execution plan mismatch`}),null):{...t,argv:S.argv,cwd:S.cwd,approvals:o,security:s,policy:x,allowlistMatches:h,analysisOk:m,allowlistSatisfied:g,segments:_,plannedAllowlistArgv:w??void 0,isWindows:v,approvedCwdSnapshot:C}}async function Qt(e,t){if(t.approvedCwdSnapshot&&!Ht({snapshot:t.approvedCwdSnapshot})){E(`security: system.run approval cwd drift blocked (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:qt});return}let n=t.approvalPlan?K({argv:t.argv,cwd:t.cwd,shellCommand:t.shellPayload}):null;if(n&&!n.ok){E(`security: system.run approval script binding blocked (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:n.message});return}if(n?.snapshot&&!t.approvalPlan?.mutableFileOperand){E(`security: system.run approval script binding missing (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:`SYSTEM_RUN_DENIED: approval missing script operand binding`});return}if(t.approvalPlan?.mutableFileOperand&&!Ut({snapshot:t.approvalPlan.mutableFileOperand,argv:t.argv,cwd:t.cwd})){E(`security: system.run approval script drift blocked (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:`SYSTEM_RUN_DENIED: approval script operand changed before execution`});return}if(e.preferMacAppExecHost){let n={command:t.plannedAllowlistArgv??t.argv,rawCommand:t.commandText||null,cwd:t.cwd??null,env:t.envOverrides??null,timeoutMs:t.timeoutMs??null,needsScreenRecording:t.needsScreenRecording,agentId:t.agentId??null,sessionKey:t.sessionKey??null,approvalDecision:t.approvalDecision},r=await e.runViaMacAppExecHost({approvals:t.approvals,request:n});if(!r){if(e.execHostEnforced||!e.execHostFallbackAllowed){await q(e,t.execution,{reason:`companion-unavailable`,message:`COMPANION_APP_UNAVAILABLE: macOS app exec host unreachable`});return}}else if(r.ok){let n=r.payload;await e.sendExecFinishedEvent({sessionKey:t.sessionKey,runId:t.runId,commandText:t.commandText,result:n,suppressNotifyOnExit:t.suppressNotifyOnExit}),await e.sendInvokeResult({ok:!0,payloadJSON:JSON.stringify(n)});return}else{await q(e,t.execution,{reason:Yt(r.error.reason),message:r.error.message});return}}if(t.policy.approvalDecision===`allow-always`&&t.security===`allowlist`&&t.policy.analysisOk){let e=ce({segments:t.segments,cwd:t.cwd,env:t.env,platform:process.platform});for(let n of e)n&&ye(t.approvals.file,t.agentId,n)}if(t.allowlistMatches.length>0){let e=new Set;for(let n of t.allowlistMatches)!n?.pattern||e.has(n.pattern)||(e.add(n.pattern),xe(t.approvals.file,t.agentId,n,t.commandText,t.segments[0]?.resolution?.resolvedPath))}if(t.needsScreenRecording){await q(e,t.execution,{reason:`permission:screenRecording`,message:`PERMISSION_MISSING: screenRecording`});return}let r=St({plannedAllowlistArgv:t.plannedAllowlistArgv,argv:t.argv,security:t.security,isWindows:t.isWindows,policy:t.policy,shellCommand:t.shellPayload,segments:t.segments}),i=await e.runCommand(r,t.cwd,t.env,t.timeoutMs);Ct(i),await e.sendExecFinishedEvent({sessionKey:t.sessionKey,runId:t.runId,commandText:t.commandText,result:i,suppressNotifyOnExit:t.suppressNotifyOnExit}),await e.sendInvokeResult({ok:!0,payloadJSON:JSON.stringify({exitCode:i.exitCode,timedOut:i.timedOut,success:i.success,stdout:i.stdout,stderr:i.stderr,error:i.error??null})})}async function $t(e){let t=await Xt(e);if(!t)return;let n=await Zt(e,t);n&&await Qt(e,n)}const en=2e5,tn={65001:`utf-8`,54936:`gb18030`,936:`gbk`,950:`big5`,932:`shift_jis`,949:`euc-kr`,1252:`windows-1252`};let J;const nn=process.env.OPENCLAW_NODE_EXEC_HOST?.trim().toLowerCase()===`app`,rn=process.env.OPENCLAW_NODE_EXEC_FALLBACK?.trim().toLowerCase()!==`0`,an=process.platform===`darwin`&&nn;function on(e){return e===`deny`||e===`allowlist`||e===`full`?e:`allowlist`}function sn(e){let t=e[0]?.trim();if(!t)return!1;let n=M.win32.basename(t).toLowerCase();return n===`cmd.exe`||n===`cmd`}function cn(e){return e===`off`||e===`on-miss`||e===`always`?e:`on-miss`}function ln(e){return ne({overrides:e,blockPathOverrides:!0})}function un(e,t){return e.length<=t?{text:e,truncated:!1}:{text:`... (truncated) ${e.slice(e.length-t)}`,truncated:!0}}function dn(e){if(!e)return null;let t=e.match(/\b(\d{3,5})\b/);if(!t?.[1])return null;let n=Number.parseInt(t[1],10);return!Number.isFinite(n)||n<=0?null:n}function fn(){if(process.platform!==`win32`)return null;if(J!==void 0)return J;try{let e=$e(`cmd.exe`,[`/d`,`/s`,`/c`,`chcp`],{windowsHide:!0,encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}),t=dn(`${e.stdout??``}\n${e.stderr??``}`);J=t===null?null:tn[t]??null}catch{J=null}return J}function pn(e){let t=e.buffer.toString(`utf8`);if((e.platform??process.platform)!==`win32`)return t;let n=e.windowsEncoding??fn();if(!n||n.toLowerCase()===`utf-8`)return t;try{return new TextDecoder(n).decode(e.buffer)}catch{return t}}function mn(e){let t=e.socket?.path?.trim();return{...e,socket:t?{path:t}:void 0}}function hn(e,t){if(!t.exists)return;if(!t.hash)throw Error(`INVALID_REQUEST: exec approvals base hash unavailable; reload and retry`);let n=typeof e.baseHash==`string`?e.baseHash.trim():``;if(!n)throw Error(`INVALID_REQUEST: exec approvals base hash required; reload and retry`);if(n!==t.hash)throw Error(`INVALID_REQUEST: exec approvals changed; reload and retry`)}async function gn(e,t,n,r){return await new Promise(i=>{let a=[],o=[],s=0,c=!1,l=!1,u=!1,d=fn(),f=Qe(e[0],e.slice(1),{cwd:t,env:n,stdio:[`ignore`,`pipe`,`pipe`],windowsHide:!0}),p=(e,t)=>{if(s>=en){c=!0;return}let n=en-s,r=e.length>n?e.subarray(0,n):e;s+=r.length,t===`stdout`?a.push(r):o.push(r),e.length>n&&(c=!0)};f.stdout?.on(`data`,e=>p(e,`stdout`)),f.stderr?.on(`data`,e=>p(e,`stderr`));let m;r&&r>0&&(m=setTimeout(()=>{l=!0;try{f.kill(`SIGKILL`)}catch{}},r));let h=(e,t)=>{if(u)return;u=!0,m&&clearTimeout(m);let n=pn({buffer:Buffer.concat(a),windowsEncoding:d}),r=pn({buffer:Buffer.concat(o),windowsEncoding:d});i({exitCode:e,timedOut:l,success:e===0&&!l&&!t,stdout:n,stderr:r,error:t??null,truncated:c})};f.on(`error`,e=>{h(void 0,e.message)}),f.on(`exit`,e=>{h(e===null?void 0:e,null)})})}function _n(e){return(e?.PATH??e?.Path??process.env.PATH??process.env.Path??`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`).split(M.delimiter).filter(Boolean)}function vn(e,t){if(e.includes(`/`)||e.includes(`\\`))return null;let n=process.platform===`win32`?(process.env.PATHEXT??process.env.PathExt??`.EXE;.CMD;.BAT;.COM`).split(`;`).map(e=>e.toLowerCase()):[``];for(let r of _n(t))for(let t of n){let n=M.join(r,e+t);if(j.existsSync(n))return n}return null}async function yn(e,t){let n=e.bins.map(e=>e.trim()).filter(Boolean),r={};for(let e of n){let n=vn(e,t);n&&(r[e]=n)}return{bins:r}}function bn(e){if(!e.output)return e;let t=e.output.trim();if(!t)return e;let{text:n}=un(t,2e4);return{...e,output:n}}async function xn(e){let t=[e.result.stdout,e.result.stderr,e.result.error].filter(Boolean).join(`
2
2
  `);await Dn(e.client,`exec.finished`,bn({sessionKey:e.sessionKey,runId:e.runId,host:`node`,command:e.commandText,exitCode:e.result.exitCode??void 0,timedOut:e.result.timedOut,success:e.result.success,output:t,suppressNotifyOnExit:e.suppressNotifyOnExit}))}async function Sn(e){let{approvals:t,request:n}=e;return await rt({socketPath:t.socketPath,token:t.token,request:n})}async function Y(e,t,n){await $(e,t,{ok:!0,payloadJSON:JSON.stringify(n)})}async function Cn(e,t,n){await $(e,t,{ok:!0,payloadJSON:n})}async function X(e,t,n,r){await $(e,t,{ok:!1,error:{code:n,message:r}})}async function Z(e,t,n){await X(e,t,`INVALID_REQUEST`,String(n))}async function wn(e,t,n){let r=String(e.command??``);if(r===`system.execApprovals.get`){try{Se();let n=O();await Y(t,e,{path:n.path,exists:n.exists,hash:n.hash,file:mn(n.file)})}catch(n){let r=String(n);await X(t,e,r.toLowerCase().includes(`timed out`)?`TIMEOUT`:`INVALID_REQUEST`,r)}return}if(r===`system.execApprovals.set`){try{let n=Q(e.paramsJSON);if(!n.file||typeof n.file!=`object`)throw Error(`INVALID_REQUEST: exec approvals file required`);Se();let r=O();hn(n,r),he(be({normalized:ge(n.file),current:r.file}));let i=O();await Y(t,e,{path:i.path,exists:i.exists,hash:i.hash,file:mn(i.file)})}catch(n){await Z(t,e,n)}return}if(r===`system.which`){try{let n=Q(e.paramsJSON);if(!Array.isArray(n.bins))throw Error(`INVALID_REQUEST: bins required`);await Y(t,e,await yn(n,ln(void 0)))}catch(n){await Z(t,e,n)}return}if(r===`browser.proxy`){try{await Cn(t,e,await gt(e.paramsJSON))}catch(n){await Z(t,e,n)}return}if(r===`system.run.prepare`){try{let n=Gt(Q(e.paramsJSON));if(!n.ok){await X(t,e,`INVALID_REQUEST`,n.message);return}await Y(t,e,{plan:n.plan})}catch(n){await Z(t,e,n)}return}if(r!==`system.run`){await X(t,e,`UNAVAILABLE`,`command not supported`);return}let i;try{i=Q(e.paramsJSON)}catch(n){await Z(t,e,n);return}if(!Array.isArray(i.command)||i.command.length===0){await X(t,e,`INVALID_REQUEST`,`command required`);return}await $t({client:t,params:i,skillBins:n,execHostEnforced:nn,execHostFallbackAllowed:rn,resolveExecSecurity:on,resolveExecAsk:cn,isCmdExeInvocation:sn,sanitizeEnv:ln,runCommand:gn,runViaMacAppExecHost:Sn,sendNodeEvent:Dn,buildExecEventPayload:bn,sendInvokeResult:async n=>{await $(t,e,n)},sendExecFinishedEvent:async({sessionKey:e,runId:n,commandText:r,result:i})=>{await xn({client:t,sessionKey:e,runId:n,commandText:r,result:i})},preferMacAppExecHost:an})}function Q(e){if(!e)throw Error(`INVALID_REQUEST: paramsJSON required`);return JSON.parse(e)}function Tn(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id.trim():``,r=typeof t.nodeId==`string`?t.nodeId.trim():``,i=typeof t.command==`string`?t.command.trim():``;return!n||!r||!i?null:{id:n,nodeId:r,command:i,paramsJSON:typeof t.paramsJSON==`string`?t.paramsJSON:t.params===void 0?null:JSON.stringify(t.params),timeoutMs:typeof t.timeoutMs==`number`?t.timeoutMs:null,idempotencyKey:typeof t.idempotencyKey==`string`?t.idempotencyKey:null}}async function $(e,t,n){try{await e.request(`node.invoke.result`,En(t,n))}catch{}}function En(e,t){let n={id:e.id,nodeId:e.nodeId,ok:t.ok};return t.payload!==void 0&&(n.payload=t.payload),typeof t.payloadJSON==`string`&&(n.payloadJSON=t.payloadJSON),t.error&&(n.error=t.error),n}async function Dn(e,t,n){try{await e.request(`node.event`,{event:t,payloadJSON:n?JSON.stringify(n):null})}catch{}}const On=`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`;function kn(e,t){return e.includes(`/`)||e.includes(`\\`)?null:m(e,t)??null}function An(e,t){let n=[],r=new Set;for(let i of e){let e=i.trim();if(!e)continue;let a=kn(e,t);if(!a)continue;let o=`${e}\u0000${a}`;r.has(o)||(r.add(o),n.push({name:e,resolvedPath:a}))}return n.toSorted((e,t)=>e.name.localeCompare(t.name)||e.resolvedPath.localeCompare(t.resolvedPath))}var jn=class{constructor(e,t){this.bins=[],this.lastRefresh=0,this.ttlMs=9e4,this.fetch=e,this.pathEnv=t}async current(e=!1){return(e||Date.now()-this.lastRefresh>this.ttlMs)&&await this.refresh(),this.bins}async refresh(){try{this.bins=An(await this.fetch(),this.pathEnv),this.lastRefresh=Date.now()}catch{this.lastRefresh||(this.bins=[])}}};function Mn(){je({pathEnv:process.env.PATH??``});let e=process.env.PATH??``;return e.trim()?e:(process.env.PATH=On,On)}async function Nn(e){return await fe({config:(e.config.gateway?.mode===`remote`?`remote`:`local`)==`local`?Pn(e.config):e.config,env:e.env,includeLegacyEnv:!1,localTokenPrecedence:`env-first`,localPasswordPrecedence:`env-first`,remoteTokenPrecedence:`env-first`,remotePasswordPrecedence:`env-first`})}function Pn(e){if(!e.gateway?.remote?.token&&!e.gateway?.remote?.password)return e;let t=structuredClone(e);return t.gateway?.remote&&(t.gateway.remote.token=void 0,t.gateway.remote.password=void 0),t}async function Fn(e){let t=await nt(),n=e.nodeId?.trim()||t.nodeId;n!==t.nodeId&&(t.nodeId=n);let r=e.displayName?.trim()||t.displayName||await oe();t.displayName=r;let i={host:e.gatewayHost,port:e.gatewayPort,tls:e.gatewayTls??b().gateway?.tls?.enabled??!1,tlsFingerprint:e.gatewayTlsFingerprint};t.gateway=i,await tt(t);let a=b(),o=y(a.browser,a),c=a.nodeHost?.browserProxy?.enabled!==!1&&o.enabled,{token:u,password:d}=await Nn({config:a,env:process.env}),f=i.host??`127.0.0.1`,p=i.port??18789,m=`${i.tls?`wss`:`ws`}://${f}:${p}`,h=Mn();console.log(`node host PATH: ${h}`);let g=new ae({url:m,token:u||void 0,password:d||void 0,instanceId:n,clientName:l.NODE_HOST,clientDisplayName:r,clientVersion:s,platform:process.platform,mode:C.NODE,role:`node`,scopes:[],caps:[`system`,...c?[`browser`]:[]],commands:[...Ye,...Xe,...c?[Ze]:[]],pathEnv:h,permissions:void 0,deviceIdentity:ie(),tlsFingerprint:i.tlsFingerprint,onEvent:e=>{if(e.event!==`node.invoke.request`)return;let t=Tn(e.payload);t&&wn(t,g,_)},onConnectError:e=>{console.error(`node host gateway connect failed: ${e.message}`)},onClose:(e,t)=>{console.error(`node host gateway closed (${e}): ${t}`)}}),_=new jn(async()=>{let e=await g.request(`skills.bins`,{});return Array.isArray(e?.bins)?e.bins.map(e=>String(e)):[]},h);g.start(),await new Promise(()=>{})}async function In(e){let{devMode:t,nodePath:n}=await Ne({env:e.env,runtime:e.runtime,devMode:e.devMode,nodePath:e.nodePath}),{programArguments:r,workingDirectory:i}=await Pe({host:e.host,port:e.port,tls:e.tls,tlsFingerprint:e.tlsFingerprint,nodeId:e.nodeId,displayName:e.displayName,dev:t,runtime:e.runtime,nodePath:n});await Fe({env:e.env,runtime:e.runtime,programArguments:r,warn:e.warn,title:`Node daemon runtime`});let a=Me({env:e.env});return{programArguments:r,workingDirectory:i,environment:a,description:ke({version:a.OPENCLAW_SERVICE_VERSION})}}const Ln=Le;function Rn(e){return Ie(e)}function zn(){return Ke({installCommand:T(`openclaw node install`),startCommand:T(`openclaw node start`),launchAgentPlistPath:`~/Library/LaunchAgents/${Oe()}.plist`,systemdServiceName:De(),windowsTaskName:Ae()})}function Bn(e=process.env){return Ge({env:e,systemdServiceName:De(),windowsTaskName:Ae()})}function Vn(e,t){let n=e.host?.trim()||t?.gateway?.host||`127.0.0.1`,r=Je(e.port);return e.port!==void 0&&r===null?{host:n,port:null}:{host:n,port:r??t?.gateway?.port??18789}}async function Hn(t){let n=!!t.json,{stdout:r,warnings:a,emit:o,fail:s}=Ve({action:`install`,json:n});if(e(process.env)){s(`Nix mode detected; service install is disabled.`);return}let c=await I(),{host:l,port:u}=Vn(t,c);if(!Number.isFinite(u??NaN)||(u??0)<=0){s(`Invalid port`);return}let d=t.runtime?String(t.runtime):Ln;if(!Rn(d)){s(`Invalid --runtime (use "node" or "bun")`);return}let f=A(),p=!1;try{p=await f.isLoaded({env:process.env})}catch(e){s(`Node service check failed: ${String(e)}`);return}if(p&&!t.force){o({ok:!0,result:`already-installed`,message:`Node service already ${f.loadedText}.`,service:k(f,p),warnings:a.length?a:void 0}),n||(i.log(`Node service already ${f.loadedText}.`),i.log(`Reinstall with: ${T(`openclaw node install --force`)}`));return}let m=t.tlsFingerprint?.trim()||c?.gateway?.tlsFingerprint,h=!!t.tls||!!m||!!c?.gateway?.tls,{programArguments:g,workingDirectory:_,environment:v,description:y}=await In({env:process.env,host:l,port:u??18789,tls:h,tlsFingerprint:m||void 0,nodeId:t.nodeId,displayName:t.displayName,runtime:d,warn:e=>{n?a.push(e):i.log(e)}});await Be({serviceNoun:`Node`,service:f,warnings:a,emit:o,fail:s,install:async()=>{await f.install({env:process.env,stdout:r,programArguments:g,workingDirectory:_,environment:v,description:y})}})}async function Un(e={}){return await He({serviceNoun:`Node`,service:A(),opts:e,stopBeforeUninstall:!1,assertNotLoadedAfterUninstall:!1})}async function Wn(e={}){await We({serviceNoun:`Node`,service:A(),renderStartHints:zn,opts:e})}async function Gn(e={}){return await Ue({serviceNoun:`Node`,service:A(),opts:e})}async function Kn(e={}){let t=!!e.json,n=A(),[a,o,s]=await Promise.all([n.isLoaded({env:process.env}).catch(()=>!1),n.readCommand(process.env).catch(()=>null),n.readRuntime(process.env).catch(e=>({status:`unknown`,detail:String(e)}))]),c={service:{...k(n,a),command:o,runtime:s}};if(t){i.log(JSON.stringify(c,null,2));return}let{rich:l,label:u,accent:d,infoText:f,okText:p,warnText:m,errorText:h}=Re(),g=a?p(n.loadedText):m(n.notLoadedText);i.log(`${u(`Service:`)} ${d(n.label)} (${g})`),o?.programArguments?.length&&i.log(`${u(`Command:`)} ${f(o.programArguments.join(` `))}`),o?.sourcePath&&i.log(`${u(`Service file:`)} ${f(o.sourcePath)}`),o?.workingDirectory&&i.log(`${u(`Working dir:`)} ${f(o.workingDirectory)}`);let _=qe(s);if(_){let e=ze(s?.status);i.log(`${u(`Runtime:`)} ${r(l,e,_)}`)}if(!a){i.log(``);for(let e of zn())i.log(`${m(`Start with:`)} ${f(e)}`);return}let v={...process.env,...o?.environment??void 0},y={...v,OPENCLAW_LOG_PREFIX:v.OPENCLAW_LOG_PREFIX??`node`};if(s?.missingUnit){i.error(h(`Service unit not found.`));for(let e of Bn(y))i.error(h(e));return}if(s?.status===`stopped`){i.error(h(`Service is loaded but not running.`));for(let e of Bn(y))i.error(h(e))}}function qn(e,t){return Je(e)??t}function Jn(e){let t=e.command(`node`).description(`Run and manage the headless node host service`).addHelpText(`after`,()=>`\n${n.heading(`Examples:`)}\n${me([[`openclaw node run --host 127.0.0.1 --port 18789`,`Run the node host in the foreground.`],[`openclaw node status`,`Check node host service status.`],[`openclaw node install`,`Install the node host service.`],[`openclaw node restart`,`Restart the installed node host service.`]])}\n\n${n.muted(`Docs:`)} ${pe(`/cli/node`,`docs.openclaw.ai/cli/node`)}\n`);t.command(`run`).description(`Run the headless node host (foreground)`).option(`--host <host>`,`Gateway host`).option(`--port <port>`,`Gateway port`).option(`--tls`,`Use TLS for the gateway connection`,!1).option(`--tls-fingerprint <sha256>`,`Expected TLS certificate fingerprint (sha256)`).option(`--node-id <id>`,`Override node id (clears pairing token)`).option(`--display-name <name>`,`Override node display name`).action(async e=>{let t=await I();await Fn({gatewayHost:e.host?.trim()||t?.gateway?.host||`127.0.0.1`,gatewayPort:qn(e.port,t?.gateway?.port??18789),gatewayTls:!!e.tls||!!e.tlsFingerprint,gatewayTlsFingerprint:e.tlsFingerprint,nodeId:e.nodeId,displayName:e.displayName})}),t.command(`status`).description(`Show node host status`).option(`--json`,`Output JSON`,!1).action(async e=>{await Kn(e)}),t.command(`install`).description(`Install the node host service (launchd/systemd/schtasks)`).option(`--host <host>`,`Gateway host`).option(`--port <port>`,`Gateway port`).option(`--tls`,`Use TLS for the gateway connection`,!1).option(`--tls-fingerprint <sha256>`,`Expected TLS certificate fingerprint (sha256)`).option(`--node-id <id>`,`Override node id (clears pairing token)`).option(`--display-name <name>`,`Override node display name`).option(`--runtime <runtime>`,`Service runtime (node|bun). Default: node`).option(`--force`,`Reinstall/overwrite if already installed`,!1).option(`--json`,`Output JSON`,!1).action(async e=>{await Hn(e)}),t.command(`uninstall`).description(`Uninstall the node host service (launchd/systemd/schtasks)`).option(`--json`,`Output JSON`,!1).action(async e=>{await Un(e)}),t.command(`stop`).description(`Stop the node host service (launchd/systemd/schtasks)`).option(`--json`,`Output JSON`,!1).action(async e=>{await Gn(e)}),t.command(`restart`).description(`Restart the node host service (launchd/systemd/schtasks)`).option(`--json`,`Output JSON`,!1).action(async e=>{await Wn(e)})}export{Jn as registerNodeCli};
3
+ //# sourceMappingURL=node-cli-5lYbDZ70.js.map
@@ -1,2 +1,3 @@
1
1
  import{A as e,O as t,p as n}from"./subsystem-BLbY429l.js";import{d as r,g as i}from"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Fs as a,Gs as o,Lr as s,Ns as c,Os as l,Ps as u,Qr as d,Rr as f,Us as p,Vs as m,Ws as h,br as g,jo as _,lr as v,qs as y,ur as b,ws as x,zr as S}from"./auth-profiles-T8DuH3ax.js";import{t as C}from"./command-format-CLxIPuLR.js";import{i as ee}from"./agent-scope-DAWJwFfl.js";import"./utils-CGdo13HV.js";import{s as w}from"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import{S as te,x as ne}from"./env-overrides-DHtB4kK3.js";import{t as re}from"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import{i as T}from"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import{r as ie}from"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import{n as ae,t as oe}from"./with-timeout-c1CzdShT.js";import{n as se,r as ce,t as le}from"./exec-approvals-allowlist-D8mN7nxV.js";import{r as ue,t as de}from"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import{dn as fe,g as pe}from"./call-B8Fb4_oh.js";import{_ as me,g as he,l as ge,v as _e}from"./arg-split-BOqSMBuf.js";import{n as E,o as ve,t as ye}from"./system-run-command-BKfMiqQM.js";import{t as be}from"./connection-auth-B_Uk6Vk8.js";import{t as xe}from"./links-CBnmRP9D.js";import{t as Se}from"./help-format-B4aEI7V9.js";import{_ as Ce,c as we,f as D,h as Te,m as Ee,n as De,o as Oe,p as ke,r as Ae,v as je}from"./exec-approvals-BXO9Cezj.js";import{t as Me}from"./path-env-emdAQejM.js";import"./issue-format-C_lNzrKa.js";import{l as Ne,n as Pe,p as Fe,t as Ie}from"./daemon-install-plan.shared-Dx3DBXCG.js";import"./runtime-guard-DX2Ie4ri.js";import{r as Le,t as Re}from"./daemon-runtime-VcpeBRJV.js";import"./systemd-DbevZh65.js";import"./service-DZ9EbS15.js";import{a as ze,f as Be,g as Ve,h as He,i as Ue,m as We,r as Ge,t as Ke}from"./lifecycle-core-D9KNCvxY.js";import{c as qe,l as Je,u as Ye}from"./systemd-hints-lXpMy-kY.js";import{t as Xe}from"./parse-port-JVwkxcZ8.js";import{i as Ze,n as Qe,t as $e}from"./node-commands-DdkziOTx.js";import{t as O}from"./node-service-C0bl7jcZ.js";import{spawn as et,spawnSync as tt}from"node:child_process";import k from"node:path";import A from"node:fs";import j from"node:fs/promises";import M from"node:crypto";function nt(){return k.join(i(),`node.json`)}function N(e){let t={version:1,nodeId:``,token:e?.token,displayName:e?.displayName,gateway:e?.gateway};return e?.version===1&&typeof e.nodeId==`string`&&(t.nodeId=e.nodeId.trim()),t.nodeId||=M.randomUUID(),t}async function P(){let e=nt();try{let t=await j.readFile(e,`utf8`);return N(JSON.parse(t))}catch{return null}}async function rt(e){await g(nt(),e,{mode:384})}async function it(){let e=N(await P());return await rt(e),e}async function at(e){let{socketPath:t,token:n,request:r}=e;if(!t||!n)return null;let i=e.timeoutMs??2e4,a=JSON.stringify(r),o=M.randomBytes(16).toString(`hex`),s=Date.now(),c=M.createHmac(`sha256`,n).update(`${o}:${s}:${a}`).digest(`hex`);return await je({socketPath:t,payload:JSON.stringify({type:`exec`,id:M.randomUUID(),nonce:o,ts:s,hmac:c,requestJson:a}),timeoutMs:i,accept:e=>{let t=e;if(t?.type===`exec-res`)return t.ok===!0&&t.payload?{ok:!0,payload:t.payload}:t.ok===!1&&t.error?{ok:!1,error:t.error}:null}})}const ot=10*1024*1024;function st(e){return Array.isArray(e)?e.map(e=>e.trim()).filter(Boolean):[]}function ct(){let e=_().nodeHost?.browserProxy,t=st(e?.allowProfiles);return{enabled:e?.enabled!==!1,allowProfiles:t}}let F=null;async function lt(){return F||(F=(async()=>{let e=_();if(!d(e.browser,e).enabled||!await S())throw Error(`browser control disabled`)})(),F)}function I(e){let{allowProfiles:t,profile:n}=e;return t.length?n?t.includes(n.trim()):!1:!0}function ut(e){let t=new Set,n=typeof e==`object`&&e?e:null;if(!n)return[];typeof n.path==`string`&&n.path.trim()&&t.add(n.path.trim()),typeof n.imagePath==`string`&&n.imagePath.trim()&&t.add(n.imagePath.trim());let r=n.download;if(r&&typeof r==`object`){let e=r.path;typeof e==`string`&&e.trim()&&t.add(e.trim())}return[...t]}async function dt(e){let t=await j.stat(e).catch(()=>null);if(!t||!t.isFile())return null;if(t.size>ot)throw Error(`browser proxy file exceeds ${Math.round(ot/(1024*1024))}MB`);let n=await j.readFile(e),r=await ie({buffer:n,filePath:e});return{path:e,base64:n.toString(`base64`),mimeType:r}}function ft(e){if(!e)throw Error(`INVALID_REQUEST: paramsJSON required`);return JSON.parse(e)}function pt(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(1,Math.floor(e)):2e4}function mt(e){return String(e).includes(`browser proxy request timed out`)}function ht(e){return e===`/act`||e===`/navigate`||e===`/pdf`||e===`/screenshot`||e===`/snapshot`}async function gt(e){let t=e.profile?{profile:e.profile}:{};try{let n=await oe(n=>e.dispatcher.dispatch({method:`GET`,path:`/`,query:t,signal:n}),750,`browser proxy status`);if(n.status>=400||!n.body||typeof n.body!=`object`)return null;let r=n.body;return{running:r.running,cdpHttp:r.cdpHttp,cdpReady:r.cdpReady,cdpUrl:r.cdpUrl}}catch{return null}}function _t(e){let t=[`browser proxy timed out for ${e.method} ${e.path} after ${e.timeoutMs}ms`,e.wsBacked?`ws-backed browser action`:`browser action`];if(e.profile&&t.push(`profile=${e.profile}`),e.status){let n=[`running=${String(e.status.running)}`,`cdpHttp=${String(e.status.cdpHttp)}`,`cdpReady=${String(e.status.cdpReady)}`];typeof e.status.cdpUrl==`string`&&e.status.cdpUrl.trim()&&n.push(`cdpUrl=${e.status.cdpUrl}`),t.push(`status(${n.join(`, `)})`)}return t.join(`; `)}async function vt(e){let t=ft(e),n=typeof t.path==`string`?t.path.trim():``;if(!n)throw Error(`INVALID_REQUEST: path required`);let r=ct();if(!r.enabled)throw Error(`UNAVAILABLE: node browser proxy disabled`);await lt();let i=_(),a=d(i.browser,i),o=typeof t.profile==`string`?t.profile.trim():``,c=r.allowProfiles;if(c.length>0){if(n!==`/profiles`){if(!I({allowProfiles:c,profile:o||a.defaultProfile}))throw Error(`INVALID_REQUEST: browser profile not allowed`)}else if(o&&!I({allowProfiles:c,profile:o}))throw Error(`INVALID_REQUEST: browser profile not allowed`)}let l=typeof t.method==`string`?t.method.toUpperCase():`GET`,u=n.startsWith(`/`)?n:`/${n}`,p=t.body,m=pt(t.timeoutMs),h={};o&&(h.profile=o);let g=t.query??{};for(let[e,t]of Object.entries(g))t!=null&&(h[e]=typeof t==`string`?t:String(t));let v=s(f()),y;try{y=await oe(e=>v.dispatch({method:l===`DELETE`?`DELETE`:l===`POST`?`POST`:`GET`,path:u,query:h,body:p,signal:e}),m,`browser proxy request`)}catch(e){if(!mt(e))throw e;let t=o||a.defaultProfile,n=await gt({dispatcher:v,profile:u===`/profiles`?void 0:t});throw Error(_t({method:l,path:u,profile:u===`/profiles`?void 0:t||void 0,timeoutMs:m,wsBacked:ht(u),status:n}),{cause:e})}if(y.status>=400){let e=y.body&&typeof y.body==`object`&&`error`in y.body?String(y.body.error):`HTTP ${y.status}`;throw Error(e)}let b=y.body;if(c.length>0&&u===`/profiles`){let e=typeof b==`object`&&b?b:{};e.profiles=(Array.isArray(e.profiles)?e.profiles:[]).filter(e=>{if(!e||typeof e!=`object`)return!1;let t=e.name;return typeof t==`string`&&c.includes(t)})}let x,S=ut(b);if(S.length>0){let e=await Promise.all(S.map(async e=>{try{let t=await dt(e);if(!t)throw Error(`file not found`);return t}catch(t){throw Error(`browser proxy file read failed for ${e}: ${String(t)}`,{cause:t})}}));e.length>0&&(x=e)}let C=x?{result:b,files:x}:{result:b};return JSON.stringify(C)}function yt(e){return e===`allow-once`||e===`allow-always`?e:null}function bt(e){return e?.windowsShellWrapperBlocked?`SYSTEM_RUN_DENIED: allowlist miss (Windows shell wrappers like cmd.exe /c require approval; approve once/always or run with --ask on-miss|always)`:e?.shellWrapperBlocked?`SYSTEM_RUN_DENIED: allowlist miss (shell wrappers like sh/bash/zsh -c require approval; approve once/always or run with --ask on-miss|always)`:`SYSTEM_RUN_DENIED: allowlist miss`}function xt(e){let t=e.security===`allowlist`&&e.shellWrapperInvocation,n=t&&e.isWindows&&e.cmdInvocation,r=t?!1:e.analysisOk,i=t?!1:e.allowlistSatisfied,a=e.approvalDecision!==null||e.approved===!0;if(e.security===`deny`)return{allowed:!1,eventReason:`security=deny`,errorMessage:`SYSTEM_RUN_DISABLED: security=deny`,analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:!1,approvalDecision:e.approvalDecision,approvedByAsk:a};let o=Ee({ask:e.ask,security:e.security,analysisOk:r,allowlistSatisfied:i});return o&&!a?{allowed:!1,eventReason:`approval-required`,errorMessage:`SYSTEM_RUN_DENIED: approval required`,analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:o,approvalDecision:e.approvalDecision,approvedByAsk:a}:e.security===`allowlist`&&(!r||!i)&&!a?{allowed:!1,eventReason:`allowlist-miss`,errorMessage:bt({shellWrapperBlocked:t,windowsShellWrapperBlocked:n}),analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:o,approvalDecision:e.approvalDecision,approvedByAsk:a}:{allowed:!0,analysisOk:r,allowlistSatisfied:i,shellWrapperBlocked:t,windowsShellWrapperBlocked:n,requiresAsk:o,approvalDecision:e.approvalDecision,approvedByAsk:a}}function St(e){if(e.shellCommand){let t=se({command:e.shellCommand,allowlist:e.approvals.allowlist,safeBins:e.safeBins,safeBinProfiles:e.safeBinProfiles,cwd:e.cwd,env:e.env,trustedSafeBinDirs:e.trustedSafeBinDirs,skillBins:e.skillBins,autoAllowSkills:e.autoAllowSkills,platform:process.platform});return{analysisOk:t.analysisOk,allowlistMatches:t.allowlistMatches,allowlistSatisfied:e.security===`allowlist`&&t.analysisOk?t.allowlistSatisfied:!1,segments:t.segments}}let t=x({argv:e.argv,cwd:e.cwd,env:e.env}),n=le({analysis:t,allowlist:e.approvals.allowlist,safeBins:e.safeBins,safeBinProfiles:e.safeBinProfiles,cwd:e.cwd,trustedSafeBinDirs:e.trustedSafeBinDirs,skillBins:e.skillBins,autoAllowSkills:e.autoAllowSkills});return{analysisOk:t.ok,allowlistMatches:n.allowlistMatches,allowlistSatisfied:e.security===`allowlist`&&t.ok?n.allowlistSatisfied:!1,segments:t.segments}}function Ct(e){if(e.security!==`allowlist`||e.policy.approvedByAsk||e.shellCommand||!e.policy.analysisOk||!e.policy.allowlistSatisfied||e.segments.length!==1)return;let t=l(e.segments[0]);return t&&t.length>0?t:null}function wt(e){let t=e.plannedAllowlistArgv??e.argv;return e.security===`allowlist`&&e.isWindows&&!e.policy.approvedByAsk&&e.shellCommand&&e.policy.analysisOk&&e.policy.allowlistSatisfied&&e.segments.length===1&&e.segments[0]?.argv.length>0&&(t=e.segments[0].argv),t}function Tt(e){if(!e.truncated)return;let t=`... (truncated)`;e.stderr.trim().length>0?e.stderr=`${e.stderr}\n${t}`:e.stdout=`${e.stdout}\n${t}`}const Et=[/^(?:node|nodejs)$/,/^perl$/,/^php$/,/^python(?:\d+(?:\.\d+)*)?$/,/^ruby$/],Dt=new Set([`esno`,`jiti`,`ts-node`,`ts-node-esm`,`tsx`,`vite-node`]),Ot=new Set([`add`,`audit`,`completions`,`create`,`exec`,`help`,`init`,`install`,`link`,`outdated`,`patch`,`pm`,`publish`,`remove`,`repl`,`run`,`test`,`unlink`,`update`,`upgrade`,`x`]),L=new Set(`--backend.--bunfig.--conditions.--config.--console-depth.--cwd.--define.--elide-lines.--env-file.--extension-order.--filter.--hot.--inspect.--inspect-brk.--inspect-wait.--install.--jsx-factory.--jsx-fragment.--jsx-import-source.--loader.--origin.--port.--preload.--smol.--tsconfig-override.-c.-e.-p.-r`.split(`.`)),kt=new Set([`--cached-only`,`--cert`,`--config`,`--env-file`,`--ext`,`--harmony-import-attributes`,`--import-map`,`--inspect`,`--inspect-brk`,`--inspect-wait`,`--location`,`--log-level`,`--lock`,`--node-modules-dir`,`--no-check`,`--preload`,`--reload`,`--seed`,`--strace-ops`,`--unstable-bare-node-builtins`,`--v8-flags`,`--watch`,`--watch-exclude`,`-L`]);function R(e){return typeof e==`string`&&e.trim()||null}function At(e){let t=k.resolve(e),n=[],r=t;for(;;){n.unshift(r);let e=k.dirname(r);if(e===r)return n;r=e}}function jt(e){try{return A.accessSync(e,A.constants.W_OK),!0}catch{return!1}}function Mt(e){for(let t of At(e))try{if(!A.lstatSync(t).isSymbolicLink())continue;if(jt(k.dirname(t)))return!0}catch{return!0}return!1}function Nt(e){return e.shellCommand===null?(e.wrapperChain?.length??0)===0:!1}function z(e){return M.createHash(`sha256`).update(A.readFileSync(e)).digest(`hex`)}function Pt(e){return e.startsWith(`.`)||e.startsWith(`/`)||e.startsWith(`\\`)||e.includes(`/`)||e.includes(`\\`)||k.extname(e).length>0}function B(e,t){if(!e)return!1;try{return A.statSync(k.resolve(t??process.cwd(),e)).isFile()}catch{return!1}}function V(e){let t=e,n=0;for(;;){let e=p(t);if(e.kind===`unwrapped`){n+=t.length-e.argv.length,t=e.argv;continue}let r=h(t);if(r.kind===`unwrapped`){n+=t.length-r.argv.length,t=r.argv;continue}return{argv:t,baseIndex:n}}}function Ft(e){if(y(e,o,{allowCombinedC:!0}).valueTokenIndex!==null)return null;let t=!1;for(let n=1;n<e.length;n+=1){let r=e[n]?.trim()??``;if(r){if(r===`-`)return null;if(!t&&r===`--`){t=!0;continue}if(!t&&r===`-s`)return null;if(!(!t&&r.startsWith(`-`)))return n}}return null}function H(e){let t=!1;for(let n=e.startIndex;n<e.argv.length;n+=1){let r=e.argv[n]?.trim()??``;if(r){if(t)return B(r,e.cwd)?n:null;if(r===`--`){t=!0;continue}if(r===`-`)return null;if(r.startsWith(`-`)){!r.includes(`=`)&&e.optionsWithValue?.has(r)&&(n+=1);continue}return B(r,e.cwd)?n:null}}return null}function It(e){let t=!1;for(let n=e.startIndex;n<e.argv.length;n+=1){let r=e.argv[n]?.trim()??``;if(r){if(t)return n;if(r===`--`){t=!0;continue}if(r===`-`)return null;if(r.startsWith(`-`)){!r.includes(`=`)&&e.optionsWithValue?.has(r)&&(n+=1);continue}return n}}return null}function Lt(e){let t=!1,n=[];for(let r=e.startIndex;r<e.argv.length;r+=1){let i=e.argv[r]?.trim()??``;if(i){if(t){B(i,e.cwd)&&n.push(r);continue}if(i===`--`){t=!0;continue}if(i===`-`)return[];i.startsWith(`-`)||B(i,e.cwd)&&n.push(r)}}return n}function Rt(e){let t=Lt({argv:e.argv,startIndex:1,cwd:e.cwd});return t.length===1?t[0]:null}function zt(e){let t=It({argv:e.argv,startIndex:1,optionsWithValue:L});if(t===null)return null;let n=e.argv[t]?.trim()??``;return n===`run`?H({argv:e.argv,startIndex:t+1,cwd:e.cwd,optionsWithValue:L}):Ot.has(n)||!Pt(n)?null:t}function Bt(e){return(e.argv[1]?.trim()??``)===`run`?H({argv:e.argv,startIndex:2,cwd:e.cwd,optionsWithValue:kt}):null}function U(e){return Dt.has(e)||de(e)}function Vt(e,t){let n=V(e),r=m(n.argv[0]??``);if(!r)return null;if(a.has(r)){let e=Ft(n.argv);return e===null?null:n.baseIndex+e}if(Et.some(e=>e.test(r))){let e=n.argv[1]?.trim()??``;if(e&&e!==`-`&&!e.startsWith(`-`))return n.baseIndex+1}if(r===`bun`){let e=zt({argv:n.argv,cwd:t});if(e!==null)return n.baseIndex+e}if(r===`deno`){let e=Bt({argv:n.argv,cwd:t});if(e!==null)return n.baseIndex+e}if(!U(r))return null;let i=Rt({argv:n.argv,cwd:t});return i===null?null:n.baseIndex+i}function Ht(e){if(e.shellCommand!==null)return!1;let t=m(V(e.argv).argv[0]??``);return!t||a.has(t)?!1:U(t)}function W(e){let t=Vt(e.argv,e.cwd);if(t===null)return Ht({argv:e.argv,shellCommand:e.shellCommand})?{ok:!1,message:`SYSTEM_RUN_DENIED: approval cannot safely bind this interpreter/runtime command`}:{ok:!0,snapshot:null};let n=e.argv[t]?.trim();if(!n)return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires a stable script operand`};let r=k.resolve(e.cwd??process.cwd(),n),i,a;try{i=A.realpathSync(r),a=A.statSync(i)}catch{return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires an existing script operand`}}return a.isFile()?{ok:!0,snapshot:{argvIndex:t,path:i,sha256:z(i)}}:{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires a file script operand`}}function G(e){let t=k.resolve(e),n,r,i,a;try{n=A.lstatSync(t),r=A.statSync(t),i=A.realpathSync(t),a=A.statSync(i)}catch{return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires an existing canonical cwd`}}return r.isDirectory()?Mt(t)?{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires canonical cwd (no symlink path components)`}:n.isSymbolicLink()?{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires canonical cwd (no symlink cwd)`}:!w(r,n)||!w(r,a)||!w(n,a)?{ok:!1,message:`SYSTEM_RUN_DENIED: approval cwd identity mismatch`}:{ok:!0,snapshot:{cwd:i,stat:r}}:{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires cwd to be a directory`}}function Ut(e){let t=G(e.snapshot.cwd);return t.ok?w(e.snapshot.stat,t.snapshot.stat):!1}function Wt(e){let t=e.argv[e.snapshot.argvIndex]?.trim();if(!t)return!1;let n=k.resolve(e.cwd??process.cwd(),t),r;try{r=A.realpathSync(n)}catch{return!1}if(r!==e.snapshot.path)return!1;try{return z(r)===e.snapshot.sha256}catch{return!1}}function Gt(e){if(!e.approvedByAsk)return{ok:!0,argv:e.argv,argvChanged:!1,cwd:e.cwd,approvedCwdSnapshot:void 0};let t=e.cwd,n;if(t){let e=G(t);if(!e.ok)return e;t=e.snapshot.cwd,n=e.snapshot}if(e.argv.length===0)return{ok:!0,argv:e.argv,argvChanged:!1,cwd:t,approvedCwdSnapshot:n};let r=c(e.argv,t);if(!Nt({shellCommand:e.shellCommand,wrapperChain:r?.wrapperChain}))return{ok:!0,argv:e.argv,argvChanged:!1,cwd:t,approvedCwdSnapshot:n};let i=r?.resolvedRealPath??r?.resolvedPath;if(!i)return{ok:!1,message:`SYSTEM_RUN_DENIED: approval requires a stable executable path`};if(i===e.argv[0])return{ok:!0,argv:e.argv,argvChanged:!1,cwd:t,approvedCwdSnapshot:n};let a=[...e.argv];return a[0]=i,{ok:!0,argv:a,argvChanged:!0,cwd:t,approvedCwdSnapshot:n}}function Kt(e){let t=E({command:e.command,rawCommand:e.rawCommand});if(!t.ok)return{ok:!1,message:t.message};if(t.argv.length===0)return{ok:!1,message:`command required`};let n=Gt({approvedByAsk:!0,argv:t.argv,shellCommand:t.shellPayload,cwd:R(e.cwd)??void 0});if(!n.ok)return{ok:!1,message:n.message};let r=ye(n.argv),i=t.previewText?.trim()&&t.previewText.trim()!==r?t.previewText.trim():null,a=W({argv:n.argv,cwd:n.cwd,shellCommand:t.shellPayload});return a.ok?{ok:!0,plan:{argv:n.argv,cwd:n.cwd??null,commandText:r,commandPreview:i,agentId:R(e.agentId),sessionKey:R(e.sessionKey),mutableFileOperand:a.snapshot??void 0}}:{ok:!1,message:a.message}}const K=new Set,qt=`SYSTEM_RUN_DENIED: approval cwd changed before execution`;function Jt(e){K.has(e)||(K.add(e),T(e))}function Yt(e){switch(e){case`security=deny`:case`approval-required`:case`allowlist-miss`:case`execution-plan-miss`:case`companion-unavailable`:case`permission:screenRecording`:return e;default:return`approval-required`}}async function q(e,t,n){await e.sendNodeEvent(e.client,`exec.denied`,e.buildExecEventPayload({sessionKey:t.sessionKey,runId:t.runId,host:`node`,command:t.commandText,reason:n.reason,suppressNotifyOnExit:t.suppressNotifyOnExit})),await e.sendInvokeResult({ok:!1,error:{code:`UNAVAILABLE`,message:n.message}})}async function Xt(e){let t=E({command:e.params.command,rawCommand:e.params.rawCommand});if(!t.ok)return await e.sendInvokeResult({ok:!1,error:{code:`INVALID_REQUEST`,message:t.message}}),null;if(t.argv.length===0)return await e.sendInvokeResult({ok:!1,error:{code:`INVALID_REQUEST`,message:`command required`}}),null;let n=t.shellPayload,r=t.commandText,i=e.params.systemRunPlan===void 0?null:ve(e.params.systemRunPlan);if(e.params.systemRunPlan!==void 0&&!i)return await e.sendInvokeResult({ok:!1,error:{code:`INVALID_REQUEST`,message:`systemRunPlan invalid`}}),null;let a=e.params.agentId?.trim()||void 0,o=e.params.sessionKey?.trim()||`node`,s=e.params.runId?.trim()||M.randomUUID(),c=e.params.suppressNotifyOnExit===!0,l=te({overrides:e.params.env??void 0,shellWrapper:n!==null});return{argv:t.argv,shellPayload:n,commandText:r,commandPreview:t.previewText,approvalPlan:i,agentId:a,sessionKey:o,runId:s,execution:{sessionKey:o,runId:s,commandText:r,suppressNotifyOnExit:c},approvalDecision:yt(e.params.approvalDecision),envOverrides:l,env:e.sanitizeEnv(l),cwd:e.params.cwd?.trim()||void 0,timeoutMs:e.params.timeoutMs??void 0,needsScreenRecording:e.params.needsScreenRecording===!0,approved:e.params.approved===!0,suppressNotifyOnExit:c}}async function Zt(e,t){let n=_(),r=t.agentId?ee(n,t.agentId)?.tools?.exec:void 0,i=e.resolveExecSecurity(r?.security??n.tools?.exec?.security),a=e.resolveExecAsk(r?.ask??n.tools?.exec?.ask),o=Te(t.agentId,{security:i,ask:a}),s=o.agent.security,c=o.agent.ask,l=o.agent.autoAllowSkills,{safeBins:u,safeBinProfiles:d,trustedSafeBinDirs:f}=ue({global:n.tools?.exec,local:r,onWarning:Jt}),p=l?await e.skillBins.current():[],{analysisOk:m,allowlistMatches:h,allowlistSatisfied:g,segments:v}=St({shellCommand:t.shellPayload,argv:t.argv,approvals:o,security:s,safeBins:u,safeBinProfiles:d,trustedSafeBinDirs:f,cwd:t.cwd,env:t.env,skillBins:p,autoAllowSkills:l}),y=process.platform===`win32`,b=t.shellPayload?e.isCmdExeInvocation(v[0]?.argv??[]):e.isCmdExeInvocation(t.argv),x=xt({security:s,ask:c,analysisOk:m,allowlistSatisfied:g,approvalDecision:t.approvalDecision,approved:t.approved,isWindows:y,cmdInvocation:b,shellWrapperInvocation:t.shellPayload!==null});if(m=x.analysisOk,g=x.allowlistSatisfied,!x.allowed)return await q(e,t.execution,{reason:x.eventReason,message:x.errorMessage}),null;if(s===`allowlist`&&t.shellPayload&&!x.approvedByAsk)return await q(e,t.execution,{reason:`approval-required`,message:`SYSTEM_RUN_DENIED: approval required`}),null;let S=Gt({approvedByAsk:x.approvedByAsk,argv:t.argv,shellCommand:t.shellPayload,cwd:t.cwd});if(!S.ok)return await q(e,t.execution,{reason:`approval-required`,message:S.message}),null;let C=x.approvedByAsk?S.approvedCwdSnapshot:void 0;if(x.approvedByAsk&&S.cwd&&!C)return await q(e,t.execution,{reason:`approval-required`,message:qt}),null;let w=Ct({security:s,shellCommand:t.shellPayload,policy:x,segments:v});return w===null?(await q(e,t.execution,{reason:`execution-plan-miss`,message:`SYSTEM_RUN_DENIED: execution plan mismatch`}),null):{...t,argv:S.argv,cwd:S.cwd,approvals:o,security:s,policy:x,allowlistMatches:h,analysisOk:m,allowlistSatisfied:g,segments:v,plannedAllowlistArgv:w??void 0,isWindows:y,approvedCwdSnapshot:C}}async function Qt(e,t){if(t.approvedCwdSnapshot&&!Ut({snapshot:t.approvedCwdSnapshot})){T(`security: system.run approval cwd drift blocked (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:qt});return}let n=t.approvalPlan?W({argv:t.argv,cwd:t.cwd,shellCommand:t.shellPayload}):null;if(n&&!n.ok){T(`security: system.run approval script binding blocked (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:n.message});return}if(n?.snapshot&&!t.approvalPlan?.mutableFileOperand){T(`security: system.run approval script binding missing (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:`SYSTEM_RUN_DENIED: approval missing script operand binding`});return}if(t.approvalPlan?.mutableFileOperand&&!Wt({snapshot:t.approvalPlan.mutableFileOperand,argv:t.argv,cwd:t.cwd})){T(`security: system.run approval script drift blocked (runId=${t.runId})`),await q(e,t.execution,{reason:`approval-required`,message:`SYSTEM_RUN_DENIED: approval script operand changed before execution`});return}if(e.preferMacAppExecHost){let n={command:t.plannedAllowlistArgv??t.argv,rawCommand:t.commandText||null,cwd:t.cwd??null,env:t.envOverrides??null,timeoutMs:t.timeoutMs??null,needsScreenRecording:t.needsScreenRecording,agentId:t.agentId??null,sessionKey:t.sessionKey??null,approvalDecision:t.approvalDecision},r=await e.runViaMacAppExecHost({approvals:t.approvals,request:n});if(!r){if(e.execHostEnforced||!e.execHostFallbackAllowed){await q(e,t.execution,{reason:`companion-unavailable`,message:`COMPANION_APP_UNAVAILABLE: macOS app exec host unreachable`});return}}else if(r.ok){let n=r.payload;await e.sendExecFinishedEvent({sessionKey:t.sessionKey,runId:t.runId,commandText:t.commandText,result:n,suppressNotifyOnExit:t.suppressNotifyOnExit}),await e.sendInvokeResult({ok:!0,payloadJSON:JSON.stringify(n)});return}else{await q(e,t.execution,{reason:Yt(r.error.reason),message:r.error.message});return}}if(t.policy.approvalDecision===`allow-always`&&t.security===`allowlist`&&t.policy.analysisOk){let e=ce({segments:t.segments,cwd:t.cwd,env:t.env,platform:process.platform});for(let n of e)n&&De(t.approvals.file,t.agentId,n)}if(t.allowlistMatches.length>0){let e=new Set;for(let n of t.allowlistMatches)!n?.pattern||e.has(n.pattern)||(e.add(n.pattern),ke(t.approvals.file,t.agentId,n,t.commandText,t.segments[0]?.resolution?.resolvedPath))}if(t.needsScreenRecording){await q(e,t.execution,{reason:`permission:screenRecording`,message:`PERMISSION_MISSING: screenRecording`});return}let r=wt({plannedAllowlistArgv:t.plannedAllowlistArgv,argv:t.argv,security:t.security,isWindows:t.isWindows,policy:t.policy,shellCommand:t.shellPayload,segments:t.segments}),i=await e.runCommand(r,t.cwd,t.env,t.timeoutMs);Tt(i),await e.sendExecFinishedEvent({sessionKey:t.sessionKey,runId:t.runId,commandText:t.commandText,result:i,suppressNotifyOnExit:t.suppressNotifyOnExit}),await e.sendInvokeResult({ok:!0,payloadJSON:JSON.stringify({exitCode:i.exitCode,timedOut:i.timedOut,success:i.success,stdout:i.stdout,stderr:i.stderr,error:i.error??null})})}async function $t(e){let t=await Xt(e);if(!t)return;let n=await Zt(e,t);n&&await Qt(e,n)}const en=2e5,tn={65001:`utf-8`,54936:`gb18030`,936:`gbk`,950:`big5`,932:`shift_jis`,949:`euc-kr`,1252:`windows-1252`};let J;const nn=process.env.OPENCLAW_NODE_EXEC_HOST?.trim().toLowerCase()===`app`,rn=process.env.OPENCLAW_NODE_EXEC_FALLBACK?.trim().toLowerCase()!==`0`,an=process.platform===`darwin`&&nn;function on(e){return e===`deny`||e===`allowlist`||e===`full`?e:`allowlist`}function sn(e){let t=e[0]?.trim();if(!t)return!1;let n=k.win32.basename(t).toLowerCase();return n===`cmd.exe`||n===`cmd`}function cn(e){return e===`off`||e===`on-miss`||e===`always`?e:`on-miss`}function ln(e){return ne({overrides:e,blockPathOverrides:!0})}function un(e,t){return e.length<=t?{text:e,truncated:!1}:{text:`... (truncated) ${e.slice(e.length-t)}`,truncated:!0}}function dn(e){if(!e)return null;let t=e.match(/\b(\d{3,5})\b/);if(!t?.[1])return null;let n=Number.parseInt(t[1],10);return!Number.isFinite(n)||n<=0?null:n}function fn(){if(process.platform!==`win32`)return null;if(J!==void 0)return J;try{let e=tt(`cmd.exe`,[`/d`,`/s`,`/c`,`chcp`],{windowsHide:!0,encoding:`utf8`,stdio:[`ignore`,`pipe`,`pipe`]}),t=dn(`${e.stdout??``}\n${e.stderr??``}`);J=t===null?null:tn[t]??null}catch{J=null}return J}function pn(e){let t=e.buffer.toString(`utf8`);if((e.platform??process.platform)!==`win32`)return t;let n=e.windowsEncoding??fn();if(!n||n.toLowerCase()===`utf-8`)return t;try{return new TextDecoder(n).decode(e.buffer)}catch{return t}}function mn(e){let t=e.socket?.path?.trim();return{...e,socket:t?{path:t}:void 0}}function hn(e,t){if(!t.exists)return;if(!t.hash)throw Error(`INVALID_REQUEST: exec approvals base hash unavailable; reload and retry`);let n=typeof e.baseHash==`string`?e.baseHash.trim():``;if(!n)throw Error(`INVALID_REQUEST: exec approvals base hash required; reload and retry`);if(n!==t.hash)throw Error(`INVALID_REQUEST: exec approvals changed; reload and retry`)}async function gn(e,t,n,r){return await new Promise(i=>{let a=[],o=[],s=0,c=!1,l=!1,u=!1,d=fn(),f=et(e[0],e.slice(1),{cwd:t,env:n,stdio:[`ignore`,`pipe`,`pipe`],windowsHide:!0}),p=(e,t)=>{if(s>=en){c=!0;return}let n=en-s,r=e.length>n?e.subarray(0,n):e;s+=r.length,t===`stdout`?a.push(r):o.push(r),e.length>n&&(c=!0)};f.stdout?.on(`data`,e=>p(e,`stdout`)),f.stderr?.on(`data`,e=>p(e,`stderr`));let m;r&&r>0&&(m=setTimeout(()=>{l=!0;try{f.kill(`SIGKILL`)}catch{}},r));let h=(e,t)=>{if(u)return;u=!0,m&&clearTimeout(m);let n=pn({buffer:Buffer.concat(a),windowsEncoding:d}),r=pn({buffer:Buffer.concat(o),windowsEncoding:d});i({exitCode:e,timedOut:l,success:e===0&&!l&&!t,stdout:n,stderr:r,error:t??null,truncated:c})};f.on(`error`,e=>{h(void 0,e.message)}),f.on(`exit`,e=>{h(e===null?void 0:e,null)})})}function _n(e){return(e?.PATH??e?.Path??process.env.PATH??process.env.Path??`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`).split(k.delimiter).filter(Boolean)}function vn(e,t){if(e.includes(`/`)||e.includes(`\\`))return null;let n=process.platform===`win32`?(process.env.PATHEXT??process.env.PathExt??`.EXE;.CMD;.BAT;.COM`).split(`;`).map(e=>e.toLowerCase()):[``];for(let r of _n(t))for(let t of n){let n=k.join(r,e+t);if(A.existsSync(n))return n}return null}async function yn(e,t){let n=e.bins.map(e=>e.trim()).filter(Boolean),r={};for(let e of n){let n=vn(e,t);n&&(r[e]=n)}return{bins:r}}function bn(e){if(!e.output)return e;let t=e.output.trim();if(!t)return e;let{text:n}=un(t,2e4);return{...e,output:n}}async function xn(e){let t=[e.result.stdout,e.result.stderr,e.result.error].filter(Boolean).join(`
2
2
  `);await Dn(e.client,`exec.finished`,bn({sessionKey:e.sessionKey,runId:e.runId,host:`node`,command:e.commandText,exitCode:e.result.exitCode??void 0,timedOut:e.result.timedOut,success:e.result.success,output:t,suppressNotifyOnExit:e.suppressNotifyOnExit}))}async function Sn(e){let{approvals:t,request:n}=e;return await at({socketPath:t.socketPath,token:t.token,request:n})}async function Y(e,t,n){await $(e,t,{ok:!0,payloadJSON:JSON.stringify(n)})}async function Cn(e,t,n){await $(e,t,{ok:!0,payloadJSON:n})}async function X(e,t,n,r){await $(e,t,{ok:!1,error:{code:n,message:r}})}async function Z(e,t,n){await X(e,t,`INVALID_REQUEST`,String(n))}async function wn(e,t,n){let r=String(e.command??``);if(r===`system.execApprovals.get`){try{Ae();let n=D();await Y(t,e,{path:n.path,exists:n.exists,hash:n.hash,file:mn(n.file)})}catch(n){let r=String(n);await X(t,e,r.toLowerCase().includes(`timed out`)?`TIMEOUT`:`INVALID_REQUEST`,r)}return}if(r===`system.execApprovals.set`){try{let n=Q(e.paramsJSON);if(!n.file||typeof n.file!=`object`)throw Error(`INVALID_REQUEST: exec approvals file required`);Ae();let r=D();hn(n,r),Ce(Oe({normalized:we(n.file),current:r.file}));let i=D();await Y(t,e,{path:i.path,exists:i.exists,hash:i.hash,file:mn(i.file)})}catch(n){await Z(t,e,n)}return}if(r===`system.which`){try{let n=Q(e.paramsJSON);if(!Array.isArray(n.bins))throw Error(`INVALID_REQUEST: bins required`);await Y(t,e,await yn(n,ln(void 0)))}catch(n){await Z(t,e,n)}return}if(r===`browser.proxy`){try{await Cn(t,e,await vt(e.paramsJSON))}catch(n){await Z(t,e,n)}return}if(r===`system.run.prepare`){try{let n=Kt(Q(e.paramsJSON));if(!n.ok){await X(t,e,`INVALID_REQUEST`,n.message);return}await Y(t,e,{plan:n.plan})}catch(n){await Z(t,e,n)}return}if(r!==`system.run`){await X(t,e,`UNAVAILABLE`,`command not supported`);return}let i;try{i=Q(e.paramsJSON)}catch(n){await Z(t,e,n);return}if(!Array.isArray(i.command)||i.command.length===0){await X(t,e,`INVALID_REQUEST`,`command required`);return}await $t({client:t,params:i,skillBins:n,execHostEnforced:nn,execHostFallbackAllowed:rn,resolveExecSecurity:on,resolveExecAsk:cn,isCmdExeInvocation:sn,sanitizeEnv:ln,runCommand:gn,runViaMacAppExecHost:Sn,sendNodeEvent:Dn,buildExecEventPayload:bn,sendInvokeResult:async n=>{await $(t,e,n)},sendExecFinishedEvent:async({sessionKey:e,runId:n,commandText:r,result:i})=>{await xn({client:t,sessionKey:e,runId:n,commandText:r,result:i})},preferMacAppExecHost:an})}function Q(e){if(!e)throw Error(`INVALID_REQUEST: paramsJSON required`);return JSON.parse(e)}function Tn(e){if(!e||typeof e!=`object`)return null;let t=e,n=typeof t.id==`string`?t.id.trim():``,r=typeof t.nodeId==`string`?t.nodeId.trim():``,i=typeof t.command==`string`?t.command.trim():``;return!n||!r||!i?null:{id:n,nodeId:r,command:i,paramsJSON:typeof t.paramsJSON==`string`?t.paramsJSON:t.params===void 0?null:JSON.stringify(t.params),timeoutMs:typeof t.timeoutMs==`number`?t.timeoutMs:null,idempotencyKey:typeof t.idempotencyKey==`string`?t.idempotencyKey:null}}async function $(e,t,n){try{await e.request(`node.invoke.result`,En(t,n))}catch{}}function En(e,t){let n={id:e.id,nodeId:e.nodeId,ok:t.ok};return t.payload!==void 0&&(n.payload=t.payload),typeof t.payloadJSON==`string`&&(n.payloadJSON=t.payloadJSON),t.error&&(n.error=t.error),n}async function Dn(e,t,n){try{await e.request(`node.event`,{event:t,payloadJSON:n?JSON.stringify(n):null})}catch{}}const On=`/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin`;function kn(e,t){return e.includes(`/`)||e.includes(`\\`)?null:u(e,t)??null}function An(e,t){let n=[],r=new Set;for(let i of e){let e=i.trim();if(!e)continue;let a=kn(e,t);if(!a)continue;let o=`${e}\u0000${a}`;r.has(o)||(r.add(o),n.push({name:e,resolvedPath:a}))}return n.toSorted((e,t)=>e.name.localeCompare(t.name)||e.resolvedPath.localeCompare(t.resolvedPath))}var jn=class{constructor(e,t){this.bins=[],this.lastRefresh=0,this.ttlMs=9e4,this.fetch=e,this.pathEnv=t}async current(e=!1){return(e||Date.now()-this.lastRefresh>this.ttlMs)&&await this.refresh(),this.bins}async refresh(){try{this.bins=An(await this.fetch(),this.pathEnv),this.lastRefresh=Date.now()}catch{this.lastRefresh||(this.bins=[])}}};function Mn(){Me({pathEnv:process.env.PATH??``});let e=process.env.PATH??``;return e.trim()?e:(process.env.PATH=On,On)}async function Nn(e){return await be({config:(e.config.gateway?.mode===`remote`?`remote`:`local`)==`local`?Pn(e.config):e.config,env:e.env,includeLegacyEnv:!1,localTokenPrecedence:`env-first`,localPasswordPrecedence:`env-first`,remoteTokenPrecedence:`env-first`,remotePasswordPrecedence:`env-first`})}function Pn(e){if(!e.gateway?.remote?.token&&!e.gateway?.remote?.password)return e;let t=structuredClone(e);return t.gateway?.remote&&(t.gateway.remote.token=void 0,t.gateway.remote.password=void 0),t}async function Fn(e){let t=await it(),n=e.nodeId?.trim()||t.nodeId;n!==t.nodeId&&(t.nodeId=n);let r=e.displayName?.trim()||t.displayName||await ae();t.displayName=r;let i={host:e.gatewayHost,port:e.gatewayPort,tls:e.gatewayTls??_().gateway?.tls?.enabled??!1,tlsFingerprint:e.gatewayTlsFingerprint};t.gateway=i,await rt(t);let a=_(),o=d(a.browser,a),s=a.nodeHost?.browserProxy?.enabled!==!1&&o.enabled,{token:c,password:l}=await Nn({config:a,env:process.env}),u=i.host??`127.0.0.1`,f=i.port??18789,p=`${i.tls?`wss`:`ws`}://${u}:${f}`,m=Mn();console.log(`node host PATH: ${m}`);let h=new pe({url:p,token:c||void 0,password:l||void 0,instanceId:n,clientName:b.NODE_HOST,clientDisplayName:r,clientVersion:re,platform:process.platform,mode:v.NODE,role:`node`,scopes:[],caps:[`system`,...s?[`browser`]:[]],commands:[...Ze,...Qe,...s?[$e]:[]],pathEnv:m,permissions:void 0,deviceIdentity:fe(),tlsFingerprint:i.tlsFingerprint,onEvent:e=>{if(e.event!==`node.invoke.request`)return;let t=Tn(e.payload);t&&wn(t,h,g)},onConnectError:e=>{console.error(`node host gateway connect failed: ${e.message}`)},onClose:(e,t)=>{console.error(`node host gateway closed (${e}): ${t}`)}}),g=new jn(async()=>{let e=await h.request(`skills.bins`,{});return Array.isArray(e?.bins)?e.bins.map(e=>String(e)):[]},m);h.start(),await new Promise(()=>{})}async function In(e){let{devMode:t,nodePath:n}=await Pe({env:e.env,runtime:e.runtime,devMode:e.devMode,nodePath:e.nodePath}),{programArguments:r,workingDirectory:i}=await Fe({host:e.host,port:e.port,tls:e.tls,tlsFingerprint:e.tlsFingerprint,nodeId:e.nodeId,displayName:e.displayName,dev:t,runtime:e.runtime,nodePath:n});await Ie({env:e.env,runtime:e.runtime,programArguments:r,warn:e.warn,title:`Node daemon runtime`});let a=Ne({env:e.env});return{programArguments:r,workingDirectory:i,environment:a,description:ge({version:a.OPENCLAW_SERVICE_VERSION})}}const Ln=Re;function Rn(e){return Le(e)}function zn(){return Je({installCommand:C(`openclaw node install`),startCommand:C(`openclaw node start`),launchAgentPlistPath:`~/Library/LaunchAgents/${he()}.plist`,systemdServiceName:me(),windowsTaskName:_e()})}function Bn(e=process.env){return qe({env:e,systemdServiceName:me(),windowsTaskName:_e()})}function Vn(e,t){let n=e.host?.trim()||t?.gateway?.host||`127.0.0.1`,r=Xe(e.port);return e.port!==void 0&&r===null?{host:n,port:null}:{host:n,port:r??t?.gateway?.port??18789}}async function Hn(e){let t=!!e.json,{stdout:i,warnings:a,emit:o,fail:s}=He({action:`install`,json:t});if(r(process.env)){s(`Nix mode detected; service install is disabled.`);return}let c=await P(),{host:l,port:u}=Vn(e,c);if(!Number.isFinite(u??NaN)||(u??0)<=0){s(`Invalid port`);return}let d=e.runtime?String(e.runtime):Ln;if(!Rn(d)){s(`Invalid --runtime (use "node" or "bun")`);return}let f=O(),p=!1;try{p=await f.isLoaded({env:process.env})}catch(e){s(`Node service check failed: ${String(e)}`);return}if(p&&!e.force){o({ok:!0,result:`already-installed`,message:`Node service already ${f.loadedText}.`,service:We(f,p),warnings:a.length?a:void 0}),t||(n.log(`Node service already ${f.loadedText}.`),n.log(`Reinstall with: ${C(`openclaw node install --force`)}`));return}let m=e.tlsFingerprint?.trim()||c?.gateway?.tlsFingerprint,h=!!e.tls||!!m||!!c?.gateway?.tls,{programArguments:g,workingDirectory:_,environment:v,description:y}=await In({env:process.env,host:l,port:u??18789,tls:h,tlsFingerprint:m||void 0,nodeId:e.nodeId,displayName:e.displayName,runtime:d,warn:e=>{t?a.push(e):n.log(e)}});await Ve({serviceNoun:`Node`,service:f,warnings:a,emit:o,fail:s,install:async()=>{await f.install({env:process.env,stdout:i,programArguments:g,workingDirectory:_,environment:v,description:y})}})}async function Un(e={}){return await Ue({serviceNoun:`Node`,service:O(),opts:e,stopBeforeUninstall:!1,assertNotLoadedAfterUninstall:!1})}async function Wn(e={}){await Ke({serviceNoun:`Node`,service:O(),renderStartHints:zn,opts:e})}async function Gn(e={}){return await Ge({serviceNoun:`Node`,service:O(),opts:e})}async function Kn(e={}){let r=!!e.json,i=O(),[a,o,s]=await Promise.all([i.isLoaded({env:process.env}).catch(()=>!1),i.readCommand(process.env).catch(()=>null),i.readRuntime(process.env).catch(e=>({status:`unknown`,detail:String(e)}))]),c={service:{...We(i,a),command:o,runtime:s}};if(r){n.log(JSON.stringify(c,null,2));return}let{rich:l,label:u,accent:d,infoText:f,okText:p,warnText:m,errorText:h}=ze(),g=a?p(i.loadedText):m(i.notLoadedText);n.log(`${u(`Service:`)} ${d(i.label)} (${g})`),o?.programArguments?.length&&n.log(`${u(`Command:`)} ${f(o.programArguments.join(` `))}`),o?.sourcePath&&n.log(`${u(`Service file:`)} ${f(o.sourcePath)}`),o?.workingDirectory&&n.log(`${u(`Working dir:`)} ${f(o.workingDirectory)}`);let _=Ye(s);if(_){let e=Be(s?.status);n.log(`${u(`Runtime:`)} ${t(l,e,_)}`)}if(!a){n.log(``);for(let e of zn())n.log(`${m(`Start with:`)} ${f(e)}`);return}let v={...process.env,...o?.environment??void 0},y={...v,OPENCLAW_LOG_PREFIX:v.OPENCLAW_LOG_PREFIX??`node`};if(s?.missingUnit){n.error(h(`Service unit not found.`));for(let e of Bn(y))n.error(h(e));return}if(s?.status===`stopped`){n.error(h(`Service is loaded but not running.`));for(let e of Bn(y))n.error(h(e))}}function qn(e,t){return Xe(e)??t}function Jn(t){let n=t.command(`node`).description(`Run and manage the headless node host service`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${Se([[`openclaw node run --host 127.0.0.1 --port 18789`,`Run the node host in the foreground.`],[`openclaw node status`,`Check node host service status.`],[`openclaw node install`,`Install the node host service.`],[`openclaw node restart`,`Restart the installed node host service.`]])}\n\n${e.muted(`Docs:`)} ${xe(`/cli/node`,`docs.openclaw.ai/cli/node`)}\n`);n.command(`run`).description(`Run the headless node host (foreground)`).option(`--host <host>`,`Gateway host`).option(`--port <port>`,`Gateway port`).option(`--tls`,`Use TLS for the gateway connection`,!1).option(`--tls-fingerprint <sha256>`,`Expected TLS certificate fingerprint (sha256)`).option(`--node-id <id>`,`Override node id (clears pairing token)`).option(`--display-name <name>`,`Override node display name`).action(async e=>{let t=await P();await Fn({gatewayHost:e.host?.trim()||t?.gateway?.host||`127.0.0.1`,gatewayPort:qn(e.port,t?.gateway?.port??18789),gatewayTls:!!e.tls||!!e.tlsFingerprint,gatewayTlsFingerprint:e.tlsFingerprint,nodeId:e.nodeId,displayName:e.displayName})}),n.command(`status`).description(`Show node host status`).option(`--json`,`Output JSON`,!1).action(async e=>{await Kn(e)}),n.command(`install`).description(`Install the node host service (launchd/systemd/schtasks)`).option(`--host <host>`,`Gateway host`).option(`--port <port>`,`Gateway port`).option(`--tls`,`Use TLS for the gateway connection`,!1).option(`--tls-fingerprint <sha256>`,`Expected TLS certificate fingerprint (sha256)`).option(`--node-id <id>`,`Override node id (clears pairing token)`).option(`--display-name <name>`,`Override node display name`).option(`--runtime <runtime>`,`Service runtime (node|bun). Default: node`).option(`--force`,`Reinstall/overwrite if already installed`,!1).option(`--json`,`Output JSON`,!1).action(async e=>{await Hn(e)}),n.command(`uninstall`).description(`Uninstall the node host service (launchd/systemd/schtasks)`).option(`--json`,`Output JSON`,!1).action(async e=>{await Un(e)}),n.command(`stop`).description(`Stop the node host service (launchd/systemd/schtasks)`).option(`--json`,`Output JSON`,!1).action(async e=>{await Gn(e)}),n.command(`restart`).description(`Restart the node host service (launchd/systemd/schtasks)`).option(`--json`,`Output JSON`,!1).action(async e=>{await Wn(e)})}export{Jn as registerNodeCli};
3
+ //# sourceMappingURL=node-cli-Br04Qmqo.js.map
@@ -1 +1,2 @@
1
1
  import{sn as e}from"./call-B8Fb4_oh.js";import{i as t,r as n,t as r}from"./node-commands-DdkziOTx.js";const i=[`canvas.present`,`canvas.hide`,`canvas.navigate`,`canvas.eval`,`canvas.snapshot`,`canvas.a2ui.push`,`canvas.a2ui.pushJSONL`,`canvas.a2ui.reset`],a=[`camera.list`],o=[`camera.snap`,`camera.clip`],s=[`screen.record`],c=[`location.get`],l=[...[`notifications.list`],`notifications.actions`],u=[`device.info`,`device.status`],d=[...u,`device.permissions`,`device.health`],f=[`contacts.search`],p=[`contacts.add`],m=[`calendar.events`],h=[`calendar.add`],g=[`reminders.list`],_=[`reminders.add`],v=[`photos.latest`],y=[`motion.activity`,`motion.pedometer`],b=[`sms.send`],x=[n],S=[...t,n,r],C=[...i,...a,...c,n],w=[...o,...s,...p,...h,..._,...b],T={ios:[...i,...a,...c,...u,...f,...m,...g,...v,...y,...x],android:[...i,...a,...c,...l,n,...d,...f,...m,...g,...v,...y],macos:[...i,...a,...c,...u,...f,...m,...g,...v,...y,...S],linux:[...S],windows:[...S],unknown:[...C]},E=[{id:`ios`,prefixes:[`ios`]},{id:`android`,prefixes:[`android`]},{id:`macos`,prefixes:[`mac`,`darwin`]},{id:`windows`,prefixes:[`win`]},{id:`linux`,prefixes:[`linux`]}],D=[{id:`ios`,tokens:[`iphone`,`ipad`,`ios`]},{id:`android`,tokens:[`android`]},{id:`macos`,tokens:[`mac`]},{id:`windows`,tokens:[`windows`]},{id:`linux`,tokens:[`linux`]}];function O(e){for(let t of E)if(t.prefixes.some(t=>e.startsWith(t)))return t.id}function k(e){for(let t of D)if(t.tokens.some(t=>e.includes(t)))return t.id}function A(t,n){return O(e(t))||(k(e(n))??`unknown`)}function j(e,t){let n=T[A(t?.platform,t?.deviceFamily)]??T.unknown,r=e.gateway?.nodes?.allowCommands??[],i=new Set(e.gateway?.nodes?.denyCommands??[]),a=new Set([...n,...r].map(e=>e.trim()).filter(Boolean));for(let e of i){let t=e.trim();t&&a.delete(t)}return a}function M(e){let t=e.command.trim();if(!t)return{ok:!1,reason:`command required`};if(!e.allowlist.has(t))return{ok:!1,reason:`command not allowlisted`};if(Array.isArray(e.declaredCommands)&&e.declaredCommands.length>0){if(!e.declaredCommands.includes(t))return{ok:!1,reason:`command not declared by node`}}else return{ok:!1,reason:`node did not declare commands`};return{ok:!0}}export{M as n,j as r,w as t};
2
+ //# sourceMappingURL=node-command-policy-CejeQemH.js.map
@@ -1 +1,2 @@
1
1
  import{sn as e}from"./call-CqoMqP5b.js";import{i as t,r as n,t as r}from"./node-commands-8GBOiktk.js";const i=[`canvas.present`,`canvas.hide`,`canvas.navigate`,`canvas.eval`,`canvas.snapshot`,`canvas.a2ui.push`,`canvas.a2ui.pushJSONL`,`canvas.a2ui.reset`],a=[`camera.list`],o=[`camera.snap`,`camera.clip`],s=[`screen.record`],c=[`location.get`],l=[...[`notifications.list`],`notifications.actions`],u=[`device.info`,`device.status`],d=[...u,`device.permissions`,`device.health`],f=[`contacts.search`],p=[`contacts.add`],m=[`calendar.events`],h=[`calendar.add`],g=[`reminders.list`],_=[`reminders.add`],v=[`photos.latest`],y=[`motion.activity`,`motion.pedometer`],b=[`sms.send`],x=[n],S=[...t,n,r],C=[...i,...a,...c,n],w=[...o,...s,...p,...h,..._,...b],T={ios:[...i,...a,...c,...u,...f,...m,...g,...v,...y,...x],android:[...i,...a,...c,...l,n,...d,...f,...m,...g,...v,...y],macos:[...i,...a,...c,...u,...f,...m,...g,...v,...y,...S],linux:[...S],windows:[...S],unknown:[...C]},E=[{id:`ios`,prefixes:[`ios`]},{id:`android`,prefixes:[`android`]},{id:`macos`,prefixes:[`mac`,`darwin`]},{id:`windows`,prefixes:[`win`]},{id:`linux`,prefixes:[`linux`]}],D=[{id:`ios`,tokens:[`iphone`,`ipad`,`ios`]},{id:`android`,tokens:[`android`]},{id:`macos`,tokens:[`mac`]},{id:`windows`,tokens:[`windows`]},{id:`linux`,tokens:[`linux`]}];function O(e){for(let t of E)if(t.prefixes.some(t=>e.startsWith(t)))return t.id}function k(e){for(let t of D)if(t.tokens.some(t=>e.includes(t)))return t.id}function A(t,n){return O(e(t))||(k(e(n))??`unknown`)}function j(e,t){let n=T[A(t?.platform,t?.deviceFamily)]??T.unknown,r=e.gateway?.nodes?.allowCommands??[],i=new Set(e.gateway?.nodes?.denyCommands??[]),a=new Set([...n,...r].map(e=>e.trim()).filter(Boolean));for(let e of i){let t=e.trim();t&&a.delete(t)}return a}function M(e){let t=e.command.trim();if(!t)return{ok:!1,reason:`command required`};if(!e.allowlist.has(t))return{ok:!1,reason:`command not allowlisted`};if(Array.isArray(e.declaredCommands)&&e.declaredCommands.length>0){if(!e.declaredCommands.includes(t))return{ok:!1,reason:`command not declared by node`}}else return{ok:!1,reason:`node did not declare commands`};return{ok:!0}}export{M as n,j as r,w as t};
2
+ //# sourceMappingURL=node-command-policy-CqXhdnHh.js.map
@@ -1 +1,2 @@
1
1
  const e=[`system.run.prepare`,`system.run`,`system.which`],t=`system.notify`,n=`browser.proxy`,r=[`system.execApprovals.get`,`system.execApprovals.set`];export{e as i,r as n,t as r,n as t};
2
+ //# sourceMappingURL=node-commands-8GBOiktk.js.map
@@ -1 +1,2 @@
1
1
  const e=[`system.run.prepare`,`system.run`,`system.which`],t=`system.notify`,n=`browser.proxy`,r=[`system.execApprovals.get`,`system.execApprovals.set`];export{e as i,r as n,t as r,n as t};
2
+ //# sourceMappingURL=node-commands-DdkziOTx.js.map
@@ -1 +1,2 @@
1
1
  function e(e){return typeof e==`object`&&e?e:{}}function t(t){let n=e(t);return{pending:Array.isArray(n.pending)?n.pending:[],paired:Array.isArray(n.paired)?n.paired:[]}}function n(t){let n=e(t);return Array.isArray(n.nodes)?n.nodes:[]}function r(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)}function i(e){return e.map(e=>e.displayName||e.remoteIp||e.nodeId).filter(Boolean).join(`, `)}function a(e,t){let n=t.trim();if(!n)return[];let i=r(n);return e.filter(e=>{if(e.nodeId===n||typeof e.remoteIp==`string`&&e.remoteIp===n)return!0;let t=typeof e.displayName==`string`?e.displayName:``;return!!(t&&r(t)===i||n.length>=6&&e.nodeId.startsWith(n))})}function o(e,t){let n=t.trim();if(!n)throw Error(`node required`);let r=a(e,n);if(r.length===1)return r[0]?.nodeId??``;if(r.length===0){let t=i(e);throw Error(`unknown node: ${n}${t?` (known: ${t})`:``}`)}let o=r.filter(e=>e.connected===!0),s=o.length>0?o:r;if(s.length===1)return s[0]?.nodeId??``;throw Error(`ambiguous node: ${n} (matches: ${s.map(e=>e.displayName||e.remoteIp||e.nodeId).join(`, `)})`)}function s(e,t,n={}){let r=String(t??``).trim();if(!r){if(n.allowDefault===!0&&n.pickDefaultNode){let t=n.pickDefaultNode(e);if(t)return t.nodeId}throw Error(`node required`)}return o(e,r)}function c(e,t,n={}){let r=s(e,t,n);return e.find(e=>e.nodeId===r)??{nodeId:r}}export{t as i,s as n,n as r,c as t};
2
+ //# sourceMappingURL=node-resolve-B3BJbmQX.js.map
@@ -1 +1,2 @@
1
1
  function e(e){return typeof e==`object`&&e?e:{}}function t(t){let n=e(t);return{pending:Array.isArray(n.pending)?n.pending:[],paired:Array.isArray(n.paired)?n.paired:[]}}function n(t){let n=e(t);return Array.isArray(n.nodes)?n.nodes:[]}function r(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+/,``).replace(/-+$/,``)}function i(e){return e.map(e=>e.displayName||e.remoteIp||e.nodeId).filter(Boolean).join(`, `)}function a(e,t){let n=t.trim();if(!n)return[];let i=r(n);return e.filter(e=>{if(e.nodeId===n||typeof e.remoteIp==`string`&&e.remoteIp===n)return!0;let t=typeof e.displayName==`string`?e.displayName:``;return!!(t&&r(t)===i||n.length>=6&&e.nodeId.startsWith(n))})}function o(e,t){let n=t.trim();if(!n)throw Error(`node required`);let r=a(e,n);if(r.length===1)return r[0]?.nodeId??``;if(r.length===0){let t=i(e);throw Error(`unknown node: ${n}${t?` (known: ${t})`:``}`)}let o=r.filter(e=>e.connected===!0),s=o.length>0?o:r;if(s.length===1)return s[0]?.nodeId??``;throw Error(`ambiguous node: ${n} (matches: ${s.map(e=>e.displayName||e.remoteIp||e.nodeId).join(`, `)})`)}function s(e,t,n={}){let r=String(t??``).trim();if(!r){if(n.allowDefault===!0&&n.pickDefaultNode){let t=n.pickDefaultNode(e);if(t)return t.nodeId}throw Error(`node required`)}return o(e,r)}function c(e,t,n={}){let r=s(e,t,n);return e.find(e=>e.nodeId===r)??{nodeId:r}}export{t as i,s as n,n as r,c as t};
2
+ //# sourceMappingURL=node-resolve-DLZf3-1V.js.map
@@ -1 +1,2 @@
1
1
  import{_ as e,c as t,g as n,o as r,s as i,v as a}from"./arg-split-DE5RqDHq.js";import{n as o}from"./service-BtB9epJk.js";function s(o){return{...o,OPENCLAW_LAUNCHD_LABEL:n(),OPENCLAW_SYSTEMD_UNIT:e(),OPENCLAW_WINDOWS_TASK_NAME:a(),OPENCLAW_TASK_SCRIPT_NAME:t,OPENCLAW_LOG_PREFIX:`node`,OPENCLAW_SERVICE_MARKER:i,OPENCLAW_SERVICE_KIND:r}}function c(o){return{...o,env:s(o.env),environment:{...o.environment,OPENCLAW_LAUNCHD_LABEL:n(),OPENCLAW_SYSTEMD_UNIT:e(),OPENCLAW_WINDOWS_TASK_NAME:a(),OPENCLAW_TASK_SCRIPT_NAME:t,OPENCLAW_LOG_PREFIX:`node`,OPENCLAW_SERVICE_MARKER:i,OPENCLAW_SERVICE_KIND:r}}}function l(){let e=o();return{...e,install:async t=>e.install(c(t)),uninstall:async t=>e.uninstall({...t,env:s(t.env)}),stop:async t=>e.stop({...t,env:s(t.env??{})}),restart:async t=>e.restart({...t,env:s(t.env??{})}),isLoaded:async t=>e.isLoaded({env:s(t.env??{})}),readCommand:t=>e.readCommand(s(t)),readRuntime:t=>e.readRuntime(s(t))}}export{l as t};
2
+ //# sourceMappingURL=node-service-BRfrNp8l.js.map
@@ -1 +1,2 @@
1
1
  import{_ as e,c as t,g as n,o as r,s as i,v as a}from"./arg-split-BOqSMBuf.js";import{n as o}from"./service-DZ9EbS15.js";function s(o){return{...o,OPENCLAW_LAUNCHD_LABEL:n(),OPENCLAW_SYSTEMD_UNIT:e(),OPENCLAW_WINDOWS_TASK_NAME:a(),OPENCLAW_TASK_SCRIPT_NAME:t,OPENCLAW_LOG_PREFIX:`node`,OPENCLAW_SERVICE_MARKER:i,OPENCLAW_SERVICE_KIND:r}}function c(o){return{...o,env:s(o.env),environment:{...o.environment,OPENCLAW_LAUNCHD_LABEL:n(),OPENCLAW_SYSTEMD_UNIT:e(),OPENCLAW_WINDOWS_TASK_NAME:a(),OPENCLAW_TASK_SCRIPT_NAME:t,OPENCLAW_LOG_PREFIX:`node`,OPENCLAW_SERVICE_MARKER:i,OPENCLAW_SERVICE_KIND:r}}}function l(){let e=o();return{...e,install:async t=>e.install(c(t)),uninstall:async t=>e.uninstall({...t,env:s(t.env)}),stop:async t=>e.stop({...t,env:s(t.env??{})}),restart:async t=>e.restart({...t,env:s(t.env??{})}),isLoaded:async t=>e.isLoaded({env:s(t.env??{})}),readCommand:t=>e.readCommand(s(t)),readRuntime:t=>e.readRuntime(s(t))}}export{l as t};
2
+ //# sourceMappingURL=node-service-C0bl7jcZ.js.map
@@ -1 +1,2 @@
1
1
  import{H as e}from"./subsystem-BLbY429l.js";import{bi as t}from"./auth-profiles-T8DuH3ax.js";import{r as n}from"./command-format-CLxIPuLR.js";import{t as r}from"./fetch-guard-BrTtJw7h.js";import{c as i,l as a,n as o,o as s,t as c}from"./system-run-command-BKfMiqQM.js";import*as l from"node:path";import u from"node:path";import d from"node:fs";import*as f from"node:fs/promises";import{randomUUID as p}from"node:crypto";function m(e){return typeof e==`object`&&e?e:{}}function h(e){return typeof e==`string`?e:void 0}function g(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function _(e){return typeof e==`boolean`?e:void 0}function v(t){let n=t.tmpDir??e();return t.tmpDir||d.mkdirSync(n,{recursive:!0,mode:448}),{tmpDir:n,id:t.id??p(),ext:t.ext.startsWith(`.`)?t.ext:`.${t.ext}`}}const y=250*1024*1024;function b(e){let t=m(e),n=h(t.format),r=h(t.base64),i=h(t.url),a=g(t.width),o=g(t.height);if(!n||!r&&!i||a===void 0||o===void 0)throw Error(`invalid camera.snap payload`);return{format:n,...r?{base64:r}:{},...i?{url:i}:{},width:a,height:o}}function x(e){let t=m(e),n=h(t.format),r=h(t.base64),i=h(t.url),a=g(t.durationMs),o=_(t.hasAudio);if(!n||!r&&!i||a===void 0||o===void 0)throw Error(`invalid camera.clip payload`);return{format:n,...r?{base64:r}:{},...i?{url:i}:{},durationMs:a,hasAudio:o}}function S(e){let{tmpDir:t,id:r,ext:i}=v({tmpDir:e.tmpDir,id:e.id,ext:e.ext}),a=e.facing?`-${e.facing}`:``,o=n();return l.join(t,`${o}-camera-${e.kind}${a}-${r}${i}`)}async function C(e,n,i){let a=new URL(n);if(a.protocol!==`https:`)throw Error(`writeUrlToFile: only https URLs are allowed, got ${a.protocol}`);let o=t(i.expectedHost);if(!o)throw Error(`writeUrlToFile: expectedHost is required`);if(t(a.hostname)!==o)throw Error(`writeUrlToFile: url host ${a.hostname} must match node host ${i.expectedHost}`);let s={allowPrivateNetwork:!0,allowedHostnames:[o],hostnameAllowlist:[o]},c=async()=>{},l=0;try{let a=await r({url:n,auditContext:`writeUrlToFile`,policy:s});c=a.release;let u=new URL(a.finalUrl);if(u.protocol!==`https:`)throw Error(`writeUrlToFile: redirect resolved to non-https URL ${a.finalUrl}`);if(t(u.hostname)!==o)throw Error(`writeUrlToFile: redirect host ${u.hostname} must match node host ${i.expectedHost}`);let d=a.response;if(!d.ok)throw Error(`failed to download ${n}: ${d.status} ${d.statusText}`);let p=d.headers.get(`content-length`),m=p?Number.parseInt(p,10):void 0;if(typeof m==`number`&&Number.isFinite(m)&&m>y)throw Error(`writeUrlToFile: content-length ${m} exceeds max ${y}`);let h=d.body;if(!h)throw Error(`failed to download ${n}: empty response body`);let g=await f.open(e,`w`),_;try{let e=h.getReader();for(;;){let{done:t,value:n}=await e.read();if(t)break;if(!(!n||n.byteLength===0)){if(l+=n.byteLength,l>y)throw Error(`writeUrlToFile: downloaded ${l} bytes, exceeds max ${y}`);await g.write(n)}}}catch(e){_=e}finally{await g.close()}if(_)throw await f.unlink(e).catch(()=>{}),_}finally{await c()}return{path:e,bytes:l}}async function w(e,t){let n=Buffer.from(t,`base64`);return await f.writeFile(e,n),{path:e,bytes:n.length}}function T(e){let t=e?.trim();if(!t)throw Error(`camera URL payload requires node remoteIp`);return t}async function E(e){if(e.payload.url){await C(e.filePath,e.payload.url,{expectedHost:T(e.expectedHost)});return}if(e.payload.base64){await w(e.filePath,e.payload.base64);return}throw Error(e.invalidPayloadMessage??`invalid camera payload`)}async function D(e){let t=S({kind:`clip`,facing:e.facing,ext:e.payload.format,tmpDir:e.tmpDir,id:e.id});return await E({filePath:t,payload:e.payload,expectedHost:e.expectedHost,invalidPayloadMessage:`invalid camera.clip payload`}),t}function O(e){let t=m(e),n=h(t.format),r=h(t.base64);if(!n||!r)throw Error(`invalid canvas.snapshot payload`);return{format:n,base64:r}}function k(e){let{tmpDir:t,id:r,ext:i}=v(e),a=n();return l.join(t,`${a}-canvas-snapshot-${r}${i}`)}function A(e){if(!Array.isArray(e)||e.length===0)return;let t={};for(let n of e){if(typeof n!=`string`)continue;let e=n.indexOf(`=`);if(e<=0)continue;let r=n.slice(0,e).trim();r&&(t[r]=n.slice(e+1))}return Object.keys(t).length>0?t:void 0}function j(e){let t=m(e),n=h(t.format),r=h(t.base64);if(!n||!r)throw Error(`invalid screen.record payload`);return{format:n,base64:r,durationMs:typeof t.durationMs==`number`?t.durationMs:void 0,fps:typeof t.fps==`number`?t.fps:void 0,screenIndex:typeof t.screenIndex==`number`?t.screenIndex:void 0,hasAudio:typeof t.hasAudio==`boolean`?t.hasAudio:void 0}}function M(e){let{tmpDir:t,id:n,ext:r}=v(e);return l.join(t,`openclaw-screen-record-${n}${r}`)}async function N(e,t){return w(e,t)}function P(e){return typeof e==`string`?e:``}function F(e,t){let n=i(e);return!n||n===t?null:n}function I(e){if(!e||typeof e!=`object`||Array.isArray(e))return null;let t=e,n=s(t.plan);if(n)return{plan:n};if(!t.plan||typeof t.plan!=`object`||Array.isArray(t.plan))return null;let r=t.plan,o=a(r.argv),c=i(r.rawCommand)??i(t.commandText)??i(t.cmdText);return o.length===0||!c?null:{plan:{argv:o,cwd:i(r.cwd),commandText:c,commandPreview:i(r.commandPreview),agentId:i(r.agentId),sessionKey:i(r.sessionKey)}}}function L(e){let t=(i(e.host)??``)===`node`?s(e.systemRunPlan):null,n=a(e.commandArgv),r=P(e.command),o=t?t.commandText||c(t.argv):r,l=t?F(t.commandPreview??r,o):null,u=t?{...t,commandPreview:l}:null;return{plan:u,commandArgv:u?.argv??(n.length>0?n:void 0),commandText:o,commandPreview:l,cwd:u?.cwd??i(e.cwd),agentId:u?.agentId??i(e.agentId),sessionKey:u?.sessionKey??i(e.sessionKey)}}function R(e){let t=s(e.plan??null);if(t)return{ok:!0,plan:t,argv:[...t.argv],cwd:t.cwd,agentId:t.agentId,sessionKey:t.sessionKey,commandText:t.commandText};let n=o({command:e.command,rawCommand:e.rawCommand});return n.ok?{ok:!0,plan:null,argv:n.argv,cwd:i(e.cwd),agentId:i(e.agentId),sessionKey:i(e.sessionKey),commandText:n.commandText}:{ok:!1,message:n.message,details:n.details}}function z(e){if(`PATH`in e)return`PATH`;for(let t of Object.keys(e))if(t.toUpperCase()===`PATH`)return t;return`PATH`}function B(e){if(!Array.isArray(e))return[];let t=new Set,n=[];for(let r of e){if(typeof r!=`string`)continue;let e=r.trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}function V(e,t){if(t.length===0)return e;let n=(e??``).split(u.delimiter).map(e=>e.trim()).filter(Boolean),r=new Set(t);return[...t,...n.filter(e=>!r.has(e))].join(u.delimiter)}function H(e,t,n){if(!Array.isArray(t)||t.length===0)return;let r=z(e);if(n?.requireExisting&&!e[r])return;let i=V(e[r],t);i&&(e[r]=i)}function U(e,t){return String(t??``).trim().toLowerCase().startsWith(`win`)?[`cmd.exe`,`/d`,`/s`,`/c`,e]:[`/bin/sh`,`-lc`,e]}export{b as _,B as a,E as b,R as c,N as d,A as f,x as g,S as h,V as i,j as l,O as m,H as n,I as o,k as p,z as r,L as s,U as t,M as u,w as v,D as y};
2
+ //# sourceMappingURL=node-shell-DyOfwHrh.js.map
@@ -2,3 +2,4 @@ import{A as e,k as t,p as n}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_x
2
2
  `))})}),{timeoutMs:6e4}),R(t.command(`clip`).description(`Capture a short video clip from a node camera (prints MEDIA:<path>)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--facing <front|back>`,`Camera facing`,`front`).option(`--device-id <id>`,`Camera device id (from nodes camera list)`).option(`--duration <ms|10s|1m>`,`Duration (default 3000ms; supports ms/s/m, e.g. 10s)`,`3000`).option(`--no-audio`,`Disable audio capture`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 90000)`,`90000`).action(async e=>{await U(`camera clip`,async()=>{let t=await F(e,String(e.node??``)),r=t.nodeId,i=W(String(e.facing??`front`)),a=c(String(e.duration??`3000`)),o=e.audio!==!1,l=e.invokeTimeout?Number.parseInt(String(e.invokeTimeout),10):void 0,u=e.deviceId?String(e.deviceId).trim():void 0,d=await I(`node.invoke`,e,B({nodeId:r,command:`camera.clip`,params:{facing:i,durationMs:Number.isFinite(a)?a:void 0,includeAudio:o,format:`mp4`,deviceId:u||void 0},timeoutMs:l})),f=_((typeof d==`object`&&d?d:{}).payload),p=await ne({payload:f,facing:i,expectedHost:t.remoteIp});if(e.json){n.log(JSON.stringify({file:{facing:i,path:p,durationMs:f.durationMs,hasAudio:f.hasAudio}},null,2));return}n.log(`MEDIA:${s(p)}`)})}),{timeoutMs:9e4})}const K=[`beginRendering`,`surfaceUpdate`,`dataModelUpdate`,`deleteSurface`,`createSurface`];function q(e){let t=`main`,n=`root`,r=`text`;return[{surfaceUpdate:{surfaceId:t,components:[{id:n,component:{Column:{children:{explicitList:[r]}}}},{id:r,component:{Text:{text:{literalString:e},usageHint:`body`}}}]}},{beginRendering:{surfaceId:t,root:n}}].map(e=>JSON.stringify(e)).join(`
3
3
  `)}function se(e){let t=e.split(/\r?\n/),n=[],r=!1,i=!1,a=0;if(t.forEach((e,t)=>{let o=e.trim();if(!o)return;a+=1;let s;try{s=JSON.parse(o)}catch(e){n.push(`line ${t+1}: ${String(e)}`);return}if(!s||typeof s!=`object`||Array.isArray(s)){n.push(`line ${t+1}: expected JSON object`);return}let c=s,l=K.filter(e=>e in c);if(l.length!==1){n.push(`line ${t+1}: expected exactly one action key (${K.join(`, `)})`);return}l[0]===`createSurface`?i=!0:r=!0}),a===0&&n.push(`no JSONL messages found`),r&&i&&n.push(`mixed A2UI v0.8 and v0.9 messages in one file`),n.length>0)throw Error(`Invalid A2UI JSONL:\n- ${n.join(`
4
4
  - `)}`);return{version:i?`v0.9`:`v0.8`,messageCount:a}}async function J(e,t,n){let r=await P(e,String(e.node??``)),i=T(e.invokeTimeout);return await I(`node.invoke`,e,B({nodeId:r,command:t,params:n,timeoutMs:typeof i==`number`?i:void 0}))}function ce(e){let t=e.command(`canvas`).description(`Capture or render canvas content from a paired node`);R(t.command(`snapshot`).description(`Capture a canvas snapshot (prints MEDIA:<path>)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--format <png|jpg|jpeg>`,`Image format`,`jpg`).option(`--max-width <px>`,`Max width in px (optional)`).option(`--quality <0-1>`,`JPEG quality (optional)`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 20000)`,`20000`).action(async e=>{await U(`canvas snapshot`,async()=>{let t=String(e.format??`jpg`).trim().toLowerCase(),r=t===`jpg`||t===`jpeg`?`jpeg`:`png`;if(r!==`png`&&r!==`jpeg`)throw Error(`invalid format: ${String(e.format)} (expected png|jpg|jpeg)`);let i=e.maxWidth?Number.parseInt(String(e.maxWidth),10):void 0,a=e.quality?Number.parseFloat(String(e.quality)):void 0,o=await J(e,`canvas.snapshot`,{format:r,maxWidth:Number.isFinite(i)?i:void 0,quality:Number.isFinite(a)?a:void 0}),c=b((typeof o==`object`&&o?o:{}).payload),l=ee({ext:c.format===`jpeg`?`jpg`:c.format});if(await w(l,c.base64),e.json){n.log(JSON.stringify({file:{path:l,format:c.format}},null,2));return}n.log(`MEDIA:${s(l)}`)})}),{timeoutMs:6e4}),R(t.command(`present`).description(`Show the canvas (optionally with a target URL/path)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--target <urlOrPath>`,`Target URL/path (optional)`).option(`--x <px>`,`Placement x coordinate`).option(`--y <px>`,`Placement y coordinate`).option(`--width <px>`,`Placement width`).option(`--height <px>`,`Placement height`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms`).action(async e=>{await U(`canvas present`,async()=>{let t={x:e.x?Number.parseFloat(e.x):void 0,y:e.y?Number.parseFloat(e.y):void 0,width:e.width?Number.parseFloat(e.width):void 0,height:e.height?Number.parseFloat(e.height):void 0},r={};if(e.target&&(r.url=String(e.target)),(Number.isFinite(t.x)||Number.isFinite(t.y)||Number.isFinite(t.width)||Number.isFinite(t.height))&&(r.placement=t),await J(e,`canvas.present`,r),!e.json){let{ok:e}=H();n.log(e(`canvas present ok`))}})})),R(t.command(`hide`).description(`Hide the canvas`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms`).action(async e=>{await U(`canvas hide`,async()=>{if(await J(e,`canvas.hide`,void 0),!e.json){let{ok:e}=H();n.log(e(`canvas hide ok`))}})})),R(t.command(`navigate`).description(`Navigate the canvas to a URL`).argument(`<url>`,`Target URL/path`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms`).action(async(e,t)=>{await U(`canvas navigate`,async()=>{if(await J(t,`canvas.navigate`,{url:e}),!t.json){let{ok:e}=H();n.log(e(`canvas navigate ok`))}})})),R(t.command(`eval`).description(`Evaluate JavaScript in the canvas`).argument(`[js]`,`JavaScript to evaluate`).option(`--js <code>`,`JavaScript to evaluate`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms`).action(async(e,t)=>{await U(`canvas eval`,async()=>{let r=t.js??e;if(!r)throw Error(`missing --js or <js>`);let i=await J(t,`canvas.eval`,{javaScript:r});if(t.json){n.log(JSON.stringify(i,null,2));return}let a=typeof i==`object`&&i?i.payload:void 0;if(a?.result)n.log(a.result);else{let{ok:e}=H();n.log(e(`canvas eval ok`))}})}));let r=t.command(`a2ui`).description(`Render A2UI content on the canvas`);R(r.command(`push`).description(`Push A2UI JSONL to the canvas`).option(`--jsonl <path>`,`Path to JSONL payload`).option(`--text <text>`,`Render a quick A2UI text payload`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms`).action(async e=>{await U(`canvas a2ui push`,async()=>{let t=!!e.jsonl,r=typeof e.text==`string`;if(t===r)throw Error(`provide exactly one of --jsonl or --text`);let i=r?q(String(e.text??``)):await V.readFile(String(e.jsonl),`utf8`),{version:a,messageCount:o}=se(i);if(a===`v0.9`)throw Error(`Detected A2UI v0.9 JSONL (createSurface). OpenClaw currently supports v0.8 only.`);if(await J(e,`canvas.a2ui.pushJSONL`,{jsonl:i}),!e.json){let{ok:e}=H();n.log(e(`canvas a2ui push ok (v0.8, ${o} message${o===1?``:`s`})`))}})})),R(r.command(`reset`).description(`Reset A2UI renderer state`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms`).action(async e=>{await U(`canvas a2ui reset`,async()=>{if(await J(e,`canvas.a2ui.reset`,void 0),!e.json){let{ok:e}=H();n.log(e(`canvas a2ui reset ok`))}})}))}function le(e,t){let n=e?.tools?.exec;if(!t)return n?{security:n.security,ask:n.ask,node:n.node,pathPrepend:n.pathPrepend,safeBins:n.safeBins}:void 0;let r=a(e,t)?.tools?.exec;return{security:r?.security??n?.security,ask:r?.ask??n?.ask,node:r?.node??n?.node,pathPrepend:r?.pathPrepend??n?.pathPrepend,safeBins:r?.safeBins??n?.safeBins}}async function ue(e,t){try{let n=f(await I(`node.list`,e,{})).find(e=>e.nodeId===t);return typeof n?.platform==`string`?n.platform:null}catch{return null}}function de(e){let t=S(e);if(!t)throw Error(`invalid system.run.prepare response`);return t}function fe(e,t){let n=O(t?.security)??`allowlist`,r=O(e.security);if(e.security&&!r)throw Error(`invalid --security (use deny|allowlist|full)`);let i=A(t?.ask)??k().defaults?.ask??`on-miss`,a=A(e.ask);if(e.ask&&!a)throw Error(`invalid --ask (use off|on-miss|always)`);return{security:j(n,r??n),ask:D(i,a??i)}}async function pe(e){let t=g(e.opts.env),n=T(e.opts.commandTimeout),r=T(e.opts.invokeTimeout),i=Array.isArray(e.command)?e.command:[],a;if(e.raw){a=e.raw;let t=await ue(e.opts,e.nodeId);i=te(a,t??void 0)}let o=t?{...t}:void 0;return o&&x(o,e.execDefaults?.pathPrepend,{requireExisting:!0}),{prepared:de((await I(`node.invoke`,e.opts,{nodeId:e.nodeId,command:`system.run.prepare`,params:{command:i,rawCommand:a,cwd:e.opts.cwd,agentId:e.agentId},idempotencyKey:`prepare-${l()}`}))?.payload),nodeEnv:o,timeoutMs:n,invokeTimeout:r}}async function me(e){let t=await I(`exec.approvals.node.get`,e.opts,{nodeId:e.nodeId}),n=t&&typeof t==`object`?t.file:void 0;if(!n||typeof n!=`object`)throw Error(`exec approvals unavailable`);let r=ae({file:n,agentId:e.agentId,overrides:{security:e.security,ask:e.ask}});return{approvals:r,hostSecurity:j(e.security,r.agent.security),hostAsk:D(e.ask,r.agent.ask),askFallback:r.agent.askFallback}}async function he(e){let t=!1,n=null,r=null;if(!(e.hostAsk===`always`||e.hostAsk===`on-miss`))return{approvedByAsk:t,approvalDecision:n,approvalId:r};r=crypto.randomUUID();let i=oe,a=Math.max(T(e.opts.timeout)??0,i+1e4),o=await I(`exec.approval.request`,e.opts,{id:r,systemRunPlan:e.approvalPlan,cwd:e.approvalPlan.cwd,nodeId:e.nodeId,host:`node`,security:e.hostSecurity,ask:e.hostAsk,agentId:e.approvalPlan.agentId??e.agentId,resolvedPath:void 0,sessionKey:e.approvalPlan.sessionKey??void 0,timeoutMs:i},{transportTimeoutMs:a}),s=o&&typeof o==`object`?o.decision??null:null;if(s===`deny`)throw Error(`exec denied: user denied`);if(!s){if(e.askFallback===`full`)t=!0,n=`allow-once`;else if(e.askFallback!==`allowlist`)throw Error(`exec denied: approval required (approval UI not available)`)}return s===`allow-once`&&(t=!0,n=`allow-once`),s===`allow-always`&&(t=!0,n=`allow-always`),{approvedByAsk:t,approvalDecision:n,approvalId:r}}function ge(e){let t={nodeId:e.nodeId,command:`system.run`,params:{command:e.approvalPlan.argv,rawCommand:e.approvalPlan.commandText,cwd:e.approvalPlan.cwd,env:e.nodeEnv,timeoutMs:e.timeoutMs,needsScreenRecording:e.needsScreenRecording},idempotencyKey:String(e.idempotencyKey??l())};return(e.approvalPlan.agentId??e.fallbackAgentId)&&(t.params.agentId=e.approvalPlan.agentId??e.fallbackAgentId),e.approvalPlan.sessionKey&&(t.params.sessionKey=e.approvalPlan.sessionKey),t.params.approved=e.approvedByAsk,e.approvalDecision&&(t.params.approvalDecision=e.approvalDecision),e.approvedByAsk&&e.approvalId&&(t.params.runId=e.approvalId),e.invokeTimeout!==void 0&&(t.timeoutMs=e.invokeTimeout),t}function _e(e){R(e.command(`invoke`).description(`Invoke a command on a paired node`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).requiredOption(`--command <command>`,`Command (e.g. canvas.eval)`).option(`--params <json>`,`JSON object string for params`,`{}`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 15000)`,`15000`).option(`--idempotency-key <key>`,`Idempotency key (optional)`).action(async e=>{await U(`invoke`,async()=>{let t=await P(e,String(e.node??``)),r=String(e.command??``).trim();if(!t||!r){let{error:e}=H();n.error(e(`--node and --command required`)),n.exit(1);return}let i=JSON.parse(String(e.params??`{}`)),a=e.invokeTimeout?Number.parseInt(String(e.invokeTimeout),10):void 0,o={nodeId:t,command:r,params:i,idempotencyKey:String(e.idempotencyKey??l())};typeof a==`number`&&Number.isFinite(a)&&(o.timeoutMs=a);let s=await I(`node.invoke`,e,o);n.log(JSON.stringify(s,null,2))})}),{timeoutMs:3e4}),R(e.command(`run`).description(`Run a shell command on a node (mac only)`).option(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--cwd <path>`,`Working directory`).option(`--env <key=val>`,`Environment override (repeatable)`,(e,t=[])=>[...t,e]).option(`--raw <command>`,`Run a raw shell command string (sh -lc / cmd.exe /c)`).option(`--agent <id>`,`Agent id (default: configured default agent)`).option(`--ask <mode>`,`Exec ask mode (off|on-miss|always)`).option(`--security <mode>`,`Exec security mode (deny|allowlist|full)`).option(`--command-timeout <ms>`,`Command timeout (ms)`).option(`--needs-screen-recording`,`Require screen recording permission`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 30000)`,`30000`).argument(`[command...]`,`Command and args`).action(async(e,t)=>{await U(`run`,async()=>{let a=r(),o=t.agent?.trim()||i(a),s=le(a,o),c=typeof t.raw==`string`?t.raw.trim():``;if(c&&Array.isArray(e)&&e.length>0)throw Error(`use --raw or argv, not both`);if(!c&&(!Array.isArray(e)||e.length===0))throw Error(`command required`);let l=String(t.node??``).trim()||s?.node?.trim()||``;if(!l)throw Error(`node required (set --node or tools.exec.node)`);let u=await P(t,l),d=await pe({opts:t,command:e,raw:c,nodeId:u,agentId:o,execDefaults:s}),f=d.prepared.plan,p=fe(t,s),m=await me({opts:t,nodeId:u,agentId:o,security:p.security,ask:p.ask});if(m.hostSecurity===`deny`)throw Error(`exec denied: host=node security=deny`);let h=await he({opts:t,nodeId:u,agentId:o,approvalPlan:f,hostSecurity:m.hostSecurity,hostAsk:m.hostAsk,askFallback:m.askFallback}),g=await I(`node.invoke`,t,ge({nodeId:u,approvalPlan:f,nodeEnv:d.nodeEnv,timeoutMs:d.timeoutMs,invokeTimeout:d.invokeTimeout,approvedByAsk:h.approvedByAsk,approvalDecision:h.approvalDecision,approvalId:h.approvalId,idempotencyKey:t.idempotencyKey,fallbackAgentId:o,needsScreenRecording:t.needsScreenRecording===!0}));if(t.json){n.log(JSON.stringify(g,null,2));return}let _=typeof g==`object`&&g?g.payload:void 0,v=typeof _?.stdout==`string`?_.stdout:``,y=typeof _?.stderr==`string`?_.stderr:``,b=typeof _?.exitCode==`number`?_.exitCode:null,x=_?.timedOut===!0,S=_?.success===!0;if(v&&process.stdout.write(v),y&&process.stderr.write(y),x){let{error:e}=H();n.error(e(`run timed out`)),n.exit(1);return}if(b!==null&&b!==0){let e=L(`${y}\n${v}`);if(e){let{warn:t}=H();n.error(t(e))}}if(b!==null&&b!==0&&!S){let{error:e}=H();n.error(e(`run exit ${b}`)),n.exit(1);return}})}),{timeoutMs:35e3})}function ve(e){R(e.command(`location`).description(`Fetch location from a paired node`).command(`get`).description(`Fetch the current location from a node`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--max-age <ms>`,`Use cached location newer than this (ms)`).option(`--accuracy <coarse|balanced|precise>`,`Desired accuracy (default: balanced/precise depending on node setting)`).option(`--location-timeout <ms>`,`Location fix timeout (ms)`,`10000`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 20000)`,`20000`).action(async e=>{await U(`location get`,async()=>{let t=await P(e,String(e.node??``)),r=e.maxAge?Number.parseInt(String(e.maxAge),10):void 0,i=typeof e.accuracy==`string`?e.accuracy.trim().toLowerCase():void 0,a=i===`coarse`||i===`balanced`||i===`precise`?i:void 0,o=e.locationTimeout?Number.parseInt(String(e.locationTimeout),10):void 0,s=e.invokeTimeout?Number.parseInt(String(e.invokeTimeout),10):void 0,c={nodeId:t,command:`location.get`,params:{maxAgeMs:Number.isFinite(r)?r:void 0,desiredAccuracy:a,timeoutMs:Number.isFinite(o)?o:void 0},idempotencyKey:l()};typeof s==`number`&&Number.isFinite(s)&&(c.timeoutMs=s);let u=await I(`node.invoke`,e,c),d=typeof u==`object`&&u?u:{},f=d.payload&&typeof d.payload==`object`?d.payload:{};if(e.json){n.log(JSON.stringify(f,null,2));return}let p=f.lat,m=f.lon,h=f.accuracyMeters;if(typeof p==`number`&&typeof m==`number`){let e=typeof h==`number`?` ±${h.toFixed(1)}m`:``;n.log(`${p},${m}${e}`);return}n.log(JSON.stringify(f))})}),{timeoutMs:3e4})}function ye(e){R(e.command(`notify`).description(`Send a local notification on a node (mac only)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--title <text>`,`Notification title`).option(`--body <text>`,`Notification body`).option(`--sound <name>`,`Notification sound`).option(`--priority <passive|active|timeSensitive>`,`Notification priority`).option(`--delivery <system|overlay|auto>`,`Delivery mode`,`system`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 15000)`,`15000`).action(async e=>{await U(`notify`,async()=>{let t=await P(e,String(e.node??``)),r=String(e.title??``).trim(),i=String(e.body??``).trim();if(!r&&!i)throw Error(`missing --title or --body`);let a=e.invokeTimeout?Number.parseInt(String(e.invokeTimeout),10):void 0,o={nodeId:t,command:`system.notify`,params:{title:r,body:i,sound:e.sound,priority:e.priority,delivery:e.delivery},idempotencyKey:String(e.idempotencyKey??l())};typeof a==`number`&&Number.isFinite(a)&&(o.timeoutMs=a);let s=await I(`node.invoke`,e,o);if(e.json){n.log(JSON.stringify(s,null,2));return}let{ok:c}=H();n.log(c(`notify ok`))})}))}function Y(e){let{pending:t,now:n,tableWidth:r,theme:i}=e,a=t.map(e=>({Request:e.requestId,Node:e.displayName?.trim()?e.displayName.trim():e.nodeId,IP:e.remoteIp??``,Requested:typeof e.ts==`number`?u(Math.max(0,n-e.ts)):i.muted(`unknown`),Repair:e.isRepair?i.warn(`yes`):``}));return{heading:i.heading(`Pending`),table:M({width:r,columns:[{key:`Request`,header:`Request`,minWidth:8},{key:`Node`,header:`Node`,minWidth:14,flex:!0},{key:`IP`,header:`IP`,minWidth:10},{key:`Requested`,header:`Requested`,minWidth:12},{key:`Repair`,header:`Repair`,minWidth:6}],rows:a}).trimEnd()}}function X(e){R(e.command(`pending`).description(`List pending pairing requests`).action(async e=>{await U(`pending`,async()=>{let{pending:t}=d(await I(`node.pair.list`,e,{}));if(e.json){n.log(JSON.stringify(t,null,2));return}if(t.length===0){let{muted:e}=H();n.log(e(`No pending pairing requests.`));return}let{heading:r,warn:i,muted:a}=H(),o=N(),s=Y({pending:t,now:Date.now(),tableWidth:o,theme:{heading:r,warn:i,muted:a}});n.log(s.heading),n.log(s.table)})})),R(e.command(`approve`).description(`Approve a pending pairing request`).argument(`<requestId>`,`Pending request id`).action(async(e,t)=>{await U(`approve`,async()=>{let r=await I(`node.pair.approve`,t,{requestId:e});n.log(JSON.stringify(r,null,2))})})),R(e.command(`reject`).description(`Reject a pending pairing request`).argument(`<requestId>`,`Pending request id`).action(async(e,t)=>{await U(`reject`,async()=>{let r=await I(`node.pair.reject`,t,{requestId:e});n.log(JSON.stringify(r,null,2))})})),R(e.command(`rename`).description(`Rename a paired node (display name override)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).requiredOption(`--name <displayName>`,`New display name`).action(async e=>{await U(`rename`,async()=>{let t=await P(e,String(e.node??``)),r=String(e.name??``).trim();if(!t||!r){n.error(`--node and --name required`),n.exit(1);return}let i=await I(`node.rename`,e,{nodeId:t,displayName:r});if(e.json){n.log(JSON.stringify(i,null,2));return}let{ok:a}=H();n.log(a(`node rename ok: ${t} -> ${r}`))})}))}function be(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`sandbox`||t===`production`?t:null}function xe(e){R(e.command(`push`).description(`Send an APNs test push to an iOS node`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--title <text>`,`Push title`,`OpenClaw`).option(`--body <text>`,`Push body`).option(`--environment <sandbox|production>`,`Override APNs environment`).action(async e=>{await U(`push`,async()=>{let t=await P(e,String(e.node??``)),r=String(e.title??``).trim()||`OpenClaw`,i=String(e.body??``).trim()||`Push test for node ${t}`,a=be(e.environment);if(e.environment&&!a)throw Error(`invalid --environment (use sandbox|production)`);let o={nodeId:t,title:r,body:i};a&&(o.environment=a);let s=await I(`push.test`,e,o);if(e.json){n.log(JSON.stringify(s,null,2));return}let c=typeof s==`object`&&s?s:{},l=c.ok===!0,u=typeof c.status==`number`?c.status:0,d=typeof c.reason==`string`&&c.reason.trim().length>0?c.reason.trim():void 0,f=typeof c.environment==`string`&&c.environment.trim().length>0?c.environment.trim():`unknown`,{ok:p,error:m}=H(),h=l?p:m;n.log(h(`push.test status=${u} ok=${l} env=${f}`)),d&&n.log(`reason: ${d}`)})}),{timeoutMs:25e3})}function Se(e){R(e.command(`screen`).description(`Capture screen recordings from a paired node`).command(`record`).description(`Capture a short screen recording from a node (prints MEDIA:<path>)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).option(`--screen <index>`,`Screen index (0 = primary)`,`0`).option(`--duration <ms|10s>`,`Clip duration (ms or 10s)`,`10000`).option(`--fps <fps>`,`Frames per second`,`10`).option(`--no-audio`,`Disable microphone audio capture`).option(`--out <path>`,`Output path`).option(`--invoke-timeout <ms>`,`Node invoke timeout in ms (default 120000)`,`120000`).action(async e=>{await U(`screen record`,async()=>{let t=await P(e,String(e.node??``)),r=c(e.duration??``),i=Number.parseInt(String(e.screen??`0`),10),a=Number.parseFloat(String(e.fps??`10`)),o=e.invokeTimeout?Number.parseInt(String(e.invokeTimeout),10):void 0,l=await I(`node.invoke`,e,B({nodeId:t,command:`screen.record`,params:{durationMs:Number.isFinite(r)?r:void 0,screenIndex:Number.isFinite(i)?i:void 0,fps:Number.isFinite(a)?a:void 0,format:`mp4`,includeAudio:e.audio!==!1},timeoutMs:o})),u=y((typeof l==`object`&&l?l:{}).payload),d=await h(e.out??C({ext:u.format||`mp4`}),u.base64);if(e.json){n.log(JSON.stringify({file:{path:d.path,durationMs:u.durationMs,fps:u.fps,screenIndex:u.screenIndex,hasAudio:u.hasAudio}},null,2));return}n.log(`MEDIA:${s(d.path)}`)})}),{timeoutMs:18e4})}function Z(e){let t=e.trim();return t?t.toLowerCase().startsWith(`v`)?t:/^\d/.test(t)?`v${t}`:t:e}function Ce(e){let t=e.coreVersion?.trim()||void 0,n=e.uiVersion?.trim()||void 0;if(t||n)return{core:t,ui:n};let r=e.version?.trim();if(!r)return{core:void 0,ui:void 0};let i=e.platform?.trim().toLowerCase()??``;return i===`darwin`||i===`linux`||i===`win32`||i===`windows`?{core:r,ui:void 0}:{core:void 0,ui:r}}function Q(e){let{core:t,ui:n}=Ce(e),r=[];return t&&r.push(`core ${Z(t)}`),n&&r.push(`ui ${Z(n)}`),r.length>0?r.join(` · `):null}function we(e){if(typeof e!=`string`)return null;let t=e.trim();if(!t)return null;let n=t.split(`:`).filter(Boolean);return o(n.length<=3?t:`${n.slice(0,2).join(`:`)}:…:${n.slice(-1)[0]}`)}function $(e,t){if(e==null)return;let r=typeof e==`string`?e.trim():typeof e==`number`?String(e).trim():null;if(r===null){n.error(`${t}: invalid duration value`),n.exit(1);return}if(r)try{return c(r)}catch(e){let r=e instanceof Error?e.message:String(e);n.error(`${t}: ${r}`),n.exit(1);return}}function Te(e){R(e.command(`status`).description(`List known nodes with connection status and capabilities`).option(`--connected`,`Only show connected nodes`).option(`--last-connected <duration>`,`Only show nodes connected within duration (e.g. 24h)`).action(async e=>{await U(`status`,async()=>{let t=!!e.connected,r=$(e.lastConnected,`Invalid --last-connected`),i=await I(`node.list`,e,{}),a=typeof i==`object`&&i?i:{},{ok:o,warn:s,muted:c}=H(),l=N(),p=Date.now(),m=f(i),h=r===void 0?null:new Map(d(await I(`node.pair.list`,e,{})).paired.map(e=>[e.nodeId,e])),g=m.filter(e=>{if(t&&!e.connected)return!1;if(r!==void 0){let t=h?.get(e.nodeId),n=typeof t?.lastConnectedAtMs==`number`?t.lastConnectedAtMs:typeof e.connectedAtMs==`number`?e.connectedAtMs:void 0;if(typeof n!=`number`||p-n>r)return!1}return!0});if(e.json){let e=typeof a.ts==`number`?a.ts:Date.now();n.log(JSON.stringify({...a,ts:e,nodes:g},null,2));return}let _=g.filter(e=>!!e.paired).length,v=g.filter(e=>!!e.connected).length,y=g.length===m.length?``:` (of ${m.length})`;if(n.log(`Known: ${g.length}${y} · Paired: ${_} · Connected: ${v}`),g.length===0)return;let b=g.map(e=>{let t=e.displayName?.trim()?e.displayName.trim():e.nodeId,n=z(e.permissions),r=Q(e),i=we(e.pathEnv),a=[e.deviceFamily?`device: ${e.deviceFamily}`:null,e.modelIdentifier?`hw: ${e.modelIdentifier}`:null,n?`perms: ${n}`:null,r,i?`path: ${i}`:null].filter(Boolean),l=Array.isArray(e.caps)?e.caps.map(String).filter(Boolean).toSorted().join(`, `):`?`,d=e.paired?o(`paired`):s(`unpaired`),f=e.connected?o(`connected`):c(`disconnected`),m=typeof e.connectedAtMs==`number`?` (${u(Math.max(0,p-e.connectedAtMs))})`:``;return{Node:t,ID:e.nodeId,IP:e.remoteIp??``,Detail:a.join(` · `),Status:`${d} · ${f}${m}`,Caps:l}});n.log(M({width:l,columns:[{key:`Node`,header:`Node`,minWidth:14,flex:!0},{key:`ID`,header:`ID`,minWidth:10},{key:`IP`,header:`IP`,minWidth:10},{key:`Detail`,header:`Detail`,minWidth:18,flex:!0},{key:`Status`,header:`Status`,minWidth:18},{key:`Caps`,header:`Caps`,minWidth:12,flex:!0}],rows:b}).trimEnd())})})),R(e.command(`describe`).description(`Describe a node (capabilities + supported invoke commands)`).requiredOption(`--node <idOrNameOrIp>`,`Node id, name, or IP`).action(async e=>{await U(`describe`,async()=>{let t=await P(e,String(e.node??``)),r=await I(`node.describe`,e,{nodeId:t});if(e.json){n.log(JSON.stringify(r,null,2));return}let i=typeof r==`object`&&r?r:{},a=typeof i.displayName==`string`?i.displayName:t,o=!!i.connected,s=!!i.paired,c=Array.isArray(i.caps)?i.caps.map(String).filter(Boolean).toSorted():null,l=Array.isArray(i.commands)?i.commands.map(String).filter(Boolean).toSorted():[],u=z(i.permissions),d=typeof i.deviceFamily==`string`?i.deviceFamily:null,f=typeof i.modelIdentifier==`string`?i.modelIdentifier:null,p=typeof i.remoteIp==`string`?i.remoteIp:null,m=typeof i.pathEnv==`string`?i.pathEnv:null,h=Q(i),{heading:g,ok:_,warn:v,muted:y}=H(),b=`${s?_(`paired`):v(`unpaired`)} · ${o?_(`connected`):y(`disconnected`)}`,x=N(),S=[{Field:`ID`,Value:t},a?{Field:`Name`,Value:a}:null,p?{Field:`IP`,Value:p}:null,d?{Field:`Device`,Value:d}:null,f?{Field:`Model`,Value:f}:null,u?{Field:`Perms`,Value:u}:null,h?{Field:`Version`,Value:h}:null,m?{Field:`PATH`,Value:m}:null,{Field:`Status`,Value:b},{Field:`Caps`,Value:c?c.join(`, `):`?`}].filter(Boolean);if(n.log(g(`Node`)),n.log(M({width:x,columns:[{key:`Field`,header:`Field`,minWidth:8},{key:`Value`,header:`Value`,minWidth:24,flex:!0}],rows:S}).trimEnd()),n.log(``),n.log(g(`Commands`)),l.length===0){n.log(y(`- (none reported)`));return}for(let e of l)n.log(`- ${e}`)})})),R(e.command(`list`).description(`List pending and paired nodes`).option(`--connected`,`Only show connected nodes`).option(`--last-connected <duration>`,`Only show nodes connected within duration (e.g. 24h)`).action(async e=>{await U(`list`,async()=>{let t=!!e.connected,r=$(e.lastConnected,`Invalid --last-connected`),{pending:i,paired:a}=d(await I(`node.pair.list`,e,{})),{heading:o,muted:s,warn:c}=H(),l=N(),p=Date.now(),m=t||r!==void 0,h=m?[]:i,g=m?new Map(f(await I(`node.list`,e,{})).map(e=>[e.nodeId,e])):null,_=a.filter(e=>{if(t&&!g?.get(e.nodeId)?.connected)return!1;if(r!==void 0){let t=g?.get(e.nodeId),n=typeof e.lastConnectedAtMs==`number`?e.lastConnectedAtMs:typeof t?.connectedAtMs==`number`?t.connectedAtMs:void 0;if(typeof n!=`number`||p-n>r)return!1}return!0}),v=m&&_.length!==a.length?` (of ${a.length})`:``;if(n.log(`Pending: ${h.length} · Paired: ${_.length}${v}`),e.json){n.log(JSON.stringify({pending:h,paired:_},null,2));return}if(h.length>0){let e=Y({pending:h,now:p,tableWidth:l,theme:{heading:o,warn:c,muted:s}});n.log(``),n.log(e.heading),n.log(e.table)}if(_.length>0){let e=_.map(e=>{let t=g?.get(e.nodeId),n=typeof e.lastConnectedAtMs==`number`?e.lastConnectedAtMs:typeof t?.connectedAtMs==`number`?t.connectedAtMs:void 0;return{Node:e.displayName?.trim()?e.displayName.trim():e.nodeId,Id:e.nodeId,IP:e.remoteIp??``,LastConnect:typeof n==`number`?u(Math.max(0,p-n)):s(`unknown`)}});n.log(``),n.log(o(`Paired`)),n.log(M({width:l,columns:[{key:`Node`,header:`Node`,minWidth:14,flex:!0},{key:`Id`,header:`ID`,minWidth:10},{key:`IP`,header:`IP`,minWidth:10},{key:`LastConnect`,header:`Last Connect`,minWidth:14}],rows:e}).trimEnd())}})}))}function Ee(t){let n=t.command(`nodes`).description(`Manage gateway-owned nodes (pairing, status, invoke, and media)`).addHelpText(`after`,()=>`\n${e.heading(`Examples:`)}\n${ie([[`openclaw nodes status`,`List known nodes with live status.`],[`openclaw nodes pairing pending`,`Show pending node pairing requests.`],[`openclaw nodes run --node <id> --raw "uname -a"`,`Run a shell command on a node.`],[`openclaw nodes camera snap --node <id>`,`Capture a photo from a node camera.`]])}\n\n${e.muted(`Docs:`)} ${re(`/cli/nodes`,`docs.openclaw.ai/cli/nodes`)}\n`);Te(n),X(n),_e(n),ye(n),xe(n),ce(n),G(n),Se(n),ve(n)}export{Ee as registerNodesCli};
5
+ //# sourceMappingURL=nodes-cli-8By8--bW.js.map