winclaw 2026.3.16 → 2026.3.18

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 (310) hide show
  1. package/dist/{accounts-DLBe7Iqu.js → accounts-CO790By2.js} +1 -1
  2. package/dist/{accounts-3dw6Wt7z.js → accounts-CpVr4v3z.js} +1 -1
  3. package/dist/{accounts-CwcDKrII.js → accounts-D56YQyn8.js} +7 -7
  4. package/dist/{acp-cli-DJYDrN4p.js → acp-cli-C1suYXou.js} +8 -8
  5. package/dist/{agent-scope-BjM05Snq.js → agent-scope-DMzhkNwl.js} +17 -17
  6. package/dist/{agents.config-SJHFouLt.js → agents.config-CxXq-sKs.js} +2 -2
  7. package/dist/{api-key-rotation-DF1fmKqf.js → api-key-rotation-CirBQV5-.js} +1 -1
  8. package/dist/{audio-preflight-DeRje3xF.js → audio-preflight-C8-gU1ab.js} +34 -34
  9. package/dist/{audio-transcription-runner-BU8VYzG0.js → audio-transcription-runner-DJbn-fP-.js} +23 -23
  10. package/dist/{audit-DvYeSXje.js → audit-B0zW_DIt.js} +29 -29
  11. package/dist/{auth-C-QV87h1.js → auth-BXzrYbOm.js} +1 -1
  12. package/dist/{auth-choice-B1JZnOHT.js → auth-choice-BnfQ9_Fs.js} +13 -13
  13. package/dist/{auth-choice-CxCit0ql.js → auth-choice-CaFmZC0x.js} +11 -11
  14. package/dist/{auth-choice.apply-helpers-Br5qWGgq.js → auth-choice.apply-helpers-B5KA46-n.js} +1 -1
  15. package/dist/{auth-token-Cn9QODzQ.js → auth-token-zUe8Mvp4.js} +1 -1
  16. package/dist/{bonjour-discovery-C1WIomge.js → bonjour-discovery-D9sghQjb.js} +1 -1
  17. package/dist/{browser-cli-CZ6R-R2T.js → browser-cli-OE9iDeqa.js} +12 -12
  18. package/dist/build-info.json +3 -3
  19. package/dist/{call-jAJr36nx.js → call-C8L99wK_.js} +10 -10
  20. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  21. package/dist/{channel-account-context-DMSK5tU0.js → channel-account-context-hGeSF90h.js} +5 -5
  22. package/dist/{channel-activity-BY9NbA5P.js → channel-activity-pAfPnsFe.js} +1 -1
  23. package/dist/{channel-options-CdWrfvRn.js → channel-options-KfxiF24L.js} +3 -3
  24. package/dist/{channel-selection-BDtnIRMd.js → channel-selection-DYo85GcI.js} +1 -1
  25. package/dist/{channel-web-SLvzOB5j.js → channel-web-D9RC09YD.js} +16 -16
  26. package/dist/{channels-cli-C31DXRqg.js → channels-cli-CauZyprt.js} +92 -92
  27. package/dist/{channels-status-issues-BRENJAql.js → channels-status-issues-Cm2fEB2I.js} +1 -1
  28. package/dist/{chrome-gS-mqtxv.js → chrome-CmfmicCj.js} +4 -4
  29. package/dist/{clawbot-cli-4XKqFn_L.js → clawbot-cli-DW-gbSm9.js} +11 -11
  30. package/dist/cli/daemon-cli.js +1 -1
  31. package/dist/{cli-BDlx0GUm.js → cli-BXfS6qH4.js} +72 -72
  32. package/dist/{client-D_fo1kMD.js → client-2l5l_bWZ.js} +2 -2
  33. package/dist/{command-secret-targets-D7iBOOeC.js → command-secret-targets-BcHicQgO.js} +4 -4
  34. package/dist/{commands-d2key1Fi.js → commands-BwQQ7zsb.js} +1 -1
  35. package/dist/{commands-registry-DoX1u5EK.js → commands-registry-kZrnrPW-.js} +3 -3
  36. package/dist/{completion-cli-mZttziur.js → completion-cli-nWflWwec.js} +12 -12
  37. package/dist/{config-cli-Blrff9_M.js → config-cli-CgQuzX4m.js} +7 -7
  38. package/dist/{config-guard-DpyHzZgr.js → config-guard-CvRJKs5I.js} +16 -16
  39. package/dist/{config-validation-Bt4XebQP.js → config-validation-COqZI-3k.js} +3 -3
  40. package/dist/{configure-CgriDtEu.js → configure-Yz1uRYAS.js} +17 -17
  41. package/dist/{control-ui-assets-6YLru-BI.js → control-ui-assets-CiqT4mr0.js} +1 -1
  42. package/dist/{cron-cli-pu0xNwsh.js → cron-cli-C2KrIadm.js} +11 -11
  43. package/dist/{daemon-cli-BGmhSUqA.js → daemon-cli-BZy9_0qR.js} +16 -16
  44. package/dist/{daemon-install-DfiW_6PW.js → daemon-install-CXEpgnB7.js} +4 -4
  45. package/dist/{daemon-install-helpers-Bl9cC3_Q.js → daemon-install-helpers-Bv4Qh6_r.js} +11 -11
  46. package/dist/{deliver-DtuFQmP0.js → deliver-Cm4_BUT9.js} +7 -7
  47. package/dist/deliver-runtime-bxa4rgnd.js +61 -0
  48. package/dist/deps-send-discord.runtime-DzG7vr7G.js +36 -0
  49. package/dist/deps-send-imessage.runtime-B16Ik-ma.js +35 -0
  50. package/dist/deps-send-signal.runtime-pNZUY-kK.js +34 -0
  51. package/dist/deps-send-slack.runtime-BoxG0Kyp.js +32 -0
  52. package/dist/{deps-send-telegram.runtime-vb0X3z6l.js → deps-send-telegram.runtime-DdJwe8vB.js} +16 -16
  53. package/dist/deps-send-whatsapp.runtime-Bgy2Wad4.js +118 -0
  54. package/dist/{devices-cli-CwEZdH3y.js → devices-cli-CsqL8oBY.js} +8 -8
  55. package/dist/{diagnostic-ZmgAleHj.js → diagnostic-Dmvr-EE7.js} +1 -1
  56. package/dist/{diagnostics-DL2w3coK.js → diagnostics-CVtJiuf5.js} +5 -5
  57. package/dist/{directory-cli-H75fTu05.js → directory-cli-MLZQmRpd.js} +7 -7
  58. package/dist/{dns-cli-CNvoAap-.js → dns-cli-CpRrV_iL.js} +5 -5
  59. package/dist/{dock-CU6afu_e.js → dock-DxyPdXq3.js} +4 -4
  60. package/dist/{docs-cli-tBPHkJcK.js → docs-cli-QUOcRevY.js} +4 -4
  61. package/dist/{doctor-completion-DsiThFl_.js → doctor-completion-CfJmmmmt.js} +2 -2
  62. package/dist/{doctor-config-flow-D_TTmWrS.js → doctor-config-flow-Bay1hXCR.js} +15 -15
  63. package/dist/{enable-BZdtz_oh.js → enable-DNUS3RyN.js} +1 -1
  64. package/dist/{exec-approvals-allowlist-C2KhlwHt.js → exec-approvals-allowlist-IIQJrrMK.js} +1 -1
  65. package/dist/{exec-approvals-cli-b0A1oefC.js → exec-approvals-cli-Bf91-ubw.js} +16 -16
  66. package/dist/{exec-safe-bin-runtime-policy-BLhaJ0EJ.js → exec-safe-bin-runtime-policy-DS35E0fx.js} +2 -2
  67. package/dist/{fetch-guard-CkHmJoEM.js → fetch-guard-BFaEFa50.js} +1 -1
  68. package/dist/{fs-safe-DDV_eBKQ.js → fs-safe-BYADg7n_.js} +24 -24
  69. package/dist/{gateway-cli--KGMZVfh.js → gateway-cli-wRl5czGj.js} +153 -153
  70. package/dist/{gateway-rpc-BAoGLm2y.js → gateway-rpc-BOJU6fOg.js} +1 -1
  71. package/dist/{health-BehFSuSQ.js → health-B5HHHsz7.js} +11 -11
  72. package/dist/{hooks-cli-CMDJpb_D.js → hooks-cli-CNcPXkyH.js} +80 -80
  73. package/dist/{hooks-status-jr72HwQw.js → hooks-status-C9sGL6HN.js} +1 -1
  74. package/dist/{image-BxZvMdUY.js → image-DTDQdHxB.js} +5 -5
  75. package/dist/{image-ops-CARXq-EU.js → image-ops-h79c4OIk.js} +10 -10
  76. package/dist/image-runtime-CzHFyAkE.js +55 -0
  77. package/dist/index.js +82 -82
  78. package/dist/{inspect-BmlkTbnz.js → inspect-DTfysg9O.js} +4 -4
  79. package/dist/{install-safe-path-D9OGWJOR.js → install-safe-path-DJYLJZtW.js} +25 -25
  80. package/dist/{installs-38JZgJ6W.js → installs-BuBPByL6.js} +9 -9
  81. package/dist/{ipv4-C977uOtV.js → ipv4-BN-OWG9I.js} +1 -1
  82. package/dist/{ir-DfwM6XrK.js → ir-BJBrcb_I.js} +8 -8
  83. package/dist/{issue-format-DTdRjgDJ.js → issue-format-CfzQEgtp.js} +1 -1
  84. package/dist/{json-files-CtksvmNE.js → json-files-Cxp4hRet.js} +8 -8
  85. package/dist/{lifecycle-core-DuQrE_wt.js → lifecycle-core-m4lfwkQ8.js} +5 -5
  86. package/dist/{local-roots-DUfgcCfd.js → local-roots-uJjC65ik.js} +3 -3
  87. package/dist/{login-BFRZk0oo.js → login-ByFtyCOK.js} +3 -3
  88. package/dist/{login-qr-DGurTWW8.js → login-qr-CeajpTHd.js} +6 -6
  89. package/dist/{logs-cli-BYxhWRmy.js → logs-cli-ByRj1nnI.js} +9 -9
  90. package/dist/{manager-D5x4oqR9.js → manager-BUltB-Vm.js} +14 -14
  91. package/dist/{manager-runtime-BboXoSzN.js → manager-runtime-CO-52VpC.js} +9 -9
  92. package/dist/{manifest-registry-Bc4-t_4c.js → manifest-registry-Dd_jTCh5.js} +1 -1
  93. package/dist/{memory-cli-ElCzQm5k.js → memory-cli-kBkdTCc7.js} +12 -12
  94. package/dist/{model-Cuyx9xlP.js → model-BA6Yax7x.js} +2 -2
  95. package/dist/{model-catalog-CfgDRJ71.js → model-catalog-BZ_SScDX.js} +3 -3
  96. package/dist/{model-picker-BrFxAc93.js → model-picker-DKzZv2JV.js} +4 -4
  97. package/dist/{model-selection-sZzgGuDI.js → model-selection-DMALgc-K.js} +16 -16
  98. package/dist/{models-cli-DbUiVw-b.js → models-cli-DA829TDw.js} +81 -81
  99. package/dist/{models-config-BY5CO6fC.js → models-config-CIsVY8hB.js} +6 -6
  100. package/dist/{node-cli-CD5bswZ6.js → node-cli-DIZ52VxS.js} +33 -33
  101. package/dist/{node-command-policy-CO4I99O1.js → node-command-policy-DRgKhxFr.js} +1 -1
  102. package/dist/{node-service-BccUWEHj.js → node-service-CI_ehT_R.js} +1 -1
  103. package/dist/{nodes-cli-l9GnY0xj.js → nodes-cli--eehfyio.js} +16 -16
  104. package/dist/{nodes-screen-xW9Lnkve.js → nodes-screen-KqNspuet.js} +7 -7
  105. package/dist/{npm-pack-install-DASAU22E.js → npm-pack-install-CiwNCfAW.js} +18 -18
  106. package/dist/{npm-resolution-D4qRZ8Gv.js → npm-resolution-6kF0AVL4.js} +4 -4
  107. package/dist/{onboard-BHdwshlM.js → onboard-DZp-aIrb.js} +6 -6
  108. package/dist/{onboard-channels-BEN6kpOJ.js → onboard-channels-CUXxPALE.js} +21 -21
  109. package/dist/{onboard-custom-DDb13qwV.js → onboard-custom-BlzXztLQ.js} +4 -4
  110. package/dist/{onboard-helpers-CX6ZDoPJ.js → onboard-helpers-DIvL4qNZ.js} +10 -10
  111. package/dist/{onboard-hooks-BgRE55Er.js → onboard-hooks-Cnalkue1.js} +4 -4
  112. package/dist/{onboard-remote-B1pCGXRE.js → onboard-remote-Ca4s7kWr.js} +4 -4
  113. package/dist/{onboard-skills-I9aUNuIp.js → onboard-skills-BHFTVPy5.js} +4 -4
  114. package/dist/{onboarding-C6U-xBFq.js → onboarding-bD4AvAyM.js} +14 -14
  115. package/dist/{onboarding.finalize-DfjvZ9OR.js → onboarding.finalize-iu06B7uV.js} +85 -85
  116. package/dist/{onboarding.gateway-config-B0gMI3E8.js → onboarding.gateway-config-BS0ZnbNK.js} +18 -18
  117. package/dist/{onboarding.secret-input-BGR0Nsbp.js → onboarding.secret-input-CCXqzUKD.js} +1 -1
  118. package/dist/{openai-model-default-Dxtb9ifJ.js → openai-model-default-CLkLITwY.js} +2 -2
  119. package/dist/{outbound-Bw2Ie-Pl.js → outbound-7SyTz8A1.js} +3 -3
  120. package/dist/{outbound-attachment-CrOocr8F.js → outbound-attachment-BbYK1pbD.js} +2 -2
  121. package/dist/{pairing-cli-CEqUQLFR.js → pairing-cli-CNUZJ5Pe.js} +8 -8
  122. package/dist/{pairing-labels-Bt187jaW.js → pairing-labels-Blr3N8M9.js} +1 -1
  123. package/dist/{pairing-store-DYBSZwK1.js → pairing-store-CO5T6xRl.js} +3 -3
  124. package/dist/{path-alias-guards-BS80tJKY.js → path-alias-guards-ByVIlbty.js} +3 -3
  125. package/dist/{path-safety-C_tWSbsj.js → path-safety-BzqN_jT0.js} +1 -1
  126. package/dist/{paths-DxdR1V10.js → paths-Dtw-Ctab.js} +9 -9
  127. package/dist/{pi-embedded-helpers-COBH2wUD.js → pi-embedded-helpers-ByLe6_4t.js} +6 -6
  128. package/dist/{pi-model-discovery-Dt2-gEPi.js → pi-model-discovery-QWKBpM19.js} +1 -1
  129. package/dist/{pi-model-discovery-runtime-CB7-ijgl.js → pi-model-discovery-runtime-DALJPKqG.js} +5 -5
  130. package/dist/{pi-tools.before-tool-call.runtime-CIJb-5Ya.js → pi-tools.before-tool-call.runtime-BarBBIAA.js} +5 -5
  131. package/dist/{pi-tools.policy-Cdy3Az5h.js → pi-tools.policy-CDC0KLfN.js} +5 -5
  132. package/dist/{plugin-auto-enable-BSZNVoA0.js → plugin-auto-enable-DzUsrf7B.js} +3 -3
  133. package/dist/{plugin-registry-CBthTgTt.js → plugin-registry-Dd1PDylO.js} +3 -3
  134. package/dist/plugin-sdk/feishu.js +2 -2
  135. package/dist/plugin-sdk/googlechat.js +2 -2
  136. package/dist/plugin-sdk/index.js +50 -50
  137. package/dist/plugin-sdk/matrix.js +2 -2
  138. package/dist/plugin-sdk/signal.js +2 -2
  139. package/dist/plugin-sdk/telegram.js +2 -2
  140. package/dist/plugin-sdk/twitch.js +2 -2
  141. package/dist/{plugins-BciWft73.js → plugins-BUdux3tD.js} +2 -2
  142. package/dist/{plugins-cli-DCcGwy7F.js → plugins-cli-C_OirXP_.js} +82 -82
  143. package/dist/{ports-CEwPkhlu.js → ports-DXt_AVSk.js} +1 -1
  144. package/dist/{ports-CCEnJo8a.js → ports-Dc3sky5h.js} +2 -2
  145. package/dist/{probe-BiWGmrZT.js → probe-CRMvvOZh.js} +2 -2
  146. package/dist/{program-context-D33fHL9b.js → program-context-YwMSXcLF.js} +41 -41
  147. package/dist/{prompt-select-styled-BQs9yQ-l.js → prompt-select-styled-DYZoWj3J.js} +40 -40
  148. package/dist/{provider-auth-helpers-hF8rOMzv.js → provider-auth-helpers-DY-WQ3Xr.js} +5 -5
  149. package/dist/{proxy-env-BkeMGpvY.js → proxy-env-CxZg3TjS.js} +1 -1
  150. package/dist/{push-apns-HdYa_Wuo.js → push-apns-DW7A5ryf.js} +5 -5
  151. package/dist/{pw-ai-DAgE9fdw.js → pw-ai-DvBIj8uc.js} +18 -18
  152. package/dist/{qmd-manager-DxnM6CIh.js → qmd-manager-BOGbQ8Gm.js} +20 -20
  153. package/dist/{qr-cli-Bba2kjl6.js → qr-cli-1AVyCYZF.js} +2 -2
  154. package/dist/{query-expansion-DPBe9T2H.js → query-expansion-Bug5CgbP.js} +12 -12
  155. package/dist/{redact-snapshot-ADLUcTmt.js → redact-snapshot-DA0TkG6R.js} +1 -1
  156. package/dist/{register.agent-Dk1fj6Yh.js → register.agent-D0ztMQtC.js} +97 -97
  157. package/dist/register.configure-n0C5wCmh.js +164 -0
  158. package/dist/{register.maintenance-DtgXaFrt.js → register.maintenance-CGE5Dlfu.js} +93 -93
  159. package/dist/{register.message-CpFUaWNH.js → register.message-BntJZN63.js} +73 -73
  160. package/dist/{register.onboard-DIRkHPpF.js → register.onboard-Co8fZ0PX.js} +18 -18
  161. package/dist/{register.setup-7DJgLItX.js → register.setup-BNtwRYOQ.js} +21 -21
  162. package/dist/{register.status-health-sessions-_YLjSW2a.js → register.status-health-sessions-CJcDVI_G.js} +87 -87
  163. package/dist/{reply-CgJoL4Ke.js → reply-BOdfdXaW.js} +149 -149
  164. package/dist/{rpc-BOeQe8QZ.js → rpc-DNTNQMVe.js} +1 -1
  165. package/dist/{runtime-DPBfRhDH.js → runtime-BNo0gba9.js} +3 -3
  166. package/dist/{runtime-config-collectors-CIBAYklr.js → runtime-config-collectors-Dr2Me501.js} +1 -1
  167. package/dist/{runtime-whatsapp-login.runtime-CmYfPtKZ.js → runtime-whatsapp-login.runtime-DsJ8QuoE.js} +7 -7
  168. package/dist/{runtime-whatsapp-outbound.runtime-Cbdxc1KK.js → runtime-whatsapp-outbound.runtime-CKVlTCIW.js} +15 -15
  169. package/dist/{sandbox-BEAOQQ5z.js → sandbox-C259T0mP.js} +18 -18
  170. package/dist/{sandbox-cli-B8zdFgkX.js → sandbox-cli-CbE47-Qs.js} +25 -25
  171. package/dist/{secrets-cli-DdsPzV0e.js → secrets-cli-sBX8YAod.js} +11 -11
  172. package/dist/{security-cli-XQx9Wvqd.js → security-cli-DbI9mZdE.js} +43 -43
  173. package/dist/{send-BaRTvSCp.js → send-BOLNh7SN.js} +11 -11
  174. package/dist/{send-BKbTlabc.js → send-Bg11STl9.js} +6 -6
  175. package/dist/{send-DQGGCAbX.js → send-CPamGgrh.js} +8 -8
  176. package/dist/{send-BN7TRXw_.js → send-DCZ1Z4sw.js} +5 -5
  177. package/dist/{send-DGH2w0wT.js → send-hAggyJ1h.js} +4 -4
  178. package/dist/{server-context-CmXEOTqC.js → server-context-B1sy4EZS.js} +12 -12
  179. package/dist/{server-DZJZNmNe.js → server-lSQTXpf2.js} +20 -20
  180. package/dist/{server-lifecycle-6EWajNMN.js → server-lifecycle-BHvC0TZP.js} +2 -2
  181. package/dist/{server-middleware-DQRuZDG_.js → server-middleware-DJroQh0U.js} +1 -1
  182. package/dist/{server-node-events-OrrVFv8o.js → server-node-events-BSS5RRN4.js} +73 -73
  183. package/dist/{service-BqlGUtYA.js → service-C01k3kw9.js} +15 -15
  184. package/dist/{session-CyPL2g_-.js → session-DJ2SCpyK.js} +1 -1
  185. package/dist/{sessions-B4vm2bHb.js → sessions-DtgNloM9.js} +15 -15
  186. package/dist/{shared-TLfIKoBr.js → shared-BTzqEz3-.js} +3 -3
  187. package/dist/{shared-DKOQnjoY.js → shared-CGCmWQI2.js} +1 -1
  188. package/dist/{skill-commands-QFSeglAp.js → skill-commands-DtSZM6N8.js} +5 -5
  189. package/dist/{skill-scanner-Cxf7IqSj.js → skill-scanner-CqspV0GZ.js} +6 -6
  190. package/dist/{skills-D2dkcKi5.js → skills-B3SRvP-E.js} +3 -3
  191. package/dist/{skills-cli-F1w2JhZd.js → skills-cli-Dh7iOOJQ.js} +5 -5
  192. package/dist/{skills-install-BetwaUqU.js → skills-install-D3tB49Fd.js} +6 -6
  193. package/dist/{skills-status-D8Nj34Fr.js → skills-status-Cko-3Ij4.js} +1 -1
  194. package/dist/{slash-commands.runtime-PR8E5Nh6.js → slash-commands.runtime-CRKiUuAl.js} +11 -11
  195. package/dist/slash-dispatch.runtime-BvGQRNv2.js +113 -0
  196. package/dist/{slash-skill-commands.runtime-DbcI7eXk.js → slash-skill-commands.runtime-vbQc7q-2.js} +15 -15
  197. package/dist/{status-BGAnHxKw.js → status-C8uqSDQL.js} +27 -27
  198. package/dist/{status.update-DUWVI4vj.js → status.update-D2PbaOqF.js} +2 -2
  199. package/dist/{store-agwqDWjp.js → store-BLTV3TiR.js} +5 -5
  200. package/dist/subagent-registry-runtime-Gr6avCdO.js +113 -0
  201. package/dist/{system-cli-Boo7idD9.js → system-cli-CGLTVSX4.js} +9 -9
  202. package/dist/{system-run-command-DQBUnDtQ.js → system-run-command-DRc-Pbim.js} +1 -1
  203. package/dist/{systemd-CaLRjLzI.js → systemd-BRwwr66q.js} +9 -9
  204. package/dist/{systemd-hints-8DdspQzG.js → systemd-hints-DaBVWXg4.js} +6 -6
  205. package/dist/{systemd-linger-BljEXZqb.js → systemd-linger-COb7MqOK.js} +1 -1
  206. package/dist/{tables-HXZXsBf9.js → tables-Jkk8fgdn.js} +1 -1
  207. package/dist/{tailnet-CwWtFpCl.js → tailnet-BSNItVDW.js} +1 -1
  208. package/dist/{plugin-sdk/target-errors-DHX90ooV.js → target-errors-C2Iup3up.js} +4 -4
  209. package/dist/{tool-images-D5XpYJWd.js → tool-images-Hu02Mrxq.js} +1 -1
  210. package/dist/{tui-C1B5UCZ7.js → tui-Bhy2Icd2.js} +6 -6
  211. package/dist/{tui-cli-CEKbHrVl.js → tui-cli-w3Kru54-.js} +32 -32
  212. package/dist/{update-BJcKcpwE.js → update-BWk0tS94.js} +3 -3
  213. package/dist/{update-cli-CqJgGsj7.js → update-cli-DD7VkvxQ.js} +103 -103
  214. package/dist/{update-runner-Hd3Gyd0K.js → update-runner-CSNYUJgH.js} +16 -16
  215. package/dist/web-Cbp2_dAJ.js +117 -0
  216. package/dist/{webhooks-cli-Ba5YBjM4.js → webhooks-cli-CEIlhs6l.js} +6 -6
  217. package/dist/{whatsapp-actions-CbAzl2Ef.js → whatsapp-actions-D0adbtDv.js} +17 -17
  218. package/dist/{winclaw-root-ExuHY0xi.js → winclaw-root-Dz4DRGIq.js} +8 -8
  219. package/dist/{with-timeout-r4hGcNco.js → with-timeout-CDYLG_JO.js} +3 -3
  220. package/dist/{workspace-BroUINli.js → workspace-c01QF_kP.js} +1 -1
  221. package/dist/{workspace-dirs-Cbc2KiPi.js → workspace-dirs---CM3Zs7.js} +1 -1
  222. package/dist/{ws-jOuSOOrR.js → ws-qa_Mt4Jq.js} +2 -2
  223. package/dist/{wsl-BTnv5ELc.js → wsl-Bv3MAjkn.js} +2 -2
  224. package/package.json +1 -1
  225. package/dist/deliver-runtime-CKBsj5Re.js +0 -61
  226. package/dist/deps-send-discord.runtime-BbR7HUu8.js +0 -36
  227. package/dist/deps-send-imessage.runtime-BzxnQinP.js +0 -35
  228. package/dist/deps-send-signal.runtime-Do2Uotqh.js +0 -34
  229. package/dist/deps-send-slack.runtime-TLCYOV2R.js +0 -32
  230. package/dist/deps-send-whatsapp.runtime-973hlb-d.js +0 -118
  231. package/dist/image-runtime-Dc-5quLU.js +0 -55
  232. package/dist/plugin-sdk/accounts-Bb5SWI1a.js +0 -46
  233. package/dist/plugin-sdk/accounts-C8ouK3T4.js +0 -288
  234. package/dist/plugin-sdk/accounts-iNxXh_zC.js +0 -35
  235. package/dist/plugin-sdk/active-listener-DZxf4qXs.js +0 -50
  236. package/dist/plugin-sdk/api-key-rotation-C-JV66uu.js +0 -181
  237. package/dist/plugin-sdk/audio-preflight-D85ZwT1C.js +0 -69
  238. package/dist/plugin-sdk/audio-transcription-runner-DKZV7mSA.js +0 -2176
  239. package/dist/plugin-sdk/audit-membership-runtime-CxP2fdgS.js +0 -58
  240. package/dist/plugin-sdk/channel-activity-B3mxXOyk.js +0 -94
  241. package/dist/plugin-sdk/channel-web-D90hKZdh.js +0 -2256
  242. package/dist/plugin-sdk/chrome-DOcNUPY5.js +0 -2415
  243. package/dist/plugin-sdk/commands-registry-_u5uYayG.js +0 -1125
  244. package/dist/plugin-sdk/config-DgBITxw8.js +0 -17957
  245. package/dist/plugin-sdk/deliver-B3nd7Yi7.js +0 -1719
  246. package/dist/plugin-sdk/deliver-runtime-fmY1FJEB.js +0 -32
  247. package/dist/plugin-sdk/deps-send-discord.runtime-Dx6g4YpI.js +0 -23
  248. package/dist/plugin-sdk/deps-send-imessage.runtime-BHbkwqmP.js +0 -22
  249. package/dist/plugin-sdk/deps-send-signal.runtime-DWqgaXVz.js +0 -21
  250. package/dist/plugin-sdk/deps-send-slack.runtime-CkQplnYm.js +0 -19
  251. package/dist/plugin-sdk/deps-send-telegram.runtime-DgpG9nnp.js +0 -24
  252. package/dist/plugin-sdk/deps-send-whatsapp.runtime-9HJ3xBHm.js +0 -57
  253. package/dist/plugin-sdk/diagnostic-DaodZSU4.js +0 -319
  254. package/dist/plugin-sdk/errors-D7zDdduc.js +0 -54
  255. package/dist/plugin-sdk/fetch-guard-CpjJUzbC.js +0 -156
  256. package/dist/plugin-sdk/fs-safe-ynDN1AOr.js +0 -352
  257. package/dist/plugin-sdk/image-DjurGZVX.js +0 -2314
  258. package/dist/plugin-sdk/image-ops-BYRi8Fyc.js +0 -584
  259. package/dist/plugin-sdk/image-runtime-B6plrrBM.js +0 -25
  260. package/dist/plugin-sdk/ir-BKz-tz6e.js +0 -1296
  261. package/dist/plugin-sdk/local-roots-CSAWMhCG.js +0 -186
  262. package/dist/plugin-sdk/logger-cN8CgKqt.js +0 -1163
  263. package/dist/plugin-sdk/login-CBxXcX0e.js +0 -57
  264. package/dist/plugin-sdk/login-qr-B-ltrPu8.js +0 -320
  265. package/dist/plugin-sdk/manager-runtime-DpqYZgTX.js +0 -15
  266. package/dist/plugin-sdk/manager-s1VuT7nE.js +0 -3929
  267. package/dist/plugin-sdk/outbound-U75V1TDj.js +0 -212
  268. package/dist/plugin-sdk/outbound-attachment-CIYwDm5I.js +0 -19
  269. package/dist/plugin-sdk/path-alias-guards-WXu8eYZ3.js +0 -43
  270. package/dist/plugin-sdk/paths-Brta7ydd.js +0 -166
  271. package/dist/plugin-sdk/pi-embedded-helpers-aHxmGqPa.js +0 -9627
  272. package/dist/plugin-sdk/pi-model-discovery-Daro1rXH.js +0 -134
  273. package/dist/plugin-sdk/pi-model-discovery-runtime-Bsuon2Ya.js +0 -8
  274. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CvMJn1nm.js +0 -354
  275. package/dist/plugin-sdk/plugins-CEyDJxGL.js +0 -864
  276. package/dist/plugin-sdk/proxy-fetch-iSQrNgP-.js +0 -38
  277. package/dist/plugin-sdk/pw-ai-Bu9xWLzv.js +0 -1938
  278. package/dist/plugin-sdk/qmd-manager-A7m15SeJ.js +0 -1448
  279. package/dist/plugin-sdk/query-expansion-DngcFbkC.js +0 -1011
  280. package/dist/plugin-sdk/redact-CIb5VTTO.js +0 -319
  281. package/dist/plugin-sdk/reply-puZkwbXP.js +0 -100166
  282. package/dist/plugin-sdk/resolve-outbound-target-DsY2VMNK.js +0 -40
  283. package/dist/plugin-sdk/run-with-concurrency-BlfAoChN.js +0 -1994
  284. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-Cag17ePS.js +0 -10
  285. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BsFAJa9O.js +0 -19
  286. package/dist/plugin-sdk/send-BHrMFgyB.js +0 -503
  287. package/dist/plugin-sdk/send-CU3d2q4n.js +0 -3135
  288. package/dist/plugin-sdk/send-CWxQ4uNT.js +0 -414
  289. package/dist/plugin-sdk/send-CxOWd6tg.js +0 -2587
  290. package/dist/plugin-sdk/send-DVKUnRRx.js +0 -540
  291. package/dist/plugin-sdk/session-CPEE9Abi.js +0 -169
  292. package/dist/plugin-sdk/skill-commands-DIznvAVl.js +0 -353
  293. package/dist/plugin-sdk/skills-BXV5R4NV.js +0 -1428
  294. package/dist/plugin-sdk/slash-commands.runtime-OYVeqt4Q.js +0 -13
  295. package/dist/plugin-sdk/slash-dispatch.runtime-kXTai5_i.js +0 -52
  296. package/dist/plugin-sdk/slash-skill-commands.runtime-bqPJNQON.js +0 -16
  297. package/dist/plugin-sdk/ssrf-BP6sfREo.js +0 -202
  298. package/dist/plugin-sdk/store-BWzXeAH3.js +0 -81
  299. package/dist/plugin-sdk/subagent-registry-runtime-BhvfDlM7.js +0 -52
  300. package/dist/plugin-sdk/tables-BAVh5Omo.js +0 -55
  301. package/dist/plugin-sdk/thinking-VCK882z5.js +0 -1206
  302. package/dist/plugin-sdk/tokens-B-D1YRTV.js +0 -52
  303. package/dist/plugin-sdk/tool-images-BA9cWkGK.js +0 -274
  304. package/dist/plugin-sdk/web-DxIVmGxu.js +0 -56
  305. package/dist/plugin-sdk/whatsapp-actions-dqkS6ARr.js +0 -80
  306. package/dist/register.configure-BGWLlNth.js +0 -164
  307. package/dist/slash-dispatch.runtime-DhEuAv5j.js +0 -113
  308. package/dist/subagent-registry-runtime-CIEv4AYa.js +0 -113
  309. package/dist/target-errors-CBmJmSTT.js +0 -195
  310. package/dist/web-CPaj9GNO.js +0 -117
@@ -1,5 +1,5 @@
1
1
  import { _ as normalizeAccountId } from "./session-key-CIXZm7v4.js";
2
- import { v as createAccountListHelpers, y as resolveAccountEntry } from "./accounts-CwcDKrII.js";
2
+ import { v as createAccountListHelpers, y as resolveAccountEntry } from "./accounts-D56YQyn8.js";
3
3
 
4
4
  //#region src/signal/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("signal");
@@ -1,5 +1,5 @@
1
1
  import { _ as normalizeAccountId } from "./session-key-CIXZm7v4.js";
2
- import { v as createAccountListHelpers, y as resolveAccountEntry } from "./accounts-CwcDKrII.js";
2
+ import { v as createAccountListHelpers, y as resolveAccountEntry } from "./accounts-D56YQyn8.js";
3
3
 
4
4
  //#region src/imessage/accounts.ts
5
5
  const { listAccountIds, resolveDefaultAccountId } = createAccountListHelpers("imessage");
@@ -6,7 +6,7 @@ import { _ as normalizeAccountId, g as DEFAULT_ACCOUNT_ID, v as normalizeOptiona
6
6
  import { t as formatCliCommand } from "./command-format-BU9fEGrc.js";
7
7
  import fs from "node:fs";
8
8
  import path from "node:path";
9
- import fs$1 from "node:fs/promises";
9
+ import fsPromises from "node:fs/promises";
10
10
 
11
11
  //#region src/routing/account-lookup.ts
12
12
  function resolveAccountEntry(accounts, accountId) {
@@ -105,14 +105,14 @@ async function webAuthExists(authDir = resolveDefaultWebAuthDir()) {
105
105
  maybeRestoreCredsFromBackup(resolvedAuthDir);
106
106
  const credsPath = resolveWebCredsPath(resolvedAuthDir);
107
107
  try {
108
- await fs$1.access(resolvedAuthDir);
108
+ await fsPromises.access(resolvedAuthDir);
109
109
  } catch {
110
110
  return false;
111
111
  }
112
112
  try {
113
- const stats = await fs$1.stat(credsPath);
113
+ const stats = await fsPromises.stat(credsPath);
114
114
  if (!stats.isFile() || stats.size <= 1) return false;
115
- const raw = await fs$1.readFile(credsPath, "utf-8");
115
+ const raw = await fsPromises.readFile(credsPath, "utf-8");
116
116
  JSON.parse(raw);
117
117
  return true;
118
118
  } catch {
@@ -120,7 +120,7 @@ async function webAuthExists(authDir = resolveDefaultWebAuthDir()) {
120
120
  }
121
121
  }
122
122
  async function clearLegacyBaileysAuthState(authDir) {
123
- const entries = await fs$1.readdir(authDir, { withFileTypes: true });
123
+ const entries = await fsPromises.readdir(authDir, { withFileTypes: true });
124
124
  const shouldDelete = (name) => {
125
125
  if (name === "oauth.json") return false;
126
126
  if (name === "creds.json" || name === "creds.json.bak") return true;
@@ -130,7 +130,7 @@ async function clearLegacyBaileysAuthState(authDir) {
130
130
  await Promise.all(entries.map(async (entry) => {
131
131
  if (!entry.isFile()) return;
132
132
  if (!shouldDelete(entry.name)) return;
133
- await fs$1.rm(path.join(authDir, entry.name), { force: true });
133
+ await fsPromises.rm(path.join(authDir, entry.name), { force: true });
134
134
  }));
135
135
  }
136
136
  async function logoutWeb(params) {
@@ -141,7 +141,7 @@ async function logoutWeb(params) {
141
141
  return false;
142
142
  }
143
143
  if (params.isLegacyAuthDir) await clearLegacyBaileysAuthState(resolvedAuthDir);
144
- else await fs$1.rm(resolvedAuthDir, {
144
+ else await fsPromises.rm(resolvedAuthDir, {
145
145
  recursive: true,
146
146
  force: true
147
147
  });
@@ -1,26 +1,26 @@
1
1
  import "./paths-D358qawm.js";
2
2
  import { p as theme } from "./globals-mxjDvm3x.js";
3
3
  import { S as shortenHomePath, y as resolveUserPath } from "./utils-D2mWpsBR.js";
4
- import "./agent-scope-BjM05Snq.js";
4
+ import "./agent-scope-DMzhkNwl.js";
5
5
  import { d as defaultRuntime } from "./subsystem-notCuUgs.js";
6
- import "./winclaw-root-ExuHY0xi.js";
6
+ import "./winclaw-root-Dz4DRGIq.js";
7
7
  import "./logger-B82a6bdc.js";
8
8
  import "./exec-BQMqbouM.js";
9
- import { $t as loadConfig } from "./model-selection-sZzgGuDI.js";
9
+ import { $t as loadConfig } from "./model-selection-DMALgc-K.js";
10
10
  import "./registry-IKNezRAG.js";
11
11
  import "./github-copilot-token-CnG2OsWc.js";
12
12
  import "./boolean-C6Pbt2Ue.js";
13
13
  import "./env-oWPhHfdK.js";
14
14
  import "./host-env-security-Zh9nrO6T.js";
15
15
  import { r as VERSION } from "./env-vars-BCyi4V6_.js";
16
- import "./manifest-registry-Bc4-t_4c.js";
16
+ import "./manifest-registry-Dd_jTCh5.js";
17
17
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-C9d1B5oJ.js";
18
18
  import { r as isKnownCoreToolId } from "./tool-catalog-BOZwge8c.js";
19
- import "./tailnet-CwWtFpCl.js";
20
- import "./ws-jOuSOOrR.js";
19
+ import "./tailnet-BSNItVDW.js";
20
+ import "./ws-qa_Mt4Jq.js";
21
21
  import { n as resolveWindowsSpawnProgram, t as materializeWindowsSpawnProgram } from "./windows-spawn-i7m7Lua5.js";
22
- import { t as GatewayClient } from "./client-D_fo1kMD.js";
23
- import { s as resolveGatewayCredentialsWithSecretInputs, t as buildGatewayConnectionDetails } from "./call-jAJr36nx.js";
22
+ import { t as GatewayClient } from "./client-2l5l_bWZ.js";
23
+ import { s as resolveGatewayCredentialsWithSecretInputs, t as buildGatewayConnectionDetails } from "./call-C8L99wK_.js";
24
24
  import "./pairing-token-CLjS0Ugp.js";
25
25
  import { t as formatDocsLink } from "./links-UVNtH_G6.js";
26
26
  import { t as isMainModule } from "./is-main-TPRg8r91.js";
@@ -2,13 +2,13 @@ import { g as resolveStateDir, y as resolveRequiredHomeDir } from "./paths-D358q
2
2
  import { h as pathExists, y as resolveUserPath } from "./utils-D2mWpsBR.js";
3
3
  import { t as createSubsystemLogger } from "./subsystem-notCuUgs.js";
4
4
  import { E as parseAgentSessionKey, T as isSubagentSessionKey, c as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, w as isCronSessionKey } from "./session-key-CIXZm7v4.js";
5
- import { _ as normalizeSkillFilter, i as openBoundaryFile, t as resolveWinClawPackageRoot } from "./winclaw-root-ExuHY0xi.js";
5
+ import { _ as normalizeSkillFilter, i as openBoundaryFile, t as resolveWinClawPackageRoot } from "./winclaw-root-Dz4DRGIq.js";
6
6
  import { t as runCommandWithTimeout } from "./exec-BQMqbouM.js";
7
7
  import { fileURLToPath } from "node:url";
8
8
  import fs from "node:fs";
9
9
  import os from "node:os";
10
10
  import path from "node:path";
11
- import fs$1 from "node:fs/promises";
11
+ import fsPromises from "node:fs/promises";
12
12
 
13
13
  //#region src/config/model-input.ts
14
14
  function resolveAgentModelPrimaryValue(model) {
@@ -150,7 +150,7 @@ async function loadTemplate(name) {
150
150
  const templateDir = await resolveWorkspaceTemplateDir();
151
151
  const templatePath = path.join(templateDir, name);
152
152
  try {
153
- return stripFrontMatter(await fs$1.readFile(templatePath, "utf-8"));
153
+ return stripFrontMatter(await fsPromises.readFile(templatePath, "utf-8"));
154
154
  } catch {
155
155
  throw new Error(`Missing workspace template: ${name} (${templatePath}). Ensure docs/reference/templates are packaged.`);
156
156
  }
@@ -165,7 +165,7 @@ async function loadTemplate(name) {
165
165
  }
166
166
  async function writeFileIfMissing(filePath, content) {
167
167
  try {
168
- await fs$1.writeFile(filePath, content, {
168
+ await fsPromises.writeFile(filePath, content, {
169
169
  encoding: "utf-8",
170
170
  flag: "wx"
171
171
  });
@@ -177,7 +177,7 @@ async function writeFileIfMissing(filePath, content) {
177
177
  }
178
178
  async function fileExists(filePath) {
179
179
  try {
180
- await fs$1.access(filePath);
180
+ await fsPromises.access(filePath);
181
181
  return true;
182
182
  } catch {
183
183
  return false;
@@ -201,7 +201,7 @@ function parseWorkspaceOnboardingState(raw) {
201
201
  }
202
202
  async function readWorkspaceOnboardingState(statePath) {
203
203
  try {
204
- return parseWorkspaceOnboardingState(await fs$1.readFile(statePath, "utf-8")) ?? { version: WORKSPACE_STATE_VERSION };
204
+ return parseWorkspaceOnboardingState(await fsPromises.readFile(statePath, "utf-8")) ?? { version: WORKSPACE_STATE_VERSION };
205
205
  } catch (err) {
206
206
  if (err.code !== "ENOENT") throw err;
207
207
  return { version: WORKSPACE_STATE_VERSION };
@@ -215,20 +215,20 @@ async function isWorkspaceOnboardingCompleted(dir) {
215
215
  return typeof state.onboardingCompletedAt === "string" && state.onboardingCompletedAt.trim().length > 0;
216
216
  }
217
217
  async function writeWorkspaceOnboardingState(statePath, state) {
218
- await fs$1.mkdir(path.dirname(statePath), { recursive: true });
218
+ await fsPromises.mkdir(path.dirname(statePath), { recursive: true });
219
219
  const payload = `${JSON.stringify(state, null, 2)}\n`;
220
220
  const tmpPath = `${statePath}.tmp-${process.pid}-${Date.now().toString(36)}`;
221
221
  try {
222
- await fs$1.writeFile(tmpPath, payload, { encoding: "utf-8" });
223
- await fs$1.rename(tmpPath, statePath);
222
+ await fsPromises.writeFile(tmpPath, payload, { encoding: "utf-8" });
223
+ await fsPromises.rename(tmpPath, statePath);
224
224
  } catch (err) {
225
- await fs$1.unlink(tmpPath).catch(() => {});
225
+ await fsPromises.unlink(tmpPath).catch(() => {});
226
226
  throw err;
227
227
  }
228
228
  }
229
229
  async function hasGitRepo(dir) {
230
230
  try {
231
- await fs$1.stat(path.join(dir, ".git"));
231
+ await fsPromises.stat(path.join(dir, ".git"));
232
232
  return true;
233
233
  } catch {
234
234
  return false;
@@ -258,7 +258,7 @@ async function ensureGitRepo(dir, isBrandNewWorkspace) {
258
258
  }
259
259
  async function ensureAgentWorkspace(params) {
260
260
  const dir = resolveUserPath(params?.dir?.trim() ? params.dir.trim() : DEFAULT_AGENT_WORKSPACE_DIR);
261
- await fs$1.mkdir(dir, { recursive: true });
261
+ await fsPromises.mkdir(dir, { recursive: true });
262
262
  if (!params?.ensureBootstrapFiles) return { dir };
263
263
  const agentsPath = path.join(dir, DEFAULT_AGENTS_FILENAME);
264
264
  const soulPath = path.join(dir, DEFAULT_SOUL_FILENAME);
@@ -285,7 +285,7 @@ async function ensureAgentWorkspace(params) {
285
285
  const paths = [...templatePaths, ...userContentPaths];
286
286
  return (await Promise.all(paths.map(async (p) => {
287
287
  try {
288
- await fs$1.access(p);
288
+ await fsPromises.access(p);
289
289
  return true;
290
290
  } catch {
291
291
  return false;
@@ -318,7 +318,7 @@ async function ensureAgentWorkspace(params) {
318
318
  if (!state.bootstrapSeededAt && bootstrapExists) markState({ bootstrapSeededAt: nowIso() });
319
319
  if (!state.onboardingCompletedAt && state.bootstrapSeededAt && !bootstrapExists) markState({ onboardingCompletedAt: nowIso() });
320
320
  if (!state.bootstrapSeededAt && !state.onboardingCompletedAt && !bootstrapExists) {
321
- const [identityContent, userContent] = await Promise.all([fs$1.readFile(identityPath, "utf-8"), fs$1.readFile(userPath, "utf-8")]);
321
+ const [identityContent, userContent] = await Promise.all([fsPromises.readFile(identityPath, "utf-8"), fsPromises.readFile(userPath, "utf-8")]);
322
322
  const hasUserContent = await (async () => {
323
323
  const indicators = [
324
324
  path.join(dir, "memory"),
@@ -326,7 +326,7 @@ async function ensureAgentWorkspace(params) {
326
326
  path.join(dir, ".git")
327
327
  ];
328
328
  for (const indicator of indicators) try {
329
- await fs$1.access(indicator);
329
+ await fsPromises.access(indicator);
330
330
  return true;
331
331
  } catch {}
332
332
  return false;
@@ -357,7 +357,7 @@ async function resolveMemoryBootstrapEntries(resolvedDir) {
357
357
  for (const name of candidates) {
358
358
  const filePath = path.join(resolvedDir, name);
359
359
  try {
360
- await fs$1.access(filePath);
360
+ await fsPromises.access(filePath);
361
361
  entries.push({
362
362
  name,
363
363
  filePath
@@ -370,7 +370,7 @@ async function resolveMemoryBootstrapEntries(resolvedDir) {
370
370
  for (const entry of entries) {
371
371
  let key = entry.filePath;
372
372
  try {
373
- key = await fs$1.realpath(entry.filePath);
373
+ key = await fsPromises.realpath(entry.filePath);
374
374
  } catch {}
375
375
  if (seen.has(key)) continue;
376
376
  seen.add(key);
@@ -1,5 +1,5 @@
1
- import { in as loadAgentIdentityFromWorkspace, rn as identityHasValues } from "./reply-CgJoL4Ke.js";
2
- import { a as resolveAgentDir, d as resolveDefaultAgentId, n as listAgentEntries, u as resolveAgentWorkspaceDir } from "./agent-scope-BjM05Snq.js";
1
+ import { in as loadAgentIdentityFromWorkspace, rn as identityHasValues } from "./reply-BOdfdXaW.js";
2
+ import { a as resolveAgentDir, d as resolveDefaultAgentId, n as listAgentEntries, u as resolveAgentWorkspaceDir } from "./agent-scope-DMzhkNwl.js";
3
3
  import { c as normalizeAgentId } from "./session-key-CIXZm7v4.js";
4
4
 
5
5
  //#region src/commands/agents.config.ts
@@ -1,4 +1,4 @@
1
- import { d as normalizeProviderId } from "./model-selection-sZzgGuDI.js";
1
+ import { d as normalizeProviderId } from "./model-selection-DMALgc-K.js";
2
2
  import { r as formatErrorMessage } from "./errors-B7K-Wp-z.js";
3
3
 
4
4
  //#region src/infra/gemini-auth.ts
@@ -2,60 +2,60 @@ import "./paths-D358qawm.js";
2
2
  import { a as logVerbose, c as shouldLogVerbose } from "./globals-mxjDvm3x.js";
3
3
  import "./utils-D2mWpsBR.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import "./agent-scope-BjM05Snq.js";
5
+ import "./agent-scope-DMzhkNwl.js";
6
6
  import "./subsystem-notCuUgs.js";
7
- import "./winclaw-root-ExuHY0xi.js";
7
+ import "./winclaw-root-Dz4DRGIq.js";
8
8
  import "./logger-B82a6bdc.js";
9
9
  import "./exec-BQMqbouM.js";
10
- import "./model-selection-sZzgGuDI.js";
10
+ import "./model-selection-DMALgc-K.js";
11
11
  import "./registry-IKNezRAG.js";
12
12
  import "./github-copilot-token-CnG2OsWc.js";
13
13
  import "./boolean-C6Pbt2Ue.js";
14
14
  import "./env-oWPhHfdK.js";
15
15
  import "./host-env-security-Zh9nrO6T.js";
16
16
  import "./env-vars-BCyi4V6_.js";
17
- import "./manifest-registry-Bc4-t_4c.js";
18
- import "./dock-CU6afu_e.js";
17
+ import "./manifest-registry-Dd_jTCh5.js";
18
+ import "./dock-DxyPdXq3.js";
19
19
  import "./message-channel-C9d1B5oJ.js";
20
- import "./plugins-BciWft73.js";
21
- import "./sessions-B4vm2bHb.js";
22
- import { d as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-BU8VYzG0.js";
23
- import "./image-BxZvMdUY.js";
24
- import "./models-config-BY5CO6fC.js";
25
- import "./pi-embedded-helpers-COBH2wUD.js";
26
- import "./sandbox-BEAOQQ5z.js";
20
+ import "./plugins-BUdux3tD.js";
21
+ import "./sessions-DtgNloM9.js";
22
+ import { d as isAudioAttachment, i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, t as runAudioTranscription } from "./audio-transcription-runner-DJbn-fP-.js";
23
+ import "./image-DTDQdHxB.js";
24
+ import "./models-config-CIsVY8hB.js";
25
+ import "./pi-embedded-helpers-ByLe6_4t.js";
26
+ import "./sandbox-C259T0mP.js";
27
27
  import "./tool-catalog-BOZwge8c.js";
28
- import "./chrome-gS-mqtxv.js";
28
+ import "./chrome-CmfmicCj.js";
29
29
  import "./tailscale-DZ6XAzwZ.js";
30
- import "./tailnet-CwWtFpCl.js";
31
- import "./ws-jOuSOOrR.js";
32
- import "./auth-C-QV87h1.js";
33
- import "./server-context-CmXEOTqC.js";
30
+ import "./tailnet-BSNItVDW.js";
31
+ import "./ws-qa_Mt4Jq.js";
32
+ import "./auth-BXzrYbOm.js";
33
+ import "./server-context-B1sy4EZS.js";
34
34
  import "./frontmatter-DKeT_3NA.js";
35
- import "./skills-D2dkcKi5.js";
36
- import "./path-alias-guards-BS80tJKY.js";
37
- import "./paths-DxdR1V10.js";
35
+ import "./skills-B3SRvP-E.js";
36
+ import "./path-alias-guards-ByVIlbty.js";
37
+ import "./paths-Dtw-Ctab.js";
38
38
  import "./redact-BDmMjK3z.js";
39
39
  import "./errors-B7K-Wp-z.js";
40
- import "./fs-safe-DDV_eBKQ.js";
41
- import "./proxy-env-BkeMGpvY.js";
42
- import "./image-ops-CARXq-EU.js";
43
- import "./store-agwqDWjp.js";
44
- import "./ports-CCEnJo8a.js";
40
+ import "./fs-safe-BYADg7n_.js";
41
+ import "./proxy-env-CxZg3TjS.js";
42
+ import "./image-ops-h79c4OIk.js";
43
+ import "./store-BLTV3TiR.js";
44
+ import "./ports-Dc3sky5h.js";
45
45
  import "./trash-CyMeC5UH.js";
46
- import "./server-middleware-DQRuZDG_.js";
47
- import "./accounts-CwcDKrII.js";
48
- import "./accounts-3dw6Wt7z.js";
46
+ import "./server-middleware-DJroQh0U.js";
47
+ import "./accounts-D56YQyn8.js";
48
+ import "./accounts-CpVr4v3z.js";
49
49
  import "./logging-xYH6GmRT.js";
50
- import "./accounts-DLBe7Iqu.js";
50
+ import "./accounts-CO790By2.js";
51
51
  import "./paths-DU7PeCrd.js";
52
52
  import "./chat-envelope-COWebMOw.js";
53
- import "./tool-images-D5XpYJWd.js";
53
+ import "./tool-images-Hu02Mrxq.js";
54
54
  import "./tool-display-bEFG-U4B.js";
55
- import "./fetch-guard-CkHmJoEM.js";
56
- import "./api-key-rotation-DF1fmKqf.js";
57
- import "./local-roots-DUfgcCfd.js";
58
- import "./model-catalog-CfgDRJ71.js";
55
+ import "./fetch-guard-BFaEFa50.js";
56
+ import "./api-key-rotation-CirBQV5-.js";
57
+ import "./local-roots-uJjC65ik.js";
58
+ import "./model-catalog-BZ_SScDX.js";
59
59
  import "./proxy-fetch-zulQ_7aB.js";
60
60
 
61
61
  //#region src/media-understanding/audio-preflight.ts
@@ -1,23 +1,23 @@
1
1
  import { a as logVerbose, c as shouldLogVerbose, k as resolvePreferredWinClawTmpDir } from "./globals-mxjDvm3x.js";
2
- import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue } from "./agent-scope-BjM05Snq.js";
2
+ import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue } from "./agent-scope-DMzhkNwl.js";
3
3
  import { n as runExec } from "./exec-BQMqbouM.js";
4
- import { A as normalizeGoogleModelId, d as normalizeProviderId, dn as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, fn as isInboundPathAllowed, mn as resolveIMessageAttachmentRoots, nt as requireApiKey, pn as mergeInboundPathRoots, rt as resolveApiKeyForProvider } from "./model-selection-sZzgGuDI.js";
5
- import { j as normalizeChatType } from "./plugins-BciWft73.js";
6
- import { t as describeImageWithModel } from "./image-BxZvMdUY.js";
4
+ import { A as normalizeGoogleModelId, d as normalizeProviderId, dn as DEFAULT_IMESSAGE_ATTACHMENT_ROOTS, fn as isInboundPathAllowed, mn as resolveIMessageAttachmentRoots, nt as requireApiKey, pn as mergeInboundPathRoots, rt as resolveApiKeyForProvider } from "./model-selection-DMALgc-K.js";
5
+ import { j as normalizeChatType } from "./plugins-BUdux3tD.js";
6
+ import { t as describeImageWithModel } from "./image-DTDQdHxB.js";
7
7
  import { i as formatUncaughtError, n as extractErrorCode, s as readErrorName, t as collectErrorGraphCandidates } from "./errors-B7K-Wp-z.js";
8
- import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-CARXq-EU.js";
8
+ import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-h79c4OIk.js";
9
9
  import { n as fetchWithTimeout } from "./fetch-timeout-CHeFTo4J.js";
10
- import { t as fetchWithSsrFGuard } from "./fetch-guard-CkHmJoEM.js";
11
- import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-DF1fmKqf.js";
12
- import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError } from "./local-roots-DUfgcCfd.js";
13
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-CfgDRJ71.js";
10
+ import { t as fetchWithSsrFGuard } from "./fetch-guard-BFaEFa50.js";
11
+ import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-CirBQV5-.js";
12
+ import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError } from "./local-roots-uJjC65ik.js";
13
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BZ_SScDX.js";
14
14
  import { n as resolveProxyFetchFromEnv } from "./proxy-fetch-zulQ_7aB.js";
15
15
  import process$1 from "node:process";
16
16
  import { fileURLToPath } from "node:url";
17
17
  import { constants } from "node:fs";
18
18
  import os from "node:os";
19
19
  import path from "node:path";
20
- import fs$1 from "node:fs/promises";
20
+ import fsPromises from "node:fs/promises";
21
21
  import crypto from "node:crypto";
22
22
 
23
23
  //#region src/auto-reply/templating.ts
@@ -971,7 +971,7 @@ var MediaAttachmentCache = class {
971
971
  const size = await this.ensureLocalStat(entry);
972
972
  if (entry.resolvedPath) {
973
973
  if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
974
- const buffer = await fs$1.readFile(entry.resolvedPath);
974
+ const buffer = await fsPromises.readFile(entry.resolvedPath);
975
975
  entry.buffer = buffer;
976
976
  entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
977
977
  buffer,
@@ -1041,10 +1041,10 @@ var MediaAttachmentCache = class {
1041
1041
  prefix: "winclaw-media",
1042
1042
  extension: path.extname(bufferResult.fileName || "") || ""
1043
1043
  });
1044
- await fs$1.writeFile(tmpPath, bufferResult.buffer);
1044
+ await fsPromises.writeFile(tmpPath, bufferResult.buffer);
1045
1045
  entry.tempPath = tmpPath;
1046
1046
  entry.tempCleanup = async () => {
1047
- await fs$1.unlink(tmpPath).catch(() => {});
1047
+ await fsPromises.unlink(tmpPath).catch(() => {});
1048
1048
  };
1049
1049
  return {
1050
1050
  path: tmpPath,
@@ -1091,12 +1091,12 @@ var MediaAttachmentCache = class {
1091
1091
  if (entry.statSize !== void 0) return entry.statSize;
1092
1092
  try {
1093
1093
  const currentPath = entry.resolvedPath;
1094
- const stat = await fs$1.stat(currentPath);
1094
+ const stat = await fsPromises.stat(currentPath);
1095
1095
  if (!stat.isFile()) {
1096
1096
  entry.resolvedPath = void 0;
1097
1097
  return;
1098
1098
  }
1099
- const canonicalPath = await fs$1.realpath(currentPath).catch(() => currentPath);
1099
+ const canonicalPath = await fsPromises.realpath(currentPath).catch(() => currentPath);
1100
1100
  if (!isInboundPathAllowed({
1101
1101
  filePath: canonicalPath,
1102
1102
  roots: await this.getCanonicalLocalPathRoots()
@@ -1118,7 +1118,7 @@ var MediaAttachmentCache = class {
1118
1118
  if (this.canonicalLocalPathRoots) return await this.canonicalLocalPathRoots;
1119
1119
  this.canonicalLocalPathRoots = (async () => mergeInboundPathRoots(this.localPathRoots, await Promise.all(this.localPathRoots.map(async (root) => {
1120
1120
  if (root.includes("*")) return root;
1121
- return await fs$1.realpath(root).catch(() => root);
1121
+ return await fsPromises.realpath(root).catch(() => root);
1122
1122
  }))))();
1123
1123
  return await this.canonicalLocalPathRoots;
1124
1124
  }
@@ -1129,7 +1129,7 @@ var MediaAttachmentCache = class {
1129
1129
  async function fileExists(filePath) {
1130
1130
  if (!filePath) return false;
1131
1131
  try {
1132
- await fs$1.stat(filePath);
1132
+ await fsPromises.stat(filePath);
1133
1133
  return true;
1134
1134
  } catch {
1135
1135
  return false;
@@ -1237,7 +1237,7 @@ async function resolveCliOutput(params) {
1237
1237
  const commandId = commandBase(params.command);
1238
1238
  const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : commandId === "parakeet-mlx" ? resolveParakeetOutputPath(params.args, params.mediaPath) : null;
1239
1239
  if (fileOutput && await fileExists(fileOutput)) try {
1240
- const content = await fs$1.readFile(fileOutput, "utf8");
1240
+ const content = await fsPromises.readFile(fileOutput, "utf8");
1241
1241
  if (content.trim()) return content.trim();
1242
1242
  } catch {}
1243
1243
  if (commandId === "gemini") {
@@ -1546,10 +1546,10 @@ async function runCliEntry(params) {
1546
1546
  timeoutMs
1547
1547
  });
1548
1548
  if (capability === "audio") assertMinAudioSize({
1549
- size: (await fs$1.stat(pathResult.path)).size,
1549
+ size: (await fsPromises.stat(pathResult.path)).size,
1550
1550
  attachmentIndex: params.attachmentIndex
1551
1551
  });
1552
- const outputDir = await fs$1.mkdtemp(path.join(resolvePreferredWinClawTmpDir(), "winclaw-media-cli-"));
1552
+ const outputDir = await fsPromises.mkdtemp(path.join(resolvePreferredWinClawTmpDir(), "winclaw-media-cli-"));
1553
1553
  const mediaPath = pathResult.path;
1554
1554
  const outputBase = path.join(outputDir, path.parse(mediaPath).name);
1555
1555
  const templCtx = {
@@ -1583,7 +1583,7 @@ async function runCliEntry(params) {
1583
1583
  model: command
1584
1584
  };
1585
1585
  } finally {
1586
- await fs$1.rm(outputDir, {
1586
+ await fsPromises.rm(outputDir, {
1587
1587
  recursive: true,
1588
1588
  force: true
1589
1589
  }).catch(() => {});
@@ -1627,9 +1627,9 @@ function candidateBinaryNames(name) {
1627
1627
  }
1628
1628
  async function isExecutable(filePath) {
1629
1629
  try {
1630
- if (!(await fs$1.stat(filePath)).isFile()) return false;
1630
+ if (!(await fsPromises.stat(filePath)).isFile()) return false;
1631
1631
  if (process.platform === "win32") return true;
1632
- await fs$1.access(filePath, constants.X_OK);
1632
+ await fsPromises.access(filePath, constants.X_OK);
1633
1633
  return true;
1634
1634
  } catch {
1635
1635
  return false;
@@ -1,36 +1,36 @@
1
1
  import { g as resolveStateDir, m as resolveOAuthDir, o as resolveConfigPath } from "./paths-D358qawm.js";
2
- import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, d as resolveDefaultAgentId } from "./agent-scope-BjM05Snq.js";
2
+ import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, d as resolveDefaultAgentId } from "./agent-scope-DMzhkNwl.js";
3
3
  import { c as normalizeAgentId } from "./session-key-CIXZm7v4.js";
4
- import { $r as MAX_INCLUDE_DEPTH, En as normalizeNetworkMode, Gt as inspectPathPermissions, Kt as safeStat, Qr as INCLUDE_KEY, Qt as createConfigIO, Tn as isDangerousNetworkMode, Ut as formatPermissionDetail, Wt as formatPermissionRemediation, fr as normalizeTrustedSafeBinDirs } from "./model-selection-sZzgGuDI.js";
4
+ import { $r as MAX_INCLUDE_DEPTH, En as normalizeNetworkMode, Gt as inspectPathPermissions, Kt as safeStat, Qr as INCLUDE_KEY, Qt as createConfigIO, Tn as isDangerousNetworkMode, Ut as formatPermissionDetail, Wt as formatPermissionRemediation, fr as normalizeTrustedSafeBinDirs } from "./model-selection-DMALgc-K.js";
5
5
  import { A as hasConfiguredSecretInput } from "./registry-IKNezRAG.js";
6
6
  import { t as formatCliCommand } from "./command-format-BU9fEGrc.js";
7
7
  import { i as isPathInside, n as MANIFEST_KEY, r as extensionUsesSkippedScannerPath } from "./legacy-names-BG8snB-z.js";
8
- import { d as normalizePluginsConfig } from "./manifest-registry-Bc4-t_4c.js";
9
- import { l as normalizeStringEntries } from "./dock-CU6afu_e.js";
10
- import { n as listChannelPlugins } from "./plugins-BciWft73.js";
11
- import { C as resolveToolProfilePolicy, f as resolveSandboxConfigForAgent, k as SANDBOX_BROWSER_SECURITY_HASH_EPOCH, l as execDockerRaw, m as resolveSandboxToolPolicyForAgent, u as getBlockedBindReason } from "./sandbox-BEAOQQ5z.js";
12
- import { a as resolveGatewayAuth } from "./auth-C-QV87h1.js";
8
+ import { d as normalizePluginsConfig } from "./manifest-registry-Dd_jTCh5.js";
9
+ import { l as normalizeStringEntries } from "./dock-DxyPdXq3.js";
10
+ import { n as listChannelPlugins } from "./plugins-BUdux3tD.js";
11
+ import { C as resolveToolProfilePolicy, f as resolveSandboxConfigForAgent, k as SANDBOX_BROWSER_SECURITY_HASH_EPOCH, l as execDockerRaw, m as resolveSandboxToolPolicyForAgent, u as getBlockedBindReason } from "./sandbox-C259T0mP.js";
12
+ import { a as resolveGatewayAuth } from "./auth-BXzrYbOm.js";
13
13
  import { t as resolveGatewayCredentialsFromConfig } from "./credentials-C45WhjLr.js";
14
- import { a as resolveProfile, c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-CmXEOTqC.js";
15
- import { i as loadWorkspaceSkillEntries } from "./skills-D2dkcKi5.js";
16
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled } from "./commands-d2key1Fi.js";
17
- import { t as buildGatewayConnectionDetails } from "./call-jAJr36nx.js";
18
- import { i as readChannelAllowFromStore } from "./pairing-store-DYBSZwK1.js";
19
- import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-BLhaJ0EJ.js";
20
- import { l as resolveDmAllowState, n as isToolAllowedByPolicies, o as pickSandboxToolPolicy } from "./pi-tools.policy-Cdy3Az5h.js";
14
+ import { a as resolveProfile, c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-B1sy4EZS.js";
15
+ import { i as loadWorkspaceSkillEntries } from "./skills-B3SRvP-E.js";
16
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled } from "./commands-BwQQ7zsb.js";
17
+ import { t as buildGatewayConnectionDetails } from "./call-C8L99wK_.js";
18
+ import { i as readChannelAllowFromStore } from "./pairing-store-CO5T6xRl.js";
19
+ import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-DS35E0fx.js";
20
+ import { l as resolveDmAllowState, n as isToolAllowedByPolicies, o as pickSandboxToolPolicy } from "./pi-tools.policy-CDC0KLfN.js";
21
21
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CoifQXX-.js";
22
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-Cbc2KiPi.js";
22
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs---CM3Zs7.js";
23
23
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-gv_rp-w_.js";
24
24
  import { t as resolveChannelDefaultAccountId } from "./helpers-_v26w_1X.js";
25
- import { t as scanDirectoryWithSummary } from "./skill-scanner-Cxf7IqSj.js";
26
- import { t as probeGateway } from "./probe-BiWGmrZT.js";
27
- import { r as resolveNodeCommandAllowlist, t as DEFAULT_DANGEROUS_NODE_COMMANDS } from "./node-command-policy-CO4I99O1.js";
25
+ import { t as scanDirectoryWithSummary } from "./skill-scanner-CqspV0GZ.js";
26
+ import { t as probeGateway } from "./probe-CRMvvOZh.js";
27
+ import { r as resolveNodeCommandAllowlist, t as DEFAULT_DANGEROUS_NODE_COMMANDS } from "./node-command-policy-DRgKhxFr.js";
28
28
  import { c as normalizeTelegramAllowFromEntry, s as isNumericTelegramUserId, t as isDiscordMutableAllowEntry } from "./mutable-allowlist-detectors-C7fvoibT.js";
29
29
  import { t as inferParamBFromIdOrName } from "./model-param-b-CMJBkHox.js";
30
30
  import path from "node:path";
31
31
  import JSON5 from "json5";
32
- import * as fs$1 from "node:fs/promises";
33
- import fs from "node:fs/promises";
32
+ import * as fs from "node:fs/promises";
33
+ import fsPromises from "node:fs/promises";
34
34
  import { isIP } from "node:net";
35
35
 
36
36
  //#region src/gateway/probe-auth.ts
@@ -1252,7 +1252,7 @@ async function collectIncludePathsRecursive(params) {
1252
1252
  if (visited.has(resolved)) continue;
1253
1253
  visited.add(resolved);
1254
1254
  result.push(resolved);
1255
- const rawText = await fs$1.readFile(resolved, "utf-8").catch(() => null);
1255
+ const rawText = await fs.readFile(resolved, "utf-8").catch(() => null);
1256
1256
  if (!rawText) continue;
1257
1257
  const nestedParsed = (() => {
1258
1258
  try {
@@ -1287,7 +1287,7 @@ function expandTilde(p, env) {
1287
1287
  }
1288
1288
  async function readPluginManifestExtensions(pluginPath) {
1289
1289
  const manifestPath = path.join(pluginPath, "package.json");
1290
- const raw = await fs.readFile(manifestPath, "utf-8").catch(() => "");
1290
+ const raw = await fsPromises.readFile(manifestPath, "utf-8").catch(() => "");
1291
1291
  if (!raw.trim()) return [];
1292
1292
  const extensions = JSON.parse(raw)?.[MANIFEST_KEY]?.extensions;
1293
1293
  if (!Array.isArray(extensions)) return [];
@@ -1309,7 +1309,7 @@ async function listInstalledPluginDirs(params) {
1309
1309
  };
1310
1310
  return {
1311
1311
  extensionsDir,
1312
- pluginDirs: (await fs.readdir(extensionsDir, { withFileTypes: true }).catch((err) => {
1312
+ pluginDirs: (await fsPromises.readdir(extensionsDir, { withFileTypes: true }).catch((err) => {
1313
1313
  params.onReadError?.(err);
1314
1314
  return [];
1315
1315
  })).filter((entry) => entry.isDirectory()).map((entry) => entry.name).filter(Boolean)
@@ -1372,7 +1372,7 @@ function isPinnedRegistrySpec(spec) {
1372
1372
  }
1373
1373
  async function readInstalledPackageVersion(dir) {
1374
1374
  try {
1375
- const raw = await fs.readFile(path.join(dir, "package.json"), "utf-8");
1375
+ const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
1376
1376
  const parsed = JSON.parse(raw);
1377
1377
  return typeof parsed.version === "string" ? parsed.version : void 0;
1378
1378
  } catch {
@@ -1408,10 +1408,10 @@ async function listWorkspaceSkillMarkdownFiles(workspaceDir) {
1408
1408
  const visitedDirs = /* @__PURE__ */ new Set();
1409
1409
  while (queue.length > 0 && skillFiles.length < MAX_WORKSPACE_SKILL_SCAN_FILES_PER_WORKSPACE) {
1410
1410
  const dir = queue.shift();
1411
- const dirRealPath = await fs.realpath(dir).catch(() => path.resolve(dir));
1411
+ const dirRealPath = await fsPromises.realpath(dir).catch(() => path.resolve(dir));
1412
1412
  if (visitedDirs.has(dirRealPath)) continue;
1413
1413
  visitedDirs.add(dirRealPath);
1414
- const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
1414
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => []);
1415
1415
  for (const entry of entries) {
1416
1416
  if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
1417
1417
  const fullPath = path.join(dir, entry.name);
@@ -1420,7 +1420,7 @@ async function listWorkspaceSkillMarkdownFiles(workspaceDir) {
1420
1420
  continue;
1421
1421
  }
1422
1422
  if (entry.isSymbolicLink()) {
1423
- const stat = await fs.stat(fullPath).catch(() => null);
1423
+ const stat = await fsPromises.stat(fullPath).catch(() => null);
1424
1424
  if (!stat) continue;
1425
1425
  if (stat.isDirectory()) {
1426
1426
  queue.push(fullPath);
@@ -1710,13 +1710,13 @@ async function collectWorkspaceSkillSymlinkEscapeFindings(params) {
1710
1710
  const seenSkillPaths = /* @__PURE__ */ new Set();
1711
1711
  for (const workspaceDir of workspaceDirs) {
1712
1712
  const workspacePath = path.resolve(workspaceDir);
1713
- const workspaceRealPath = await fs.realpath(workspacePath).catch(() => workspacePath);
1713
+ const workspaceRealPath = await fsPromises.realpath(workspacePath).catch(() => workspacePath);
1714
1714
  const skillFilePaths = await listWorkspaceSkillMarkdownFiles(workspacePath);
1715
1715
  for (const skillFilePath of skillFilePaths) {
1716
1716
  const canonicalSkillPath = path.resolve(skillFilePath);
1717
1717
  if (seenSkillPaths.has(canonicalSkillPath)) continue;
1718
1718
  seenSkillPaths.add(canonicalSkillPath);
1719
- const skillRealPath = await fs.realpath(canonicalSkillPath).catch(() => null);
1719
+ const skillRealPath = await fsPromises.realpath(canonicalSkillPath).catch(() => null);
1720
1720
  if (!skillRealPath) continue;
1721
1721
  if (isPathInside(workspaceRealPath, skillRealPath)) continue;
1722
1722
  escapedSkillFiles.push({
@@ -1,6 +1,6 @@
1
1
  import { c as readTailscaleWhoisIdentity } from "./tailscale-DZ6XAzwZ.js";
2
2
  import { t as safeEqualSecret } from "./secret-equal-CXJEZiWb.js";
3
- import { n as isLocalishHost, o as isTrustedProxyAddress, r as isLoopbackAddress, u as resolveClientIp } from "./ws-jOuSOOrR.js";
3
+ import { n as isLocalishHost, o as isTrustedProxyAddress, r as isLoopbackAddress, u as resolveClientIp } from "./ws-qa_Mt4Jq.js";
4
4
  import { n as resolveGatewayCredentialsFromValues } from "./credentials-C45WhjLr.js";
5
5
 
6
6
  //#region src/gateway/auth-rate-limit.ts