@bitseek/claw 1.3.9 → 1.3.10-beta.2

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 (390) hide show
  1. package/dist/{accounts-UZBaDk40.js → accounts-CAdzApsy.js} +7 -7
  2. package/dist/{accounts-C9SoQRlD.js → accounts-CuCtdH3C.js} +1 -1
  3. package/dist/{accounts-MEuVJDoB.js → accounts-Cz3RQNdH.js} +1 -1
  4. package/dist/{acp-cli-BW0Dvkhh.js → acp-cli-BKsxHhdT.js} +2 -2
  5. package/dist/{acp-cli-Bt83My-G.js → acp-cli-Cpn_hxPA.js} +8 -8
  6. package/dist/{agent-scope-YUWhK3d-.js → agent-scope-BSkZamWK.js} +1 -1
  7. package/dist/{agents-DyoF_f3J.js → agents-CTTYn76G.js} +15 -15
  8. package/dist/{agents.config-DlsoquZH.js → agents.config-Dzz_a9Mp.js} +1 -1
  9. package/dist/{agents.config-D-pjQl0a.js → agents.config-P4PAeT4_.js} +2 -2
  10. package/dist/{api-key-rotation-D7ptHGeX.js → api-key-rotation-KLYtCoCN.js} +1 -1
  11. package/dist/{audio-preflight-Be5qvEQA.js → audio-preflight-B1d3Otlb.js} +36 -36
  12. package/dist/{audio-preflight-CRllHcyv.js → audio-preflight-COA5tnZv.js} +3 -3
  13. package/dist/{audio-preflight-BxZJpmRQ.js → audio-preflight-CoLgRr1u.js} +3 -3
  14. package/dist/{audio-preflight-UJQ0M6Hl.js → audio-preflight-q7ZFguqv.js} +3 -3
  15. package/dist/{audio-transcription-runner-Dnkt3gmf.js → audio-transcription-runner-BEtb5Jme.js} +22 -22
  16. package/dist/{audio-transcription-runner-_HLf10kW.js → audio-transcription-runner-BLpgvFWB.js} +1 -1
  17. package/dist/{audio-transcription-runner-DVI-SHAn.js → audio-transcription-runner-CrM5-5xi.js} +1 -1
  18. package/dist/{audio-transcription-runner-WwCG9VCF.js → audio-transcription-runner-s4TXhBuF.js} +1 -1
  19. package/dist/{audit-Ct605ugr.js → audit-D013ewlH.js} +3 -3
  20. package/dist/{audit-D-QnHZqm.js → audit-DG0miQ3A.js} +29 -29
  21. package/dist/{auth-DeS7F6Hd.js → auth-CVxYkRFJ.js} +1 -1
  22. package/dist/{auth-choice-BnlfU4y1.js → auth-choice-BRVQOSOG.js} +2 -2
  23. package/dist/{auth-choice-BtNLcXFy.js → auth-choice-CV8rLyb8.js} +12 -12
  24. package/dist/{auth-choice-jr1JhZAd.js → auth-choice-Cmq6GQD8.js} +14 -14
  25. package/dist/{auth-choice.apply-helpers-Cjj-3bz6.js → auth-choice.apply-helpers-CDB_05Fx.js} +1 -1
  26. package/dist/{auth-profiles-Dgxwr8Sa.js → auth-profiles-DNfjfFON.js} +16 -16
  27. package/dist/{auth-token-BYBDbosA.js → auth-token-CBowgXcm.js} +1 -1
  28. package/dist/{banner-Dl-V7Ptt.js → banner-CzgAzM1q.js} +2 -2
  29. package/dist/{bindings-BDScuSfd.js → bindings-B8U0BrYk.js} +1 -1
  30. package/dist/{bonjour-discovery-Cr9ghR-L.js → bonjour-discovery-CvAov_o2.js} +1 -1
  31. package/dist/{browser-cli-DGLAbUwi.js → browser-cli-CBBjI2Mu.js} +12 -12
  32. package/dist/{browser-cli-D2wMcHia.js → browser-cli-VBhMcj3d.js} +3 -3
  33. package/dist/build-info.json +3 -3
  34. package/dist/bundled/boot-md/handler.js +5 -5
  35. package/dist/bundled/session-memory/handler.js +5 -5
  36. package/dist/{call-BdLuBL48.js → call-DU_f0KMj.js} +1 -1
  37. package/dist/{call-Dx2aHVrt.js → call-Da49LtVk.js} +10 -10
  38. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  39. package/dist/{channel-account-context-D__SZrX3.js → channel-account-context-8QkfoueX.js} +5 -5
  40. package/dist/{channel-options-BYE1VHBo.js → channel-options-CiMiQ1Q5.js} +3 -3
  41. package/dist/{channel-options-DbFmOvel.js → channel-options-CwgtYRMM.js} +1 -1
  42. package/dist/{channel-selection-ZJlD8RW_.js → channel-selection-BuY5iEbg.js} +1 -1
  43. package/dist/{channel-web-COoUoCJ1.js → channel-web-DNpAAGVd.js} +18 -18
  44. package/dist/{channel-web-DI8CzqrG.js → channel-web-DekWEF-x.js} +2 -2
  45. package/dist/{channels-cli-a630SQK6.js → channels-cli-DxMc7DH5.js} +95 -95
  46. package/dist/{channels-cli-CnwFvDuq.js → channels-cli-d0TsshWJ.js} +13 -13
  47. package/dist/{channels-status-issues-Ccr7cxgt.js → channels-status-issues-C3zPqi31.js} +1 -1
  48. package/dist/{chrome-F8yPeLCk.js → chrome-BosxOvwr.js} +4 -4
  49. package/dist/{clawbot-cli-CFFhJyHO.js → clawbot-cli-Cq5MLCVY.js} +5 -5
  50. package/dist/cli/daemon-cli.js +1 -1
  51. package/dist/{cli-Dyjp2Eb9.js → cli-BN9QyJ2t.js} +76 -76
  52. package/dist/{cli-CSvBbD4L.js → cli-H2qqzBh-.js} +8 -8
  53. package/dist/{client-DVME2dNA.js → client-CbO7FTeL.js} +3 -2
  54. package/dist/{client-CluJsNRo.js → client-zj7haqMb.js} +1 -0
  55. package/dist/{command-registry-CiiKLf7K.js → command-registry-CZeXdavX.js} +13 -13
  56. package/dist/{commands-NkZDaV9a.js → commands-pIMTT07J.js} +1 -1
  57. package/dist/{commands-registry-BEOnewEO.js → commands-registry-DsvOsTTF.js} +3 -3
  58. package/dist/{completion-cli-A-7_BOG8.js → completion-cli-CtFPrLVk.js} +13 -13
  59. package/dist/{completion-cli-Cf-BVW55.js → completion-cli-CtlUQOU1.js} +1 -1
  60. package/dist/{config-cli-B8b1tCQT.js → config-cli-7YppRhHT.js} +1 -1
  61. package/dist/{config-cli-DKp1_Q2a.js → config-cli-CFOqOvdY.js} +7 -7
  62. package/dist/{config-guard-B9fTWjXL.js → config-guard-_F29cfDV.js} +3 -3
  63. package/dist/{config-validation-CA4J--dN.js → config-validation-DJiuTGa9.js} +3 -3
  64. package/dist/{configure-BFAj-ANy.js → configure-CyZK-h8l.js} +6 -6
  65. package/dist/{configure-C0LdxD84.js → configure-u6SJdWUT.js} +17 -17
  66. package/dist/control-ui/assets/{index-ixU5putu.js → index-BX-BH831.js} +408 -362
  67. package/dist/control-ui/assets/index-BX-BH831.js.map +1 -0
  68. package/dist/control-ui/assets/{index-EvU5ZebS.css → index-CG7TGGhP.css} +1 -1
  69. package/dist/control-ui/index.html +2 -2
  70. package/dist/{control-ui-assets-hAbiBedq.js → control-ui-assets-CWYG-y7n.js} +1 -1
  71. package/dist/{cron-cli-GqIWWgiC.js → cron-cli-9N0CgRKB.js} +12 -12
  72. package/dist/{cron-cli-CDE1OFDG.js → cron-cli-CF5BP-n7.js} +3 -3
  73. package/dist/{daemon-cli-D73VJA_5.js → daemon-cli-0g2nkiie.js} +2 -2
  74. package/dist/{daemon-cli-CEmNv817.js → daemon-cli-BMq2D7sp.js} +15 -15
  75. package/dist/daemon-cli.js +1 -0
  76. package/dist/{daemon-install-BmfoXdXy.js → daemon-install-C570xWh0.js} +4 -4
  77. package/dist/{daemon-install-helpers-BsUgG6nU.js → daemon-install-helpers-BHTLKVCH.js} +11 -11
  78. package/dist/{dashboard-DTlNIb75.js → dashboard-ChRtpalJ.js} +2 -2
  79. package/dist/{dashboard-DvN1mA5u.js → dashboard-EG5nMcy-.js} +1 -1
  80. package/dist/{deliver-CeItj33i.js → deliver-BCX2HRzP.js} +7 -7
  81. package/dist/{deliver-UlKfF5ki.js → deliver-CjCvs92K.js} +1 -1
  82. package/dist/{deliver-BR94HzGu.js → deliver-DvxmGKU7.js} +1 -1
  83. package/dist/{deliver-Ed6oj5Hr.js → deliver-nnwtUHe4.js} +1 -1
  84. package/dist/{devices-cli-BE_t6kEW.js → devices-cli-BRo35VQ8.js} +8 -8
  85. package/dist/{devices-cli-DolMfE77.js → devices-cli-DhkpGf9W.js} +2 -2
  86. package/dist/{diagnostic-BS_rmYNQ.js → diagnostic-CgNDbdut.js} +1 -1
  87. package/dist/{diagnostics-DCUyr8cM.js → diagnostics-DFZTmuFB.js} +5 -5
  88. package/dist/{directory-cli-CRSmIysH.js → directory-cli-BKfV5rcs.js} +8 -8
  89. package/dist/{dns-cli-CSAjz7bt.js → dns-cli--O5ugFD3.js} +5 -5
  90. package/dist/{dock-CslXtXH_.js → dock-Cki7hMDN.js} +4 -4
  91. package/dist/{docs-cli-BRb3xAC4.js → docs-cli-o8TMQTn6.js} +4 -4
  92. package/dist/{doctor-completion-DDa8Rj_C.js → doctor-completion-D1YQPRLZ.js} +1 -1
  93. package/dist/{doctor-completion-CqdGtWOU.js → doctor-completion-DdOKH1q8.js} +2 -2
  94. package/dist/{doctor-config-flow-BEveSr6U.js → doctor-config-flow-C2SyrY1V.js} +15 -15
  95. package/dist/{enable-rsx0VIgO.js → enable-mI_Pnmyk.js} +1 -1
  96. package/dist/entry.js +2 -2
  97. package/dist/{exec-approvals-allowlist-Dgb12MXc.js → exec-approvals-allowlist-Bdtmhwgj.js} +1 -1
  98. package/dist/{exec-approvals-cli-qbLlzazr.js → exec-approvals-cli-Cfh3OhWq.js} +4 -4
  99. package/dist/{exec-approvals-cli-xVv5uofa.js → exec-approvals-cli-U6R3GXsh.js} +16 -16
  100. package/dist/{exec-safe-bin-runtime-policy-BfybDm-q.js → exec-safe-bin-runtime-policy-DfgvmbZG.js} +2 -2
  101. package/dist/extensionAPI.js +5 -5
  102. package/dist/{fetch-BZWXCGP2.js → fetch-Dp9uG2qN.js} +3 -3
  103. package/dist/{fetch-guard-BplMfPrm.js → fetch-guard-ClzGpvFK.js} +1 -1
  104. package/dist/{fs-safe-nXGqHBF8.js → fs-safe-BtSQvuQn.js} +24 -24
  105. package/dist/{gateway-cli-CKOUY2y1.js → gateway-cli-D6K1V3Bk.js} +175 -167
  106. package/dist/{gateway-cli-D7OOfzP7.js → gateway-cli-RrWvU33e.js} +33 -25
  107. package/dist/{gateway-rpc-CEueWk1E.js → gateway-rpc-ByQgck-k.js} +1 -1
  108. package/dist/{gateway-rpc-yBoALaWH.js → gateway-rpc-DiWvH8Pq.js} +1 -1
  109. package/dist/{health-D7FO50c6.js → health-BEGEjMAH.js} +3 -3
  110. package/dist/{health-Dyd4RpCM.js → health-CgHjmUFQ.js} +14 -14
  111. package/dist/{hooks-cli-C0ESoNa0.js → hooks-cli-BqCZdnvb.js} +84 -84
  112. package/dist/{hooks-cli-DufRHJ0v.js → hooks-cli-Cigd_Wfj.js} +9 -9
  113. package/dist/{hooks-status-DC5Ls265.js → hooks-status-DLAFiQoD.js} +1 -1
  114. package/dist/{image-XqGcCt9q.js → image-5kjT0Ifv.js} +1 -1
  115. package/dist/{image-BKHeF2sO.js → image-Cboo5_y3.js} +1 -1
  116. package/dist/{image-DcfdUryQ.js → image-Cj831azd.js} +1 -1
  117. package/dist/{image-HyFl8MrD.js → image-CrLgaJde.js} +5 -5
  118. package/dist/{image-ops-_2-6WZ4r.js → image-ops-Cv4BHtyC.js} +10 -10
  119. package/dist/index.js +13 -13
  120. package/dist/{inspect-DRNo1VIP.js → inspect-BB0gFSLo.js} +4 -4
  121. package/dist/{install-safe-path-DBJEsbCp.js → install-safe-path-CSglDbi-.js} +25 -25
  122. package/dist/{installs-B2Z4DyUY.js → installs-D6ND4ZY7.js} +9 -9
  123. package/dist/{ipv4-BMbKD3zl.js → ipv4-Dw9v4ItT.js} +1 -1
  124. package/dist/{ir-DaZ8ITYK.js → ir-Bov3hbIf.js} +6 -6
  125. package/dist/{issue-format-BK98Hpx-.js → issue-format-Bnj64obT.js} +1 -1
  126. package/dist/{json-files-DrZ4qfxw.js → json-files-1hhV5hS6.js} +8 -8
  127. package/dist/{lifecycle-core-BrIHPmUB.js → lifecycle-core-_8xJF_9z.js} +5 -5
  128. package/dist/llm-slug-generator.js +5 -5
  129. package/dist/{login--V3ibRWJ.js → login-D-Js3AvX.js} +3 -3
  130. package/dist/{login-qr-TavUzvgE.js → login-qr-DzUhzJq4.js} +6 -6
  131. package/dist/{logs-cli-p5kAh0qi.js → logs-cli-Clchi69N.js} +3 -3
  132. package/dist/{logs-cli-Dv8TRwyI.js → logs-cli-DVtjPLN7.js} +9 -9
  133. package/dist/{manager-B74jUC6O.js → manager-ZjJ9M2x6.js} +14 -14
  134. package/dist/{manifest-registry-D1Y5hoq2.js → manifest-registry-InPIGvqe.js} +1 -1
  135. package/dist/{markdown-tables-BDe192Ai.js → markdown-tables-DoeNp6Yw.js} +1 -1
  136. package/dist/{memory-cli-BMul3CV1.js → memory-cli-C0hNuh-t.js} +12 -12
  137. package/dist/{model-BUgU1YvD.js → model-Cun06SAF.js} +2 -2
  138. package/dist/{model-catalog-D4hoiCav.js → model-catalog-BoIN1v0Q.js} +3 -3
  139. package/dist/{model-picker-C52jOYls.js → model-picker-HEDcBXIB.js} +4 -4
  140. package/dist/{models-Cdge-yuv.js → models-Xv17f3vZ.js} +18 -18
  141. package/dist/{models-cli-B3Xw4zlc.js → models-cli-BXyi6SWU.js} +81 -81
  142. package/dist/{models-cli-BfSKbP6r.js → models-cli-DUzbk_7x.js} +9 -9
  143. package/dist/{models-config-BUq1pLs3.js → models-config-BjTFyv9Z.js} +6 -6
  144. package/dist/{net-B1yWST2Q.js → net-Dsab06Rf.js} +2 -2
  145. package/dist/{node-cli-BabqC8Zy.js → node-cli-B15fr-qS.js} +33 -33
  146. package/dist/{node-cli-Do62XUPs.js → node-cli-Bw3p8-Sf.js} +1 -1
  147. package/dist/{node-command-policy-CcKer6vK.js → node-command-policy-B6a4rlIk.js} +1 -1
  148. package/dist/{node-command-policy-Dk_UuHKt.js → node-command-policy-CtLbfZ7S.js} +1 -1
  149. package/dist/{node-service-BNRDY7GU.js → node-service-Dc_k2bXh.js} +1 -1
  150. package/dist/{nodes-cli-pFODdHtG.js → nodes-cli-Cd4bT0G_.js} +3 -3
  151. package/dist/{nodes-cli-Dpzu3xiW.js → nodes-cli-DxNXbAjA.js} +16 -16
  152. package/dist/{nodes-screen-9RT6NG41.js → nodes-screen-BfHQppAv.js} +7 -7
  153. package/dist/{npm-pack-install-dRUKCY1x.js → npm-pack-install-BAwUbntz.js} +18 -18
  154. package/dist/{npm-resolution-CIbDK6N6.js → npm-resolution-B-kbVjrb.js} +1 -1
  155. package/dist/{npm-resolution-CEMLdRCK.js → npm-resolution-BAviHHRA.js} +5 -5
  156. package/dist/{onboard-D7KozrLf.js → onboard-Cu0G7EAR.js} +3 -3
  157. package/dist/{onboard-CMEmzKLW.js → onboard-RamoqBQh.js} +6 -6
  158. package/dist/{onboard-channels-BfnzcJrR.js → onboard-channels-DHx-uZCo.js} +2 -2
  159. package/dist/{onboard-channels-Bw9YbUzP.js → onboard-channels-xMJXbWfp.js} +20 -20
  160. package/dist/{onboard-custom-CtmSA7Ih.js → onboard-custom-Bdm0AEOf.js} +3 -3
  161. package/dist/{onboard-custom.shared-DGA1AopE.js → onboard-custom.shared-BJ1NdBPQ.js} +2 -2
  162. package/dist/{onboard-helpers-DLQ_XMs1.js → onboard-helpers-BS_bPZKe.js} +11 -11
  163. package/dist/{onboard-helpers-Oi4C_OMX.js → onboard-helpers-DEzzN6tA.js} +1 -1
  164. package/dist/{onboard-hooks-kJZEQTda.js → onboard-hooks-BKIWvalG.js} +4 -4
  165. package/dist/{onboard-remote-XXaOoJYC.js → onboard-remote-C_jBXm-z.js} +1 -1
  166. package/dist/{onboard-remote-C1-vrrIn.js → onboard-remote-St2_FGbe.js} +3 -3
  167. package/dist/{onboard-skills-C8Mue7Px.js → onboard-skills-D7ZRTLs3.js} +1 -1
  168. package/dist/{onboard-skills-BxC5udud.js → onboard-skills-m9oH0mp4.js} +4 -4
  169. package/dist/{onboarding-BLcdYzEJ.js → onboarding-I5wAbpKA.js} +13 -13
  170. package/dist/{onboarding-C1mU33hA.js → onboarding-VPTSOvzr.js} +7 -7
  171. package/dist/{onboarding.finalize-2exVy-pf.js → onboarding.finalize-DfoOvZxa.js} +13 -13
  172. package/dist/{onboarding.finalize-BP0DKBAn.js → onboarding.finalize-Dvd8Uqat.js} +89 -89
  173. package/dist/{onboarding.gateway-config-CsSayEFl.js → onboarding.gateway-config-BZkfmBr7.js} +18 -18
  174. package/dist/{onboarding.gateway-config-DImrb8_4.js → onboarding.gateway-config-DYozawla.js} +4 -4
  175. package/dist/{openai-model-default-DYxdi5ZX.js → openai-model-default-Dbn33YX3.js} +2 -2
  176. package/dist/{outbound-DhEQ9Uxy.js → outbound-SGcz-hQs.js} +4 -4
  177. package/dist/{outbound-attachment-Dhx3-Gcn.js → outbound-attachment-BLl9Vid0.js} +2 -2
  178. package/dist/{pairing-cli-CvCRXsUM.js → pairing-cli-6-9woWGC.js} +9 -9
  179. package/dist/{pairing-labels-BUGAt7vg.js → pairing-labels-RbKVJQq5.js} +1 -1
  180. package/dist/{pairing-store-B27cuhBQ.js → pairing-store-BBxShFYa.js} +3 -3
  181. package/dist/{path-alias-guards-BQRm9WIp.js → path-alias-guards-DCVgvjo3.js} +3 -3
  182. package/dist/{path-safety-DDHmx5YW.js → path-safety-DmE3pKqe.js} +1 -1
  183. package/dist/{paths-B0fezTQW.js → paths-ufuDrRZO.js} +9 -9
  184. package/dist/{pi-embedded-Dr2npoTx.js → pi-embedded-CLpkFzke.js} +58 -17
  185. package/dist/{pi-embedded-DzJti3AT.js → pi-embedded-JvXxFqT7.js} +58 -17
  186. package/dist/{pi-embedded-helpers-J2caGJww.js → pi-embedded-helpers-CKEoEHoe.js} +13 -1
  187. package/dist/{pi-embedded-helpers-DeshJQRZ.js → pi-embedded-helpers-CYvB-mUe.js} +13 -1
  188. package/dist/{pi-embedded-helpers-BvHlsuFU.js → pi-embedded-helpers-DQudcPte.js} +13 -1
  189. package/dist/{pi-embedded-helpers-C6qtvkzL.js → pi-embedded-helpers-YXFiUfat.js} +19 -7
  190. package/dist/{pi-model-discovery-P149vq2k.js → pi-model-discovery-BnW942uP.js} +1 -1
  191. package/dist/{pi-tools.policy-DwPGGCBG.js → pi-tools.policy-ClPMGEq4.js} +5 -5
  192. package/dist/{plugin-auto-enable-C4EhTu_y.js → plugin-auto-enable-MtcFdE6T.js} +3 -3
  193. package/dist/{plugin-registry-htTOE5ts.js → plugin-registry-BlrQgW0D.js} +3 -3
  194. package/dist/{plugin-registry-C6E8urZI.js → plugin-registry-gZUfqcq8.js} +1 -1
  195. package/dist/plugin-sdk/{accounts-CK8a9UID.js → accounts-B0MGFQ0N.js} +1 -1
  196. package/dist/plugin-sdk/{accounts-lwmUYGUE.js → accounts-C6gCLKxD.js} +3 -3
  197. package/dist/plugin-sdk/{accounts-CS3X-w75.js → accounts-CtdUkArQ.js} +1 -1
  198. package/dist/plugin-sdk/{active-listener-BWmkk9uJ.js → active-listener-B4jWKHgp.js} +1 -1
  199. package/dist/plugin-sdk/{agent-scope-hbikmG29.js → agent-scope-C86F9PtR.js} +3 -3
  200. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +6 -0
  201. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
  202. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.messages.d.ts +8 -0
  203. package/dist/plugin-sdk/{api-key-rotation-CRkGVkaE.js → api-key-rotation-Ckeuk7ma.js} +2 -2
  204. package/dist/plugin-sdk/{audio-preflight-CnShZx3d.js → audio-preflight-bn_-lI6T.js} +33 -33
  205. package/dist/plugin-sdk/{audio-transcription-runner-02Kf0QEw.js → audio-transcription-runner-B7Y82C4Z.js} +10 -10
  206. package/dist/plugin-sdk/{bindings-nNuMY2YM.js → bindings-ChmACL7A.js} +2 -2
  207. package/dist/plugin-sdk/{channel-activity-Bqbt4eXH.js → channel-activity-BmpQZg2e.js} +3 -3
  208. package/dist/plugin-sdk/{channel-web-g5RnVnVc.js → channel-web-DWi8zvvE.js} +23 -23
  209. package/dist/plugin-sdk/{chrome-2cewsnu1.js → chrome-DuBOBfOM.js} +7 -7
  210. package/dist/plugin-sdk/{chunk-BYCmTLPZ.js → chunk-C0X4iaGn.js} +1 -1
  211. package/dist/plugin-sdk/{command-format-BlehDg53.js → command-format-CElfSn4A.js} +1 -1
  212. package/dist/plugin-sdk/{commands-registry-BOYYhfZ3.js → commands-registry-B1R1u0Ef.js} +5 -5
  213. package/dist/plugin-sdk/{config-QlwvRinO.js → config-BIceFM4q.js} +10 -10
  214. package/dist/plugin-sdk/{deliver-TLuU1nrG.js → deliver-B8tQybg3.js} +11 -11
  215. package/dist/plugin-sdk/{diagnostic-Qi8YtEBS.js → diagnostic-BbwhaVH5.js} +2 -2
  216. package/dist/plugin-sdk/{dock-kzzjqc23.js → dock-ofKZIPvX.js} +6 -6
  217. package/dist/plugin-sdk/{errors-DVIIAWgf.js → errors-D1n_xg5Q.js} +1 -1
  218. package/dist/plugin-sdk/{fetch-guard-DBpNRDsE.js → fetch-guard-JfIUTAXW.js} +2 -2
  219. package/dist/plugin-sdk/{fs-safe-m9IoJqSI.js → fs-safe-C32W4lb9.js} +3 -3
  220. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -0
  221. package/dist/plugin-sdk/gateway/protocol/schema/protocol-schemas.d.ts +1 -0
  222. package/dist/plugin-sdk/{image-DthA-2Bt.js → image-C6HhIJq-.js} +6 -6
  223. package/dist/plugin-sdk/{image-ops-DZf5e0hi.js → image-ops-DgyVTXxr.js} +1 -1
  224. package/dist/plugin-sdk/index.js +64 -64
  225. package/dist/plugin-sdk/{ir-DqRMrArF.js → ir-CUJX2XmF.js} +6 -6
  226. package/dist/plugin-sdk/{local-roots-D45XofHa.js → local-roots-PQBdjF5V.js} +4 -4
  227. package/dist/plugin-sdk/{logger-DfvFauG1.js → logger-BnDVA5Pn.js} +1 -1
  228. package/dist/plugin-sdk/{login-jCR1wiz5.js → login-fF45LyM7.js} +6 -6
  229. package/dist/plugin-sdk/{login-qr-yj8Ns7nC.js → login-qr-IMrHS0CU.js} +9 -9
  230. package/dist/plugin-sdk/{manager-Cm_A6m9L.js → manager-B0SAEWzU.js} +10 -10
  231. package/dist/plugin-sdk/{markdown-tables-CBEW0AEz.js → markdown-tables-BTRy5g54.js} +1 -1
  232. package/dist/plugin-sdk/{message-channel-CettmQxR.js → message-channel-BBGSgNfZ.js} +1 -1
  233. package/dist/plugin-sdk/{outbound-Bciu0j21.js → outbound-CsQhMb1t.js} +7 -7
  234. package/dist/plugin-sdk/{outbound-attachment-JlTOABiQ.js → outbound-attachment-PV4MNgO7.js} +2 -2
  235. package/dist/plugin-sdk/{path-alias-guards-DJzjOH6k.js → path-alias-guards-CtvHdXkF.js} +1 -1
  236. package/dist/plugin-sdk/{pi-embedded-helpers-5SLsxaPD.js → pi-embedded-helpers-BHnEYKw0.js} +30 -18
  237. package/dist/plugin-sdk/{pi-model-discovery-D69omnZ4.js → pi-model-discovery-CeMr9qlX.js} +1 -1
  238. package/dist/plugin-sdk/{plugins-PXEjTi0a.js → plugins-DoosFTlv.js} +6 -6
  239. package/dist/plugin-sdk/{proxy-BJHqiC33.js → proxy-BC7TfAei.js} +1 -1
  240. package/dist/plugin-sdk/{proxy-fetch-nIK8JZcG.js → proxy-fetch-D7xNZwMz.js} +1 -1
  241. package/dist/plugin-sdk/{pw-ai-BYRY2b8b.js → pw-ai-COCVSS3S.js} +13 -13
  242. package/dist/plugin-sdk/{qmd-manager-BDZK_TQ2.js → qmd-manager-Dy2i7Yk2.js} +8 -8
  243. package/dist/plugin-sdk/{query-expansion-BbG3wPsu.js → query-expansion-Ce600EN-.js} +2 -2
  244. package/dist/plugin-sdk/{redact-CJpp3pJZ.js → redact-DR57Khnb.js} +1 -1
  245. package/dist/plugin-sdk/{registry-DZtlIW2B.js → registry-CoOCMLwt.js} +2 -2
  246. package/dist/plugin-sdk/{replies-EKccD3Vq.js → replies-DrAmBEev.js} +3 -3
  247. package/dist/plugin-sdk/{reply-Bn7G66m2.js → reply-UD3RANYz.js} +139 -98
  248. package/dist/plugin-sdk/{reply-prefix-DSjz9ex2.js → reply-prefix-S61xcDq5.js} +1 -1
  249. package/dist/plugin-sdk/{resolve-outbound-target-BWnhQoZm.js → resolve-outbound-target-CHbuy5MW.js} +2 -2
  250. package/dist/plugin-sdk/{resolve-route-f4hKLSdv.js → resolve-route-D17tpQod.js} +4 -4
  251. package/dist/plugin-sdk/{retry-WkwmuOq5.js → retry-BCP_IcXF.js} +1 -1
  252. package/dist/plugin-sdk/{send-By6LXMdT.js → send-4oPoqu-k.js} +8 -8
  253. package/dist/plugin-sdk/{send-D6q7DSEd.js → send-B-OjHj4t.js} +7 -7
  254. package/dist/plugin-sdk/{send-wah5ag3x.js → send-BnUKf8wg.js} +10 -10
  255. package/dist/plugin-sdk/{send-CLmu_bs1.js → send-DXz49rIh.js} +6 -6
  256. package/dist/plugin-sdk/{send-DVH_jqoJ.js → send-DfA6vCVP.js} +15 -15
  257. package/dist/plugin-sdk/{session-BfaJDj55.js → session-B_TxDBeW.js} +5 -5
  258. package/dist/plugin-sdk/{session-meta-CtcszwHp.js → session-meta-Cs9Hy3rA.js} +1 -1
  259. package/dist/plugin-sdk/{sessions-CCrnhL0f.js → sessions-D0O4NXJE.js} +6 -6
  260. package/dist/plugin-sdk/{skill-commands-BbZ5VC2j.js → skill-commands-Cq3lRmFA.js} +5 -5
  261. package/dist/plugin-sdk/{skills-DhjFSX9k.js → skills-CKk6dkB7.js} +8 -8
  262. package/dist/plugin-sdk/{ssrf-yJVFBwP_.js → ssrf-DWKS2l1Z.js} +1 -1
  263. package/dist/plugin-sdk/{store-B49PVNHw.js → store-D-KJbO1K.js} +2 -2
  264. package/dist/plugin-sdk/{subsystem-BSS_Lti_.js → subsystem-BOTkxxI1.js} +2 -2
  265. package/dist/plugin-sdk/{tables-B2ndgibI.js → tables-iAM0v6UL.js} +1 -1
  266. package/dist/plugin-sdk/{target-errors-3PJA_VbO.js → target-errors-Di5oh5b0.js} +2 -2
  267. package/dist/plugin-sdk/{tokens-CYf5ZhLm.js → tokens-DUELMaP-.js} +1 -1
  268. package/dist/plugin-sdk/{tool-images-DzNHghBZ.js → tool-images-4TDsVJHN.js} +2 -2
  269. package/dist/plugin-sdk/{tool-loop-detection-paUegJmP.js → tool-loop-detection-BooG-g5v.js} +2 -2
  270. package/dist/plugin-sdk/{utils-DaD2HGTy.js → utils-B7zMI7Td.js} +1 -1
  271. package/dist/plugin-sdk/web-UMF3rhRY.js +72 -0
  272. package/dist/plugin-sdk/{whatsapp-actions-fOVsMKWU.js → whatsapp-actions-CntfyIDF.js} +25 -25
  273. package/dist/{plugins-DPspmGax.js → plugins-B9LVNfXo.js} +2 -2
  274. package/dist/{plugins-cli-Bh8rE7t6.js → plugins-cli-BT_YdHlo.js} +9 -9
  275. package/dist/{plugins-cli-NTdICagm.js → plugins-cli-Dowiu6KT.js} +86 -86
  276. package/dist/{ports-Do_Plo8C.js → ports-BKC_uvax.js} +2 -2
  277. package/dist/{ports-BNwHSlzK.js → ports-TfIbPY8z.js} +1 -1
  278. package/dist/{program-BzrloeUd.js → program-BA-5175y.js} +84 -84
  279. package/dist/{program-context-Dj2_qoie.js → program-context-DFXBN0ZY.js} +31 -31
  280. package/dist/{prompt-select-styled-CRUyZ8Zn.js → prompt-select-styled-BcZ8H5DI.js} +39 -39
  281. package/dist/{prompt-select-styled-CRpJTxEn.js → prompt-select-styled-D6W6ZbLn.js} +6 -6
  282. package/dist/{provider-auth-helpers-CTHHzB9d.js → provider-auth-helpers-BEYTbEO-.js} +1 -1
  283. package/dist/{provider-auth-helpers-CGlrXlEv.js → provider-auth-helpers-Bu2aZSnq.js} +5 -5
  284. package/dist/{proxy-env-B9lqcBfU.js → proxy-env-DQluNeAy.js} +1 -1
  285. package/dist/{push-apns-CfIOYv6I.js → push-apns-8_4x3QDX.js} +5 -5
  286. package/dist/{push-apns-D6P4wyMo.js → push-apns-Cr1-03ZS.js} +1 -1
  287. package/dist/{pw-ai-B4CY-RXZ.js → pw-ai-CgRxvnyo.js} +15 -15
  288. package/dist/{qmd-manager-CoaYK3NS.js → qmd-manager-ZEPpjdm5.js} +20 -20
  289. package/dist/{qr-cli-tns16Dij.js → qr-cli-UOH4AqoB.js} +1 -1
  290. package/dist/{query-expansion-BOhTMSRT.js → query-expansion-DmsmrMjB.js} +12 -12
  291. package/dist/{redact-snapshot-Cx6qYiIY.js → redact-snapshot-BGusjTY9.js} +1 -1
  292. package/dist/{register.agent-CbbtPCTG.js → register.agent-CHE7Qalv.js} +97 -97
  293. package/dist/{register.agent-tUHan7i6.js → register.agent-FsyQ2Nm4.js} +13 -13
  294. package/dist/register.configure-CXDvAw-s.js +175 -0
  295. package/dist/{register.configure-H6uG1A19.js → register.configure-DS8ihv8X.js} +16 -16
  296. package/dist/{register.init-B2cwbe39.js → register.init-DY3iSz8Y.js} +16 -16
  297. package/dist/{register.maintenance-B4zbpuqh.js → register.maintenance-Dnr1w5A1.js} +15 -15
  298. package/dist/{register.maintenance-C4vUOdVb.js → register.maintenance-yrpKG5iB.js} +99 -99
  299. package/dist/{register.message-BNLwGPS-.js → register.message-DH4rUSVi.js} +77 -77
  300. package/dist/{register.message-BmweIh8D.js → register.message-p-nIqAYY.js} +9 -9
  301. package/dist/{register.onboard-B_CVsLWL.js → register.onboard-CC50fpnA.js} +5 -5
  302. package/dist/{register.onboard-DElUgwoa.js → register.onboard-maBvm3Rf.js} +18 -18
  303. package/dist/{register.setup-BF5BjQQE.js → register.setup-CwMkpOf-.js} +5 -5
  304. package/dist/{register.setup-DWIO5nY-.js → register.setup-igARJvnk.js} +21 -21
  305. package/dist/{register.start-BKHJP2Is.js → register.start-K1LpFGp0.js} +4 -4
  306. package/dist/{register.start-csWISzdo.js → register.start-nNZtIOVx.js} +17 -17
  307. package/dist/{register.status-health-sessions-CGnHeuq9.js → register.status-health-sessions-C3RoepIh.js} +12 -12
  308. package/dist/{register.status-health-sessions-DVQycJyO.js → register.status-health-sessions-TaLuKSkg.js} +91 -91
  309. package/dist/{register.subclis-CXCp9MIN.js → register.subclis-DscBnK86.js} +31 -31
  310. package/dist/{replies-9B0e_W0H.js → replies-Cnwwqegi.js} +1 -1
  311. package/dist/{reply-Cmqwu6vZ.js → reply-Cm66z0-z.js} +61 -21
  312. package/dist/{reply-prefix-CqTNlEbX.js → reply-prefix-BwXX5Jk8.js} +1 -1
  313. package/dist/{resolve-route-rhGDrrKc.js → resolve-route-BAFZr0AD.js} +2 -2
  314. package/dist/{rpc-Ca9dlA9v.js → rpc-CeTMYkun.js} +1 -1
  315. package/dist/{rpc-CI7SPdeS.js → rpc-rTqBtgDp.js} +1 -1
  316. package/dist/{run-main-LIh93d7b.js → run-main-w6C2SiYG.js} +95 -95
  317. package/dist/{runtime-vnX4kz3-.js → runtime-uZw9qW6d.js} +2 -2
  318. package/dist/{sandbox-ClasEjRW.js → sandbox-GZ80o0rN.js} +18 -18
  319. package/dist/{sandbox-cli-BxLxr8Ov.js → sandbox-cli-BdzWh2X7.js} +26 -26
  320. package/dist/{secrets-cli-DEGkMLrT.js → secrets-cli-DroWvA-9.js} +10 -10
  321. package/dist/{secrets-cli-DVRKrzox.js → secrets-cli-i2YWj3kH.js} +3 -3
  322. package/dist/{security-cli-D4O7OC12.js → security-cli-B-t3jhRM.js} +4 -4
  323. package/dist/{security-cli-608Hrkk0.js → security-cli-VJf80mpc.js} +43 -43
  324. package/dist/{send-BUqXYyi5.js → send-B3N6ed5I.js} +11 -11
  325. package/dist/{send-BLyXZjPe.js → send-CUhKEB1L.js} +8 -8
  326. package/dist/{send-DLfPZ3_F.js → send-D52tAxa7.js} +6 -6
  327. package/dist/{send-CwHSY0pB.js → send-DyQvZx-9.js} +6 -6
  328. package/dist/{send-BLv3U-2N.js → send-ofq5TYCm.js} +5 -5
  329. package/dist/{server-context-3YhieMNo.js → server-context-BIKTw3k8.js} +12 -12
  330. package/dist/{server-lifecycle-DE7bHlKs.js → server-lifecycle-N5bU8mjm.js} +2 -2
  331. package/dist/{server-middleware-hZnQvs4T.js → server-middleware-Q0-cjKBA.js} +1 -1
  332. package/dist/{server-node-events-DhzgyreJ.js → server-node-events-DIZCYbQS.js} +9 -9
  333. package/dist/{server-node-events-SLHkUEcI.js → server-node-events-DgNEG1Jq.js} +77 -77
  334. package/dist/{server-BAuP980-.js → server-si15CkOB.js} +19 -19
  335. package/dist/{service-DdLDWk4F.js → service-Bdwg8-MP.js} +15 -15
  336. package/dist/{session-D8FUKdiW.js → session-Cjlyc-CV.js} +1 -1
  337. package/dist/{session-meta-Cyjw6vgH.js → session-meta-Dofh28uR.js} +1 -1
  338. package/dist/{session-utils-BSsFceEN.js → session-utils-dcEiC-U5.js} +6 -6
  339. package/dist/{sessions-DugDYFTs.js → sessions-BUvaIZVg.js} +15 -15
  340. package/dist/{sessions-D0PiwO3b.js → sessions-DupNmVK4.js} +4 -4
  341. package/dist/{shared-fKlvovu7.js → shared-CDevUk3t.js} +1 -1
  342. package/dist/{shared-D96SvIQZ.js → shared-haEHGkpf.js} +3 -3
  343. package/dist/{skill-commands-KfP9rDJM.js → skill-commands-Do5yZvPn.js} +5 -5
  344. package/dist/{skill-scanner-D7WuF5Sb.js → skill-scanner-DiC9yuOY.js} +6 -6
  345. package/dist/{skills-CDZAo2Sd.js → skills-cQZqFYZM.js} +3 -3
  346. package/dist/{skills-cli-DaSd8Xc2.js → skills-cli-BXNcPNTR.js} +5 -5
  347. package/dist/{skills-install-Ba_1ws_H.js → skills-install-BASrKfvX.js} +6 -6
  348. package/dist/{skills-status-CV1r9Fs_.js → skills-status-DLQ7pr9r.js} +1 -1
  349. package/dist/{status-06d3zhTb.js → status-DeOsbp6k.js} +5 -5
  350. package/dist/{status-B8I9eCIt.js → status-EvQ73B8e.js} +26 -26
  351. package/dist/{status.update-CbAiJIbB.js → status.update-DUDM6iUC.js} +2 -2
  352. package/dist/{store-GKlw8Qa-.js → store-D1eSPAL7.js} +5 -5
  353. package/dist/{subagent-registry-CU894Q5r.js → subagent-registry-DxueEkqw.js} +203 -163
  354. package/dist/{system-cli-CFkPJfOG.js → system-cli-BXGiTYVZ.js} +9 -9
  355. package/dist/{system-cli-C0Ed85zv.js → system-cli-im47tHnN.js} +3 -3
  356. package/dist/{system-run-command-Pd55ipfO.js → system-run-command-BkdvGhnZ.js} +1 -1
  357. package/dist/{systemd-DVgFh5bF.js → systemd-CTamqs8u.js} +9 -9
  358. package/dist/{systemd-hints-BC7wmmDb.js → systemd-hints-D4VSR4gB.js} +6 -6
  359. package/dist/{systemd-linger-C0GrW0si.js → systemd-linger-BbxFU05t.js} +1 -1
  360. package/dist/{tables-B6wgQqYN.js → tables-CTFvIcTQ.js} +1 -1
  361. package/dist/{tailnet-D67wyPIH.js → tailnet-CQxQNgt6.js} +1 -1
  362. package/dist/{target-errors-AeE93vdq.js → target-errors-8-urss_s.js} +4 -4
  363. package/dist/{tool-images-rmLnTSxP.js → tool-images-hL7SizLq.js} +1 -1
  364. package/dist/{tui-B7dzJD1I.js → tui-DExFltkR.js} +6 -6
  365. package/dist/{tui-BRtGtxGi.js → tui-DhEGvFT0.js} +3 -3
  366. package/dist/{tui-cli-CjdbITUY.js → tui-cli-Bjx0DKT6.js} +4 -4
  367. package/dist/{tui-cli-q5z-00Hw.js → tui-cli-oM2kNbdj.js} +33 -33
  368. package/dist/{update-BPBo5wB4.js → update-Bifl3Vpi.js} +3 -3
  369. package/dist/{update-cli-Bq0E6UWE.js → update-cli-By-XQR0X.js} +107 -107
  370. package/dist/{update-cli-CL5aaHct.js → update-cli-CGZx-QNj.js} +15 -15
  371. package/dist/{update-runner-CDmAZF8g.js → update-runner-D3Dqz9wz.js} +16 -16
  372. package/dist/{update-runner-jAwo79K3.js → update-runner-meF3Yj68.js} +1 -1
  373. package/dist/{web-_WxgxGh7.js → web-C8qeseGa.js} +5 -5
  374. package/dist/{web-CadeCgho.js → web-CUoANEo6.js} +5 -5
  375. package/dist/{web-CGIjjBC-.js → web-pvjSSXiL.js} +9 -9
  376. package/dist/web-yRXxasJ5.js +127 -0
  377. package/dist/{webhooks-cli-Dov_rqUg.js → webhooks-cli-BsZ0IIku.js} +6 -6
  378. package/dist/{whatsapp-actions-COrqjCys.js → whatsapp-actions-DZxeDPhI.js} +19 -19
  379. package/dist/{with-timeout-DUosdGNq.js → with-timeout-CojHmZpl.js} +3 -3
  380. package/dist/{workspace-CoIrgiMR.js → workspace-BxNxoapu.js} +1 -1
  381. package/dist/{workspace-D3Bd1Wd-.js → workspace-CZCYGcgM.js} +23 -23
  382. package/dist/{workspace-dirs-x94RXrLL.js → workspace-dirs-CksYiwHf.js} +1 -1
  383. package/dist/{wsl-KDz114y6.js → wsl-CiVud8tt.js} +2 -2
  384. package/docs/install/installer.md +1 -0
  385. package/docs/plans/2026-03-27-bitseek-topup-modal-design.md +52 -0
  386. package/package.json +1 -1
  387. package/dist/control-ui/assets/index-ixU5putu.js.map +0 -1
  388. package/dist/plugin-sdk/web-BapRq5np.js +0 -72
  389. package/dist/register.configure-CurF_EBC.js +0 -175
  390. package/dist/web-B8lEM5aa.js +0 -127
@@ -3,12 +3,12 @@ import { g as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as
3
3
  import { a as setConsoleSubsystemFilter, d as defaultRuntime, n as runtimeForLogger, o as setConsoleTimestampPrefix, t as createSubsystemLogger } from "./subsystem-BkPzfTiu.js";
4
4
  import "./boolean-DtWR5bt3.js";
5
5
  import { i as logAcceptedEnvOption, r as isTruthyEnvValue } from "./entry.js";
6
- import { Ai as DEFAULT_MODEL, B as OpenClawSchema, Er as resolveThinkingDefault, F as readConfigFileSnapshotForWrite, Fn as resolveSubagentMaxConcurrent, I as resolveConfigSnapshotHash, Jn as loadAuthProfileStoreForRuntime, M as loadConfig, Mn as buildTalkConfigResponse, N as parseConfigJson5, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, R as writeConfigFile, Si as normalizeSecretInput, St as AVATAR_MAX_BYTES, Tt as isAvatarImageDataUrl, Un as upsertAuthProfile, _r as resolveAllowedModelRef, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, bn as applyLegacyMigrations, br as resolveDefaultModelForAgent, dr as isCliProvider, ir as isPidAlive, j as createConfigIO, ji as DEFAULT_PROVIDER, k as migrateLegacyConfig, ki as DEFAULT_CONTEXT_TOKENS, kt as looksLikeAvatarPath, l as resolveApiKeyForProfile, lr as getModelRefStatus, mr as normalizeModelSelection, ot as parseByteSize, wr as resolveSubagentConfiguredModelSelection, wt as isAvatarHttpUrl, xi as normalizeOptionalSecretInput, xn as ensureControlUiAllowedOriginsForNonLoopbackBind, xr as resolveHooksGmailModel, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins } from "./auth-profiles-Dgxwr8Sa.js";
6
+ import { Ai as DEFAULT_MODEL, B as OpenClawSchema, Er as resolveThinkingDefault, F as readConfigFileSnapshotForWrite, Fn as resolveSubagentMaxConcurrent, I as resolveConfigSnapshotHash, Jn as loadAuthProfileStoreForRuntime, M as loadConfig, Mn as buildTalkConfigResponse, N as parseConfigJson5, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, R as writeConfigFile, Si as normalizeSecretInput, St as AVATAR_MAX_BYTES, Tt as isAvatarImageDataUrl, Un as upsertAuthProfile, _r as resolveAllowedModelRef, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, bn as applyLegacyMigrations, br as resolveDefaultModelForAgent, dr as isCliProvider, ir as isPidAlive, j as createConfigIO, ji as DEFAULT_PROVIDER, k as migrateLegacyConfig, ki as DEFAULT_CONTEXT_TOKENS, kt as looksLikeAvatarPath, l as resolveApiKeyForProfile, lr as getModelRefStatus, mr as normalizeModelSelection, ot as parseByteSize, wr as resolveSubagentConfiguredModelSelection, wt as isAvatarHttpUrl, xi as normalizeOptionalSecretInput, xn as ensureControlUiAllowedOriginsForNonLoopbackBind, xr as resolveHooksGmailModel, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins } from "./auth-profiles-DNfjfFON.js";
7
7
  import { t as formatCliCommand } from "./command-format-Bu77oTl0.js";
8
- import { a as resolveAgentDir, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-YUWhK3d-.js";
8
+ import { a as resolveAgentDir, c as resolveAgentModelFallbacksOverride, d as resolveDefaultAgentId, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, n as listAgentEntries, r as listAgentIds, u as resolveAgentWorkspaceDir } from "./agent-scope-BSkZamWK.js";
9
9
  import { S as isCronRunSessionKey, T as parseAgentSessionKey, c as normalizeAgentId, g as normalizeAccountId$1, h as DEFAULT_ACCOUNT_ID, l as normalizeMainKey, m as toAgentStoreSessionKey, o as classifySessionKeyShape, p as toAgentRequestSessionKey, r as buildAgentMainSessionKey, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, w as isSubagentSessionKey } from "./session-key-BLprDJYq.js";
10
10
  import { E as isPlainObject, T as truncateUtf16Safe, n as clamp, s as ensureDir, v as resolveUserPath, x as shortenHomePath } from "./utils-Dwy0Sy1G.js";
11
- import { A as isNotFoundPathError, C as openBoundaryFileSync, P as matchesSkillFilter, S as openBoundaryFile, T as sameFileIdentity, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_SOUL_FILENAME, d as ensureAgentWorkspace, h as resolveDefaultAgentWorkspaceDir, i as DEFAULT_HEARTBEAT_FILENAME, l as DEFAULT_TOOLS_FILENAME, o as DEFAULT_MEMORY_ALT_FILENAME, p as isWorkspaceOnboardingCompleted, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_MEMORY_FILENAME, t as DEFAULT_AGENTS_FILENAME, u as DEFAULT_USER_FILENAME, v as resolveWorkspaceTemplateDir, w as openVerifiedFileSync, y as resolveOpenClawPackageRoot } from "./workspace-D3Bd1Wd-.js";
11
+ import { A as isNotFoundPathError, C as openBoundaryFileSync, P as matchesSkillFilter, S as openBoundaryFile, T as sameFileIdentity, a as DEFAULT_IDENTITY_FILENAME, c as DEFAULT_SOUL_FILENAME, d as ensureAgentWorkspace, h as resolveDefaultAgentWorkspaceDir, i as DEFAULT_HEARTBEAT_FILENAME, l as DEFAULT_TOOLS_FILENAME, o as DEFAULT_MEMORY_ALT_FILENAME, p as isWorkspaceOnboardingCompleted, r as DEFAULT_BOOTSTRAP_FILENAME, s as DEFAULT_MEMORY_FILENAME, t as DEFAULT_AGENTS_FILENAME, u as DEFAULT_USER_FILENAME, v as resolveWorkspaceTemplateDir, w as openVerifiedFileSync, y as resolveOpenClawPackageRoot } from "./workspace-CZCYGcgM.js";
12
12
  import { i as logWarn, t as logDebug } from "./logger-JNFFzTLe.js";
13
13
  import { n as runExec, t as runCommandWithTimeout } from "./exec-BxfdQ5hH.js";
14
14
  import "./github-copilot-token-BqbY2oVI.js";
@@ -16,112 +16,112 @@ import "./host-env-security-CJMD0__Z.js";
16
16
  import { n as resolveRuntimeServiceVersion, t as VERSION } from "./version-CGDNfh5C.js";
17
17
  import "./env-vars-Dw0EwyGP.js";
18
18
  import { C as clearInternalHooks, E as triggerInternalHook, T as registerInternalHook, h as createEmptyPluginRegistry, t as CHANNEL_IDS, u as getActivePluginRegistry, w as createInternalHookEvent } from "./registry-C4Fq5HtN.js";
19
- import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-D1Y5hoq2.js";
20
- import "./dock-CslXtXH_.js";
21
- import "./model-BUgU1YvD.js";
22
- import "./pi-model-discovery-P149vq2k.js";
19
+ import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-InPIGvqe.js";
20
+ import "./dock-Cki7hMDN.js";
21
+ import "./model-Cun06SAF.js";
22
+ import "./pi-model-discovery-BnW942uP.js";
23
23
  import { d as hasBinary } from "./frontmatter-I4t5UjzX.js";
24
- import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-CDZAo2Sd.js";
25
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-BQRm9WIp.js";
26
- import { t as buildWorkspaceSkillStatus } from "./skills-status-CV1r9Fs_.js";
24
+ import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-cQZqFYZM.js";
25
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-DCVgvjo3.js";
26
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-DLQ7pr9r.js";
27
27
  import { _ as normalizeGatewayClientMode, f as GATEWAY_CLIENT_CAPS, g as hasGatewayClientCap, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, p as GATEWAY_CLIENT_IDS, r as isGatewayCliClient, s as isWebchatClient, t as INTERNAL_MESSAGE_CHANNEL } from "./message-channel-DuRP9JPi.js";
28
- import { $ as resolveAgentMainSessionKey, A as readSessionPreviewItemsFromTranscript, B as cleanStaleLockFiles, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, G as resolveSessionResetPolicy, I as stripInlineDirectiveTagsForDisplay, L as stripInlineDirectiveTagsFromMessageForDisplay, M as resolveSessionTranscriptCandidates, N as stripEnvelopeFromMessage, O as cleanupArchivedSessionTranscripts, P as stripEnvelopeFromMessages, Q as canonicalizeMainSessionAlias, R as jsonUtf8Bytes, T as archiveFileOnDisk, U as evaluateSessionFreshness, Y as mergeSessionEntry, Z as setSessionRuntimeModel, d as updateSessionStore, et as resolveExplicitAgentSessionKey, it as snapshotSessionOrigin, k as readSessionMessages, n as parseSessionThreadInfo, nt as resolveMainSessionKeyFromConfig, o as loadSessionStore, t as extractDeliveryInfo, tt as resolveMainSessionKey, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-DugDYFTs.js";
29
- import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-DPspmGax.js";
30
- import { i as resolveWhatsAppAccount } from "./accounts-UZBaDk40.js";
31
- import "./accounts-C9SoQRlD.js";
28
+ import { $ as resolveAgentMainSessionKey, A as readSessionPreviewItemsFromTranscript, B as cleanStaleLockFiles, C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, G as resolveSessionResetPolicy, I as stripInlineDirectiveTagsForDisplay, L as stripInlineDirectiveTagsFromMessageForDisplay, M as resolveSessionTranscriptCandidates, N as stripEnvelopeFromMessage, O as cleanupArchivedSessionTranscripts, P as stripEnvelopeFromMessages, Q as canonicalizeMainSessionAlias, R as jsonUtf8Bytes, T as archiveFileOnDisk, U as evaluateSessionFreshness, Y as mergeSessionEntry, Z as setSessionRuntimeModel, d as updateSessionStore, et as resolveExplicitAgentSessionKey, it as snapshotSessionOrigin, k as readSessionMessages, n as parseSessionThreadInfo, nt as resolveMainSessionKeyFromConfig, o as loadSessionStore, t as extractDeliveryInfo, tt as resolveMainSessionKey, x as mergeDeliveryContext, y as deliveryContextFromSession } from "./sessions-BUvaIZVg.js";
29
+ import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-B9LVNfXo.js";
30
+ import { i as resolveWhatsAppAccount } from "./accounts-CAdzApsy.js";
31
+ import "./accounts-CuCtdH3C.js";
32
32
  import "./logging-CcxUDNcI.js";
33
- import "./accounts-MEuVJDoB.js";
34
- import { t as buildChannelAccountBindings } from "./bindings-BDScuSfd.js";
35
- import "./send-BLv3U-2N.js";
36
- import "./send-BUqXYyi5.js";
37
- import { $n as normalizeSendPolicy, $t as isExternalHookSession, A as agentCommandFromIngress, Ar as waitForActiveTasks, At as formatRestartSentinelMessage, Br as onAgentEvent, Bt as normalizeOptionalSessionKey, C as readJsonBodyWithLimit, Cr as OPENAI_TTS_VOICES, D as sleepWithAbort, Dn as formatZonedTimestamp, Dr as markGatewayDraining, E as computeBackoff, Er as getTotalQueueSize, Et as runWithModelFallback, F as createDefaultDeps, Fn as isSystemEventContextChanged, Ft as normalizeHttpWebhookUrl, Gn as DEFAULT_INPUT_IMAGE_MIMES, Gt as buildDeliveryFromLegacyPayload, Ht as normalizePayloadToSystemText, I as createOutboundSendDeps$1, Ir as stripHeartbeatToken, It as normalizeCronJobCreate, Jn as extractFileContentFromSource, Kn as DEFAULT_INPUT_MAX_REDIRECTS, Kt as hasLegacyDeliveryHints, L as resolveAgentAvatar, Lr as clearAgentRunContext, Lt as normalizeCronJobPatch, M as resolveAgentDeliveryPlan, Mr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Mt as summarizeRestartSentinel, N as resolveAgentOutboundTarget, Or as resetAllLanes, Ot as consumeRestartSentinel, P as createOutboundSendDeps, Pn as enqueueSystemEvent, Pt as writeRestartSentinel, Qn as resolveAgentTimeoutMs, Qt as getHookType, Rn as requestHeartbeatNow, Rr as emitAgentEvent, Rt as inferLegacyName, S as handleSlackHttpRequest, Sn as loadProviderUsageSummary, Sr as OPENAI_TTS_MODELS, St as resolveOutboundChannelPlugin, Un as ACP_SESSION_IDENTITY_RENDERER_VERSION, Ut as normalizeRequiredName, Vr as registerAgentRunContext, Vt as normalizeOptionalText, W as buildHistoryContextFromEntries, Wn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Wt as migrateLegacyCronPayload, Xn as normalizeMimeList, Xt as buildSafeExternalPrompt, Yn as extractImageContentFromSource, Zn as resolveInputFileLimits, Zt as detectSuspiciousPatterns, _ as loadOpenClawPlugins, _n as setPreRestartDeferralCheck, _r as resolveTtsPrefsPath, _t as resolveOutboundSessionRoute, a as runSubagentAnnounceFlow, b as resolveAgentOutboundIdentity, bn as normalizeGroupActivation, br as setTtsProvider, bt as resolveOutboundTarget, c as abortEmbeddedPiRun, cn as parseVerboseOverride, cr as resolveAgentSessionDirs, ct as resolveCronStyleNow, d as applyToolPolicyPipeline, dn as deferGatewayRestartUntilIdle, dr as getTtsProvider, dt as runCliAgent, en as applyBrowserProxyPaths, er as resolveSendPolicy, f as buildDefaultToolPolicyPipelineSteps, fn as emitGatewayRestart, fr as isTtsEnabled, ft as createOpenClawTools, gn as setGatewaySigusr1RestartPolicy, gr as resolveTtsConfig, gt as ensureOutboundSessionEntry, h as resolvePluginTools, hn as scheduleGatewaySigusr1Restart, hr as resolveTtsAutoMode, ir as stopSubagentsForRequester, jr as CommandLane, kr as setCommandLaneConcurrency, kt as formatDoctorNonInteractiveHint, l as getActiveEmbeddedRunCount, ln as buildOutboundSessionContext, lr as resolveUserTimezone, lt as getCliSessionId, m as getPluginToolMeta, mn as markGatewaySigusr1RestartHandled, mr as resolveTtsApiKey, mt as resolveAnnounceTargetFromKey, n as initSubagentRegistry, nn as resolveSessionAuthProfileOverride, nt as createReplyDispatcher, o as clearSessionQueues, on as applyModelOverrideToSessionEntry, ot as BARE_SESSION_RESET_PROMPT, pn as isGatewaySigusr1RestartExternallyAllowed, pr as isTtsProviderConfigured, pt as readLatestAssistantReply, qn as DEFAULT_INPUT_TIMEOUT_MS, qt as stripLegacyDeliveryFields, r as listDescendantRunsForRequester, rr as isAbortRequestText, rt as getTotalPendingReplies, s as runEmbeddedPiAgent, sn as applyVerboseOverride, sr as getAcpSessionManager, t as countActiveDescendantRuns, tn as persistBrowserProxyFiles, tt as dispatchInboundMessage, u as waitForEmbeddedPiRunEnd, un as consumeGatewaySigusr1RestartAuthorization, ur as clearBootstrapSnapshot, ut as setCliSessionId, v as createPluginRuntime, vn as triggerOpenClawRestart, vr as resolveTtsProviderOrder, w as requestBodyErrorToText, wr as getActiveTaskCount, wt as resetDirectoryCache, xr as textToSpeech, xt as resolveSessionDeliveryTarget, yn as unbindThreadBindingsBySessionKey, yr as setTtsEnabled, zr as getAgentRunContext, zt as normalizeOptionalAgentId } from "./subagent-registry-CU894Q5r.js";
33
+ import "./accounts-Cz3RQNdH.js";
34
+ import { t as buildChannelAccountBindings } from "./bindings-B8U0BrYk.js";
35
+ import "./send-ofq5TYCm.js";
36
+ import "./send-B3N6ed5I.js";
37
+ import { $n as resolveAgentTimeoutMs, $t as getHookType, A as agentCommandFromIngress, Ar as setCommandLaneConcurrency, At as formatDoctorNonInteractiveHint, Br as getAgentRunContext, Bt as normalizeOptionalAgentId, C as readJsonBodyWithLimit, Cn as loadProviderUsageSummary, Cr as OPENAI_TTS_MODELS, D as sleepWithAbort, Dr as getTotalQueueSize, E as computeBackoff, Et as runWithModelFallback, F as createDefaultDeps, Fn as enqueueSystemEvent, Ft as writeRestartSentinel, Gn as DEFAULT_INPUT_IMAGE_MAX_BYTES, Gt as migrateLegacyCronPayload, Hr as registerAgentRunContext, Ht as normalizeOptionalText, I as createOutboundSendDeps$1, In as isSystemEventContextChanged, It as normalizeHttpWebhookUrl, Jn as DEFAULT_INPUT_TIMEOUT_MS, Jt as stripLegacyDeliveryFields, Kn as DEFAULT_INPUT_IMAGE_MIMES, Kt as buildDeliveryFromLegacyPayload, L as resolveAgentAvatar, Lr as stripHeartbeatToken, Lt as normalizeCronJobCreate, M as resolveAgentDeliveryPlan, Mr as CommandLane, N as resolveAgentOutboundTarget, Nr as DEFAULT_HEARTBEAT_ACK_MAX_CHARS, Nt as summarizeRestartSentinel, On as formatZonedTimestamp, Or as markGatewayDraining, Ot as isFailoverError, P as createOutboundSendDeps, Qn as resolveInputFileLimits, Qt as detectSuspiciousPatterns, Rr as clearAgentRunContext, Rt as normalizeCronJobPatch, S as handleSlackHttpRequest, Sr as textToSpeech, St as resolveOutboundChannelPlugin, Tr as getActiveTaskCount, Ut as normalizePayloadToSystemText, Vr as onAgentEvent, Vt as normalizeOptionalSessionKey, W as buildHistoryContextFromEntries, Wn as ACP_SESSION_IDENTITY_RENDERER_VERSION, Wt as normalizeRequiredName, Xn as extractImageContentFromSource, Yn as extractFileContentFromSource, Zn as normalizeMimeList, Zt as buildSafeExternalPrompt, _ as loadOpenClawPlugins, _n as setGatewaySigusr1RestartPolicy, _r as resolveTtsConfig, _t as resolveOutboundSessionRoute, a as runSubagentAnnounceFlow, ar as stopSubagentsForRequester, b as resolveAgentOutboundIdentity, bn as unbindThreadBindingsBySessionKey, br as setTtsEnabled, bt as resolveOutboundTarget, c as abortEmbeddedPiRun, cn as applyVerboseOverride, cr as getAcpSessionManager, ct as resolveCronStyleNow, d as applyToolPolicyPipeline, dn as consumeGatewaySigusr1RestartAuthorization, dr as clearBootstrapSnapshot, dt as runCliAgent, en as isExternalHookSession, er as normalizeSendPolicy, f as buildDefaultToolPolicyPipelineSteps, fn as deferGatewayRestartUntilIdle, fr as getTtsProvider, ft as createOpenClawTools, gn as scheduleGatewaySigusr1Restart, gr as resolveTtsAutoMode, gt as ensureOutboundSessionEntry, h as resolvePluginTools, hn as markGatewaySigusr1RestartHandled, hr as resolveTtsApiKey, ir as isAbortRequestText, jr as waitForActiveTasks, jt as formatRestartSentinelMessage, kr as resetAllLanes, kt as consumeRestartSentinel, l as getActiveEmbeddedRunCount, ln as parseVerboseOverride, lr as resolveAgentSessionDirs, lt as getCliSessionId, m as getPluginToolMeta, mn as isGatewaySigusr1RestartExternallyAllowed, mr as isTtsProviderConfigured, mt as resolveAnnounceTargetFromKey, n as initSubagentRegistry, nn as persistBrowserProxyFiles, nt as createReplyDispatcher, o as clearSessionQueues, ot as BARE_SESSION_RESET_PROMPT, pn as emitGatewayRestart, pr as isTtsEnabled, pt as readLatestAssistantReply, qn as DEFAULT_INPUT_MAX_REDIRECTS, qt as hasLegacyDeliveryHints, r as listDescendantRunsForRequester, rn as resolveSessionAuthProfileOverride, rt as getTotalPendingReplies, s as runEmbeddedPiAgent, sn as applyModelOverrideToSessionEntry, t as countActiveDescendantRuns, tn as applyBrowserProxyPaths, tr as resolveSendPolicy, tt as dispatchInboundMessage, u as waitForEmbeddedPiRunEnd, un as buildOutboundSessionContext, ur as resolveUserTimezone, ut as setCliSessionId, v as createPluginRuntime, vn as setPreRestartDeferralCheck, vr as resolveTtsPrefsPath, w as requestBodyErrorToText, wr as OPENAI_TTS_VOICES, wt as resetDirectoryCache, xn as normalizeGroupActivation, xr as setTtsProvider, xt as resolveSessionDeliveryTarget, yn as triggerOpenClawRestart, yr as resolveTtsProviderOrder, zn as requestHeartbeatNow, zr as emitAgentEvent, zt as inferLegacyName } from "./subagent-registry-DxueEkqw.js";
38
38
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-oIurw4YQ.js";
39
39
  import { i as normalizeInputProvenance } from "./input-provenance-BDYpbBeC.js";
40
40
  import "./chat-envelope-AUuZAcrC.js";
41
- import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-DrZ4qfxw.js";
42
- import { $ as validateNodePairApproveParams, $t as roleScopesAllow, A as validateCronStatusParams, At as validateWizardStartParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateToolsCatalogParams, D as validateCronRemoveParams, Dt as validateWebLoginWaitParams, E as validateCronListParams, Et as validateWebLoginStartParams, F as validateDevicePairRemoveParams, G as validateModelsAuthSetParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, Ht as ensureDeviceToken, I as validateDeviceTokenRevokeParams, It as parseSessionLabel, J as validateNodeDescribeParams, Jt as revokeDeviceToken, K as validateModelsListParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as buildDeviceAuthPayload, M as validateDevicePairApproveParams, Mt as PROTOCOL_VERSION, N as validateDevicePairListParams, Nt as ErrorCodes, O as validateCronRunParams, Ot as validateWizardCancelParams, P as validateDevicePairRejectParams, Pt as errorShape, Q as validateNodeListParams, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayloadV3, S as validateConfigSchemaParams, St as validateTalkModeParams, T as validateCronAddParams, Tt as validateWakeParams, U as validateExecApprovalsSetParams, Ut as getPairedDevice, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeInvokeParams, Xt as summarizeDeviceTokens, Y as validateNodeEventParams, Yt as rotateDeviceToken, Z as validateNodeInvokeResultParams, Zt as updatePairedDeviceMetadata, _ as validateChatInjectParams, _t as validateSkillsBinsParams, a as validateAgentWaitParams, at as validatePollParams, b as validateConfigGetParams, bt as validateSkillsUpdateParams, c as validateAgentsFilesGetParams, ct as validateSendParams, d as validateAgentsListParams, dt as validateSessionsListParams, et as validateNodePairListParams, f as validateAgentsUpdateParams, ft as validateSessionsPatchParams, g as validateChatHistoryParams, gt as validateSessionsUsageParams, h as validateChatAbortParams, ht as validateSessionsResolveParams, i as validateAgentParams, in as verifyDeviceSignature, it as validateNodeRenameParams, j as validateCronUpdateParams, jt as validateWizardStatusParams, k as validateCronRunsParams, kt as validateWizardNextParams, l as validateAgentsFilesListParams, lt as validateSessionsCompactParams, m as validateChannelsStatusParams, mt as validateSessionsResetParams, n as formatValidationErrors, nt as validateNodePairRequestParams, o as validateAgentsCreateParams, ot as validatePushTestParams, p as validateChannelsLogoutParams, pt as validateSessionsPreviewParams, q as validateModelsVerifyParams, qt as requestDevicePairing, r as validateAgentIdentityParams, rn as normalizeDevicePublicKeyBase64Url, rt as validateNodePairVerifyParams, s as validateAgentsDeleteParams, st as validateRequestFrame, tn as deriveDeviceIdFromPublicKey, tt as validateNodePairRejectParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSkillsInstallParams, w as validateConnectParams, wt as validateUpdateRunParams, x as validateConfigPatchParams, xt as validateTalkConfigParams, y as validateConfigApplyParams, yt as validateSkillsStatusParams, z as validateExecApprovalResolveParams, zt as normalizeDeviceMetadataForAuth } from "./client-DVME2dNA.js";
43
- import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-Dx2aHVrt.js";
41
+ import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-1hhV5hS6.js";
42
+ import { $ as validateNodePairApproveParams, $t as roleScopesAllow, A as validateCronStatusParams, At as validateWizardStartParams, B as validateExecApprovalsGetParams, C as validateConfigSetParams, Ct as validateToolsCatalogParams, D as validateCronRemoveParams, Dt as validateWebLoginWaitParams, E as validateCronListParams, Et as validateWebLoginStartParams, F as validateDevicePairRemoveParams, G as validateModelsAuthSetParams, Gt as rejectDevicePairing, H as validateExecApprovalsNodeSetParams, Ht as ensureDeviceToken, I as validateDeviceTokenRevokeParams, It as parseSessionLabel, J as validateNodeDescribeParams, Jt as revokeDeviceToken, K as validateModelsListParams, Kt as removePairedDevice, L as validateDeviceTokenRotateParams, Lt as buildDeviceAuthPayload, M as validateDevicePairApproveParams, Mt as PROTOCOL_VERSION, N as validateDevicePairListParams, Nt as ErrorCodes, O as validateCronRunParams, Ot as validateWizardCancelParams, P as validateDevicePairRejectParams, Pt as errorShape, Q as validateNodeListParams, Qt as verifyDeviceToken, R as validateExecApprovalRequestParams, Rt as buildDeviceAuthPayloadV3, S as validateConfigSchemaParams, St as validateTalkModeParams, T as validateCronAddParams, Tt as validateWakeParams, U as validateExecApprovalsSetParams, Ut as getPairedDevice, V as validateExecApprovalsNodeGetParams, Vt as approveDevicePairing, W as validateLogsTailParams, Wt as listDevicePairing, X as validateNodeInvokeParams, Xt as summarizeDeviceTokens, Y as validateNodeEventParams, Yt as rotateDeviceToken, Z as validateNodeInvokeResultParams, Zt as updatePairedDeviceMetadata, _ as validateChatInjectParams, _t as validateSkillsBinsParams, a as validateAgentWaitParams, at as validatePollParams, b as validateConfigGetParams, bt as validateSkillsUpdateParams, c as validateAgentsFilesGetParams, ct as validateSendParams, d as validateAgentsListParams, dt as validateSessionsListParams, et as validateNodePairListParams, f as validateAgentsUpdateParams, ft as validateSessionsPatchParams, g as validateChatHistoryParams, gt as validateSessionsUsageParams, h as validateChatAbortParams, ht as validateSessionsResolveParams, i as validateAgentParams, in as verifyDeviceSignature, it as validateNodeRenameParams, j as validateCronUpdateParams, jt as validateWizardStatusParams, k as validateCronRunsParams, kt as validateWizardNextParams, l as validateAgentsFilesListParams, lt as validateSessionsCompactParams, m as validateChannelsStatusParams, mt as validateSessionsResetParams, n as formatValidationErrors, nt as validateNodePairRequestParams, o as validateAgentsCreateParams, ot as validatePushTestParams, p as validateChannelsLogoutParams, pt as validateSessionsPreviewParams, q as validateModelsVerifyParams, qt as requestDevicePairing, r as validateAgentIdentityParams, rn as normalizeDevicePublicKeyBase64Url, rt as validateNodePairVerifyParams, s as validateAgentsDeleteParams, st as validateRequestFrame, tn as deriveDeviceIdFromPublicKey, tt as validateNodePairRejectParams, u as validateAgentsFilesSetParams, ut as validateSessionsDeleteParams, v as validateChatSendParams, vt as validateSkillsInstallParams, w as validateConnectParams, wt as validateUpdateRunParams, x as validateConfigPatchParams, xt as validateTalkConfigParams, y as validateConfigApplyParams, yt as validateSkillsStatusParams, z as validateExecApprovalResolveParams, zt as normalizeDeviceMetadataForAuth } from "./client-CbO7FTeL.js";
43
+ import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-Da49LtVk.js";
44
44
  import "./pairing-token-fCKTYUJ-.js";
45
45
  import { t as safeEqualSecret } from "./secret-equal-CzmdvIUc.js";
46
- import { a as isTrustedProxyAddress, c as pickPrimaryLanIPv4, d as resolveGatewayListenHosts, f as rawDataToString, l as resolveClientIp, n as isLoopbackAddress, o as isValidIPv4, r as isLoopbackHost, s as normalizeHostHeader, t as isLocalishHost, u as resolveGatewayBindHost } from "./net-B1yWST2Q.js";
47
- import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-D67wyPIH.js";
46
+ import { a as isTrustedProxyAddress, c as pickPrimaryLanIPv4, d as resolveGatewayListenHosts, f as rawDataToString, l as resolveClientIp, n as isLoopbackAddress, o as isValidIPv4, r as isLoopbackHost, s as normalizeHostHeader, t as isLocalishHost, u as resolveGatewayBindHost } from "./net-Dsab06Rf.js";
47
+ import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-CQxQNgt6.js";
48
48
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-COy2Fxku.js";
49
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-DUosdGNq.js";
50
- import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-CeItj33i.js";
51
- import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-BS_rmYNQ.js";
49
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-CojHmZpl.js";
50
+ import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-BCX2HRzP.js";
51
+ import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-CgNDbdut.js";
52
52
  import "./diagnostic-session-state-B5Z0I32_.js";
53
- import { S as saveCronStore, b as loadCronStore, x as resolveCronStorePath } from "./send-BLyXZjPe.js";
54
- import { c as detectMime } from "./image-ops-_2-6WZ4r.js";
55
- import "./pi-embedded-helpers-C6qtvkzL.js";
56
- import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-ClasEjRW.js";
53
+ import { S as saveCronStore, b as loadCronStore, x as resolveCronStorePath } from "./send-CUhKEB1L.js";
54
+ import { c as detectMime } from "./image-ops-Cv4BHtyC.js";
55
+ import { F as resolveChatUiHintForError } from "./pi-embedded-helpers-YXFiUfat.js";
56
+ import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-GZ80o0rN.js";
57
57
  import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-CDe8aNjS.js";
58
- import "./chrome-F8yPeLCk.js";
58
+ import "./chrome-BosxOvwr.js";
59
59
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-DwvUI5Bb.js";
60
- import { a as resolveGatewayAuth, c as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, i as isLocalDirectRequest, l as createAuthRateLimiter, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH, t as assertGatewayAuthConfigured, u as normalizeRateLimitClientIp } from "./auth-DeS7F6Hd.js";
61
- import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-3YhieMNo.js";
62
- import "./paths-B0fezTQW.js";
60
+ import { a as resolveGatewayAuth, c as AUTH_RATE_LIMIT_SCOPE_SHARED_SECRET, i as isLocalDirectRequest, l as createAuthRateLimiter, n as authorizeHttpGatewayConnect, o as AUTH_RATE_LIMIT_SCOPE_DEVICE_TOKEN, r as authorizeWsControlUiGatewayConnect, s as AUTH_RATE_LIMIT_SCOPE_HOOK_AUTH, t as assertGatewayAuthConfigured, u as normalizeRateLimitClientIp } from "./auth-CVxYkRFJ.js";
61
+ import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-BIKTw3k8.js";
62
+ import "./paths-ufuDrRZO.js";
63
63
  import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-CYcs8rK6.js";
64
64
  import { o as isErrno, r as formatErrorMessage } from "./errors-BMwPyScO.js";
65
- import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-nXGqHBF8.js";
66
- import { n as SsrFBlockedError } from "./proxy-env-B9lqcBfU.js";
67
- import "./store-GKlw8Qa-.js";
68
- import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-Do_Plo8C.js";
65
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-BtSQvuQn.js";
66
+ import { n as SsrFBlockedError } from "./proxy-env-DQluNeAy.js";
67
+ import "./store-D1eSPAL7.js";
68
+ import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-BKC_uvax.js";
69
69
  import { t as movePathToTrash } from "./trash-Dlgx3ady.js";
70
- import "./server-middleware-hZnQvs4T.js";
71
- import "./tool-images-rmLnTSxP.js";
70
+ import "./server-middleware-Q0-cjKBA.js";
71
+ import "./tool-images-hL7SizLq.js";
72
72
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels } from "./thinking-BxCyPtl0.js";
73
- import "./models-config-BUq1pLs3.js";
74
- import "./exec-approvals-allowlist-Dgb12MXc.js";
75
- import "./exec-safe-bin-runtime-policy-BfybDm-q.js";
76
- import { n as loadModelCatalog } from "./model-catalog-D4hoiCav.js";
77
- import "./fetch-BZWXCGP2.js";
78
- import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-Dnkt3gmf.js";
79
- import { t as fetchWithSsrFGuard } from "./fetch-guard-BplMfPrm.js";
80
- import { x as extractTextFromChatContent } from "./image-HyFl8MrD.js";
73
+ import "./models-config-BjTFyv9Z.js";
74
+ import "./exec-approvals-allowlist-Bdtmhwgj.js";
75
+ import "./exec-safe-bin-runtime-policy-DfgvmbZG.js";
76
+ import { n as loadModelCatalog } from "./model-catalog-BoIN1v0Q.js";
77
+ import "./fetch-Dp9uG2qN.js";
78
+ import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-BEtb5Jme.js";
79
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-ClzGpvFK.js";
80
+ import { x as extractTextFromChatContent } from "./image-CrLgaJde.js";
81
81
  import "./tool-display-sVaWRESD.js";
82
- import "./api-key-rotation-D7ptHGeX.js";
82
+ import "./api-key-rotation-KLYtCoCN.js";
83
83
  import "./proxy-fetch-ReVzadXq.js";
84
- import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-CqTNlEbX.js";
84
+ import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-BwXX5Jk8.js";
85
85
  import "./chunk-BNLlgymK.js";
86
- import "./markdown-tables-BDe192Ai.js";
87
- import "./ir-DaZ8ITYK.js";
86
+ import "./markdown-tables-DoeNp6Yw.js";
87
+ import "./ir-Bov3hbIf.js";
88
88
  import "./render-Bwu_WxwA.js";
89
- import { a as ToolInputError } from "./target-errors-AeE93vdq.js";
90
- import { r as isRestartEnabled } from "./commands-NkZDaV9a.js";
91
- import "./commands-registry-BEOnewEO.js";
89
+ import { a as ToolInputError } from "./target-errors-8-urss_s.js";
90
+ import { r as isRestartEnabled } from "./commands-pIMTT07J.js";
91
+ import "./commands-registry-DsvOsTTF.js";
92
92
  import "./fetch-BAIuE19S.js";
93
93
  import "./retry-BB6FMQn9.js";
94
- import { a as readChannelAllowFromStoreSync } from "./pairing-store-B27cuhBQ.js";
94
+ import { a as readChannelAllowFromStoreSync } from "./pairing-store-BBxShFYa.js";
95
95
  import { a as mergeExecApprovalsSocketDefaults, c as readExecApprovalsSnapshot, p as saveExecApprovals, r as ensureExecApprovals, s as normalizeExecApprovals, t as DEFAULT_EXEC_APPROVAL_TIMEOUT_MS } from "./exec-approvals-DW6bgoDc.js";
96
- import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-9RT6NG41.js";
97
- import { n as resolveSystemRunCommand } from "./system-run-command-Pd55ipfO.js";
98
- import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as lookupContextTokens } from "./session-utils-BSsFceEN.js";
96
+ import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-BfHQppAv.js";
97
+ import { n as resolveSystemRunCommand } from "./system-run-command-BkdvGhnZ.js";
98
+ import { a as loadCombinedSessionStoreForGateway, c as resolveGatewaySessionStoreTarget, i as listSessionsFromStore, l as resolveSessionModelRef, o as loadSessionEntry, r as listAgentsForGateway, s as pruneLegacyStoreKeys, t as canonicalizeSpawnedByForAgent, u as lookupContextTokens } from "./session-utils-dcEiC-U5.js";
99
99
  import { c as hasNonzeroUsage, i as loadSessionUsageTimeSeries, n as loadCostUsageSummary, r as loadSessionCostSummary, s as deriveSessionTotalTokens, t as discoverAllSessions } from "./session-cost-usage-BsxmoBNj.js";
100
100
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-BzVVjHV2.js";
101
- import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-KfP9rDJM.js";
102
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-x94RXrLL.js";
101
+ import { S as registerSkillsChangeListener, _ as requestNodePairing, c as recordRemoteNodeInfo, d as removeRemoteNodeInfo, f as setSkillsRemoteRegistry, g as renamePairedNode, h as rejectNodePairing, l as refreshRemoteBinsForConnectedNodes, m as listNodePairing, o as getRemoteSkillEligibility, p as approveNodePairing, s as primeRemoteSkillsCache, u as refreshRemoteNodeBins, v as updatePairedNodeMetadata, x as getSkillsSnapshotVersion, y as verifyNodeToken } from "./skill-commands-Do5yZvPn.js";
102
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs-CksYiwHf.js";
103
103
  import { t as getChannelActivity } from "./channel-activity-SjFx-6OM.js";
104
104
  import { n as normalizePollInput } from "./polls-DXeUmcgz.js";
105
- import "./tables-B6wgQqYN.js";
106
- import "./server-lifecycle-DE7bHlKs.js";
105
+ import "./tables-CTFvIcTQ.js";
106
+ import "./server-lifecycle-N5bU8mjm.js";
107
107
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-Bi1uV655.js";
108
- import { n as resolveMessageChannelSelection } from "./channel-selection-ZJlD8RW_.js";
109
- import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-C4EhTu_y.js";
110
- import "./send-DLfPZ3_F.js";
111
- import "./outbound-attachment-Dhx3-Gcn.js";
108
+ import { n as resolveMessageChannelSelection } from "./channel-selection-BuY5iEbg.js";
109
+ import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-MtcFdE6T.js";
110
+ import "./send-D52tAxa7.js";
111
+ import "./outbound-attachment-BLl9Vid0.js";
112
112
  import "./delivery-queue-igSkk02R.js";
113
- import "./send-CwHSY0pB.js";
114
- import "./resolve-route-rhGDrrKc.js";
115
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-DwPGGCBG.js";
113
+ import "./send-DyQvZx-9.js";
114
+ import "./resolve-route-BAFZr0AD.js";
115
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-ClPMGEq4.js";
116
116
  import "./proxy-BmxJF3Z2.js";
117
- import "./replies-9B0e_W0H.js";
118
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-DLQ_XMs1.js";
117
+ import "./replies-Cnwwqegi.js";
118
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-BS_bPZKe.js";
119
119
  import "./prompt-style-lCXEOxSK.js";
120
- import "./pairing-labels-BUGAt7vg.js";
121
- import "./session-meta-Cyjw6vgH.js";
122
- import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-BMul3CV1.js";
123
- import { r as resolveMemorySearchConfig } from "./manager-B74jUC6O.js";
124
- import "./query-expansion-BOhTMSRT.js";
120
+ import "./pairing-labels-RbKVJQq5.js";
121
+ import "./session-meta-Dofh28uR.js";
122
+ import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-C0hNuh-t.js";
123
+ import { r as resolveMemorySearchConfig } from "./manager-ZjJ9M2x6.js";
124
+ import "./query-expansion-DmsmrMjB.js";
125
125
  import { t as formatDocsLink } from "./links-EkBvdQLJ.js";
126
126
  import { n as runCommandWithRuntime } from "./cli-utils-aSBNHQae.js";
127
127
  import { t as formatHelpExamples } from "./help-format-BGSdS7w4.js";
@@ -134,45 +134,45 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-lwpZk6nY.
134
134
  import { n as inheritOptionFromParent } from "./command-options-DGYxc3D_.js";
135
135
  import { t as WizardCancelledError } from "./prompts-QSI6gA3k.js";
136
136
  import { t as resolveChannelDefaultAccountId } from "./helpers-D6BlzJnx.js";
137
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-D-pjQl0a.js";
138
- import { t as isWithinDir } from "./path-safety-DDHmx5YW.js";
139
- import { t as assertCanonicalPathWithinBase } from "./install-safe-path-DBJEsbCp.js";
140
- import "./skill-scanner-D7WuF5Sb.js";
141
- import { n as formatConfigIssueLines } from "./issue-format-BK98Hpx-.js";
137
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-P4PAeT4_.js";
138
+ import { t as isWithinDir } from "./path-safety-DmE3pKqe.js";
139
+ import { t as assertCanonicalPathWithinBase } from "./install-safe-path-CSglDbi-.js";
140
+ import "./skill-scanner-DiC9yuOY.js";
141
+ import { n as formatConfigIssueLines } from "./issue-format-Bnj64obT.js";
142
142
  import { t as buildChannelAccountSnapshot } from "./status-BIupzBh9.js";
143
- import "./channels-status-issues-Ccr7cxgt.js";
144
- import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-Cx6qYiIY.js";
145
- import "./daemon-install-helpers-BsUgG6nU.js";
143
+ import "./channels-status-issues-C3zPqi31.js";
144
+ import { a as buildBaseHints, i as applySensitiveHints, n as redactConfigSnapshot, o as mapSensitivePaths, r as restoreRedactedValues, s as applyDerivedTags, t as redactConfigObject } from "./redact-snapshot-BGusjTY9.js";
145
+ import "./daemon-install-helpers-BHTLKVCH.js";
146
146
  import "./runtime-guard-Bif49nR1.js";
147
- import "./systemd-DVgFh5bF.js";
148
- import "./service-DdLDWk4F.js";
149
- import "./lifecycle-core-BrIHPmUB.js";
150
- import "./systemd-hints-BC7wmmDb.js";
147
+ import "./systemd-CTamqs8u.js";
148
+ import "./service-Bdwg8-MP.js";
149
+ import "./lifecycle-core-_8xJF_9z.js";
150
+ import "./systemd-hints-D4VSR4gB.js";
151
151
  import { t as parsePort$1 } from "./parse-port-Dq63ch6Y.js";
152
- import { n as addGatewayServiceCommands } from "./daemon-cli-CEmNv817.js";
153
- import "./diagnostics-DCUyr8cM.js";
152
+ import { n as addGatewayServiceCommands } from "./daemon-cli-BMq2D7sp.js";
153
+ import "./diagnostics-DFZTmuFB.js";
154
154
  import "./table-DHipKm5c.js";
155
155
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-CJpVMOp6.js";
156
- import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-fKlvovu7.js";
157
- import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-D-QnHZqm.js";
158
- import { t as discoverGatewayBeacons } from "./bonjour-discovery-Cr9ghR-L.js";
159
- import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-B8I9eCIt.js";
160
- import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as isCronSystemEvent } from "./health-Dyd4RpCM.js";
161
- import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-hAbiBedq.js";
162
- import { o as isBitseekBuild } from "./status.update-CbAiJIbB.js";
163
- import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-D__SZrX3.js";
164
- import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-vnX4kz3-.js";
165
- import { t as runOnboardingWizard } from "./onboarding-BLcdYzEJ.js";
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-CfIOYv6I.js";
156
+ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-CDevUk3t.js";
157
+ import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-DG0miQ3A.js";
158
+ import { t as discoverGatewayBeacons } from "./bonjour-discovery-CvAov_o2.js";
159
+ import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-EvQ73B8e.js";
160
+ import { a as styleHealthChannelLine, c as setHeartbeatsEnabled, l as startHeartbeatRunner, n as getHealthSnapshot, s as runHeartbeatOnce, t as formatHealthChannelLines, u as isCronSystemEvent } from "./health-CgHjmUFQ.js";
161
+ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CWYG-y7n.js";
162
+ import { o as isBitseekBuild } from "./status.update-DUDM6iUC.js";
163
+ import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-8QkfoueX.js";
164
+ import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-uZw9qW6d.js";
165
+ import { t as runOnboardingWizard } from "./onboarding-I5wAbpKA.js";
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-8_4x3QDX.js";
167
167
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-Bk2GBbEH.js";
168
- import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-Dk_UuHKt.js";
169
- import "./node-service-BNRDY7GU.js";
170
- import "./shared-D96SvIQZ.js";
171
- import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-DGA1AopE.js";
172
- import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-Ba_1ws_H.js";
173
- import { t as runGatewayUpdate } from "./update-runner-CDmAZF8g.js";
174
- import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-CoIrgiMR.js";
175
- import { n as forceFreePortAndWait } from "./ports-BNwHSlzK.js";
168
+ import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-CtLbfZ7S.js";
169
+ import "./node-service-Dc_k2bXh.js";
170
+ import "./shared-haEHGkpf.js";
171
+ import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-BJ1NdBPQ.js";
172
+ import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-BASrKfvX.js";
173
+ import { t as runGatewayUpdate } from "./update-runner-D3Dqz9wz.js";
174
+ import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-BxNxoapu.js";
175
+ import { n as forceFreePortAndWait } from "./ports-TfIbPY8z.js";
176
176
  import { spawn, spawnSync } from "node:child_process";
177
177
  import { fileURLToPath, pathToFileURL } from "node:url";
178
178
  import path from "node:path";
@@ -181,7 +181,7 @@ import * as fsSync from "node:fs";
181
181
  import fs from "node:fs";
182
182
  import chalk from "chalk";
183
183
  import { isDeepStrictEqual } from "node:util";
184
- import fs$1 from "node:fs/promises";
184
+ import fsPromises from "node:fs/promises";
185
185
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
186
186
  import { z } from "zod";
187
187
  import { CURRENT_SESSION_VERSION, SessionManager } from "@mariozechner/pi-coding-agent";
@@ -1251,7 +1251,7 @@ function resolveCheckIntervalMs(cfg) {
1251
1251
  }
1252
1252
  async function readState(statePath) {
1253
1253
  try {
1254
- const raw = await fs$1.readFile(statePath, "utf-8");
1254
+ const raw = await fsPromises.readFile(statePath, "utf-8");
1255
1255
  const parsed = JSON.parse(raw);
1256
1256
  return parsed && typeof parsed === "object" ? parsed : {};
1257
1257
  } catch {
@@ -1332,7 +1332,7 @@ async function runAutoUpdateCommand(params) {
1332
1332
  path.join(params.root, "dist", "index.mjs")
1333
1333
  ];
1334
1334
  for (const candidate of candidates) try {
1335
- await fs$1.access(candidate);
1335
+ await fsPromises.access(candidate);
1336
1336
  argv.push(execPath, candidate, ...baseArgs);
1337
1337
  break;
1338
1338
  } catch {}
@@ -2799,7 +2799,7 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2799
2799
  broadcast("chat", payload, { dropIfSlow: true });
2800
2800
  nodeSendToSession(sessionKey, "chat", payload);
2801
2801
  };
2802
- const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error) => {
2802
+ const emitChatFinal = (sessionKey, clientRunId, sourceRunId, seq, jobState, error, uiHint) => {
2803
2803
  const normalizedHeartbeatText = normalizeHeartbeatChatFinalText({
2804
2804
  runId: clientRunId,
2805
2805
  sourceRunId,
@@ -2833,7 +2833,8 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2833
2833
  sessionKey,
2834
2834
  seq,
2835
2835
  state: "error",
2836
- errorMessage: error ? formatForLog(error) : void 0
2836
+ errorMessage: error ? formatForLog(error) : void 0,
2837
+ ...typeof uiHint === "string" && uiHint.trim() ? { uiHint } : {}
2837
2838
  };
2838
2839
  broadcast("chat", payload);
2839
2840
  nodeSendToSession(sessionKey, "chat", payload);
@@ -2908,8 +2909,8 @@ function createAgentEventHandler({ broadcast, broadcastToConnIds, nodeSendToSess
2908
2909
  clearAgentRunContext(evt.runId);
2909
2910
  return;
2910
2911
  }
2911
- emitChatFinal(finished.sessionKey, finished.clientRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
2912
- } else emitChatFinal(sessionKey, eventRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error);
2912
+ emitChatFinal(finished.sessionKey, finished.clientRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error, evt.data?.uiHint);
2913
+ } else emitChatFinal(sessionKey, eventRunId, evt.runId, evt.seq, lifecyclePhase === "error" ? "error" : "done", evt.data?.error, evt.data?.uiHint);
2913
2914
  else if (isAborted && (lifecyclePhase === "end" || lifecyclePhase === "error")) {
2914
2915
  chatRunState.abortedRuns.delete(clientRunId);
2915
2916
  chatRunState.abortedRuns.delete(evt.runId);
@@ -4407,20 +4408,20 @@ async function drainPendingWrite(filePath) {
4407
4408
  if (pending) await pending.catch(() => void 0);
4408
4409
  }
4409
4410
  async function pruneIfNeeded(filePath, opts) {
4410
- const stat = await fs$1.stat(filePath).catch(() => null);
4411
+ const stat = await fsPromises.stat(filePath).catch(() => null);
4411
4412
  if (!stat || stat.size <= opts.maxBytes) return;
4412
- const lines = (await fs$1.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4413
+ const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4413
4414
  const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
4414
4415
  const { randomBytes } = await import("node:crypto");
4415
4416
  const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
4416
- await fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4417
- await fs$1.rename(tmp, filePath);
4417
+ await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4418
+ await fsPromises.rename(tmp, filePath);
4418
4419
  }
4419
4420
  async function appendCronRunLog(filePath, entry, opts) {
4420
4421
  const resolved = path.resolve(filePath);
4421
4422
  const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
4422
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
4423
- await fs$1.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4423
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
4424
+ await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4424
4425
  await pruneIfNeeded(resolved, {
4425
4426
  maxBytes: opts?.maxBytes ?? DEFAULT_CRON_RUN_LOG_MAX_BYTES,
4426
4427
  keepLines: opts?.keepLines ?? DEFAULT_CRON_RUN_LOG_KEEP_LINES
@@ -4514,7 +4515,7 @@ function filterRunLogEntries(entries, opts) {
4514
4515
  async function readCronRunLogEntriesPage(filePath, opts) {
4515
4516
  await drainPendingWrite(filePath);
4516
4517
  const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
4517
- const raw = await fs$1.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4518
+ const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4518
4519
  const statuses = normalizeRunStatuses(opts);
4519
4520
  const deliveryStatuses = normalizeDeliveryStatuses(opts);
4520
4521
  const query = opts?.query?.trim().toLowerCase() ?? "";
@@ -4550,7 +4551,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4550
4551
  const query = opts.query?.trim().toLowerCase() ?? "";
4551
4552
  const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
4552
4553
  const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
4553
- const jsonlFiles = (await fs$1.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
4554
+ const jsonlFiles = (await fsPromises.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
4554
4555
  if (jsonlFiles.length === 0) return {
4555
4556
  entries: [],
4556
4557
  total: 0,
@@ -4561,7 +4562,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4561
4562
  };
4562
4563
  await Promise.all(jsonlFiles.map((f) => drainPendingWrite(f)));
4563
4564
  const filtered = filterRunLogEntries((await Promise.all(jsonlFiles.map(async (filePath) => {
4564
- return parseAllRunLogEntries(await fs$1.readFile(filePath, "utf-8").catch(() => ""));
4565
+ return parseAllRunLogEntries(await fsPromises.readFile(filePath, "utf-8").catch(() => ""));
4565
4566
  }))).flat(), {
4566
4567
  statuses,
4567
4568
  deliveryStatuses,
@@ -9769,7 +9770,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
9769
9770
  }
9770
9771
  async function resolveWorkspaceRealPath(workspaceDir) {
9771
9772
  try {
9772
- return await fs$1.realpath(workspaceDir);
9773
+ return await fsPromises.realpath(workspaceDir);
9773
9774
  } catch {
9774
9775
  return path.resolve(workspaceDir);
9775
9776
  }
@@ -9793,7 +9794,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9793
9794
  }
9794
9795
  let candidateLstat;
9795
9796
  try {
9796
- candidateLstat = await fs$1.lstat(candidatePath);
9797
+ candidateLstat = await fsPromises.lstat(candidatePath);
9797
9798
  } catch (err) {
9798
9799
  if (isNotFoundPathError(err)) {
9799
9800
  if (params.allowMissing) return {
@@ -9813,7 +9814,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9813
9814
  if (candidateLstat.isSymbolicLink()) {
9814
9815
  let targetReal;
9815
9816
  try {
9816
- targetReal = await fs$1.realpath(candidatePath);
9817
+ targetReal = await fsPromises.realpath(candidatePath);
9817
9818
  } catch (err) {
9818
9819
  if (isNotFoundPathError(err)) {
9819
9820
  if (params.allowMissing) return {
@@ -9832,7 +9833,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9832
9833
  }
9833
9834
  let targetStat;
9834
9835
  try {
9835
- targetStat = await fs$1.stat(targetReal);
9836
+ targetStat = await fsPromises.stat(targetReal);
9836
9837
  } catch (err) {
9837
9838
  if (isNotFoundPathError(err)) {
9838
9839
  if (params.allowMissing) return {
@@ -9879,13 +9880,13 @@ async function resolveAgentWorkspaceFilePath(params) {
9879
9880
  return {
9880
9881
  kind: "ready",
9881
9882
  requestPath,
9882
- ioPath: await fs$1.realpath(candidatePath).catch(() => candidatePath),
9883
+ ioPath: await fsPromises.realpath(candidatePath).catch(() => candidatePath),
9883
9884
  workspaceReal
9884
9885
  };
9885
9886
  }
9886
9887
  async function statFileSafely(filePath) {
9887
9888
  try {
9888
- const [stat, lstat] = await Promise.all([fs$1.stat(filePath), fs$1.lstat(filePath)]);
9889
+ const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.lstat(filePath)]);
9889
9890
  if (lstat.isSymbolicLink() || !stat.isFile()) return null;
9890
9891
  if (stat.nlink > 1) return null;
9891
9892
  if (!sameFileIdentity(stat, lstat)) return null;
@@ -9970,7 +9971,7 @@ function resolveOptionalStringParam(value) {
9970
9971
  async function moveToTrashBestEffort(pathname) {
9971
9972
  if (!pathname) return;
9972
9973
  try {
9973
- await fs$1.access(pathname);
9974
+ await fsPromises.access(pathname);
9974
9975
  } catch {
9975
9976
  return;
9976
9977
  }
@@ -10046,7 +10047,7 @@ const agentsHandlers = {
10046
10047
  dir: workspaceDir,
10047
10048
  ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
10048
10049
  });
10049
- await fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10050
+ await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10050
10051
  await writeConfigFile(nextConfig);
10051
10052
  const safeName = sanitizeIdentityLine(rawName);
10052
10053
  const emoji = resolveOptionalStringParam(params.emoji);
@@ -10059,7 +10060,7 @@ const agentsHandlers = {
10059
10060
  ...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
10060
10061
  ""
10061
10062
  ];
10062
- await fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
10063
+ await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
10063
10064
  respond(true, {
10064
10065
  ok: true,
10065
10066
  agentId,
@@ -10094,9 +10095,9 @@ const agentsHandlers = {
10094
10095
  });
10095
10096
  if (avatar) {
10096
10097
  const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
10097
- await fs$1.mkdir(workspace, { recursive: true });
10098
+ await fsPromises.mkdir(workspace, { recursive: true });
10098
10099
  const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
10099
- await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10100
+ await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10100
10101
  }
10101
10102
  respond(true, {
10102
10103
  ok: true,
@@ -10220,7 +10221,7 @@ const agentsHandlers = {
10220
10221
  const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
10221
10222
  if (!resolved) return;
10222
10223
  const { agentId, workspaceDir, name } = resolved;
10223
- await fs$1.mkdir(workspaceDir, { recursive: true });
10224
+ await fsPromises.mkdir(workspaceDir, { recursive: true });
10224
10225
  const filePath = path.join(workspaceDir, name);
10225
10226
  const resolvedPath = await resolveWorkspaceFilePathOrRespond({
10226
10227
  respond,
@@ -11064,7 +11065,8 @@ function broadcastChatError(params) {
11064
11065
  sessionKey: params.sessionKey,
11065
11066
  seq,
11066
11067
  state: "error",
11067
- errorMessage: params.errorMessage
11068
+ errorMessage: params.errorMessage,
11069
+ ...params.uiHint ? { uiHint: params.uiHint } : {}
11068
11070
  };
11069
11071
  params.context.broadcast("chat", payload);
11070
11072
  params.context.nodeSendToSession(params.sessionKey, "chat", payload);
@@ -11398,6 +11400,11 @@ const chatHandlers = {
11398
11400
  }
11399
11401
  });
11400
11402
  }).catch((err) => {
11403
+ const uiHint = isFailoverError(err) ? resolveChatUiHintForError({
11404
+ provider: err.provider,
11405
+ model: err.model,
11406
+ rawError: err.message
11407
+ }) : void 0;
11401
11408
  const error = errorShape(ErrorCodes.UNAVAILABLE, String(err));
11402
11409
  context.dedupe.set(`chat:${clientRunId}`, {
11403
11410
  ts: Date.now(),
@@ -11413,7 +11420,8 @@ const chatHandlers = {
11413
11420
  context,
11414
11421
  runId: clientRunId,
11415
11422
  sessionKey: rawSessionKey,
11416
- errorMessage: String(err)
11423
+ errorMessage: String(err),
11424
+ uiHint
11417
11425
  });
11418
11426
  }).finally(() => {
11419
11427
  context.chatAbortControllers.delete(clientRunId);
@@ -12513,14 +12521,14 @@ function isRollingLogFile(file) {
12513
12521
  return ROLLING_LOG_RE.test(path.basename(file));
12514
12522
  }
12515
12523
  async function resolveLogFile(file) {
12516
- if (await fs$1.stat(file).catch(() => null)) return file;
12524
+ if (await fsPromises.stat(file).catch(() => null)) return file;
12517
12525
  if (!isRollingLogFile(file)) return file;
12518
12526
  const dir = path.dirname(file);
12519
- const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => null);
12527
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
12520
12528
  if (!entries) return file;
12521
12529
  return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
12522
12530
  const fullPath = path.join(dir, entry.name);
12523
- const fileStat = await fs$1.stat(fullPath).catch(() => null);
12531
+ const fileStat = await fsPromises.stat(fullPath).catch(() => null);
12524
12532
  return fileStat ? {
12525
12533
  path: fullPath,
12526
12534
  mtimeMs: fileStat.mtimeMs
@@ -12528,7 +12536,7 @@ async function resolveLogFile(file) {
12528
12536
  }))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
12529
12537
  }
12530
12538
  async function readLogSlice(params) {
12531
- const stat = await fs$1.stat(params.file).catch(() => null);
12539
+ const stat = await fsPromises.stat(params.file).catch(() => null);
12532
12540
  if (!stat) return {
12533
12541
  cursor: 0,
12534
12542
  size: 0,
@@ -12566,7 +12574,7 @@ async function readLogSlice(params) {
12566
12574
  truncated,
12567
12575
  reset
12568
12576
  };
12569
- const handle = await fs$1.open(params.file, "r");
12577
+ const handle = await fsPromises.open(params.file, "r");
12570
12578
  try {
12571
12579
  let prefix = "";
12572
12580
  if (start > 0) {
@@ -13613,7 +13621,7 @@ const nodeHandlers = {
13613
13621
  const p = params;
13614
13622
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
13615
13623
  await respondUnavailableOnThrow(respond, async () => {
13616
- const { handleNodeEvent } = await import("./server-node-events-SLHkUEcI.js");
13624
+ const { handleNodeEvent } = await import("./server-node-events-DgNEG1Jq.js");
13617
13625
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
13618
13626
  await handleNodeEvent({
13619
13627
  deps: context.deps,
@@ -14359,11 +14367,11 @@ async function installLocalMarketSkill(params) {
14359
14367
  candidatePath: sourceDir,
14360
14368
  boundaryLabel: "market templates directory"
14361
14369
  });
14362
- if (!(await fs$1.stat(sourceDir)).isDirectory()) return {
14370
+ if (!(await fsPromises.stat(sourceDir)).isDirectory()) return {
14363
14371
  ok: false,
14364
14372
  message: `Local template "${templateDir}" is not a directory.`
14365
14373
  };
14366
- if (!(await fs$1.stat(sourceSkillPath)).isFile()) return {
14374
+ if (!(await fsPromises.stat(sourceSkillPath)).isFile()) return {
14367
14375
  ok: false,
14368
14376
  message: `Local template "${templateDir}" is missing SKILL.md.`
14369
14377
  };
@@ -14377,13 +14385,13 @@ async function installLocalMarketSkill(params) {
14377
14385
  const workspaceSkillsDir = path.join(workspaceDir, "skills");
14378
14386
  const targetDir = path.join(workspaceSkillsDir, templateDir);
14379
14387
  try {
14380
- await fs$1.mkdir(workspaceSkillsDir, { recursive: true });
14388
+ await fsPromises.mkdir(workspaceSkillsDir, { recursive: true });
14381
14389
  await assertCanonicalPathWithinBase({
14382
14390
  baseDir: workspaceSkillsDir,
14383
14391
  candidatePath: targetDir,
14384
14392
  boundaryLabel: "workspace skills directory"
14385
14393
  });
14386
- await fs$1.cp(sourceDir, targetDir, {
14394
+ await fsPromises.cp(sourceDir, targetDir, {
14387
14395
  recursive: true,
14388
14396
  force: true
14389
14397
  });
@@ -17227,7 +17235,7 @@ function normalizeAgentPayload(payload) {
17227
17235
  async function startBrowserControlServerIfEnabled() {
17228
17236
  if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
17229
17237
  const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
17230
- const mod = override ? await import(override) : await import("./server-BAuP980-.js");
17238
+ const mod = override ? await import(override) : await import("./server-si15CkOB.js");
17231
17239
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
17232
17240
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
17233
17241
  if (!start) return null;
@@ -17455,7 +17463,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
17455
17463
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
17456
17464
  const candidate = path.join(rootReal, rel);
17457
17465
  try {
17458
- const st = await fs$1.lstat(candidate);
17466
+ const st = await fsPromises.lstat(candidate);
17459
17467
  if (st.isSymbolicLink()) return null;
17460
17468
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
17461
17469
  } catch {}
@@ -17492,8 +17500,8 @@ async function resolveA2uiRoot() {
17492
17500
  for (const dir of candidates) try {
17493
17501
  const indexPath = path.join(dir, "index.html");
17494
17502
  const bundlePath = path.join(dir, "a2ui.bundle.js");
17495
- await fs$1.stat(indexPath);
17496
- await fs$1.stat(bundlePath);
17503
+ await fsPromises.stat(indexPath);
17504
+ await fsPromises.stat(bundlePath);
17497
17505
  return dir;
17498
17506
  } catch {}
17499
17507
  return null;
@@ -17502,7 +17510,7 @@ async function resolveA2uiRootReal() {
17502
17510
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
17503
17511
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
17504
17512
  const root = await resolveA2uiRoot();
17505
- cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
17513
+ cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
17506
17514
  cachedA2uiResolvedAtMs = Date.now();
17507
17515
  resolvingA2uiRoot = null;
17508
17516
  return cachedA2uiRootReal;
@@ -17723,13 +17731,13 @@ function normalizeBasePath(rawPath) {
17723
17731
  }
17724
17732
  async function prepareCanvasRoot(rootDir) {
17725
17733
  await ensureDir(rootDir);
17726
- const rootReal = await fs$1.realpath(rootDir);
17734
+ const rootReal = await fsPromises.realpath(rootDir);
17727
17735
  try {
17728
17736
  const indexPath = path.join(rootReal, "index.html");
17729
- await fs$1.stat(indexPath);
17737
+ await fsPromises.stat(indexPath);
17730
17738
  } catch {
17731
17739
  try {
17732
- await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17740
+ await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17733
17741
  } catch {}
17734
17742
  }
17735
17743
  return rootReal;
@@ -20736,7 +20744,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
20736
20744
  }
20737
20745
  async function readLockPayload(lockPath) {
20738
20746
  try {
20739
- const raw = await fs$1.readFile(lockPath, "utf8");
20747
+ const raw = await fsPromises.readFile(lockPath, "utf8");
20740
20748
  const parsed = JSON.parse(raw);
20741
20749
  if (typeof parsed.pid !== "number") return null;
20742
20750
  if (typeof parsed.createdAt !== "string") return null;
@@ -20771,11 +20779,11 @@ async function acquireGatewayLock(opts = {}) {
20771
20779
  const platform = opts.platform ?? process.platform;
20772
20780
  const port = opts.port;
20773
20781
  const { lockPath, configPath } = resolveGatewayLockPath(env);
20774
- await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
20782
+ await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
20775
20783
  const startedAt = Date.now();
20776
20784
  let lastPayload = null;
20777
20785
  while (Date.now() - startedAt < timeoutMs) try {
20778
- const handle = await fs$1.open(lockPath, "wx");
20786
+ const handle = await fsPromises.open(lockPath, "wx");
20779
20787
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
20780
20788
  const payload = {
20781
20789
  pid: process.pid,
@@ -20789,7 +20797,7 @@ async function acquireGatewayLock(opts = {}) {
20789
20797
  configPath,
20790
20798
  release: async () => {
20791
20799
  await handle.close().catch(() => void 0);
20792
- await fs$1.rm(lockPath, { force: true });
20800
+ await fsPromises.rm(lockPath, { force: true });
20793
20801
  }
20794
20802
  };
20795
20803
  } catch (err) {
@@ -20798,7 +20806,7 @@ async function acquireGatewayLock(opts = {}) {
20798
20806
  const ownerPid = lastPayload?.pid;
20799
20807
  const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
20800
20808
  if (ownerStatus === "dead" && ownerPid) {
20801
- await fs$1.rm(lockPath, { force: true });
20809
+ await fsPromises.rm(lockPath, { force: true });
20802
20810
  continue;
20803
20811
  }
20804
20812
  if (ownerStatus !== "alive") {
@@ -20808,13 +20816,13 @@ async function acquireGatewayLock(opts = {}) {
20808
20816
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
20809
20817
  }
20810
20818
  if (!stale) try {
20811
- const st = await fs$1.stat(lockPath);
20819
+ const st = await fsPromises.stat(lockPath);
20812
20820
  stale = Date.now() - st.mtimeMs > staleMs;
20813
20821
  } catch {
20814
20822
  stale = false;
20815
20823
  }
20816
20824
  if (stale) {
20817
- await fs$1.rm(lockPath, { force: true });
20825
+ await fsPromises.rm(lockPath, { force: true });
20818
20826
  continue;
20819
20827
  }
20820
20828
  }
@@ -23124,7 +23132,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
23124
23132
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
23125
23133
  if (!minimalTestGateway) (async () => {
23126
23134
  const { recoverPendingDeliveries } = await import("./delivery-queue-igSkk02R.js").then((n) => n.n);
23127
- const { deliverOutboundPayloads } = await import("./deliver-CeItj33i.js").then((n) => n.n);
23135
+ const { deliverOutboundPayloads } = await import("./deliver-BCX2HRzP.js").then((n) => n.n);
23128
23136
  await recoverPendingDeliveries({
23129
23137
  deliver: deliverOutboundPayloads,
23130
23138
  log: log.child("delivery-recovery"),