@bitseek/claw 1.2.7 → 1.2.9

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 (279) hide show
  1. package/dist/{accounts-B3zSNWIv.js → accounts-2NNZ6Hbp.js} +1 -1
  2. package/dist/{accounts-BQHz8_1_.js → accounts-Cv5CUnT4.js} +7 -7
  3. package/dist/{accounts-DTfEeXyO.js → accounts-NHpMJ0aq.js} +1 -1
  4. package/dist/{acp-cli-C24-lylb.js → acp-cli-CyPiQ0lt.js} +8 -8
  5. package/dist/{agent-scope-CJelRKYY.js → agent-scope-CY2-lUIY.js} +1 -1
  6. package/dist/{agents-BCJbDk2P.js → agents-BC3wwrO-.js} +15 -15
  7. package/dist/{agents.config-DoxV5m9v.js → agents.config-CeG5P331.js} +2 -2
  8. package/dist/{agents.config-DQBEXhzA.js → agents.config-rRQ8xZUr.js} +1 -1
  9. package/dist/{api-key-rotation-xfk-b2Sv.js → api-key-rotation-Cf7QM5M_.js} +1 -1
  10. package/dist/{audio-preflight-Dd9DDvqB.js → audio-preflight-BWOdDA2n.js} +4 -4
  11. package/dist/{audio-preflight-Dl40LQzr.js → audio-preflight-iuCPDl1D.js} +36 -36
  12. package/dist/{audio-transcription-runner-jiDE7Pt8.js → audio-transcription-runner-CGADiTRL.js} +22 -22
  13. package/dist/{audio-transcription-runner-Bx53bUS2.js → audio-transcription-runner-DaoqvWoi.js} +1 -1
  14. package/dist/{audit-Bgu8Ommg.js → audit-Bjz6AFn-.js} +29 -29
  15. package/dist/{auth-B3HDYw4G.js → auth-anvTU0Sb.js} +1 -1
  16. package/dist/{auth-choice-DYXCDlGW.js → auth-choice-Co_Dl_bs.js} +14 -14
  17. package/dist/{auth-choice-CP6K5htW.js → auth-choice-Dx1VT2I8.js} +12 -12
  18. package/dist/{auth-choice-CdsMUqKA.js → auth-choice-eimtfK0N.js} +1 -1
  19. package/dist/{auth-choice.apply-helpers-DR-eUj_5.js → auth-choice.apply-helpers-Du585kvU.js} +1 -1
  20. package/dist/{auth-profiles-D_x1_5v_.js → auth-profiles-CyG9VwU_.js} +16 -16
  21. package/dist/{auth-token-BDQ5b9Wx.js → auth-token-Cfvmvs2X.js} +1 -1
  22. package/dist/{banner-V_1v329B.js → banner-7O0OkDQ4.js} +2 -2
  23. package/dist/{bindings-Hx6KNJeg.js → bindings-DGvp9FdD.js} +1 -1
  24. package/dist/{bonjour-discovery-DiHs5j0y.js → bonjour-discovery-Dv9UQh6g.js} +1 -1
  25. package/dist/{browser-cli-BMupJSz_.js → browser-cli-C1OEYX9g.js} +12 -12
  26. package/dist/build-info.json +3 -3
  27. package/dist/bundled/boot-md/handler.js +6 -6
  28. package/dist/bundled/session-memory/handler.js +6 -6
  29. package/dist/{call-CzoM7hPS.js → call-CmAGfSJE.js} +10 -10
  30. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  31. package/dist/{channel-account-context-BV3Q0XnD.js → channel-account-context-BrHQ7XHF.js} +5 -5
  32. package/dist/{channel-options-Dsjb-V1F.js → channel-options-BnZ1nSBu.js} +3 -3
  33. package/dist/{channel-options-Bnnem_wD.js → channel-options-uEYF4WRA.js} +1 -1
  34. package/dist/{channel-selection-D8KYuWir.js → channel-selection-DGtYwfd7.js} +1 -1
  35. package/dist/{channel-web-KY6EP9HT.js → channel-web-BJJUEEKO.js} +1 -1
  36. package/dist/{channel-web-wuxrfEJh.js → channel-web-lHPdbnjv.js} +18 -18
  37. package/dist/{channels-cli-OZeQkPMG.js → channels-cli-DEE_p7e9.js} +95 -95
  38. package/dist/{channels-cli-tJkvzsqO.js → channels-cli-GwM8DZvP.js} +6 -6
  39. package/dist/{channels-status-issues-CCNiQcg9.js → channels-status-issues-BWcKByy7.js} +1 -1
  40. package/dist/{chrome-C6zMSR36.js → chrome-CjTE-vWv.js} +8 -8
  41. package/dist/{chrome-DuDCGdf-.js → chrome-DeZyLFsG.js} +4 -4
  42. package/dist/{clawbot-cli-COQB6-NK.js → clawbot-cli-C6oL4o77.js} +5 -5
  43. package/dist/cli/daemon-cli.js +1 -1
  44. package/dist/{cli-DOS1lPNs.js → cli-BLZW83kS.js} +1 -1
  45. package/dist/{cli-YeYpjq2c.js → cli-CD5xP9w9.js} +76 -76
  46. package/dist/{client-BvL3EdiZ.js → client-vUKV2o6h.js} +2 -2
  47. package/dist/{command-registry-Ce2f2xlT.js → command-registry-B41say0S.js} +13 -13
  48. package/dist/{commands-C67IbXs7.js → commands-d8L0zY8O.js} +1 -1
  49. package/dist/{commands-registry-D0_D5hFV.js → commands-registry-C78O6aNi.js} +3 -3
  50. package/dist/{completion-cli-9Y73fGUi.js → completion-cli-BuLkcc9o.js} +1 -1
  51. package/dist/{completion-cli-BmyLEw45.js → completion-cli-DSxTjQik.js} +13 -13
  52. package/dist/{config-cli-hwawfBlS.js → config-cli-BMtY1oFI.js} +7 -7
  53. package/dist/{config-cli-DZpbwWvz.js → config-cli-D4EnfBqh.js} +1 -1
  54. package/dist/{config-guard-CcE0LvHm.js → config-guard-Bztdn_pu.js} +3 -3
  55. package/dist/{config-validation-DO7QURfM.js → config-validation-CAkiRwLK.js} +3 -3
  56. package/dist/{configure-CLMtWGiL.js → configure-CBB1YbMN.js} +3 -3
  57. package/dist/{configure-l-lM74c1.js → configure-Dz9z2cyD.js} +17 -17
  58. package/dist/control-ui/assets/{index-CKSSOzJL.js → index-puDi2eTY.js} +2 -2
  59. package/dist/control-ui/assets/index-puDi2eTY.js.map +1 -0
  60. package/dist/control-ui/brand.png +0 -0
  61. package/dist/control-ui/index.html +4 -5
  62. package/dist/{control-ui-assets-Dx8wiZQ_.js → control-ui-assets-BGvtXBkm.js} +1 -1
  63. package/dist/{cron-cli-xl75rAFd.js → cron-cli-nslB2EKF.js} +12 -12
  64. package/dist/{daemon-cli-BSy0rtO2.js → daemon-cli-D8I8RTf0.js} +15 -15
  65. package/dist/{daemon-install-d2OYSlQz.js → daemon-install-CKree1OU.js} +4 -4
  66. package/dist/{daemon-install-helpers-D28keNLu.js → daemon-install-helpers-CBCbs7y1.js} +11 -11
  67. package/dist/{dashboard-DXvihe_P.js → dashboard-dc7KG5Fm.js} +2 -2
  68. package/dist/{deliver-Df8pSQk6.js → deliver-BRwFsEUd.js} +7 -7
  69. package/dist/{deliver-DXa06hfk.js → deliver-xY3h9X6N.js} +1 -1
  70. package/dist/{devices-cli-D6CoUTi_.js → devices-cli-jakb5Fk0.js} +8 -8
  71. package/dist/{diagnostic-Bvatw1Xn.js → diagnostic-DjxUqpmL.js} +1 -1
  72. package/dist/{diagnostics-ABz8E7c-.js → diagnostics-DR9Z0mN5.js} +5 -5
  73. package/dist/{directory-cli-Dkil59xj.js → directory-cli-3FgAtenS.js} +8 -8
  74. package/dist/{dns-cli-CJydclW8.js → dns-cli-DUsjD4em.js} +5 -5
  75. package/dist/{dock-DT8sACcR.js → dock-CoclJnwp.js} +4 -4
  76. package/dist/{docs-cli-BkufgU5Y.js → docs-cli-CpIeooaU.js} +4 -4
  77. package/dist/{doctor-completion-CWm9ZwKY.js → doctor-completion-BIt5xBwC.js} +1 -1
  78. package/dist/{doctor-completion-_GRkzsCa.js → doctor-completion-BSR7Om4e.js} +2 -2
  79. package/dist/{doctor-config-flow-BrXA2e34.js → doctor-config-flow-DUdUJgfq.js} +15 -15
  80. package/dist/{enable-CinNZxRH.js → enable-BNycqpJc.js} +1 -1
  81. package/dist/entry.js +2 -2
  82. package/dist/{exec-approvals-allowlist-B4DS6FIn.js → exec-approvals-allowlist-CFjPSbxI.js} +1 -1
  83. package/dist/{exec-approvals-cli-Cani2Hjk.js → exec-approvals-cli-D8lFWgJj.js} +16 -16
  84. package/dist/{exec-safe-bin-runtime-policy-BP6ImlkB.js → exec-safe-bin-runtime-policy-CpMj95vJ.js} +2 -2
  85. package/dist/extensionAPI.js +1 -1
  86. package/dist/{fetch-DC-NMnAU.js → fetch-DOjg912W.js} +3 -3
  87. package/dist/{fetch-guard-B62rgaSw.js → fetch-guard-Csbz9pui.js} +1 -1
  88. package/dist/{fs-safe-CJDtl_QU.js → fs-safe-BqJ9egpm.js} +24 -24
  89. package/dist/{gateway-cli-DRM2vzxA.js → gateway-cli-CanylfLh.js} +22 -12
  90. package/dist/{gateway-cli-CSL5V3uF.js → gateway-cli-VrzgkvsB.js} +175 -165
  91. package/dist/{gateway-rpc-C7KYwonl.js → gateway-rpc-B5Spvviy.js} +1 -1
  92. package/dist/{health-Du8dO3vn.js → health-BX20asqJ.js} +1 -1
  93. package/dist/{health-CDEXWvnu.js → health-D4cJIlo7.js} +14 -14
  94. package/dist/{hooks-cli-Deo01lF6.js → hooks-cli-BPg6BqOl.js} +84 -84
  95. package/dist/{hooks-cli-DUIQuGjr.js → hooks-cli-Cs2Ovk-O.js} +2 -2
  96. package/dist/{hooks-status-DE20AAEu.js → hooks-status-6tcOdcYp.js} +1 -1
  97. package/dist/{image-UpBiPNsk.js → image-CI4JYwnc.js} +5 -5
  98. package/dist/{image-Dd4lgi4H.js → image-DCyaYY2d.js} +1 -1
  99. package/dist/{image-ops-BGTBZMuE.js → image-ops-B2L37gT8.js} +10 -10
  100. package/dist/index.js +6 -6
  101. package/dist/{inspect-Bmurt9te.js → inspect-BzuEXYfa.js} +4 -4
  102. package/dist/{install-safe-path-BB9b_AvF.js → install-safe-path-C8QJ5yjB.js} +25 -25
  103. package/dist/{installs-BXcYytvn.js → installs-CWbEA1d1.js} +9 -9
  104. package/dist/{ipv4-BB1Ro6so.js → ipv4-DQS0lTwQ.js} +1 -1
  105. package/dist/{ir-DziC-P4Z.js → ir-CEwBpxhC.js} +6 -6
  106. package/dist/{issue-format-DF2YB-kZ.js → issue-format-D8MobWNt.js} +1 -1
  107. package/dist/{json-files-CuJjdF_0.js → json-files-rR19q30D.js} +8 -8
  108. package/dist/{lifecycle-core-CJd181-h.js → lifecycle-core-CiAE4s92.js} +5 -5
  109. package/dist/llm-slug-generator.js +6 -6
  110. package/dist/{login-C_YjM9eH.js → login-CdHg3Emc.js} +3 -3
  111. package/dist/{login-qr-DujJqOuy.js → login-qr-DXecO0Tb.js} +6 -6
  112. package/dist/{logs-cli-Bc1A5X-r.js → logs-cli-D8UCmwyR.js} +9 -9
  113. package/dist/{manager-7hZXEYTj.js → manager-DWpiNvlg.js} +14 -14
  114. package/dist/{manifest-registry-Kbw8YPsZ.js → manifest-registry-CBF8Vfz8.js} +1 -1
  115. package/dist/{markdown-tables-BYHgyUjA.js → markdown-tables-DQlQMRGZ.js} +1 -1
  116. package/dist/{memory-cli-CuT-iG2F.js → memory-cli-BUrf60e_.js} +12 -12
  117. package/dist/{model-DmBmzJI6.js → model-DMZUvZJo.js} +2 -2
  118. package/dist/{model-catalog-D1X8r3WJ.js → model-catalog-DFi9HgWu.js} +3 -3
  119. package/dist/{model-picker-C56N_rW7.js → model-picker-Dt7Rl38k.js} +4 -4
  120. package/dist/{models-CgguB_MH.js → models-CukrcW4u.js} +18 -18
  121. package/dist/{models-cli-CHUbcM_y.js → models-cli-C-FMLbe_.js} +2 -2
  122. package/dist/{models-cli-BEb0DHSP.js → models-cli-DTjBGjrI.js} +81 -81
  123. package/dist/{models-config-CmrBGsQs.js → models-config-AePb9RAo.js} +6 -6
  124. package/dist/{net-BXeYv7Iu.js → net-C75G4fup.js} +2 -2
  125. package/dist/{node-cli-DSoqxwqZ.js → node-cli-D4Tj8JOq.js} +33 -33
  126. package/dist/{node-command-policy-pJ6IPNBA.js → node-command-policy-BZq5AebG.js} +1 -1
  127. package/dist/{node-service-DUUObpwl.js → node-service-B0FIwOsW.js} +1 -1
  128. package/dist/{nodes-cli-BKGcOJ8A.js → nodes-cli-DL-855N8.js} +16 -16
  129. package/dist/{nodes-screen-DcxCMjOs.js → nodes-screen-BHwVUMr8.js} +7 -7
  130. package/dist/{npm-pack-install-D5pJ8KzT.js → npm-pack-install-qErvgXGZ.js} +18 -18
  131. package/dist/{npm-resolution-T8SphiP5.js → npm-resolution-C_FZOBlT.js} +5 -5
  132. package/dist/{npm-resolution-Dv7nYiaP.js → npm-resolution-oBSNTx2S.js} +1 -1
  133. package/dist/{onboard-ATkjPZXm.js → onboard-B-f5pmgG.js} +2 -2
  134. package/dist/{onboard-BuGv9f2N.js → onboard-DktYC_iu.js} +6 -6
  135. package/dist/{onboard-channels-CRpmgX82.js → onboard-channels-Bbzz_NPd.js} +1 -1
  136. package/dist/{onboard-channels-BLZ8FdVP.js → onboard-channels-DGipWl1h.js} +20 -20
  137. package/dist/{onboard-custom-CZR1K96w.js → onboard-custom-B5F-69pM.js} +3 -3
  138. package/dist/{onboard-custom.shared-B9NXcXpv.js → onboard-custom.shared-CBgv6y4h.js} +2 -2
  139. package/dist/{onboard-helpers-CczYNQDJ.js → onboard-helpers-D8lLbK3A.js} +11 -11
  140. package/dist/{onboard-hooks-o0B0p8tR.js → onboard-hooks-DBif0Jq8.js} +4 -4
  141. package/dist/{onboard-remote-DtLQyBJB.js → onboard-remote-loJ1Jn9Q.js} +3 -3
  142. package/dist/{onboard-skills-Brzj5oDF.js → onboard-skills-JtcIUHsb.js} +4 -4
  143. package/dist/{onboarding-BAaREMfO.js → onboarding-D0IraL8k.js} +13 -13
  144. package/dist/{onboarding-BvdtFAPe.js → onboarding-Kp0zZunD.js} +3 -3
  145. package/dist/{onboarding.finalize-dkwktLJD.js → onboarding.finalize-CJ23anMx.js} +5 -5
  146. package/dist/{onboarding.finalize-CV7n10lP.js → onboarding.finalize-DHitw2tg.js} +89 -89
  147. package/dist/{onboarding.gateway-config-D-gZxjbU.js → onboarding.gateway-config-uLDVSdpl.js} +18 -18
  148. package/dist/{openai-model-default-BNYNbslY.js → openai-model-default-B1Dlue6a.js} +2 -2
  149. package/dist/{outbound-_RTZSBES.js → outbound-BZyqP8d-.js} +4 -4
  150. package/dist/{outbound-attachment-CXINK8df.js → outbound-attachment-DM-h2uQ1.js} +2 -2
  151. package/dist/{pairing-cli-DiKgOlKC.js → pairing-cli-DR836bYa.js} +9 -9
  152. package/dist/{pairing-labels-CFSUHOmk.js → pairing-labels-x4akYNb7.js} +1 -1
  153. package/dist/{pairing-store-BfzlN-z9.js → pairing-store-rFuiIoGM.js} +3 -3
  154. package/dist/{path-alias-guards-Cg9ZP1NN.js → path-alias-guards-laKq24fx.js} +3 -3
  155. package/dist/{path-safety-__ACzYqx.js → path-safety-Cr4WZsHE.js} +1 -1
  156. package/dist/{paths-BjoSX1aC.js → paths-B_L2Zoe-.js} +9 -9
  157. package/dist/{pi-embedded-DKX65Hec.js → pi-embedded-BgVoy_Nm.js} +62 -26
  158. package/dist/{pi-embedded-Claxav22.js → pi-embedded-DdMbqfLM.js} +42 -6
  159. package/dist/{pi-embedded-helpers-CrD8I6qf.js → pi-embedded-helpers-CEMPdfif.js} +6 -6
  160. package/dist/{pi-embedded-helpers-BErNo2oq.js → pi-embedded-helpers-CMTVhLjq.js} +3 -3
  161. package/dist/{pi-model-discovery-BZ2RCD_u.js → pi-model-discovery-RrejIg26.js} +1 -1
  162. package/dist/{pi-tools.policy-upaoJyu4.js → pi-tools.policy-dUeXHcQL.js} +5 -5
  163. package/dist/{plugin-auto-enable-DER6qA6X.js → plugin-auto-enable-S_lBQAKI.js} +3 -3
  164. package/dist/{plugin-registry-CxFikiLF.js → plugin-registry-CIUGSWLT.js} +3 -3
  165. package/dist/{plugin-registry-TOEmbMc4.js → plugin-registry-pa6LjTdT.js} +1 -1
  166. package/dist/plugin-sdk/agents/context.d.ts +2 -0
  167. package/dist/plugin-sdk/{channel-web-O79O_ah6.js → channel-web-BaFUnG0F.js} +1 -1
  168. package/dist/plugin-sdk/index.js +2 -2
  169. package/dist/plugin-sdk/{reply-YZQvouuF.js → reply-BCRC0yeW.js} +42 -6
  170. package/dist/plugin-sdk/{web-jmxdxo0H.js → web-BDHHRoXS.js} +2 -2
  171. package/dist/{plugins-vsjS_m58.js → plugins-C4cYqW07.js} +2 -2
  172. package/dist/{plugins-cli-Clo_uyvq.js → plugins-cli-CqDquUh9.js} +2 -2
  173. package/dist/{plugins-cli-bHHZzKd-.js → plugins-cli-DnLeUBfn.js} +86 -86
  174. package/dist/{ports-sCOQUaAP.js → ports-DRaxdQmm.js} +2 -2
  175. package/dist/{ports-zWusnrvP.js → ports-tfS1haOJ.js} +1 -1
  176. package/dist/{program-Br-upXE-.js → program-3T_oL3TY.js} +84 -84
  177. package/dist/{program-context-B7eOpdoF.js → program-context-D2U9PEv9.js} +17 -17
  178. package/dist/{prompt-select-styled-CPPwmToI.js → prompt-select-styled-Bir77erd.js} +4 -4
  179. package/dist/{prompt-select-styled-BpKwjfWa.js → prompt-select-styled-BylOR7bV.js} +39 -39
  180. package/dist/{provider-auth-helpers-BFsLtU8g.js → provider-auth-helpers-BEFKXIJE.js} +5 -5
  181. package/dist/{provider-auth-helpers-D_akOb8A.js → provider-auth-helpers-fK9RpOiF.js} +1 -1
  182. package/dist/{proxy-env-BQIJPH4j.js → proxy-env-BoopXu2J.js} +1 -1
  183. package/dist/{push-apns-DvNRo3EQ.js → push-apns-C7oC1J4F.js} +1 -1
  184. package/dist/{push-apns-BSlKJa83.js → push-apns-sUecrS7L.js} +5 -5
  185. package/dist/{pw-ai-BeJ_96rV.js → pw-ai-CG7D8D2P.js} +15 -15
  186. package/dist/{pw-ai-pkfCxzhV.js → pw-ai-DGwA7iCM.js} +1 -1
  187. package/dist/{qmd-manager-BNohLpRA.js → qmd-manager-Bo22w5wm.js} +20 -20
  188. package/dist/{qr-cli-CCHyao8J.js → qr-cli-DiKa2ySu.js} +1 -1
  189. package/dist/{query-expansion-BrM3X6-L.js → query-expansion-Ba9OpCm9.js} +12 -12
  190. package/dist/{redact-snapshot-C1Yp9Q7B.js → redact-snapshot-Dioor4fY.js} +1 -1
  191. package/dist/{register.agent-DowGjvNc.js → register.agent-DVy4TdwU.js} +6 -6
  192. package/dist/{register.agent-C-OmdJMe.js → register.agent-FAGOpOS3.js} +97 -97
  193. package/dist/{register.configure-BZLa_c3k.js → register.configure-BzG1EPPb.js} +7 -7
  194. package/dist/register.configure-aZwsNSkf.js +175 -0
  195. package/dist/{register.init-B1pIa3ys.js → register.init-B-wUDJAX.js} +15 -15
  196. package/dist/{register.maintenance-D3hGsmW7.js → register.maintenance-B6f_YUQN.js} +99 -99
  197. package/dist/{register.maintenance-DlVX7oGZ.js → register.maintenance-ClYMbiJl.js} +7 -7
  198. package/dist/{register.message-DE-eKss6.js → register.message-BkAe3KaX.js} +2 -2
  199. package/dist/{register.message-5hKmcWaB.js → register.message-WkJ5viuk.js} +77 -77
  200. package/dist/{register.onboard-BSOSCu5a.js → register.onboard-BUBCEjZ_.js} +2 -2
  201. package/dist/{register.onboard-BLl4Er9V.js → register.onboard-DvpF9feG.js} +18 -18
  202. package/dist/{register.setup-NLg11E_9.js → register.setup-CA7jtsG8.js} +21 -21
  203. package/dist/{register.setup-CvAXGVEU.js → register.setup-Dlmt8cdD.js} +2 -2
  204. package/dist/{register.start-CyYd_xbF.js → register.start-3Hnjf8NZ.js} +17 -17
  205. package/dist/{register.status-health-sessions-Cbva8fTK.js → register.status-health-sessions-BfIwzFQw.js} +3 -3
  206. package/dist/{register.status-health-sessions-lOM_lb6H.js → register.status-health-sessions-CY2i61By.js} +91 -91
  207. package/dist/{register.subclis-Zhshg_9Y.js → register.subclis-D72jBDzj.js} +31 -31
  208. package/dist/{replies-Ckd7Lwt0.js → replies-BDnb0prE.js} +1 -1
  209. package/dist/{reply-D8Yu6-Ie.js → reply-BOAv4F33.js} +42 -6
  210. package/dist/{reply-prefix-DpXMFuAa.js → reply-prefix-H_GSyyzN.js} +1 -1
  211. package/dist/{resolve-route-Cnto8LMw.js → resolve-route-ByAwAiq5.js} +2 -2
  212. package/dist/{rpc-CnRUZWNJ.js → rpc-DQa5fiBV.js} +1 -1
  213. package/dist/{run-main-CiC7Az8U.js → run-main-DOntWJzb.js} +95 -95
  214. package/dist/{runtime-D4y0Gdfj.js → runtime-D-Knnx0g.js} +2 -2
  215. package/dist/{sandbox-Tai-w14a.js → sandbox-DI_zIUpo.js} +18 -18
  216. package/dist/{sandbox-cli-uwsF36Ea.js → sandbox-cli-Cn6OxK6L.js} +26 -26
  217. package/dist/{secrets-cli-DzeSuhpa.js → secrets-cli-Cf2fFK2m.js} +10 -10
  218. package/dist/{security-cli-Dzelqio0.js → security-cli-DS-dXNUv.js} +43 -43
  219. package/dist/{send-e1X1pfda.js → send-BCLu4NEE.js} +6 -6
  220. package/dist/{send-BpXRh0BM.js → send-BTswySBz.js} +11 -11
  221. package/dist/{send-CQJKPGw4.js → send-CZ2O-5pP.js} +6 -6
  222. package/dist/{send-sj8Hu26l.js → send-D0X-8aPh.js} +8 -8
  223. package/dist/{send-Cpaj_bKB.js → send-ZyB64ntO.js} +5 -5
  224. package/dist/{server-Cr92VI8t.js → server-C88L-6UW.js} +19 -19
  225. package/dist/{server-context-YLHmGfYV.js → server-context-CjPCwa4T.js} +12 -12
  226. package/dist/{server-lifecycle-B23lXM3Y.js → server-lifecycle-HLBzAVdX.js} +2 -2
  227. package/dist/{server-middleware-CKSnhiM2.js → server-middleware-DHxnFjIL.js} +1 -1
  228. package/dist/{server-node-events-yFZiE04b.js → server-node-events-CyVS1c_n.js} +77 -77
  229. package/dist/{server-node-events-nakjzVDn.js → server-node-events-DAuQ0Pk2.js} +2 -2
  230. package/dist/{service-Bjqlh_fF.js → service-CFfCS51c.js} +15 -15
  231. package/dist/{session-DcnQHb9Q.js → session-ApCom0An.js} +1 -1
  232. package/dist/{session-meta-DF1WT4cr.js → session-meta-Cew1QAYN.js} +1 -1
  233. package/dist/{session-utils-BncMg1bn.js → session-utils-DYJSA9qa.js} +46 -10
  234. package/dist/{sessions-B2mnwD21.js → sessions-BXz4gdq6.js} +15 -15
  235. package/dist/{sessions-C2Xfck_9.js → sessions-CeXgGBJ1.js} +4 -4
  236. package/dist/{shared-BojXguFB.js → shared-Cd4Yi_Q8.js} +3 -3
  237. package/dist/{shared-_j1K2VJ9.js → shared-Cl1av01k.js} +1 -1
  238. package/dist/{skill-commands-CYucDd3C.js → skill-commands-Cpr3Poo2.js} +5 -5
  239. package/dist/{skill-scanner-CSJqt034.js → skill-scanner-3QHafkQH.js} +6 -6
  240. package/dist/{skills-BCgFAMj3.js → skills-D4S-gyVf.js} +3 -3
  241. package/dist/{skills-cli-BM1iUpGc.js → skills-cli-CAhlFcYR.js} +5 -5
  242. package/dist/{skills-install-e4_jXT_J.js → skills-install-DyneupGw.js} +6 -6
  243. package/dist/{skills-status-DG-bH5mO.js → skills-status-DQzBD0Y7.js} +1 -1
  244. package/dist/{status-CQYA6EJN.js → status-C6WYtjMU.js} +2 -2
  245. package/dist/{status-mS4bWnIW.js → status-VYa-lFs6.js} +26 -26
  246. package/dist/{status.update-YC9VNJxl.js → status.update-BdgtGtkx.js} +2 -2
  247. package/dist/{store-U8cs0QvT.js → store-TdzSHRPN.js} +5 -5
  248. package/dist/{subagent-registry-CXBreqUP.js → subagent-registry-DlmrBMrv.js} +156 -156
  249. package/dist/{system-cli-B_PUKo6-.js → system-cli-BYGGFlhn.js} +9 -9
  250. package/dist/{system-run-command-GKGzGztn.js → system-run-command-XHAlbx5q.js} +1 -1
  251. package/dist/{systemd-HiU4Gzoc.js → systemd-DRGkJYMb.js} +9 -9
  252. package/dist/{systemd-hints-BDIASQOF.js → systemd-hints-C5HK00QG.js} +6 -6
  253. package/dist/{systemd-linger-DfrE-63p.js → systemd-linger-DME-3IVk.js} +1 -1
  254. package/dist/{tables-DVXe5x1J.js → tables-BOsRa7CS.js} +1 -1
  255. package/dist/{tailnet-C1XBcWue.js → tailnet-CfP3A6g2.js} +1 -1
  256. package/dist/{target-errors-C5LA-JI-.js → target-errors-DPJ9HFp9.js} +4 -4
  257. package/dist/{tool-images-CnpAosfi.js → tool-images-CmgHk8xk.js} +1 -1
  258. package/dist/{tui-CLK0s6TM.js → tui-C16rnfcv.js} +6 -6
  259. package/dist/{tui-cli-DTdNoN6U.js → tui-cli-Ct7mmQhr.js} +33 -33
  260. package/dist/{update-DLc3UsVC.js → update-DOvgIBRu.js} +3 -3
  261. package/dist/{update-cli-B9F4MIMw.js → update-cli-BnefEkIB.js} +107 -107
  262. package/dist/{update-cli-mCVWiI6K.js → update-cli-CWNpH8nb.js} +7 -7
  263. package/dist/{update-runner-C9noXbfV.js → update-runner-BSQpjT4r.js} +16 -16
  264. package/dist/{update-runner-DO6RodZW.js → update-runner-CE9BNhOu.js} +1 -1
  265. package/dist/{web-V1uGLepo.js → web-C1PpWeXj.js} +6 -6
  266. package/dist/web-C1Zm__bd.js +127 -0
  267. package/dist/{web-DbdjX4Hg.js → web-C_RqjNux.js} +2 -2
  268. package/dist/{web-DJKitOpu.js → web-DBuATjw6.js} +1 -1
  269. package/dist/{webhooks-cli-c5SaGz4J.js → webhooks-cli-DyIIpN1Q.js} +6 -6
  270. package/dist/{whatsapp-actions-CnjEOFOZ.js → whatsapp-actions-Dmv3vDs5.js} +19 -19
  271. package/dist/{with-timeout-DurSJobr.js → with-timeout-Cf-HNLSj.js} +3 -3
  272. package/dist/{workspace-DWBFoy1G.js → workspace-A5CNJccm.js} +1 -1
  273. package/dist/{workspace-BHfqkuYN.js → workspace-DzeL98px.js} +23 -23
  274. package/dist/{workspace-dirs-BOgNOBjy.js → workspace-dirs-Bevk6X_8.js} +1 -1
  275. package/dist/{wsl-BDRu1-pk.js → wsl-DksyFTBT.js} +2 -2
  276. package/package.json +1 -1
  277. package/dist/control-ui/assets/index-CKSSOzJL.js.map +0 -1
  278. package/dist/register.configure-CaSRlI6h.js +0 -175
  279. package/dist/web-BKrNiKsU.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-D_x1_5v_.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";
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-CJelRKYY.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";
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-BHfqkuYN.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";
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-Kbw8YPsZ.js";
20
- import "./dock-DT8sACcR.js";
21
- import "./model-DmBmzJI6.js";
22
- import "./pi-model-discovery-BZ2RCD_u.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";
23
23
  import { d as hasBinary } from "./frontmatter-C0E8mspC.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";
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";
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-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";
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";
32
32
  import "./logging-5MtSkLpb.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-CXBreqUP.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";
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-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";
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";
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-BXeYv7Iu.js";
47
- import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-C1XBcWue.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";
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-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";
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";
52
52
  import "./diagnostic-session-state-Dx-rJXBO.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";
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";
57
57
  import { i as listCoreToolSections, n as PROFILE_OPTIONS, o as resolveCoreToolProfiles } from "./tool-catalog-uQj_-Ahx.js";
58
- import "./chrome-DuDCGdf-.js";
58
+ import "./chrome-DeZyLFsG.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-B3HDYw4G.js";
61
- import { l as ensureGatewayStartupAuth, u as mergeGatewayTailscaleConfig } from "./server-context-YLHmGfYV.js";
62
- import "./paths-BjoSX1aC.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";
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-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";
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";
69
69
  import { t as movePathToTrash } from "./trash-ClChDUTf.js";
70
- import "./server-middleware-CKSnhiM2.js";
71
- import "./tool-images-CnpAosfi.js";
70
+ import "./server-middleware-DHxnFjIL.js";
71
+ import "./tool-images-CmgHk8xk.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-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";
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";
81
81
  import "./tool-display-0M664wep.js";
82
- import "./api-key-rotation-xfk-b2Sv.js";
82
+ import "./api-key-rotation-Cf7QM5M_.js";
83
83
  import "./proxy-fetch-DEHZt1Tx.js";
84
- import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-DpXMFuAa.js";
84
+ import { a as resolveAgentIdentity, t as createReplyPrefixOptions } from "./reply-prefix-H_GSyyzN.js";
85
85
  import "./chunk-kLPohhLl.js";
86
- import "./markdown-tables-BYHgyUjA.js";
87
- import "./ir-DziC-P4Z.js";
86
+ import "./markdown-tables-DQlQMRGZ.js";
87
+ import "./ir-CEwBpxhC.js";
88
88
  import "./render-CXDO_kgw.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";
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";
92
92
  import "./fetch-BM2hI5N6.js";
93
93
  import "./retry-DwXRBpwv.js";
94
- import { a as readChannelAllowFromStoreSync } from "./pairing-store-BfzlN-z9.js";
94
+ import { a as readChannelAllowFromStoreSync } from "./pairing-store-rFuiIoGM.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-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-BncMg1bn.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";
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-CYucDd3C.js";
102
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-BOgNOBjy.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";
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-DVXe5x1J.js";
106
- import "./server-lifecycle-B23lXM3Y.js";
105
+ import "./tables-BOsRa7CS.js";
106
+ import "./server-lifecycle-HLBzAVdX.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-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";
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";
112
112
  import "./delivery-queue-DhqwvOP8.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";
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";
116
116
  import "./proxy-Dz7xT2Z_.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";
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";
119
119
  import "./prompt-style-CzS6Prvl.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";
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";
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-DoxV5m9v.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";
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";
142
142
  import { t as buildChannelAccountSnapshot } from "./status-rpJtIjm7.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";
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";
146
146
  import "./runtime-guard-lQH3Hjre.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";
147
+ import "./systemd-DRGkJYMb.js";
148
+ import "./service-CFfCS51c.js";
149
+ import "./lifecycle-core-CiAE4s92.js";
150
+ import "./systemd-hints-C5HK00QG.js";
151
151
  import { t as parsePort$1 } from "./parse-port-M1LW5BLv.js";
152
- import { n as addGatewayServiceCommands } from "./daemon-cli-BSy0rtO2.js";
153
- import "./diagnostics-ABz8E7c-.js";
152
+ import { n as addGatewayServiceCommands } from "./daemon-cli-D8I8RTf0.js";
153
+ import "./diagnostics-DR9Z0mN5.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-_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-mS4bWnIW.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-CDEXWvnu.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-BAaREMfO.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-BSlKJa83.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";
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-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-C9noXbfV.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";
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";
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 {}
@@ -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 fs$1.stat(filePath).catch(() => null);
4410
+ const stat = await fsPromises.stat(filePath).catch(() => null);
4411
4411
  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);
4412
+ const lines = (await fsPromises.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 fs$1.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4417
- await fs$1.rename(tmp, filePath);
4416
+ await fsPromises.writeFile(tmp, `${kept.join("\n")}\n`, "utf-8");
4417
+ await fsPromises.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 fs$1.mkdir(path.dirname(resolved), { recursive: true });
4423
- await fs$1.appendFile(resolved, `${JSON.stringify(entry)}\n`, "utf-8");
4422
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
4423
+ await fsPromises.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 fs$1.readFile(path.resolve(filePath), "utf-8").catch(() => "");
4517
+ const raw = await fsPromises.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 fs$1.readdir(runsDir, { withFileTypes: true }).catch(() => [])).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map((entry) => path.join(runsDir, entry.name));
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));
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 fs$1.readFile(filePath, "utf-8").catch(() => ""));
4564
+ return parseAllRunLogEntries(await fsPromises.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 fs$1.realpath(workspaceDir);
9772
+ return await fsPromises.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 fs$1.lstat(candidatePath);
9796
+ candidateLstat = await fsPromises.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 fs$1.realpath(candidatePath);
9816
+ targetReal = await fsPromises.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 fs$1.stat(targetReal);
9835
+ targetStat = await fsPromises.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 fs$1.realpath(candidatePath).catch(() => candidatePath),
9882
+ ioPath: await fsPromises.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([fs$1.stat(filePath), fs$1.lstat(filePath)]);
9888
+ const [stat, lstat] = await Promise.all([fsPromises.stat(filePath), fsPromises.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 fs$1.access(pathname);
9973
+ await fsPromises.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 fs$1.mkdir(resolveSessionTranscriptsDirForAgent(agentId), { recursive: true });
10049
+ await fsPromises.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 fs$1.appendFile(identityPath, lines.join("\n"), "utf-8");
10062
+ await fsPromises.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 fs$1.mkdir(workspace, { recursive: true });
10097
+ await fsPromises.mkdir(workspace, { recursive: true });
10098
10098
  const identityPath = path.join(workspace, DEFAULT_IDENTITY_FILENAME);
10099
- await fs$1.appendFile(identityPath, `\n- Avatar: ${sanitizeIdentityLine(avatar)}\n`, "utf-8");
10099
+ await fsPromises.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 fs$1.mkdir(workspaceDir, { recursive: true });
10223
+ await fsPromises.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 fs$1.stat(file).catch(() => null)) return file;
12516
+ if (await fsPromises.stat(file).catch(() => null)) return file;
12517
12517
  if (!isRollingLogFile(file)) return file;
12518
12518
  const dir = path.dirname(file);
12519
- const entries = await fs$1.readdir(dir, { withFileTypes: true }).catch(() => null);
12519
+ const entries = await fsPromises.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 fs$1.stat(fullPath).catch(() => null);
12523
+ const fileStat = await fsPromises.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 fs$1.stat(params.file).catch(() => null);
12531
+ const stat = await fsPromises.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 fs$1.open(params.file, "r");
12569
+ const handle = await fsPromises.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-yFZiE04b.js");
13616
+ const { handleNodeEvent } = await import("./server-node-events-CyVS1c_n.js");
13617
13617
  const nodeId = client?.connect?.device?.id ?? client?.connect?.client?.id ?? "node";
13618
13618
  await handleNodeEvent({
13619
13619
  deps: context.deps,
@@ -14339,11 +14339,11 @@ async function installLocalMarketSkill(params) {
14339
14339
  candidatePath: sourceDir,
14340
14340
  boundaryLabel: "market templates directory"
14341
14341
  });
14342
- if (!(await fs$1.stat(sourceDir)).isDirectory()) return {
14342
+ if (!(await fsPromises.stat(sourceDir)).isDirectory()) return {
14343
14343
  ok: false,
14344
14344
  message: `Local template "${templateDir}" is not a directory.`
14345
14345
  };
14346
- if (!(await fs$1.stat(sourceSkillPath)).isFile()) return {
14346
+ if (!(await fsPromises.stat(sourceSkillPath)).isFile()) return {
14347
14347
  ok: false,
14348
14348
  message: `Local template "${templateDir}" is missing SKILL.md.`
14349
14349
  };
@@ -14357,13 +14357,13 @@ async function installLocalMarketSkill(params) {
14357
14357
  const workspaceSkillsDir = path.join(workspaceDir, "skills");
14358
14358
  const targetDir = path.join(workspaceSkillsDir, templateDir);
14359
14359
  try {
14360
- await fs$1.mkdir(workspaceSkillsDir, { recursive: true });
14360
+ await fsPromises.mkdir(workspaceSkillsDir, { recursive: true });
14361
14361
  await assertCanonicalPathWithinBase({
14362
14362
  baseDir: workspaceSkillsDir,
14363
14363
  candidatePath: targetDir,
14364
14364
  boundaryLabel: "workspace skills directory"
14365
14365
  });
14366
- await fs$1.cp(sourceDir, targetDir, {
14366
+ await fsPromises.cp(sourceDir, targetDir, {
14367
14367
  recursive: true,
14368
14368
  force: true
14369
14369
  });
@@ -14473,6 +14473,16 @@ async function installClawhubMarketSkill(params, deps) {
14473
14473
 
14474
14474
  //#endregion
14475
14475
  //#region src/gateway/server-methods/skills.ts
14476
+ function matchesInstalledMarketSkill(entry, candidate) {
14477
+ const entrySkillKey = entry.skillKey.trim();
14478
+ const entrySlug = entry.slug?.trim() || "";
14479
+ const candidateSkillKey = candidate.skillKey?.trim() || "";
14480
+ const candidateName = candidate.name?.trim() || "";
14481
+ const candidateDirName = candidate.baseDir ? path.basename(candidate.baseDir) : "";
14482
+ if (candidateSkillKey === entrySkillKey || candidateName === entrySkillKey) return true;
14483
+ if (!entrySlug) return false;
14484
+ return candidateSkillKey === entrySlug || candidateName === entrySlug || candidateDirName === entrySlug;
14485
+ }
14476
14486
  function collectSkillBins(entries) {
14477
14487
  const bins = /* @__PURE__ */ new Set();
14478
14488
  for (const entry of entries) {
@@ -14498,7 +14508,7 @@ function collectSkillBins(entries) {
14498
14508
  return [...bins].toSorted();
14499
14509
  }
14500
14510
  function resolveMarketSkillState(entry, report) {
14501
- const skill = report.skills.find((candidate) => candidate.skillKey === entry.skillKey || candidate.name === entry.skillKey);
14511
+ const skill = report.skills.find((candidate) => matchesInstalledMarketSkill(entry, candidate));
14502
14512
  if (!skill) return {
14503
14513
  installed: false,
14504
14514
  enabled: false,
@@ -14661,7 +14671,7 @@ const skillsHandlers = {
14661
14671
  if (buildWorkspaceSkillStatus(workspaceDir, {
14662
14672
  config: cfg,
14663
14673
  eligibility: { remote: getRemoteSkillEligibility() }
14664
- }).skills.find((candidate) => candidate.skillKey === skillKey || candidate.name === skillKey)) {
14674
+ }).skills.find((candidate) => matchesInstalledMarketSkill(marketEntry, candidate))) {
14665
14675
  respond(true, {
14666
14676
  ok: true,
14667
14677
  skillKey,
@@ -14700,7 +14710,7 @@ const skillsHandlers = {
14700
14710
  if (!buildWorkspaceSkillStatus(workspaceDir, {
14701
14711
  config: cfg,
14702
14712
  eligibility: { remote: getRemoteSkillEligibility() }
14703
- }).skills.find((candidate) => candidate.skillKey === skillKey || candidate.name === skillKey)) {
14713
+ }).skills.find((candidate) => matchesInstalledMarketSkill(marketEntry, candidate))) {
14704
14714
  respond(false, void 0, errorShape(ErrorCodes.UNAVAILABLE, `Install completed but "${skillKey}" is still not discoverable in skills status.`));
14705
14715
  return;
14706
14716
  }
@@ -17197,7 +17207,7 @@ function normalizeAgentPayload(payload) {
17197
17207
  async function startBrowserControlServerIfEnabled() {
17198
17208
  if (isTruthyEnvValue(process.env.OPENCLAW_SKIP_BROWSER_CONTROL_SERVER)) return null;
17199
17209
  const override = process.env.OPENCLAW_BROWSER_CONTROL_MODULE?.trim();
17200
- const mod = override ? await import(override) : await import("./server-Cr92VI8t.js");
17210
+ const mod = override ? await import(override) : await import("./server-C88L-6UW.js");
17201
17211
  const start = typeof mod.startBrowserControlServiceFromConfig === "function" ? mod.startBrowserControlServiceFromConfig : mod.startBrowserControlServerFromConfig;
17202
17212
  const stop = typeof mod.stopBrowserControlService === "function" ? mod.stopBrowserControlService : mod.stopBrowserControlServer;
17203
17213
  if (!start) return null;
@@ -17425,7 +17435,7 @@ async function resolveFileWithinRoot(rootReal, urlPath) {
17425
17435
  if (normalized.endsWith("/")) return await tryOpen(path.posix.join(rel, "index.html"));
17426
17436
  const candidate = path.join(rootReal, rel);
17427
17437
  try {
17428
- const st = await fs$1.lstat(candidate);
17438
+ const st = await fsPromises.lstat(candidate);
17429
17439
  if (st.isSymbolicLink()) return null;
17430
17440
  if (st.isDirectory()) return await tryOpen(path.posix.join(rel, "index.html"));
17431
17441
  } catch {}
@@ -17462,8 +17472,8 @@ async function resolveA2uiRoot() {
17462
17472
  for (const dir of candidates) try {
17463
17473
  const indexPath = path.join(dir, "index.html");
17464
17474
  const bundlePath = path.join(dir, "a2ui.bundle.js");
17465
- await fs$1.stat(indexPath);
17466
- await fs$1.stat(bundlePath);
17475
+ await fsPromises.stat(indexPath);
17476
+ await fsPromises.stat(bundlePath);
17467
17477
  return dir;
17468
17478
  } catch {}
17469
17479
  return null;
@@ -17472,7 +17482,7 @@ async function resolveA2uiRootReal() {
17472
17482
  if (cachedA2uiRootReal !== void 0 && (cachedA2uiRootReal !== null || Date.now() - cachedA2uiResolvedAtMs < A2UI_ROOT_RETRY_NULL_AFTER_MS)) return cachedA2uiRootReal;
17473
17483
  if (!resolvingA2uiRoot) resolvingA2uiRoot = (async () => {
17474
17484
  const root = await resolveA2uiRoot();
17475
- cachedA2uiRootReal = root ? await fs$1.realpath(root) : null;
17485
+ cachedA2uiRootReal = root ? await fsPromises.realpath(root) : null;
17476
17486
  cachedA2uiResolvedAtMs = Date.now();
17477
17487
  resolvingA2uiRoot = null;
17478
17488
  return cachedA2uiRootReal;
@@ -17693,13 +17703,13 @@ function normalizeBasePath(rawPath) {
17693
17703
  }
17694
17704
  async function prepareCanvasRoot(rootDir) {
17695
17705
  await ensureDir(rootDir);
17696
- const rootReal = await fs$1.realpath(rootDir);
17706
+ const rootReal = await fsPromises.realpath(rootDir);
17697
17707
  try {
17698
17708
  const indexPath = path.join(rootReal, "index.html");
17699
- await fs$1.stat(indexPath);
17709
+ await fsPromises.stat(indexPath);
17700
17710
  } catch {
17701
17711
  try {
17702
- await fs$1.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17712
+ await fsPromises.writeFile(path.join(rootReal, "index.html"), defaultIndexHTML(), "utf8");
17703
17713
  } catch {}
17704
17714
  }
17705
17715
  return rootReal;
@@ -20706,7 +20716,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
20706
20716
  }
20707
20717
  async function readLockPayload(lockPath) {
20708
20718
  try {
20709
- const raw = await fs$1.readFile(lockPath, "utf8");
20719
+ const raw = await fsPromises.readFile(lockPath, "utf8");
20710
20720
  const parsed = JSON.parse(raw);
20711
20721
  if (typeof parsed.pid !== "number") return null;
20712
20722
  if (typeof parsed.createdAt !== "string") return null;
@@ -20741,11 +20751,11 @@ async function acquireGatewayLock(opts = {}) {
20741
20751
  const platform = opts.platform ?? process.platform;
20742
20752
  const port = opts.port;
20743
20753
  const { lockPath, configPath } = resolveGatewayLockPath(env);
20744
- await fs$1.mkdir(path.dirname(lockPath), { recursive: true });
20754
+ await fsPromises.mkdir(path.dirname(lockPath), { recursive: true });
20745
20755
  const startedAt = Date.now();
20746
20756
  let lastPayload = null;
20747
20757
  while (Date.now() - startedAt < timeoutMs) try {
20748
- const handle = await fs$1.open(lockPath, "wx");
20758
+ const handle = await fsPromises.open(lockPath, "wx");
20749
20759
  const startTime = platform === "linux" ? readLinuxStartTime(process.pid) : null;
20750
20760
  const payload = {
20751
20761
  pid: process.pid,
@@ -20759,7 +20769,7 @@ async function acquireGatewayLock(opts = {}) {
20759
20769
  configPath,
20760
20770
  release: async () => {
20761
20771
  await handle.close().catch(() => void 0);
20762
- await fs$1.rm(lockPath, { force: true });
20772
+ await fsPromises.rm(lockPath, { force: true });
20763
20773
  }
20764
20774
  };
20765
20775
  } catch (err) {
@@ -20768,7 +20778,7 @@ async function acquireGatewayLock(opts = {}) {
20768
20778
  const ownerPid = lastPayload?.pid;
20769
20779
  const ownerStatus = ownerPid ? await resolveGatewayOwnerStatus(ownerPid, lastPayload, platform, port) : "unknown";
20770
20780
  if (ownerStatus === "dead" && ownerPid) {
20771
- await fs$1.rm(lockPath, { force: true });
20781
+ await fsPromises.rm(lockPath, { force: true });
20772
20782
  continue;
20773
20783
  }
20774
20784
  if (ownerStatus !== "alive") {
@@ -20778,13 +20788,13 @@ async function acquireGatewayLock(opts = {}) {
20778
20788
  stale = Number.isFinite(createdAt) ? Date.now() - createdAt > staleMs : false;
20779
20789
  }
20780
20790
  if (!stale) try {
20781
- const st = await fs$1.stat(lockPath);
20791
+ const st = await fsPromises.stat(lockPath);
20782
20792
  stale = Date.now() - st.mtimeMs > staleMs;
20783
20793
  } catch {
20784
20794
  stale = false;
20785
20795
  }
20786
20796
  if (stale) {
20787
- await fs$1.rm(lockPath, { force: true });
20797
+ await fsPromises.rm(lockPath, { force: true });
20788
20798
  continue;
20789
20799
  }
20790
20800
  }
@@ -22359,7 +22369,7 @@ function attachGatewayWsMessageHandler(params) {
22359
22369
  type: "hello-ok",
22360
22370
  protocol: PROTOCOL_VERSION,
22361
22371
  server: {
22362
- version: resolveRuntimeServiceVersion(process.env, "dev"),
22372
+ version: VERSION,
22363
22373
  connId
22364
22374
  },
22365
22375
  features: {
@@ -23094,7 +23104,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
23094
23104
  if (!minimalTestGateway) cron.start().catch((err) => logCron.error(`failed to start: ${String(err)}`));
23095
23105
  if (!minimalTestGateway) (async () => {
23096
23106
  const { recoverPendingDeliveries } = await import("./delivery-queue-DhqwvOP8.js").then((n) => n.n);
23097
- const { deliverOutboundPayloads } = await import("./deliver-Df8pSQk6.js").then((n) => n.n);
23107
+ const { deliverOutboundPayloads } = await import("./deliver-BRwFsEUd.js").then((n) => n.n);
23098
23108
  await recoverPendingDeliveries({
23099
23109
  deliver: deliverOutboundPayloads,
23100
23110
  log: log.child("delivery-recovery"),