@bitseek/claw 1.2.5 → 1.2.6

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 (308) hide show
  1. package/dist/{accounts-DKvlV3Tm.js → accounts-C3iwoWUS.js} +1 -1
  2. package/dist/{accounts-D5DQlttG.js → accounts-CCbfXe4Y.js} +7 -7
  3. package/dist/{accounts-jPPbCJns.js → accounts-ChjgDDok.js} +1 -1
  4. package/dist/{acp-cli-BZnPaFm3.js → acp-cli-DIikR-tj.js} +8 -8
  5. package/dist/{agent-scope-CiBV1K6b.js → agent-scope-DHMu2mab.js} +1 -1
  6. package/dist/{agents.config-DQBEXhzA.js → agents.config-BoNoGEQI.js} +2 -2
  7. package/dist/{api-key-rotation-j4O7qxMf.js → api-key-rotation-CuHjsofV.js} +1 -1
  8. package/dist/{audio-preflight-BkoTbTIH.js → audio-preflight-BClvbKMQ.js} +36 -36
  9. package/dist/{audio-preflight-Dd9DDvqB.js → audio-preflight-BWOdDA2n.js} +4 -4
  10. package/dist/{audio-transcription-runner-Bx53bUS2.js → audio-transcription-runner-DaoqvWoi.js} +1 -1
  11. package/dist/{audio-transcription-runner-CF_UP4C7.js → audio-transcription-runner-Dv-MCA8E.js} +22 -22
  12. package/dist/{audit-1YVlVmk7.js → audit-BAGbgihO.js} +29 -29
  13. package/dist/{auth-Co2g3d8d.js → auth-B9WdgDjZ.js} +1 -1
  14. package/dist/{auth-choice-CdsMUqKA.js → auth-choice-CTCXt7WB.js} +12 -12
  15. package/dist/{auth-choice-BamWYpsc.js → auth-choice-FFUrxk0-.js} +14 -14
  16. package/dist/{auth-choice.apply-helpers-CQLQ5Tuk.js → auth-choice.apply-helpers-Dz2x-3CK.js} +1 -1
  17. package/dist/{auth-token-BjVRLcvi.js → auth-token-BPWVp11S.js} +1 -1
  18. package/dist/{bindings-Ck6aotGf.js → bindings-C0k4wFy7.js} +1 -1
  19. package/dist/{bonjour-discovery-CtUQb94i.js → bonjour-discovery-DXvZeG8M.js} +1 -1
  20. package/dist/{browser-cli-CaBLM5A6.js → browser-cli-BwtSgIvC.js} +12 -12
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +6 -6
  23. package/dist/bundled/session-memory/handler.js +6 -6
  24. package/dist/{call-BGZQEHL4.js → call-B9Vrcbed.js} +10 -10
  25. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  26. package/dist/{channel-account-context-C6rIxLzo.js → channel-account-context-CeGx9Aq7.js} +5 -5
  27. package/dist/{channel-options-Bnnem_wD.js → channel-options-DmEaPgkZ.js} +3 -3
  28. package/dist/{channel-selection-TZJgoz5h.js → channel-selection-BDdjozhi.js} +1 -1
  29. package/dist/{channel-web-KY6EP9HT.js → channel-web-mFdbEE2o.js} +18 -18
  30. package/dist/{channels-cli-tJkvzsqO.js → channels-cli-CCTczoJM.js} +94 -94
  31. package/dist/{channels-status-issues-DeT1Znlx.js → channels-status-issues-Dir7g-Pc.js} +1 -1
  32. package/dist/{chrome-DzGCPEQK.js → chrome-2gfHr1cU.js} +4 -4
  33. package/dist/{chrome-C6zMSR36.js → chrome-CjTE-vWv.js} +8 -8
  34. package/dist/{clawbot-cli-Comysjn9.js → clawbot-cli-BMGBnmny.js} +5 -5
  35. package/dist/{cli-DOS1lPNs.js → cli-zsP2OqB6.js} +75 -75
  36. package/dist/{client-B91adiXh.js → client-BoUhzGrS.js} +2 -2
  37. package/dist/{command-registry-KxdBw74g.js → command-registry-okzYatr9.js} +4 -4
  38. package/dist/{commands-C6OLhl3n.js → commands-npgZubp3.js} +1 -1
  39. package/dist/{commands-registry-CVzTBX51.js → commands-registry-B5jHbfUL.js} +3 -3
  40. package/dist/{completion-cli-Cfp2m1Sy.js → completion-cli-BFxGdqak.js} +2 -2
  41. package/dist/{completion-cli-DU3T8Tur.js → completion-cli-Dm9dt8iw.js} +12 -12
  42. package/dist/{config-cli-DZpbwWvz.js → config-cli-CJVYN-g-.js} +7 -7
  43. package/dist/{config-guard-9BjlFVZx.js → config-guard-1SsvFO9G.js} +17 -17
  44. package/dist/{config-validation-BcxAhhcj.js → config-validation-BJ6PNk8H.js} +3 -3
  45. package/dist/{configure-CLMtWGiL.js → configure-DMwHaNHJ.js} +17 -17
  46. package/dist/{control-ui-assets-B_3g_YF0.js → control-ui-assets-DpInddpx.js} +1 -1
  47. package/dist/{cron-cli-C8kDGh6_.js → cron-cli-CyEcKgVG.js} +12 -12
  48. package/dist/{daemon-cli-RKWFtF-K.js → daemon-cli-CB9c5SXP.js} +15 -15
  49. package/dist/{daemon-install-DsJ0L8HP.js → daemon-install-Bqjc3wky.js} +4 -4
  50. package/dist/{daemon-install-helpers-CMWYg4_W.js → daemon-install-helpers-CGZBs-X3.js} +11 -11
  51. package/dist/{dashboard-BhAYjl6n.js → dashboard-8HFxt9IY.js} +2 -2
  52. package/dist/{deliver-Bn10XzRP.js → deliver-D4ugOkLr.js} +7 -7
  53. package/dist/{deliver-DXa06hfk.js → deliver-xY3h9X6N.js} +1 -1
  54. package/dist/{devices-cli-DoJBheGs.js → devices-cli-Bp8AMOPE.js} +8 -8
  55. package/dist/{diagnostic-DRPetA8l.js → diagnostic-phUWJbF_.js} +1 -1
  56. package/dist/{diagnostics-BHQgZbuI.js → diagnostics-D_AmByNE.js} +5 -5
  57. package/dist/{directory-cli-Brla3Idn.js → directory-cli-Bt3I30_e.js} +8 -8
  58. package/dist/{dns-cli-rEvE1LG9.js → dns-cli-DaTrsB61.js} +5 -5
  59. package/dist/{dock-BXksV3sC.js → dock-swzevZbj.js} +4 -4
  60. package/dist/{docs-cli-DtThi0Xf.js → docs-cli--2Qgcpvs.js} +4 -4
  61. package/dist/{doctor-completion-AraQfpv2.js → doctor-completion-UEYo4_U6.js} +2 -2
  62. package/dist/{doctor-completion-B6_JtN22.js → doctor-completion-wHIBxn-7.js} +1 -1
  63. package/dist/{doctor-config-flow-18ijj3KB.js → doctor-config-flow-DKaeaH2u.js} +15 -15
  64. package/dist/{enable-CJ75JA5u.js → enable-xlkWJvIn.js} +1 -1
  65. package/dist/entry.js +2 -2
  66. package/dist/{exec-approvals-allowlist-CGVHz3PX.js → exec-approvals-allowlist-fG-NsL-O.js} +1 -1
  67. package/dist/{exec-approvals-cli-DfcUJ9Sm.js → exec-approvals-cli-r7jbe_Rj.js} +16 -16
  68. package/dist/{exec-safe-bin-runtime-policy-D7olAQMf.js → exec-safe-bin-runtime-policy-B9kCrTY1.js} +2 -2
  69. package/dist/{fetch-guard-D6eclxeP.js → fetch-guard-N12H9lEe.js} +1 -1
  70. package/dist/{fs-safe-p5lyYI__.js → fs-safe-BGAE6eOQ.js} +24 -24
  71. package/dist/{gateway-cli-CX2HA_sy.js → gateway-cli-BFo0WvJx.js} +63 -9
  72. package/dist/{gateway-cli-C6G3qMkR.js → gateway-cli-Bi6tzv7v.js} +222 -168
  73. package/dist/{gateway-rpc-CJVCek88.js → gateway-rpc-BHBGSN7Z.js} +1 -1
  74. package/dist/{health-Du8dO3vn.js → health-DlFSsTw-.js} +14 -14
  75. package/dist/{hooks-cli-DUIQuGjr.js → hooks-cli-CMLpJr6I.js} +83 -83
  76. package/dist/{hooks-status-ONaKEpUH.js → hooks-status-inMD7sD-.js} +1 -1
  77. package/dist/{image-B270IRGo.js → image-BzR2twGI.js} +5 -5
  78. package/dist/{image-Dd4lgi4H.js → image-DCyaYY2d.js} +1 -1
  79. package/dist/{image-ops-BAMcbVMS.js → image-ops-B6BeXmZU.js} +10 -10
  80. package/dist/index.js +85 -85
  81. package/dist/{inspect-C0e0Dmvg.js → inspect-BwbOLUun.js} +4 -4
  82. package/dist/{install-safe-path-CSqVUjL8.js → install-safe-path-DodF6oyk.js} +25 -25
  83. package/dist/{installs-BXOZ3DXs.js → installs-8bzJi35e.js} +9 -9
  84. package/dist/{ipv4-Bk-doiEE.js → ipv4-BY_PmkpX.js} +1 -1
  85. package/dist/{ir-BGgl4f9u.js → ir-vGBxQkIg.js} +6 -6
  86. package/dist/{issue-format-rk9Vpcxd.js → issue-format-B4oxePhU.js} +1 -1
  87. package/dist/{json-files-bJqSYqgg.js → json-files-C7p5SEie.js} +8 -8
  88. package/dist/{lifecycle-core-Bqse41aA.js → lifecycle-core-C5a4clqu.js} +5 -5
  89. package/dist/llm-slug-generator.js +6 -6
  90. package/dist/{local-roots-jW0nhxVT.js → local-roots-Dcc5UeD8.js} +3 -3
  91. package/dist/{login-B2B75WGK.js → login-BM9p9nig.js} +3 -3
  92. package/dist/{login-qr-YjUycQZT.js → login-qr-CB4JWkHM.js} +6 -6
  93. package/dist/{logs-cli-Dyid6hUQ.js → logs-cli-DGdXLEv-.js} +9 -9
  94. package/dist/{manager-C9rftBaE.js → manager-X8AF3rQJ.js} +14 -14
  95. package/dist/{manifest-registry-B_U2pKBU.js → manifest-registry-HNrtHxxI.js} +1 -1
  96. package/dist/{markdown-tables-B5l_33qL.js → markdown-tables-XmfG1bwr.js} +1 -1
  97. package/dist/{memory-cli-o3L9NN74.js → memory-cli-87nxADqy.js} +12 -12
  98. package/dist/{model-FnrgCVyS.js → model-CESXYutI.js} +2 -2
  99. package/dist/{model-catalog-CjA5pRJF.js → model-catalog-DUHxH2xb.js} +3 -3
  100. package/dist/{model-picker-CMgjcqV_.js → model-picker-D705WMPf.js} +4 -4
  101. package/dist/{model-selection-xdfZxwgB.js → model-selection-DCo8MhsE.js} +16 -16
  102. package/dist/{models-cli-CHUbcM_y.js → models-cli-9x2mp4Ac.js} +85 -85
  103. package/dist/{models-config-Do1Ur_ov.js → models-config-Bgpjcu8R.js} +6 -6
  104. package/dist/{node-cli-DYOdgLUu.js → node-cli-DJnihsNr.js} +33 -33
  105. package/dist/{node-command-policy-BKUs_pS2.js → node-command-policy-BiPTB8BK.js} +1 -1
  106. package/dist/{node-service-6W3vqgVv.js → node-service-CfKJ5oC1.js} +1 -1
  107. package/dist/{nodes-cli-CQzck2kc.js → nodes-cli-4kBrEEti.js} +16 -16
  108. package/dist/{nodes-screen-Dptoharj.js → nodes-screen-FWjD2j3v.js} +7 -7
  109. package/dist/{npm-pack-install-Byr0kgft.js → npm-pack-install-CXheGnb0.js} +18 -18
  110. package/dist/{npm-resolution-Dv7nYiaP.js → npm-resolution-DIr_TibO.js} +5 -5
  111. package/dist/{onboard-D66uwNCb.js → onboard-B_MoYnrn.js} +1 -1
  112. package/dist/{onboard-DcI-IxL0.js → onboard-DEFQu6dU.js} +6 -6
  113. package/dist/{onboard-channels-CRpmgX82.js → onboard-channels-BuG5-e60.js} +20 -20
  114. package/dist/{onboard-custom-Bow6lZPm.js → onboard-custom-HI7NPx1u.js} +3 -3
  115. package/dist/{onboard-custom.shared-CBRRhb95.js → onboard-custom.shared-SWx67Er2.js} +2 -2
  116. package/dist/{onboard-helpers-B1AEo6oL.js → onboard-helpers-Jc1-4LBc.js} +11 -11
  117. package/dist/{onboard-hooks-CtxRk6l_.js → onboard-hooks-DFjIpeE_.js} +4 -4
  118. package/dist/{onboard-remote-DmHpLoWf.js → onboard-remote-BLAyUeAO.js} +3 -3
  119. package/dist/{onboard-skills-DwpZY5tZ.js → onboard-skills--XkA2Jj4.js} +4 -4
  120. package/dist/{onboarding-Dae6N665.js → onboarding-BQ2WB7tp.js} +13 -13
  121. package/dist/{onboarding-CZCgESNI.js → onboarding-CSnr51pR.js} +1 -1
  122. package/dist/{onboarding.finalize-B8nYvA0i.js → onboarding.finalize-BlMlIFRW.js} +4 -4
  123. package/dist/{onboarding.finalize-ANKeWCQe.js → onboarding.finalize-DAbr5Ar8.js} +87 -87
  124. package/dist/{onboarding.gateway-config-wXH6gE7c.js → onboarding.gateway-config-CMKjEPRA.js} +18 -18
  125. package/dist/{openai-model-default-Q7Hmy0eQ.js → openai-model-default-BTNz1OzV.js} +2 -2
  126. package/dist/{outbound-DlVJWa4u.js → outbound-Bf7VAx0-.js} +4 -4
  127. package/dist/{outbound-attachment-CZh4VjhT.js → outbound-attachment-Df5o7JIG.js} +2 -2
  128. package/dist/{pairing-cli-DAMLvDcA.js → pairing-cli-CA7Dxs-g.js} +9 -9
  129. package/dist/{pairing-labels-Cl7ROILg.js → pairing-labels-BBti3jJg.js} +1 -1
  130. package/dist/{pairing-store-DdZ0xMD7.js → pairing-store-DY0yrkuM.js} +3 -3
  131. package/dist/{path-alias-guards-DWh6tSaP.js → path-alias-guards-BNzjbOwM.js} +3 -3
  132. package/dist/{path-safety-COhgvniC.js → path-safety-dmCI2tpN.js} +1 -1
  133. package/dist/{paths-AxolTUEH.js → paths-BZfURxkW.js} +9 -9
  134. package/dist/{pi-embedded-DKX65Hec.js → pi-embedded-Bacc2S0h.js} +22 -22
  135. package/dist/{pi-embedded-helpers-BErNo2oq.js → pi-embedded-helpers-CMTVhLjq.js} +3 -3
  136. package/dist/{pi-embedded-helpers-ZTn-T7tW.js → pi-embedded-helpers-D3nc5XJW.js} +6 -6
  137. package/dist/{pi-model-discovery-DVhDvAnA.js → pi-model-discovery-BSytrsu4.js} +1 -1
  138. package/dist/{pi-tools.policy-eyXj0EY5.js → pi-tools.policy-Dwsq-Yaf.js} +5 -5
  139. package/dist/{plugin-auto-enable-D1WySsnE.js → plugin-auto-enable-4zXn-eVS.js} +3 -3
  140. package/dist/{plugin-registry-TOEmbMc4.js → plugin-registry-DsZTkNKu.js} +3 -3
  141. package/dist/plugin-sdk/{accounts-COLYAAOx.js → accounts-4WE2wtsW.js} +1 -1
  142. package/dist/plugin-sdk/{accounts-BZrkOo6-.js → accounts-AbI8uETR.js} +1 -1
  143. package/dist/plugin-sdk/{accounts-D_pT5EjF.js → accounts-BYcizTXn.js} +3 -3
  144. package/dist/plugin-sdk/{active-listener-DxBXcWm_.js → active-listener-pnqLAUOh.js} +1 -1
  145. package/dist/plugin-sdk/{agent-scope-DT5pxpJB.js → agent-scope-_j3fIYCK.js} +3 -3
  146. package/dist/plugin-sdk/{api-key-rotation-Dl6Ad7Nj.js → api-key-rotation-CYI51U_M.js} +2 -2
  147. package/dist/plugin-sdk/{audio-preflight-CkPj4OVY.js → audio-preflight-BTRRjPew.js} +33 -33
  148. package/dist/plugin-sdk/{audio-transcription-runner-BBn9jEMg.js → audio-transcription-runner-DFZS7uCO.js} +10 -10
  149. package/dist/plugin-sdk/{bindings-BSfhEjKN.js → bindings-CxxzC7gn.js} +2 -2
  150. package/dist/plugin-sdk/{channel-activity-DAEbma-o.js → channel-activity-B3yZ-f-m.js} +3 -3
  151. package/dist/plugin-sdk/{channel-web-O79O_ah6.js → channel-web-D2q54sK-.js} +23 -23
  152. package/dist/plugin-sdk/{chrome-Dn0G4NoF.js → chrome-oPevdeh5.js} +7 -7
  153. package/dist/plugin-sdk/{chunk-cvtXztAT.js → chunk-BPyPeheZ.js} +1 -1
  154. package/dist/plugin-sdk/{command-format-BOJz3y1v.js → command-format-DvyMEXQo.js} +1 -1
  155. package/dist/plugin-sdk/{commands-registry-CZWv_JwZ.js → commands-registry-Dk8re8Lz.js} +5 -5
  156. package/dist/plugin-sdk/{config-DAwOhnVF.js → config-D7I2_X4P.js} +10 -10
  157. package/dist/plugin-sdk/{deliver-PdH-MCq8.js → deliver-NrIHn0__.js} +11 -11
  158. package/dist/plugin-sdk/{diagnostic-BZvj-qNu.js → diagnostic-DL3k_wRi.js} +2 -2
  159. package/dist/plugin-sdk/{dock-BdR3OYZn.js → dock-CjdkiLH7.js} +6 -6
  160. package/dist/plugin-sdk/{errors-jusxdu7M.js → errors-DFTN4h2I.js} +1 -1
  161. package/dist/plugin-sdk/{fetch-guard-Dary6WwJ.js → fetch-guard-BivEyA4v.js} +2 -2
  162. package/dist/plugin-sdk/{fs-safe-DMCE0ej9.js → fs-safe-B256n7Ff.js} +3 -3
  163. package/dist/plugin-sdk/{image-B3A2l2ep.js → image-CkPzr3XN.js} +6 -6
  164. package/dist/plugin-sdk/{image-ops-DulHE5Qc.js → image-ops-C9GXWF3o.js} +1 -1
  165. package/dist/plugin-sdk/index.js +64 -64
  166. package/dist/plugin-sdk/{ir-BFXiJrsN.js → ir-BIm-jvIK.js} +6 -6
  167. package/dist/plugin-sdk/{local-roots-DssN60r6.js → local-roots-2AOXGUXW.js} +4 -4
  168. package/dist/plugin-sdk/{logger-Cr-x0vMf.js → logger-CNhs9eKJ.js} +1 -1
  169. package/dist/plugin-sdk/{login-D0ul3-6C.js → login-BcLiF9tC.js} +6 -6
  170. package/dist/plugin-sdk/{login-qr-XWKTFBuI.js → login-qr-GyPUodKJ.js} +9 -9
  171. package/dist/plugin-sdk/{manager-DGx_cF54.js → manager-DYLqNUb4.js} +10 -10
  172. package/dist/plugin-sdk/{markdown-tables-CsQpDNU5.js → markdown-tables-D9mmqMKi.js} +1 -1
  173. package/dist/plugin-sdk/{message-channel-CvNq-esz.js → message-channel-_CEZcqxE.js} +1 -1
  174. package/dist/plugin-sdk/{outbound-D29FHlQl.js → outbound-DdTsUaXa.js} +7 -7
  175. package/dist/plugin-sdk/{outbound-attachment-DRHrZUOx.js → outbound-attachment--hkuIDR1.js} +2 -2
  176. package/dist/plugin-sdk/{path-alias-guards-DpKV1B5p.js → path-alias-guards-BqUCBfUg.js} +1 -1
  177. package/dist/plugin-sdk/{pi-embedded-helpers-CKEUWckk.js → pi-embedded-helpers-CTfvZz83.js} +17 -17
  178. package/dist/plugin-sdk/{pi-model-discovery-BPeQq9XM.js → pi-model-discovery-CK3Ih_kq.js} +1 -1
  179. package/dist/plugin-sdk/{plugins-DF_dKXTR.js → plugins-BpHAMNJ1.js} +6 -6
  180. package/dist/plugin-sdk/{proxy-BfmEDoun.js → proxy-BJdRZOnJ.js} +1 -1
  181. package/dist/plugin-sdk/{proxy-fetch-BpHIgvBk.js → proxy-fetch-jmbopGcm.js} +1 -1
  182. package/dist/plugin-sdk/{pw-ai-BmmXDjtm.js → pw-ai-D0Kx7w1D.js} +13 -13
  183. package/dist/plugin-sdk/{qmd-manager-3hQbqkm5.js → qmd-manager-BDcutPp9.js} +8 -8
  184. package/dist/plugin-sdk/{query-expansion-BOGLUWB7.js → query-expansion-C_X8SyEA.js} +2 -2
  185. package/dist/plugin-sdk/{redact-BOuKZWXa.js → redact-DH8u23pF.js} +1 -1
  186. package/dist/plugin-sdk/{registry-Cv-oHUj1.js → registry-HF8_S7QO.js} +2 -2
  187. package/dist/plugin-sdk/{replies-CddwWBTJ.js → replies-DbjvV4gf.js} +3 -3
  188. package/dist/plugin-sdk/{reply-YZQvouuF.js → reply-Cs_Ks2Mr.js} +93 -93
  189. package/dist/plugin-sdk/{reply-prefix-DXthVxCx.js → reply-prefix-KODsMNJ-.js} +1 -1
  190. package/dist/plugin-sdk/{resolve-outbound-target-D3Y4F2Le.js → resolve-outbound-target-BPT4aNiD.js} +2 -2
  191. package/dist/plugin-sdk/{resolve-route-DuwYYn4a.js → resolve-route-De2B5QY_.js} +4 -4
  192. package/dist/plugin-sdk/{retry-BMcrIz7L.js → retry-pZ8iKytf.js} +1 -1
  193. package/dist/plugin-sdk/{send-D0AaWnIj.js → send-1uW-uqPf.js} +7 -7
  194. package/dist/plugin-sdk/{send-C5USYGq7.js → send-BoNw1Bki.js} +8 -8
  195. package/dist/plugin-sdk/{send-B0ztz6QC.js → send-C-Rd2stz.js} +6 -6
  196. package/dist/plugin-sdk/{send-DJzwu8kk.js → send-CZIN8SDx.js} +15 -15
  197. package/dist/plugin-sdk/{send-DEyQJTzd.js → send-wCqsQs_s.js} +10 -10
  198. package/dist/plugin-sdk/{session-meta-ChWvKVWj.js → session-meta-7J-uHiM_.js} +1 -1
  199. package/dist/plugin-sdk/{session-BA7tVDpV.js → session-ooYcB82T.js} +5 -5
  200. package/dist/plugin-sdk/{sessions-BXps6YzJ.js → sessions-lAIo5l8W.js} +6 -6
  201. package/dist/plugin-sdk/{skill-commands-B20uUsji.js → skill-commands-D1Q6hGS4.js} +5 -5
  202. package/dist/plugin-sdk/{skills-DXOTei42.js → skills-BWSDv2F_.js} +8 -8
  203. package/dist/plugin-sdk/{ssrf-Doxv9M7Q.js → ssrf-JKDwTi8i.js} +1 -1
  204. package/dist/plugin-sdk/{store-BZbE1V-C.js → store-BMeqzQAf.js} +2 -2
  205. package/dist/plugin-sdk/{subsystem-CM1s2lDT.js → subsystem-B0V8LFBA.js} +2 -2
  206. package/dist/plugin-sdk/{tables-BhH8EIqU.js → tables-DCSeBGBz.js} +1 -1
  207. package/dist/{target-errors-B1cYmIjq.js → plugin-sdk/target-errors-0u6pegQv.js} +2 -2
  208. package/dist/plugin-sdk/{tokens-DIE-Bf72.js → tokens-DF2_VTJy.js} +1 -1
  209. package/dist/plugin-sdk/{tool-images-heXfaJdb.js → tool-images-BbsgbHMZ.js} +2 -2
  210. package/dist/plugin-sdk/{tool-loop-detection-CygMSQUK.js → tool-loop-detection-JkCpGrfk.js} +2 -2
  211. package/dist/plugin-sdk/{utils-BcL6KGZf.js → utils-BfVxx6bk.js} +1 -1
  212. package/dist/plugin-sdk/web-B35hdNQ-.js +72 -0
  213. package/dist/plugin-sdk/{whatsapp-actions-CRean1yN.js → whatsapp-actions-tVcrGNQc.js} +25 -25
  214. package/dist/{plugins-CKWxMohB.js → plugins-Ce8ThYGQ.js} +2 -2
  215. package/dist/{plugins-cli-Clo_uyvq.js → plugins-cli-DxFh5OQi.js} +85 -85
  216. package/dist/{ports-DppAHKM-.js → ports-DXMCFRgn.js} +2 -2
  217. package/dist/{ports-BL-FP2jP.js → ports-wtEwdqsX.js} +1 -1
  218. package/dist/{program-DSOHn27G.js → program-DnjsZxiJ.js} +2 -2
  219. package/dist/{program-context-DfYJPL5N.js → program-context-36wFBslW.js} +43 -43
  220. package/dist/{prompt-select-styled-DG7woZ0E.js → prompt-select-styled-BkpL6eKQ.js} +1 -1
  221. package/dist/{prompt-select-styled-B2izefsj.js → prompt-select-styled-CJt-zhnt.js} +39 -39
  222. package/dist/{provider-auth-helpers-D_akOb8A.js → provider-auth-helpers-DeJ105rb.js} +5 -5
  223. package/dist/{proxy-env-ClbXa7vn.js → proxy-env-DhFUQlwP.js} +1 -1
  224. package/dist/{push-apns-DvNRo3EQ.js → push-apns-SIM2es-Y.js} +5 -5
  225. package/dist/{pw-ai-D21rIJ2z.js → pw-ai-BOQE6s45.js} +15 -15
  226. package/dist/{pw-ai-pkfCxzhV.js → pw-ai-DGwA7iCM.js} +1 -1
  227. package/dist/{qmd-manager-BD6lfN35.js → qmd-manager-DVKj0i6T.js} +20 -20
  228. package/dist/{qr-cli-BQGJJ5hp.js → qr-cli-Z4_Y6bva.js} +1 -1
  229. package/dist/{query-expansion-Dl85zpSb.js → query-expansion-B9kneDbd.js} +12 -12
  230. package/dist/{redact-snapshot-DCGL0k2M.js → redact-snapshot-BI4Ryuhy.js} +1 -1
  231. package/dist/{register.agent-DowGjvNc.js → register.agent-Cd2LVcga.js} +100 -100
  232. package/dist/register.configure-DGIWBQvN.js +174 -0
  233. package/dist/{register.init-DWQDniBg.js → register.init-DpFUY5Ed.js} +15 -15
  234. package/dist/{register.maintenance-DyTduYA4.js → register.maintenance-DAU-mVIz.js} +97 -97
  235. package/dist/{register.maintenance-CQivhR8Y.js → register.maintenance-R4RCi4f3.js} +5 -5
  236. package/dist/{register.message-DE-eKss6.js → register.message-B0CI0Q4o.js} +76 -76
  237. package/dist/{register.onboard-CWX2zarB.js → register.onboard-BGhXUfbX.js} +18 -18
  238. package/dist/{register.onboard-BRBPNENF.js → register.onboard-Di7iClKl.js} +2 -2
  239. package/dist/{register.setup-YcxKWN94.js → register.setup-Dm_dHAB-.js} +2 -2
  240. package/dist/{register.setup-DwZL0RXc.js → register.setup-nlXy06aa.js} +21 -21
  241. package/dist/{register.start-BHASi8Um.js → register.start-Dzss99ZY.js} +17 -17
  242. package/dist/{register.status-health-sessions-Cbva8fTK.js → register.status-health-sessions-B4eNiGWS.js} +89 -89
  243. package/dist/{register.subclis-CEq4Db2Q.js → register.subclis-1MobNhis.js} +3 -3
  244. package/dist/{replies-B6SXcEs0.js → replies-k5K96_46.js} +1 -1
  245. package/dist/{reply-D8Yu6-Ie.js → reply-DQMWsIE2.js} +156 -156
  246. package/dist/{reply-prefix-BttpF8VB.js → reply-prefix-aBvAQX6L.js} +1 -1
  247. package/dist/{resolve-route-Ck23oGqS.js → resolve-route-R565qQgt.js} +2 -2
  248. package/dist/{rpc-9jE_1PW0.js → rpc-CMyUzpcT.js} +1 -1
  249. package/dist/{run-main-BoenTqTz.js → run-main-CFGtfsPd.js} +3 -3
  250. package/dist/{runtime-Rd7ooKB0.js → runtime-D64ACWoX.js} +2 -2
  251. package/dist/{sandbox-BKa5RrBl.js → sandbox-DH9YtUfB.js} +18 -18
  252. package/dist/{sandbox-cli-BnpEc205.js → sandbox-cli-B1ThXy7C.js} +26 -26
  253. package/dist/{secrets-cli-CIxUNZyC.js → secrets-cli-BEjJ3GP-.js} +10 -10
  254. package/dist/{security-cli-BqOOeGxS.js → security-cli-Zma5k5BZ.js} +43 -43
  255. package/dist/{send-DuNBSJln.js → send-BQVNhO4Q.js} +5 -5
  256. package/dist/{send-SZBhACLn.js → send-CFUSH9C-.js} +8 -8
  257. package/dist/{send-Cua2kS5v.js → send-CabiU1-J.js} +6 -6
  258. package/dist/{send-ByUfPpKj.js → send-DmVTXBWW.js} +11 -11
  259. package/dist/{send-BntubUtK.js → send-NexNe2Wh.js} +6 -6
  260. package/dist/{server-Ct0J5VXf.js → server-DQ7D-B-v.js} +19 -19
  261. package/dist/{server-context-DWxmyV-0.js → server-context-Cr-Y4i6P.js} +12 -12
  262. package/dist/{server-lifecycle-B7aXKxY3.js → server-lifecycle-BVnXIEfI.js} +2 -2
  263. package/dist/{server-middleware-CO1brrgv.js → server-middleware-zyvA9rl9.js} +1 -1
  264. package/dist/{server-node-events-nakjzVDn.js → server-node-events-oa4mOmsp.js} +76 -76
  265. package/dist/{service-DqxfCr8y.js → service-BcFhE63y.js} +15 -15
  266. package/dist/{session-FOGqE7bj.js → session-Dl3x3d75.js} +1 -1
  267. package/dist/{session-meta-C-ox3bdI.js → session-meta-C6MooccR.js} +1 -1
  268. package/dist/{sessions-BpuJ64B0.js → sessions-sIaYsUyX.js} +15 -15
  269. package/dist/{shared-CgFPGTLU.js → shared-DNcLp2mA.js} +3 -3
  270. package/dist/{shared-BmSv3K8N.js → shared-sFrejcA4.js} +1 -1
  271. package/dist/{skill-commands-COl0HE54.js → skill-commands-C2_BOuyl.js} +5 -5
  272. package/dist/{skill-scanner-CsmM5F4F.js → skill-scanner-DYkQAh0l.js} +6 -6
  273. package/dist/{skills-BeFcXCoN.js → skills-BXLKd7i5.js} +3 -3
  274. package/dist/{skills-cli-D3ZteX5N.js → skills-cli-DrN4v5_m.js} +5 -5
  275. package/dist/{skills-install-B_Vda3dM.js → skills-install-CSfh8nRm.js} +6 -6
  276. package/dist/{skills-status-BEq0_fOn.js → skills-status-C7Q6Ezbv.js} +1 -1
  277. package/dist/{status-CQYA6EJN.js → status-rMgdZcE5.js} +25 -25
  278. package/dist/{status.update-HwSPC5ZX.js → status.update-D4GfnNDI.js} +2 -2
  279. package/dist/{store-B-nkOSsv.js → store-CRcBie8T.js} +5 -5
  280. package/dist/{system-cli-IYwpBiC6.js → system-cli-Bscj57lL.js} +9 -9
  281. package/dist/{system-run-command-C3OIMtEu.js → system-run-command-Cn5yQ2rv.js} +1 -1
  282. package/dist/{systemd-DJ5Red-Q.js → systemd-BIfjzi-4.js} +9 -9
  283. package/dist/{systemd-hints-D40Qx3hg.js → systemd-hints-CgtHwBfD.js} +6 -6
  284. package/dist/{systemd-linger-BK6kig-o.js → systemd-linger-0Vho6LMt.js} +1 -1
  285. package/dist/{tables-C9_oCtRN.js → tables-C5n2nXbu.js} +1 -1
  286. package/dist/{tailnet-BYBKD8Kh.js → tailnet-C8NwaQEp.js} +1 -1
  287. package/dist/{plugin-sdk/target-errors-QZay02Cv.js → target-errors-cerGxvCB.js} +4 -4
  288. package/dist/{tool-images-QWbHWc0F.js → tool-images-CgSADinH.js} +1 -1
  289. package/dist/{tui-Dd6DhgjX.js → tui-DNT0WnU-.js} +6 -6
  290. package/dist/{tui-cli-C3PCazFC.js → tui-cli-DTFq2wGK.js} +33 -33
  291. package/dist/{update-B1Dhhu_3.js → update-Mb6BH0o9.js} +3 -3
  292. package/dist/{update-cli-CuKW0N9W.js → update-cli--qEz2_Eg.js} +105 -105
  293. package/dist/{update-cli-D1B0Vytl.js → update-cli-Dbb1EPi2.js} +5 -5
  294. package/dist/{update-runner-DO6RodZW.js → update-runner-Dj_CAfd4.js} +16 -16
  295. package/dist/web-BQRkxG9u.js +126 -0
  296. package/dist/{web-V1uGLepo.js → web-CDHXvGxm.js} +6 -6
  297. package/dist/{webhooks-cli-BFdw7BAP.js → webhooks-cli-uXE9EOwT.js} +6 -6
  298. package/dist/{whatsapp-actions-CNoiLzRB.js → whatsapp-actions-DeX4x9sq.js} +19 -19
  299. package/dist/{with-timeout-tSH4Tex_.js → with-timeout-C-EETHnf.js} +3 -3
  300. package/dist/{workspace-dKMB109Q.js → workspace-1nc7aTpg.js} +1 -1
  301. package/dist/{workspace-CRdln__H.js → workspace-TersEUYu.js} +23 -23
  302. package/dist/{workspace-dirs-DcAUEsSG.js → workspace-dirs-DxTFH1r3.js} +1 -1
  303. package/dist/{ws-DKbBt0us.js → ws-E9v842O2.js} +2 -2
  304. package/dist/{wsl-yjQQ-PJd.js → wsl-Dg6XQcw5.js} +2 -2
  305. package/package.json +1 -1
  306. package/dist/plugin-sdk/web-jmxdxo0H.js +0 -72
  307. package/dist/register.configure-BZLa_c3k.js +0 -174
  308. package/dist/web-DbdjX4Hg.js +0 -126
@@ -1,25 +1,25 @@
1
1
  import "./paths-BYr-iJJ9.js";
2
2
  import { p as theme, t as danger } from "./globals-uLeGcRW1.js";
3
3
  import "./utils-CP51tiAi.js";
4
- import "./agent-scope-CiBV1K6b.js";
4
+ import "./agent-scope-DHMu2mab.js";
5
5
  import { d as defaultRuntime } from "./subsystem-BT74-yyS.js";
6
- import "./workspace-CRdln__H.js";
6
+ import "./workspace-TersEUYu.js";
7
7
  import "./logger-D04dg4Ex.js";
8
8
  import "./exec-BdDcFm8M.js";
9
- import { Wt as loadConfig } from "./model-selection-xdfZxwgB.js";
9
+ import { Wt as loadConfig } from "./model-selection-DCo8MhsE.js";
10
10
  import "./github-copilot-token-CVsUoC9m.js";
11
11
  import "./boolean-BgXe2hyu.js";
12
12
  import "./env-4r1Vlroz.js";
13
13
  import "./host-env-security-BiAcoumI.js";
14
14
  import "./env-vars-DM119fhK.js";
15
15
  import "./registry-CUyWRciN.js";
16
- import "./manifest-registry-B_U2pKBU.js";
16
+ import "./manifest-registry-HNrtHxxI.js";
17
17
  import "./message-channel-CKAn7Lf7.js";
18
- import { t as getChannelPlugin } from "./plugins-CKWxMohB.js";
19
- import "./accounts-D5DQlttG.js";
18
+ import { t as getChannelPlugin } from "./plugins-Ce8ThYGQ.js";
19
+ import "./accounts-CCbfXe4Y.js";
20
20
  import "./logging-Dn5qdhsZ.js";
21
- import "./bindings-Ck6aotGf.js";
22
- import { n as resolveMessageChannelSelection } from "./channel-selection-TZJgoz5h.js";
21
+ import "./bindings-C0k4wFy7.js";
22
+ import { n as resolveMessageChannelSelection } from "./channel-selection-BDdjozhi.js";
23
23
  import { t as formatDocsLink } from "./links-CM7pO4C5.js";
24
24
  import { t as formatHelpExamples } from "./help-format-DUJs-8Xi.js";
25
25
  import { t as resolveChannelDefaultAccountId } from "./helpers-D0Q6sarx.js";
@@ -1,20 +1,20 @@
1
1
  import "./paths-BYr-iJJ9.js";
2
2
  import { p as theme } from "./globals-uLeGcRW1.js";
3
3
  import "./utils-CP51tiAi.js";
4
- import "./agent-scope-CiBV1K6b.js";
4
+ import "./agent-scope-DHMu2mab.js";
5
5
  import { d as defaultRuntime } from "./subsystem-BT74-yyS.js";
6
- import "./workspace-CRdln__H.js";
6
+ import "./workspace-TersEUYu.js";
7
7
  import "./logger-D04dg4Ex.js";
8
8
  import "./exec-BdDcFm8M.js";
9
- import { Wt as loadConfig } from "./model-selection-xdfZxwgB.js";
9
+ import { Wt as loadConfig } from "./model-selection-DCo8MhsE.js";
10
10
  import "./github-copilot-token-CVsUoC9m.js";
11
11
  import "./boolean-BgXe2hyu.js";
12
12
  import "./env-4r1Vlroz.js";
13
13
  import "./host-env-security-BiAcoumI.js";
14
14
  import "./env-vars-DM119fhK.js";
15
15
  import "./registry-CUyWRciN.js";
16
- import "./manifest-registry-B_U2pKBU.js";
17
- import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-BYBKD8Kh.js";
16
+ import "./manifest-registry-HNrtHxxI.js";
17
+ import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C8NwaQEp.js";
18
18
  import { t as formatDocsLink } from "./links-CM7pO4C5.js";
19
19
  import { t as renderTable } from "./table-DZBPnHSy.js";
20
20
  import { n as resolveWideAreaDiscoveryDomain, t as getWideAreaZonePath } from "./widearea-dns-D1fyqK-r.js";
@@ -2,10 +2,10 @@ import { l as escapeRegExp, m as normalizeE164 } from "./utils-CP51tiAi.js";
2
2
  import { g as normalizeAccountId } from "./session-key-C9z4VQtw.js";
3
3
  import { a as getChatChannelMeta, n as CHAT_CHANNEL_ORDER, p as requireActivePluginRegistry } from "./registry-CUyWRciN.js";
4
4
  import { t as resolveAccountEntry } from "./account-lookup-wjQQchlq.js";
5
- import { C as resolveDiscordAccount, l as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount, v as normalizeWhatsAppTarget } from "./plugins-CKWxMohB.js";
6
- import { i as resolveWhatsAppAccount } from "./accounts-D5DQlttG.js";
7
- import { r as resolveIMessageAccount } from "./accounts-DKvlV3Tm.js";
8
- import { i as resolveSignalAccount } from "./accounts-jPPbCJns.js";
5
+ import { C as resolveDiscordAccount, l as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount, v as normalizeWhatsAppTarget } from "./plugins-Ce8ThYGQ.js";
6
+ import { i as resolveWhatsAppAccount } from "./accounts-CCbfXe4Y.js";
7
+ import { r as resolveIMessageAccount } from "./accounts-C3iwoWUS.js";
8
+ import { i as resolveSignalAccount } from "./accounts-ChjgDDok.js";
9
9
 
10
10
  //#region src/config/types.tools.ts
11
11
  const TOOLS_BY_SENDER_KEY_TYPES = [
@@ -2,17 +2,17 @@ import "./paths-BYr-iJJ9.js";
2
2
  import { f as isRich, p as theme } from "./globals-uLeGcRW1.js";
3
3
  import "./utils-CP51tiAi.js";
4
4
  import { d as defaultRuntime } from "./subsystem-BT74-yyS.js";
5
- import "./workspace-CRdln__H.js";
5
+ import "./workspace-TersEUYu.js";
6
6
  import "./logger-D04dg4Ex.js";
7
7
  import { t as runCommandWithTimeout } from "./exec-BdDcFm8M.js";
8
8
  import { t as formatCliCommand } from "./command-format-DBmYTAza.js";
9
9
  import "./boolean-BgXe2hyu.js";
10
10
  import "./host-env-security-BiAcoumI.js";
11
11
  import "./registry-CUyWRciN.js";
12
- import "./manifest-registry-B_U2pKBU.js";
12
+ import "./manifest-registry-HNrtHxxI.js";
13
13
  import { d as hasBinary } from "./frontmatter-f69paAeU.js";
14
- import "./skills-BeFcXCoN.js";
15
- import "./path-alias-guards-DWh6tSaP.js";
14
+ import "./skills-BXLKd7i5.js";
15
+ import "./path-alias-guards-BNzjbOwM.js";
16
16
  import "./redact-Bf_pxORb.js";
17
17
  import "./errors-D5pCqwf4.js";
18
18
  import { t as formatDocsLink } from "./links-CM7pO4C5.js";
@@ -1,7 +1,7 @@
1
1
  import { S as resolveCliName } from "./paths-BYr-iJJ9.js";
2
- import { y as resolveOpenClawPackageRoot } from "./workspace-CRdln__H.js";
2
+ import { y as resolveOpenClawPackageRoot } from "./workspace-TersEUYu.js";
3
3
  import { t as note } from "./note-CLcV1fjx.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-DU3T8Tur.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Dm9dt8iw.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { S as resolveCliName } from "./paths-BnKiOk2S.js";
2
2
  import { y as resolveOpenClawPackageRoot } from "./workspace-BHfqkuYN.js";
3
3
  import { t as note } from "./note-BuhsMSuP.js";
4
- import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-Cfp2m1Sy.js";
4
+ import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BFxGdqak.js";
5
5
  import { spawnSync } from "node:child_process";
6
6
  import path from "node:path";
7
7
 
@@ -1,27 +1,27 @@
1
1
  import { f as resolveLegacyStateDirs, g as resolveStateDir, m as resolveOAuthDir, p as resolveNewStateDir, s as resolveConfigPathCandidate, t as CONFIG_PATH } from "./paths-BYr-iJJ9.js";
2
2
  import { _ as resolveHomeDir, d as isRecord } from "./utils-CP51tiAi.js";
3
- import { d as resolveDefaultAgentId } from "./agent-scope-CiBV1K6b.js";
3
+ import { d as resolveDefaultAgentId } from "./agent-scope-DHMu2mab.js";
4
4
  import { c as normalizeAgentId, g as normalizeAccountId, h as DEFAULT_ACCOUNT_ID, n as DEFAULT_MAIN_KEY, r as buildAgentMainSessionKey } from "./session-key-C9z4VQtw.js";
5
- import { $n as getTrustedSafeBinDirs, Br as resolveSlackStreamingMode, Fr as formatSlackStreamModeMigrationMessage, Ir as formatSlackStreamingBooleanMigrationMessage, Kt as readConfigFileSnapshot, Qt as OpenClawSchema, Rr as resolveDiscordPreviewStreamMode, Vr as resolveTelegramPreviewStreamMode, Vt as migrateLegacyConfig, er as isTrustedSafeBinPath, nr as normalizeTrustedSafeBinDirs, pr as resolveCommandResolutionFromArgv, zr as resolveSlackNativeStreaming } from "./model-selection-xdfZxwgB.js";
5
+ import { $n as getTrustedSafeBinDirs, Br as resolveSlackStreamingMode, Fr as formatSlackStreamModeMigrationMessage, Ir as formatSlackStreamingBooleanMigrationMessage, Kt as readConfigFileSnapshot, Qt as OpenClawSchema, Rr as resolveDiscordPreviewStreamMode, Vr as resolveTelegramPreviewStreamMode, Vt as migrateLegacyConfig, er as isTrustedSafeBinPath, nr as normalizeTrustedSafeBinDirs, pr as resolveCommandResolutionFromArgv, zr as resolveSlackNativeStreaming } from "./model-selection-DCo8MhsE.js";
6
6
  import { t as formatCliCommand } from "./command-format-DBmYTAza.js";
7
7
  import { l as normalizeChatChannelId } from "./registry-CUyWRciN.js";
8
- import { f as parseToolsBySenderTypedKey } from "./dock-BXksV3sC.js";
9
- import { X as canonicalizeMainSessionAlias, l as saveSessionStore } from "./sessions-BpuJ64B0.js";
10
- import { l as resolveTelegramAccount, s as listTelegramAccountIds } from "./plugins-CKWxMohB.js";
11
- import { i as readChannelAllowFromStore } from "./pairing-store-DdZ0xMD7.js";
12
- import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-D7olAQMf.js";
13
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-D1WySsnE.js";
8
+ import { f as parseToolsBySenderTypedKey } from "./dock-swzevZbj.js";
9
+ import { X as canonicalizeMainSessionAlias, l as saveSessionStore } from "./sessions-sIaYsUyX.js";
10
+ import { l as resolveTelegramAccount, s as listTelegramAccountIds } from "./plugins-Ce8ThYGQ.js";
11
+ import { i as readChannelAllowFromStore } from "./pairing-store-DY0yrkuM.js";
12
+ import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-B9kCrTY1.js";
13
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-4zXn-eVS.js";
14
14
  import { t as collectProviderDangerousNameMatchingScopes } from "./dangerous-name-matching-Bu_xMy4h.js";
15
15
  import { r as shouldMoveSingleAccountChannelKey, t as fetchTelegramChatId } from "./api-CRdLvaOQ.js";
16
16
  import { t as note } from "./note-CLcV1fjx.js";
17
- import { t as isWithinDir } from "./path-safety-COhgvniC.js";
18
- import { n as formatConfigIssueLines } from "./issue-format-rk9Vpcxd.js";
17
+ import { t as isWithinDir } from "./path-safety-dmCI2tpN.js";
18
+ import { n as formatConfigIssueLines } from "./issue-format-B4oxePhU.js";
19
19
  import { a as isMattermostMutableAllowEntry, c as normalizeTelegramAllowFromEntry, i as isMSTeamsMutableAllowEntry, n as isGoogleChatMutableAllowEntry, o as isSlackMutableAllowEntry, r as isIrcMutableAllowEntry, s as isNumericTelegramUserId, t as isDiscordMutableAllowEntry } from "./mutable-allowlist-detectors-D5GqtHJ_.js";
20
20
  import fs from "node:fs";
21
21
  import os from "node:os";
22
22
  import path from "node:path";
23
23
  import JSON5 from "json5";
24
- import fs$1 from "node:fs/promises";
24
+ import fsPromises from "node:fs/promises";
25
25
 
26
26
  //#region src/commands/doctor-legacy-config.ts
27
27
  function normalizeCompatibilityConfigValues(cfg) {
@@ -2109,7 +2109,7 @@ async function maybeMigrateLegacyConfig() {
2109
2109
  const targetPath = resolveConfigPathCandidate(process.env, () => home);
2110
2110
  const targetDir = path.dirname(targetPath);
2111
2111
  try {
2112
- await fs$1.access(targetPath);
2112
+ await fsPromises.access(targetPath);
2113
2113
  return changes;
2114
2114
  } catch {}
2115
2115
  const legacyCandidates = [
@@ -2119,14 +2119,14 @@ async function maybeMigrateLegacyConfig() {
2119
2119
  ];
2120
2120
  let legacyPath = null;
2121
2121
  for (const candidate of legacyCandidates) try {
2122
- await fs$1.access(candidate);
2122
+ await fsPromises.access(candidate);
2123
2123
  legacyPath = candidate;
2124
2124
  break;
2125
2125
  } catch {}
2126
2126
  if (!legacyPath) return changes;
2127
- await fs$1.mkdir(targetDir, { recursive: true });
2127
+ await fsPromises.mkdir(targetDir, { recursive: true });
2128
2128
  try {
2129
- await fs$1.copyFile(legacyPath, targetPath, fs$1.constants.COPYFILE_EXCL);
2129
+ await fsPromises.copyFile(legacyPath, targetPath, fsPromises.constants.COPYFILE_EXCL);
2130
2130
  changes.push(`Migrated legacy config: ${legacyPath} -> ${targetPath}`);
2131
2131
  } catch {}
2132
2132
  return changes;
@@ -1,5 +1,5 @@
1
1
  import { l as normalizeChatChannelId } from "./registry-CUyWRciN.js";
2
- import { r as ensurePluginAllowlisted } from "./plugin-auto-enable-D1WySsnE.js";
2
+ import { r as ensurePluginAllowlisted } from "./plugin-auto-enable-4zXn-eVS.js";
3
3
 
4
4
  //#region src/plugins/toggle-config.ts
5
5
  function setPluginEnabledInConfig(config, pluginId, enabled) {
package/dist/entry.js CHANGED
@@ -384,7 +384,7 @@ if (!isMainModule({
384
384
  }
385
385
  function tryHandleRootHelpFastPath(argv) {
386
386
  if (!isRootHelpInvocation(argv)) return false;
387
- import("./program-DSOHn27G.js").then(({ buildProgram }) => {
387
+ import("./program-DnjsZxiJ.js").then(({ buildProgram }) => {
388
388
  buildProgram().outputHelp();
389
389
  }).catch((error) => {
390
390
  console.error("[openclaw] Failed to display help:", error instanceof Error ? error.stack ?? error.message : error);
@@ -403,7 +403,7 @@ if (!isMainModule({
403
403
  applyCliProfileEnv({ profile: parsed.profile });
404
404
  process$1.argv = parsed.argv;
405
405
  }
406
- if (!tryHandleRootVersionFastPath(process$1.argv) && !tryHandleRootHelpFastPath(process$1.argv)) import("./run-main-BoenTqTz.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
406
+ if (!tryHandleRootVersionFastPath(process$1.argv) && !tryHandleRootHelpFastPath(process$1.argv)) import("./run-main-CFGtfsPd.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
407
407
  console.error("[openclaw] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
408
408
  process$1.exitCode = 1;
409
409
  });
@@ -1,4 +1,4 @@
1
- import { Cr as unwrapKnownShellMultiplexerInvocation, Or as SAFE_BIN_PROFILES, Sr as unwrapKnownDispatchWrapperInvocation, ar as analyzeShellCommand, dr as matchAllowlist, er as isTrustedSafeBinPath, fr as resolveAllowlistCandidatePath, gr as extractShellWrapperInlineCommand, lr as splitCommandChain, pr as resolveCommandResolutionFromArgv, rr as validateSafeBinArgv, sr as isWindowsPlatform, ur as DEFAULT_SAFE_BINS, vr as isDispatchWrapperExecutable, yr as isShellWrapperExecutable } from "./model-selection-xdfZxwgB.js";
1
+ import { Cr as unwrapKnownShellMultiplexerInvocation, Or as SAFE_BIN_PROFILES, Sr as unwrapKnownDispatchWrapperInvocation, ar as analyzeShellCommand, dr as matchAllowlist, er as isTrustedSafeBinPath, fr as resolveAllowlistCandidatePath, gr as extractShellWrapperInlineCommand, lr as splitCommandChain, pr as resolveCommandResolutionFromArgv, rr as validateSafeBinArgv, sr as isWindowsPlatform, ur as DEFAULT_SAFE_BINS, vr as isDispatchWrapperExecutable, yr as isShellWrapperExecutable } from "./model-selection-DCo8MhsE.js";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/infra/exec-approvals-allowlist.ts
@@ -1,38 +1,38 @@
1
1
  import "./paths-BYr-iJJ9.js";
2
2
  import { f as isRich, p as theme } from "./globals-uLeGcRW1.js";
3
3
  import "./utils-CP51tiAi.js";
4
- import "./agent-scope-CiBV1K6b.js";
4
+ import "./agent-scope-DHMu2mab.js";
5
5
  import { d as defaultRuntime } from "./subsystem-BT74-yyS.js";
6
- import "./workspace-CRdln__H.js";
6
+ import "./workspace-TersEUYu.js";
7
7
  import "./logger-D04dg4Ex.js";
8
8
  import "./exec-BdDcFm8M.js";
9
- import "./model-selection-xdfZxwgB.js";
9
+ import "./model-selection-DCo8MhsE.js";
10
10
  import "./github-copilot-token-CVsUoC9m.js";
11
11
  import "./boolean-BgXe2hyu.js";
12
12
  import "./env-4r1Vlroz.js";
13
13
  import "./host-env-security-BiAcoumI.js";
14
14
  import "./env-vars-DM119fhK.js";
15
15
  import "./registry-CUyWRciN.js";
16
- import "./manifest-registry-B_U2pKBU.js";
16
+ import "./manifest-registry-HNrtHxxI.js";
17
17
  import "./message-channel-CKAn7Lf7.js";
18
- import "./tailnet-BYBKD8Kh.js";
19
- import "./ws-DKbBt0us.js";
20
- import "./client-B91adiXh.js";
21
- import "./call-BGZQEHL4.js";
18
+ import "./tailnet-C8NwaQEp.js";
19
+ import "./ws-E9v842O2.js";
20
+ import "./client-BoUhzGrS.js";
21
+ import "./call-B9Vrcbed.js";
22
22
  import "./pairing-token-QppPqMJU.js";
23
23
  import { n as formatTimeAgo } from "./format-relative-BjGzUS9-.js";
24
24
  import { c as readExecApprovalsSnapshot, p as saveExecApprovals } from "./exec-approvals-C23wqMXV.js";
25
- import "./exec-approvals-allowlist-CGVHz3PX.js";
25
+ import "./exec-approvals-allowlist-fG-NsL-O.js";
26
26
  import { t as formatDocsLink } from "./links-CM7pO4C5.js";
27
27
  import "./progress-86COuAnG.js";
28
- import { n as callGatewayFromCli } from "./gateway-rpc-CJVCek88.js";
29
- import "./systemd-DJ5Red-Q.js";
30
- import "./service-DqxfCr8y.js";
28
+ import { n as callGatewayFromCli } from "./gateway-rpc-BHBGSN7Z.js";
29
+ import "./systemd-BIfjzi-4.js";
30
+ import "./service-BcFhE63y.js";
31
31
  import { t as renderTable } from "./table-DZBPnHSy.js";
32
- import { t as describeUnknownError } from "./shared-BmSv3K8N.js";
33
- import { a as resolveNodeId, r as nodesCallOpts } from "./rpc-9jE_1PW0.js";
32
+ import { t as describeUnknownError } from "./shared-sFrejcA4.js";
33
+ import { a as resolveNodeId, r as nodesCallOpts } from "./rpc-CMyUzpcT.js";
34
34
  import JSON5 from "json5";
35
- import fs from "node:fs/promises";
35
+ import fsPromises from "node:fs/promises";
36
36
 
37
37
  //#region src/cli/exec-approvals-cli.ts
38
38
  async function readStdin() {
@@ -329,7 +329,7 @@ function registerExecApprovalsCli(program) {
329
329
  if (!opts.file && !opts.stdin) exitWithError("Provide --file or --stdin.");
330
330
  if (opts.file && opts.stdin) exitWithError("Use either --file or --stdin (not both).");
331
331
  const { source, nodeId, targetLabel, baseHash } = await loadWritableSnapshotTarget(opts);
332
- const raw = opts.stdin ? await readStdin() : await fs.readFile(String(opts.file), "utf8");
332
+ const raw = opts.stdin ? await readStdin() : await fsPromises.readFile(String(opts.file), "utf8");
333
333
  let file;
334
334
  try {
335
335
  file = JSON5.parse(raw);
@@ -1,5 +1,5 @@
1
- import { $n as getTrustedSafeBinDirs, Ar as resolveSafeBinProfiles, kr as normalizeSafeBinProfileFixtures, nr as normalizeTrustedSafeBinDirs, tr as listWritableExplicitTrustedSafeBinDirs } from "./model-selection-xdfZxwgB.js";
2
- import { i as resolveSafeBins } from "./exec-approvals-allowlist-CGVHz3PX.js";
1
+ import { $n as getTrustedSafeBinDirs, Ar as resolveSafeBinProfiles, kr as normalizeSafeBinProfileFixtures, nr as normalizeTrustedSafeBinDirs, tr as listWritableExplicitTrustedSafeBinDirs } from "./model-selection-DCo8MhsE.js";
2
+ import { i as resolveSafeBins } from "./exec-approvals-allowlist-fG-NsL-O.js";
3
3
 
4
4
  //#region src/infra/exec-safe-bin-runtime-policy.ts
5
5
  const INTERPRETER_LIKE_SAFE_BINS = new Set([
@@ -1,5 +1,5 @@
1
1
  import { i as logWarn } from "./logger-D04dg4Ex.js";
2
- import { i as createPinnedDispatcher, n as SsrFBlockedError, r as closeDispatcher, s as resolvePinnedHostnameWithPolicy, t as hasProxyEnvConfigured } from "./proxy-env-ClbXa7vn.js";
2
+ import { i as createPinnedDispatcher, n as SsrFBlockedError, r as closeDispatcher, s as resolvePinnedHostnameWithPolicy, t as hasProxyEnvConfigured } from "./proxy-env-DhFUQlwP.js";
3
3
  import { t as bindAbortRelay } from "./fetch-timeout-DkT3EnRA.js";
4
4
  import { EnvHttpProxyAgent } from "undici";
5
5
 
@@ -1,11 +1,11 @@
1
1
  import { _ as expandHomePrefix } from "./paths-BYr-iJJ9.js";
2
- import { A as isNotFoundPathError, M as isSymlinkOpenError, T as sameFileIdentity, j as isPathInside, k as hasNodeErrorCode } from "./workspace-CRdln__H.js";
2
+ import { A as isNotFoundPathError, M as isSymlinkOpenError, T as sameFileIdentity, j as isPathInside, k as hasNodeErrorCode } from "./workspace-TersEUYu.js";
3
3
  import { i as logWarn } from "./logger-D04dg4Ex.js";
4
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-DWh6tSaP.js";
4
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-BNzjbOwM.js";
5
5
  import { constants } from "node:fs";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
- import fs$1 from "node:fs/promises";
8
+ import fsPromises from "node:fs/promises";
9
9
  import { randomUUID } from "node:crypto";
10
10
  import { pipeline } from "node:stream/promises";
11
11
 
@@ -25,19 +25,19 @@ const ensureTrailingSep = (value) => value.endsWith(path.sep) ? value : value +
25
25
  async function expandRelativePathWithHome(relativePath) {
26
26
  let home = process.env.HOME || process.env.USERPROFILE || os.homedir();
27
27
  try {
28
- home = await fs$1.realpath(home);
28
+ home = await fsPromises.realpath(home);
29
29
  } catch {}
30
30
  return expandHomePrefix(relativePath, { home });
31
31
  }
32
32
  async function openVerifiedLocalFile(filePath, options) {
33
33
  try {
34
- if ((await fs$1.lstat(filePath)).isDirectory()) throw new SafeOpenError("not-file", "not a file");
34
+ if ((await fsPromises.lstat(filePath)).isDirectory()) throw new SafeOpenError("not-file", "not a file");
35
35
  } catch (err) {
36
36
  if (err instanceof SafeOpenError) throw err;
37
37
  }
38
38
  let handle;
39
39
  try {
40
- handle = await fs$1.open(filePath, OPEN_READ_FLAGS);
40
+ handle = await fsPromises.open(filePath, OPEN_READ_FLAGS);
41
41
  } catch (err) {
42
42
  if (isNotFoundPathError(err)) throw new SafeOpenError("not-found", "file not found");
43
43
  if (isSymlinkOpenError(err)) throw new SafeOpenError("symlink", "symlink open blocked", { cause: err });
@@ -45,13 +45,13 @@ async function openVerifiedLocalFile(filePath, options) {
45
45
  throw err;
46
46
  }
47
47
  try {
48
- const [stat, lstat] = await Promise.all([handle.stat(), fs$1.lstat(filePath)]);
48
+ const [stat, lstat] = await Promise.all([handle.stat(), fsPromises.lstat(filePath)]);
49
49
  if (lstat.isSymbolicLink()) throw new SafeOpenError("symlink", "symlink not allowed");
50
50
  if (!stat.isFile()) throw new SafeOpenError("not-file", "not a file");
51
51
  if (options?.rejectHardlinks && stat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
52
52
  if (!sameFileIdentity(stat, lstat)) throw new SafeOpenError("path-mismatch", "path changed during read");
53
- const realPath = await fs$1.realpath(filePath);
54
- const realStat = await fs$1.stat(realPath);
53
+ const realPath = await fsPromises.realpath(filePath);
54
+ const realStat = await fsPromises.stat(realPath);
55
55
  if (options?.rejectHardlinks && realStat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
56
56
  if (!sameFileIdentity(stat, realStat)) throw new SafeOpenError("path-mismatch", "path mismatch");
57
57
  return {
@@ -69,7 +69,7 @@ async function openVerifiedLocalFile(filePath, options) {
69
69
  async function resolvePathWithinRoot(params) {
70
70
  let rootReal;
71
71
  try {
72
- rootReal = await fs$1.realpath(params.rootDir);
72
+ rootReal = await fsPromises.realpath(params.rootDir);
73
73
  } catch (err) {
74
74
  if (isNotFoundPathError(err)) throw new SafeOpenError("not-found", "root dir not found");
75
75
  throw err;
@@ -170,7 +170,7 @@ function buildAtomicWriteTempPath(targetPath) {
170
170
  return path.join(dir, `.${base}.${process.pid}.${randomUUID()}.tmp`);
171
171
  }
172
172
  async function writeTempFileForAtomicReplace(params) {
173
- const tempHandle = await fs$1.open(params.tempPath, OPEN_WRITE_CREATE_FLAGS, params.mode);
173
+ const tempHandle = await fsPromises.open(params.tempPath, OPEN_WRITE_CREATE_FLAGS, params.mode);
174
174
  try {
175
175
  if (typeof params.data === "string") await tempHandle.writeFile(params.data, params.encoding ?? "utf8");
176
176
  else await tempHandle.writeFile(params.data);
@@ -180,7 +180,7 @@ async function writeTempFileForAtomicReplace(params) {
180
180
  }
181
181
  }
182
182
  async function verifyAtomicWriteResult(params) {
183
- const rootWithSep = ensureTrailingSep(await fs$1.realpath(params.rootDir));
183
+ const rootWithSep = ensureTrailingSep(await fsPromises.realpath(params.rootDir));
184
184
  const opened = await openVerifiedLocalFile(params.targetPath, { rejectHardlinks: true });
185
185
  try {
186
186
  if (!sameFileIdentity(opened.stat, params.expectedStat)) throw new SafeOpenError("path-mismatch", "path changed during write");
@@ -191,13 +191,13 @@ async function verifyAtomicWriteResult(params) {
191
191
  }
192
192
  async function resolveOpenedFileRealPathForHandle(handle, ioPath) {
193
193
  try {
194
- return await fs$1.realpath(ioPath);
194
+ return await fsPromises.realpath(ioPath);
195
195
  } catch (err) {
196
196
  if (!isNotFoundPathError(err)) throw err;
197
197
  }
198
198
  const fdCandidates = process.platform === "linux" ? [`/proc/self/fd/${handle.fd}`, `/dev/fd/${handle.fd}`] : process.platform === "win32" ? [] : [`/dev/fd/${handle.fd}`];
199
199
  for (const fdPath of fdCandidates) try {
200
- return await fs$1.realpath(fdPath);
200
+ return await fsPromises.realpath(fdPath);
201
201
  } catch {}
202
202
  throw new SafeOpenError("path-mismatch", "unable to resolve opened file path");
203
203
  }
@@ -212,10 +212,10 @@ async function openWritableFileWithinRoot(params) {
212
212
  } catch (err) {
213
213
  throw new SafeOpenError("invalid-path", "path alias escape blocked", { cause: err });
214
214
  }
215
- if (params.mkdir !== false) await fs$1.mkdir(path.dirname(resolved), { recursive: true });
215
+ if (params.mkdir !== false) await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
216
216
  let ioPath = resolved;
217
217
  try {
218
- const resolvedRealPath = await fs$1.realpath(resolved);
218
+ const resolvedRealPath = await fsPromises.realpath(resolved);
219
219
  if (!isPathInside(rootWithSep, resolvedRealPath)) throw new SafeOpenError("outside-workspace", "file is outside workspace root");
220
220
  ioPath = resolvedRealPath;
221
221
  } catch (err) {
@@ -227,10 +227,10 @@ async function openWritableFileWithinRoot(params) {
227
227
  let createdForWrite = false;
228
228
  try {
229
229
  try {
230
- handle = await fs$1.open(ioPath, OPEN_WRITE_EXISTING_FLAGS, fileMode);
230
+ handle = await fsPromises.open(ioPath, OPEN_WRITE_EXISTING_FLAGS, fileMode);
231
231
  } catch (err) {
232
232
  if (!isNotFoundPathError(err)) throw err;
233
- handle = await fs$1.open(ioPath, OPEN_WRITE_CREATE_FLAGS, fileMode);
233
+ handle = await fsPromises.open(ioPath, OPEN_WRITE_CREATE_FLAGS, fileMode);
234
234
  createdForWrite = true;
235
235
  }
236
236
  } catch (err) {
@@ -244,7 +244,7 @@ async function openWritableFileWithinRoot(params) {
244
244
  if (!stat.isFile()) throw new SafeOpenError("invalid-path", "path is not a regular file under root");
245
245
  if (stat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
246
246
  try {
247
- const lstat = await fs$1.lstat(ioPath);
247
+ const lstat = await fsPromises.lstat(ioPath);
248
248
  if (lstat.isSymbolicLink() || !lstat.isFile()) throw new SafeOpenError("invalid-path", "path is not a regular file under root");
249
249
  if (!sameFileIdentity(stat, lstat)) throw new SafeOpenError("path-mismatch", "path changed during write");
250
250
  } catch (err) {
@@ -252,7 +252,7 @@ async function openWritableFileWithinRoot(params) {
252
252
  }
253
253
  const realPath = await resolveOpenedFileRealPathForHandle(handle, ioPath);
254
254
  openedRealPath = realPath;
255
- const realStat = await fs$1.stat(realPath);
255
+ const realStat = await fsPromises.stat(realPath);
256
256
  if (!sameFileIdentity(stat, realStat)) throw new SafeOpenError("path-mismatch", "path mismatch");
257
257
  if (realStat.nlink > 1) throw new SafeOpenError("invalid-path", "hardlinked path not allowed");
258
258
  if (!isPathInside(rootWithSep, realPath)) throw new SafeOpenError("outside-workspace", "file is outside workspace root");
@@ -267,7 +267,7 @@ async function openWritableFileWithinRoot(params) {
267
267
  const cleanupCreatedPath = createdForWrite && err instanceof SafeOpenError;
268
268
  const cleanupPath = openedRealPath ?? ioPath;
269
269
  await handle.close().catch(() => {});
270
- if (cleanupCreatedPath) await fs$1.rm(cleanupPath, { force: true }).catch(() => {});
270
+ if (cleanupCreatedPath) await fsPromises.rm(cleanupPath, { force: true }).catch(() => {});
271
271
  throw err;
272
272
  }
273
273
  }
@@ -290,7 +290,7 @@ async function writeFileWithinRoot(params) {
290
290
  encoding: params.encoding,
291
291
  mode: targetMode || 384
292
292
  });
293
- await fs$1.rename(tempPath, destinationPath);
293
+ await fsPromises.rename(tempPath, destinationPath);
294
294
  tempPath = null;
295
295
  try {
296
296
  await verifyAtomicWriteResult({
@@ -303,7 +303,7 @@ async function writeFileWithinRoot(params) {
303
303
  throw err;
304
304
  }
305
305
  } finally {
306
- if (tempPath) await fs$1.rm(tempPath, { force: true }).catch(() => {});
306
+ if (tempPath) await fsPromises.rm(tempPath, { force: true }).catch(() => {});
307
307
  }
308
308
  }
309
309
  async function copyFileWithinRoot(params) {
@@ -331,7 +331,7 @@ async function copyFileWithinRoot(params) {
331
331
  });
332
332
  await pipeline(sourceStream, targetStream);
333
333
  } catch (err) {
334
- if (target?.createdForWrite) await fs$1.rm(target.openedRealPath, { force: true }).catch(() => {});
334
+ if (target?.createdForWrite) await fsPromises.rm(target.openedRealPath, { force: true }).catch(() => {});
335
335
  throw err;
336
336
  } finally {
337
337
  if (!sourceClosedByStream) await source.handle.close().catch(() => {});
@@ -162,7 +162,7 @@ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t
162
162
  import { o as isBitseekBuild } from "./status.update-YC9VNJxl.js";
163
163
  import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-BV3Q0XnD.js";
164
164
  import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-D4y0Gdfj.js";
165
- import { t as runOnboardingWizard } from "./onboarding-CZCgESNI.js";
165
+ import { t as runOnboardingWizard } from "./onboarding-CSnr51pR.js";
166
166
  import { a as sendApnsAlert, c as parseMessageWithAttachments, d as shouldLogWs, f as summarizeAgentEventForWsLog, i as resolveApnsAuthConfigFromEnv, l as formatForLog, n as normalizeApnsEnvironment, o as sendApnsBackgroundWake, p as setGatewayWsLogStyle, s as normalizeRpcAttachmentsToChatAttachments, t as loadApnsRegistration, u as logWs } from "./push-apns-BSlKJa83.js";
167
167
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CtjSNa9d.js";
168
168
  import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-pJ6IPNBA.js";
@@ -14302,6 +14302,12 @@ function isCommandNotFoundResult(result) {
14302
14302
  const output = `${result.stderr}\n${result.stdout}`.toLowerCase();
14303
14303
  return output.includes("enoent") || output.includes("command not found") || output.includes("not recognized as an internal or external command");
14304
14304
  }
14305
+ function isAlreadyInstalledResult(result) {
14306
+ return `${result.stderr}\n${result.stdout}`.toLowerCase().includes("already installed");
14307
+ }
14308
+ function requiresForceForSuspiciousSkill(result) {
14309
+ return `${result.stderr}\n${result.stdout}`.toLowerCase().includes("use --force to install suspicious skills in non-interactive mode");
14310
+ }
14305
14311
  async function runMarketInstallCommand(runCommand, argv, options) {
14306
14312
  try {
14307
14313
  return await runCommand(argv, options);
@@ -14381,18 +14387,43 @@ async function installClawhubMarketSkill(params, deps) {
14381
14387
  const workspaceDir = resolveUserPath(params.workspaceDir);
14382
14388
  const timeoutMs = Math.min(Math.max(params.timeoutMs ?? 3e5, 1e3), 9e5);
14383
14389
  const runCommand = deps?.runCommand ?? runCommandWithTimeout;
14390
+ const installOptions = {
14391
+ cwd: workspaceDir,
14392
+ timeoutMs
14393
+ };
14384
14394
  const first = await runMarketInstallCommand(runCommand, [
14385
14395
  "clawhub",
14386
14396
  "install",
14387
14397
  slug
14388
- ], {
14389
- cwd: workspaceDir,
14390
- timeoutMs
14391
- });
14398
+ ], installOptions);
14392
14399
  if (first.code === 0) return {
14393
14400
  ok: true,
14394
14401
  message: `Installed "${slug}" via clawhub.`
14395
14402
  };
14403
+ if (isAlreadyInstalledResult(first)) return {
14404
+ ok: true,
14405
+ message: `Already installed "${slug}" via clawhub.`
14406
+ };
14407
+ if (requiresForceForSuspiciousSkill(first)) {
14408
+ const forced = await runMarketInstallCommand(runCommand, [
14409
+ "clawhub",
14410
+ "install",
14411
+ slug,
14412
+ "--force"
14413
+ ], installOptions);
14414
+ if (forced.code === 0) return {
14415
+ ok: true,
14416
+ message: `Installed "${slug}" via clawhub --force.`
14417
+ };
14418
+ if (isAlreadyInstalledResult(forced)) return {
14419
+ ok: true,
14420
+ message: `Already installed "${slug}" via clawhub --force.`
14421
+ };
14422
+ return {
14423
+ ok: false,
14424
+ message: `ClawHub install failed: ${formatInstallFailureMessage(forced)}`
14425
+ };
14426
+ }
14396
14427
  if (!isCommandNotFoundResult(first)) return {
14397
14428
  ok: false,
14398
14429
  message: `ClawHub install failed: ${formatInstallFailureMessage(first)}`
@@ -14403,14 +14434,37 @@ async function installClawhubMarketSkill(params, deps) {
14403
14434
  "clawhub",
14404
14435
  "install",
14405
14436
  slug
14406
- ], {
14407
- cwd: workspaceDir,
14408
- timeoutMs
14409
- });
14437
+ ], installOptions);
14410
14438
  if (fallback.code === 0) return {
14411
14439
  ok: true,
14412
14440
  message: `Installed "${slug}" via npx clawhub.`
14413
14441
  };
14442
+ if (isAlreadyInstalledResult(fallback)) return {
14443
+ ok: true,
14444
+ message: `Already installed "${slug}" via npx clawhub.`
14445
+ };
14446
+ if (requiresForceForSuspiciousSkill(fallback)) {
14447
+ const forcedFallback = await runMarketInstallCommand(runCommand, [
14448
+ "npx",
14449
+ "-y",
14450
+ "clawhub",
14451
+ "install",
14452
+ slug,
14453
+ "--force"
14454
+ ], installOptions);
14455
+ if (forcedFallback.code === 0) return {
14456
+ ok: true,
14457
+ message: `Installed "${slug}" via npx clawhub --force.`
14458
+ };
14459
+ if (isAlreadyInstalledResult(forcedFallback)) return {
14460
+ ok: true,
14461
+ message: `Already installed "${slug}" via npx clawhub --force.`
14462
+ };
14463
+ return {
14464
+ ok: false,
14465
+ message: `ClawHub install failed: ${formatInstallFailureMessage(forcedFallback)}`
14466
+ };
14467
+ }
14414
14468
  return {
14415
14469
  ok: false,
14416
14470
  message: `ClawHub install failed: ${formatInstallFailureMessage(fallback)}`