@lawpath-tech/openclaw 2026.2.21-31 → 2026.2.21-32

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 (317) hide show
  1. package/dist/{accounts-CGBT0wQ4.js → accounts-D8ryuxvJ.js} +7 -7
  2. package/dist/{accounts-CAR30ERb.js → accounts-Dl14M6E6.js} +1 -1
  3. package/dist/{accounts-BQX482gP.js → accounts-E1DMCEDO.js} +1 -1
  4. package/dist/{acp-cli-DZV917OP.js → acp-cli-hedESiET.js} +6 -6
  5. package/dist/{agent-scope-BGlpyppa.js → agent-scope-B6jLdNuI.js} +18 -18
  6. package/dist/{agents-BP8GDc9z.js → agents-DWpMpnrU.js} +4 -4
  7. package/dist/{agents.config-Bz7K-hIv.js → agents.config-DfN81iaS.js} +2 -2
  8. package/dist/{agents.config-BelTNn6K.js → agents.config-bQuerf1-.js} +1 -1
  9. package/dist/{api-key-rotation-CMe3cUAn.js → api-key-rotation-ddrC-1k5.js} +1 -1
  10. package/dist/{audio-preflight-Djsieqbl.js → audio-preflight-DRE31Ab_.js} +28 -28
  11. package/dist/{audio-preflight-DP74Yvkp.js → audio-preflight-Dp9KYMCX.js} +4 -4
  12. package/dist/{audit-W6GUNtGq.js → audit-DqzfLnre.js} +23 -23
  13. package/dist/{auth-choice-D1nW1tnt.js → auth-choice-BWs44j21.js} +8 -8
  14. package/dist/{auth-choice-CBUsciQJ.js → auth-choice-CNEPjZq2.js} +1 -1
  15. package/dist/{auth-token-3sJLQq8Y.js → auth-token-Il_1hz__.js} +1 -1
  16. package/dist/{banner-C18cJKYR.js → banner-CxaRxgic.js} +1 -1
  17. package/dist/{bindings-D_OoALBE.js → bindings-D_90DJ1-.js} +1 -1
  18. package/dist/{browser-cli-pa0mgoQY.js → browser-cli-DRksx_yW.js} +9 -9
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +8 -8
  21. package/dist/bundled/session-memory/handler.js +8 -8
  22. package/dist/{call-BVSmc2vl.js → call-CYa4YbMh.js} +9 -9
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{channel-options-Dh4UX17R.js → channel-options-731cZrV3.js} +2 -2
  25. package/dist/{channel-options-DUJnpe5D.js → channel-options-DOP9meV_.js} +1 -1
  26. package/dist/{channel-selection-B3CpzNsC.js → channel-selection-NCqPAi5U.js} +1 -1
  27. package/dist/{channel-web-wLJAIBDS.js → channel-web-BGJ5ln5L.js} +17 -17
  28. package/dist/{channels-cli-B3GeraPZ.js → channels-cli-BSR5Ss_g.js} +75 -75
  29. package/dist/{channels-cli-7lL-U0bT.js → channels-cli-D3RDDRf1.js} +6 -6
  30. package/dist/{channels-status-issues-C4_sbL0E.js → channels-status-issues-CNE14g1e.js} +1 -1
  31. package/dist/{chrome-C9MCXK8d.js → chrome-BlXdvPOB.js} +2 -2
  32. package/dist/{chrome-BukFhWVN.js → chrome-DAmaIuXa.js} +7 -7
  33. package/dist/{clawbot-cli-B2jNAgQu.js → clawbot-cli-__trjQJ4.js} +4 -4
  34. package/dist/cli/daemon-cli.js +1 -1
  35. package/dist/{cli-C9y6JSoj.js → cli-C7e7H1JP.js} +3 -3
  36. package/dist/{cli-BdmFE8Ie.js → cli-DnIh8_UI.js} +62 -62
  37. package/dist/{client-DkL-GDcp.js → client-BW8Wuj5N.js} +1 -1
  38. package/dist/{command-registry-D-PJPg1t.js → command-registry-Q4A7-DBA.js} +9 -9
  39. package/dist/{commands-DHoTLUfu.js → commands-KvUzKZ-E.js} +1 -1
  40. package/dist/{commands-registry-C6MwKIm9.js → commands-registry-DVVMuhaG.js} +3 -3
  41. package/dist/{completion-cli-CA5pvA6W.js → completion-cli-JhFn-BzZ.js} +12 -12
  42. package/dist/{completion-cli-zfVgI7-n.js → completion-cli-dC9YBc-k.js} +2 -2
  43. package/dist/{config-CkqfHk27.js → config-JupjCURB.js} +2 -2
  44. package/dist/{config-cli-CgMtqspq.js → config-cli-DMLSe-zW.js} +1 -1
  45. package/dist/{config-cli-BPrhK0hV.js → config-cli-DOvNIX0v.js} +4 -4
  46. package/dist/{config-guard-C5fqJ2Ra.js → config-guard-5XdCrtj_.js} +12 -12
  47. package/dist/{config-validation-cyW76mmN.js → config-validation-B1WJ3f4s.js} +1 -1
  48. package/dist/{configure-yDD4TKIJ.js → configure-Bvsehc2l.js} +15 -15
  49. package/dist/{configure-P0T5xCKn.js → configure-DjTsdvi-.js} +3 -3
  50. package/dist/{control-service-CPT8eogY.js → control-service-C7XguOvd.js} +4 -4
  51. package/dist/{control-ui-assets-BcSek9LQ.js → control-ui-assets-BLVZXE2I.js} +1 -1
  52. package/dist/{cron-cli-B8A_gdlC.js → cron-cli-DJY2332p.js} +10 -10
  53. package/dist/{daemon-cli-BY4RqUnr.js → daemon-cli-BWUQX0oT.js} +11 -11
  54. package/dist/{daemon-runtime-b5AIw6-c.js → daemon-runtime-DWX-qIBl.js} +10 -10
  55. package/dist/{deliver-BLmoUvp-.js → deliver-BP564y6d.js} +1 -1
  56. package/dist/{deliver-DPIPJHQH.js → deliver-DKhy3kV4.js} +7 -7
  57. package/dist/{devices-cli-lm3S1JQu.js → devices-cli-D4oN5nE1.js} +6 -6
  58. package/dist/{diagnostics-BTTjVvNB.js → diagnostics-DqqmUDc7.js} +5 -5
  59. package/dist/{directory-cli-BV3bixZh.js → directory-cli-Cn5w5bQ0.js} +7 -7
  60. package/dist/{dm-policy-shared-CrbkZ-FV.js → dm-policy-shared-CysWxa2H.js} +2 -2
  61. package/dist/{dns-cli-D7X1eTm3.js → dns-cli-CYB5gA5O.js} +3 -3
  62. package/dist/{dock-B1xpMkYP.js → dock-CX_o0bdi.js} +4 -4
  63. package/dist/{docs-cli-C_3NO2uV.js → docs-cli-Dsn3U8-1.js} +1 -1
  64. package/dist/{doctor-completion-wNJ24zG1.js → doctor-completion-ZNTlXnGL.js} +1 -1
  65. package/dist/{doctor-completion-QnB3fOSm.js → doctor-completion-zUNacbyu.js} +2 -2
  66. package/dist/{doctor-config-flow-BB3nWQcZ.js → doctor-config-flow-C9h7ENJ-.js} +10 -10
  67. package/dist/entry.js +1 -1
  68. package/dist/{exec-approvals-cli-TT3Gh9kR.js → exec-approvals-cli-BXXdOl4u.js} +13 -13
  69. package/dist/extensionAPI.js +3 -3
  70. package/dist/{fs-safe-CUjO1ca2.js → fs-safe-CTDvb1DF.js} +6 -6
  71. package/dist/{gateway-cli-jzI2iY9a.js → gateway-cli-B8-2FWEZ.js} +10 -10
  72. package/dist/{gateway-cli-abohiHMm.js → gateway-cli-BXP02v7b.js} +132 -132
  73. package/dist/{gateway-rpc-BGGmDgbQ.js → gateway-rpc-CqPT9Cep.js} +1 -1
  74. package/dist/{health-ChDsDryb.js → health-BFLhZBCV.js} +13 -13
  75. package/dist/{health-BJ6SHHDr.js → health-Bm_bIcyw.js} +1 -1
  76. package/dist/{hooks-cli-DuRDIltL.js → hooks-cli-BVjpIkaS.js} +76 -76
  77. package/dist/{hooks-cli-BmuxgZBH.js → hooks-cli-DyN1Bq_w.js} +4 -4
  78. package/dist/{image-hH4ugSJI.js → image-DL65NdIM.js} +1 -1
  79. package/dist/{image-DC9YnAwO.js → image-DtVdv4CQ.js} +3 -3
  80. package/dist/{image-ops-B4PbaJHR.js → image-ops-Uvt51OHH.js} +10 -10
  81. package/dist/index.js +72 -72
  82. package/dist/{inspect-gLKB4R6Z.js → inspect-VKHaN3HT.js} +4 -4
  83. package/dist/{install-safe-path-tCLiMpmO.js → install-safe-path-Qqr_t_tH.js} +11 -11
  84. package/dist/{installs-Bbb02byQ.js → installs-BamQ1KDR.js} +10 -10
  85. package/dist/{ir-D72mYI93.js → ir-1SG-TkUZ.js} +6 -6
  86. package/dist/{lifecycle-core-DNgy-uKO.js → lifecycle-core-DZJF3omV.js} +5 -5
  87. package/dist/llm-slug-generator.js +8 -8
  88. package/dist/{local-roots-B6Q8Hrfc.js → local-roots-25wkka6O.js} +2 -2
  89. package/dist/{login-Bz2k49Y4.js → login-BThY9qqp.js} +3 -3
  90. package/dist/{login-qr-L9yhuI9H.js → login-qr-BOOn03RH.js} +5 -5
  91. package/dist/{logs-cli-B2PPoAkv.js → logs-cli-DoDfF8hD.js} +7 -7
  92. package/dist/{manager-CDo24VZE.js → manager-BVtzk7_v.js} +13 -13
  93. package/dist/{markdown-tables-CXWxrKp3.js → markdown-tables-MNYCbYg1.js} +1 -1
  94. package/dist/{memory-cli-8SCKR9xc.js → memory-cli-CS7LI30B.js} +12 -12
  95. package/dist/{model-BKG0edkX.js → model-MOoXNngW.js} +1 -1
  96. package/dist/{model-catalog-CjwzHKkB.js → model-catalog-CzLbr1ZD.js} +4 -4
  97. package/dist/{model-picker-NGiZaAei.js → model-picker-bpc3jJ5m.js} +3 -3
  98. package/dist/{model-selection-0qDmOMXI.js → model-selection-C1pdWy7b.js} +9 -9
  99. package/dist/{models-BpqbY6s6.js → models-Bd3CLEWM.js} +2 -2
  100. package/dist/{models-cli-COanmcGm.js → models-cli-4QX1LFRs.js} +72 -72
  101. package/dist/{models-cli-DqWWTCao.js → models-cli-D__CoxU_.js} +5 -5
  102. package/dist/{models-config-CTi1zIkq.js → models-config-BVp1ZtTh.js} +7 -7
  103. package/dist/{node-cli-Cqkqlb01.js → node-cli-D-N_WPoP.js} +28 -28
  104. package/dist/{node-service-YmmWwF_4.js → node-service-BESGjvfV.js} +1 -1
  105. package/dist/{nodes-cli-xRiWzu3G.js → nodes-cli-Cn4uY_Gx.js} +10 -10
  106. package/dist/{nodes-screen-C-rbZoYt.js → nodes-screen-kFzB7013.js} +4 -4
  107. package/dist/{npm-registry-spec-Dw7Zv5pY.js → npm-registry-spec-pqZV9KaL.js} +9 -9
  108. package/dist/{onboard-UEtBiCoJ.js → onboard-DDzVmEvx.js} +2 -2
  109. package/dist/{onboard-wCY6TSre.js → onboard-DJUKlsWz.js} +13 -13
  110. package/dist/{onboard-channels-BJ-tZka8.js → onboard-channels-BqW3maPJ.js} +5 -5
  111. package/dist/{onboard-channels-CPma01ab.js → onboard-channels-CrfL2B6W.js} +1 -1
  112. package/dist/{onboard-custom-KUI3ky6Y.js → onboard-custom-D7KcpLUZ.js} +3 -3
  113. package/dist/{onboard-helpers-CuawFqeV.js → onboard-helpers-C2-IAGyl.js} +8 -8
  114. package/dist/{onboard-hooks-Cjnt0UN3.js → onboard-hooks-Cf_rZ0y2.js} +1 -1
  115. package/dist/{onboard-remote-ClWpZWND.js → onboard-remote-DujGEJSZ.js} +1 -1
  116. package/dist/{onboard-skills-wCr1UcGc.js → onboard-skills-BCOMycP2.js} +4 -4
  117. package/dist/{onboarding-Di4SkJUj.js → onboarding-0IAGtYhr.js} +3 -3
  118. package/dist/{onboarding-Dp6k5p-a.js → onboarding-w8peVpJ9.js} +13 -13
  119. package/dist/{onboarding.finalize-G-q87JA2.js → onboarding.finalize-CwtvbQBP.js} +74 -74
  120. package/dist/{onboarding.finalize-DshqLGqp.js → onboarding.finalize-De4it5U3.js} +8 -8
  121. package/dist/{onboarding.gateway-config-7sVZcOhj.js → onboarding.gateway-config-BJ0SMGbj.js} +14 -14
  122. package/dist/{openai-model-default-CZOgt9C7.js → openai-model-default-DagaQbb0.js} +2 -2
  123. package/dist/{openclaw-root-CQJwyH9q.js → openclaw-root-CbWxAStx.js} +2 -2
  124. package/dist/{outbound-BiC9-qyo.js → outbound-DPGxP4j6.js} +4 -4
  125. package/dist/{plugin-sdk/outbound-attachment-1oBost2D.js → outbound-attachment-D07lPNUZ.js} +2 -2
  126. package/dist/{pairing-cli-B5reDhJF.js → pairing-cli-BZwhRsWv.js} +8 -8
  127. package/dist/{pairing-labels-UbwdcASX.js → pairing-labels-Cf9ie2Yo.js} +1 -1
  128. package/dist/{pairing-store-IkE0_gB1.js → pairing-store-BzMeXbOB.js} +2 -2
  129. package/dist/{pairing-token-DGufCZxz.js → pairing-token-DAVfcYo5.js} +7 -7
  130. package/dist/{paths-CIvEoL0m.js → paths-BsnfCNkx.js} +1 -1
  131. package/dist/{pi-auth-json-C5hwfgoJ.js → pi-auth-json-BBbOI_P4.js} +3 -3
  132. package/dist/{pi-embedded-C7TfFIPO.js → pi-embedded-CIsGkiaB.js} +200 -43
  133. package/dist/{pi-embedded-helpers-BDEpQxcD.js → pi-embedded-helpers-B9uwWqnh.js} +6 -6
  134. package/dist/{pi-embedded-helpers-DR_3fJko.js → pi-embedded-helpers-HnqhrewN.js} +4 -4
  135. package/dist/{pi-embedded-BAqpVR_m.js → pi-embedded-lJXJAe8z.js} +214 -57
  136. package/dist/{pi-tools.policy-CrKxTriv.js → pi-tools.policy-BU3gaxu3.js} +4 -4
  137. package/dist/{plugin-auto-enable-CU5zcL-D.js → plugin-auto-enable-Dkg7tNsW.js} +2 -2
  138. package/dist/{plugin-registry-BdQI8-bG.js → plugin-registry-BNUYtj9H.js} +3 -3
  139. package/dist/{plugin-registry-CFiYBSX2.js → plugin-registry-DjJ5pV-y.js} +1 -1
  140. package/dist/plugin-sdk/{accounts-cFYVb3Ir.js → accounts-BdyAJ80w.js} +1 -1
  141. package/dist/plugin-sdk/{accounts-owMdcC84.js → accounts-CDDBR5Pk.js} +1 -1
  142. package/dist/plugin-sdk/{accounts-CIV6d4kn.js → accounts-CNg4Pivg.js} +3 -3
  143. package/dist/plugin-sdk/{active-listener-n6hyqnXA.js → active-listener-C2nnC9Ax.js} +1 -1
  144. package/dist/plugin-sdk/{agent-scope-DNY1MYCy.js → agent-scope-CtPfsirh.js} +2 -2
  145. package/dist/plugin-sdk/{api-key-rotation-nmjAMTZA.js → api-key-rotation-R4AkTIjD.js} +1 -1
  146. package/dist/plugin-sdk/{audio-preflight-BkbKy5kx.js → audio-preflight-BAMNt6M5.js} +24 -24
  147. package/dist/plugin-sdk/{bindings-CopQpHHX.js → bindings-BoFVi5SB.js} +2 -2
  148. package/dist/plugin-sdk/{channel-activity-CrDvXjCQ.js → channel-activity-t_OI1MQf.js} +1 -1
  149. package/dist/plugin-sdk/{channel-web-DtyyUoWA.js → channel-web-hWtosBa_.js} +22 -22
  150. package/dist/plugin-sdk/{chrome-CrOYUXQ2.js → chrome-D0tUj9ji.js} +3 -3
  151. package/dist/plugin-sdk/{chunk-D4rztYS_.js → chunk-CoyesYaI.js} +1 -1
  152. package/dist/plugin-sdk/{command-format-A8fPp85k.js → command-format-BZHLj2Pv.js} +1 -1
  153. package/dist/plugin-sdk/{commands-registry-BgL5BgCb.js → commands-registry-DhpIXuI8.js} +4 -4
  154. package/dist/plugin-sdk/{config-CpE4TWH0.js → config-C-kB5yPz.js} +9 -9
  155. package/dist/plugin-sdk/{deliver-DTKyGKVr.js → deliver-BHg_hqJG.js} +10 -10
  156. package/dist/plugin-sdk/{diagnostic-AkXUmNj3.js → diagnostic-Bkobf9sL.js} +1 -1
  157. package/dist/plugin-sdk/{image-D-2tr3lg.js → image-DJgspIhI.js} +4 -4
  158. package/dist/plugin-sdk/{image-ops-D4rLqyFG.js → image-ops-BeZ1nzVS.js} +1 -1
  159. package/dist/plugin-sdk/index.js +53 -53
  160. package/dist/plugin-sdk/{ir-hakANnEW.js → ir-CRPo3dMY.js} +4 -4
  161. package/dist/plugin-sdk/{local-roots-CnaI2qJk.js → local-roots-C5Ju-AZh.js} +3 -3
  162. package/dist/plugin-sdk/{login-CcPkuK_e.js → login-ZAWRtiUn.js} +7 -7
  163. package/dist/plugin-sdk/{login-qr-C6rEbZ_4.js → login-qr-Vep4Qyfk.js} +9 -9
  164. package/dist/plugin-sdk/{manager-D0UeotCy.js → manager-BiSIuKTu.js} +8 -8
  165. package/dist/plugin-sdk/{manifest-registry-COeXOYi0.js → manifest-registry-DJWLGnsy.js} +1 -1
  166. package/dist/plugin-sdk/{markdown-tables-Bf31F9r6.js → markdown-tables-D3ber0Yy.js} +1 -1
  167. package/dist/plugin-sdk/{message-channel-CMtCA18K.js → message-channel-BvbVXKrt.js} +1 -1
  168. package/dist/plugin-sdk/{model-selection-CneSW_JC.js → model-selection-QOKxGwpD.js} +4 -4
  169. package/dist/{outbound-attachment-91Q9pKkZ.js → plugin-sdk/outbound-attachment-Dukb2BCs.js} +2 -2
  170. package/dist/plugin-sdk/{outbound-ChKX7wv_.js → outbound-simNZ392.js} +7 -7
  171. package/dist/plugin-sdk/{pi-auth-json-DfDP_Pzq.js → pi-auth-json-DjRxrq8j.js} +5 -5
  172. package/dist/plugin-sdk/{pi-embedded-helpers-idRp2oNz.js → pi-embedded-helpers-onFghmXi.js} +17 -17
  173. package/dist/plugin-sdk/{plugins-CCHKO6PS.js → plugins-Cmzpj_lq.js} +4 -4
  174. package/dist/plugin-sdk/{pw-ai-DC87yDnd.js → pw-ai-MetkkJzy.js} +8 -8
  175. package/dist/plugin-sdk/{qmd-manager-CnTnX_JH.js → qmd-manager-CD1M3q9a.js} +4 -4
  176. package/dist/plugin-sdk/{registry-BlMOtcPL.js → registry-BX2vORAB.js} +2 -2
  177. package/dist/plugin-sdk/{replies-OoosoUz9.js → replies-_91oZTzt.js} +7 -6
  178. package/dist/plugin-sdk/{reply-C_4ajFUt.js → reply-CKIG0ycG.js} +272 -115
  179. package/dist/plugin-sdk/{reply-prefix-G9ruZ2EI.js → reply-prefix-DuegEkbr.js} +1 -1
  180. package/dist/plugin-sdk/{resolve-outbound-target-D9fgJ-GG.js → resolve-outbound-target-CeT5UKn8.js} +2 -2
  181. package/dist/plugin-sdk/{resolve-route-yBLQIeuf.js → resolve-route-DxmOOAQ3.js} +3 -3
  182. package/dist/plugin-sdk/{retry-BG4opKt7.js → retry-DOt8b7_o.js} +1 -1
  183. package/dist/plugin-sdk/{runner-BkVA5r9t.js → runner-DycIbJjS.js} +9 -9
  184. package/dist/plugin-sdk/{send-C40m59QO.js → send-5KyVAcYY.js} +10 -10
  185. package/dist/plugin-sdk/{send-C9Q83PfF.js → send-BUW2Leik.js} +26 -7
  186. package/dist/plugin-sdk/{send-CgLOABgR.js → send-DWnqhh6N.js} +10 -10
  187. package/dist/plugin-sdk/{send-CiTMY1uN.js → send-Du8i1Fom.js} +7 -7
  188. package/dist/plugin-sdk/{send-b1mZbvoC.js → send-Fch4vj7_.js} +6 -6
  189. package/dist/plugin-sdk/{session-DBbj6znF.js → session-PaIae3bL.js} +4 -4
  190. package/dist/plugin-sdk/{skill-commands-Cu6XAfOe.js → skill-commands-CNFldYrK.js} +5 -5
  191. package/dist/plugin-sdk/{skills-BTu_-5jA.js → skills-CJCz6K_W.js} +7 -7
  192. package/dist/plugin-sdk/slack/monitor/events/channels.d.ts +1 -0
  193. package/dist/plugin-sdk/slack/monitor/events/members.d.ts +1 -0
  194. package/dist/plugin-sdk/slack/monitor/events/pins.d.ts +1 -0
  195. package/dist/plugin-sdk/slack/monitor/events/reactions.d.ts +1 -0
  196. package/dist/plugin-sdk/slack/monitor/events.d.ts +2 -0
  197. package/dist/plugin-sdk/slack/monitor/message-handler.d.ts +2 -0
  198. package/dist/plugin-sdk/slack/monitor/provider.d.ts +6 -0
  199. package/dist/plugin-sdk/slack/monitor/replies.d.ts +2 -0
  200. package/dist/plugin-sdk/slack/monitor/types.d.ts +4 -0
  201. package/dist/plugin-sdk/slack/threading.d.ts +9 -0
  202. package/dist/plugin-sdk/{sqlite-CH3lxc5D.js → sqlite-Bmy459sE.js} +1 -1
  203. package/dist/plugin-sdk/{store-DDOdV26p.js → store-B_h0hmNL.js} +2 -2
  204. package/dist/plugin-sdk/{subsystem-DoAZkah-.js → subsystem-DJYuxViY.js} +1 -1
  205. package/dist/plugin-sdk/{tables-DAJbUPhT.js → tables-DCBJv1Oa.js} +1 -1
  206. package/dist/plugin-sdk/{target-errors-CeKndUCY.js → target-errors-gEAboF7P.js} +2 -2
  207. package/dist/plugin-sdk/{thinking-lC2HmTea.js → thinking-D8Se3YVf.js} +5 -5
  208. package/dist/plugin-sdk/{tokens-Dag82kdi.js → tokens-Cx0xANZO.js} +1 -1
  209. package/dist/plugin-sdk/{tool-images-D_St2NkT.js → tool-images-CIoUqeS9.js} +2 -2
  210. package/dist/plugin-sdk/{tool-loop-detection-BAz1GNFQ.js → tool-loop-detection-B_Opna2S.js} +2 -2
  211. package/dist/plugin-sdk/web-HBE7hmNI.js +65 -0
  212. package/dist/plugin-sdk/{whatsapp-actions-CicFq_6w.js → whatsapp-actions-DqfQYPke.js} +21 -21
  213. package/dist/{plugins-DufH79A4.js → plugins-BYw4LpqC.js} +2 -2
  214. package/dist/{plugins-cli-CmrER-zr.js → plugins-cli-CKU99tGc.js} +71 -71
  215. package/dist/{plugins-cli-B03aSLgf.js → plugins-cli-DBrRLw_b.js} +4 -4
  216. package/dist/{ports-tyVdO5z0.js → ports-CJyNmOL8.js} +2 -2
  217. package/dist/{ports-B6fsVJW2.js → ports-CbYVfAGi.js} +1 -1
  218. package/dist/{program-Djk08-l7.js → program-CuRfrHul.js} +9 -9
  219. package/dist/{program-context-DlRS1tcr.js → program-context-Ct_MVt2A.js} +40 -40
  220. package/dist/{prompt-select-styled-CMszn2hx.js → prompt-select-styled-BhdDmaM8.js} +4 -4
  221. package/dist/{prompt-select-styled-JkMJPt68.js → prompt-select-styled-Cb9hZTTU.js} +37 -37
  222. package/dist/{provider-auth-helpers-ZV7-WRyR.js → provider-auth-helpers-B7bEwRrS.js} +5 -5
  223. package/dist/{provider-auth-helpers-36LOZ6SL.js → provider-auth-helpers-CPkc9hAj.js} +1 -1
  224. package/dist/{push-apns-Cm-ZTdUp.js → push-apns-BqDXb4kj.js} +4 -4
  225. package/dist/{push-apns-TUUEPpx1.js → push-apns-Cor1JBvm.js} +1 -1
  226. package/dist/{pw-ai-Dp9c5KD_.js → pw-ai-BLLeU82T.js} +1 -1
  227. package/dist/{pw-ai-fTf_Sq93.js → pw-ai-CWMnNfVs.js} +7 -7
  228. package/dist/{qmd-manager-CNVBA7OI.js → qmd-manager-D72OxpMn.js} +18 -18
  229. package/dist/{qr-cli-BQpNL00w.js → qr-cli-jnAlWxJ1.js} +1 -1
  230. package/dist/{register.agent-7Pku8mId.js → register.agent-BY4qQIyM.js} +81 -81
  231. package/dist/{register.agent-DsFrb0R7.js → register.agent-CPhQWbIL.js} +8 -8
  232. package/dist/register.configure-CtqFfgvY.js +147 -0
  233. package/dist/{register.configure-BMfcA9Sh.js → register.configure-d_7CE6cU.js} +8 -8
  234. package/dist/{register.maintenance-DfoSO5fo.js → register.maintenance-BiQeKBPQ.js} +84 -84
  235. package/dist/{register.maintenance-BFSQHBgH.js → register.maintenance-CQVF8TPW.js} +10 -10
  236. package/dist/{register.message-C-5P7V4g.js → register.message-5XIQHlJd.js} +4 -4
  237. package/dist/{register.message-BTCpZ8RW.js → register.message-CprmJPCV.js} +63 -63
  238. package/dist/{register.onboard-CVXaGmEF.js → register.onboard-D4hhxM8J.js} +6 -6
  239. package/dist/{register.onboard-CTO-qkWZ.js → register.onboard-DpvOjkyQ.js} +74 -74
  240. package/dist/{register.setup-BzaCK19n.js → register.setup-D3PpeeN2.js} +6 -6
  241. package/dist/{register.setup-Dg1Ud7ox.js → register.setup-MPlYCmF_.js} +77 -77
  242. package/dist/{register.status-health-sessions-DjwY1WQe.js → register.status-health-sessions-BE5frGYt.js} +5 -5
  243. package/dist/{register.status-health-sessions-IymXWaoK.js → register.status-health-sessions-BUzgM9fv.js} +75 -75
  244. package/dist/{register.subclis-Bw1N3fIn.js → register.subclis-BVUvjO4p.js} +9 -9
  245. package/dist/{replies-MVPArv-r.js → replies-9ipbTXMP.js} +5 -4
  246. package/dist/{replies-DtFxhHfI.js → replies-BCd0AxfK.js} +5 -4
  247. package/dist/{replies-DKKNtkun.js → replies-BVBgaEtE.js} +5 -4
  248. package/dist/{replies-DhmTgroV.js → replies-CSjH2EQ6.js} +5 -4
  249. package/dist/{reply-pTxrsMtG.js → reply-C7XZ5Kp3.js} +325 -168
  250. package/dist/{reply-prefix-CbuTBmdm.js → reply-prefix-CJc9NzGX.js} +1 -1
  251. package/dist/{resolve-route-DuqgZ7wS.js → resolve-route-C5pUt_LC.js} +2 -2
  252. package/dist/{routes-Bh-1i4ub.js → routes-BgjaVwmu.js} +8 -8
  253. package/dist/{rpc-RAW16k0Y.js → rpc-DrpAw2Te.js} +1 -1
  254. package/dist/{run-main-DnYUey0K.js → run-main-CmSuw5Re.js} +16 -16
  255. package/dist/{runner-CLY-9j7g.js → runner-CcRtHLpd.js} +1 -1
  256. package/dist/{runner-CXGYviGa.js → runner-fLI-fZ-v.js} +20 -20
  257. package/dist/{sandbox-Dbz4ladn.js → sandbox-B1lVufmT.js} +18 -18
  258. package/dist/{sandbox-cli-Dx1942n8.js → sandbox-cli--odc2cPK.js} +20 -20
  259. package/dist/{security-cli-Ci7ujUBk.js → security-cli-s6yE26pJ.js} +36 -36
  260. package/dist/{send-CTGeWUSD.js → send-B3u53ZAu.js} +20 -1
  261. package/dist/{send-i695V0Ow.js → send-BilxFvrd.js} +13 -13
  262. package/dist/{send-Cr8R-bMi.js → send-CAuzoyQe.js} +20 -1
  263. package/dist/{send-D_FU_HIa.js → send-D6r6s6Nf.js} +20 -1
  264. package/dist/{send-H5TFGeHl.js → send-DAb8zkAc.js} +6 -6
  265. package/dist/{send-ElgbtTa_.js → send-UJWeL6fz.js} +6 -6
  266. package/dist/{send-BGmblGeb.js → send-YdmCYGSj.js} +6 -6
  267. package/dist/{send-CKGUBMnM.js → send-_y-b5SXH.js} +24 -5
  268. package/dist/{server-context-BN_KGt0e.js → server-context-DFBpyKBE.js} +5 -5
  269. package/dist/{server-node-events-Dhbdspn_.js → server-node-events-DeVBy3RG.js} +4 -4
  270. package/dist/{server-node-events-DQYNf8b_.js → server-node-events-E7ENYs3y.js} +63 -63
  271. package/dist/{service-x8sNoic1.js → service-Bs5m4_g0.js} +15 -15
  272. package/dist/{session-SFd4vyTd.js → session-Gi1pc_jn.js} +2 -2
  273. package/dist/{session-dirs-DoK1aPxY.js → session-dirs-DMMeC5kT.js} +1 -1
  274. package/dist/{session-dirs-CFHymbM9.js → session-dirs-Dz06Isny.js} +16 -16
  275. package/dist/{sessions-CwvGRwvW.js → sessions-fj33u4f-.js} +13 -13
  276. package/dist/{shared-BlqeHl3I.js → shared-BYm87AKE.js} +1 -1
  277. package/dist/{shared-D-u4KNkt.js → shared-Btbxw_J6.js} +3 -3
  278. package/dist/{skill-commands-VCmL7mMC.js → skill-commands-27Clp6Hw.js} +5 -5
  279. package/dist/{skill-scanner-CMBwwxis.js → skill-scanner-BRf3FyA6.js} +5 -5
  280. package/dist/{skills-DhT6my9R.js → skills-DO1RiQMB.js} +4 -4
  281. package/dist/{skills-cli-AXXW1-ib.js → skills-cli-D8Z6O8tz.js} +7 -7
  282. package/dist/{skills-install-CHhkAUEW.js → skills-install-D2uuaBF9.js} +3 -3
  283. package/dist/{skills-status-B90dNffv.js → skills-status-C9NLYboA.js} +1 -1
  284. package/dist/{sqlite-CzeIEe5A.js → sqlite-DCO2j-0b.js} +12 -12
  285. package/dist/{status-KRRAxPjg.js → status-DQmoPN3T.js} +25 -25
  286. package/dist/{status-D32_SxwC.js → status-DUJLCUGg.js} +2 -2
  287. package/dist/{status-C-PQHlxh.js → status-Di2Pqiji.js} +1 -1
  288. package/dist/{status-CFnZ8E56.js → status-DppGMZ2s.js} +3 -3
  289. package/dist/{status.update-BdxnLoXT.js → status.update-CkYiGnzE.js} +3 -3
  290. package/dist/{store-YBnR7qvG.js → store-CLuh0zX0.js} +5 -5
  291. package/dist/{subagent-registry-DkjybHrK.js → subagent-registry-D3Pj0bnZ.js} +200 -43
  292. package/dist/{system-cli-CNufxt6H.js → system-cli-DQpLuBbA.js} +11 -11
  293. package/dist/{systemd-_79iBiaB.js → systemd-Blg-bgkO.js} +5 -5
  294. package/dist/{systemd-hints--ykZ9med.js → systemd-hints-pRBdkBPI.js} +6 -6
  295. package/dist/{systemd-linger--ZF5kAeJ.js → systemd-linger-DqOrhpC-.js} +1 -1
  296. package/dist/{tables-LYKSFoqx.js → tables-DhRyfXvl.js} +1 -1
  297. package/dist/{target-errors-BrrPOPT5.js → target-errors-DKUMw1tA.js} +4 -4
  298. package/dist/{tool-images-BCkPMulQ.js → tool-images-Cdj7iZ0t.js} +1 -1
  299. package/dist/{tui-BfllwI0b.js → tui-DbvXHepE.js} +7 -7
  300. package/dist/{tui-cli-DM4ahQxS.js → tui-cli-CIqa9qRn.js} +28 -28
  301. package/dist/{update-BNGNVRaT.js → update-CqhqeDij.js} +3 -3
  302. package/dist/{update-check-CEFJiPeh.js → update-check-DOy5cGkD.js} +5 -5
  303. package/dist/{update-cli-DXd4fNuS.js → update-cli-CsicqPiK.js} +10 -10
  304. package/dist/{update-cli-DMrRvy-m.js → update-cli-DJIsdQeJ.js} +94 -94
  305. package/dist/{web-Dsgry4ji.js → web-DRLO5z6-.js} +3 -3
  306. package/dist/{web-IfDcZx01.js → web-DShT68Ix.js} +3 -3
  307. package/dist/{web-DCNwbuhj.js → web-EGziWSH9.js} +8 -8
  308. package/dist/web-lXypZuaq.js +109 -0
  309. package/dist/{webhooks-cli-Ay0jR658.js → webhooks-cli-BJ1WiH3W.js} +4 -4
  310. package/dist/{whatsapp-actions-Dsvkb9dr.js → whatsapp-actions-lSqVUZ_h.js} +15 -15
  311. package/dist/{with-timeout-n3bwhefQ.js → with-timeout-OwJVCBFG.js} +1 -1
  312. package/dist/{workspace-dirs-DbX5fBAC.js → workspace-dirs-CuYuE5F1.js} +1 -1
  313. package/dist/{wsl-C4424szg.js → wsl-BbXxnokd.js} +2 -2
  314. package/package.json +1 -1
  315. package/dist/plugin-sdk/web-BlY2wNrk.js +0 -65
  316. package/dist/register.configure-CJ6IYgGS.js +0 -147
  317. package/dist/web-CCqlC0N_.js +0 -109
@@ -23,7 +23,7 @@ import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPref
23
23
  import { _ as listEnabledDiscordAccounts, a as isWhatsAppGroupJid, c as listEnabledTelegramAccounts, d as resolveTelegramToken, f as resolveSlackAccount, g as createDiscordActionGate, h as resolveSlackBotToken, l as listTelegramAccountIds, m as resolveSlackAppToken, n as listChannelPlugins, o as normalizeWhatsAppTarget, r as normalizeChannelId$1, s as createTelegramActionGate, t as getChannelPlugin, u as resolveTelegramAccount, v as resolveDiscordAccount, y as normalizeDiscordToken } from "./plugins-z3bMeGdF.js";
24
24
  import { a as logWebSelfId, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, u as readWebSelfId } from "./accounts-C-TqofPl.js";
25
25
  import { t as normalizeChatType } from "./chat-type-CeFzWU-6.js";
26
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, o as parseSlackBlocksInput, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-D_FU_HIa.js";
26
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, r as markdownToSlackMrkdwn, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-D6r6s6Nf.js";
27
27
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as allowListMatches$1, d as parseDiscordModalCustomId, dt as normalizeDiscordSlug, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordAllowListMatch, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordMemberAccessState, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordComponentEntry, mt as resolveDiscordGuildEntry, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordAllowList, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BFb93sxb.js";
28
28
  import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$4 } from "./with-timeout-X8qW3T0a.js";
29
29
  import { C as getGlobalHookRunner, S as parseInlineDirectives$1, _ as normalizeTargetForProvider, a as normalizeOutboundPayloadsForJson, b as MEDIA_TOKEN_RE, c as applyReplyThreading, d as isRenderablePayload, f as shouldSuppressMessagingToolReplies, g as normalizeChannelTargetInput, h as buildTargetResolverSignature, i as normalizeOutboundPayloads, l as filterMessagingToolDuplicates, m as resolveReplyToMode, o as normalizeReplyPayloadsForDelivery, p as createReplyToModeFilterForChannel, r as formatOutboundPayloadLog, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as filterMessagingToolMediaDuplicates, v as throwIfAborted, w as initializeGlobalHookRunner, x as splitMediaFromOutput, y as parseReplyDirectives } from "./deliver-C9pjS-4q.js";
@@ -90,7 +90,7 @@ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_I
90
90
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-CnkjzJiI.js";
91
91
  import { t as parseTimeoutMs } from "./parse-timeout-zNJBr1fY.js";
92
92
  import { t as makeProxyFetch } from "./proxy-DL3MD6-P.js";
93
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-MVPArv-r.js";
93
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-9ipbTXMP.js";
94
94
  import { r as detectBinary } from "./onboard-helpers-xm_EZevL.js";
95
95
  import { t as resolvePairingIdLabel } from "./pairing-labels-Bq0F29US.js";
96
96
  import { t as getActiveWebListener } from "./active-listener-E3rDSAZp.js";
@@ -44190,7 +44190,7 @@ function isVoiceChannelType(type) {
44190
44190
  function createDefaultDeps() {
44191
44191
  return {
44192
44192
  sendMessageWhatsApp: async (...args) => {
44193
- const { sendMessageWhatsApp } = await import("./web-IfDcZx01.js");
44193
+ const { sendMessageWhatsApp } = await import("./web-DShT68Ix.js");
44194
44194
  return await sendMessageWhatsApp(...args);
44195
44195
  },
44196
44196
  sendMessageTelegram: async (...args) => {
@@ -44202,7 +44202,7 @@ function createDefaultDeps() {
44202
44202
  return await sendMessageDiscord(...args);
44203
44203
  },
44204
44204
  sendMessageSlack: async (...args) => {
44205
- const { sendMessageSlack } = await import("./send-D_FU_HIa.js").then((n) => n.n);
44205
+ const { sendMessageSlack } = await import("./send-D6r6s6Nf.js").then((n) => n.n);
44206
44206
  return await sendMessageSlack(...args);
44207
44207
  },
44208
44208
  sendMessageSignal: async (...args) => {
@@ -52171,8 +52171,12 @@ function inferSlackChannelType(channelId) {
52171
52171
  }
52172
52172
  function normalizeSlackChannelType(channelType, channelId) {
52173
52173
  const normalized = channelType?.trim().toLowerCase();
52174
- if (normalized === "im" || normalized === "mpim" || normalized === "channel" || normalized === "group") return normalized;
52175
- return inferSlackChannelType(channelId) ?? "channel";
52174
+ const inferred = inferSlackChannelType(channelId);
52175
+ if (normalized === "im" || normalized === "mpim" || normalized === "channel" || normalized === "group") {
52176
+ if (inferred === "im" && normalized !== "im") return "im";
52177
+ return normalized;
52178
+ }
52179
+ return inferred ?? "channel";
52176
52180
  }
52177
52181
  function createSlackMonitorContext(params) {
52178
52182
  const channelHistories = /* @__PURE__ */ new Map();
@@ -52440,7 +52444,7 @@ function migrateSlackChannelConfig(params) {
52440
52444
  //#endregion
52441
52445
  //#region src/slack/monitor/events/channels.ts
52442
52446
  function registerSlackChannelEvents(params) {
52443
- const { ctx } = params;
52447
+ const { ctx, trackEvent } = params;
52444
52448
  const enqueueChannelSystemEvent = (params) => {
52445
52449
  if (!ctx.isChannelAllowed({
52446
52450
  channelId: params.channelId,
@@ -52463,6 +52467,7 @@ function registerSlackChannelEvents(params) {
52463
52467
  ctx.app.event("channel_created", async ({ event, body }) => {
52464
52468
  try {
52465
52469
  if (ctx.shouldDropMismatchedSlackEvent(body)) return;
52470
+ trackEvent?.();
52466
52471
  const payload = event;
52467
52472
  const channelId = payload.channel?.id;
52468
52473
  const channelName = payload.channel?.name;
@@ -52478,6 +52483,7 @@ function registerSlackChannelEvents(params) {
52478
52483
  ctx.app.event("channel_rename", async ({ event, body }) => {
52479
52484
  try {
52480
52485
  if (ctx.shouldDropMismatchedSlackEvent(body)) return;
52486
+ trackEvent?.();
52481
52487
  const payload = event;
52482
52488
  const channelId = payload.channel?.id;
52483
52489
  enqueueChannelSystemEvent({
@@ -52492,6 +52498,7 @@ function registerSlackChannelEvents(params) {
52492
52498
  ctx.app.event("channel_id_changed", async ({ event, body }) => {
52493
52499
  try {
52494
52500
  if (ctx.shouldDropMismatchedSlackEvent(body)) return;
52501
+ trackEvent?.();
52495
52502
  const payload = event;
52496
52503
  const oldChannelId = payload.old_channel_id;
52497
52504
  const newChannelId = payload.new_channel_id;
@@ -52897,10 +52904,11 @@ function registerSlackInteractionEvents(params) {
52897
52904
  //#endregion
52898
52905
  //#region src/slack/monitor/events/members.ts
52899
52906
  function registerSlackMemberEvents(params) {
52900
- const { ctx } = params;
52907
+ const { ctx, trackEvent } = params;
52901
52908
  const handleMemberChannelEvent = async (params) => {
52902
52909
  try {
52903
52910
  if (ctx.shouldDropMismatchedSlackEvent(params.body)) return;
52911
+ trackEvent?.();
52904
52912
  const payload = params.event;
52905
52913
  const channelId = payload.channel;
52906
52914
  const channelInfo = channelId ? await ctx.resolveChannelName(channelId) : {};
@@ -53036,9 +53044,10 @@ function registerSlackMessageEvents(params) {
53036
53044
  //#endregion
53037
53045
  //#region src/slack/monitor/events/pins.ts
53038
53046
  async function handleSlackPinEvent(params) {
53039
- const { ctx, body, event, action, contextKeySuffix, errorLabel } = params;
53047
+ const { ctx, trackEvent, body, event, action, contextKeySuffix, errorLabel } = params;
53040
53048
  try {
53041
53049
  if (ctx.shouldDropMismatchedSlackEvent(body)) return;
53050
+ trackEvent?.();
53042
53051
  const payload = event;
53043
53052
  const channelId = payload.channel_id;
53044
53053
  const channelInfo = channelId ? await ctx.resolveChannelName(channelId) : {};
@@ -53067,10 +53076,11 @@ async function handleSlackPinEvent(params) {
53067
53076
  }
53068
53077
  }
53069
53078
  function registerSlackPinEvents(params) {
53070
- const { ctx } = params;
53079
+ const { ctx, trackEvent } = params;
53071
53080
  ctx.app.event("pin_added", async ({ event, body }) => {
53072
53081
  await handleSlackPinEvent({
53073
53082
  ctx,
53083
+ trackEvent,
53074
53084
  body,
53075
53085
  event,
53076
53086
  action: "pinned",
@@ -53081,6 +53091,7 @@ function registerSlackPinEvents(params) {
53081
53091
  ctx.app.event("pin_removed", async ({ event, body }) => {
53082
53092
  await handleSlackPinEvent({
53083
53093
  ctx,
53094
+ trackEvent,
53084
53095
  body,
53085
53096
  event,
53086
53097
  action: "unpinned",
@@ -53093,11 +53104,12 @@ function registerSlackPinEvents(params) {
53093
53104
  //#endregion
53094
53105
  //#region src/slack/monitor/events/reactions.ts
53095
53106
  function registerSlackReactionEvents(params) {
53096
- const { ctx } = params;
53107
+ const { ctx, trackEvent } = params;
53097
53108
  const handleReactionEvent = async (event, action) => {
53098
53109
  try {
53099
53110
  const item = event.item;
53100
53111
  if (!item || item.type !== "message") return;
53112
+ trackEvent?.();
53101
53113
  const channelInfo = item.channel ? await ctx.resolveChannelName(item.channel) : {};
53102
53114
  const channelType = channelInfo?.type;
53103
53115
  if (!ctx.isChannelAllowed({
@@ -53141,10 +53153,22 @@ function registerSlackMonitorEvents(params) {
53141
53153
  ctx: params.ctx,
53142
53154
  handleSlackMessage: params.handleSlackMessage
53143
53155
  });
53144
- registerSlackReactionEvents({ ctx: params.ctx });
53145
- registerSlackMemberEvents({ ctx: params.ctx });
53146
- registerSlackChannelEvents({ ctx: params.ctx });
53147
- registerSlackPinEvents({ ctx: params.ctx });
53156
+ registerSlackReactionEvents({
53157
+ ctx: params.ctx,
53158
+ trackEvent: params.trackEvent
53159
+ });
53160
+ registerSlackMemberEvents({
53161
+ ctx: params.ctx,
53162
+ trackEvent: params.trackEvent
53163
+ });
53164
+ registerSlackChannelEvents({
53165
+ ctx: params.ctx,
53166
+ trackEvent: params.trackEvent
53167
+ });
53168
+ registerSlackPinEvents({
53169
+ ctx: params.ctx,
53170
+ trackEvent: params.trackEvent
53171
+ });
53148
53172
  registerSlackInteractionEvents({ ctx: params.ctx });
53149
53173
  }
53150
53174
 
@@ -53317,7 +53341,7 @@ async function startSlackStream(params) {
53317
53341
  stopped: false
53318
53342
  };
53319
53343
  if (text) {
53320
- await streamer.append({ markdown_text: text });
53344
+ await streamer.append({ markdown_text: markdownToSlackMrkdwn(text) });
53321
53345
  logVerbose(`slack-stream: appended initial text (${text.length} chars)`);
53322
53346
  }
53323
53347
  return session;
@@ -53332,7 +53356,7 @@ async function appendSlackStream(params) {
53332
53356
  return;
53333
53357
  }
53334
53358
  if (!text) return;
53335
- await session.streamer.append({ markdown_text: text });
53359
+ await session.streamer.append({ markdown_text: markdownToSlackMrkdwn(text) });
53336
53360
  logVerbose(`slack-stream: appended ${text.length} chars`);
53337
53361
  }
53338
53362
  /**
@@ -53349,7 +53373,7 @@ async function stopSlackStream(params) {
53349
53373
  }
53350
53374
  session.stopped = true;
53351
53375
  logVerbose(`slack-stream: stopping stream in ${session.channel} thread=${session.threadTs}${text ? ` (final text: ${text.length} chars)` : ""}`);
53352
- await session.streamer.stop(text ? { markdown_text: text } : void 0);
53376
+ await session.streamer.stop(text ? { markdown_text: markdownToSlackMrkdwn(text) } : void 0);
53353
53377
  logVerbose("slack-stream: stream stopped");
53354
53378
  }
53355
53379
 
@@ -53368,12 +53392,21 @@ function resolveSlackThreadContext(params) {
53368
53392
  messageThreadId: isThreadReply ? incomingThreadTs : params.replyToMode === "all" ? messageTs : void 0
53369
53393
  };
53370
53394
  }
53395
+ /**
53396
+ * Resolves Slack thread targeting for replies and status indicators.
53397
+ *
53398
+ * @returns replyThreadTs - Thread timestamp for reply messages
53399
+ * @returns statusThreadTs - Thread timestamp for status indicators (typing, etc.)
53400
+ * @returns isThreadReply - true if this is a genuine user reply in a thread,
53401
+ * false if thread_ts comes from a bot status message
53402
+ */
53371
53403
  function resolveSlackThreadTargets(params) {
53372
- const { incomingThreadTs, messageTs } = resolveSlackThreadContext(params);
53373
- const replyThreadTs = incomingThreadTs ?? (params.replyToMode === "all" ? messageTs : void 0);
53404
+ const { incomingThreadTs, messageTs, isThreadReply } = resolveSlackThreadContext(params);
53405
+ const replyThreadTs = isThreadReply ? incomingThreadTs : params.replyToMode === "all" ? messageTs : void 0;
53374
53406
  return {
53375
53407
  replyThreadTs,
53376
- statusThreadTs: replyThreadTs ?? messageTs
53408
+ statusThreadTs: replyThreadTs,
53409
+ isThreadReply
53377
53410
  };
53378
53411
  }
53379
53412
 
@@ -53413,12 +53446,13 @@ async function dispatchPreparedSlackMessage(prepared) {
53413
53446
  deliveryContext: {
53414
53447
  channel: "slack",
53415
53448
  to: `user:${message.user}`,
53416
- accountId: route.accountId
53449
+ accountId: route.accountId,
53450
+ threadId: prepared.ctxPayload.MessageThreadId
53417
53451
  },
53418
53452
  ctx: prepared.ctxPayload
53419
53453
  });
53420
53454
  }
53421
- const { statusThreadTs } = resolveSlackThreadTargets({
53455
+ const { statusThreadTs, isThreadReply } = resolveSlackThreadTargets({
53422
53456
  message,
53423
53457
  replyToMode: ctx.replyToMode
53424
53458
  });
@@ -53430,7 +53464,8 @@ async function dispatchPreparedSlackMessage(prepared) {
53430
53464
  replyToMode: ctx.replyToMode,
53431
53465
  incomingThreadTs,
53432
53466
  messageTs,
53433
- hasRepliedRef
53467
+ hasRepliedRef,
53468
+ isThreadReply
53434
53469
  });
53435
53470
  const typingTarget = statusThreadTs ? `${message.channel}/${statusThreadTs}` : message.channel;
53436
53471
  const typingCallbacks = createTypingCallbacks({
@@ -53495,7 +53530,8 @@ async function dispatchPreparedSlackMessage(prepared) {
53495
53530
  accountId: account.accountId,
53496
53531
  runtime,
53497
53532
  textLimit: ctx.textLimit,
53498
- replyThreadTs
53533
+ replyThreadTs,
53534
+ replyToMode: ctx.replyToMode
53499
53535
  });
53500
53536
  replyPlan.markSent();
53501
53537
  };
@@ -53556,7 +53592,7 @@ async function dispatchPreparedSlackMessage(prepared) {
53556
53592
  token: ctx.botToken,
53557
53593
  channel: draftChannelId,
53558
53594
  ts: draftMessageId,
53559
- text: finalText.trim()
53595
+ text: markdownToSlackMrkdwn(finalText.trim())
53560
53596
  });
53561
53597
  return;
53562
53598
  } catch (err) {
@@ -53586,7 +53622,8 @@ async function dispatchPreparedSlackMessage(prepared) {
53586
53622
  accountId: account.accountId,
53587
53623
  runtime,
53588
53624
  textLimit: ctx.textLimit,
53589
- replyThreadTs
53625
+ replyThreadTs,
53626
+ replyToMode: ctx.replyToMode
53590
53627
  });
53591
53628
  replyPlan.markSent();
53592
53629
  },
@@ -53595,7 +53632,8 @@ async function dispatchPreparedSlackMessage(prepared) {
53595
53632
  typingCallbacks.onIdle?.();
53596
53633
  },
53597
53634
  onReplyStart: typingCallbacks.onReplyStart,
53598
- onIdle: typingCallbacks.onIdle
53635
+ onIdle: typingCallbacks.onIdle,
53636
+ onCleanup: typingCallbacks.onCleanup
53599
53637
  });
53600
53638
  const draftStream = createSlackDraftStream({
53601
53639
  target: prepared.replyTarget,
@@ -54236,10 +54274,13 @@ async function prepareSlackMessage(params) {
54236
54274
  const mergedMedia = [...media ?? [], ...attachmentContent?.media ?? []];
54237
54275
  const effectiveDirectMedia = mergedMedia.length > 0 ? mergedMedia : null;
54238
54276
  const mediaPlaceholder = effectiveDirectMedia ? effectiveDirectMedia.map((m) => m.placeholder).join(" ") : void 0;
54277
+ const fileOnlyFallback = !mediaPlaceholder && (message.files?.length ?? 0) > 0 ? message.files.slice(0, 5).map((f) => f.name ?? "file").join(", ") : void 0;
54278
+ const fileOnlyPlaceholder = fileOnlyFallback ? `[Slack file: ${fileOnlyFallback}]` : void 0;
54239
54279
  const rawBody = [
54240
54280
  (message.text ?? "").trim(),
54241
54281
  attachmentContent?.text,
54242
- mediaPlaceholder
54282
+ mediaPlaceholder,
54283
+ fileOnlyPlaceholder
54243
54284
  ].filter(Boolean).join("\n") || "";
54244
54285
  if (!rawBody) return null;
54245
54286
  const ackReaction = resolveAckReaction(cfg, route.agentId, {
@@ -54414,7 +54455,7 @@ async function prepareSlackMessage(params) {
54414
54455
  ReplyToId: threadContext.replyToId,
54415
54456
  MessageThreadId: threadContext.messageThreadId,
54416
54457
  ParentSessionKey: threadKeys.parentSessionKey,
54417
- ThreadStarterBody: threadStarterBody,
54458
+ ThreadStarterBody: !threadSessionPreviousTimestamp ? threadStarterBody : void 0,
54418
54459
  ThreadHistoryBody: threadHistoryBody,
54419
54460
  IsFirstThreadTurn: isThreadReply && threadTs && !threadSessionPreviousTimestamp ? true : void 0,
54420
54461
  ThreadLabel: threadLabel,
@@ -54438,7 +54479,8 @@ async function prepareSlackMessage(params) {
54438
54479
  sessionKey: route.mainSessionKey,
54439
54480
  channel: "slack",
54440
54481
  to: `user:${message.user}`,
54441
- accountId: route.accountId
54482
+ accountId: route.accountId,
54483
+ threadId: threadContext.messageThreadId
54442
54484
  } : void 0,
54443
54485
  onRecordError: (err) => {
54444
54486
  ctx.logger.warn({
@@ -54565,7 +54607,7 @@ function buildSeenMessageKey(channelId, ts) {
54565
54607
  return `${channelId}:${ts}`;
54566
54608
  }
54567
54609
  function createSlackMessageHandler(params) {
54568
- const { ctx, account } = params;
54610
+ const { ctx, account, trackEvent } = params;
54569
54611
  const debounceMs = resolveInboundDebounceMs({
54570
54612
  cfg: ctx.cfg,
54571
54613
  channel: "slack"
@@ -54655,6 +54697,7 @@ function createSlackMessageHandler(params) {
54655
54697
  if (seenMessageKey && wasSeen) {
54656
54698
  if (opts.source !== "app_mention" || !consumeAppMentionRetryKey(seenMessageKey)) return;
54657
54699
  }
54700
+ trackEvent?.();
54658
54701
  const resolvedMessage = await threadTsResolver.resolve({
54659
54702
  message,
54660
54703
  source: opts.source
@@ -55128,7 +55171,7 @@ async function registerSlackMonitorSlashCommands(params) {
55128
55171
  });
55129
55172
  const deliverSlashPayloads = async (replies) => {
55130
55173
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
55131
- import("./replies-MVPArv-r.js").then((n) => n.r),
55174
+ import("./replies-9ipbTXMP.js").then((n) => n.r),
55132
55175
  import("./chunk-D6AoZjLE.js").then((n) => n.s),
55133
55176
  import("./markdown-tables-BU_73oGX.js").then((n) => n.t)
55134
55177
  ]);
@@ -55308,6 +55351,73 @@ const slackBoltModule = SlackBolt;
55308
55351
  const { App, HTTPReceiver } = (slackBoltModule.App ? slackBoltModule : slackBoltModule.default) ?? slackBoltModule;
55309
55352
  const SLACK_WEBHOOK_MAX_BODY_BYTES = 1024 * 1024;
55310
55353
  const SLACK_WEBHOOK_BODY_TIMEOUT_MS = 3e4;
55354
+ const SLACK_SOCKET_RECONNECT_POLICY = {
55355
+ initialMs: 2e3,
55356
+ maxMs: 3e4,
55357
+ factor: 1.8,
55358
+ jitter: .25,
55359
+ maxAttempts: 12
55360
+ };
55361
+ function getSocketEmitter(app) {
55362
+ const receiver = app.receiver;
55363
+ const client = receiver && typeof receiver === "object" ? receiver.client : void 0;
55364
+ if (!client || typeof client !== "object") return null;
55365
+ const on = client.on;
55366
+ const off = client.off;
55367
+ if (typeof on !== "function" || typeof off !== "function") return null;
55368
+ return {
55369
+ on: (event, listener) => on.call(client, event, listener),
55370
+ off: (event, listener) => off.call(client, event, listener)
55371
+ };
55372
+ }
55373
+ function waitForSlackSocketDisconnect(app, abortSignal) {
55374
+ return new Promise((resolve) => {
55375
+ const emitter = getSocketEmitter(app);
55376
+ if (!emitter) {
55377
+ abortSignal?.addEventListener("abort", () => resolve({ event: "disconnect" }), { once: true });
55378
+ return;
55379
+ }
55380
+ const disconnectListener = () => resolveOnce({ event: "disconnect" });
55381
+ const startFailListener = () => resolveOnce({ event: "unable_to_socket_mode_start" });
55382
+ const errorListener = (error) => resolveOnce({
55383
+ event: "error",
55384
+ error
55385
+ });
55386
+ const abortListener = () => resolveOnce({ event: "disconnect" });
55387
+ const cleanup = () => {
55388
+ emitter.off("disconnected", disconnectListener);
55389
+ emitter.off("unable_to_socket_mode_start", startFailListener);
55390
+ emitter.off("error", errorListener);
55391
+ abortSignal?.removeEventListener("abort", abortListener);
55392
+ };
55393
+ const resolveOnce = (value) => {
55394
+ cleanup();
55395
+ resolve(value);
55396
+ };
55397
+ emitter.on("disconnected", disconnectListener);
55398
+ emitter.on("unable_to_socket_mode_start", startFailListener);
55399
+ emitter.on("error", errorListener);
55400
+ abortSignal?.addEventListener("abort", abortListener, { once: true });
55401
+ });
55402
+ }
55403
+ /**
55404
+ * Detect non-recoverable Slack API / auth errors that should NOT be retried.
55405
+ * These indicate permanent credential problems (revoked bot, deactivated account, etc.)
55406
+ * and retrying will never succeed — continuing to retry blocks the entire gateway.
55407
+ */
55408
+ function isNonRecoverableSlackAuthError(error) {
55409
+ const msg = error instanceof Error ? error.message : typeof error === "string" ? error : "";
55410
+ return /account_inactive|invalid_auth|token_revoked|token_expired|not_authed|org_login_required|team_access_not_granted|missing_scope|cannot_find_service|invalid_token/i.test(msg);
55411
+ }
55412
+ function formatUnknownError(error) {
55413
+ if (error instanceof Error) return error.message;
55414
+ if (typeof error === "string") return error;
55415
+ try {
55416
+ return JSON.stringify(error);
55417
+ } catch {
55418
+ return "unknown error";
55419
+ }
55420
+ }
55311
55421
  function parseApiAppIdFromAppToken(raw) {
55312
55422
  const token = raw?.trim();
55313
55423
  if (!token) return;
@@ -55431,13 +55541,21 @@ async function monitorSlackProvider(opts = {}) {
55431
55541
  mediaMaxBytes,
55432
55542
  removeAckAfterReply
55433
55543
  });
55544
+ const trackEvent = opts.setStatus ? () => {
55545
+ opts.setStatus({
55546
+ lastEventAt: Date.now(),
55547
+ lastInboundAt: Date.now()
55548
+ });
55549
+ } : void 0;
55434
55550
  registerSlackMonitorEvents({
55435
55551
  ctx,
55436
55552
  account,
55437
55553
  handleSlackMessage: createSlackMessageHandler({
55438
55554
  ctx,
55439
- account
55440
- })
55555
+ account,
55556
+ trackEvent
55557
+ }),
55558
+ trackEvent
55441
55559
  });
55442
55560
  await registerSlackMonitorSlashCommands({
55443
55561
  ctx,
@@ -55526,13 +55644,52 @@ async function monitorSlackProvider(opts = {}) {
55526
55644
  opts.abortSignal?.addEventListener("abort", stopOnAbort, { once: true });
55527
55645
  try {
55528
55646
  if (slackMode === "socket") {
55529
- await app.start();
55530
- runtime.log?.("slack socket mode connected");
55531
- } else runtime.log?.(`slack http mode listening at ${slackWebhookPath}`);
55532
- if (opts.abortSignal?.aborted) return;
55533
- await new Promise((resolve) => {
55534
- opts.abortSignal?.addEventListener("abort", () => resolve(), { once: true });
55535
- });
55647
+ let reconnectAttempts = 0;
55648
+ while (!opts.abortSignal?.aborted) {
55649
+ try {
55650
+ await app.start();
55651
+ reconnectAttempts = 0;
55652
+ runtime.log?.("slack socket mode connected");
55653
+ } catch (err) {
55654
+ if (isNonRecoverableSlackAuthError(err)) {
55655
+ runtime.error?.(`slack socket mode failed to start due to non-recoverable auth error — skipping channel (${formatUnknownError(err)})`);
55656
+ throw err;
55657
+ }
55658
+ reconnectAttempts += 1;
55659
+ if (SLACK_SOCKET_RECONNECT_POLICY.maxAttempts > 0 && reconnectAttempts >= SLACK_SOCKET_RECONNECT_POLICY.maxAttempts) throw err;
55660
+ const delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
55661
+ runtime.error?.(`slack socket mode failed to start. retry ${reconnectAttempts}/${SLACK_SOCKET_RECONNECT_POLICY.maxAttempts || "∞"} in ${Math.round(delayMs / 1e3)}s (${formatUnknownError(err)})`);
55662
+ try {
55663
+ await sleepWithAbort(delayMs, opts.abortSignal);
55664
+ } catch {
55665
+ break;
55666
+ }
55667
+ continue;
55668
+ }
55669
+ if (opts.abortSignal?.aborted) break;
55670
+ const disconnect = await waitForSlackSocketDisconnect(app, opts.abortSignal);
55671
+ if (opts.abortSignal?.aborted) break;
55672
+ if (disconnect.error && isNonRecoverableSlackAuthError(disconnect.error)) {
55673
+ runtime.error?.(`slack socket mode disconnected due to non-recoverable auth error — skipping channel (${formatUnknownError(disconnect.error)})`);
55674
+ throw disconnect.error instanceof Error ? disconnect.error : new Error(formatUnknownError(disconnect.error));
55675
+ }
55676
+ reconnectAttempts += 1;
55677
+ if (SLACK_SOCKET_RECONNECT_POLICY.maxAttempts > 0 && reconnectAttempts >= SLACK_SOCKET_RECONNECT_POLICY.maxAttempts) throw new Error(`Slack socket mode reconnect max attempts reached (${reconnectAttempts}/${SLACK_SOCKET_RECONNECT_POLICY.maxAttempts}) after ${disconnect.event}`);
55678
+ const delayMs = computeBackoff(SLACK_SOCKET_RECONNECT_POLICY, reconnectAttempts);
55679
+ runtime.error?.(`slack socket disconnected (${disconnect.event}). retry ${reconnectAttempts}/${SLACK_SOCKET_RECONNECT_POLICY.maxAttempts || "∞"} in ${Math.round(delayMs / 1e3)}s${disconnect.error ? ` (${formatUnknownError(disconnect.error)})` : ""}`);
55680
+ await app.stop().catch(() => void 0);
55681
+ try {
55682
+ await sleepWithAbort(delayMs, opts.abortSignal);
55683
+ } catch {
55684
+ break;
55685
+ }
55686
+ }
55687
+ } else {
55688
+ runtime.log?.(`slack http mode listening at ${slackWebhookPath}`);
55689
+ if (!opts.abortSignal?.aborted) await new Promise((resolve) => {
55690
+ opts.abortSignal?.addEventListener("abort", () => resolve(), { once: true });
55691
+ });
55692
+ }
55536
55693
  } finally {
55537
55694
  opts.abortSignal?.removeEventListener("abort", stopOnAbort);
55538
55695
  unregisterHttpHandler?.();
@@ -59567,7 +59724,7 @@ function loadWebLoginQr() {
59567
59724
  return webLoginQrPromise;
59568
59725
  }
59569
59726
  function loadWebChannel() {
59570
- webChannelPromise ??= import("./web-IfDcZx01.js");
59727
+ webChannelPromise ??= import("./web-DShT68Ix.js");
59571
59728
  return webChannelPromise;
59572
59729
  }
59573
59730
  function loadWhatsAppActions() {
@@ -3,27 +3,27 @@ import { B as theme, O as danger } from "./utils-BlC2Fskb.js";
3
3
  import "./registry-lBbEkQ26.js";
4
4
  import { f as defaultRuntime } from "./subsystem-Cu1fn6xi.js";
5
5
  import "./exec-DwGfeG8v.js";
6
- import "./agent-scope-BGlpyppa.js";
7
- import { At as ensureAuthProfileStore, l as normalizeProviderId } from "./model-selection-0qDmOMXI.js";
6
+ import "./agent-scope-B6jLdNuI.js";
7
+ import { At as ensureAuthProfileStore, l as normalizeProviderId } from "./model-selection-C1pdWy7b.js";
8
8
  import "./github-copilot-token-D2zp6kMZ.js";
9
9
  import "./boolean-BsqeuxE6.js";
10
10
  import "./env-C9RBJHeg.js";
11
11
  import "./message-channel-DzkrSzpL.js";
12
- import "./config-CkqfHk27.js";
12
+ import "./config-JupjCURB.js";
13
13
  import "./manifest-registry-YRUqEw3J.js";
14
- import "./client-DkL-GDcp.js";
15
- import "./call-BVSmc2vl.js";
16
- import "./pairing-token-DGufCZxz.js";
14
+ import "./client-BW8Wuj5N.js";
15
+ import "./call-CYa4YbMh.js";
16
+ import "./pairing-token-DAVfcYo5.js";
17
17
  import { t as formatDocsLink } from "./links-DHovuBDt.js";
18
18
  import "./progress-9gCu2IkR.js";
19
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-BGGmDgbQ.js";
19
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CqPT9Cep.js";
20
20
  import path from "node:path";
21
- import fs from "node:fs/promises";
21
+ import fsPromises from "node:fs/promises";
22
22
 
23
23
  //#region src/agents/pi-auth-json.ts
24
24
  async function readAuthJson(filePath) {
25
25
  try {
26
- const raw = await fs.readFile(filePath, "utf8");
26
+ const raw = await fsPromises.readFile(filePath, "utf8");
27
27
  const parsed = JSON.parse(raw);
28
28
  if (!parsed || typeof parsed !== "object") return {};
29
29
  return parsed;
@@ -115,11 +115,11 @@ async function ensurePiAuthJsonFromAuthProfiles(agentDir) {
115
115
  wrote: false,
116
116
  authPath
117
117
  };
118
- await fs.mkdir(agentDir, {
118
+ await fsPromises.mkdir(agentDir, {
119
119
  recursive: true,
120
120
  mode: 448
121
121
  });
122
- await fs.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
122
+ await fsPromises.writeFile(authPath, `${JSON.stringify(existing, null, 2)}\n`, { mode: 384 });
123
123
  return {
124
124
  wrote: true,
125
125
  authPath
@@ -3,7 +3,7 @@ import { n as runExec, t as runCommandWithTimeout } from "./exec-DwGfeG8v.js";
3
3
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayProfileSuffix, u as resolveGatewayServiceDescription } from "./constants-CEbQvI8z.js";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
- import fs from "node:fs/promises";
6
+ import fsPromises from "node:fs/promises";
7
7
  import { execFile } from "node:child_process";
8
8
 
9
9
  //#region src/daemon/exec-file.ts
@@ -289,7 +289,7 @@ function resolveSystemdUserUnitPath(env) {
289
289
  async function readSystemdServiceExecStart(env) {
290
290
  const unitPath = resolveSystemdUnitPath(env);
291
291
  try {
292
- const content = await fs.readFile(unitPath, "utf8");
292
+ const content = await fsPromises.readFile(unitPath, "utf8");
293
293
  let execStart = "";
294
294
  let workingDirectory = "";
295
295
  const environment = {};
@@ -360,7 +360,7 @@ async function assertSystemdAvailable() {
360
360
  async function installSystemdService({ env, stdout, programArguments, workingDirectory, environment, description }) {
361
361
  await assertSystemdAvailable();
362
362
  const unitPath = resolveSystemdUnitPath(env);
363
- await fs.mkdir(path.dirname(unitPath), { recursive: true });
363
+ await fsPromises.mkdir(path.dirname(unitPath), { recursive: true });
364
364
  const unit = buildSystemdUnit({
365
365
  description: resolveGatewayServiceDescription({
366
366
  env,
@@ -371,7 +371,7 @@ async function installSystemdService({ env, stdout, programArguments, workingDir
371
371
  workingDirectory,
372
372
  environment
373
373
  });
374
- await fs.writeFile(unitPath, unit, "utf8");
374
+ await fsPromises.writeFile(unitPath, unit, "utf8");
375
375
  const unitName = `${resolveGatewaySystemdServiceName(env.OPENCLAW_PROFILE)}.service`;
376
376
  const reload = await execSystemctl(["--user", "daemon-reload"]);
377
377
  if (reload.code !== 0) throw new Error(`systemctl daemon-reload failed: ${reload.stderr || reload.stdout}`.trim());
@@ -403,7 +403,7 @@ async function uninstallSystemdService({ env, stdout }) {
403
403
  ]);
404
404
  const unitPath = resolveSystemdUnitPath(env);
405
405
  try {
406
- await fs.unlink(unitPath);
406
+ await fsPromises.unlink(unitPath);
407
407
  stdout.write(`${formatLine("Removed systemd service", unitPath)}\n`);
408
408
  } catch {
409
409
  stdout.write(`Systemd service not found at ${unitPath}\n`);
@@ -1,10 +1,10 @@
1
1
  import { t as formatCliCommand } from "./command-format-DEKzLnLg.js";
2
- import { d as isVersionManagedNodePath, h as resolveSystemNodePath, l as getMinimalServicePathPartsFromEnv, u as isSystemNodePath } from "./daemon-runtime-b5AIw6-c.js";
3
- import { o as resolveSystemdUserUnitPath } from "./systemd-_79iBiaB.js";
4
- import { c as resolveLaunchAgentPlistPath } from "./service-x8sNoic1.js";
2
+ import { d as isVersionManagedNodePath, h as resolveSystemNodePath, l as getMinimalServicePathPartsFromEnv, u as isSystemNodePath } from "./daemon-runtime-DWX-qIBl.js";
3
+ import { o as resolveSystemdUserUnitPath } from "./systemd-Blg-bgkO.js";
4
+ import { c as resolveLaunchAgentPlistPath } from "./service-Bs5m4_g0.js";
5
5
  import { t as formatRuntimeStatusWithDetails } from "./runtime-status-BHt4ST_m.js";
6
6
  import path from "node:path";
7
- import fs from "node:fs/promises";
7
+ import fsPromises from "node:fs/promises";
8
8
 
9
9
  //#region src/daemon/runtime-format.ts
10
10
  function formatRuntimeStatus(runtime) {
@@ -85,7 +85,7 @@ async function auditSystemdUnit(env, issues) {
85
85
  const unitPath = resolveSystemdUserUnitPath(env);
86
86
  let content = "";
87
87
  try {
88
- content = await fs.readFile(unitPath, "utf8");
88
+ content = await fsPromises.readFile(unitPath, "utf8");
89
89
  } catch {
90
90
  return;
91
91
  }
@@ -113,7 +113,7 @@ async function auditLaunchdPlist(env, issues) {
113
113
  const plistPath = resolveLaunchAgentPlistPath(env);
114
114
  let content = "";
115
115
  try {
116
- content = await fs.readFile(plistPath, "utf8");
116
+ content = await fsPromises.readFile(plistPath, "utf8");
117
117
  } catch {
118
118
  return;
119
119
  }
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { t as note } from "./note-xON1rY4p.js";
3
- import { d as readSystemdUserLingerStatus, r as isSystemdUserServiceAvailable, u as enableSystemdUserLinger } from "./systemd-_79iBiaB.js";
3
+ import { d as readSystemdUserLingerStatus, r as isSystemdUserServiceAvailable, u as enableSystemdUserLinger } from "./systemd-Blg-bgkO.js";
4
4
 
5
5
  //#region src/commands/systemd-linger.ts
6
6
  var systemd_linger_exports = /* @__PURE__ */ __exportAll({
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-D72mYI93.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-1SG-TkUZ.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-CXDO_kgw.js";
3
3
 
4
4
  //#region src/markdown/tables.ts