@qwen-code/qwen-code 0.20.0-nightly.20260721.cda0e0348 → 0.20.0-preview.0

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 (328) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -1
  2. package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
  3. package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
  4. package/bundled/qc-helper/docs/integration-github-action.md +9 -9
  5. package/bundled/review/DESIGN.md +2 -2
  6. package/bundled/review/SKILL.md +4 -4
  7. package/chunks/{MaxSizedBox-EE76OHAP.js → MaxSizedBox-53BTJ3JK.js} +41 -34
  8. package/chunks/{StandaloneSessionPicker-WZH4PC3K.js → StandaloneSessionPicker-VMFIXQ44.js} +57 -50
  9. package/chunks/{acpAgent-2ATF4LMP.js → acpAgent-5WYAVSFG.js} +1135 -428
  10. package/chunks/{agent-KTOOFWMV.js → agent-44FM7PBX.js} +37 -30
  11. package/chunks/agent-headless-CDBMKM44.js +68 -0
  12. package/chunks/{anthropicContentGenerator-W4JLNYWQ.js → anthropicContentGenerator-NMSS7IMV.js} +13 -12
  13. package/chunks/{artifact-tool-WBCAMD3O.js → artifact-tool-56T5IMBP.js} +3 -3
  14. package/chunks/{askUserQuestion-6DZC4UV5.js → askUserQuestion-E25OBIC2.js} +3 -3
  15. package/chunks/{bridge-T4TLAZSJ.js → bridge-IQZT3KU2.js} +42 -35
  16. package/chunks/{build-SSCNEHZZ.js → build-GHIZ4MSZ.js} +1 -1
  17. package/chunks/{ca-ISKASTR5.js → ca-N6VVUFVB.js} +5 -1
  18. package/chunks/{channel-worker-group-QZV2SP5U.js → channel-worker-group-LFBT7K64.js} +3 -3
  19. package/chunks/{channel-worker-manager-3GMAU45H.js → channel-worker-manager-3RUPERG2.js} +3 -3
  20. package/chunks/{channel-worker-supervisor-QCXSXCRY.js → channel-worker-supervisor-A3KVATD3.js} +2 -2
  21. package/chunks/{chunk-OV2KB55J.js → chunk-22OH7L7I.js} +5 -5
  22. package/chunks/chunk-2RFKHEXL.js +74 -0
  23. package/chunks/{chunk-KRI4VCHX.js → chunk-45AIVIUL.js} +9 -9
  24. package/chunks/{chunk-2GFRA3MN.js → chunk-45DNGJKC.js} +3 -3
  25. package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
  26. package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
  27. package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
  28. package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
  29. package/chunks/{chunk-6EFTQYW7.js → chunk-5I5BM454.js} +1 -1
  30. package/chunks/{chunk-JR6UJ24K.js → chunk-5JX7FPHW.js} +2 -2
  31. package/chunks/{chunk-25Y6JSH2.js → chunk-5MZSD2JX.js} +6 -6
  32. package/chunks/{chunk-GPILFVPY.js → chunk-66RKDODM.js} +1 -1
  33. package/chunks/{chunk-L4YSPHR4.js → chunk-6AWRQ4T2.js} +8 -6
  34. package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
  35. package/chunks/{chunk-JQMBPGOU.js → chunk-6NHK6HS7.js} +3 -3
  36. package/chunks/{chunk-EDMGFJ3E.js → chunk-6OHCY3OB.js} +2 -2
  37. package/chunks/chunk-6PVPNMXU.js +29 -0
  38. package/chunks/{chunk-NO6XTCYT.js → chunk-6RQ5IPUX.js} +18366 -16879
  39. package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
  40. package/chunks/chunk-7362QS5B.js +2256 -0
  41. package/chunks/{chunk-USTF7LPI.js → chunk-7KZ2KYAD.js} +27 -23
  42. package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
  43. package/chunks/{chunk-ABIL4ZQU.js → chunk-A7CUSHP7.js} +1 -1
  44. package/chunks/{chunk-246TW4IX.js → chunk-BEKZWVJJ.js} +3 -373
  45. package/chunks/{chunk-LC5CAVMS.js → chunk-BKZEHVPV.js} +171 -169
  46. package/chunks/{chunk-4CWPMWCD.js → chunk-BRHHXGWL.js} +6 -4
  47. package/chunks/{chunk-AY3CSB6F.js → chunk-BXXWWCLA.js} +4 -4
  48. package/chunks/{chunk-G45NOBV7.js → chunk-C3YZ5CLY.js} +7 -6
  49. package/chunks/{chunk-XCHUDLER.js → chunk-CHLNJN3C.js} +1 -1
  50. package/chunks/{chunk-JRW46GQX.js → chunk-CJTAUXKG.js} +3 -3
  51. package/chunks/{chunk-KTNIZG2C.js → chunk-CMRYLH67.js} +2 -2
  52. package/chunks/{chunk-WQQDJE2P.js → chunk-DKZISEDB.js} +54 -51
  53. package/chunks/{chunk-2ITGJJE2.js → chunk-DORJSBMF.js} +6 -6
  54. package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
  55. package/chunks/{chunk-7KGXAXF7.js → chunk-E5MVGARW.js} +1 -1
  56. package/chunks/{chunk-FYA3Y5JR.js → chunk-EJFHUF3D.js} +5 -5
  57. package/chunks/{chunk-CG2HPAVD.js → chunk-EPN5MKRH.js} +2 -2
  58. package/chunks/{chunk-NEEB7UEN.js → chunk-FFFM6NJV.js} +1 -2
  59. package/chunks/chunk-FMXMKPI5.js +1780 -0
  60. package/chunks/{chunk-FEOZBUMT.js → chunk-FODK6UMO.js} +0 -27
  61. package/chunks/{chunk-DZZIOIVF.js → chunk-FSXCGBXB.js} +1 -1
  62. package/chunks/chunk-GLNBDYUX.js +38 -0
  63. package/chunks/{chunk-6MC5ASQK.js → chunk-GOWMC4CS.js} +4 -4
  64. package/chunks/{chunk-OONJNQ42.js → chunk-GPSKDNEE.js} +3 -3
  65. package/chunks/{chunk-W3BKN3LO.js → chunk-GZBHRTNM.js} +1 -1
  66. package/chunks/{chunk-XVVH63JG.js → chunk-H4AR2JQF.js} +3 -3
  67. package/chunks/{chunk-LWQ4IAOJ.js → chunk-H4OWOFZL.js} +2 -2
  68. package/chunks/chunk-HTR4WV6U.js +327 -0
  69. package/chunks/{chunk-IYZENXFW.js → chunk-IE7TPOXP.js} +1 -1
  70. package/chunks/{chunk-R3VZNHRX.js → chunk-IT27F3ES.js} +290 -80
  71. package/chunks/{chunk-5JX5EWR5.js → chunk-J3VSRG5Y.js} +61 -21
  72. package/chunks/{chunk-R5N7NF5D.js → chunk-J63IP5ZT.js} +7 -7
  73. package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
  74. package/chunks/{chunk-U4VGYZN7.js → chunk-JD5FHQ3N.js} +3 -3
  75. package/chunks/{chunk-5WG2K5RH.js → chunk-JIHHXJFH.js} +90 -31
  76. package/chunks/{chunk-AWVS63WA.js → chunk-JJEFX6U5.js} +28 -1766
  77. package/chunks/{chunk-5PZ6R37W.js → chunk-JT7HACMQ.js} +2 -2
  78. package/chunks/{chunk-2GOPPEHK.js → chunk-JWJVZHT5.js} +2 -2
  79. package/chunks/{chunk-FZVSFBNW.js → chunk-JYS55H6Z.js} +41 -1
  80. package/chunks/{chunk-6DHWO5ZF.js → chunk-K4VB66QF.js} +11 -11
  81. package/chunks/{chunk-EIAK6Q2B.js → chunk-KHOVYUHX.js} +2 -2
  82. package/chunks/{chunk-2CWOJ2FA.js → chunk-KNTYRZD4.js} +8 -8
  83. package/chunks/{chunk-ACW3VNUE.js → chunk-KQQ757OQ.js} +1 -1
  84. package/chunks/chunk-KWK7UE6L.js +6194 -0
  85. package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
  86. package/chunks/{chunk-4RA7PWIY.js → chunk-LMQNDPVP.js} +3 -3
  87. package/chunks/chunk-M7WBGLYP.js +151 -0
  88. package/chunks/chunk-NABLFI57.js +82 -0
  89. package/chunks/{chunk-EZVDJFZ7.js → chunk-NPQDJGKU.js} +1 -1
  90. package/chunks/{chunk-GH7OEOYU.js → chunk-NYPUWHHC.js} +4 -4
  91. package/chunks/{chunk-DMRO4GU2.js → chunk-OAGG6CRR.js} +1 -1
  92. package/chunks/chunk-OQ5SYCPE.js +10017 -0
  93. package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
  94. package/chunks/chunk-OZYV6F53.js +391 -0
  95. package/chunks/{chunk-EAUYY7SS.js → chunk-Q2YKNMLS.js} +3 -3
  96. package/chunks/{chunk-PYNCSQSI.js → chunk-Q6DEGTYO.js} +50 -1493
  97. package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
  98. package/chunks/{chunk-32F7BZSK.js → chunk-QD6BRERJ.js} +2 -2
  99. package/chunks/{chunk-6RVJRVQR.js → chunk-QF4DPYPH.js} +1 -1
  100. package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
  101. package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
  102. package/chunks/{chunk-XZOBDSDG.js → chunk-QTROYZUC.js} +83 -39
  103. package/chunks/{chunk-BWK3FX3K.js → chunk-RAUHV362.js} +3 -3
  104. package/chunks/{chunk-JPRLCXAO.js → chunk-RUNR5DAE.js} +4 -4
  105. package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
  106. package/chunks/{chunk-E5QFCC4X.js → chunk-RWCQJC5W.js} +51 -35
  107. package/chunks/{chunk-BUKOHGBE.js → chunk-S4BT3PX3.js} +3 -3
  108. package/chunks/{chunk-PFKNXN67.js → chunk-SOMSZ6W3.js} +13 -8
  109. package/chunks/{chunk-JNWZQ27S.js → chunk-SP5WRGVG.js} +3 -3
  110. package/chunks/{chunk-FSL5W5TI.js → chunk-T2L47JJK.js} +3 -3
  111. package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
  112. package/chunks/chunk-TJQXJJX7.js +121 -0
  113. package/chunks/chunk-U7ZFW55U.js +2098 -0
  114. package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
  115. package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
  116. package/chunks/{chunk-WRRF6TEQ.js → chunk-VHYCUGOT.js} +5 -1
  117. package/chunks/{chunk-LLDGOZMJ.js → chunk-VI7UU7ZI.js} +4 -4
  118. package/chunks/{chunk-IM2A6YO3.js → chunk-VLBJ7ZUG.js} +1 -1
  119. package/chunks/{chunk-CUJX3F4X.js → chunk-VTKWURCJ.js} +5 -5
  120. package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
  121. package/chunks/chunk-WHGVTP7Q.js +1049 -0
  122. package/chunks/{chunk-5YVZ2XLV.js → chunk-X6KLM4LZ.js} +8 -8
  123. package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
  124. package/chunks/{chunk-B452RETY.js → chunk-XFWD3PCA.js} +1 -1
  125. package/chunks/chunk-XHATNRQA.js +1500 -0
  126. package/chunks/{chunk-YGIUIIIF.js → chunk-XP32LURS.js} +3 -3
  127. package/chunks/{chunk-FCUUJKZF.js → chunk-YDLVKCZJ.js} +496 -278
  128. package/chunks/{chunk-OP4MOGXF.js → chunk-YM3SZTH4.js} +8 -1
  129. package/chunks/{chunk-GKY2OJ7R.js → chunk-ZHERRXZJ.js} +1 -1
  130. package/chunks/chunk-ZJVVETCV.js +20600 -0
  131. package/chunks/{computer-use-M6MGRJF2.js → computer-use-FMEBQMCB.js} +42 -35
  132. package/chunks/{config-utils-MOGE4EVB.js → config-utils-WYUQ7II4.js} +1 -1
  133. package/chunks/contextCommand-5YK3QNNJ.js +73 -0
  134. package/chunks/{create-sub-session-P26FE5GG.js → create-sub-session-AZ77LBL3.js} +3 -3
  135. package/chunks/{create-sub-session-MB35IHCR.js → create-sub-session-MLELTOCW.js} +37 -30
  136. package/chunks/{cron-create-JWFHBDRQ.js → cron-create-KTWJM7QT.js} +5 -5
  137. package/chunks/{cron-delete-GDX4E26G.js → cron-delete-2P3I5ULL.js} +5 -5
  138. package/chunks/{cron-list-USMAIWPT.js → cron-list-PXDPGEDQ.js} +5 -5
  139. package/chunks/daemon-status-provider-FXMOD242.js +81 -0
  140. package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
  141. package/chunks/{dist-VGJTZL4E.js → dist-XRYV6TJP.js} +32 -3
  142. package/chunks/{earlyInputCapture-7QJX25AC.js → earlyInputCapture-N3J42S2G.js} +38 -31
  143. package/chunks/{edit-BTPQWGAA.js → edit-T6GO7VPW.js} +42 -37
  144. package/chunks/{en-XE34GKAA.js → en-USMCCJAJ.js} +5 -1
  145. package/chunks/{enter-worktree-N3SEYKOO.js → enter-worktree-OL3FMR3A.js} +42 -35
  146. package/chunks/{enterPlanMode-TN2JV5MY.js → enterPlanMode-LEP7BSBX.js} +42 -35
  147. package/chunks/{environment-HP6RK262.js → environment-6LNBH2LJ.js} +39 -32
  148. package/chunks/{errors-VHGRDDOQ.js → errors-IM3H4DNG.js} +39 -32
  149. package/chunks/{exit-worktree-FI3SQY3U.js → exit-worktree-6MOANJMY.js} +42 -35
  150. package/chunks/{exitPlanMode-NZWRVIIY.js → exitPlanMode-VLBSWDJK.js} +42 -35
  151. package/chunks/{fast-path-EGP7AXNR.js → fast-path-3Z3JY4BL.js} +3 -3
  152. package/chunks/{fast-path-settings-DAOVFADC.js → fast-path-settings-XB3CPUJT.js} +2 -2
  153. package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
  154. package/chunks/{gemini-AN5YMD5O.js → gemini-VDE6O6CX.js} +89 -82
  155. package/chunks/{geminiContentGenerator-ABTMU4FE.js → geminiContentGenerator-NN4ZWALY.js} +5 -5
  156. package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
  157. package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
  158. package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
  159. package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
  160. package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
  161. package/chunks/{glob-5YABOPJB.js → glob-7AZHIY3Z.js} +42 -35
  162. package/chunks/{grep-U67FKUJT.js → grep-E2KEORSD.js} +42 -35
  163. package/chunks/handleAutoUpdate-BCNVTQWW.js +74 -0
  164. package/chunks/{i18n-GMQV324P.js → i18n-VP4NCTZN.js} +38 -31
  165. package/chunks/initializer-5UB4SRPK.js +79 -0
  166. package/chunks/installationInfo-LNYJCXN3.js +73 -0
  167. package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
  168. package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
  169. package/chunks/list-NIZ77KPE.js +82 -0
  170. package/chunks/loadedSettingsAdapter-IQPRO2SO.js +76 -0
  171. package/chunks/{loop-wakeup-5GLTUBHA.js → loop-wakeup-RNMRVA66.js} +6 -6
  172. package/chunks/{ls-FHBY3Y7I.js → ls-J2ZI5XYK.js} +5 -5
  173. package/chunks/{lsp-B6VMEW6Y.js → lsp-UMS3NUB5.js} +3 -3
  174. package/chunks/managed-npm-update-GFRDCD77.js +333 -0
  175. package/chunks/mcp-TCUL7LT2.js +76 -0
  176. package/chunks/{monitor-Z7NZNNRC.js → monitor-NDYKU5VS.js} +42 -35
  177. package/chunks/nonInteractiveCli-UHSHJDFD.js +133 -0
  178. package/chunks/{notebook-edit-GFOYAQAZ.js → notebook-edit-GF3HSMXN.js} +43 -38
  179. package/chunks/{openaiContentGenerator-XAAYV6WR.js → openaiContentGenerator-GE2I3C2T.js} +22 -17
  180. package/chunks/{pidfile-ILI37KRQ.js → pidfile-KS4IGGNX.js} +38 -31
  181. package/chunks/{processUtils-LIPJMLVZ.js → processUtils-TEQQ47A2.js} +2 -2
  182. package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
  183. package/chunks/{qwenContentGenerator-DLJ3KKGZ.js → qwenContentGenerator-NDYOEIUY.js} +44 -35
  184. package/chunks/{qwenOAuth2-J47FU5PW.js → qwenOAuth2-CXDOBPSK.js} +18 -15
  185. package/chunks/{read-file-LCQ2KNNP.js → read-file-QDVJX75S.js} +13 -11
  186. package/chunks/{read-mcp-resource-AKCL7I43.js → read-mcp-resource-F6HYMDUY.js} +3 -3
  187. package/chunks/{record-artifact-PEUB7727.js → record-artifact-7GCFLDD7.js} +3 -3
  188. package/chunks/{resumeHistoryUtils-PSCSAKA6.js → resumeHistoryUtils-5EAQ76W4.js} +43 -36
  189. package/chunks/ripGrep-WANMXNVT.js +66 -0
  190. package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
  191. package/chunks/{run-qwen-serve-DQ5ZIR36.js → run-qwen-serve-TC6M3WTJ.js} +85 -80
  192. package/chunks/{runtime-6MQFF2A6.js → runtime-BB73E3Z3.js} +45 -38
  193. package/chunks/{scheduler-K4S7NY3G.js → scheduler-NDU5OFSJ.js} +37 -30
  194. package/chunks/sdk-exporters-grpc-ETLH47EP.js +23214 -0
  195. package/chunks/sdk-exporters-http-T3POX73F.js +563 -0
  196. package/chunks/sdk-impl-NSLPDH6I.js +9193 -0
  197. package/chunks/{send-message-3RHE7HSM.js → send-message-PYIJ2PZL.js} +6 -4
  198. package/chunks/{serve-JFAAPC5J.js → serve-BTIRWZJ4.js} +43 -36
  199. package/chunks/{server-QB6CHRZN.js → server-JKAQBE2E.js} +277 -208
  200. package/chunks/{session-FKPVXAAB.js → session-66QFVVDS.js} +81 -74
  201. package/chunks/{settings-CADELKSU.js → settings-NBN6GY7E.js} +46 -39
  202. package/chunks/{shell-EON6WVVH.js → shell-JDSLAQVH.js} +37 -30
  203. package/chunks/{skill-FKSYXJ5U.js → skill-TNMHTO3C.js} +24 -20
  204. package/chunks/{spawnChannel-VM5IHLJO.js → spawnChannel-TFLHHXOC.js} +39 -32
  205. package/chunks/{src-Q4XB6SVD.js → src-YFXMPRBL.js} +254 -210
  206. package/chunks/{standalone-update-KGZHPBMA.js → standalone-update-2CQVQRSC.js} +39 -32
  207. package/chunks/{startInteractiveUI-EYDJIIIZ.js → startInteractiveUI-6C6PENRW.js} +370 -266
  208. package/chunks/{syntheticOutput-FG5PQKIR.js → syntheticOutput-H7RTI5KL.js} +4 -4
  209. package/chunks/{task-create-HX32YXO7.js → task-create-7474AJJD.js} +10 -8
  210. package/chunks/{task-list-QWSY4ZIU.js → task-list-633HGOIB.js} +6 -6
  211. package/chunks/{task-stop-GWC6UWAL.js → task-stop-MNUGHPIA.js} +3 -3
  212. package/chunks/{task-update-NCTAB73Q.js → task-update-66GQB5LI.js} +10 -8
  213. package/chunks/{team-create-CYP3YKYT.js → team-create-IPBHD26Z.js} +42 -35
  214. package/chunks/{team-delete-KK37HTOG.js → team-delete-BB3CG3QF.js} +6 -6
  215. package/chunks/{team-plan-approval-5LXIFKNV.js → team-plan-approval-WIGEJXXM.js} +42 -35
  216. package/chunks/theme-manager-OZYKJG3W.js +70 -0
  217. package/chunks/{todoWrite-ERCAMLFS.js → todoWrite-KRAUN54W.js} +5 -5
  218. package/chunks/{tool-search-Q27QHQU3.js → tool-search-J3CBYJRB.js} +21 -17
  219. package/chunks/total-session-admission-CNBQRM44.js +76 -0
  220. package/chunks/{trustedFolders-C6664IQC.js → trustedFolders-5FJRCHGN.js} +38 -31
  221. package/chunks/{update-relaunch-QC3E4FZW.js → update-relaunch-S5APSFJS.js} +13 -13
  222. package/chunks/{updateCheck-MVUKJMBX.js → updateCheck-BPSMOZXS.js} +46 -34
  223. package/chunks/{useAutoAcceptIndicator-J234IFIS.js → useAutoAcceptIndicator-WZVJ52U3.js} +47 -40
  224. package/chunks/{validateNonInterActiveAuth-YPPEKX4N.js → validateNonInterActiveAuth-64SVMELJ.js} +75 -68
  225. package/chunks/{version-5IXFQ4PT.js → version-SQL27GUA.js} +1 -1
  226. package/chunks/{web-fetch-L62NQVKN.js → web-fetch-K7QCHIOJ.js} +100 -41
  227. package/chunks/web-search-KQPQFM7A.js +731 -0
  228. package/chunks/{workflow-6MHBBFQU.js → workflow-BFTW72A5.js} +47 -39
  229. package/chunks/workspace-providers-status-4PLI2VFC.js +79 -0
  230. package/chunks/{workspace-registration-store-P6QHCSMU.js → workspace-registration-store-VAVPVIF3.js} +2 -2
  231. package/chunks/workspace-registry-I4ZRHGBS.js +80 -0
  232. package/chunks/workspace-service-RXYBWBDJ.js +91 -0
  233. package/chunks/workspace-skills-status-35Z2FU4I.js +78 -0
  234. package/chunks/write-file-KCL5RI2I.js +66 -0
  235. package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-BM47YBFH.js} +5 -1
  236. package/chunks/{zh-6ANG2HTL.js → zh-WY5DWYZD.js} +5 -1
  237. package/cli-entry.js +164 -12
  238. package/cli.js +18 -11
  239. package/locales/ca.js +10 -3
  240. package/locales/de.js +8 -2
  241. package/locales/en.js +8 -2
  242. package/locales/fr.js +8 -2
  243. package/locales/ja.js +8 -2
  244. package/locales/pt.js +8 -2
  245. package/locales/ru.js +8 -2
  246. package/locales/zh-TW.js +8 -2
  247. package/locales/zh.js +8 -2
  248. package/package.json +3 -3
  249. package/web-shell/assets/{arc-B0iTWRo2.js → arc-ByltRugA.js} +1 -1
  250. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DSQP4-9D.js → architectureDiagram-3BPJPVTR-CCRTto5d.js} +1 -1
  251. package/web-shell/assets/{blockDiagram-GPEHLZMM-BNPVXVT3.js → blockDiagram-GPEHLZMM-Jfy36u1L.js} +1 -1
  252. package/web-shell/assets/{c4Diagram-AAUBKEIU-DEHfJFiD.js → c4Diagram-AAUBKEIU-4d5FfEZ0.js} +1 -1
  253. package/web-shell/assets/channel-4N2UIFcG.js +1 -0
  254. package/web-shell/assets/{chunk-2J33WTMH-VZ0uL1p9.js → chunk-2J33WTMH-BPwxCEro.js} +1 -1
  255. package/web-shell/assets/{chunk-4BX2VUAB-D5TKmvwG.js → chunk-4BX2VUAB-jY7ZmJWY.js} +1 -1
  256. package/web-shell/assets/{chunk-55IACEB6-BDW1Lcq-.js → chunk-55IACEB6-C98HgCsS.js} +1 -1
  257. package/web-shell/assets/{chunk-727SXJPM-Cj4h85iM.js → chunk-727SXJPM-cDu-ge-q.js} +1 -1
  258. package/web-shell/assets/{chunk-AQP2D5EJ-5LeqiOhZ.js → chunk-AQP2D5EJ-BKdJwxXK.js} +1 -1
  259. package/web-shell/assets/{chunk-FMBD7UC4-BaTgsco7.js → chunk-FMBD7UC4-DnuxqwMu.js} +1 -1
  260. package/web-shell/assets/{chunk-ND2GUHAM-t3uGlIUk.js → chunk-ND2GUHAM-C4fZNPv0.js} +1 -1
  261. package/web-shell/assets/{chunk-QZHKN3VN-rOnNXL2Q.js → chunk-QZHKN3VN-Cf4XWOmz.js} +1 -1
  262. package/web-shell/assets/classDiagram-4FO5ZUOK-Q4dYOtsh.js +1 -0
  263. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Q4dYOtsh.js +1 -0
  264. package/web-shell/assets/{cose-bilkent-S5V4N54A-CcqXykgA.js → cose-bilkent-S5V4N54A-C82mFiqj.js} +1 -1
  265. package/web-shell/assets/{dagre-BM42HDAG-Dkjrchoy.js → dagre-BM42HDAG-Df8KACER.js} +1 -1
  266. package/web-shell/assets/{diagram-2AECGRRQ-B6lcra9M.js → diagram-2AECGRRQ-EzNs7s_2.js} +1 -1
  267. package/web-shell/assets/{diagram-5GNKFQAL-bAIzq3PT.js → diagram-5GNKFQAL-BRLNvreg.js} +1 -1
  268. package/web-shell/assets/{diagram-KO2AKTUF-G9MAZDNW.js → diagram-KO2AKTUF-2HLYHRjC.js} +1 -1
  269. package/web-shell/assets/{diagram-LMA3HP47-DVLF1uWZ.js → diagram-LMA3HP47-DeH0NzSp.js} +1 -1
  270. package/web-shell/assets/{diagram-OG6HWLK6-Cf7y20Tc.js → diagram-OG6HWLK6-k5Gn47-G.js} +1 -1
  271. package/web-shell/assets/{erDiagram-TEJ5UH35-C7ETZB3o.js → erDiagram-TEJ5UH35-gPHFo79f.js} +1 -1
  272. package/web-shell/assets/{flowDiagram-I6XJVG4X-Cl2xgL6J.js → flowDiagram-I6XJVG4X-DYBOiTRW.js} +1 -1
  273. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BgjbMs3q.js → ganttDiagram-6RSMTGT7-cxjAuic9.js} +1 -1
  274. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-JVX34Omm.js → gitGraphDiagram-PVQCEYII-3nPqpmCP.js} +1 -1
  275. package/web-shell/assets/index-B7jzUZ_s.css +5 -0
  276. package/web-shell/assets/{index-BG7Zc4f_.js → index-Cl8d-1bK.js} +1 -1
  277. package/web-shell/assets/index-gE8OWwj_.js +1197 -0
  278. package/web-shell/assets/{infoDiagram-5YYISTIA-3NYyMeZU.js → infoDiagram-5YYISTIA-Dph21pR5.js} +1 -1
  279. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-C03VCu-U.js → ishikawaDiagram-YF4QCWOH-Cjg1hSaG.js} +1 -1
  280. package/web-shell/assets/{journeyDiagram-JHISSGLW-C9PuBRZW.js → journeyDiagram-JHISSGLW-CR-IzvnU.js} +1 -1
  281. package/web-shell/assets/{kanban-definition-UN3LZRKU-C3LvioWR.js → kanban-definition-UN3LZRKU-BYmuybuC.js} +1 -1
  282. package/web-shell/assets/{linear-Du6Yw8N_.js → linear-CngEEoy8.js} +1 -1
  283. package/web-shell/assets/{mermaid.core-BXY5D2-X.js → mermaid.core-G6fbZRPf.js} +5 -5
  284. package/web-shell/assets/{mindmap-definition-RKZ34NQL-2UrHLaDp.js → mindmap-definition-RKZ34NQL-BtnqnUwJ.js} +1 -1
  285. package/web-shell/assets/{pieDiagram-4H26LBE5-dC03ml45.js → pieDiagram-4H26LBE5-XTq6UHIA.js} +1 -1
  286. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CD6jARrp.js → quadrantDiagram-W4KKPZXB-D1J5PrsS.js} +1 -1
  287. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BrK8aXfv.js → requirementDiagram-4Y6WPE33-CLcBUy3t.js} +1 -1
  288. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-B5Vitki_.js → sankeyDiagram-5OEKKPKP-iwKV02_6.js} +1 -1
  289. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CBy2t6Bo.js → sequenceDiagram-3UESZ5HK-7NFYQcEX.js} +1 -1
  290. package/web-shell/assets/{stateDiagram-AJRCARHV-Enrka6T2.js → stateDiagram-AJRCARHV-Bvm4Wih6.js} +1 -1
  291. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-xXU_zO2Z.js +1 -0
  292. package/web-shell/assets/{timeline-definition-PNZ67QCA-CwFq78ss.js → timeline-definition-PNZ67QCA-B4FZFE9O.js} +1 -1
  293. package/web-shell/assets/{vennDiagram-CIIHVFJN-BkOidM0g.js → vennDiagram-CIIHVFJN-CvMBpmtL.js} +1 -1
  294. package/web-shell/assets/{wardley-L42UT6IY-D_j13hQW.js → wardley-L42UT6IY-E3ag2327.js} +1 -1
  295. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-7EveB1w6.js → wardleyDiagram-YWT4CUSO-BEXWlgxC.js} +1 -1
  296. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DRkBhMXr.js → xychartDiagram-2RQKCTM6-CICK05gI.js} +1 -1
  297. package/web-shell/index.html +2 -2
  298. package/chunks/agent-headless-WVJCQ27D.js +0 -61
  299. package/chunks/chunk-CPCVCKKF.js +0 -358
  300. package/chunks/chunk-P64HXIC5.js +0 -74712
  301. package/chunks/chunk-RF34V75B.js +0 -45
  302. package/chunks/chunk-W7FJ3N32.js +0 -49
  303. package/chunks/contextCommand-HTRJJYNE.js +0 -66
  304. package/chunks/daemon-status-provider-67EKK6S3.js +0 -74
  305. package/chunks/handleAutoUpdate-OOKBP5VD.js +0 -67
  306. package/chunks/initializer-NWALZGQ5.js +0 -72
  307. package/chunks/installationInfo-Y3M433E7.js +0 -66
  308. package/chunks/list-CQDDWHTS.js +0 -75
  309. package/chunks/loadedSettingsAdapter-I5KG37EI.js +0 -69
  310. package/chunks/mcp-24HHCBSP.js +0 -69
  311. package/chunks/nonInteractiveCli-GVF2XDJT.js +0 -126
  312. package/chunks/ripGrep-Y2XW4EFC.js +0 -59
  313. package/chunks/theme-manager-QOUMDWMP.js +0 -63
  314. package/chunks/total-session-admission-HWVCZ2WR.js +0 -69
  315. package/chunks/workspace-providers-status-ZTW2B5QU.js +0 -72
  316. package/chunks/workspace-registry-R54M5O3W.js +0 -73
  317. package/chunks/workspace-service-WYLRGM4A.js +0 -84
  318. package/chunks/workspace-skills-status-NN5QFU3A.js +0 -71
  319. package/chunks/write-file-EAT3CHUK.js +0 -596
  320. package/web-shell/assets/channel-tVz-qNSq.js +0 -1
  321. package/web-shell/assets/classDiagram-4FO5ZUOK-CWuaBxYV.js +0 -1
  322. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CWuaBxYV.js +0 -1
  323. package/web-shell/assets/index-48bIcdqF.js +0 -1197
  324. package/web-shell/assets/index-BI-JAO07.css +0 -5
  325. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DUtYfXpW.js +0 -1
  326. package/chunks/{chunk-H24SOJIQ.js → chunk-D7WXIW7H.js} +3 -3
  327. package/chunks/{chunk-PEJWA3QQ.js → chunk-QZJY47IE.js} +5 -5
  328. package/chunks/{dist-XBJVSWS2.js → dist-HMU6CYS4.js} +1 -1
@@ -2,31 +2,31 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-FCUUJKZF.js";
5
+ } from "./chunk-YDLVKCZJ.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-W3BKN3LO.js";
11
+ } from "./chunk-GZBHRTNM.js";
12
12
  import {
13
13
  require_undici
14
14
  } from "./chunk-L573Z2QZ.js";
15
15
  import {
16
16
  IdeClient,
17
17
  getAllProviderBaseUrls
18
- } from "./chunk-NO6XTCYT.js";
19
- import {
20
- initializeTelemetry
21
- } from "./chunk-P64HXIC5.js";
18
+ } from "./chunk-6RQ5IPUX.js";
22
19
  import {
23
20
  detectRuntime,
24
21
  getOrCreateSharedDispatcher,
25
22
  redactProxyCredentials
26
- } from "./chunk-6EFTQYW7.js";
23
+ } from "./chunk-5I5BM454.js";
24
+ import {
25
+ initializeTelemetry
26
+ } from "./chunk-7362QS5B.js";
27
27
  import {
28
28
  createDebugLogger
29
- } from "./chunk-C27BYUX6.js";
29
+ } from "./chunk-OQB4EXO4.js";
30
30
  import {
31
31
  recordStartupEvent
32
32
  } from "./chunk-QSWDGAIC.js";
@@ -227,21 +227,21 @@ function startPostRenderPrefetches(config, settings, options = {}) {
227
227
  if (settings.merged.general?.enableAutoUpdate !== false && process.env[SKIP_UPDATE_CHECK_ENV_VAR] !== "true" && !process.env[CUSTOM_SANDBOX_IMAGE_ENV_VAR]) {
228
228
  runDeferredTask("update_check", async () => {
229
229
  const [
230
- { checkForUpdatesDetailed },
230
+ { checkForUpdatesDetailed, describeUpdateCheckFailure },
231
231
  { handleAutoUpdate },
232
232
  { getInstallationInfo },
233
233
  { updateEventEmitter },
234
234
  { t }
235
235
  ] = await Promise.all([
236
- import("./updateCheck-MVUKJMBX.js"),
237
- import("./handleAutoUpdate-OOKBP5VD.js"),
238
- import("./installationInfo-Y3M433E7.js"),
236
+ import("./updateCheck-BPSMOZXS.js"),
237
+ import("./handleAutoUpdate-BCNVTQWW.js"),
238
+ import("./installationInfo-LNYJCXN3.js"),
239
239
  import("./updateEventEmitter-5MKC7BLQ.js"),
240
- import("./i18n-GMQV324P.js")
240
+ import("./i18n-VP4NCTZN.js")
241
241
  ]);
242
- const updateFailedMessage = t(
243
- "Failed to check for updates. Please check your network or registry configuration."
244
- );
242
+ const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
243
+ reason: describeUpdateCheckFailure(error)
244
+ }), "updateCheckSkippedMessage");
245
245
  try {
246
246
  const result = await checkForUpdatesDetailed();
247
247
  if (result.status === "update") {
@@ -266,6 +266,10 @@ ${t(
266
266
  return;
267
267
  }
268
268
  const installationInfo = getInstallationInfo(projectRoot, true);
269
+ if (installationInfo.packageManager === "npm") {
270
+ void handleAutoUpdate(result.info, settings, projectRoot);
271
+ return;
272
+ }
269
273
  if (installationInfo.updateCommand || installationInfo.isStandalone && installationInfo.standaloneDir) {
270
274
  if (requestUpdateOnExit()) {
271
275
  updateEventEmitter.emit("update-info", {
@@ -287,12 +291,14 @@ ${t(
287
291
  }
288
292
  } else if (result.status === "error") {
289
293
  updateEventEmitter.emit("update-failed", {
290
- message: updateFailedMessage
294
+ message: updateCheckSkippedMessage(result.error),
295
+ severity: "warning"
291
296
  });
292
297
  }
293
298
  } catch (error) {
294
299
  updateEventEmitter.emit("update-failed", {
295
- message: updateFailedMessage
300
+ message: updateCheckSkippedMessage(error),
301
+ severity: "warning"
296
302
  });
297
303
  throw error;
298
304
  }
@@ -304,7 +310,7 @@ ${t(
304
310
  state: "connecting"
305
311
  });
306
312
  try {
307
- const { connectIdeForStartup } = await import("./initializer-NWALZGQ5.js");
313
+ const { connectIdeForStartup } = await import("./initializer-5UB4SRPK.js");
308
314
  await withTimeout(
309
315
  connectIdeForStartup(config),
310
316
  "ide_connect",
@@ -324,13 +330,11 @@ ${t(
324
330
  });
325
331
  }
326
332
  if (options.initializeTelemetry) {
327
- runDeferredTask("telemetry_init", () => {
328
- initializeTelemetry(config);
329
- });
333
+ runDeferredTask("telemetry_init", () => initializeTelemetry(config));
330
334
  }
331
335
  if (config.isInteractive()) {
332
336
  runDeferredTask("background_housekeeping", async () => {
333
- const { startBackgroundHousekeeping } = await import("./scheduler-K4S7NY3G.js");
337
+ const { startBackgroundHousekeeping } = await import("./scheduler-NDU5OFSJ.js");
334
338
  startBackgroundHousekeeping(config, settings);
335
339
  });
336
340
  }
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-RKUWKYED.js";
7
7
  import {
8
8
  createDebugLogger
9
- } from "./chunk-C27BYUX6.js";
9
+ } from "./chunk-OQB4EXO4.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  registerCleanup
5
- } from "./chunk-WRRF6TEQ.js";
5
+ } from "./chunk-VHYCUGOT.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -7,16 +7,12 @@ import {
7
7
  isQwenQuotaExceededError,
8
8
  isRateLimitError,
9
9
  retryContext
10
- } from "./chunk-P64HXIC5.js";
11
- import {
12
- isTlsVerificationDisabled
13
- } from "./chunk-6EFTQYW7.js";
10
+ } from "./chunk-ZJVVETCV.js";
14
11
  import {
15
12
  createDebugLogger,
16
- getErrorMessage,
17
13
  getErrorStatus,
18
14
  isAbortError
19
- } from "./chunk-C27BYUX6.js";
15
+ } from "./chunk-OQB4EXO4.js";
20
16
  import {
21
17
  init_esbuild_shims
22
18
  } from "./chunk-5O2XNYP6.js";
@@ -497,379 +493,13 @@ function logRetryAtStatusLevel(message, retryDiagnostics, error, errorStatus) {
497
493
  }
498
494
  __name(logRetryAtStatusLevel, "logRetryAtStatusLevel");
499
495
 
500
- // packages/core/src/utils/fetch.ts
501
- init_esbuild_shims();
502
- import { URL } from "node:url";
503
- var PRIVATE_IP_RANGES = [
504
- /^10\./,
505
- /^127\./,
506
- /^172\.(1[6-9]|2[0-9]|3[0-1])\./,
507
- /^192\.168\./,
508
- // IPv4 link-local (incl. cloud metadata endpoints) and CGNAT 100.64.0.0/10.
509
- /^169\.254\./,
510
- /^100\.(6[4-9]|[7-9][0-9]|1[01][0-9]|12[0-7])\./,
511
- /^0\.0\.0\.0$/,
512
- /^::1$/,
513
- /^::$/,
514
- // ULA fc00::/7 covers fc00: through fdff: (fd00: is the common prefix in
515
- // practice); link-local fe80::/10 covers fe80: through febf:.
516
- /^f[cd][0-9a-f]{2}:/i,
517
- /^fe[89ab][0-9a-f]:/i
518
- ];
519
- var TLS_ERROR_CODES = /* @__PURE__ */ new Set([
520
- "UNABLE_TO_GET_ISSUER_CERT_LOCALLY",
521
- "UNABLE_TO_VERIFY_LEAF_SIGNATURE",
522
- "SELF_SIGNED_CERT_IN_CHAIN",
523
- "DEPTH_ZERO_SELF_SIGNED_CERT",
524
- "CERT_HAS_EXPIRED",
525
- "ERR_TLS_CERT_ALTNAME_INVALID"
526
- ]);
527
- var FETCH_TROUBLESHOOTING_ERROR_CODES = /* @__PURE__ */ new Set([
528
- ...TLS_ERROR_CODES,
529
- "ECONNRESET",
530
- "ETIMEDOUT",
531
- "ECONNREFUSED",
532
- "ENOTFOUND",
533
- "EAI_AGAIN",
534
- "EHOSTUNREACH",
535
- "ENETUNREACH"
536
- ]);
537
- var FetchError = class extends Error {
538
- constructor(message, code) {
539
- super(message);
540
- this.code = code;
541
- this.name = "FetchError";
542
- }
543
- static {
544
- __name(this, "FetchError");
545
- }
546
- };
547
- var CONNECTION_LEVEL_ERROR_CODES = /* @__PURE__ */ new Set([
548
- ...TLS_ERROR_CODES,
549
- "ECONNREFUSED",
550
- "EPROTO",
551
- "ERR_SSL_WRONG_VERSION_NUMBER",
552
- // Servers that don't speak TLS on 443 often reset during the handshake
553
- // rather than refusing the connection. Safe to include: the http fallback
554
- // only ever fires for URLs the caller requested as http.
555
- "ECONNRESET",
556
- "UND_ERR_SOCKET",
557
- // Filtered port 443 (silent drop): undici's own bounded connect timeout.
558
- // Deliberately NOT the full-budget ETIMEDOUT — that can fire mid-body on
559
- // a healthy https server, and a fallback there would double a worst-case
560
- // 60s wait for an ambiguous gain.
561
- "UND_ERR_CONNECT_TIMEOUT"
562
- ]);
563
- function isConnectionLevelError(error) {
564
- return error instanceof FetchError && error.code !== void 0 && CONNECTION_LEVEL_ERROR_CODES.has(error.code);
565
- }
566
- __name(isConnectionLevelError, "isConnectionLevelError");
567
- function mappedIpv4(hostname) {
568
- const match = /^::ffff:(.+)$/i.exec(hostname);
569
- if (!match) return void 0;
570
- const tail = match[1];
571
- if (tail.includes(".")) return tail;
572
- const groups = tail.split(":");
573
- if (groups.length !== 2) return void 0;
574
- const hi = Number.parseInt(groups[0], 16);
575
- const lo = Number.parseInt(groups[1], 16);
576
- if (Number.isNaN(hi) || Number.isNaN(lo)) return void 0;
577
- return `${hi >> 8}.${hi & 255}.${lo >> 8}.${lo & 255}`;
578
- }
579
- __name(mappedIpv4, "mappedIpv4");
580
- function isPrivateIp(url) {
581
- try {
582
- const hostname = new URL(url).hostname.replace(/^\[|\]$/g, "");
583
- const target = mappedIpv4(hostname) ?? hostname;
584
- return PRIVATE_IP_RANGES.some((range) => range.test(target));
585
- } catch (_e) {
586
- return false;
587
- }
588
- }
589
- __name(isPrivateIp, "isPrivateIp");
590
- var INTERNAL_HOST_SUFFIXES = [".local", ".internal", ".lan", ".home.arpa"];
591
- function isPrivateHost(url) {
592
- try {
593
- const hostname = new URL(url).hostname.toLowerCase();
594
- return hostname === "localhost" || hostname.endsWith(".localhost") || hostname === "host.docker.internal" || // Single-label hostnames (intranet, ci, printserver) are never public.
595
- // IPv6 literals are bracketed and dot-free but CAN be public — they
596
- // are classified by isPrivateIp below, not by this heuristic.
597
- !hostname.includes(".") && !hostname.startsWith("[") || INTERNAL_HOST_SUFFIXES.some((suffix) => hostname.endsWith(suffix)) || isPrivateIp(url);
598
- } catch {
599
- return false;
600
- }
601
- }
602
- __name(isPrivateHost, "isPrivateHost");
603
- var REDIRECT_STATUSES = /* @__PURE__ */ new Set([301, 302, 303, 307, 308]);
604
- function isPermittedRedirect(originalUrl, redirectUrl) {
605
- try {
606
- const original = new URL(originalUrl);
607
- const redirect = new URL(redirectUrl);
608
- if (redirect.protocol !== original.protocol) return false;
609
- if (redirect.port !== original.port) return false;
610
- if (redirect.username || redirect.password) return false;
611
- const stripWww = /* @__PURE__ */ __name((hostname) => hostname.replace(/^www\./, ""), "stripWww");
612
- return stripWww(original.hostname) === stripWww(redirect.hostname);
613
- } catch {
614
- return false;
615
- }
616
- }
617
- __name(isPermittedRedirect, "isPermittedRedirect");
618
- var RETRYABLE_STATUSES = /* @__PURE__ */ new Set([403, 429]);
619
- var RETRYABLE_ERROR_CODES = /* @__PURE__ */ new Set([
620
- "ECONNRESET",
621
- "EAI_AGAIN",
622
- "UND_ERR_SOCKET"
623
- ]);
624
- var RETRY_DELAY_MS = 500;
625
- async function fetchWithPolicy(url, options) {
626
- const timeoutSignal = AbortSignal.timeout(options.timeoutMs);
627
- const signal = options.signal ? AbortSignal.any([options.signal, timeoutSignal]) : timeoutSignal;
628
- const abortError = /* @__PURE__ */ __name(() => {
629
- if (options.signal?.aborted) {
630
- return options.signal.reason instanceof Error ? options.signal.reason : new FetchError("Request aborted", "ABORT_ERR");
631
- }
632
- if (timeoutSignal.aborted) {
633
- return new FetchError(
634
- `Request timed out after ${options.timeoutMs}ms`,
635
- "ETIMEDOUT"
636
- );
637
- }
638
- return void 0;
639
- }, "abortError");
640
- let first;
641
- try {
642
- first = await fetchPolicyAttempt(url, options, signal, timeoutSignal);
643
- } catch (error) {
644
- if (error instanceof FetchError && error.code !== void 0 && RETRYABLE_ERROR_CODES.has(error.code) && !signal.aborted) {
645
- try {
646
- await delay(RETRY_DELAY_MS, signal);
647
- } catch {
648
- throw abortError() ?? error;
649
- }
650
- return fetchPolicyAttempt(url, options, signal, timeoutSignal);
651
- }
652
- throw error;
653
- }
654
- if (first.kind === "response" && RETRYABLE_STATUSES.has(first.status) && !signal.aborted) {
655
- try {
656
- await delay(RETRY_DELAY_MS, signal);
657
- return await fetchPolicyAttempt(url, options, signal, timeoutSignal);
658
- } catch {
659
- const aborted = abortError();
660
- if (aborted) throw aborted;
661
- return first;
662
- }
663
- }
664
- return first;
665
- }
666
- __name(fetchWithPolicy, "fetchWithPolicy");
667
- async function fetchPolicyAttempt(url, options, signal, timeoutSignal) {
668
- const wrapAbort = /* @__PURE__ */ __name((error) => {
669
- if (options.signal?.aborted) {
670
- throw options.signal.reason instanceof Error ? options.signal.reason : new FetchError("Request aborted", "ABORT_ERR");
671
- }
672
- if (timeoutSignal.aborted) {
673
- throw new FetchError(
674
- `Request timed out after ${options.timeoutMs}ms`,
675
- "ETIMEDOUT"
676
- );
677
- }
678
- if (error instanceof FetchError) throw error;
679
- const code = getErrorCode(error) ?? (error instanceof Error ? getErrorCode(error.cause) : void 0);
680
- throw new FetchError(getErrorMessage(error), code);
681
- }, "wrapAbort");
682
- let currentUrl = url;
683
- for (let hop = 0; hop <= options.maxRedirects; hop++) {
684
- let response;
685
- try {
686
- response = await fetch(currentUrl, {
687
- signal,
688
- headers: options.headers,
689
- redirect: "manual"
690
- });
691
- } catch (error) {
692
- return wrapAbort(error);
693
- }
694
- if (REDIRECT_STATUSES.has(response.status)) {
695
- const location = response.headers.get("location");
696
- await response.body?.cancel().catch(() => {
697
- });
698
- if (!location) {
699
- throw new FetchError("Redirect response missing Location header");
700
- }
701
- let redirectUrl;
702
- try {
703
- redirectUrl = new URL(location, currentUrl).toString();
704
- } catch {
705
- throw new FetchError(
706
- `Redirect response has a malformed Location header: ${location}`
707
- );
708
- }
709
- if (!isPermittedRedirect(currentUrl, redirectUrl)) {
710
- return {
711
- kind: "cross-host-redirect",
712
- originalUrl: currentUrl,
713
- redirectUrl,
714
- status: response.status
715
- };
716
- }
717
- currentUrl = redirectUrl;
718
- continue;
719
- }
720
- if (response.status < 200 || response.status >= 300) {
721
- await response.body?.cancel().catch(() => {
722
- });
723
- return {
724
- kind: "response",
725
- status: response.status,
726
- statusText: response.statusText,
727
- contentType: response.headers.get("content-type") ?? "",
728
- contentDisposition: response.headers.get("content-disposition") ?? "",
729
- body: Buffer.alloc(0),
730
- finalUrl: currentUrl
731
- };
732
- }
733
- const contentLength = Number(response.headers.get("content-length"));
734
- if (Number.isFinite(contentLength) && contentLength > options.maxBytes) {
735
- await response.body?.cancel().catch(() => {
736
- });
737
- throw new FetchError(
738
- `Response too large: ${contentLength} bytes exceeds the ${options.maxBytes}-byte limit`,
739
- "EMSGSIZE"
740
- );
741
- }
742
- const chunks = [];
743
- let total = 0;
744
- if (response.body) {
745
- const reader = response.body.getReader();
746
- try {
747
- for (; ; ) {
748
- const { done, value } = await reader.read();
749
- if (done) break;
750
- total += value.byteLength;
751
- if (total > options.maxBytes) {
752
- throw new FetchError(
753
- `Response too large: exceeded the ${options.maxBytes}-byte limit while streaming`,
754
- "EMSGSIZE"
755
- );
756
- }
757
- chunks.push(value);
758
- }
759
- } catch (error) {
760
- await reader.cancel().catch(() => {
761
- });
762
- if (error instanceof FetchError) throw error;
763
- return wrapAbort(error);
764
- } finally {
765
- reader.releaseLock();
766
- }
767
- }
768
- return {
769
- kind: "response",
770
- status: response.status,
771
- statusText: response.statusText,
772
- contentType: response.headers.get("content-type") ?? "",
773
- contentDisposition: response.headers.get("content-disposition") ?? "",
774
- body: Buffer.concat(chunks, total),
775
- finalUrl: currentUrl
776
- };
777
- }
778
- throw new FetchError(
779
- `Too many redirects (exceeded ${options.maxRedirects})`,
780
- "EMAXREDIRECTS"
781
- );
782
- }
783
- __name(fetchPolicyAttempt, "fetchPolicyAttempt");
784
- function getErrorCode(error) {
785
- if (!error || typeof error !== "object") {
786
- return void 0;
787
- }
788
- if ("code" in error && typeof error["code"] === "string") {
789
- return error["code"];
790
- }
791
- return void 0;
792
- }
793
- __name(getErrorCode, "getErrorCode");
794
- function formatUnknownErrorMessage(error) {
795
- if (typeof error === "string") {
796
- return error;
797
- }
798
- if (typeof error === "number" || typeof error === "boolean" || typeof error === "bigint") {
799
- return String(error);
800
- }
801
- if (error instanceof Error) {
802
- return error.message;
803
- }
804
- if (!error || typeof error !== "object") {
805
- return void 0;
806
- }
807
- const message = error["message"];
808
- if (typeof message === "string") {
809
- return message;
810
- }
811
- return void 0;
812
- }
813
- __name(formatUnknownErrorMessage, "formatUnknownErrorMessage");
814
- function formatErrorCause(error) {
815
- if (!(error instanceof Error)) {
816
- return void 0;
817
- }
818
- const cause = error.cause;
819
- if (!cause) {
820
- return void 0;
821
- }
822
- const causeCode = getErrorCode(cause);
823
- const causeMessage = formatUnknownErrorMessage(cause);
824
- if (!causeCode && !causeMessage) {
825
- return void 0;
826
- }
827
- if (causeCode && causeMessage && !causeMessage.includes(causeCode)) {
828
- return `${causeCode}: ${causeMessage}`;
829
- }
830
- return causeMessage ?? causeCode;
831
- }
832
- __name(formatErrorCause, "formatErrorCause");
833
- function formatFetchErrorForUser(error, options = {}) {
834
- const errorMessage = getErrorMessage(error);
835
- const code = error instanceof Error ? getErrorCode(error.cause) ?? getErrorCode(error) : getErrorCode(error);
836
- const cause = formatErrorCause(error);
837
- const fullErrorMessage = [
838
- errorMessage,
839
- cause ? `(cause: ${cause})` : void 0
840
- ].filter(Boolean).join(" ");
841
- const shouldShowFetchHints = errorMessage.toLowerCase().includes("fetch failed") || code != null && FETCH_TROUBLESHOOTING_ERROR_CODES.has(code);
842
- const shouldShowTlsHint = code != null && TLS_ERROR_CODES.has(code);
843
- if (!shouldShowFetchHints) {
844
- return fullErrorMessage;
845
- }
846
- const hintLines = [
847
- "",
848
- "Troubleshooting:",
849
- ...options.url ? [`- Confirm you can reach ${options.url} from this machine.`] : [],
850
- "- If you are behind a proxy, pass `--proxy <url>` (or set `proxy` in settings).",
851
- ...shouldShowTlsHint ? isTlsVerificationDisabled() ? [
852
- "- TLS verification is already disabled (`--insecure` / `QWEN_TLS_INSECURE`), so this is likely a network or protocol issue rather than a certificate trust problem."
853
- ] : [
854
- "- If your network uses a corporate TLS inspection CA, set `NODE_EXTRA_CA_CERTS` to your CA bundle.",
855
- "- For a trusted self-signed endpoint, pass `--insecure` (or set `QWEN_TLS_INSECURE=1`) to skip certificate verification."
856
- ] : []
857
- ];
858
- return `${fullErrorMessage}${hintLines.join("\n")}`;
859
- }
860
- __name(formatFetchErrorForUser, "formatFetchErrorForUser");
861
-
862
496
  export {
863
497
  classifyRetryError,
864
498
  isFallbackEligible,
865
499
  isTransientCapacityError,
866
500
  isUnattendedMode,
867
501
  delay,
868
- retryWithBackoff,
869
- isConnectionLevelError,
870
- isPrivateHost,
871
- fetchWithPolicy,
872
- formatFetchErrorForUser
502
+ retryWithBackoff
873
503
  };
874
504
  /**
875
505
  * @license