@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
@@ -2,11 +2,11 @@ import { p as theme } from "./globals-B68W7uN8.js";
2
2
  import "./paths-BnKiOk2S.js";
3
3
  import { d as defaultRuntime } from "./subsystem-DjdBljTA.js";
4
4
  import "./boolean-DtWR5bt3.js";
5
- import { M as loadConfig } from "./auth-profiles-D_x1_5v_.js";
5
+ import { M as loadConfig } from "./auth-profiles-CyG9VwU_.js";
6
6
  import { t as formatCliCommand } from "./command-format-CVXyxgq3.js";
7
- import "./agent-scope-CJelRKYY.js";
7
+ import "./agent-scope-CY2-lUIY.js";
8
8
  import "./utils-DIzy5B5o.js";
9
- import "./workspace-BHfqkuYN.js";
9
+ import "./workspace-DzeL98px.js";
10
10
  import "./logger-BJMfryJd.js";
11
11
  import "./exec-CEAvKSx9.js";
12
12
  import "./github-copilot-token-CulJ9J5l.js";
@@ -14,13 +14,13 @@ import "./host-env-security-CJMD0__Z.js";
14
14
  import "./version-CGDNfh5C.js";
15
15
  import "./env-vars-Dw0EwyGP.js";
16
16
  import "./registry-7fg1BnMw.js";
17
- import "./manifest-registry-Kbw8YPsZ.js";
18
- import { r as normalizeChannelId } from "./plugins-vsjS_m58.js";
19
- import "./accounts-BQHz8_1_.js";
17
+ import "./manifest-registry-CBF8Vfz8.js";
18
+ import { r as normalizeChannelId } from "./plugins-C4cYqW07.js";
19
+ import "./accounts-Cv5CUnT4.js";
20
20
  import "./logging-5MtSkLpb.js";
21
- import "./bindings-Hx6KNJeg.js";
22
- import { d as listPairingChannels, f as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-BfzlN-z9.js";
23
- import { t as resolvePairingIdLabel } from "./pairing-labels-CFSUHOmk.js";
21
+ import "./bindings-DGvp9FdD.js";
22
+ import { d as listPairingChannels, f as notifyPairingApproved, n as approveChannelPairingCode, r as listChannelPairingRequests } from "./pairing-store-rFuiIoGM.js";
23
+ import { t as resolvePairingIdLabel } from "./pairing-labels-x4akYNb7.js";
24
24
  import { t as formatDocsLink } from "./links-BDNlbZvM.js";
25
25
  import { t as renderTable } from "./table-CqULNDay.js";
26
26
 
@@ -1,4 +1,4 @@
1
- import { u as getPairingAdapter } from "./pairing-store-BfzlN-z9.js";
1
+ import { u as getPairingAdapter } from "./pairing-store-rFuiIoGM.js";
2
2
 
3
3
  //#region src/pairing/pairing-labels.ts
4
4
  function resolvePairingIdLabel(channel) {
@@ -1,9 +1,9 @@
1
1
  import { g as resolveStateDir, m as resolveOAuthDir, y as resolveRequiredHomeDir } from "./paths-BnKiOk2S.js";
2
- import { tr as withFileLock$1 } from "./auth-profiles-D_x1_5v_.js";
2
+ import { tr as withFileLock$1 } from "./auth-profiles-CyG9VwU_.js";
3
3
  import { h as DEFAULT_ACCOUNT_ID } from "./session-key-BLprDJYq.js";
4
4
  import { y as safeParseJson } from "./utils-DIzy5B5o.js";
5
- import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-vsjS_m58.js";
6
- import { r as writeJsonAtomic } from "./json-files-CuJjdF_0.js";
5
+ import { n as listChannelPlugins, t as getChannelPlugin } from "./plugins-C4cYqW07.js";
6
+ import { r as writeJsonAtomic } from "./json-files-rR19q30D.js";
7
7
  import path from "node:path";
8
8
  import os from "node:os";
9
9
  import fs from "node:fs";
@@ -1,13 +1,13 @@
1
- import { A as isNotFoundPathError, D as resolveBoundaryPath, E as BOUNDARY_PATH_ALIAS_POLICIES } from "./workspace-BHfqkuYN.js";
1
+ import { A as isNotFoundPathError, D as resolveBoundaryPath, E as BOUNDARY_PATH_ALIAS_POLICIES } from "./workspace-DzeL98px.js";
2
2
  import os from "node:os";
3
- import fs from "node:fs/promises";
3
+ import fsPromises from "node:fs/promises";
4
4
 
5
5
  //#region src/infra/hardlink-guards.ts
6
6
  async function assertNoHardlinkedFinalPath(params) {
7
7
  if (params.allowFinalHardlinkForUnlink) return;
8
8
  let stat;
9
9
  try {
10
- stat = await fs.stat(params.filePath);
10
+ stat = await fsPromises.stat(params.filePath);
11
11
  } catch (err) {
12
12
  if (isNotFoundPathError(err)) return;
13
13
  throw err;
@@ -1,4 +1,4 @@
1
- import { j as isPathInside } from "./workspace-BHfqkuYN.js";
1
+ import { j as isPathInside } from "./workspace-DzeL98px.js";
2
2
  import path from "node:path";
3
3
 
4
4
  //#region src/infra/path-safety.ts
@@ -1,8 +1,8 @@
1
1
  import { k as resolvePreferredOpenClawTmpDir } from "./globals-B68W7uN8.js";
2
- import { A as isNotFoundPathError, j as isPathInside } from "./workspace-BHfqkuYN.js";
3
- import { i as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-CJDtl_QU.js";
2
+ import { A as isNotFoundPathError, j as isPathInside } from "./workspace-DzeL98px.js";
3
+ import { i as openFileWithinRoot, t as SafeOpenError } from "./fs-safe-BqJ9egpm.js";
4
4
  import path from "node:path";
5
- import fs from "node:fs/promises";
5
+ import fsPromises from "node:fs/promises";
6
6
 
7
7
  //#region src/browser/form-fields.ts
8
8
  const DEFAULT_FILL_FIELD_TYPE = "text";
@@ -44,28 +44,28 @@ function invalidPath(scopeLabel) {
44
44
  }
45
45
  async function resolveRealPathIfExists(targetPath) {
46
46
  try {
47
- return await fs.realpath(targetPath);
47
+ return await fsPromises.realpath(targetPath);
48
48
  } catch {
49
49
  return;
50
50
  }
51
51
  }
52
52
  async function resolveTrustedRootRealPath(rootDir) {
53
53
  try {
54
- const rootLstat = await fs.lstat(rootDir);
54
+ const rootLstat = await fsPromises.lstat(rootDir);
55
55
  if (!rootLstat.isDirectory() || rootLstat.isSymbolicLink()) return;
56
- return await fs.realpath(rootDir);
56
+ return await fsPromises.realpath(rootDir);
57
57
  } catch {
58
58
  return;
59
59
  }
60
60
  }
61
61
  async function validateCanonicalPathWithinRoot(params) {
62
62
  try {
63
- const candidateLstat = await fs.lstat(params.candidatePath);
63
+ const candidateLstat = await fsPromises.lstat(params.candidatePath);
64
64
  if (candidateLstat.isSymbolicLink()) return "invalid";
65
65
  if (params.expect === "directory" && !candidateLstat.isDirectory()) return "invalid";
66
66
  if (params.expect === "file" && !candidateLstat.isFile()) return "invalid";
67
67
  if (params.expect === "file" && candidateLstat.nlink > 1) return "invalid";
68
- const candidateRealPath = await fs.realpath(params.candidatePath);
68
+ const candidateRealPath = await fsPromises.realpath(params.candidatePath);
69
69
  return isPathInside(params.rootRealPath, candidateRealPath) ? "ok" : "invalid";
70
70
  } catch (err) {
71
71
  return isNotFoundPathError(err) ? "not-found" : "invalid";
@@ -143,7 +143,7 @@ async function resolveCheckedPathsWithinRoot(params) {
143
143
  };
144
144
  if (!rootRealPath || !raw || !path.isAbsolute(raw)) return lexicalPathResult;
145
145
  try {
146
- const resolvedExistingPath = await fs.realpath(raw);
146
+ const resolvedExistingPath = await fsPromises.realpath(raw);
147
147
  const relativePath = path.relative(rootRealPath, resolvedExistingPath);
148
148
  if (!isInRoot(relativePath)) return lexicalPathResult;
149
149
  return {
@@ -24,7 +24,7 @@ import { t as buildChannelAccountBindings } from "./bindings-CsIiIjqN.js";
24
24
  import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-B4pSMBHk.js";
25
25
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-V3fEVmLq.js";
26
26
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CY3Mg7Dp.js";
27
- import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-DXa06hfk.js";
27
+ import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-xY3h9X6N.js";
28
28
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-BO1GQJJf.js";
29
29
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DBPrVBk3.js";
30
30
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-BTexwKe8.js";
@@ -32,8 +32,8 @@ import { $ as readChannelAllowFromStore, A as describeReplyTarget, B as resolveT
32
32
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-DCpyia_K.js";
33
33
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DCIw1y1c.js";
34
34
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-Dl8dSs0T.js";
35
- import { $ as mergeAlsoAllowPolicy, A as isRawApiErrorPayload, B as registerBrowserRoutes, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, G as resolveBrowserControlAuth, H as resolveProfile, I as ensureSandboxWorkspaceForSession, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as resolveSandboxContext, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as expandPolicyWithPluginGroups, R as resolveSandboxRuntimeStatus, S as isBillingAssistantError, T as isContextOverflowError, U as getBridgeAuthForPort, V as resolveBrowserConfig, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIFunctionCallReasoningPairs, et as stripPluginOnlyAllowlist, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as compileGlobPatterns, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as isGoogleModelApi, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as createBrowserRouteContext } from "./pi-embedded-helpers-BErNo2oq.js";
36
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-C6zMSR36.js";
35
+ import { $ as mergeAlsoAllowPolicy, A as isRawApiErrorPayload, B as registerBrowserRoutes, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, G as resolveBrowserControlAuth, H as resolveProfile, I as ensureSandboxWorkspaceForSession, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as resolveSandboxContext, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as expandPolicyWithPluginGroups, R as resolveSandboxRuntimeStatus, S as isBillingAssistantError, T as isContextOverflowError, U as getBridgeAuthForPort, V as resolveBrowserConfig, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIFunctionCallReasoningPairs, et as stripPluginOnlyAllowlist, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as compileGlobPatterns, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as isGoogleModelApi, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as createBrowserRouteContext } from "./pi-embedded-helpers-CMTVhLjq.js";
36
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-CjTE-vWv.js";
37
37
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-DMmr25nW.js";
38
38
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CKjKIhQ3.js";
39
39
  import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-ScShueoF.js";
@@ -49,8 +49,8 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
49
49
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-Cso7-m1w.js";
50
50
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-ffdfBx0b.js";
51
51
  import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-FnAYAFD8.js";
52
- import { C as extractTextFromChatContent, S as isInsideCode, T as ensureOpenClawModelsJson, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as formatToolSummary, w as minimaxUnderstandImage, x as findCodeRegions, y as resolveToolDisplay } from "./image-Dd4lgi4H.js";
53
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-Bx53bUS2.js";
52
+ import { C as extractTextFromChatContent, S as isInsideCode, T as ensureOpenClawModelsJson, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as formatToolSummary, w as minimaxUnderstandImage, x as findCodeRegions, y as resolveToolDisplay } from "./image-DCyaYY2d.js";
53
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-DaoqvWoi.js";
54
54
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch--iXu7oa7.js";
55
55
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CYFFedEH.js";
56
56
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CNvY0vzQ.js";
@@ -95,7 +95,7 @@ import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, Setting
95
95
  import { EdgeTTS } from "node-edge-tts";
96
96
  import { createServer } from "node:http";
97
97
  import { ProxyAgent, fetch as fetch$1 } from "undici";
98
- import WebSocket, { WebSocket as WebSocket$1 } from "ws";
98
+ import WebSocket$1, { WebSocket } from "ws";
99
99
  import { Buffer as Buffer$1 } from "node:buffer";
100
100
  import { createJiti } from "jiti";
101
101
  import AjvPkg from "ajv";
@@ -8165,7 +8165,7 @@ var GatewayClient = class {
8165
8165
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8166
8166
  });
8167
8167
  }
8168
- this.ws = new WebSocket$1(url, wsOptions);
8168
+ this.ws = new WebSocket(url, wsOptions);
8169
8169
  this.ws.on("open", () => {
8170
8170
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8171
8171
  const tlsError = this.validateTlsFingerprint();
@@ -8361,7 +8361,7 @@ var GatewayClient = class {
8361
8361
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8362
8362
  if (this.connectTimer) clearTimeout(this.connectTimer);
8363
8363
  this.connectTimer = setTimeout(() => {
8364
- if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8364
+ if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8365
8365
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8366
8366
  this.ws?.close(1008, "connect challenge timeout");
8367
8367
  }, connectChallengeTimeoutMs);
@@ -8403,7 +8403,7 @@ var GatewayClient = class {
8403
8403
  return null;
8404
8404
  }
8405
8405
  async request(method, params, opts) {
8406
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8406
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8407
8407
  const id = randomUUID();
8408
8408
  const frame = {
8409
8409
  type: "req",
@@ -9683,7 +9683,7 @@ async function routeReply(params) {
9683
9683
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
9684
9684
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
9685
9685
  try {
9686
- const { deliverOutboundPayloads } = await import("./deliver-DXa06hfk.js").then((n) => n.n);
9686
+ const { deliverOutboundPayloads } = await import("./deliver-xY3h9X6N.js").then((n) => n.n);
9687
9687
  const outboundSession = buildOutboundSessionContext({
9688
9688
  cfg,
9689
9689
  agentId: resolvedAgentId,
@@ -14241,7 +14241,7 @@ async function sendTranscriptEcho(params) {
14241
14241
  }
14242
14242
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
14243
14243
  try {
14244
- const { deliverOutboundPayloads } = await import("./deliver-DXa06hfk.js").then((n) => n.n);
14244
+ const { deliverOutboundPayloads } = await import("./deliver-xY3h9X6N.js").then((n) => n.n);
14245
14245
  await deliverOutboundPayloads({
14246
14246
  cfg,
14247
14247
  channel: normalizedChannel,
@@ -21870,16 +21870,38 @@ const handleBashCommand = async (params, allowTextCommands) => {
21870
21870
  //#region src/agents/context.ts
21871
21871
  const ANTHROPIC_1M_MODEL_PREFIXES$1 = ["claude-opus-4", "claude-sonnet-4"];
21872
21872
  const ANTHROPIC_CONTEXT_1M_TOKENS = 1048576;
21873
+ function resolveBareModelId(modelId) {
21874
+ const trimmed = modelId.trim();
21875
+ if (!trimmed) return "";
21876
+ const slash = trimmed.lastIndexOf("/");
21877
+ return slash >= 0 ? trimmed.slice(slash + 1).trim() : trimmed;
21878
+ }
21879
+ function cacheContextWindow(params) {
21880
+ const { cache, bareCache, modelId, contextWindow, preferSmaller } = params;
21881
+ const existing = cache.get(modelId);
21882
+ if (existing === void 0 || (preferSmaller ? contextWindow < existing : contextWindow !== existing)) cache.set(modelId, contextWindow);
21883
+ const bareModelId = resolveBareModelId(modelId);
21884
+ if (!bareModelId) return;
21885
+ const existingBare = bareCache.get(bareModelId);
21886
+ if (existingBare === void 0 || contextWindow < existingBare) bareCache.set(bareModelId, contextWindow);
21887
+ }
21873
21888
  function applyDiscoveredContextWindows(params) {
21889
+ const bareCache = params.bareCache ?? /* @__PURE__ */ new Map();
21874
21890
  for (const model of params.models) {
21875
21891
  if (!model?.id) continue;
21876
21892
  const contextWindow = typeof model.contextWindow === "number" ? Math.trunc(model.contextWindow) : void 0;
21877
21893
  if (!contextWindow || contextWindow <= 0) continue;
21878
- const existing = params.cache.get(model.id);
21879
- if (existing === void 0 || contextWindow < existing) params.cache.set(model.id, contextWindow);
21894
+ cacheContextWindow({
21895
+ cache: params.cache,
21896
+ bareCache,
21897
+ modelId: model.id,
21898
+ contextWindow,
21899
+ preferSmaller: true
21900
+ });
21880
21901
  }
21881
21902
  }
21882
21903
  function applyConfiguredContextWindows(params) {
21904
+ const bareCache = params.bareCache ?? /* @__PURE__ */ new Map();
21883
21905
  const providers = params.modelsConfig?.providers;
21884
21906
  if (!providers || typeof providers !== "object") return;
21885
21907
  for (const provider of Object.values(providers)) {
@@ -21888,11 +21910,18 @@ function applyConfiguredContextWindows(params) {
21888
21910
  const modelId = typeof model?.id === "string" ? model.id : void 0;
21889
21911
  const contextWindow = typeof model?.contextWindow === "number" ? model.contextWindow : void 0;
21890
21912
  if (!modelId || !contextWindow || contextWindow <= 0) continue;
21891
- params.cache.set(modelId, contextWindow);
21913
+ cacheContextWindow({
21914
+ cache: params.cache,
21915
+ bareCache,
21916
+ modelId,
21917
+ contextWindow,
21918
+ preferSmaller: false
21919
+ });
21892
21920
  }
21893
21921
  }
21894
21922
  }
21895
21923
  const MODEL_CACHE = /* @__PURE__ */ new Map();
21924
+ const BARE_MODEL_CACHE = /* @__PURE__ */ new Map();
21896
21925
  let loadPromise = null;
21897
21926
  let configuredWindowsPrimed = false;
21898
21927
  function getCommandPathFromArgv(argv) {
@@ -21923,6 +21952,7 @@ function primeConfiguredContextWindows() {
21923
21952
  const cfg = loadConfig();
21924
21953
  applyConfiguredContextWindows({
21925
21954
  cache: MODEL_CACHE,
21955
+ bareCache: BARE_MODEL_CACHE,
21926
21956
  modelsConfig: cfg.models
21927
21957
  });
21928
21958
  return cfg;
@@ -21944,11 +21974,13 @@ function ensureContextWindowCacheLoaded() {
21944
21974
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
21945
21975
  applyDiscoveredContextWindows({
21946
21976
  cache: MODEL_CACHE,
21977
+ bareCache: BARE_MODEL_CACHE,
21947
21978
  models: typeof modelRegistry.getAvailable === "function" ? modelRegistry.getAvailable() : modelRegistry.getAll()
21948
21979
  });
21949
21980
  } catch {}
21950
21981
  applyConfiguredContextWindows({
21951
21982
  cache: MODEL_CACHE,
21983
+ bareCache: BARE_MODEL_CACHE,
21952
21984
  modelsConfig: cfg.models
21953
21985
  });
21954
21986
  })().catch(() => {});
@@ -21957,7 +21989,11 @@ function ensureContextWindowCacheLoaded() {
21957
21989
  function lookupContextTokens(modelId) {
21958
21990
  if (!modelId) return;
21959
21991
  ensureContextWindowCacheLoaded();
21960
- return MODEL_CACHE.get(modelId);
21992
+ const direct = MODEL_CACHE.get(modelId);
21993
+ if (direct !== void 0) return direct;
21994
+ const bareModelId = resolveBareModelId(modelId);
21995
+ if (!bareModelId) return;
21996
+ return BARE_MODEL_CACHE.get(bareModelId);
21961
21997
  }
21962
21998
  if (!shouldSkipEagerContextWindowWarmup()) ensureContextWindowCacheLoaded();
21963
21999
  function resolveConfiguredModelParams(cfg, provider, model) {
@@ -49695,7 +49731,7 @@ async function deliverSessionMaintenanceWarning(params) {
49695
49731
  return;
49696
49732
  }
49697
49733
  try {
49698
- const { deliverOutboundPayloads } = await import("./deliver-DXa06hfk.js").then((n) => n.n);
49734
+ const { deliverOutboundPayloads } = await import("./deliver-xY3h9X6N.js").then((n) => n.n);
49699
49735
  const outboundSession = buildOutboundSessionContext({
49700
49736
  cfg: params.cfg,
49701
49737
  sessionKey: params.sessionKey
@@ -54637,7 +54673,7 @@ async function describeStickerImage(params) {
54637
54673
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54638
54674
  try {
54639
54675
  const buffer = await fs.readFile(imagePath);
54640
- const { describeImageWithModel } = await import("./image-Dd4lgi4H.js").then((n) => n.n);
54676
+ const { describeImageWithModel } = await import("./image-DCyaYY2d.js").then((n) => n.n);
54641
54677
  return (await describeImageWithModel({
54642
54678
  buffer,
54643
54679
  fileName: "sticker.webp",
@@ -56391,7 +56427,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
56391
56427
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
56392
56428
  let transcript;
56393
56429
  if (needsPreflightTranscription) try {
56394
- const { transcribeFirstAudio } = await import("./audio-preflight-Dd9DDvqB.js");
56430
+ const { transcribeFirstAudio } = await import("./audio-preflight-BWOdDA2n.js");
56395
56431
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
56396
56432
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
56397
56433
  ctx: {
@@ -60933,7 +60969,7 @@ function createOutboundSendDepsFromCliSource(deps) {
60933
60969
  function createDefaultDeps() {
60934
60970
  return {
60935
60971
  sendMessageWhatsApp: async (...args) => {
60936
- const { sendMessageWhatsApp } = await import("./web-V1uGLepo.js");
60972
+ const { sendMessageWhatsApp } = await import("./web-C1PpWeXj.js");
60937
60973
  return await sendMessageWhatsApp(...args);
60938
60974
  },
60939
60975
  sendMessageTelegram: async (...args) => {
@@ -64381,7 +64417,7 @@ function createDiscordGatewayPlugin(params) {
64381
64417
  return super.registerClient(client);
64382
64418
  }
64383
64419
  createWebSocket(url) {
64384
- return new WebSocket(url, { agent: wsAgent });
64420
+ return new WebSocket$1(url, { agent: wsAgent });
64385
64421
  }
64386
64422
  }
64387
64423
  return new ProxyGatewayPlugin();
@@ -76412,7 +76448,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
76412
76448
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
76413
76449
  let preflightTranscript;
76414
76450
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
76415
- const { transcribeFirstAudio } = await import("./audio-preflight-Dd9DDvqB.js");
76451
+ const { transcribeFirstAudio } = await import("./audio-preflight-BWOdDA2n.js");
76416
76452
  preflightTranscript = await transcribeFirstAudio({
76417
76453
  ctx: {
76418
76454
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -79197,7 +79233,7 @@ function loadWebLoginQr() {
79197
79233
  return webLoginQrPromise;
79198
79234
  }
79199
79235
  function loadWebChannel() {
79200
- webChannelPromise ??= import("./web-V1uGLepo.js");
79236
+ webChannelPromise ??= import("./web-C1PpWeXj.js");
79201
79237
  return webChannelPromise;
79202
79238
  }
79203
79239
  function loadWhatsAppActions() {
@@ -87008,7 +87044,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
87008
87044
  * Throws if the connection is not open.
87009
87045
  */
87010
87046
  send(event) {
87011
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
87047
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
87012
87048
  this.ws.send(JSON.stringify(event));
87013
87049
  }
87014
87050
  /**
@@ -87025,7 +87061,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
87025
87061
  * Returns true if the WebSocket is currently open and ready to send.
87026
87062
  */
87027
87063
  isConnected() {
87028
- return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
87064
+ return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
87029
87065
  }
87030
87066
  /**
87031
87067
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -87035,7 +87071,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
87035
87071
  this._cancelRetryTimer();
87036
87072
  if (this.ws) {
87037
87073
  this.ws.removeAllListeners();
87038
- if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
87074
+ if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
87039
87075
  this.ws = null;
87040
87076
  }
87041
87077
  }
@@ -87045,7 +87081,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
87045
87081
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
87046
87082
  return;
87047
87083
  }
87048
- const socket = new WebSocket(this.wsUrl, { headers: {
87084
+ const socket = new WebSocket$1(this.wsUrl, { headers: {
87049
87085
  Authorization: `Bearer ${this.apiKey}`,
87050
87086
  "OpenAI-Beta": "responses-websocket=v1"
87051
87087
  } });
@@ -21866,16 +21866,38 @@ const handleBashCommand = async (params, allowTextCommands) => {
21866
21866
  //#region src/agents/context.ts
21867
21867
  const ANTHROPIC_1M_MODEL_PREFIXES$1 = ["claude-opus-4", "claude-sonnet-4"];
21868
21868
  const ANTHROPIC_CONTEXT_1M_TOKENS = 1048576;
21869
+ function resolveBareModelId(modelId) {
21870
+ const trimmed = modelId.trim();
21871
+ if (!trimmed) return "";
21872
+ const slash = trimmed.lastIndexOf("/");
21873
+ return slash >= 0 ? trimmed.slice(slash + 1).trim() : trimmed;
21874
+ }
21875
+ function cacheContextWindow(params) {
21876
+ const { cache, bareCache, modelId, contextWindow, preferSmaller } = params;
21877
+ const existing = cache.get(modelId);
21878
+ if (existing === void 0 || (preferSmaller ? contextWindow < existing : contextWindow !== existing)) cache.set(modelId, contextWindow);
21879
+ const bareModelId = resolveBareModelId(modelId);
21880
+ if (!bareModelId) return;
21881
+ const existingBare = bareCache.get(bareModelId);
21882
+ if (existingBare === void 0 || contextWindow < existingBare) bareCache.set(bareModelId, contextWindow);
21883
+ }
21869
21884
  function applyDiscoveredContextWindows(params) {
21885
+ const bareCache = params.bareCache ?? /* @__PURE__ */ new Map();
21870
21886
  for (const model of params.models) {
21871
21887
  if (!model?.id) continue;
21872
21888
  const contextWindow = typeof model.contextWindow === "number" ? Math.trunc(model.contextWindow) : void 0;
21873
21889
  if (!contextWindow || contextWindow <= 0) continue;
21874
- const existing = params.cache.get(model.id);
21875
- if (existing === void 0 || contextWindow < existing) params.cache.set(model.id, contextWindow);
21890
+ cacheContextWindow({
21891
+ cache: params.cache,
21892
+ bareCache,
21893
+ modelId: model.id,
21894
+ contextWindow,
21895
+ preferSmaller: true
21896
+ });
21876
21897
  }
21877
21898
  }
21878
21899
  function applyConfiguredContextWindows(params) {
21900
+ const bareCache = params.bareCache ?? /* @__PURE__ */ new Map();
21879
21901
  const providers = params.modelsConfig?.providers;
21880
21902
  if (!providers || typeof providers !== "object") return;
21881
21903
  for (const provider of Object.values(providers)) {
@@ -21884,11 +21906,18 @@ function applyConfiguredContextWindows(params) {
21884
21906
  const modelId = typeof model?.id === "string" ? model.id : void 0;
21885
21907
  const contextWindow = typeof model?.contextWindow === "number" ? model.contextWindow : void 0;
21886
21908
  if (!modelId || !contextWindow || contextWindow <= 0) continue;
21887
- params.cache.set(modelId, contextWindow);
21909
+ cacheContextWindow({
21910
+ cache: params.cache,
21911
+ bareCache,
21912
+ modelId,
21913
+ contextWindow,
21914
+ preferSmaller: false
21915
+ });
21888
21916
  }
21889
21917
  }
21890
21918
  }
21891
21919
  const MODEL_CACHE = /* @__PURE__ */ new Map();
21920
+ const BARE_MODEL_CACHE = /* @__PURE__ */ new Map();
21892
21921
  let loadPromise = null;
21893
21922
  let configuredWindowsPrimed = false;
21894
21923
  function getCommandPathFromArgv(argv) {
@@ -21919,6 +21948,7 @@ function primeConfiguredContextWindows() {
21919
21948
  const cfg = loadConfig();
21920
21949
  applyConfiguredContextWindows({
21921
21950
  cache: MODEL_CACHE,
21951
+ bareCache: BARE_MODEL_CACHE,
21922
21952
  modelsConfig: cfg.models
21923
21953
  });
21924
21954
  return cfg;
@@ -21940,11 +21970,13 @@ function ensureContextWindowCacheLoaded() {
21940
21970
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
21941
21971
  applyDiscoveredContextWindows({
21942
21972
  cache: MODEL_CACHE,
21973
+ bareCache: BARE_MODEL_CACHE,
21943
21974
  models: typeof modelRegistry.getAvailable === "function" ? modelRegistry.getAvailable() : modelRegistry.getAll()
21944
21975
  });
21945
21976
  } catch {}
21946
21977
  applyConfiguredContextWindows({
21947
21978
  cache: MODEL_CACHE,
21979
+ bareCache: BARE_MODEL_CACHE,
21948
21980
  modelsConfig: cfg.models
21949
21981
  });
21950
21982
  })().catch(() => {});
@@ -21953,7 +21985,11 @@ function ensureContextWindowCacheLoaded() {
21953
21985
  function lookupContextTokens(modelId) {
21954
21986
  if (!modelId) return;
21955
21987
  ensureContextWindowCacheLoaded();
21956
- return MODEL_CACHE.get(modelId);
21988
+ const direct = MODEL_CACHE.get(modelId);
21989
+ if (direct !== void 0) return direct;
21990
+ const bareModelId = resolveBareModelId(modelId);
21991
+ if (!bareModelId) return;
21992
+ return BARE_MODEL_CACHE.get(bareModelId);
21957
21993
  }
21958
21994
  if (!shouldSkipEagerContextWindowWarmup()) ensureContextWindowCacheLoaded();
21959
21995
  function resolveConfiguredModelParams(cfg, provider, model) {
@@ -60929,7 +60965,7 @@ function createOutboundSendDepsFromCliSource(deps) {
60929
60965
  function createDefaultDeps() {
60930
60966
  return {
60931
60967
  sendMessageWhatsApp: async (...args) => {
60932
- const { sendMessageWhatsApp } = await import("./web-DJKitOpu.js");
60968
+ const { sendMessageWhatsApp } = await import("./web-DBuATjw6.js");
60933
60969
  return await sendMessageWhatsApp(...args);
60934
60970
  },
60935
60971
  sendMessageTelegram: async (...args) => {
@@ -79187,7 +79223,7 @@ function loadWebLoginQr() {
79187
79223
  return webLoginQrPromise;
79188
79224
  }
79189
79225
  function loadWebChannel() {
79190
- webChannelPromise ??= import("./web-DJKitOpu.js");
79226
+ webChannelPromise ??= import("./web-DBuATjw6.js");
79191
79227
  return webChannelPromise;
79192
79228
  }
79193
79229
  function loadWhatsAppActions() {
@@ -1,10 +1,10 @@
1
1
  import { t as createSubsystemLogger } from "./subsystem-DjdBljTA.js";
2
2
  import { T as truncateUtf16Safe } from "./utils-DIzy5B5o.js";
3
- import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-Tai-w14a.js";
4
- import { t as sanitizeContentBlocksImages } from "./tool-images-CnpAosfi.js";
3
+ import { s as formatSandboxToolPolicyBlockedMessage } from "./sandbox-DI_zIUpo.js";
4
+ import { t as sanitizeContentBlocksImages } from "./tool-images-CmgHk8xk.js";
5
5
  import { s as normalizeThinkLevel } from "./thinking-pYqswKJZ.js";
6
6
  import path from "node:path";
7
- import fs from "node:fs/promises";
7
+ import fsPromises from "node:fs/promises";
8
8
  import { createHash } from "node:crypto";
9
9
 
10
10
  //#region src/agents/pi-embedded-helpers/bootstrap.ts
@@ -102,10 +102,10 @@ function clampToBudget(content, budget) {
102
102
  async function ensureSessionHeader(params) {
103
103
  const file = params.sessionFile;
104
104
  try {
105
- await fs.stat(file);
105
+ await fsPromises.stat(file);
106
106
  return;
107
107
  } catch {}
108
- await fs.mkdir(path.dirname(file), { recursive: true });
108
+ await fsPromises.mkdir(path.dirname(file), { recursive: true });
109
109
  const entry = {
110
110
  type: "session",
111
111
  version: 2,
@@ -113,7 +113,7 @@ async function ensureSessionHeader(params) {
113
113
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
114
114
  cwd: params.cwd
115
115
  };
116
- await fs.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
116
+ await fsPromises.writeFile(file, `${JSON.stringify(entry)}\n`, "utf-8");
117
117
  }
118
118
  function buildBootstrapContextFiles(files, opts) {
119
119
  const maxChars = opts?.maxChars ?? DEFAULT_BOOTSTRAP_MAX_CHARS;
@@ -10,7 +10,7 @@ import { t as parseBooleanValue } from "./boolean-mcn6kL0s.js";
10
10
  import { t as CHANNEL_IDS } from "./registry-CJCkqTms.js";
11
11
  import { t as generateSecureToken } from "./secure-random-CY3Mg7Dp.js";
12
12
  import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-DCpyia_K.js";
13
- import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-C6zMSR36.js";
13
+ import { C as ensureChromeExtensionRelayServer, D as PROFILE_POST_RESTART_WS_TIMEOUT_MS, E as PROFILE_ATTACH_RETRY_TIMEOUT_MS, G as DEFAULT_BROWSER_EVALUATE_ENABLED, H as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, I as resolveWritablePathWithinRoot, J as DEFAULT_OPENCLAW_BROWSER_PROFILE_NAME, K as DEFAULT_OPENCLAW_BROWSER_COLOR, M as DEFAULT_TRACE_DIR, N as DEFAULT_UPLOAD_DIR, O as resolveCdpReachabilityTimeouts, P as resolveExistingPathsWithinRoot, R as normalizeBrowserFormField, T as CDP_JSON_NEW_TIMEOUT_MS, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, V as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, W as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, _ as withBrowserNavigationPolicy, a as resolveOpenClawUserDataDir, b as fetchOk, c as resolveBrowserExecutableForPlatform, f as normalizeCdpWsUrl, g as assertBrowserNavigationResultAllowed, h as assertBrowserNavigationAllowed, i as launchOpenClawChrome, j as DEFAULT_DOWNLOAD_DIR, l as captureScreenshot, m as InvalidBrowserNavigationUrlError, n as isChromeCdpReady, o as stopOpenClawChrome, p as snapshotAria, q as DEFAULT_OPENCLAW_BROWSER_ENABLED, r as isChromeReachable, u as createTargetViaCdp, v as appendCdpPath, w as stopChromeExtensionRelayServer, y as fetchJson, z as isLoopbackHost } from "./chrome-CjTE-vWv.js";
14
14
  import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DMmr25nW.js";
15
15
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CKjKIhQ3.js";
16
16
  import { n as extractErrorCode, r as formatErrorMessage } from "./errors-DEkWxItM.js";
@@ -1192,7 +1192,7 @@ function isModuleNotFoundError(err) {
1192
1192
  }
1193
1193
  async function loadPwAiModule(mode) {
1194
1194
  try {
1195
- return await import("./pw-ai-pkfCxzhV.js");
1195
+ return await import("./pw-ai-DGwA7iCM.js");
1196
1196
  } catch (err) {
1197
1197
  if (mode === "soft") return null;
1198
1198
  if (isModuleNotFoundError(err)) return null;
@@ -3558,7 +3558,7 @@ function createProfileAvailability({ opts, profile, state, getProfileState, setP
3558
3558
  //#region src/browser/server-context.reset.ts
3559
3559
  async function closePlaywrightBrowserConnection() {
3560
3560
  try {
3561
- await (await import("./pw-ai-pkfCxzhV.js")).closePlaywrightBrowserConnection();
3561
+ await (await import("./pw-ai-DGwA7iCM.js")).closePlaywrightBrowserConnection();
3562
3562
  } catch {}
3563
3563
  }
3564
3564
  function createProfileResetOps({ profile, getProfileState, stopRunningBrowser, isHttpReachable, resolveOpenClawUserDataDir }) {
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Kn as ensureAuthProfileStore, hr as normalizeProviderId } from "./auth-profiles-D_x1_5v_.js";
2
+ import { Kn as ensureAuthProfileStore, hr as normalizeProviderId } from "./auth-profiles-CyG9VwU_.js";
3
3
  import path from "node:path";
4
4
  import fs from "node:fs";
5
5
  import * as PiCodingAgent from "@mariozechner/pi-coding-agent";
@@ -1,10 +1,10 @@
1
- import { Nn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./auth-profiles-D_x1_5v_.js";
2
- import { i as resolveAgentConfig } from "./agent-scope-CJelRKYY.js";
1
+ import { Nn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH } from "./auth-profiles-CyG9VwU_.js";
2
+ import { i as resolveAgentConfig } from "./agent-scope-CY2-lUIY.js";
3
3
  import { E as resolveThreadParentSessionKey, c as normalizeAgentId, u as resolveAgentIdFromSessionKey } from "./session-key-BLprDJYq.js";
4
- import { l as normalizeStringEntries, o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-DT8sACcR.js";
4
+ import { l as normalizeStringEntries, o as resolveChannelGroupToolsPolicy, t as getChannelDock } from "./dock-CoclJnwp.js";
5
5
  import { l as normalizeMessageChannel } from "./message-channel-0J6eKf3g.js";
6
- import { S as normalizeToolName, T as matchesAnyGlobPattern, w as compileGlobPatterns, x as expandToolGroups } from "./sandbox-Tai-w14a.js";
7
- import { i as readChannelAllowFromStore } from "./pairing-store-BfzlN-z9.js";
6
+ import { S as normalizeToolName, T as matchesAnyGlobPattern, w as compileGlobPatterns, x as expandToolGroups } from "./sandbox-DI_zIUpo.js";
7
+ import { i as readChannelAllowFromStore } from "./pairing-store-rFuiIoGM.js";
8
8
  import { i as resolveGroupAllowFromSources, r as mergeDmAllowFromSources } from "./allow-from-CrohZBvI.js";
9
9
 
10
10
  //#region src/channels/command-gating.ts