@bitseek/claw 1.2.9 → 1.3.1

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 (232) hide show
  1. package/dist/{accounts-2NNZ6Hbp.js → accounts-B3zSNWIv.js} +1 -1
  2. package/dist/{accounts-Cv5CUnT4.js → accounts-BQHz8_1_.js} +7 -7
  3. package/dist/{accounts-NHpMJ0aq.js → accounts-DTfEeXyO.js} +1 -1
  4. package/dist/{acp-cli-CyPiQ0lt.js → acp-cli-C24-lylb.js} +8 -8
  5. package/dist/{agent-scope-CY2-lUIY.js → agent-scope-CJelRKYY.js} +1 -1
  6. package/dist/{agents-BC3wwrO-.js → agents-Sp-v-_mR.js} +15 -15
  7. package/dist/{agents.config-CeG5P331.js → agents.config-C6zkqXkX.js} +2 -2
  8. package/dist/{api-key-rotation-Cf7QM5M_.js → api-key-rotation-xfk-b2Sv.js} +1 -1
  9. package/dist/{audio-preflight-iuCPDl1D.js → audio-preflight-Dl40LQzr.js} +36 -36
  10. package/dist/{audio-transcription-runner-CGADiTRL.js → audio-transcription-runner-jiDE7Pt8.js} +22 -22
  11. package/dist/{audit-Bjz6AFn-.js → audit-Bgu8Ommg.js} +29 -29
  12. package/dist/{auth-anvTU0Sb.js → auth-B3HDYw4G.js} +1 -1
  13. package/dist/{auth-choice-Co_Dl_bs.js → auth-choice-DYXCDlGW.js} +14 -14
  14. package/dist/{auth-choice-Dx1VT2I8.js → auth-choice-lzACBXDv.js} +12 -12
  15. package/dist/{auth-choice.apply-helpers-Du585kvU.js → auth-choice.apply-helpers-DR-eUj_5.js} +1 -1
  16. package/dist/{auth-profiles-CyG9VwU_.js → auth-profiles-D_x1_5v_.js} +16 -16
  17. package/dist/{auth-token-Cfvmvs2X.js → auth-token-BDQ5b9Wx.js} +1 -1
  18. package/dist/{banner-7O0OkDQ4.js → banner-CYVM4p3E.js} +2 -2
  19. package/dist/{bindings-DGvp9FdD.js → bindings-Hx6KNJeg.js} +1 -1
  20. package/dist/{bonjour-discovery-Dv9UQh6g.js → bonjour-discovery-DiHs5j0y.js} +1 -1
  21. package/dist/{browser-cli-C1OEYX9g.js → browser-cli-BMupJSz_.js} +12 -12
  22. package/dist/build-info.json +3 -3
  23. package/dist/{call-CmAGfSJE.js → call-CzoM7hPS.js} +10 -10
  24. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  25. package/dist/{channel-account-context-BrHQ7XHF.js → channel-account-context-BV3Q0XnD.js} +5 -5
  26. package/dist/{channel-options-BnZ1nSBu.js → channel-options-Cn6pNgzb.js} +3 -3
  27. package/dist/{channel-selection-DGtYwfd7.js → channel-selection-D8KYuWir.js} +1 -1
  28. package/dist/{channel-web-lHPdbnjv.js → channel-web-TsD9bdWt.js} +18 -18
  29. package/dist/{channels-cli-DEE_p7e9.js → channels-cli-DA8sLqQk.js} +95 -95
  30. package/dist/{channels-status-issues-BWcKByy7.js → channels-status-issues-CCNiQcg9.js} +1 -1
  31. package/dist/{chrome-DeZyLFsG.js → chrome-DuDCGdf-.js} +4 -4
  32. package/dist/{clawbot-cli-C6oL4o77.js → clawbot-cli-COQB6-NK.js} +5 -5
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-CD5xP9w9.js → cli-DIs0fL3W.js} +76 -76
  35. package/dist/{client-vUKV2o6h.js → client-BvL3EdiZ.js} +2 -2
  36. package/dist/{command-registry-B41say0S.js → command-registry-DcARoFp5.js} +13 -13
  37. package/dist/{commands-d8L0zY8O.js → commands-C67IbXs7.js} +1 -1
  38. package/dist/{commands-registry-C78O6aNi.js → commands-registry-D0_D5hFV.js} +3 -3
  39. package/dist/{completion-cli-DSxTjQik.js → completion-cli-DRUvmQGG.js} +13 -13
  40. package/dist/{completion-cli-BuLkcc9o.js → completion-cli-cJxeCv4O.js} +1 -1
  41. package/dist/{config-cli-BMtY1oFI.js → config-cli-Dh9rvUxe.js} +7 -7
  42. package/dist/{config-guard-Bztdn_pu.js → config-guard-CcE0LvHm.js} +3 -3
  43. package/dist/{config-validation-CAkiRwLK.js → config-validation-DO7QURfM.js} +3 -3
  44. package/dist/{configure-Dz9z2cyD.js → configure-BYFIF9Sz.js} +17 -17
  45. package/dist/control-ui/assets/{index-puDi2eTY.js → index-DeYOAwUj.js} +80 -80
  46. package/dist/control-ui/assets/index-DeYOAwUj.js.map +1 -0
  47. package/dist/control-ui/index.html +1 -1
  48. package/dist/{control-ui-assets-BGvtXBkm.js → control-ui-assets-Dx8wiZQ_.js} +1 -1
  49. package/dist/{cron-cli-nslB2EKF.js → cron-cli-xl75rAFd.js} +12 -12
  50. package/dist/{daemon-cli-D8I8RTf0.js → daemon-cli-BSy0rtO2.js} +15 -15
  51. package/dist/{daemon-install-CKree1OU.js → daemon-install-d2OYSlQz.js} +4 -4
  52. package/dist/{daemon-install-helpers-CBCbs7y1.js → daemon-install-helpers-D28keNLu.js} +11 -11
  53. package/dist/{dashboard-dc7KG5Fm.js → dashboard-DXvihe_P.js} +2 -2
  54. package/dist/{deliver-BRwFsEUd.js → deliver-Df8pSQk6.js} +7 -7
  55. package/dist/{devices-cli-jakb5Fk0.js → devices-cli-D6CoUTi_.js} +8 -8
  56. package/dist/{diagnostic-DjxUqpmL.js → diagnostic-Bvatw1Xn.js} +1 -1
  57. package/dist/{diagnostics-DR9Z0mN5.js → diagnostics-ABz8E7c-.js} +5 -5
  58. package/dist/{directory-cli-3FgAtenS.js → directory-cli-Dkil59xj.js} +8 -8
  59. package/dist/{dns-cli-DUsjD4em.js → dns-cli-CJydclW8.js} +5 -5
  60. package/dist/{dock-CoclJnwp.js → dock-DT8sACcR.js} +4 -4
  61. package/dist/{docs-cli-CpIeooaU.js → docs-cli-BkufgU5Y.js} +4 -4
  62. package/dist/{doctor-completion-BSR7Om4e.js → doctor-completion-BPXyoyKn.js} +2 -2
  63. package/dist/{doctor-completion-BIt5xBwC.js → doctor-completion-COhnnC7x.js} +1 -1
  64. package/dist/{doctor-config-flow-DUdUJgfq.js → doctor-config-flow-BrXA2e34.js} +15 -15
  65. package/dist/{enable-BNycqpJc.js → enable-CinNZxRH.js} +1 -1
  66. package/dist/entry.js +2 -2
  67. package/dist/{exec-approvals-allowlist-CFjPSbxI.js → exec-approvals-allowlist-B4DS6FIn.js} +1 -1
  68. package/dist/{exec-approvals-cli-D8lFWgJj.js → exec-approvals-cli-Cani2Hjk.js} +16 -16
  69. package/dist/{exec-safe-bin-runtime-policy-CpMj95vJ.js → exec-safe-bin-runtime-policy-BP6ImlkB.js} +2 -2
  70. package/dist/{fetch-DOjg912W.js → fetch-DC-NMnAU.js} +3 -3
  71. package/dist/{fetch-guard-Csbz9pui.js → fetch-guard-B62rgaSw.js} +1 -1
  72. package/dist/{fs-safe-BqJ9egpm.js → fs-safe-CJDtl_QU.js} +24 -24
  73. package/dist/{gateway-cli-VrzgkvsB.js → gateway-cli-9UPhizyo.js} +181 -161
  74. package/dist/{gateway-cli-CanylfLh.js → gateway-cli-BHpfj2p-.js} +21 -1
  75. package/dist/{gateway-rpc-B5Spvviy.js → gateway-rpc-C7KYwonl.js} +1 -1
  76. package/dist/{health-D4cJIlo7.js → health-CWmeMvVp.js} +14 -14
  77. package/dist/{hooks-cli-BPg6BqOl.js → hooks-cli-DzvdmY1Z.js} +84 -84
  78. package/dist/{hooks-status-6tcOdcYp.js → hooks-status-DE20AAEu.js} +1 -1
  79. package/dist/{image-CI4JYwnc.js → image-UpBiPNsk.js} +5 -5
  80. package/dist/{image-ops-B2L37gT8.js → image-ops-BGTBZMuE.js} +10 -10
  81. package/dist/index.js +1 -1
  82. package/dist/{inspect-BzuEXYfa.js → inspect-Bmurt9te.js} +4 -4
  83. package/dist/{install-safe-path-C8QJ5yjB.js → install-safe-path-BB9b_AvF.js} +25 -25
  84. package/dist/{installs-CWbEA1d1.js → installs-BXcYytvn.js} +9 -9
  85. package/dist/{ipv4-DQS0lTwQ.js → ipv4-BB1Ro6so.js} +1 -1
  86. package/dist/{ir-CEwBpxhC.js → ir-DziC-P4Z.js} +6 -6
  87. package/dist/{issue-format-D8MobWNt.js → issue-format-DF2YB-kZ.js} +1 -1
  88. package/dist/{json-files-rR19q30D.js → json-files-CuJjdF_0.js} +8 -8
  89. package/dist/{lifecycle-core-CiAE4s92.js → lifecycle-core-CJd181-h.js} +5 -5
  90. package/dist/{login-CdHg3Emc.js → login-C_YjM9eH.js} +3 -3
  91. package/dist/{login-qr-DXecO0Tb.js → login-qr-DujJqOuy.js} +6 -6
  92. package/dist/{logs-cli-D8UCmwyR.js → logs-cli-Bc1A5X-r.js} +9 -9
  93. package/dist/{manager-DWpiNvlg.js → manager-7hZXEYTj.js} +14 -14
  94. package/dist/{manifest-registry-CBF8Vfz8.js → manifest-registry-Kbw8YPsZ.js} +1 -1
  95. package/dist/{markdown-tables-DQlQMRGZ.js → markdown-tables-BYHgyUjA.js} +1 -1
  96. package/dist/{memory-cli-BUrf60e_.js → memory-cli-CuT-iG2F.js} +12 -12
  97. package/dist/{model-DMZUvZJo.js → model-DmBmzJI6.js} +2 -2
  98. package/dist/{model-catalog-DFi9HgWu.js → model-catalog-D1X8r3WJ.js} +3 -3
  99. package/dist/{model-picker-Dt7Rl38k.js → model-picker-C56N_rW7.js} +4 -4
  100. package/dist/{models-CukrcW4u.js → models-C21qhHIB.js} +18 -18
  101. package/dist/{models-cli-DTjBGjrI.js → models-cli-CMETQ9Wy.js} +81 -81
  102. package/dist/{models-config-AePb9RAo.js → models-config-CmrBGsQs.js} +6 -6
  103. package/dist/{net-C75G4fup.js → net-BXeYv7Iu.js} +2 -2
  104. package/dist/{node-cli-D4Tj8JOq.js → node-cli-DSoqxwqZ.js} +33 -33
  105. package/dist/{node-command-policy-BZq5AebG.js → node-command-policy-pJ6IPNBA.js} +1 -1
  106. package/dist/{node-service-B0FIwOsW.js → node-service-DUUObpwl.js} +1 -1
  107. package/dist/{nodes-cli-DL-855N8.js → nodes-cli-BKGcOJ8A.js} +16 -16
  108. package/dist/{nodes-screen-BHwVUMr8.js → nodes-screen-DcxCMjOs.js} +7 -7
  109. package/dist/{npm-pack-install-qErvgXGZ.js → npm-pack-install-D5pJ8KzT.js} +18 -18
  110. package/dist/{npm-resolution-C_FZOBlT.js → npm-resolution-BAwDXgj5.js} +5 -5
  111. package/dist/{onboard-B-f5pmgG.js → onboard-Yx-4UNLx.js} +1 -1
  112. package/dist/{onboard-channels-DGipWl1h.js → onboard-channels-B59K9VZH.js} +20 -20
  113. package/dist/{onboard-custom-B5F-69pM.js → onboard-custom-CZR1K96w.js} +3 -3
  114. package/dist/{onboard-custom.shared-CBgv6y4h.js → onboard-custom.shared-B9NXcXpv.js} +2 -2
  115. package/dist/{onboard-helpers-D8lLbK3A.js → onboard-helpers-CczYNQDJ.js} +11 -11
  116. package/dist/{onboard-hooks-DBif0Jq8.js → onboard-hooks-o0B0p8tR.js} +4 -4
  117. package/dist/{onboard-DktYC_iu.js → onboard-lxDPoEX0.js} +6 -6
  118. package/dist/{onboard-remote-loJ1Jn9Q.js → onboard-remote-DtLQyBJB.js} +3 -3
  119. package/dist/{onboard-skills-JtcIUHsb.js → onboard-skills-Brzj5oDF.js} +4 -4
  120. package/dist/{onboarding-Kp0zZunD.js → onboarding-BuP_R-4K.js} +1 -1
  121. package/dist/{onboarding-D0IraL8k.js → onboarding-C1V78UtY.js} +13 -13
  122. package/dist/{onboarding.finalize-DHitw2tg.js → onboarding.finalize--jtLHdXd.js} +89 -89
  123. package/dist/{onboarding.finalize-CJ23anMx.js → onboarding.finalize-f-QjMD-6.js} +3 -3
  124. package/dist/{onboarding.gateway-config-uLDVSdpl.js → onboarding.gateway-config-D-gZxjbU.js} +18 -18
  125. package/dist/{openai-model-default-B1Dlue6a.js → openai-model-default-BNYNbslY.js} +2 -2
  126. package/dist/{outbound-BZyqP8d-.js → outbound-_RTZSBES.js} +4 -4
  127. package/dist/{outbound-attachment-DM-h2uQ1.js → outbound-attachment-CXINK8df.js} +2 -2
  128. package/dist/{pairing-cli-DR836bYa.js → pairing-cli-DiKgOlKC.js} +9 -9
  129. package/dist/{pairing-labels-x4akYNb7.js → pairing-labels-CFSUHOmk.js} +1 -1
  130. package/dist/{pairing-store-rFuiIoGM.js → pairing-store-BfzlN-z9.js} +3 -3
  131. package/dist/{path-alias-guards-laKq24fx.js → path-alias-guards-Cg9ZP1NN.js} +3 -3
  132. package/dist/{path-safety-Cr4WZsHE.js → path-safety-__ACzYqx.js} +1 -1
  133. package/dist/{paths-B_L2Zoe-.js → paths-BjoSX1aC.js} +9 -9
  134. package/dist/{pi-embedded-helpers-CEMPdfif.js → pi-embedded-helpers-CrD8I6qf.js} +6 -6
  135. package/dist/{pi-model-discovery-RrejIg26.js → pi-model-discovery-BZ2RCD_u.js} +1 -1
  136. package/dist/{pi-tools.policy-dUeXHcQL.js → pi-tools.policy-upaoJyu4.js} +5 -5
  137. package/dist/{plugin-auto-enable-S_lBQAKI.js → plugin-auto-enable-DER6qA6X.js} +3 -3
  138. package/dist/{plugin-registry-CIUGSWLT.js → plugin-registry-CA1t0UeN.js} +3 -3
  139. package/dist/{plugins-cli-DnLeUBfn.js → plugins-cli-Cidq7nJb.js} +86 -86
  140. package/dist/{plugins-C4cYqW07.js → plugins-vsjS_m58.js} +2 -2
  141. package/dist/{ports-DRaxdQmm.js → ports-sCOQUaAP.js} +2 -2
  142. package/dist/{ports-tfS1haOJ.js → ports-zWusnrvP.js} +1 -1
  143. package/dist/{program-3T_oL3TY.js → program-DAVrzhs2.js} +84 -84
  144. package/dist/{program-context-D2U9PEv9.js → program-context-CroeAMEq.js} +6 -6
  145. package/dist/{prompt-select-styled-Bir77erd.js → prompt-select-styled-Dbko_Q7s.js} +1 -1
  146. package/dist/{prompt-select-styled-BylOR7bV.js → prompt-select-styled-Du3ff0sT.js} +39 -39
  147. package/dist/{provider-auth-helpers-BEFKXIJE.js → provider-auth-helpers-B4nCFlNS.js} +5 -5
  148. package/dist/{proxy-env-BoopXu2J.js → proxy-env-BQIJPH4j.js} +1 -1
  149. package/dist/{push-apns-sUecrS7L.js → push-apns-BSwx-wiI.js} +5 -5
  150. package/dist/{pw-ai-CG7D8D2P.js → pw-ai-BeJ_96rV.js} +15 -15
  151. package/dist/{qmd-manager-Bo22w5wm.js → qmd-manager-BNohLpRA.js} +20 -20
  152. package/dist/{qr-cli-DiKa2ySu.js → qr-cli-CCHyao8J.js} +1 -1
  153. package/dist/{query-expansion-Ba9OpCm9.js → query-expansion-BrM3X6-L.js} +12 -12
  154. package/dist/{redact-snapshot-Dioor4fY.js → redact-snapshot-C1Yp9Q7B.js} +1 -1
  155. package/dist/{register.agent-FAGOpOS3.js → register.agent-kmdjftAP.js} +97 -97
  156. package/dist/register.configure-CZqcKxCG.js +175 -0
  157. package/dist/{register.init-B-wUDJAX.js → register.init-B1pIa3ys.js} +15 -15
  158. package/dist/{register.maintenance-ClYMbiJl.js → register.maintenance-DK--cbD8.js} +4 -4
  159. package/dist/{register.maintenance-B6f_YUQN.js → register.maintenance-MiuPJilJ.js} +99 -99
  160. package/dist/{register.message-WkJ5viuk.js → register.message-DJc4mrgz.js} +77 -77
  161. package/dist/{register.onboard-DvpF9feG.js → register.onboard-CXiK8Iev.js} +18 -18
  162. package/dist/{register.onboard-BUBCEjZ_.js → register.onboard-yJeNS-BD.js} +2 -2
  163. package/dist/{register.setup-Dlmt8cdD.js → register.setup-CtS7M9NK.js} +2 -2
  164. package/dist/{register.setup-CA7jtsG8.js → register.setup-DRllOSJZ.js} +21 -21
  165. package/dist/{register.start-3Hnjf8NZ.js → register.start-CyYd_xbF.js} +17 -17
  166. package/dist/{register.status-health-sessions-CY2i61By.js → register.status-health-sessions-CxepWnj5.js} +91 -91
  167. package/dist/{register.subclis-D72jBDzj.js → register.subclis-D_FWN2RD.js} +31 -31
  168. package/dist/{replies-BDnb0prE.js → replies-Ckd7Lwt0.js} +1 -1
  169. package/dist/{reply-prefix-H_GSyyzN.js → reply-prefix-DpXMFuAa.js} +1 -1
  170. package/dist/{resolve-route-ByAwAiq5.js → resolve-route-Cnto8LMw.js} +2 -2
  171. package/dist/{rpc-DQa5fiBV.js → rpc-CnRUZWNJ.js} +1 -1
  172. package/dist/{run-main-DOntWJzb.js → run-main-Dqz2ik3j.js} +95 -95
  173. package/dist/{runtime-D-Knnx0g.js → runtime-D4y0Gdfj.js} +2 -2
  174. package/dist/{sandbox-DI_zIUpo.js → sandbox-Tai-w14a.js} +18 -18
  175. package/dist/{sandbox-cli-Cn6OxK6L.js → sandbox-cli-uwsF36Ea.js} +26 -26
  176. package/dist/{secrets-cli-Cf2fFK2m.js → secrets-cli-DzeSuhpa.js} +10 -10
  177. package/dist/{security-cli-DS-dXNUv.js → security-cli-Dzelqio0.js} +43 -43
  178. package/dist/{send-BTswySBz.js → send-BpXRh0BM.js} +11 -11
  179. package/dist/{send-CZ2O-5pP.js → send-CQJKPGw4.js} +6 -6
  180. package/dist/{send-ZyB64ntO.js → send-Cpaj_bKB.js} +5 -5
  181. package/dist/{send-BCLu4NEE.js → send-e1X1pfda.js} +6 -6
  182. package/dist/{send-D0X-8aPh.js → send-sj8Hu26l.js} +8 -8
  183. package/dist/{server-C88L-6UW.js → server-Cr92VI8t.js} +19 -19
  184. package/dist/{server-context-CjPCwa4T.js → server-context-YLHmGfYV.js} +12 -12
  185. package/dist/{server-lifecycle-HLBzAVdX.js → server-lifecycle-B23lXM3Y.js} +2 -2
  186. package/dist/{server-middleware-DHxnFjIL.js → server-middleware-CKSnhiM2.js} +1 -1
  187. package/dist/{server-node-events-CyVS1c_n.js → server-node-events-B3SyIWEd.js} +77 -77
  188. package/dist/{service-CFfCS51c.js → service-Bjqlh_fF.js} +15 -15
  189. package/dist/{session-ApCom0An.js → session-DcnQHb9Q.js} +1 -1
  190. package/dist/{session-meta-Cew1QAYN.js → session-meta-DF1WT4cr.js} +1 -1
  191. package/dist/{session-utils-DYJSA9qa.js → session-utils-BUkGcYpv.js} +6 -6
  192. package/dist/{sessions-BXz4gdq6.js → sessions-B2mnwD21.js} +15 -15
  193. package/dist/{sessions-CeXgGBJ1.js → sessions-DVvNhGXX.js} +4 -4
  194. package/dist/{shared-Cd4Yi_Q8.js → shared-BojXguFB.js} +3 -3
  195. package/dist/{shared-Cl1av01k.js → shared-_j1K2VJ9.js} +1 -1
  196. package/dist/{skill-commands-Cpr3Poo2.js → skill-commands-CYucDd3C.js} +5 -5
  197. package/dist/{skill-scanner-3QHafkQH.js → skill-scanner-CSJqt034.js} +6 -6
  198. package/dist/{skills-D4S-gyVf.js → skills-BCgFAMj3.js} +3 -3
  199. package/dist/{skills-cli-CAhlFcYR.js → skills-cli-BM1iUpGc.js} +5 -5
  200. package/dist/{skills-install-DyneupGw.js → skills-install-e4_jXT_J.js} +6 -6
  201. package/dist/{skills-status-DQzBD0Y7.js → skills-status-DG-bH5mO.js} +1 -1
  202. package/dist/{status-VYa-lFs6.js → status-Bor8v_Ab.js} +26 -26
  203. package/dist/{status.update-BdgtGtkx.js → status.update-YC9VNJxl.js} +2 -2
  204. package/dist/{store-TdzSHRPN.js → store-U8cs0QvT.js} +5 -5
  205. package/dist/{subagent-registry-DlmrBMrv.js → subagent-registry-CukgiXMW.js} +156 -156
  206. package/dist/{system-cli-BYGGFlhn.js → system-cli-B_PUKo6-.js} +9 -9
  207. package/dist/{system-run-command-XHAlbx5q.js → system-run-command-GKGzGztn.js} +1 -1
  208. package/dist/{systemd-DRGkJYMb.js → systemd-HiU4Gzoc.js} +9 -9
  209. package/dist/{systemd-hints-C5HK00QG.js → systemd-hints-BDIASQOF.js} +6 -6
  210. package/dist/{systemd-linger-DME-3IVk.js → systemd-linger-DfrE-63p.js} +1 -1
  211. package/dist/{tables-BOsRa7CS.js → tables-DVXe5x1J.js} +1 -1
  212. package/dist/{tailnet-CfP3A6g2.js → tailnet-C1XBcWue.js} +1 -1
  213. package/dist/{target-errors-DPJ9HFp9.js → target-errors-C5LA-JI-.js} +4 -4
  214. package/dist/{tool-images-CmgHk8xk.js → tool-images-CnpAosfi.js} +1 -1
  215. package/dist/{tui-C16rnfcv.js → tui-CLK0s6TM.js} +6 -6
  216. package/dist/{tui-cli-Ct7mmQhr.js → tui-cli-DTdNoN6U.js} +33 -33
  217. package/dist/{update-DOvgIBRu.js → update-DLc3UsVC.js} +3 -3
  218. package/dist/{update-cli-BnefEkIB.js → update-cli-DBkrPKzK.js} +107 -107
  219. package/dist/{update-cli-CWNpH8nb.js → update-cli-DvlRTsY-.js} +4 -4
  220. package/dist/{update-runner-BSQpjT4r.js → update-runner-BAPahND7.js} +16 -16
  221. package/dist/web-D_nYCn4Q.js +127 -0
  222. package/dist/{webhooks-cli-DyIIpN1Q.js → webhooks-cli-c5SaGz4J.js} +6 -6
  223. package/dist/{whatsapp-actions-Dmv3vDs5.js → whatsapp-actions-CnjEOFOZ.js} +19 -19
  224. package/dist/{with-timeout-Cf-HNLSj.js → with-timeout-DurSJobr.js} +3 -3
  225. package/dist/{workspace-DzeL98px.js → workspace-BHfqkuYN.js} +23 -23
  226. package/dist/{workspace-A5CNJccm.js → workspace-DWBFoy1G.js} +1 -1
  227. package/dist/{workspace-dirs-Bevk6X_8.js → workspace-dirs-BOgNOBjy.js} +1 -1
  228. package/dist/{wsl-DksyFTBT.js → wsl-BDRu1-pk.js} +2 -2
  229. package/package.json +1 -1
  230. package/dist/control-ui/assets/index-puDi2eTY.js.map +0 -1
  231. package/dist/register.configure-aZwsNSkf.js +0 -175
  232. package/dist/web-C1Zm__bd.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-DjdBljTA.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-CyG9VwU_.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-D_x1_5v_.js";
7
7
  import { t as formatCliCommand } from "./command-format-CVXyxgq3.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-CY2-lUIY.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-CJelRKYY.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-DIzy5B5o.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-DzeL98px.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-BHfqkuYN.js";
12
12
  import { i as logWarn, t as logDebug } from "./logger-BJMfryJd.js";
13
13
  import { n as runExec, t as runCommandWithTimeout } from "./exec-CEAvKSx9.js";
14
14
  import "./github-copilot-token-CulJ9J5l.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-7fg1BnMw.js";
19
- import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-CBF8Vfz8.js";
20
- import "./dock-CoclJnwp.js";
21
- import "./model-DMZUvZJo.js";
22
- import "./pi-model-discovery-RrejIg26.js";
19
+ import { u as isTestDefaultMemorySlotDisabled } from "./manifest-registry-Kbw8YPsZ.js";
20
+ import "./dock-DT8sACcR.js";
21
+ import "./model-DmBmzJI6.js";
22
+ import "./pi-model-discovery-BZ2RCD_u.js";
23
23
  import { d as hasBinary } from "./frontmatter-C0E8mspC.js";
24
- import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-D4S-gyVf.js";
25
- import { n as assertNoPathAliasEscape } from "./path-alias-guards-laKq24fx.js";
26
- import { t as buildWorkspaceSkillStatus } from "./skills-status-DQzBD0Y7.js";
24
+ import { c as resolveBundledSkillsDir, i as loadWorkspaceSkillEntries, r as buildWorkspaceSkillSnapshot } from "./skills-BCgFAMj3.js";
25
+ import { n as assertNoPathAliasEscape } from "./path-alias-guards-Cg9ZP1NN.js";
26
+ import { t as buildWorkspaceSkillStatus } from "./skills-status-DG-bH5mO.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-0J6eKf3g.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-BXz4gdq6.js";
29
- import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-C4cYqW07.js";
30
- import { i as resolveWhatsAppAccount } from "./accounts-Cv5CUnT4.js";
31
- import "./accounts-2NNZ6Hbp.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-B2mnwD21.js";
29
+ import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin, v as normalizeWhatsAppTarget } from "./plugins-vsjS_m58.js";
30
+ import { i as resolveWhatsAppAccount } from "./accounts-BQHz8_1_.js";
31
+ import "./accounts-B3zSNWIv.js";
32
32
  import "./logging-5MtSkLpb.js";
33
- import "./accounts-NHpMJ0aq.js";
34
- import { t as buildChannelAccountBindings } from "./bindings-DGvp9FdD.js";
35
- import "./send-ZyB64ntO.js";
36
- import "./send-BTswySBz.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-DlmrBMrv.js";
33
+ import "./accounts-DTfEeXyO.js";
34
+ import { t as buildChannelAccountBindings } from "./bindings-Hx6KNJeg.js";
35
+ import "./send-Cpaj_bKB.js";
36
+ import "./send-BpXRh0BM.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-CukgiXMW.js";
38
38
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, s as resolveSessionTranscriptsDirForAgent } from "./paths-CTtLmER4.js";
39
39
  import { i as normalizeInputProvenance } from "./input-provenance-C8z9KgIz.js";
40
40
  import "./chat-envelope-D3RSz140.js";
41
- import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-rR19q30D.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-vUKV2o6h.js";
43
- import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-CmAGfSJE.js";
41
+ import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-CuJjdF_0.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-BvL3EdiZ.js";
43
+ import { f as loadGatewayTlsRuntime$1, l as authorizeOperatorScopesForMethod, n as callGateway, s as ADMIN_SCOPE$3, u as isNodeRoleMethod } from "./call-CzoM7hPS.js";
44
44
  import "./pairing-token-DoBZxQnC.js";
45
45
  import { t as safeEqualSecret } from "./secret-equal-Gla36CGi.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-C75G4fup.js";
47
- import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-CfP3A6g2.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-BXeYv7Iu.js";
47
+ import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C1XBcWue.js";
48
48
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-DyLBF_df.js";
49
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-Cf-HNLSj.js";
50
- import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-BRwFsEUd.js";
51
- import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-DjxUqpmL.js";
49
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext } from "./with-timeout-DurSJobr.js";
50
+ import { j as runGlobalGatewayStopSafely, k as getGlobalHookRunner, o as normalizeReplyPayloadsForDelivery, t as deliverOutboundPayloads } from "./deliver-Df8pSQk6.js";
51
+ import { d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, m as isDiagnosticsEnabled } from "./diagnostic-Bvatw1Xn.js";
52
52
  import "./diagnostic-session-state-Dx-rJXBO.js";
53
- import { S as saveCronStore, b as loadCronStore, x as resolveCronStorePath } from "./send-D0X-8aPh.js";
54
- import { c as detectMime } from "./image-ops-B2L37gT8.js";
55
- import "./pi-embedded-helpers-CEMPdfif.js";
56
- import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-DI_zIUpo.js";
53
+ import { S as saveCronStore, b as loadCronStore, x as resolveCronStorePath } from "./send-sj8Hu26l.js";
54
+ import { c as detectMime } from "./image-ops-BGTBZMuE.js";
55
+ import "./pi-embedded-helpers-CrD8I6qf.js";
56
+ import { C as resolveToolProfilePolicy, _ as collectExplicitAllowlist, y as mergeAlsoAllowPolicy } from "./sandbox-Tai-w14a.js";
57
57
  import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-uQj_-Ahx.js";
58
- import "./chrome-DeZyLFsG.js";
58
+ import "./chrome-DuDCGdf-.js";
59
59
  import { i as enableTailscaleServe, n as disableTailscaleServe, o as getTailnetHostname, r as enableTailscaleFunnel, t as disableTailscaleFunnel } from "./tailscale-D3xGoMdQ.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-anvTU0Sb.js";
61
- import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-CjPCwa4T.js";
62
- import "./paths-B_L2Zoe-.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-B3HDYw4G.js";
61
+ import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-YLHmGfYV.js";
62
+ import "./paths-BjoSX1aC.js";
63
63
  import { a as testRegexWithBoundedInput, i as compileSafeRegex } from "./redact-Ck5U_y4i.js";
64
64
  import { o as isErrno, r as formatErrorMessage } from "./errors-BJz45-qI.js";
65
- import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-BqJ9egpm.js";
66
- import { n as SsrFBlockedError } from "./proxy-env-BoopXu2J.js";
67
- import "./store-TdzSHRPN.js";
68
- import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-DRaxdQmm.js";
65
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, s as readLocalFileSafely, t as SafeOpenError } from "./fs-safe-CJDtl_QU.js";
66
+ import { n as SsrFBlockedError } from "./proxy-env-BQIJPH4j.js";
67
+ import "./store-U8cs0QvT.js";
68
+ import { n as inspectPortUsage, o as formatPortDiagnostics, t as ensurePortAvailable } from "./ports-sCOQUaAP.js";
69
69
  import { t as movePathToTrash } from "./trash-ClChDUTf.js";
70
- import "./server-middleware-DHxnFjIL.js";
71
- import "./tool-images-CmgHk8xk.js";
70
+ import "./server-middleware-CKSnhiM2.js";
71
+ import "./tool-images-CnpAosfi.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-pYqswKJZ.js";
73
- import "./models-config-AePb9RAo.js";
74
- import "./exec-approvals-allowlist-CFjPSbxI.js";
75
- import "./exec-safe-bin-runtime-policy-CpMj95vJ.js";
76
- import { n as loadModelCatalog } from "./model-catalog-DFi9HgWu.js";
77
- import "./fetch-DOjg912W.js";
78
- import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-CGADiTRL.js";
79
- import { t as fetchWithSsrFGuard } from "./fetch-guard-Csbz9pui.js";
80
- import { x as extractTextFromChatContent } from "./image-CI4JYwnc.js";
73
+ import "./models-config-CmrBGsQs.js";
74
+ import "./exec-approvals-allowlist-B4DS6FIn.js";
75
+ import "./exec-safe-bin-runtime-policy-BP6ImlkB.js";
76
+ import { n as loadModelCatalog } from "./model-catalog-D1X8r3WJ.js";
77
+ import "./fetch-DC-NMnAU.js";
78
+ import { g as registerUnhandledRejectionHandler } from "./audio-transcription-runner-jiDE7Pt8.js";
79
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-B62rgaSw.js";
80
+ import { x as extractTextFromChatContent } from "./image-UpBiPNsk.js";
81
81
  import "./tool-display-0M664wep.js";
82
- import "./api-key-rotation-Cf7QM5M_.js";
82
+ import "./api-key-rotation-xfk-b2Sv.js";
83
83
  import "./proxy-fetch-DEHZt1Tx.js";
84
- import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-H_GSyyzN.js";
84
+ import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-DpXMFuAa.js";
85
85
  import "./chunk-kLPohhLl.js";
86
- import "./markdown-tables-DQlQMRGZ.js";
87
- import "./ir-CEwBpxhC.js";
86
+ import "./markdown-tables-BYHgyUjA.js";
87
+ import "./ir-DziC-P4Z.js";
88
88
  import "./render-CXDO_kgw.js";
89
- import { a as ToolInputError } from "./target-errors-DPJ9HFp9.js";
90
- import { r as isRestartEnabled } from "./commands-d8L0zY8O.js";
91
- import "./commands-registry-C78O6aNi.js";
89
+ import { a as ToolInputError } from "./target-errors-C5LA-JI-.js";
90
+ import { r as isRestartEnabled } from "./commands-C67IbXs7.js";
91
+ import "./commands-registry-D0_D5hFV.js";
92
92
  import "./fetch-BM2hI5N6.js";
93
93
  import "./retry-DwXRBpwv.js";
94
- import { a as readChannelAllowFromStoreSync } from "./pairing-store-rFuiIoGM.js";
94
+ import { a as readChannelAllowFromStoreSync } from "./pairing-store-BfzlN-z9.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-HRn5F9dF.js";
96
- import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-BHwVUMr8.js";
97
- import { n as resolveSystemRunCommand } from "./system-run-command-XHAlbx5q.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-DYJSA9qa.js";
96
+ import { _ as matchSystemRunApprovalBinding, g as buildSystemRunApprovalBinding, h as resolveSystemRunApprovalRuntimeContext, m as resolveSystemRunApprovalRequestContext, v as missingSystemRunApprovalBinding, y as toSystemRunApprovalMismatchError } from "./nodes-screen-DcxCMjOs.js";
97
+ import { n as resolveSystemRunCommand } from "./system-run-command-GKGzGztn.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-BUkGcYpv.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-BCEcVVJ6.js";
100
100
  import { n as formatTokenCount, r as formatUsd } from "./usage-format-JlIz56oG.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-Cpr3Poo2.js";
102
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-Bevk6X_8.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-CYucDd3C.js";
102
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs-BOgNOBjy.js";
103
103
  import { t as getChannelActivity } from "./channel-activity-C-cvytUe.js";
104
104
  import { n as normalizePollInput } from "./polls-CWOwBT3z.js";
105
- import "./tables-BOsRa7CS.js";
106
- import "./server-lifecycle-HLBzAVdX.js";
105
+ import "./tables-DVXe5x1J.js";
106
+ import "./server-lifecycle-B23lXM3Y.js";
107
107
  import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-Cek4Eizw.js";
108
- import { n as resolveMessageChannelSelection } from "./channel-selection-DGtYwfd7.js";
109
- import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-S_lBQAKI.js";
110
- import "./send-CZ2O-5pP.js";
111
- import "./outbound-attachment-DM-h2uQ1.js";
108
+ import { n as resolveMessageChannelSelection } from "./channel-selection-D8KYuWir.js";
109
+ import { i as buildChannelUiCatalog, t as applyPluginAutoEnable } from "./plugin-auto-enable-DER6qA6X.js";
110
+ import "./send-CQJKPGw4.js";
111
+ import "./outbound-attachment-CXINK8df.js";
112
112
  import "./delivery-queue-DhqwvOP8.js";
113
- import "./send-BCLu4NEE.js";
114
- import "./resolve-route-ByAwAiq5.js";
115
- import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-dUeXHcQL.js";
113
+ import "./send-e1X1pfda.js";
114
+ import "./resolve-route-Cnto8LMw.js";
115
+ import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-upaoJyu4.js";
116
116
  import "./proxy-Dz7xT2Z_.js";
117
- import "./replies-BDnb0prE.js";
118
- import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-D8lLbK3A.js";
117
+ import "./replies-Ckd7Lwt0.js";
118
+ import { C as normalizeControlUiBasePath, S as buildControlUiAvatarUrl, c as handleReset, w as resolveAssistantAvatarUrl, x as CONTROL_UI_AVATAR_PREFIX } from "./onboard-helpers-CczYNQDJ.js";
119
119
  import "./prompt-style-CzS6Prvl.js";
120
- import "./pairing-labels-x4akYNb7.js";
121
- import "./session-meta-Cew1QAYN.js";
122
- import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-BUrf60e_.js";
123
- import { r as resolveMemorySearchConfig } from "./manager-DWpiNvlg.js";
124
- import "./query-expansion-Ba9OpCm9.js";
120
+ import "./pairing-labels-CFSUHOmk.js";
121
+ import "./session-meta-DF1WT4cr.js";
122
+ import { i as resolveMemoryBackendConfig, r as getMemorySearchManager } from "./memory-cli-CuT-iG2F.js";
123
+ import { r as resolveMemorySearchConfig } from "./manager-7hZXEYTj.js";
124
+ import "./query-expansion-BrM3X6-L.js";
125
125
  import { t as formatDocsLink } from "./links-BDNlbZvM.js";
126
126
  import { n as runCommandWithRuntime } from "./cli-utils-k9A6CA1o.js";
127
127
  import { t as formatHelpExamples } from "./help-format-B3bKmDqF.js";
@@ -134,45 +134,45 @@ import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-D_tNQLpF.
134
134
  import { n as inheritOptionFromParent } from "./command-options-DIuz7LzE.js";
135
135
  import { t as WizardCancelledError } from "./prompts-CbZZ91V9.js";
136
136
  import { t as resolveChannelDefaultAccountId } from "./helpers-BSfSxnxh.js";
137
- import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-CeG5P331.js";
138
- import { t as isWithinDir } from "./path-safety-Cr4WZsHE.js";
139
- import { t as assertCanonicalPathWithinBase } from "./install-safe-path-C8QJ5yjB.js";
140
- import "./skill-scanner-3QHafkQH.js";
141
- import { n as formatConfigIssueLines } from "./issue-format-D8MobWNt.js";
137
+ import { a as pruneAgentConfig, i as loadAgentIdentity, r as findAgentEntryIndex, t as applyAgentConfig } from "./agents.config-C6zkqXkX.js";
138
+ import { t as isWithinDir } from "./path-safety-__ACzYqx.js";
139
+ import { t as assertCanonicalPathWithinBase } from "./install-safe-path-BB9b_AvF.js";
140
+ import "./skill-scanner-CSJqt034.js";
141
+ import { n as formatConfigIssueLines } from "./issue-format-DF2YB-kZ.js";
142
142
  import { t as buildChannelAccountSnapshot } from "./status-rpJtIjm7.js";
143
- import "./channels-status-issues-BWcKByy7.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-Dioor4fY.js";
145
- import "./daemon-install-helpers-CBCbs7y1.js";
143
+ import "./channels-status-issues-CCNiQcg9.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-C1Yp9Q7B.js";
145
+ import "./daemon-install-helpers-D28keNLu.js";
146
146
  import "./runtime-guard-lQH3Hjre.js";
147
- import "./systemd-DRGkJYMb.js";
148
- import "./service-CFfCS51c.js";
149
- import "./lifecycle-core-CiAE4s92.js";
150
- import "./systemd-hints-C5HK00QG.js";
147
+ import "./systemd-HiU4Gzoc.js";
148
+ import "./service-Bjqlh_fF.js";
149
+ import "./lifecycle-core-CJd181-h.js";
150
+ import "./systemd-hints-BDIASQOF.js";
151
151
  import { t as parsePort$1 } from "./parse-port-M1LW5BLv.js";
152
- import { n as addGatewayServiceCommands } from "./daemon-cli-D8I8RTf0.js";
153
- import "./diagnostics-DR9Z0mN5.js";
152
+ import { n as addGatewayServiceCommands } from "./daemon-cli-BSy0rtO2.js";
153
+ import "./diagnostics-ABz8E7c-.js";
154
154
  import "./table-CqULNDay.js";
155
155
  import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } from "./widearea-dns-CABro6I6.js";
156
- import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Cl1av01k.js";
157
- import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-Bjz6AFn-.js";
158
- import { t as discoverGatewayBeacons } from "./bonjour-discovery-Dv9UQh6g.js";
159
- import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-VYa-lFs6.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-D4cJIlo7.js";
161
- import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BGvtXBkm.js";
162
- import { o as isBitseekBuild } from "./status.update-BdgtGtkx.js";
163
- import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-BrHQ7XHF.js";
164
- import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-D-Knnx0g.js";
165
- import { t as runOnboardingWizard } from "./onboarding-D0IraL8k.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-sUecrS7L.js";
156
+ import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-_j1K2VJ9.js";
157
+ import { a as probeGateway, n as collectEnabledInsecureOrDangerousFlags } from "./audit-Bgu8Ommg.js";
158
+ import { t as discoverGatewayBeacons } from "./bonjour-discovery-DiHs5j0y.js";
159
+ import { i as pickGatewaySelfPresence, r as getStatusSummary } from "./status-Bor8v_Ab.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-CWmeMvVp.js";
161
+ import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dx8wiZQ_.js";
162
+ import { o as isBitseekBuild } from "./status.update-YC9VNJxl.js";
163
+ import { h as normalizeUpdateChannel, l as DEFAULT_PACKAGE_CHANNEL, n as checkUpdateStatus, o as resolveNpmChannelTag, r as compareSemverStrings } from "./channel-account-context-BV3Q0XnD.js";
164
+ import { i as prepareSecretsRuntimeSnapshot, n as clearSecretsRuntimeSnapshot, r as getActiveSecretsRuntimeSnapshot, t as activateSecretsRuntimeSnapshot } from "./runtime-D4y0Gdfj.js";
165
+ import { t as runOnboardingWizard } from "./onboarding-C1V78UtY.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-BSwx-wiI.js";
167
167
  import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CtjSNa9d.js";
168
- import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-BZq5AebG.js";
169
- import "./node-service-B0FIwOsW.js";
170
- import "./shared-Cd4Yi_Q8.js";
171
- import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-CBgv6y4h.js";
172
- import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-DyneupGw.js";
173
- import { t as runGatewayUpdate } from "./update-runner-BSQpjT4r.js";
174
- import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-A5CNJccm.js";
175
- import { n as forceFreePortAndWait } from "./ports-tfS1haOJ.js";
168
+ import { n as isNodeCommandAllowed, r as resolveNodeCommandAllowlist } from "./node-command-policy-pJ6IPNBA.js";
169
+ import "./node-service-DUUObpwl.js";
170
+ import "./shared-BojXguFB.js";
171
+ import { d as verifyOpenAiCompatibleModel } from "./onboard-custom.shared-B9NXcXpv.js";
172
+ import { n as formatInstallFailureMessage, t as installSkill } from "./skills-install-e4_jXT_J.js";
173
+ import { t as runGatewayUpdate } from "./update-runner-BAPahND7.js";
174
+ import { i as shouldIncludeHook, r as resolveHookConfig, t as loadWorkspaceHookEntries } from "./workspace-DWBFoy1G.js";
175
+ import { n as forceFreePortAndWait } from "./ports-zWusnrvP.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 fsPromises from "node:fs/promises";
184
+ import fs$1 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 fsPromises.readFile(statePath, "utf-8");
1254
+ const raw = await fs$1.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 fsPromises.access(candidate);
1335
+ await fs$1.access(candidate);
1336
1336
  argv.push(execPath, candidate, ...baseArgs);
1337
1337
  break;
1338
1338
  } catch {}
@@ -4407,20 +4407,20 @@ async function drainPendingWrite(filePath) {
4407
4407
  if (pending) await pending.catch(() => void 0);
4408
4408
  }
4409
4409
  async function pruneIfNeeded(filePath, opts) {
4410
- const stat = await fsPromises.stat(filePath).catch(() => null);
4410
+ const stat = await fs$1.stat(filePath).catch(() => null);
4411
4411
  if (!stat || stat.size <= opts.maxBytes) return;
4412
- const lines = (await fsPromises.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4412
+ const lines = (await fs$1.readFile(filePath, "utf-8").catch(() => "")).split("\n").map((l) => l.trim()).filter(Boolean);
4413
4413
  const kept = lines.slice(Math.max(0, lines.length - opts.keepLines));
4414
4414
  const { randomBytes } = await import("node:crypto");
4415
4415
  const tmp = `${filePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
4416
- await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4417
- await fsPromises.rename(tmp, filePath);
4416
+ await fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4417
+ await fs$1.rename(tmp, filePath);
4418
4418
  }
4419
4419
  async function appendCronRunLog(filePath, entry, opts) {
4420
4420
  const resolved = path.resolve(filePath);
4421
4421
  const next = (writesByPath.get(resolved) ?? Promise.resolve()).catch(() => void 0).then(async () => {
4422
- await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
4423
- await fsPromises.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4422
+ await fs$1.mkdir(path.dirname(resolved), { recursive: true });
4423
+ await fs$1.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4424
4424
  await pruneIfNeeded(resolved, {
4425
4425
  maxBytes: opts?.maxBytes ?? DEFAULT_CRON_RUN_LOG_MAX_BYTES,
4426
4426
  keepLines: opts?.keepLines ?? DEFAULT_CRON_RUN_LOG_KEEP_LINES
@@ -4514,7 +4514,7 @@ function filterRunLogEntries(entries, opts) {
4514
4514
  async function readCronRunLogEntriesPage(filePath, opts) {
4515
4515
  await drainPendingWrite(filePath);
4516
4516
  const limit = Math.max(1, Math.min(200, Math.floor(opts?.limit ?? 50)));
4517
- const raw = await fsPromises.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4517
+ const raw = await fs$1.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4518
4518
  const statuses = normalizeRunStatuses(opts);
4519
4519
  const deliveryStatuses = normalizeDeliveryStatuses(opts);
4520
4520
  const query = opts?.query?.trim().toLowerCase() ?? "";
@@ -4550,7 +4550,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4550
4550
  const query = opts.query?.trim().toLowerCase() ?? "";
4551
4551
  const sortDir = opts.sortDir === "asc" ? "asc" : "desc";
4552
4552
  const runsDir = path.resolve(path.dirname(path.resolve(opts.storePath)), "runs");
4553
- const jsonlFiles = (await fsPromises.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
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
4554
  if (jsonlFiles.length === 0) return {
4555
4555
  entries: [],
4556
4556
  total: 0,
@@ -4561,7 +4561,7 @@ async function readCronRunLogEntriesPageAll(opts) {
4561
4561
  };
4562
4562
  await Promise.all(jsonlFiles.map((f) => drainPendingWrite(f)));
4563
4563
  const filtered = filterRunLogEntries((await Promise.all(jsonlFiles.map(async (filePath) => {
4564
- return parseAllRunLogEntries(await fsPromises.readFile(filePath, "utf-8").catch(() => ""));
4564
+ return parseAllRunLogEntries(await fs$1.readFile(filePath, "utf-8").catch(() => ""));
4565
4565
  }))).flat(), {
4566
4566
  statuses,
4567
4567
  deliveryStatuses,
@@ -9769,7 +9769,7 @@ function resolveAgentWorkspaceFileOrRespondError(params, respond) {
9769
9769
  }
9770
9770
  async function resolveWorkspaceRealPath(workspaceDir) {
9771
9771
  try {
9772
- return await fsPromises.realpath(workspaceDir);
9772
+ return await fs$1.realpath(workspaceDir);
9773
9773
  } catch {
9774
9774
  return path.resolve(workspaceDir);
9775
9775
  }
@@ -9793,7 +9793,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9793
9793
  }
9794
9794
  let candidateLstat;
9795
9795
  try {
9796
- candidateLstat = await fsPromises.lstat(candidatePath);
9796
+ candidateLstat = await fs$1.lstat(candidatePath);
9797
9797
  } catch (err) {
9798
9798
  if (isNotFoundPathError(err)) {
9799
9799
  if (params.allowMissing) return {
@@ -9813,7 +9813,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9813
9813
  if (candidateLstat.isSymbolicLink()) {
9814
9814
  let targetReal;
9815
9815
  try {
9816
- targetReal = await fsPromises.realpath(candidatePath);
9816
+ targetReal = await fs$1.realpath(candidatePath);
9817
9817
  } catch (err) {
9818
9818
  if (isNotFoundPathError(err)) {
9819
9819
  if (params.allowMissing) return {
@@ -9832,7 +9832,7 @@ async function resolveAgentWorkspaceFilePath(params) {
9832
9832
  }
9833
9833
  let targetStat;
9834
9834
  try {
9835
- targetStat = await fsPromises.stat(targetReal);
9835
+ targetStat = await fs$1.stat(targetReal);
9836
9836
  } catch (err) {
9837
9837
  if (isNotFoundPathError(err)) {
9838
9838
  if (params.allowMissing) return {
@@ -9879,13 +9879,13 @@ async function resolveAgentWorkspaceFilePath(params) {
9879
9879
  return {
9880
9880
  kind: "ready",
9881
9881
  requestPath,
9882
- ioPath: await fsPromises.realpath(candidatePath).catch(() => candidatePath),
9882
+ ioPath: await fs$1.realpath(candidatePath).catch(() => candidatePath),
9883
9883
  workspaceReal
9884
9884
  };
9885
9885
  }
9886
9886
  async function statFileSafely(filePath) {
9887
9887
  try {
9888
- const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.lstat(filePath)]);
9888
+ const [stat, lstat] = await Promise.all([fs$1.stat(filePath), fs$1.lstat(filePath)]);
9889
9889
  if (lstat.isSymbolicLink() || !stat.isFile()) return null;
9890
9890
  if (stat.nlink > 1) return null;
9891
9891
  if (!sameFileIdentity(stat, lstat)) return null;
@@ -9970,7 +9970,7 @@ function resolveOptionalStringParam(value) {
9970
9970
  async function moveToTrashBestEffort(pathname) {
9971
9971
  if (!pathname) return;
9972
9972
  try {
9973
- await fsPromises.access(pathname);
9973
+ await fs$1.access(pathname);
9974
9974
  } catch {
9975
9975
  return;
9976
9976
  }
@@ -10046,7 +10046,7 @@ const agentsHandlers = {
10046
10046
  dir: workspaceDir,
10047
10047
  ensureBootstrapFiles: !Boolean(nextConfig.agents?.defaults?.skipBootstrap)
10048
10048
  });
10049
- await fsPromises.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10049
+ await fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10050
10050
  await writeConfigFile(nextConfig);
10051
10051
  const safeName = sanitizeIdentityLine(rawName);
10052
10052
  const emoji = resolveOptionalStringParam(params.emoji);
@@ -10059,7 +10059,7 @@ const agentsHandlers = {
10059
10059
  ...avatar ? [`- Avatar: ${sanitizeIdentityLine(avatar)}`] : [],
10060
10060
  ""
10061
10061
  ];
10062
- await fsPromises.appendFile(identityPath, lines.join("\n"), "utf-8");
10062
+ await fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
10063
10063
  respond(true, {
10064
10064
  ok: true,
10065
10065
  agentId,
@@ -10094,9 +10094,9 @@ const agentsHandlers = {
10094
10094
  });
10095
10095
  if (avatar) {
10096
10096
  const workspace = workspaceDir ?? resolveAgentWorkspaceDir(nextConfig, agentId);
10097
- await fsPromises.mkdir(workspace, { recursive: true });
10097
+ await fs$1.mkdir(workspace, { recursive: true });
10098
10098
  const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
10099
- await fsPromises.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10099
+ await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10100
10100
  }
10101
10101
  respond(true, {
10102
10102
  ok: true,
@@ -10220,7 +10220,7 @@ const agentsHandlers = {
10220
10220
  const resolved = resolveAgentWorkspaceFileOrRespondError(params, respond);
10221
10221
  if (!resolved) return;
10222
10222
  const { agentId, workspaceDir, name } = resolved;
10223
- await fsPromises.mkdir(workspaceDir, { recursive: true });
10223
+ await fs$1.mkdir(workspaceDir, { recursive: true });
10224
10224
  const filePath = path.join(workspaceDir, name);
10225
10225
  const resolvedPath = await resolveWorkspaceFilePathOrRespond({
10226
10226
  respond,
@@ -12513,14 +12513,14 @@ function isRollingLogFile(file) {
12513
12513
  return ROLLING_LOG_RE.test(path.basename(file));
12514
12514
  }
12515
12515
  async function resolveLogFile(file) {
12516
- if (await fsPromises.stat(file).catch(() => null)) return file;
12516
+ if (await fs$1.stat(file).catch(() => null)) return file;
12517
12517
  if (!isRollingLogFile(file)) return file;
12518
12518
  const dir = path.dirname(file);
12519
- const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => null);
12519
+ const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => null);
12520
12520
  if (!entries) return file;
12521
12521
  return (await Promise.all(entries.filter((entry) => entry.isFile() && ROLLING_LOG_RE.test(entry.name)).map(async (entry) => {
12522
12522
  const fullPath = path.join(dir, entry.name);
12523
- const fileStat = await fsPromises.stat(fullPath).catch(() => null);
12523
+ const fileStat = await fs$1.stat(fullPath).catch(() => null);
12524
12524
  return fileStat ? {
12525
12525
  path: fullPath,
12526
12526
  mtimeMs: fileStat.mtimeMs
@@ -12528,7 +12528,7 @@ async function resolveLogFile(file) {
12528
12528
  }))).filter((entry) => Boolean(entry)).toSorted((a, b) => b.mtimeMs - a.mtimeMs)[0]?.path ?? file;
12529
12529
  }
12530
12530
  async function readLogSlice(params) {
12531
- const stat = await fsPromises.stat(params.file).catch(() => null);
12531
+ const stat = await fs$1.stat(params.file).catch(() => null);
12532
12532
  if (!stat) return {
12533
12533
  cursor: 0,
12534
12534
  size: 0,
@@ -12566,7 +12566,7 @@ async function readLogSlice(params) {
12566
12566
  truncated,
12567
12567
  reset
12568
12568
  };
12569
- const handle = await fsPromises.open(params.file, "r");
12569
+ const handle = await fs$1.open(params.file, "r");
12570
12570
  try {
12571
12571
  let prefix = "";
12572
12572
  if (start > 0) {
@@ -13613,7 +13613,7 @@ const nodeHandlers = {
13613
13613
  const p = params;
13614
13614
  const payloadJSON = typeof p.payloadJSON === "string" ? p.payloadJSON : p.payload !== void 0 ? JSON.stringify(p.payload) : null;
13615
13615
  await respondUnavailableOnThrow(respond, async () => {
13616
- const { handleNodeEvent } = await import("./server-node-events-CyVS1c_n.js");
13616
+ const { handleNodeEvent } = await import("./server-node-events-B3SyIWEd.js");
13617
13617
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
13618
13618
  await handleNodeEvent({
13619
13619
  deps: context.deps,
@@ -14267,6 +14267,26 @@ const OFFICIAL_MARKET_CATALOG = [
14267
14267
  slug: "upload-post",
14268
14268
  official: true
14269
14269
  },
14270
+ {
14271
+ id: "caldav-calendar",
14272
+ skillKey: "caldav-calendar",
14273
+ name: "CalDAV Calendar",
14274
+ summary: "Connect CalDAV calendars for self-hosted scheduling, event lookup, and calendar automation workflows.",
14275
+ provider: "Asleep123",
14276
+ category: "automation",
14277
+ tags: [
14278
+ "calendar",
14279
+ "caldav",
14280
+ "scheduling",
14281
+ "self-hosted",
14282
+ "productivity"
14283
+ ],
14284
+ stars: 0,
14285
+ downloads: 0,
14286
+ sourceType: "clawhub",
14287
+ slug: "Asleep123/caldav-calendar",
14288
+ official: true
14289
+ },
14270
14290
  {
14271
14291
  id: "security-auditor",
14272
14292
  skillKey: "security-auditor",
@@ -14339,11 +14359,11 @@ async function installLocalMarketSkill(params) {
14339
14359
  candidatePath: sourceDir,
14340
14360
  boundaryLabel: "market templates directory"
14341
14361
  });
14342
- if (!(await fsPromises.stat(sourceDir)).isDirectory()) return {
14362
+ if (!(await fs$1.stat(sourceDir)).isDirectory()) return {
14343
14363
  ok: false,
14344
14364
  message: `Local template "${templateDir}" is not a directory.`
14345
14365
  };
14346
- if (!(await fsPromises.stat(sourceSkillPath)).isFile()) return {
14366
+ if (!(await fs$1.stat(sourceSkillPath)).isFile()) return {
14347
14367
  ok: false,
14348
14368
  message: `Local template "${templateDir}" is missing SKILL.md.`
14349
14369
  };
@@ -14357,13 +14377,13 @@ async function installLocalMarketSkill(params) {
14357
14377
  const workspaceSkillsDir = path.join(workspaceDir, "skills");
14358
14378
  const targetDir = path.join(workspaceSkillsDir, templateDir);
14359
14379
  try {
14360
- await fsPromises.mkdir(workspaceSkillsDir, { recursive: true });
14380
+ await fs$1.mkdir(workspaceSkillsDir, { recursive: true });
14361
14381
  await assertCanonicalPathWithinBase({
14362
14382
  baseDir: workspaceSkillsDir,
14363
14383
  candidatePath: targetDir,
14364
14384
  boundaryLabel: "workspace skills directory"
14365
14385
  });
14366
- await fsPromises.cp(sourceDir, targetDir, {
14386
+ await fs$1.cp(sourceDir, targetDir, {
14367
14387
  recursive: true,
14368
14388
  force: true
14369
14389
  });
@@ -17207,7 +17227,7 @@ function normalizeAgentPayload(payload) {
17207
17227
  async function startBrowserControlServerIfEnabled() {
17208
17228
  if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
17209
17229
  const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
17210
- const mod = override ? await import(override) : await import("./server-C88L-6UW.js");
17230
+ const mod = override ? await import(override) : await import("./server-Cr92VI8t.js");
17211
17231
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
17212
17232
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
17213
17233
  if (!start) return null;
@@ -17435,7 +17455,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
17435
17455
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
17436
17456
  const candidate = path.join(rootReal, rel);
17437
17457
  try {
17438
- const st = await fsPromises.lstat(candidate);
17458
+ const st = await fs$1.lstat(candidate);
17439
17459
  if (st.isSymbolicLink()) return null;
17440
17460
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
17441
17461
  } catch {}
@@ -17472,8 +17492,8 @@ async function resolveA2uiRoot() {
17472
17492
  for (const dir of candidates) try {
17473
17493
  const indexPath = path.join(dir, "index.html");
17474
17494
  const bundlePath = path.join(dir, "a2ui.bundle.js");
17475
- await fsPromises.stat(indexPath);
17476
- await fsPromises.stat(bundlePath);
17495
+ await fs$1.stat(indexPath);
17496
+ await fs$1.stat(bundlePath);
17477
17497
  return dir;
17478
17498
  } catch {}
17479
17499
  return null;
@@ -17482,7 +17502,7 @@ async function resolveA2uiRootReal() {
17482
17502
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
17483
17503
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
17484
17504
  const root = await resolveA2uiRoot();
17485
- cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
17505
+ cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
17486
17506
  cachedA2uiResolvedAtMs = Date.now();
17487
17507
  resolvingA2uiRoot = null;
17488
17508
  return cachedA2uiRootReal;
@@ -17703,13 +17723,13 @@ function normalizeBasePath(rawPath) {
17703
17723
  }
17704
17724
  async function prepareCanvasRoot(rootDir) {
17705
17725
  await ensureDir(rootDir);
17706
- const rootReal = await fsPromises.realpath(rootDir);
17726
+ const rootReal = await fs$1.realpath(rootDir);
17707
17727
  try {
17708
17728
  const indexPath = path.join(rootReal, "index.html");
17709
- await fsPromises.stat(indexPath);
17729
+ await fs$1.stat(indexPath);
17710
17730
  } catch {
17711
17731
  try {
17712
- await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17732
+ await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17713
17733
  } catch {}
17714
17734
  }
17715
17735
  return rootReal;
@@ -20716,7 +20736,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
20716
20736
  }
20717
20737
  async function readLockPayload(lockPath) {
20718
20738
  try {
20719
- const raw = await fsPromises.readFile(lockPath, "utf8");
20739
+ const raw = await fs$1.readFile(lockPath, "utf8");
20720
20740
  const parsed = JSON.parse(raw);
20721
20741
  if (typeof parsed.pid !== "number") return null;
20722
20742
  if (typeof parsed.createdAt !== "string") return null;
@@ -20751,11 +20771,11 @@ async function acquireGatewayLock(opts = {}) {
20751
20771
  const platform = opts.platform ?? process.platform;
20752
20772
  const port = opts.port;
20753
20773
  const { lockPath, configPath } = resolveGatewayLockPath(env);
20754
- await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
20774
+ await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
20755
20775
  const startedAt = Date.now();
20756
20776
  let lastPayload = null;
20757
20777
  while (Date.now() - startedAt < timeoutMs) try {
20758
- const handle = await fsPromises.open(lockPath, "wx");
20778
+ const handle = await fs$1.open(lockPath, "wx");
20759
20779
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
20760
20780
  const payload = {
20761
20781
  pid: process.pid,
@@ -20769,7 +20789,7 @@ async function acquireGatewayLock(opts = {}) {
20769
20789
  configPath,
20770
20790
  release: async () => {
20771
20791
  await handle.close().catch(() => void 0);
20772
- await fsPromises.rm(lockPath, { force: true });
20792
+ await fs$1.rm(lockPath, { force: true });
20773
20793
  }
20774
20794
  };
20775
20795
  } catch (err) {
@@ -20778,7 +20798,7 @@ async function acquireGatewayLock(opts = {}) {
20778
20798
  const ownerPid = lastPayload?.pid;
20779
20799
  const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
20780
20800
  if (ownerStatus === "dead" && ownerPid) {
20781
- await fsPromises.rm(lockPath, { force: true });
20801
+ await fs$1.rm(lockPath, { force: true });
20782
20802
  continue;
20783
20803
  }
20784
20804
  if (ownerStatus !== "alive") {
@@ -20788,13 +20808,13 @@ async function acquireGatewayLock(opts = {}) {
20788
20808
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
20789
20809
  }
20790
20810
  if (!stale) try {
20791
- const st = await fsPromises.stat(lockPath);
20811
+ const st = await fs$1.stat(lockPath);
20792
20812
  stale = Date.now() - st.mtimeMs > staleMs;
20793
20813
  } catch {
20794
20814
  stale = false;
20795
20815
  }
20796
20816
  if (stale) {
20797
- await fsPromises.rm(lockPath, { force: true });
20817
+ await fs$1.rm(lockPath, { force: true });
20798
20818
  continue;
20799
20819
  }
20800
20820
  }
@@ -23104,7 +23124,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
23104
23124
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
23105
23125
  if (!minimalTestGateway) (async () => {
23106
23126
  const { recoverPendingDeliveries } = await import("./delivery-queue-DhqwvOP8.js").then((n) => n.n);
23107
- const { deliverOutboundPayloads } = await import("./deliver-BRwFsEUd.js").then((n) => n.n);
23127
+ const { deliverOutboundPayloads } = await import("./deliver-Df8pSQk6.js").then((n) => n.n);
23108
23128
  await recoverPendingDeliveries({
23109
23129
  deliver: deliverOutboundPayloads,
23110
23130
  log: log.child("delivery-recovery"),