squidclaw 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) hide show
  1. package/dist/{accounts-KzgPbLHP.js → accounts-B1RxFghM.js} +1 -1
  2. package/dist/{accounts-BK8I0Svb.js → accounts-BH9Qo1sQ.js} +7 -7
  3. package/dist/{accounts-DeqNOvBo.js → accounts-Cuwg9Tan.js} +1 -1
  4. package/dist/{acp-cli-BDUN_3hr.js → acp-cli-BC9OAf3z.js} +8 -8
  5. package/dist/{agent-scope-DipdnGE4.js → agent-scope-CfsErfyG.js} +17 -17
  6. package/dist/{agents-Dp7Z49KS.js → agents-CCBxQ9aq.js} +14 -14
  7. package/dist/{agents.config-BiYGJTBo.js → agents.config-BLyNI6Wo.js} +2 -2
  8. package/dist/{api-key-rotation-ijs2sHFd.js → api-key-rotation-D8zY84vq.js} +1 -1
  9. package/dist/{audio-preflight-BdE85axf.js → audio-preflight-D2V9uUvO.js} +34 -34
  10. package/dist/{audio-transcription-runner-t9ywC3Mg.js → audio-transcription-runner-Caxzri8M.js} +23 -23
  11. package/dist/{audit-DLLdL6Gd.js → audit-C-YgUaul.js} +29 -29
  12. package/dist/{auth-CgVB2OQr.js → auth-BLnmRBQV.js} +1 -1
  13. package/dist/{auth-choice-DFMaBDZ1.js → auth-choice-BtLMBliK.js} +11 -11
  14. package/dist/{auth-choice-BJBbpLg9.js → auth-choice-gdt59E8k.js} +13 -13
  15. package/dist/{auth-choice.apply-helpers-C-L13mHO.js → auth-choice.apply-helpers-CjGIIfKh.js} +1 -1
  16. package/dist/{auth-profiles-BiJk4pUv.js → auth-profiles-ByQNLJzP.js} +16 -16
  17. package/dist/{auth-token-B3--XmAN.js → auth-token-Gu6sWtZS.js} +1 -1
  18. package/dist/{banner-BR76eqqR.js → banner-C9hwqM49.js} +2 -2
  19. package/dist/{bonjour-discovery-B_XMK5ai.js → bonjour-discovery-Bh8Ao0vC.js} +1 -1
  20. package/dist/{browser-cli-B45YlTHC.js → browser-cli-CGjcwRKx.js} +12 -12
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/session-memory/handler.js +36 -7
  23. package/dist/{call-G7vZ_wCI.js → call-BPIaCRGe.js} +10 -10
  24. package/dist/{channel-account-context-CQ6rCiGI.js → channel-account-context-DJ3rHgVO.js} +5 -5
  25. package/dist/{channel-activity-CGBzdEGf.js → channel-activity-CNDuTc8D.js} +1 -1
  26. package/dist/{channel-options-CAVwZvHb.js → channel-options-D0gk9W37.js} +3 -3
  27. package/dist/{channel-selection-D_NFb2hE.js → channel-selection-DAoy4Z1P.js} +1 -1
  28. package/dist/{channel-web-CmwN58t5.js → channel-web-Duua4ZPa.js} +17 -17
  29. package/dist/{channels-cli-BvI7PrnS.js → channels-cli-D15lUa6m.js} +93 -93
  30. package/dist/{channels-status-issues-B87XQLLd.js → channels-status-issues-DPzsKH4n.js} +1 -1
  31. package/dist/{chrome-fM6BTTNA.js → chrome-Bs3-hdWP.js} +4 -4
  32. package/dist/{clawbot-cli-jwxDns9G.js → clawbot-cli-ClfRwHPU.js} +11 -11
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-IgnHd9vV.js → cli-zfxNQ-Jj.js} +73 -73
  35. package/dist/{client-X5m1ssRl.js → client-DFgW99bv.js} +2 -2
  36. package/dist/{command-registry-DU59Zys9.js → command-registry-8dFoJNwF.js} +11 -11
  37. package/dist/{command-secret-targets-DElQTuoe.js → command-secret-targets-Blzote2A.js} +4 -4
  38. package/dist/{commands-Di_crduW.js → commands-Bn-GGRiA.js} +1 -1
  39. package/dist/{commands-registry-CvlKGwPE.js → commands-registry-DOyhmv7L.js} +3 -3
  40. package/dist/{completion-cli-B58zTxLB.js → completion-cli-DXKg2zHx.js} +13 -13
  41. package/dist/{config-cli-BIaTdZ_7.js → config-cli-KQxg7BTe.js} +7 -7
  42. package/dist/{config-guard-CDl-VzWM.js → config-guard-CTKbpGkQ.js} +3 -3
  43. package/dist/{config-validation-BAFa1Cym.js → config-validation-xBuowa-r.js} +3 -3
  44. package/dist/{configure-BXLSTN8m.js → configure-B3Nlvr4W.js} +17 -17
  45. package/dist/{control-ui-assets-BYEy341x.js → control-ui-assets-d6VtDSeo.js} +1 -1
  46. package/dist/{cron-cli-DeHX-jJX.js → cron-cli-i7RdrGzx.js} +11 -11
  47. package/dist/{daemon-cli-Cc8upFpL.js → daemon-cli-Ot9TBJ_l.js} +15 -15
  48. package/dist/{daemon-install-Chxlu9Kv.js → daemon-install-CbPLNiIP.js} +4 -4
  49. package/dist/{daemon-install-helpers-CJtiW2RE.js → daemon-install-helpers-CZDVO_MU.js} +11 -11
  50. package/dist/{deliver-CyR05tXq.js → deliver-DYffOszC.js} +7 -7
  51. package/dist/deliver-runtime-CCCnLu1l.js +61 -0
  52. package/dist/deps-send-discord.runtime-C1qYROSU.js +36 -0
  53. package/dist/deps-send-imessage.runtime-Dz14pqUt.js +35 -0
  54. package/dist/deps-send-signal.runtime-BxlxMy_x.js +34 -0
  55. package/dist/deps-send-slack.runtime-BoIAdT0Z.js +32 -0
  56. package/dist/{deps-send-telegram.runtime-aNU8_XlK.js → deps-send-telegram.runtime-C7I8qHRq.js} +16 -16
  57. package/dist/deps-send-whatsapp.runtime-NrQGDJy9.js +119 -0
  58. package/dist/{devices-cli-DVV5P4ZJ.js → devices-cli-CEW04UTp.js} +8 -8
  59. package/dist/{diagnostic-Du3b17ba.js → diagnostic-CT4BKCiT.js} +1 -1
  60. package/dist/{diagnostics--O6mo6KH.js → diagnostics-m7hHHbuE.js} +5 -5
  61. package/dist/{directory-cli-DaE3Quiv.js → directory-cli-4K5ehIEb.js} +7 -7
  62. package/dist/{dns-cli-waaEVY0o.js → dns-cli-Cwgde6km.js} +5 -5
  63. package/dist/{dock-gKJjfuaV.js → dock-0fXeq35m.js} +4 -4
  64. package/dist/{docs-cli--gGxz79Z.js → docs-cli-BpZtes_j.js} +4 -4
  65. package/dist/{doctor-completion-DRCOGhwS.js → doctor-completion-B4EOgAHX.js} +2 -2
  66. package/dist/{doctor-config-flow-BtioG6ZI.js → doctor-config-flow-CjyicsHv.js} +15 -15
  67. package/dist/{enable-Cbwq508X.js → enable-DMJvBRPK.js} +1 -1
  68. package/dist/entry.js +2 -2
  69. package/dist/{exec-approvals-allowlist-Bl6dLcC4.js → exec-approvals-allowlist--CDwsotI.js} +1 -1
  70. package/dist/{exec-approvals-cli-_eztu6zG.js → exec-approvals-cli-Bni7tZhv.js} +16 -16
  71. package/dist/{exec-safe-bin-runtime-policy-CYHAJAOy.js → exec-safe-bin-runtime-policy-BOmyNeKa.js} +2 -2
  72. package/dist/{fetch-BWLAZtR0.js → fetch-CODl9dwL.js} +3 -3
  73. package/dist/{fetch-guard-aHbB2ECM.js → fetch-guard-C9XQ9W19.js} +1 -1
  74. package/dist/{fs-safe-DPYj7h8A.js → fs-safe-BPQ-per2.js} +24 -24
  75. package/dist/{gateway-cli-DvWNtJxy.js → gateway-cli-7hy6G1el.js} +153 -153
  76. package/dist/{gateway-rpc-CyI4qv4e.js → gateway-rpc-mBKSbosL.js} +1 -1
  77. package/dist/{health-CxqVSgKj.js → health-L85P9rRI.js} +11 -11
  78. package/dist/{hooks-cli-C-8A82OA.js → hooks-cli-JUGj7_IF.js} +81 -81
  79. package/dist/{hooks-status-DMFBAUq8.js → hooks-status-BlgSVDvN.js} +1 -1
  80. package/dist/{image-Czt09HO2.js → image-C3rClBur.js} +5 -5
  81. package/dist/{image-ops-B2uuLIGD.js → image-ops-LFsSCTyI.js} +10 -10
  82. package/dist/image-runtime-BawEM2qj.js +55 -0
  83. package/dist/{inspect-4c1uL0x5.js → inspect-CzsXBsew.js} +4 -4
  84. package/dist/{install-safe-path-3muwy3fu.js → install-safe-path-DqI19VEv.js} +25 -25
  85. package/dist/{installs-BiQDtPF0.js → installs-P-pYAJm1.js} +9 -9
  86. package/dist/{ipv4-B1l08IQ5.js → ipv4-Bx85fwxr.js} +1 -1
  87. package/dist/{ir-Cg5iUcsz.js → ir-CLdz27UA.js} +8 -8
  88. package/dist/{issue-format-NbalyyoF.js → issue-format-DzzpkEKh.js} +1 -1
  89. package/dist/{json-files-CuJjdF_0.js → json-files-rR19q30D.js} +8 -8
  90. package/dist/{lifecycle-core-BDDTVhGJ.js → lifecycle-core-DAOEq9od.js} +5 -5
  91. package/dist/{login-BtteffgM.js → login-B6agIh-B.js} +3 -3
  92. package/dist/{login-qr-CL3cPNm6.js → login-qr-eRvH4Sfc.js} +6 -6
  93. package/dist/{logs-cli-_68C9pAz.js → logs-cli-DjsOTLd0.js} +9 -9
  94. package/dist/{manager-D-epQZzu.js → manager-CFg5CNjB.js} +14 -14
  95. package/dist/{manager-runtime-dxiaLn0X.js → manager-runtime-BucyWusE.js} +9 -9
  96. package/dist/{manifest-registry-7kwtbCH-.js → manifest-registry-1ACGW3OR.js} +1 -1
  97. package/dist/{memory-cli-DdlNObR_.js → memory-cli-K8RTw22V.js} +12 -12
  98. package/dist/{model-CLOEFgm1.js → model-D3QKHUD9.js} +2 -2
  99. package/dist/{model-catalog-cPBfdmCZ.js → model-catalog-INp1o1zX.js} +3 -3
  100. package/dist/{model-picker-k5b4kcsx.js → model-picker-DNBHh9Px.js} +4 -4
  101. package/dist/{models-Bf5dNlFg.js → models-BpPghvyy.js} +17 -17
  102. package/dist/{models-cli-DHlY3RwP.js → models-cli-DotYKjDq.js} +78 -78
  103. package/dist/{models-config-C7GR26HJ.js → models-config-BNIPxtHv.js} +6 -6
  104. package/dist/{net-CggAM2eK.js → net-QB4dfP4-.js} +2 -2
  105. package/dist/{node-cli-CF6bOApq.js → node-cli-tuLexrKG.js} +33 -33
  106. package/dist/{node-command-policy--2bsadiu.js → node-command-policy-X4KnAuD8.js} +1 -1
  107. package/dist/{node-service-Z0JprJda.js → node-service-OVe0_CIs.js} +1 -1
  108. package/dist/{nodes-cli-DdF0Apr8.js → nodes-cli-BtHrRe7o.js} +16 -16
  109. package/dist/{nodes-screen-Cihyp_1V.js → nodes-screen-CKhKFccI.js} +7 -7
  110. package/dist/{npm-pack-install-B887us7R.js → npm-pack-install-Dn3FiWXB.js} +18 -18
  111. package/dist/{npm-resolution-2sjQlpdP.js → npm-resolution-BTi5J55i.js} +4 -4
  112. package/dist/{onboard-BwVAkxW0.js → onboard-CNVVt7F3.js} +6 -6
  113. package/dist/{onboard-channels-Bw372mQX.js → onboard-channels-CUpUBnOj.js} +21 -21
  114. package/dist/{onboard-custom-XW3Q4ERz.js → onboard-custom-DIM8V39k.js} +4 -4
  115. package/dist/{onboard-helpers-DfWsh9P_.js → onboard-helpers-D10-c0nt.js} +10 -10
  116. package/dist/{onboard-hooks-7zSvhf8S.js → onboard-hooks-DW4qt57e.js} +4 -4
  117. package/dist/{onboard-remote-qJCXQTPO.js → onboard-remote-PNWR1AHo.js} +4 -4
  118. package/dist/{onboard-skills-DFMLJn-8.js → onboard-skills-DRzcoNmr.js} +4 -4
  119. package/dist/{onboarding-D_ImwR9D.js → onboarding-DQa8M7Fx.js} +14 -14
  120. package/dist/{onboarding.finalize-ClTc_ghC.js → onboarding.finalize-D6qUa-0y.js} +90 -90
  121. package/dist/{onboarding.gateway-config-CeOavTRn.js → onboarding.gateway-config-BzzDFZhl.js} +18 -18
  122. package/dist/{onboarding.secret-input-h4sXfwga.js → onboarding.secret-input-ajPT5cjy.js} +1 -1
  123. package/dist/{openai-model-default-BIEWI0T4.js → openai-model-default-lBZZvWbf.js} +2 -2
  124. package/dist/{outbound-attachment-ELXt01nc.js → outbound-attachment-BRjY-xU5.js} +2 -2
  125. package/dist/{outbound-DrmXuI1w.js → outbound-yJzuZMJK.js} +3 -3
  126. package/dist/{pairing-cli-BPn6V6ca.js → pairing-cli-BHW9JIfG.js} +8 -8
  127. package/dist/{pairing-labels-ieaV5SBV.js → pairing-labels-DGiyVpfH.js} +1 -1
  128. package/dist/{pairing-store-BNRzMsGf.js → pairing-store-BWvzmAq8.js} +3 -3
  129. package/dist/{path-alias-guards-vfYYQFIg.js → path-alias-guards-DeOVetT7.js} +3 -3
  130. package/dist/{path-safety-C95DzArw.js → path-safety-D7CjFQvf.js} +1 -1
  131. package/dist/{paths-DfuVHiHu.js → paths-D6mnO6Ni.js} +9 -9
  132. package/dist/{pi-embedded-helpers-DQHj960w.js → pi-embedded-helpers-13zhzo1T.js} +6 -6
  133. package/dist/{pi-model-discovery-D4t0ZFCY.js → pi-model-discovery-Cj7zDFgN.js} +1 -1
  134. package/dist/{pi-model-discovery-runtime-SKeRi7Gx.js → pi-model-discovery-runtime-CylBYw6s.js} +5 -5
  135. package/dist/{pi-tools.before-tool-call.runtime-DjzR6iNJ.js → pi-tools.before-tool-call.runtime-CEWBYhqI.js} +5 -5
  136. package/dist/{pi-tools.policy-DgElG9m2.js → pi-tools.policy-Bhg8uG0h.js} +5 -5
  137. package/dist/{plugin-auto-enable-BLhZ9NWX.js → plugin-auto-enable-D_3GnV1a.js} +3 -3
  138. package/dist/{plugin-registry-BgKtjZBZ.js → plugin-registry-CY6rt9xp.js} +3 -3
  139. package/dist/plugin-sdk/{accounts-BhCAa-05.js → accounts-BLOLIF6Q.js} +2 -2
  140. package/dist/plugin-sdk/{accounts-DKXGC2Vu.js → accounts-BvzvDHNx.js} +3 -3
  141. package/dist/plugin-sdk/{accounts-BChIl5as.js → accounts-ByCKM_Y3.js} +2 -2
  142. package/dist/plugin-sdk/{active-listener-TTbK9PGk.js → active-listener-Ccj2fSCa.js} +2 -2
  143. package/dist/plugin-sdk/{api-key-rotation-BqhYVBBK.js → api-key-rotation-0Xm0okk5.js} +2 -2
  144. package/dist/plugin-sdk/{audio-preflight-DAf0ptAM.js → audio-preflight-B_pcDw8d.js} +26 -26
  145. package/dist/plugin-sdk/{audio-transcription-runner-CBASOlbc.js → audio-transcription-runner-u6tijzUS.js} +11 -11
  146. package/dist/plugin-sdk/{audit-membership-runtime-Xl20kCBe.js → audit-membership-runtime-DHQDvH4u.js} +2 -2
  147. package/dist/plugin-sdk/{channel-activity-95JVLzNY.js → channel-activity-BVUdxSNs.js} +3 -3
  148. package/dist/plugin-sdk/{channel-web-DCkC6Ydu.js → channel-web-BX2s-JXF.js} +18 -18
  149. package/dist/plugin-sdk/{chrome-BlXpNOQu.js → chrome-6EkqVcyR.js} +6 -6
  150. package/dist/plugin-sdk/{commands-registry-C9y_w3eW.js → commands-registry-CDHo6SSs.js} +4 -4
  151. package/dist/plugin-sdk/{common-CEwMUbms.js → common-Emz6EPQM.js} +2 -2
  152. package/dist/plugin-sdk/{config-sMifxgre.js → config-CMjn_DSB.js} +7 -7
  153. package/dist/plugin-sdk/{deliver-2zt3NeFA.js → deliver-Cz6GluMN.js} +10 -10
  154. package/dist/plugin-sdk/deliver-runtime-CjCJkoFM.js +32 -0
  155. package/dist/plugin-sdk/deps-send-discord.runtime-C4AEwjGl.js +23 -0
  156. package/dist/plugin-sdk/deps-send-imessage.runtime-DCdEe-_E.js +22 -0
  157. package/dist/plugin-sdk/deps-send-signal.runtime-BNO6SPmR.js +21 -0
  158. package/dist/plugin-sdk/deps-send-slack.runtime-BChVBURL.js +19 -0
  159. package/dist/plugin-sdk/deps-send-telegram.runtime-DyCorUw2.js +24 -0
  160. package/dist/plugin-sdk/deps-send-whatsapp.runtime-DoOYrpKa.js +57 -0
  161. package/dist/plugin-sdk/{diagnostic-CU_mni6m.js → diagnostic-DhO2TqL_.js} +2 -2
  162. package/dist/plugin-sdk/discord.js +6 -6
  163. package/dist/plugin-sdk/{errors-CgRPdp3o.js → errors-9oVz7reJ.js} +1 -1
  164. package/dist/plugin-sdk/{fetch-guard-BxMLJbqt.js → fetch-guard-CGQ35-A_.js} +2 -2
  165. package/dist/plugin-sdk/{fs-safe-5aQcM_qM.js → fs-safe-B26UxJny.js} +3 -3
  166. package/dist/plugin-sdk/{image-BJXV9IMV.js → image-DPgEp54d.js} +6 -6
  167. package/dist/plugin-sdk/{image-ops-DovJMvdf.js → image-ops-CbKrfi-N.js} +2 -2
  168. package/dist/plugin-sdk/image-runtime-DN6PHT8G.js +25 -0
  169. package/dist/plugin-sdk/imessage.js +2 -2
  170. package/dist/plugin-sdk/{ir-DE2ewdq5.js → ir-4JdLS2Hz.js} +7 -7
  171. package/dist/plugin-sdk/{local-roots-CIwDgpY2.js → local-roots-T6lXDGzr.js} +4 -4
  172. package/dist/plugin-sdk/{logger-DIb2cGHp.js → logger-Bg4vIUJn.js} +2 -2
  173. package/dist/plugin-sdk/{login-CLIcsAVy.js → login-BNCjks0C.js} +4 -4
  174. package/dist/plugin-sdk/{login-qr-BlxjA0vQ.js → login-qr-CTjNgxhl.js} +5 -5
  175. package/dist/plugin-sdk/{manager-CpAGPHeX.js → manager-D__CoDGL.js} +8 -8
  176. package/dist/plugin-sdk/manager-runtime-B9aBGLrF.js +15 -0
  177. package/dist/plugin-sdk/mattermost.js +3 -3
  178. package/dist/plugin-sdk/{outbound-DDpRevO_.js → outbound-DTQ-9Cjw.js} +5 -5
  179. package/dist/plugin-sdk/{outbound-attachment-CVavq5II.js → outbound-attachment-CdHX9v0q.js} +2 -2
  180. package/dist/plugin-sdk/{path-alias-guards-BfpU4lAT.js → path-alias-guards-DSCFtpsd.js} +1 -1
  181. package/dist/plugin-sdk/{paths-CK3lTJYw.js → paths-BQHqKGA8.js} +1 -1
  182. package/dist/plugin-sdk/{pi-embedded-helpers-Cb_h9zSJ.js → pi-embedded-helpers-B7nmCbf7.js} +16 -16
  183. package/dist/plugin-sdk/{pi-model-discovery-B3B3R7L9.js → pi-model-discovery-DyDwYiK3.js} +1 -1
  184. package/dist/plugin-sdk/pi-model-discovery-runtime-CN6ZaL0W.js +8 -0
  185. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DivpBAM0.js → pi-tools.before-tool-call.runtime-D_f6TDo7.js} +4 -4
  186. package/dist/plugin-sdk/{plugins-BlTrm4bw.js → plugins-BSPvol4w.js} +4 -4
  187. package/dist/plugin-sdk/{proxy-env-Cdh-OQYk.js → proxy-env-D-iVYTBk.js} +1 -1
  188. package/dist/plugin-sdk/{proxy-fetch-Dt5BedH8.js → proxy-fetch-Cf3IUSDw.js} +1 -1
  189. package/dist/plugin-sdk/{pw-ai-DEDRpMlY.js → pw-ai-BO445UDA.js} +9 -9
  190. package/dist/plugin-sdk/{qmd-manager-Ct9rtJjd.js → qmd-manager-81ezWnIN.js} +7 -7
  191. package/dist/plugin-sdk/{query-expansion-OdwWuN1S.js → query-expansion-DxTmIU4K.js} +4 -4
  192. package/dist/plugin-sdk/{redact-9WsNyb7S.js → redact-DfACyt0X.js} +1 -1
  193. package/dist/plugin-sdk/{reply-wZhosbPd.js → reply-DJ3rbbnv.js} +73 -73
  194. package/dist/plugin-sdk/{resolve-outbound-target-BJmCIkW_.js → resolve-outbound-target-DtQd8TzZ.js} +2 -2
  195. package/dist/plugin-sdk/{run-with-concurrency-EUEKeAa8.js → run-with-concurrency-CYcPpb5E.js} +1 -1
  196. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-ai8hcGi_.js +10 -0
  197. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BzvoaI1G.js +19 -0
  198. package/dist/plugin-sdk/{send-Drs4JqVD.js → send-B9GVkvTk.js} +5 -5
  199. package/dist/plugin-sdk/{send-BMWyVUhm.js → send-BPEn9L0o.js} +13 -13
  200. package/dist/plugin-sdk/{send-0C4KdD-T.js → send-CGjI0pJn.js} +7 -7
  201. package/dist/plugin-sdk/{send-oo6mQbab.js → send-CZ6HDwDu.js} +8 -8
  202. package/dist/plugin-sdk/{send-BGWGV_mz.js → send-D6nUI0S3.js} +6 -6
  203. package/dist/plugin-sdk/{session-CXVARKFK.js → session-Bwjlseuf.js} +3 -3
  204. package/dist/plugin-sdk/signal.js +2 -2
  205. package/dist/plugin-sdk/{skill-commands-CoqGFLfM.js → skill-commands-BpB2Oe8e.js} +4 -4
  206. package/dist/plugin-sdk/{skills-di-5uS9y.js → skills-CaQpr1kx.js} +6 -6
  207. package/dist/plugin-sdk/slash-commands.runtime-BH06o3dH.js +13 -0
  208. package/dist/plugin-sdk/slash-dispatch.runtime-BotYesgY.js +52 -0
  209. package/dist/plugin-sdk/slash-skill-commands.runtime-CzPvxiUD.js +16 -0
  210. package/dist/plugin-sdk/{store-Dn_E3uaN.js → store-K6C7eOpg.js} +2 -2
  211. package/dist/plugin-sdk/subagent-registry-runtime-BbcgUYOO.js +52 -0
  212. package/dist/plugin-sdk/{tables-_e9wMygc.js → tables-CeWt6UjS.js} +1 -1
  213. package/dist/plugin-sdk/{thinking-Cih_nxDY.js → thinking-gpcjIDQZ.js} +7 -7
  214. package/dist/plugin-sdk/{tokens-CLE20fRI.js → tokens-DAL_5WHL.js} +1 -1
  215. package/dist/plugin-sdk/{tool-images-D6a1Ua4p.js → tool-images-l3TE_qXt.js} +2 -2
  216. package/dist/plugin-sdk/web-DZ7nBzZy.js +56 -0
  217. package/dist/plugin-sdk/{whatsapp-actions-UAnHjKbE.js → whatsapp-actions-CbzdjX4B.js} +17 -17
  218. package/dist/plugin-sdk/whatsapp.js +50 -50
  219. package/dist/plugin-sdk/zalo.js +2 -2
  220. package/dist/{plugins-DuLOFZmO.js → plugins-DFPxMLnR.js} +2 -2
  221. package/dist/{plugins-cli-CKr9IyQL.js → plugins-cli-Bfq4OJMG.js} +83 -83
  222. package/dist/{ports-Be82TlEg.js → ports-BzfeaNjw.js} +1 -1
  223. package/dist/{ports-0jLyYbvQ.js → ports-DMeUt80n.js} +2 -2
  224. package/dist/{program-B5Vn_UD_.js → program-DZxExBPG.js} +81 -81
  225. package/dist/{prompt-select-styled-DTnRirU4.js → prompt-select-styled-CK2Ienpq.js} +40 -40
  226. package/dist/{provider-auth-helpers-DG7hKvxV.js → provider-auth-helpers-C_1HJDfj.js} +5 -5
  227. package/dist/{proxy-env-D16ubrT6.js → proxy-env-CNlcVWhf.js} +1 -1
  228. package/dist/{push-apns-BZeUZhYN.js → push-apns-C4uEslA7.js} +5 -5
  229. package/dist/{pw-ai-BrmQq6dp.js → pw-ai-Dg9fGMve.js} +18 -18
  230. package/dist/{qmd-manager-CToc7FPg.js → qmd-manager-D4nXiiAn.js} +20 -20
  231. package/dist/{qr-cli-23hgWtLn.js → qr-cli-CN6kEeE-.js} +2 -2
  232. package/dist/{query-expansion-DI9INxTg.js → query-expansion-C0HUJbRn.js} +12 -12
  233. package/dist/{redact-snapshot-B8W0RynI.js → redact-snapshot-CiS6G7vm.js} +1 -1
  234. package/dist/{register.agent-C9tZejQm.js → register.agent-BMr61y_S.js} +94 -94
  235. package/dist/register.configure-7_PUrx8F.js +165 -0
  236. package/dist/{register.maintenance-dpQRuXYm.js → register.maintenance-zjqp4gVD.js} +95 -95
  237. package/dist/{register.message-DexwH4xh.js → register.message-CqqQmFqh.js} +74 -74
  238. package/dist/{register.onboard-CI1dr2mE.js → register.onboard-w_EDtQ3H.js} +18 -18
  239. package/dist/{register.setup-Dsl5n4Uf.js → register.setup-DkncXaAW.js} +21 -21
  240. package/dist/{register.status-health-sessions-CmNMtNSk.js → register.status-health-sessions-CHCnEwLO.js} +88 -88
  241. package/dist/{register.subclis-C4twva8y.js → register.subclis-D_k3jp2m.js} +31 -31
  242. package/dist/{rpc-BquITS9w.js → rpc-DFxhwitx.js} +1 -1
  243. package/dist/{run-main-6tdntESl.js → run-main-Czc9ESzd.js} +93 -93
  244. package/dist/{runtime-_Vk5eISV.js → runtime-By5SpbLU.js} +3 -3
  245. package/dist/{runtime-config-collectors-wQYiGNzB.js → runtime-config-collectors-B104qPur.js} +1 -1
  246. package/dist/{runtime-whatsapp-login.runtime-Cf3JhAPA.js → runtime-whatsapp-login.runtime-B4XQqxLZ.js} +7 -7
  247. package/dist/{runtime-whatsapp-outbound.runtime-bw4l8Cm5.js → runtime-whatsapp-outbound.runtime-CTfBy0k0.js} +15 -15
  248. package/dist/{sandbox-CbGxVENW.js → sandbox-DaQ1ruwH.js} +18 -18
  249. package/dist/{sandbox-cli-WvgvhVoi.js → sandbox-cli-BzmKYlDs.js} +25 -25
  250. package/dist/{secrets-cli-BJFHNFFa.js → secrets-cli-C2iidz4Q.js} +11 -11
  251. package/dist/{security-cli-BVezJLE_.js → security-cli-D3PfmNhS.js} +42 -42
  252. package/dist/{send-Bu3eP6CW.js → send-BWMSp9_W.js} +4 -4
  253. package/dist/{send-DynShEUL.js → send-BbUl6LvV.js} +11 -11
  254. package/dist/{send-D8WRsTcF.js → send-BcCUXoKV.js} +5 -5
  255. package/dist/{send-C2ol3xJd.js → send-BdZJcfei.js} +8 -8
  256. package/dist/{send-Cj7csKER.js → send-DHmaiFb3.js} +6 -6
  257. package/dist/{server-TkeA4LLX.js → server-BThRQKrb.js} +20 -20
  258. package/dist/{server-context-C56AfkmJ.js → server-context-D9dHt5TX.js} +12 -12
  259. package/dist/{server-lifecycle-CUR6g-z-.js → server-lifecycle-DwoqIphm.js} +2 -2
  260. package/dist/{server-middleware-Dxlv5GU2.js → server-middleware-i-VrGsvO.js} +1 -1
  261. package/dist/{server-node-events-EsqtDPMI.js → server-node-events-67QUoOob.js} +74 -74
  262. package/dist/{service-DSqxS6_D.js → service-B5T42CWZ.js} +15 -15
  263. package/dist/{session-D0jodcgT.js → session-eXSdl5mb.js} +1 -1
  264. package/dist/{session-utils-CZALjD6h.js → session-utils-PIpg5nvE.js} +6 -6
  265. package/dist/{sessions-gTKLgF0i.js → sessions-A97O0F1f.js} +15 -15
  266. package/dist/{sessions-BLTjLVQT.js → sessions-CDicf15r.js} +4 -4
  267. package/dist/{shared-D5DTxBPH.js → shared-By6_qr_R.js} +1 -1
  268. package/dist/{shared-4aGIUkwm.js → shared-CJet4A6J.js} +3 -3
  269. package/dist/{skill-commands-CigVnmMu.js → skill-commands-DBT6aOGs.js} +5 -5
  270. package/dist/{skill-scanner-CvS725eQ.js → skill-scanner--QKHR8U0.js} +6 -6
  271. package/dist/{skills-C85azDXm.js → skills-EwyaIyKC.js} +3 -3
  272. package/dist/{skills-cli-B2fk0u1F.js → skills-cli-CblUgygP.js} +5 -5
  273. package/dist/{skills-install-_Qv7iwIj.js → skills-install-Bg63KYLo.js} +6 -6
  274. package/dist/{skills-status-DkO7rxE8.js → skills-status-Bv8Xt7Lc.js} +1 -1
  275. package/dist/{slash-commands.runtime-CF70sEb6.js → slash-commands.runtime-BueY2Beh.js} +11 -11
  276. package/dist/slash-dispatch.runtime-B3gbmyOu.js +114 -0
  277. package/dist/{slash-skill-commands.runtime-6s4Ap-WA.js → slash-skill-commands.runtime-ByvvwWOf.js} +15 -15
  278. package/dist/{squidclaw-root-BQfLymzj.js → squidclaw-root-JXyRbQLJ.js} +8 -8
  279. package/dist/{status-yDvMiWJC.js → status-Doe6Z9h6.js} +27 -27
  280. package/dist/{status.update-CiLU9RPF.js → status.update-BGIm6we4.js} +2 -2
  281. package/dist/{store-BEIcnlgx.js → store-BTkIx401.js} +5 -5
  282. package/dist/{subagent-registry-BE1B0_sO.js → subagent-registry-o5rZt_4e.js} +149 -149
  283. package/dist/subagent-registry-runtime-C0GbHEOo.js +114 -0
  284. package/dist/{system-cli-DAKISNim.js → system-cli-BGFIr82s.js} +9 -9
  285. package/dist/{system-run-command-BOHXAwW8.js → system-run-command-BqoUyRkT.js} +1 -1
  286. package/dist/{systemd-Cj2cX_ZP.js → systemd-B86VePXs.js} +9 -9
  287. package/dist/{systemd-hints-46PqJfaq.js → systemd-hints-BmFWZu_j.js} +6 -6
  288. package/dist/{systemd-linger-6Jd9K5p2.js → systemd-linger-w7fvBU-1.js} +1 -1
  289. package/dist/{tables-DOgKzkCQ.js → tables-Cw6nUurn.js} +1 -1
  290. package/dist/{tailnet-BlV0IR7G.js → tailnet-QKMSnz19.js} +1 -1
  291. package/dist/{target-errors-CRQlPF1u.js → target-errors-C_rnMuJ2.js} +4 -4
  292. package/dist/{tool-images-CyzWvDUu.js → tool-images-D6mmxuWS.js} +1 -1
  293. package/dist/{tui-DN34soFB.js → tui-BxsFozJB.js} +6 -6
  294. package/dist/{tui-cli-CG0r8wIF.js → tui-cli-Bf1E1ENY.js} +32 -32
  295. package/dist/{update-1JhjCqjy.js → update-BhRrb6BI.js} +3 -3
  296. package/dist/{update-cli-CKvgxhEz.js → update-cli-FbS4oJu1.js} +104 -104
  297. package/dist/{update-runner-EXHdNkfq.js → update-runner-DCLBBKeT.js} +16 -16
  298. package/dist/web-1FVB4fsI.js +118 -0
  299. package/dist/{webhooks-cli-CJpcVOhV.js → webhooks-cli-BCqXOihQ.js} +6 -6
  300. package/dist/{whatsapp-actions-BYzAF3jo.js → whatsapp-actions-I7z57XJA.js} +17 -17
  301. package/dist/{with-timeout-D8mIrgj5.js → with-timeout-CX0CGi5G.js} +3 -3
  302. package/dist/{workspace-D5vNjk5G.js → workspace-BbO-M3Jv.js} +1 -1
  303. package/dist/{workspace-dirs-CKrd0E4k.js → workspace-dirs-DJbX0g4E.js} +1 -1
  304. package/dist/{wsl-CvQfS6aU.js → wsl-CsGe5QCP.js} +2 -2
  305. package/package.json +1 -1
  306. package/dist/deliver-runtime-BY48Cyf6.js +0 -61
  307. package/dist/deps-send-discord.runtime-CiS_YGKd.js +0 -36
  308. package/dist/deps-send-imessage.runtime-h5CDiZZu.js +0 -35
  309. package/dist/deps-send-signal.runtime-C9s3Y1Zu.js +0 -34
  310. package/dist/deps-send-slack.runtime-Dqb-9qwc.js +0 -32
  311. package/dist/deps-send-whatsapp.runtime-0tUP9kuA.js +0 -119
  312. package/dist/image-runtime-C_sKgCPT.js +0 -55
  313. package/dist/plugin-sdk/deliver-runtime-Dx0Sg-lg.js +0 -32
  314. package/dist/plugin-sdk/deps-send-discord.runtime-bKwjojX0.js +0 -23
  315. package/dist/plugin-sdk/deps-send-imessage.runtime-DcxfdKGE.js +0 -22
  316. package/dist/plugin-sdk/deps-send-signal.runtime-79rGat6V.js +0 -21
  317. package/dist/plugin-sdk/deps-send-slack.runtime-DfMO701H.js +0 -19
  318. package/dist/plugin-sdk/deps-send-telegram.runtime-Bnjwm6SU.js +0 -24
  319. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CS50_Jgh.js +0 -57
  320. package/dist/plugin-sdk/image-runtime-f-WKB3Bx.js +0 -25
  321. package/dist/plugin-sdk/manager-runtime-DAKJEbuY.js +0 -15
  322. package/dist/plugin-sdk/pi-model-discovery-runtime-Bm4bHwpO.js +0 -8
  323. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D74eZbH7.js +0 -10
  324. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-BidSddX5.js +0 -19
  325. package/dist/plugin-sdk/slash-commands.runtime-CseiMacz.js +0 -13
  326. package/dist/plugin-sdk/slash-dispatch.runtime-88gX6CLk.js +0 -52
  327. package/dist/plugin-sdk/slash-skill-commands.runtime-BNrQNIZ7.js +0 -16
  328. package/dist/plugin-sdk/subagent-registry-runtime-Cv8RHTjT.js +0 -52
  329. package/dist/plugin-sdk/web-C4tTN9Xu.js +0 -56
  330. package/dist/register.configure-DJj2p4b3.js +0 -165
  331. package/dist/slash-dispatch.runtime-BpDcu-GU.js +0 -114
  332. package/dist/subagent-registry-runtime-DNx1w9Cr.js +0 -114
  333. package/dist/web-DfVBXj7E.js +0 -118
@@ -1,38 +1,38 @@
1
1
  import { g as resolveStateDir, m as resolveOAuthDir, o as resolveConfigPath } from "./paths-CHIu6D1E.js";
2
- import { A as formatPermissionRemediation, M as safeStat, Qt as normalizeTrustedSafeBinDirs, R as createConfigIO, Rn as INCLUDE_KEY, dt as isDangerousNetworkMode, ft as normalizeNetworkMode, j as inspectPathPermissions, k as formatPermissionDetail, zn as MAX_INCLUDE_DEPTH } from "./auth-profiles-BiJk4pUv.js";
2
+ import { A as formatPermissionRemediation, M as safeStat, Qt as normalizeTrustedSafeBinDirs, R as createConfigIO, Rn as INCLUDE_KEY, dt as isDangerousNetworkMode, ft as normalizeNetworkMode, j as inspectPathPermissions, k as formatPermissionDetail, zn as MAX_INCLUDE_DEPTH } from "./auth-profiles-ByQNLJzP.js";
3
3
  import { t as formatCliCommand } from "./command-format-D8-lYArk.js";
4
- import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, d as resolveDefaultAgentId } from "./agent-scope-DipdnGE4.js";
4
+ import { M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, d as resolveDefaultAgentId } from "./agent-scope-CfsErfyG.js";
5
5
  import { c as normalizeAgentId } from "./session-key-k6urs9r-.js";
6
6
  import { A as hasConfiguredSecretInput } from "./registry-BXcl3IkC.js";
7
7
  import { i as isPathInside, n as MANIFEST_KEY, r as extensionUsesSkippedScannerPath } from "./legacy-names-Q0o_2ITh.js";
8
- import { d as normalizePluginsConfig } from "./manifest-registry-7kwtbCH-.js";
9
- import { l as normalizeStringEntries } from "./dock-gKJjfuaV.js";
10
- import { i as loadWorkspaceSkillEntries } from "./skills-C85azDXm.js";
8
+ import { d as normalizePluginsConfig } from "./manifest-registry-1ACGW3OR.js";
9
+ import { l as normalizeStringEntries } from "./dock-0fXeq35m.js";
10
+ import { i as loadWorkspaceSkillEntries } from "./skills-EwyaIyKC.js";
11
11
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DqvtYF2o.js";
12
- import { n as listChannelPlugins } from "./plugins-DuLOFZmO.js";
13
- import { t as GatewayClient } from "./client-X5m1ssRl.js";
14
- import { l as READ_SCOPE, t as buildGatewayConnectionDetails } from "./call-G7vZ_wCI.js";
12
+ import { n as listChannelPlugins } from "./plugins-DFPxMLnR.js";
13
+ import { t as GatewayClient } from "./client-DFgW99bv.js";
14
+ import { l as READ_SCOPE, t as buildGatewayConnectionDetails } from "./call-BPIaCRGe.js";
15
15
  import { t as resolveGatewayCredentialsFromConfig } from "./credentials-CyQeGziJ.js";
16
- 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-CbGxVENW.js";
17
- import { a as resolveGatewayAuth } from "./auth-CgVB2OQr.js";
18
- import { a as resolveProfile, c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-C56AfkmJ.js";
16
+ 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-DaQ1ruwH.js";
17
+ import { a as resolveGatewayAuth } from "./auth-BLnmRBQV.js";
18
+ import { a as resolveProfile, c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-D9dHt5TX.js";
19
19
  import { r as formatErrorMessage } from "./errors-BnRmsfe-.js";
20
- import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-CYHAJAOy.js";
21
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled } from "./commands-Di_crduW.js";
22
- import { i as readChannelAllowFromStore } from "./pairing-store-BNRzMsGf.js";
23
- import { t as listAgentWorkspaceDirs } from "./workspace-dirs-CKrd0E4k.js";
24
- import { l as resolveDmAllowState, n as isToolAllowedByPolicies, o as pickSandboxToolPolicy } from "./pi-tools.policy-DgElG9m2.js";
20
+ import { r as resolveMergedSafeBinProfileFixtures, t as listInterpreterLikeSafeBins } from "./exec-safe-bin-runtime-policy-BOmyNeKa.js";
21
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled } from "./commands-Bn-GGRiA.js";
22
+ import { i as readChannelAllowFromStore } from "./pairing-store-BWvzmAq8.js";
23
+ import { t as listAgentWorkspaceDirs } from "./workspace-dirs-DJbX0g4E.js";
24
+ import { l as resolveDmAllowState, n as isToolAllowedByPolicies, o as pickSandboxToolPolicy } from "./pi-tools.policy-Bhg8uG0h.js";
25
25
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CXdnb6je.js";
26
26
  import { n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./dangerous-tools-Dpi4An5r.js";
27
27
  import { t as resolveChannelDefaultAccountId } from "./helpers-D7MilaX-.js";
28
- import { t as scanDirectoryWithSummary } from "./skill-scanner-CvS725eQ.js";
29
- import { r as resolveNodeCommandAllowlist, t as DEFAULT_DANGEROUS_NODE_COMMANDS } from "./node-command-policy--2bsadiu.js";
28
+ import { t as scanDirectoryWithSummary } from "./skill-scanner--QKHR8U0.js";
29
+ import { r as resolveNodeCommandAllowlist, t as DEFAULT_DANGEROUS_NODE_COMMANDS } from "./node-command-policy-X4KnAuD8.js";
30
30
  import { c as normalizeTelegramAllowFromEntry, s as isNumericTelegramUserId, t as isDiscordMutableAllowEntry } from "./mutable-allowlist-detectors-DHXBcz_e.js";
31
31
  import { t as inferParamBFromIdOrName } from "./model-param-b-scvX_s5g.js";
32
32
  import path from "node:path";
33
33
  import JSON5 from "json5";
34
- import * as fs$1 from "node:fs/promises";
35
- import fs from "node:fs/promises";
34
+ import * as fs from "node:fs/promises";
35
+ import fsPromises from "node:fs/promises";
36
36
  import { randomUUID } from "node:crypto";
37
37
  import { isIP } from "node:net";
38
38
 
@@ -1342,7 +1342,7 @@ async function collectIncludePathsRecursive(params) {
1342
1342
  if (visited.has(resolved)) continue;
1343
1343
  visited.add(resolved);
1344
1344
  result.push(resolved);
1345
- const rawText = await fs$1.readFile(resolved, "utf-8").catch(() => null);
1345
+ const rawText = await fs.readFile(resolved, "utf-8").catch(() => null);
1346
1346
  if (!rawText) continue;
1347
1347
  const nestedParsed = (() => {
1348
1348
  try {
@@ -1377,7 +1377,7 @@ function expandTilde(p, env) {
1377
1377
  }
1378
1378
  async function readPluginManifestExtensions(pluginPath) {
1379
1379
  const manifestPath = path.join(pluginPath, "package.json");
1380
- const raw = await fs.readFile(manifestPath, "utf-8").catch(() => "");
1380
+ const raw = await fsPromises.readFile(manifestPath, "utf-8").catch(() => "");
1381
1381
  if (!raw.trim()) return [];
1382
1382
  const extensions = JSON.parse(raw)?.[MANIFEST_KEY]?.extensions;
1383
1383
  if (!Array.isArray(extensions)) return [];
@@ -1399,7 +1399,7 @@ async function listInstalledPluginDirs(params) {
1399
1399
  };
1400
1400
  return {
1401
1401
  extensionsDir,
1402
- pluginDirs: (await fs.readdir(extensionsDir, { withFileTypes: true }).catch((err) => {
1402
+ pluginDirs: (await fsPromises.readdir(extensionsDir, { withFileTypes: true }).catch((err) => {
1403
1403
  params.onReadError?.(err);
1404
1404
  return [];
1405
1405
  })).filter((entry) => entry.isDirectory()).map((entry) => entry.name).filter(Boolean)
@@ -1462,7 +1462,7 @@ function isPinnedRegistrySpec(spec) {
1462
1462
  }
1463
1463
  async function readInstalledPackageVersion(dir) {
1464
1464
  try {
1465
- const raw = await fs.readFile(path.join(dir, "package.json"), "utf-8");
1465
+ const raw = await fsPromises.readFile(path.join(dir, "package.json"), "utf-8");
1466
1466
  const parsed = JSON.parse(raw);
1467
1467
  return typeof parsed.version === "string" ? parsed.version : void 0;
1468
1468
  } catch {
@@ -1498,10 +1498,10 @@ async function listWorkspaceSkillMarkdownFiles(workspaceDir) {
1498
1498
  const visitedDirs = /* @__PURE__ */ new Set();
1499
1499
  while (queue.length > 0 && skillFiles.length < MAX_WORKSPACE_SKILL_SCAN_FILES_PER_WORKSPACE) {
1500
1500
  const dir = queue.shift();
1501
- const dirRealPath = await fs.realpath(dir).catch(() => path.resolve(dir));
1501
+ const dirRealPath = await fsPromises.realpath(dir).catch(() => path.resolve(dir));
1502
1502
  if (visitedDirs.has(dirRealPath)) continue;
1503
1503
  visitedDirs.add(dirRealPath);
1504
- const entries = await fs.readdir(dir, { withFileTypes: true }).catch(() => []);
1504
+ const entries = await fsPromises.readdir(dir, { withFileTypes: true }).catch(() => []);
1505
1505
  for (const entry of entries) {
1506
1506
  if (entry.name.startsWith(".") || entry.name === "node_modules") continue;
1507
1507
  const fullPath = path.join(dir, entry.name);
@@ -1510,7 +1510,7 @@ async function listWorkspaceSkillMarkdownFiles(workspaceDir) {
1510
1510
  continue;
1511
1511
  }
1512
1512
  if (entry.isSymbolicLink()) {
1513
- const stat = await fs.stat(fullPath).catch(() => null);
1513
+ const stat = await fsPromises.stat(fullPath).catch(() => null);
1514
1514
  if (!stat) continue;
1515
1515
  if (stat.isDirectory()) {
1516
1516
  queue.push(fullPath);
@@ -1800,13 +1800,13 @@ async function collectWorkspaceSkillSymlinkEscapeFindings(params) {
1800
1800
  const seenSkillPaths = /* @__PURE__ */ new Set();
1801
1801
  for (const workspaceDir of workspaceDirs) {
1802
1802
  const workspacePath = path.resolve(workspaceDir);
1803
- const workspaceRealPath = await fs.realpath(workspacePath).catch(() => workspacePath);
1803
+ const workspaceRealPath = await fsPromises.realpath(workspacePath).catch(() => workspacePath);
1804
1804
  const skillFilePaths = await listWorkspaceSkillMarkdownFiles(workspacePath);
1805
1805
  for (const skillFilePath of skillFilePaths) {
1806
1806
  const canonicalSkillPath = path.resolve(skillFilePath);
1807
1807
  if (seenSkillPaths.has(canonicalSkillPath)) continue;
1808
1808
  seenSkillPaths.add(canonicalSkillPath);
1809
- const skillRealPath = await fs.realpath(canonicalSkillPath).catch(() => null);
1809
+ const skillRealPath = await fsPromises.realpath(canonicalSkillPath).catch(() => null);
1810
1810
  if (!skillRealPath) continue;
1811
1811
  if (isPathInside(workspaceRealPath, skillRealPath)) continue;
1812
1812
  escapedSkillFiles.push({
@@ -1,5 +1,5 @@
1
1
  import { t as safeEqualSecret } from "./secret-equal-Gla36CGi.js";
2
- import { a as isTrustedProxyAddress, l as resolveClientIp, n as isLoopbackAddress, t as isLocalishHost } from "./net-CggAM2eK.js";
2
+ import { a as isTrustedProxyAddress, l as resolveClientIp, n as isLoopbackAddress, t as isLocalishHost } from "./net-QB4dfP4-.js";
3
3
  import { n as resolveGatewayCredentialsFromValues } from "./credentials-CyQeGziJ.js";
4
4
  import { c as readTailscaleWhoisIdentity } from "./tailscale-DHGqQR08.js";
5
5
 
@@ -1,15 +1,15 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { Di as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, Dr as resolveDefaultModelForAgent, Ei as isHuggingfacePolicyLocked, Jn as listProfilesForProvider, Ni as KILOCODE_DEFAULT_MODEL_REF, Ti as discoverHuggingfaceModels, Zn as upsertAuthProfile, _ as parseOAuthCallbackInput, er as ensureAuthProfileStore, fi as getCustomProviderApiKey, g as generateChutesPkce, gi as resolveEnvApiKey, h as exchangeChutesCodeForTokens, m as CHUTES_AUTHORIZE_ENDPOINT, ni as SYNTHETIC_DEFAULT_MODEL_REF, qr as VENICE_DEFAULT_MODEL_REF, r as resolveAuthProfileOrder, sr as resolveSquidClawAgentDir } from "./auth-profiles-BiJk4pUv.js";
3
- import { A as resolveDefaultAgentWorkspaceDir, P as toAgentModelListLike, a as resolveAgentDir, d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-DipdnGE4.js";
4
- import { r as isLoopbackHost } from "./net-CggAM2eK.js";
5
- import { n as loadModelCatalog } from "./model-catalog-cPBfdmCZ.js";
6
- import { f as openUrl } from "./onboard-helpers-DfWsh9P_.js";
7
- import { t as enablePluginInConfig } from "./enable-Cbwq508X.js";
8
- import { a as normalizeSecretInputModeInput, c as resolveSecretInputModeForEnvSelection, d as normalizeApiKeyInput, f as validateApiKeyInput, i as ensureApiKeyFromOptionEnvOrPrompt, l as applyDefaultModelChoice, n as createAuthChoiceDefaultModelApplierForMutableState, o as normalizeTokenProviderInput, s as promptSecretRefForOnboarding, t as createAuthChoiceAgentModelNoter, u as ensureModelAllowlistEntry } from "./auth-choice.apply-helpers-C-L13mHO.js";
9
- import { $ as ZAI_DEFAULT_MODEL_REF, A as applyTogetherConfig, B as applyLitellmConfig, C as applyMoonshotProviderConfigCn, Ct as writeOAuthCredentials, D as applyQianfanProviderConfig, Dt as QIANFAN_DEFAULT_MODEL_REF, E as applyQianfanConfig, Et as MOONSHOT_DEFAULT_MODEL_REF, F as applyXaiProviderConfig, G as applyVercelAiGatewayProviderConfig, H as applyCloudflareAiGatewayConfig, I as applyXiaomiConfig, J as LITELLM_DEFAULT_MODEL_REF, K as applyAgentDefaultModelPrimary, L as applyXiaomiProviderConfig, M as applyVeniceConfig, N as applyVeniceProviderConfig, O as applySyntheticConfig, Ot as XAI_DEFAULT_MODEL_REF, P as applyXaiConfig, Q as XIAOMI_DEFAULT_MODEL_REF, R as applyZaiConfig, S as applyMoonshotProviderConfig, St as setZaiApiKey, T as applyOpenrouterProviderConfig, Tt as MISTRAL_DEFAULT_MODEL_REF, U as applyCloudflareAiGatewayProviderConfig, V as applyLitellmProviderConfig, W as applyVercelAiGatewayConfig, X as TOGETHER_DEFAULT_MODEL_REF, Y as OPENROUTER_DEFAULT_MODEL_REF, Z as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, _ as applyKimiCodeProviderConfig, _t as setVeniceApiKey, a as applyMinimaxApiConfig, at as setKilocodeApiKey, b as applyMoonshotConfig, bt as setXaiApiKey, c as applyMinimaxApiProviderConfigCn, ct as setMinimaxApiKey, d as applyAuthProfileConfig, dt as setOpenaiApiKey, et as setAnthropicApiKey, ft as setOpencodeZenApiKey, g as applyKimiCodeConfig, gt as setTogetherApiKey, h as applyKilocodeProviderConfig, ht as setSyntheticApiKey, i as applyOpencodeZenProviderConfig, it as setHuggingfaceApiKey, j as applyTogetherProviderConfig, k as applySyntheticProviderConfig, l as applyMinimaxConfig, lt as setMistralApiKey, m as applyKilocodeConfig, mt as setQianfanApiKey, n as validateAnthropicSetupToken, nt as setCloudflareAiGatewayConfig, o as applyMinimaxApiConfigCn, ot as setKimiCodingApiKey, p as applyHuggingfaceProviderConfig, pt as setOpenrouterApiKey, q as HUGGINGFACE_DEFAULT_MODEL_REF, r as applyOpencodeZenConfig, rt as setGeminiApiKey, s as applyMinimaxApiProviderConfig, st as setLitellmApiKey, t as buildTokenProfileId, tt as setByteplusApiKey, u as applyMinimaxProviderConfig, ut as setMoonshotApiKey, v as applyMistralConfig, vt as setVercelAiGatewayApiKey, w as applyOpenrouterConfig, wt as KIMI_CODING_MODEL_REF, x as applyMoonshotConfigCn, xt as setXiaomiApiKey, y as applyMistralProviderConfig, yt as setVolcengineApiKey, z as applyZaiProviderConfig } from "./auth-token-B3--XmAN.js";
10
- import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-DG7hKvxV.js";
11
- import { a as GOOGLE_GEMINI_DEFAULT_MODEL, i as detectZaiEndpoint, n as applyOpenAIConfig, o as applyGoogleGeminiModelDefault, r as applyOpenAIProviderConfig, t as OPENAI_DEFAULT_MODEL } from "./openai-model-default-BIEWI0T4.js";
12
- import { c as OPENAI_CODEX_DEFAULT_MODEL, l as applyOpenAICodexModelDefault, r as applyPrimaryModel, s as promptAndConfigureVllm } from "./model-picker-k5b4kcsx.js";
2
+ import { Di as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, Dr as resolveDefaultModelForAgent, Ei as isHuggingfacePolicyLocked, Jn as listProfilesForProvider, Ni as KILOCODE_DEFAULT_MODEL_REF, Ti as discoverHuggingfaceModels, Zn as upsertAuthProfile, _ as parseOAuthCallbackInput, er as ensureAuthProfileStore, fi as getCustomProviderApiKey, g as generateChutesPkce, gi as resolveEnvApiKey, h as exchangeChutesCodeForTokens, m as CHUTES_AUTHORIZE_ENDPOINT, ni as SYNTHETIC_DEFAULT_MODEL_REF, qr as VENICE_DEFAULT_MODEL_REF, r as resolveAuthProfileOrder, sr as resolveSquidClawAgentDir } from "./auth-profiles-ByQNLJzP.js";
3
+ import { A as resolveDefaultAgentWorkspaceDir, P as toAgentModelListLike, a as resolveAgentDir, d as resolveDefaultAgentId, u as resolveAgentWorkspaceDir } from "./agent-scope-CfsErfyG.js";
4
+ import { r as isLoopbackHost } from "./net-QB4dfP4-.js";
5
+ import { n as loadModelCatalog } from "./model-catalog-INp1o1zX.js";
6
+ import { f as openUrl } from "./onboard-helpers-D10-c0nt.js";
7
+ import { t as enablePluginInConfig } from "./enable-DMJvBRPK.js";
8
+ import { a as normalizeSecretInputModeInput, c as resolveSecretInputModeForEnvSelection, d as normalizeApiKeyInput, f as validateApiKeyInput, i as ensureApiKeyFromOptionEnvOrPrompt, l as applyDefaultModelChoice, n as createAuthChoiceDefaultModelApplierForMutableState, o as normalizeTokenProviderInput, s as promptSecretRefForOnboarding, t as createAuthChoiceAgentModelNoter, u as ensureModelAllowlistEntry } from "./auth-choice.apply-helpers-CjGIIfKh.js";
9
+ import { $ as ZAI_DEFAULT_MODEL_REF, A as applyTogetherConfig, B as applyLitellmConfig, C as applyMoonshotProviderConfigCn, Ct as writeOAuthCredentials, D as applyQianfanProviderConfig, Dt as QIANFAN_DEFAULT_MODEL_REF, E as applyQianfanConfig, Et as MOONSHOT_DEFAULT_MODEL_REF, F as applyXaiProviderConfig, G as applyVercelAiGatewayProviderConfig, H as applyCloudflareAiGatewayConfig, I as applyXiaomiConfig, J as LITELLM_DEFAULT_MODEL_REF, K as applyAgentDefaultModelPrimary, L as applyXiaomiProviderConfig, M as applyVeniceConfig, N as applyVeniceProviderConfig, O as applySyntheticConfig, Ot as XAI_DEFAULT_MODEL_REF, P as applyXaiConfig, Q as XIAOMI_DEFAULT_MODEL_REF, R as applyZaiConfig, S as applyMoonshotProviderConfig, St as setZaiApiKey, T as applyOpenrouterProviderConfig, Tt as MISTRAL_DEFAULT_MODEL_REF, U as applyCloudflareAiGatewayProviderConfig, V as applyLitellmProviderConfig, W as applyVercelAiGatewayConfig, X as TOGETHER_DEFAULT_MODEL_REF, Y as OPENROUTER_DEFAULT_MODEL_REF, Z as VERCEL_AI_GATEWAY_DEFAULT_MODEL_REF, _ as applyKimiCodeProviderConfig, _t as setVeniceApiKey, a as applyMinimaxApiConfig, at as setKilocodeApiKey, b as applyMoonshotConfig, bt as setXaiApiKey, c as applyMinimaxApiProviderConfigCn, ct as setMinimaxApiKey, d as applyAuthProfileConfig, dt as setOpenaiApiKey, et as setAnthropicApiKey, ft as setOpencodeZenApiKey, g as applyKimiCodeConfig, gt as setTogetherApiKey, h as applyKilocodeProviderConfig, ht as setSyntheticApiKey, i as applyOpencodeZenProviderConfig, it as setHuggingfaceApiKey, j as applyTogetherProviderConfig, k as applySyntheticProviderConfig, l as applyMinimaxConfig, lt as setMistralApiKey, m as applyKilocodeConfig, mt as setQianfanApiKey, n as validateAnthropicSetupToken, nt as setCloudflareAiGatewayConfig, o as applyMinimaxApiConfigCn, ot as setKimiCodingApiKey, p as applyHuggingfaceProviderConfig, pt as setOpenrouterApiKey, q as HUGGINGFACE_DEFAULT_MODEL_REF, r as applyOpencodeZenConfig, rt as setGeminiApiKey, s as applyMinimaxApiProviderConfig, st as setLitellmApiKey, t as buildTokenProfileId, tt as setByteplusApiKey, u as applyMinimaxProviderConfig, ut as setMoonshotApiKey, v as applyMistralConfig, vt as setVercelAiGatewayApiKey, w as applyOpenrouterConfig, wt as KIMI_CODING_MODEL_REF, x as applyMoonshotConfigCn, xt as setXiaomiApiKey, y as applyMistralProviderConfig, yt as setVolcengineApiKey, z as applyZaiProviderConfig } from "./auth-token-Gu6sWtZS.js";
10
+ import { a as createVpsAwareOAuthHandlers, c as githubCopilotLoginCommand, i as resolveProviderMatch, n as mergeConfigPatch, o as isRemoteEnvironment, r as pickAuthMethod, s as resolvePluginProviders, t as applyDefaultModel } from "./provider-auth-helpers-C_1HJDfj.js";
11
+ import { a as GOOGLE_GEMINI_DEFAULT_MODEL, i as detectZaiEndpoint, n as applyOpenAIConfig, o as applyGoogleGeminiModelDefault, r as applyOpenAIProviderConfig, t as OPENAI_DEFAULT_MODEL } from "./openai-model-default-lBZZvWbf.js";
12
+ import { c as OPENAI_CODEX_DEFAULT_MODEL, l as applyOpenAICodexModelDefault, r as applyPrimaryModel, s as promptAndConfigureVllm } from "./model-picker-DNBHh9Px.js";
13
13
  import { r as runOpenAIOAuthTlsPreflight, t as formatOpenAIOAuthTlsPreflightFix } from "./oauth-tls-preflight-6-9iUInB.js";
14
14
  import { loginOpenAICodex } from "@mariozechner/pi-ai";
15
15
  import { randomBytes } from "node:crypto";
@@ -2,10 +2,10 @@ import "./globals-BrhVUl-N.js";
2
2
  import "./paths-CHIu6D1E.js";
3
3
  import "./subsystem-Bw5n50gj.js";
4
4
  import "./boolean-DtWR5bt3.js";
5
- import { Ai as normalizeOptionalSecretInput, Sr as normalizeProviderId, Zn as upsertAuthProfile, ct as resolveDefaultSecretProviderAlias, d as resolveApiKeyForProfile, er as ensureAuthProfileStore, gi as resolveEnvApiKey, ji as normalizeSecretInput, pt as parseDurationMs, r as resolveAuthProfileOrder } from "./auth-profiles-BiJk4pUv.js";
6
- import "./agent-scope-DipdnGE4.js";
5
+ import { Ai as normalizeOptionalSecretInput, Sr as normalizeProviderId, Zn as upsertAuthProfile, ct as resolveDefaultSecretProviderAlias, d as resolveApiKeyForProfile, er as ensureAuthProfileStore, gi as resolveEnvApiKey, ji as normalizeSecretInput, pt as parseDurationMs, r as resolveAuthProfileOrder } from "./auth-profiles-ByQNLJzP.js";
6
+ import "./agent-scope-CfsErfyG.js";
7
7
  import "./utils-D6vohX1h.js";
8
- import "./squidclaw-root-BQfLymzj.js";
8
+ import "./squidclaw-root-JXyRbQLJ.js";
9
9
  import "./logger-DL3N22PJ.js";
10
10
  import "./exec-TSiqsZw1.js";
11
11
  import "./registry-BXcl3IkC.js";
@@ -13,16 +13,16 @@ import "./github-copilot-token-CxitgiZA.js";
13
13
  import "./host-env-security-lcjXF83D.js";
14
14
  import "./version-3so140Zi.js";
15
15
  import "./env-vars-mSSOl7Rv.js";
16
- import "./manifest-registry-7kwtbCH-.js";
17
- import "./models-config-C7GR26HJ.js";
18
- import "./model-catalog-cPBfdmCZ.js";
19
- import { a as normalizeSecretInputModeInput } from "./auth-choice.apply-helpers-C-L13mHO.js";
20
- import "./issue-format-NbalyyoF.js";
21
- import "./shared-4aGIUkwm.js";
22
- import { A as applyTogetherConfig, B as applyLitellmConfig, E as applyQianfanConfig, H as applyCloudflareAiGatewayConfig, I as applyXiaomiConfig, M as applyVeniceConfig, O as applySyntheticConfig, P as applyXaiConfig, R as applyZaiConfig, St as setZaiApiKey, W as applyVercelAiGatewayConfig, _t as setVeniceApiKey, a as applyMinimaxApiConfig, at as setKilocodeApiKey, b as applyMoonshotConfig, bt as setXaiApiKey, ct as setMinimaxApiKey, d as applyAuthProfileConfig, dt as setOpenaiApiKey, et as setAnthropicApiKey, f as applyHuggingfaceConfig, ft as setOpencodeZenApiKey, g as applyKimiCodeConfig, gt as setTogetherApiKey, ht as setSyntheticApiKey, it as setHuggingfaceApiKey, l as applyMinimaxConfig, lt as setMistralApiKey, m as applyKilocodeConfig, mt as setQianfanApiKey, n as validateAnthropicSetupToken, nt as setCloudflareAiGatewayConfig, o as applyMinimaxApiConfigCn, ot as setKimiCodingApiKey, pt as setOpenrouterApiKey, r as applyOpencodeZenConfig, rt as setGeminiApiKey, st as setLitellmApiKey, t as buildTokenProfileId, tt as setByteplusApiKey, ut as setMoonshotApiKey, v as applyMistralConfig, vt as setVercelAiGatewayApiKey, w as applyOpenrouterConfig, x as applyMoonshotConfigCn, xt as setXiaomiApiKey, yt as setVolcengineApiKey } from "./auth-token-B3--XmAN.js";
23
- import { i as detectZaiEndpoint, n as applyOpenAIConfig, o as applyGoogleGeminiModelDefault } from "./openai-model-default-BIEWI0T4.js";
24
- import { r as applyPrimaryModel } from "./model-picker-k5b4kcsx.js";
25
- import { i as parseNonInteractiveCustomApiFlags, n as applyCustomApiConfig, o as resolveCustomProviderId, t as CustomApiError } from "./onboard-custom-XW3Q4ERz.js";
16
+ import "./manifest-registry-1ACGW3OR.js";
17
+ import "./models-config-BNIPxtHv.js";
18
+ import "./model-catalog-INp1o1zX.js";
19
+ import { a as normalizeSecretInputModeInput } from "./auth-choice.apply-helpers-CjGIIfKh.js";
20
+ import "./issue-format-DzzpkEKh.js";
21
+ import "./shared-CJet4A6J.js";
22
+ import { A as applyTogetherConfig, B as applyLitellmConfig, E as applyQianfanConfig, H as applyCloudflareAiGatewayConfig, I as applyXiaomiConfig, M as applyVeniceConfig, O as applySyntheticConfig, P as applyXaiConfig, R as applyZaiConfig, St as setZaiApiKey, W as applyVercelAiGatewayConfig, _t as setVeniceApiKey, a as applyMinimaxApiConfig, at as setKilocodeApiKey, b as applyMoonshotConfig, bt as setXaiApiKey, ct as setMinimaxApiKey, d as applyAuthProfileConfig, dt as setOpenaiApiKey, et as setAnthropicApiKey, f as applyHuggingfaceConfig, ft as setOpencodeZenApiKey, g as applyKimiCodeConfig, gt as setTogetherApiKey, ht as setSyntheticApiKey, it as setHuggingfaceApiKey, l as applyMinimaxConfig, lt as setMistralApiKey, m as applyKilocodeConfig, mt as setQianfanApiKey, n as validateAnthropicSetupToken, nt as setCloudflareAiGatewayConfig, o as applyMinimaxApiConfigCn, ot as setKimiCodingApiKey, pt as setOpenrouterApiKey, r as applyOpencodeZenConfig, rt as setGeminiApiKey, st as setLitellmApiKey, t as buildTokenProfileId, tt as setByteplusApiKey, ut as setMoonshotApiKey, v as applyMistralConfig, vt as setVercelAiGatewayApiKey, w as applyOpenrouterConfig, x as applyMoonshotConfigCn, xt as setXiaomiApiKey, yt as setVolcengineApiKey } from "./auth-token-Gu6sWtZS.js";
23
+ import { i as detectZaiEndpoint, n as applyOpenAIConfig, o as applyGoogleGeminiModelDefault } from "./openai-model-default-lBZZvWbf.js";
24
+ import { r as applyPrimaryModel } from "./model-picker-DNBHh9Px.js";
25
+ import { i as parseNonInteractiveCustomApiFlags, n as applyCustomApiConfig, o as resolveCustomProviderId, t as CustomApiError } from "./onboard-custom-DIM8V39k.js";
26
26
 
27
27
  //#region src/commands/onboard-non-interactive/api-keys.ts
28
28
  function parseEnvVarNameFromSourceLabel(source) {
@@ -1,4 +1,4 @@
1
- import { Li as DEFAULT_PROVIDER, O as encodeJsonPointerToken, Tr as resolveAllowlistModelKey, ct as resolveDefaultSecretProviderAlias, gi as resolveEnvApiKey, ot as isValidFileSecretRefId, y as resolveSecretRefString } from "./auth-profiles-BiJk4pUv.js";
1
+ import { Li as DEFAULT_PROVIDER, O as encodeJsonPointerToken, Tr as resolveAllowlistModelKey, ct as resolveDefaultSecretProviderAlias, gi as resolveEnvApiKey, ot as isValidFileSecretRefId, y as resolveSecretRefString } from "./auth-profiles-ByQNLJzP.js";
2
2
  import { t as PROVIDER_ENV_VARS } from "./provider-env-vars-CDLIEZFR.js";
3
3
 
4
4
  //#region src/commands/auth-choice.api-key.ts
@@ -3,10 +3,10 @@ import { _ as expandHomePrefix, a as resolveCanonicalConfigPath, c as resolveDef
3
3
  import { c as stripAnsi, t as createSubsystemLogger } from "./subsystem-Bw5n50gj.js";
4
4
  import { r as isTruthyEnvValue } from "./entry.js";
5
5
  import { t as formatCliCommand } from "./command-format-D8-lYArk.js";
6
- import { N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, d as resolveDefaultAgentId, i as resolveAgentConfig, o as resolveAgentEffectiveModelPrimary, u as resolveAgentWorkspaceDir } from "./agent-scope-DipdnGE4.js";
6
+ import { N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, d as resolveDefaultAgentId, i as resolveAgentConfig, o as resolveAgentEffectiveModelPrimary, u as resolveAgentWorkspaceDir } from "./agent-scope-CfsErfyG.js";
7
7
  import { c as normalizeAgentId, t as DEFAULT_AGENT_ID, y as isBlockedObjectKey } from "./session-key-k6urs9r-.js";
8
8
  import { E as isPlainObject$2, S as sleep, h as resolveConfigDir, u as isRecord$2, v as resolveUserPath } from "./utils-D6vohX1h.js";
9
- import { a as openBoundaryFileSync, r as canUseBoundaryFileOpen } from "./squidclaw-root-BQfLymzj.js";
9
+ import { a as openBoundaryFileSync, r as canUseBoundaryFileOpen } from "./squidclaw-root-JXyRbQLJ.js";
10
10
  import { n as runExec } from "./exec-TSiqsZw1.js";
11
11
  import { A as hasConfiguredSecretInput, D as DEFAULT_SECRET_PROVIDER_ALIAS, F as resolveSecretInputRef, M as normalizeResolvedSecretInputString, N as normalizeSecretInputString, O as assertSecretInputResolved, P as parseEnvTemplateSecretRef, j as isSecretRef, k as coerceSecretRef, l as normalizeChatChannelId, t as CHANNEL_IDS } from "./registry-BXcl3IkC.js";
12
12
  import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-CxitgiZA.js";
@@ -14,8 +14,8 @@ import { i as sanitizeHostExecEnv } from "./host-env-security-lcjXF83D.js";
14
14
  import { t as VERSION } from "./version-3so140Zi.js";
15
15
  import { t as applyConfigEnvVars } from "./env-vars-mSSOl7Rv.js";
16
16
  import { i as isPathInside } from "./legacy-names-Q0o_2ITh.js";
17
- import { d as normalizePluginsConfig, f as resolveEffectiveEnableState, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision } from "./manifest-registry-7kwtbCH-.js";
18
- import { d as TOOLS_BY_SENDER_KEY_TYPES, f as parseToolsBySenderTypedKey } from "./dock-gKJjfuaV.js";
17
+ import { d as normalizePluginsConfig, f as resolveEffectiveEnableState, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision } from "./manifest-registry-1ACGW3OR.js";
18
+ import { d as TOOLS_BY_SENDER_KEY_TYPES, f as parseToolsBySenderTypedKey } from "./dock-0fXeq35m.js";
19
19
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-kzSMVKJz.js";
20
20
  import { createRequire } from "node:module";
21
21
  import { execFileSync, spawn } from "node:child_process";
@@ -24,7 +24,7 @@ import path from "node:path";
24
24
  import fs from "node:fs";
25
25
  import JSON5 from "json5";
26
26
  import { isDeepStrictEqual } from "node:util";
27
- import fs$1 from "node:fs/promises";
27
+ import fsPromises from "node:fs/promises";
28
28
  import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";
29
29
  import { createAssistantMessageEventStream, getEnvApiKey, getOAuthApiKey, getOAuthProviders } from "@mariozechner/pi-ai";
30
30
  import crypto, { createHash, randomBytes, randomUUID } from "node:crypto";
@@ -3559,7 +3559,7 @@ function computeDelayMs(retries, attempt) {
3559
3559
  }
3560
3560
  async function readLockPayload(lockPath) {
3561
3561
  try {
3562
- const raw = await fs$1.readFile(lockPath, "utf8");
3562
+ const raw = await fsPromises.readFile(lockPath, "utf8");
3563
3563
  const parsed = JSON.parse(raw);
3564
3564
  if (typeof parsed.pid !== "number" || typeof parsed.createdAt !== "string") return null;
3565
3565
  return {
@@ -3573,9 +3573,9 @@ async function readLockPayload(lockPath) {
3573
3573
  async function resolveNormalizedFilePath(filePath) {
3574
3574
  const resolved = path.resolve(filePath);
3575
3575
  const dir = path.dirname(resolved);
3576
- await fs$1.mkdir(dir, { recursive: true });
3576
+ await fsPromises.mkdir(dir, { recursive: true });
3577
3577
  try {
3578
- const realDir = await fs$1.realpath(dir);
3578
+ const realDir = await fsPromises.realpath(dir);
3579
3579
  return path.join(realDir, path.basename(resolved));
3580
3580
  } catch {
3581
3581
  return resolved;
@@ -3589,7 +3589,7 @@ async function isStaleLock(lockPath, staleMs) {
3589
3589
  if (!Number.isFinite(createdAt) || Date.now() - createdAt > staleMs) return true;
3590
3590
  }
3591
3591
  try {
3592
- const stat = await fs$1.stat(lockPath);
3592
+ const stat = await fsPromises.stat(lockPath);
3593
3593
  return Date.now() - stat.mtimeMs > staleMs;
3594
3594
  } catch {
3595
3595
  return true;
@@ -3602,7 +3602,7 @@ async function releaseHeldLock(normalizedFile) {
3602
3602
  if (current.count > 0) return;
3603
3603
  HELD_LOCKS.delete(normalizedFile);
3604
3604
  await current.handle.close().catch(() => void 0);
3605
- await fs$1.rm(current.lockPath, { force: true }).catch(() => void 0);
3605
+ await fsPromises.rm(current.lockPath, { force: true }).catch(() => void 0);
3606
3606
  }
3607
3607
  async function acquireFileLock(filePath, options) {
3608
3608
  const normalizedFile = await resolveNormalizedFilePath(filePath);
@@ -3617,7 +3617,7 @@ async function acquireFileLock(filePath, options) {
3617
3617
  }
3618
3618
  const attempts = Math.max(1, options.retries.retries + 1);
3619
3619
  for (let attempt = 0; attempt < attempts; attempt += 1) try {
3620
- const handle = await fs$1.open(lockPath, "wx");
3620
+ const handle = await fsPromises.open(lockPath, "wx");
3621
3621
  await handle.writeFile(JSON.stringify({
3622
3622
  pid: process.pid,
3623
3623
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -3634,7 +3634,7 @@ async function acquireFileLock(filePath, options) {
3634
3634
  } catch (err) {
3635
3635
  if (err.code !== "EEXIST") throw err;
3636
3636
  if (await isStaleLock(lockPath, options.stale)) {
3637
- await fs$1.rm(lockPath, { force: true }).catch(() => void 0);
3637
+ await fsPromises.rm(lockPath, { force: true }).catch(() => void 0);
3638
3638
  continue;
3639
3639
  }
3640
3640
  if (attempt >= attempts - 1) break;
@@ -14787,7 +14787,7 @@ function createIcaclsResetCommand(targetPath, opts) {
14787
14787
  //#region src/security/audit-fs.ts
14788
14788
  async function safeStat(targetPath) {
14789
14789
  try {
14790
- const lst = await fs$1.lstat(targetPath);
14790
+ const lst = await fsPromises.lstat(targetPath);
14791
14791
  return {
14792
14792
  ok: true,
14793
14793
  isSymlink: lst.isSymbolicLink(),
@@ -14826,7 +14826,7 @@ async function inspectPathPermissions(targetPath, opts) {
14826
14826
  let effectiveMode = st.mode;
14827
14827
  let effectiveIsDir = st.isDir;
14828
14828
  if (st.isSymlink) try {
14829
- const target = await fs$1.stat(targetPath);
14829
+ const target = await fsPromises.stat(targetPath);
14830
14830
  effectiveMode = typeof target.mode === "number" ? target.mode : st.mode;
14831
14831
  effectiveIsDir = target.isDirectory();
14832
14832
  } catch {}
@@ -15080,7 +15080,7 @@ async function assertSecurePath(params) {
15080
15080
  if (stat.isSymlink) {
15081
15081
  if (!params.allowSymlinkPath) throw new Error(`${params.label} must not be a symlink: ${effectivePath}`);
15082
15082
  try {
15083
- effectivePath = await fs$1.realpath(effectivePath);
15083
+ effectivePath = await fsPromises.realpath(effectivePath);
15084
15084
  } catch {
15085
15085
  throw new Error(`${params.label} symlink target is not readable: ${params.targetPath}`);
15086
15086
  }
@@ -15128,7 +15128,7 @@ async function readFileProviderPayload(params) {
15128
15128
  }, timeoutMs);
15129
15129
  });
15130
15130
  try {
15131
- const payload = await Promise.race([fs$1.readFile(secureFilePath, { signal: abortController.signal }), timeoutPromise]);
15131
+ const payload = await Promise.race([fsPromises.readFile(secureFilePath, { signal: abortController.signal }), timeoutPromise]);
15132
15132
  if (payload.byteLength > maxBytes) throw new Error(`File provider "${params.providerName}" exceeded maxBytes (${maxBytes}).`);
15133
15133
  const text = payload.toString("utf8");
15134
15134
  if (params.providerConfig.mode === "singleValue") return text.replace(/\r?\n$/, "");
@@ -1,6 +1,6 @@
1
1
  import { g as resolveStateDir } from "./paths-CHIu6D1E.js";
2
2
  import { t as createSubsystemLogger } from "./subsystem-Bw5n50gj.js";
3
- import { $r as TOGETHER_MODEL_CATALOG, Br as buildXiaomiProvider, Ci as HUGGINGFACE_MODEL_CATALOG, Di as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, Fr as QIANFAN_DEFAULT_MODEL_ID, Ir as XIAOMI_DEFAULT_MODEL_ID, Jr as VENICE_MODEL_CATALOG, Kr as VENICE_BASE_URL, Lr as buildKilocodeProvider, Mi as KILOCODE_BASE_URL, Ni as KILOCODE_DEFAULT_MODEL_REF, Oi as buildCloudflareAiGatewayModelDefinition, Pr as QIANFAN_BASE_URL, Qr as TOGETHER_BASE_URL, Rr as buildKimiCodingProvider, Si as HUGGINGFACE_BASE_URL, Sr as normalizeProviderId, Yr as buildVeniceModelDefinition, Zn as upsertAuthProfile, ei as buildTogetherModelDefinition, ii as buildSyntheticModelDefinition, ji as normalizeSecretInput, ki as resolveCloudflareAiGatewayBaseUrl, ni as SYNTHETIC_DEFAULT_MODEL_REF, qr as VENICE_DEFAULT_MODEL_REF, ri as SYNTHETIC_MODEL_CATALOG, sr as resolveSquidClawAgentDir, ti as SYNTHETIC_BASE_URL, wi as buildHuggingfaceModelDefinition, zr as buildQianfanProvider } from "./auth-profiles-BiJk4pUv.js";
3
+ import { $r as TOGETHER_MODEL_CATALOG, Br as buildXiaomiProvider, Ci as HUGGINGFACE_MODEL_CATALOG, Di as CLOUDFLARE_AI_GATEWAY_DEFAULT_MODEL_REF, Fr as QIANFAN_DEFAULT_MODEL_ID, Ir as XIAOMI_DEFAULT_MODEL_ID, Jr as VENICE_MODEL_CATALOG, Kr as VENICE_BASE_URL, Lr as buildKilocodeProvider, Mi as KILOCODE_BASE_URL, Ni as KILOCODE_DEFAULT_MODEL_REF, Oi as buildCloudflareAiGatewayModelDefinition, Pr as QIANFAN_BASE_URL, Qr as TOGETHER_BASE_URL, Rr as buildKimiCodingProvider, Si as HUGGINGFACE_BASE_URL, Sr as normalizeProviderId, Yr as buildVeniceModelDefinition, Zn as upsertAuthProfile, ei as buildTogetherModelDefinition, ii as buildSyntheticModelDefinition, ji as normalizeSecretInput, ki as resolveCloudflareAiGatewayBaseUrl, ni as SYNTHETIC_DEFAULT_MODEL_REF, qr as VENICE_DEFAULT_MODEL_REF, ri as SYNTHETIC_MODEL_CATALOG, sr as resolveSquidClawAgentDir, ti as SYNTHETIC_BASE_URL, wi as buildHuggingfaceModelDefinition, zr as buildQianfanProvider } from "./auth-profiles-ByQNLJzP.js";
4
4
  import { D as DEFAULT_SECRET_PROVIDER_ALIAS, k as coerceSecretRef } from "./registry-BXcl3IkC.js";
5
5
  import { t as PROVIDER_ENV_VARS } from "./provider-env-vars-CDLIEZFR.js";
6
6
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  import { f as isRich, p as theme, z as hasRootVersionAlias } from "./globals-BrhVUl-N.js";
2
2
  import { l as visibleWidth } from "./subsystem-Bw5n50gj.js";
3
- import { z as loadConfig } from "./auth-profiles-BiJk4pUv.js";
4
- import { Hn as resolveCommitHash } from "./subagent-registry-BE1B0_sO.js";
3
+ import { z as loadConfig } from "./auth-profiles-ByQNLJzP.js";
4
+ import { Hn as resolveCommitHash } from "./subagent-registry-o5rZt_4e.js";
5
5
 
6
6
  //#region src/cli/tagline.ts
7
7
  const DEFAULT_TAGLINE = "All your chats, one SquidClaw.";
@@ -1,5 +1,5 @@
1
1
  import { t as runCommandWithTimeout } from "./exec-TSiqsZw1.js";
2
- import { t as isTailnetIPv4 } from "./tailnet-BlV0IR7G.js";
2
+ import { t as isTailnetIPv4 } from "./tailnet-QKMSnz19.js";
3
3
  import { n as resolveWideAreaDiscoveryDomain } from "./widearea-dns-BCMIEFUS.js";
4
4
 
5
5
  //#region src/infra/bonjour-discovery.ts
@@ -2,11 +2,11 @@ import { n as info, p as theme, t as danger } from "./globals-BrhVUl-N.js";
2
2
  import { g as resolveStateDir } from "./paths-CHIu6D1E.js";
3
3
  import { d as defaultRuntime } from "./subsystem-Bw5n50gj.js";
4
4
  import { t as parseBooleanValue } from "./boolean-DtWR5bt3.js";
5
- import { z as loadConfig } from "./auth-profiles-BiJk4pUv.js";
5
+ import { z as loadConfig } from "./auth-profiles-ByQNLJzP.js";
6
6
  import { t as formatCliCommand } from "./command-format-D8-lYArk.js";
7
- import "./agent-scope-DipdnGE4.js";
7
+ import "./agent-scope-CfsErfyG.js";
8
8
  import { x as shortenHomePath } from "./utils-D6vohX1h.js";
9
- import "./squidclaw-root-BQfLymzj.js";
9
+ import "./squidclaw-root-JXyRbQLJ.js";
10
10
  import "./logger-DL3N22PJ.js";
11
11
  import "./exec-TSiqsZw1.js";
12
12
  import "./registry-BXcl3IkC.js";
@@ -14,25 +14,25 @@ import "./github-copilot-token-CxitgiZA.js";
14
14
  import "./host-env-security-lcjXF83D.js";
15
15
  import "./version-3so140Zi.js";
16
16
  import "./env-vars-mSSOl7Rv.js";
17
- import "./manifest-registry-7kwtbCH-.js";
18
- import "./path-alias-guards-vfYYQFIg.js";
17
+ import "./manifest-registry-1ACGW3OR.js";
18
+ import "./path-alias-guards-DeOVetT7.js";
19
19
  import "./message-channel-DqvtYF2o.js";
20
- import "./client-X5m1ssRl.js";
21
- import "./call-G7vZ_wCI.js";
20
+ import "./client-DFgW99bv.js";
21
+ import "./call-BPIaCRGe.js";
22
22
  import "./pairing-token-B_ig96RO.js";
23
- import "./net-CggAM2eK.js";
24
- import "./tailnet-BlV0IR7G.js";
25
- import { c as normalizeBrowserFormField, i as resolveExistingPathsWithinRoot, l as normalizeBrowserFormFieldValue, r as DEFAULT_UPLOAD_DIR } from "./paths-DfuVHiHu.js";
23
+ import "./net-QB4dfP4-.js";
24
+ import "./tailnet-QKMSnz19.js";
25
+ import { c as normalizeBrowserFormField, i as resolveExistingPathsWithinRoot, l as normalizeBrowserFormFieldValue, r as DEFAULT_UPLOAD_DIR } from "./paths-D6mnO6Ni.js";
26
26
  import "./redact-DknVdX-O.js";
27
27
  import "./errors-BnRmsfe-.js";
28
- import "./fs-safe-DPYj7h8A.js";
28
+ import "./fs-safe-BPQ-per2.js";
29
29
  import { t as movePathToTrash } from "./trash-DUuU677G.js";
30
30
  import { t as formatDocsLink } from "./links-Dye6HsRG.js";
31
31
  import { n as runCommandWithRuntime } from "./cli-utils-BKqG4ZT-.js";
32
32
  import { t as formatHelpExamples } from "./help-format-CpR5cEGe.js";
33
33
  import "./progress-DuhDspl6.js";
34
34
  import { n as inheritOptionFromParent } from "./command-options-DVCpMofi.js";
35
- import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-CyI4qv4e.js";
35
+ import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-mBKSbosL.js";
36
36
  import { t as copyToClipboard } from "./clipboard-DFi9X9K_.js";
37
37
  import { fileURLToPath } from "node:url";
38
38
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "3.3.0",
3
- "commit": "c023c6726bcddf3287a05d16df52fd845c7e1292",
4
- "builtAt": "2026-04-02T20:16:02.828Z"
2
+ "version": "3.3.1",
3
+ "commit": "4240765b7c7a095285e2e0685c04baedd9d0b8c5",
4
+ "builtAt": "2026-04-02T20:48:09.878Z"
5
5
  }
@@ -880,7 +880,7 @@ async function syncLongTermContextFile(params) {
880
880
  * Creates a new dated memory file with LLM-generated slug
881
881
  */
882
882
  const log = createSubsystemLogger("hooks/session-memory");
883
- const AUTO_EXTRACT_EVERY_TURNS = 5;
883
+ const AUTO_EXTRACT_EVERY_TURNS = 2;
884
884
  const sessionTurnBuffers = /* @__PURE__ */ new Map();
885
885
  /**
886
886
  * Read recent messages from session file for slug generation
@@ -974,9 +974,20 @@ function buildPeerMemoryContext(dbPath, agentId, peerId) {
974
974
  agentId,
975
975
  userId: peerId
976
976
  });
977
- const semantic = manager.getActiveSemantic(20);
978
- const episodic = manager.getRecentEpisodic(10);
979
- const working = manager.getLatestWorkingMemory(3);
977
+ let semantic = manager.getActiveSemantic(20);
978
+ let episodic = manager.getImportantEpisodic(10);
979
+ let working = manager.getLatestWorkingMemory(3);
980
+ if (semantic.length === 0 && episodic.length === 0 && working.length === 0 && peerId !== agentId) {
981
+ const fallbackManager = new MemoryManager({
982
+ dbPath,
983
+ agentId,
984
+ userId: agentId
985
+ });
986
+ semantic = fallbackManager.getActiveSemantic(20);
987
+ episodic = fallbackManager.getImportantEpisodic(10);
988
+ working = fallbackManager.getLatestWorkingMemory(3);
989
+ fallbackManager.close();
990
+ }
980
991
  manager.close();
981
992
  if (semantic.length === 0 && episodic.length === 0 && working.length === 0) return null;
982
993
  const lines = ["## Your Memory\n*What I remember about you from previous conversations.*\n"];
@@ -1123,6 +1134,7 @@ const saveSessionToMemory = async (event) => {
1123
1134
  const dbPath = path.join(workspaceDir, "memory", "long-term.db");
1124
1135
  const sessionContent = buf.turns.join("\n");
1125
1136
  log.debug(`Auto-extracting memories for ${userId} after ${completedTurns} turns`);
1137
+ const ownerPeerId = cfg?.agents?.defaults?.ownerPeerId;
1126
1138
  setImmediate(() => {
1127
1139
  runLongTermExtraction({
1128
1140
  sessionContent,
@@ -1133,9 +1145,26 @@ const saveSessionToMemory = async (event) => {
1133
1145
  userId,
1134
1146
  dbPath
1135
1147
  }).then(async () => {
1136
- const refreshedContent = buildPeerMemoryContext(dbPath, agentId ?? "default", userId);
1137
- if (refreshedContent) await writePeerContextFileToDisk(workspaceDir, userId, refreshedContent);
1138
- await syncTasksFile(workspaceDir, agentId ?? "default", dbPath);
1148
+ const resolvedAgentId = agentId ?? "default";
1149
+ const refreshedContent = buildPeerMemoryContext(dbPath, resolvedAgentId, userId);
1150
+ if (refreshedContent) {
1151
+ await writePeerContextFileToDisk(workspaceDir, userId, refreshedContent);
1152
+ if (userId === ownerPeerId || userId === resolvedAgentId) {
1153
+ const manager = new MemoryManager({
1154
+ dbPath,
1155
+ agentId: resolvedAgentId,
1156
+ userId
1157
+ });
1158
+ await syncLongTermContextFile({
1159
+ manager,
1160
+ workspaceDir,
1161
+ userId,
1162
+ agentId: resolvedAgentId
1163
+ });
1164
+ manager.close();
1165
+ }
1166
+ }
1167
+ await syncTasksFile(workspaceDir, resolvedAgentId, dbPath);
1139
1168
  }).catch((err) => log.debug("Auto-extraction failed (non-fatal)", { error: String(err) }));
1140
1169
  });
1141
1170
  }
@@ -1,22 +1,22 @@
1
1
  import { g as resolveStateDir, o as resolveConfigPath, u as resolveGatewayPort } from "./paths-CHIu6D1E.js";
2
- import { lt as secretRefKey, x as resolveSecretRefValues, z as loadConfig } from "./auth-profiles-BiJk4pUv.js";
2
+ import { lt as secretRefKey, x as resolveSecretRefValues, z as loadConfig } from "./auth-profiles-ByQNLJzP.js";
3
3
  import { b as shortenHomeInString, s as ensureDir, t as CONFIG_DIR, v as resolveUserPath } from "./utils-D6vohX1h.js";
4
4
  import { A as hasConfiguredSecretInput, F as resolveSecretInputRef } from "./registry-BXcl3IkC.js";
5
5
  import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DqvtYF2o.js";
6
- import { Mt as PROTOCOL_VERSION, en as normalizeFingerprint, nn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-X5m1ssRl.js";
7
- import { i as isSecureWebSocketUrl } from "./net-CggAM2eK.js";
6
+ import { Mt as PROTOCOL_VERSION, en as normalizeFingerprint, nn as loadOrCreateDeviceIdentity, t as GatewayClient } from "./client-DFgW99bv.js";
7
+ import { i as isSecureWebSocketUrl } from "./net-QB4dfP4-.js";
8
8
  import { t as resolveGatewayCredentialsFromConfig } from "./credentials-CyQeGziJ.js";
9
9
  import { execFile } from "node:child_process";
10
10
  import path from "node:path";
11
11
  import { promisify } from "node:util";
12
- import fs from "node:fs/promises";
12
+ import fsPromises from "node:fs/promises";
13
13
  import { X509Certificate, randomUUID } from "node:crypto";
14
14
 
15
15
  //#region src/infra/tls/gateway.ts
16
16
  const execFileAsync = promisify(execFile);
17
17
  async function fileExists(filePath) {
18
18
  try {
19
- await fs.access(filePath);
19
+ await fsPromises.access(filePath);
20
20
  return true;
21
21
  } catch {
22
22
  return false;
@@ -43,8 +43,8 @@ async function generateSelfSignedCert(params) {
43
43
  "-subj",
44
44
  "/CN=squidclaw-gateway"
45
45
  ]);
46
- await fs.chmod(params.keyPath, 384).catch(() => {});
47
- await fs.chmod(params.certPath, 384).catch(() => {});
46
+ await fsPromises.chmod(params.keyPath, 384).catch(() => {});
47
+ await fsPromises.chmod(params.certPath, 384).catch(() => {});
48
48
  params.log?.info?.(`gateway tls: generated self-signed cert at ${shortenHomeInString(params.certPath)}`);
49
49
  }
50
50
  async function loadGatewayTlsRuntime(cfg, log) {
@@ -82,9 +82,9 @@ async function loadGatewayTlsRuntime(cfg, log) {
82
82
  error: "gateway tls: cert/key missing"
83
83
  };
84
84
  try {
85
- const cert = await fs.readFile(certPath, "utf8");
86
- const key = await fs.readFile(keyPath, "utf8");
87
- const ca = caPath ? await fs.readFile(caPath, "utf8") : void 0;
85
+ const cert = await fsPromises.readFile(certPath, "utf8");
86
+ const key = await fsPromises.readFile(keyPath, "utf8");
87
+ const ca = caPath ? await fsPromises.readFile(caPath, "utf8") : void 0;
88
88
  const fingerprintSha256 = normalizeFingerprint(new X509Certificate(cert).fingerprint256 ?? "");
89
89
  if (!fingerprintSha256) return {
90
90
  enabled: false,
@@ -2,7 +2,7 @@ import { t as runCommandWithTimeout } from "./exec-TSiqsZw1.js";
2
2
  import { n as fetchWithTimeout } from "./fetch-timeout-Mawkd1Br.js";
3
3
  import { t as resolveChannelDefaultAccountId } from "./helpers-D7MilaX-.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/infra/update-channels.ts
8
8
  const DEFAULT_PACKAGE_CHANNEL = "stable";
@@ -86,11 +86,11 @@ function resolveUpdateChannelDisplay(params) {
86
86
  //#region src/infra/detect-package-manager.ts
87
87
  async function detectPackageManager$1(root) {
88
88
  try {
89
- const raw = await fs.readFile(path.join(root, "package.json"), "utf-8");
89
+ const raw = await fsPromises.readFile(path.join(root, "package.json"), "utf-8");
90
90
  const pm = JSON.parse(raw)?.packageManager?.split("@")[0]?.trim();
91
91
  if (pm === "pnpm" || pm === "bun" || pm === "npm") return pm;
92
92
  } catch {}
93
- const files = await fs.readdir(root).catch(() => []);
93
+ const files = await fsPromises.readdir(root).catch(() => []);
94
94
  if (files.includes("pnpm-lock.yaml")) return "pnpm";
95
95
  if (files.includes("bun.lockb")) return "bun";
96
96
  if (files.includes("package-lock.json")) return "npm";
@@ -112,7 +112,7 @@ function formatGitInstallLabel(update) {
112
112
  }
113
113
  async function exists(p) {
114
114
  try {
115
- await fs.access(p);
115
+ await fsPromises.access(p);
116
116
  return true;
117
117
  } catch {
118
118
  return false;
@@ -239,7 +239,7 @@ async function checkGitUpdateStatus(params) {
239
239
  }
240
240
  async function statMtimeMs(p) {
241
241
  try {
242
- return (await fs.stat(p)).mtimeMs;
242
+ return (await fsPromises.stat(p)).mtimeMs;
243
243
  } catch {
244
244
  return null;
245
245
  }