@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260711.0ef3a76bd

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 (434) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +60 -51
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
  7. package/bundled/qc-helper/docs/features/channels/overview.md +86 -12
  8. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  9. package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
  10. package/bundled/qc-helper/docs/features/code-review.md +29 -5
  11. package/bundled/qc-helper/docs/features/commands.md +39 -38
  12. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  13. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  14. package/bundled/qc-helper/docs/features/memory.md +1 -1
  15. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  16. package/bundled/qc-helper/docs/integration-vscode.md +2 -2
  17. package/bundled/qc-helper/docs/qwen-serve.md +40 -16
  18. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  19. package/bundled/review/DESIGN.md +93 -22
  20. package/bundled/review/SKILL.md +300 -87
  21. package/chunks/MaxSizedBox-4CX4IQWE.js +70 -0
  22. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-TYUSSNJ6.js} +79 -77
  23. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-5HJEXOPR.js} +978 -205
  24. package/chunks/agent-PZF5IUUB.js +68 -0
  25. package/chunks/agent-headless-L4N7V2SG.js +62 -0
  26. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-L73TO3DB.js} +214 -31
  27. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
  28. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
  29. package/chunks/bridge-OJL6LD42.js +78 -0
  30. package/chunks/{ca-HCMB2I54.js → ca-WTQOU43B.js} +91 -6
  31. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-LF66HCVT.js} +137 -13
  32. package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
  33. package/chunks/{chunk-JD33UY7E.js → chunk-2K56LTWA.js} +18 -12
  34. package/chunks/{chunk-XISQIIT7.js → chunk-2LV4JUNO.js} +4 -4
  35. package/chunks/chunk-2UU6DW5P.js +296 -0
  36. package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
  37. package/chunks/chunk-2ZQOQZIS.js +71 -0
  38. package/chunks/{chunk-Q6OEPOOC.js → chunk-3AMVHPEQ.js} +2 -2
  39. package/chunks/{chunk-4RQIB5UZ.js → chunk-3BTRNWWD.js} +1 -35
  40. package/chunks/{chunk-SD4N3QJ2.js → chunk-3QZ6GY6A.js} +66 -22
  41. package/chunks/{chunk-DNV4FSN5.js → chunk-3SJSQXNS.js} +24 -7
  42. package/chunks/{chunk-VQWAZSXN.js → chunk-3XATDZNP.js} +64 -42
  43. package/chunks/{chunk-LEIJKM7Q.js → chunk-3ZAIGBCP.js} +2 -2
  44. package/chunks/{chunk-2NPS2UDH.js → chunk-43JB7OF4.js} +905 -139
  45. package/chunks/chunk-43XJTCHT.js +444 -0
  46. package/chunks/{chunk-CNSF3WO5.js → chunk-47HXCVGG.js} +6 -6
  47. package/chunks/{chunk-VEB3NYSO.js → chunk-4GORAUCN.js} +8 -3
  48. package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
  49. package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
  50. package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
  51. package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
  52. package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
  53. package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
  54. package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
  55. package/chunks/{chunk-B4U2M63D.js → chunk-5DOUQHL3.js} +2104 -14
  56. package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
  57. package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
  58. package/chunks/{chunk-P7I3D7FM.js → chunk-5OIXALQ5.js} +2 -2
  59. package/chunks/chunk-5SFOMFG4.js +61 -0
  60. package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
  61. package/chunks/{chunk-FRFFNYUY.js → chunk-65F3I3PM.js} +5 -5
  62. package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
  63. package/chunks/{chunk-BWVQN2HV.js → chunk-6CR73ZIK.js} +7 -7
  64. package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
  65. package/chunks/{chunk-G7ZG7CA6.js → chunk-6RLROE6G.js} +9 -8
  66. package/chunks/{chunk-TBAZMRW3.js → chunk-6WH2WCSW.js} +2 -2
  67. package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
  68. package/chunks/{chunk-FTFXDZYI.js → chunk-7KZNLIAI.js} +47 -31
  69. package/chunks/{chunk-HJ3GX3Y3.js → chunk-7PW5CTVR.js} +32 -18
  70. package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
  71. package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
  72. package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
  73. package/chunks/{chunk-XSAFNANZ.js → chunk-AHUEU3BP.js} +14 -14
  74. package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
  75. package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
  76. package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
  77. package/chunks/{chunk-AJBEAUIS.js → chunk-BZP7HZTK.js} +7 -6
  78. package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
  79. package/chunks/{chunk-MIG5SQNL.js → chunk-CBKR4Q5K.js} +8 -8
  80. package/chunks/chunk-CC2ITGCF.js +176 -0
  81. package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
  82. package/chunks/{chunk-GD236YPV.js → chunk-CNOF2IZT.js} +3 -3
  83. package/chunks/chunk-COH43MRJ.js +34 -0
  84. package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
  85. package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
  86. package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
  87. package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
  88. package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
  89. package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
  90. package/chunks/{chunk-4ZJIPVPB.js → chunk-DMN532MJ.js} +11 -11
  91. package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
  92. package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
  93. package/chunks/chunk-F4PFZ7WP.js +239 -0
  94. package/chunks/{chunk-ME3YSROJ.js → chunk-FBSBT7JS.js} +25 -13
  95. package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
  96. package/chunks/{chunk-YDSYD7UI.js → chunk-FD3DA3B4.js} +3 -3
  97. package/chunks/{chunk-GL5TV7B5.js → chunk-GL22M2DU.js} +23 -7
  98. package/chunks/{chunk-AFOLR6YL.js → chunk-GQ4ZEYMI.js} +102 -16
  99. package/chunks/chunk-GRC5HGPI.js +13 -0
  100. package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
  101. package/chunks/chunk-GZRTYZ2R.js +292 -0
  102. package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
  103. package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
  104. package/chunks/{chunk-24XYI5EI.js → chunk-HACY3IUM.js} +6 -6
  105. package/chunks/{chunk-DGHJTO2K.js → chunk-HIHQ3TWC.js} +38 -9
  106. package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
  107. package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
  108. package/chunks/{chunk-B34OV7K2.js → chunk-IAVB3HM3.js} +15 -2
  109. package/chunks/{chunk-4UCTWSTP.js → chunk-IDJEZU7C.js} +2 -2
  110. package/chunks/chunk-IEBIKN6A.js +38 -0
  111. package/chunks/{chunk-PRDFOIZF.js → chunk-IJEO2QSK.js} +73 -30
  112. package/chunks/{chunk-MJI36HER.js → chunk-IT6LIIVK.js} +2 -2
  113. package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
  114. package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
  115. package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
  116. package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
  117. package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
  118. package/chunks/{chunk-X265R5C6.js → chunk-K434OPES.js} +5 -5
  119. package/chunks/{chunk-RFIL6REB.js → chunk-KHUQZZJ6.js} +185 -45
  120. package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
  121. package/chunks/{chunk-6BN7NZ5Z.js → chunk-KL23O5Z5.js} +7 -9
  122. package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
  123. package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
  124. package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
  125. package/chunks/{chunk-STAZRKOT.js → chunk-L6GPKRH7.js} +132 -464
  126. package/chunks/{chunk-QAKFYMJI.js → chunk-LD5OWZ5E.js} +155 -19
  127. package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
  128. package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
  129. package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
  130. package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
  131. package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
  132. package/chunks/{chunk-XPJH4PKR.js → chunk-MPEMTBUZ.js} +2 -2
  133. package/chunks/{chunk-GMOWQOQQ.js → chunk-MUCWGT7O.js} +248 -55
  134. package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
  135. package/chunks/{chunk-PUQLHSQ2.js → chunk-N2FGNKOE.js} +10 -12
  136. package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
  137. package/chunks/{chunk-65CFHNSE.js → chunk-NKHV3OHY.js} +62 -62
  138. package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
  139. package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
  140. package/chunks/{chunk-ALZ75L2X.js → chunk-OZJLTZKP.js} +415 -379
  141. package/chunks/chunk-P3X7RYUQ.js +468 -0
  142. package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
  143. package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
  144. package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
  145. package/chunks/{chunk-AIY5UTFI.js → chunk-QK2JET6S.js} +934 -2881
  146. package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
  147. package/chunks/{chunk-QZF5U5KA.js → chunk-QNTUV3PP.js} +11 -11
  148. package/chunks/chunk-QRUIS3DN.js +47 -0
  149. package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
  150. package/chunks/{chunk-7JGISHHZ.js → chunk-QUJIDGIW.js} +15 -157
  151. package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
  152. package/chunks/{chunk-TDGF35EN.js → chunk-QYMQSECS.js} +3 -3
  153. package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
  154. package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
  155. package/chunks/{chunk-ADZG46HR.js → chunk-RRNR5U2U.js} +2 -2
  156. package/chunks/{chunk-4O344UEE.js → chunk-RW7CXRUM.js} +39 -19
  157. package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
  158. package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
  159. package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
  160. package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
  161. package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
  162. package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
  163. package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
  164. package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
  165. package/chunks/{chunk-JF7DFPQ5.js → chunk-TJCEUA3S.js} +15 -3
  166. package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
  167. package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
  168. package/chunks/{chunk-CISB3IQF.js → chunk-U3VSCGEJ.js} +100 -15
  169. package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
  170. package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
  171. package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
  172. package/chunks/{chunk-YEGT55NW.js → chunk-UUVCHN62.js} +5697 -2983
  173. package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
  174. package/chunks/{chunk-U4FRHCLA.js → chunk-VAUPLGDZ.js} +2370 -364
  175. package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
  176. package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
  177. package/chunks/{chunk-IUE7YWC3.js → chunk-VIUKEWUL.js} +8 -8
  178. package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
  179. package/chunks/{chunk-I4A4K72C.js → chunk-VL7GBUQA.js} +1309 -703
  180. package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
  181. package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
  182. package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
  183. package/chunks/{chunk-RYFZCUJO.js → chunk-WCUK2QXK.js} +17 -9
  184. package/chunks/{chunk-OWVIH4HY.js → chunk-WFHJDT4S.js} +421 -114
  185. package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
  186. package/chunks/{chunk-NZEGNV4V.js → chunk-WPHYXKFL.js} +8 -51
  187. package/chunks/chunk-X4NKFGFJ.js +81 -0
  188. package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
  189. package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
  190. package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
  191. package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
  192. package/chunks/chunk-YAF2MQZ6.js +19 -0
  193. package/chunks/chunk-YF4RZPJP.js +168 -0
  194. package/chunks/{chunk-4KJ2BPIT.js → chunk-YLV3XXFB.js} +4 -40
  195. package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
  196. package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
  197. package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
  198. package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
  199. package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
  200. package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
  201. package/chunks/{computer-use-X4KUU3NM.js → computer-use-2ZTYDNN4.js} +50 -50
  202. package/chunks/config-utils-ZITWCFBY.js +23 -0
  203. package/chunks/contextCommand-6L4XCZZT.js +68 -0
  204. package/chunks/create-sub-session-INX7TXJI.js +207 -0
  205. package/chunks/create-sub-session-VZIOFS6N.js +375 -0
  206. package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
  207. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
  208. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
  209. package/chunks/{daemon-F3I2RXP6.js → daemon-QEDXW7ER.js} +554 -4
  210. package/chunks/daemon-status-provider-7XJZ3HPS.js +76 -0
  211. package/chunks/{de-PLLFDERI.js → de-XHBEYUMG.js} +91 -6
  212. package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
  213. package/chunks/{dist-573HNSVO.js → dist-EFXT7A3G.js} +12 -11
  214. package/chunks/{dist-PKFTNUHO.js → dist-KCRX7TGL.js} +529 -79
  215. package/chunks/{dist-OT7G2WNM.js → dist-MFEAEUV4.js} +1011 -197
  216. package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
  217. package/chunks/{dist-FQ5WRJPL.js → dist-QY3THJM5.js} +5 -5
  218. package/chunks/{dist-IMFFBMAT.js → dist-UJOR6KEQ.js} +32 -15
  219. package/chunks/{dist-YTRKAVUB.js → dist-ZWZB4CCN.js} +10 -10
  220. package/chunks/earlyInputCapture-TTWXFIWO.js +69 -0
  221. package/chunks/{edit-WZTZDGCI.js → edit-6UWFRZKY.js} +51 -51
  222. package/chunks/{en-GA2RMXY5.js → en-TKHUFIK7.js} +100 -6
  223. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-LS7SGAII.js} +50 -50
  224. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-TSZYLEEP.js} +66 -51
  225. package/chunks/environment-XCVLHOXG.js +88 -0
  226. package/chunks/errors-KIANLUTC.js +75 -0
  227. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-2QV6UJSW.js} +50 -50
  228. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-GVZG3F6S.js} +51 -51
  229. package/chunks/{fast-path-W2U6XDNO.js → fast-path-GNFZAMQK.js} +16 -7
  230. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-5QZE64HR.js} +6 -5
  231. package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
  232. package/chunks/{fr-GWNQG4XH.js → fr-TBF6JZNE.js} +91 -6
  233. package/chunks/{gemini-T4WX6SRW.js → gemini-N3H6OLHR.js} +501 -197
  234. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-4C257R2N.js} +9 -9
  235. package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
  236. package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
  237. package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
  238. package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
  239. package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
  240. package/chunks/{glob-4KKSHZDF.js → glob-QTUI5I3Y.js} +95 -74
  241. package/chunks/{grep-GHRYXSLZ.js → grep-Z5MGLRCG.js} +50 -50
  242. package/chunks/handleAutoUpdate-FFF3CZGP.js +69 -0
  243. package/chunks/i18n-QQAJT7A2.js +84 -0
  244. package/chunks/initializer-LGQGC7ZT.js +71 -0
  245. package/chunks/installationInfo-4FEZGXIN.js +65 -0
  246. package/chunks/{ja-2HOTA47X.js → ja-CDXUA2H3.js} +92 -7
  247. package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
  248. package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
  249. package/chunks/list-KIVFF3BB.js +74 -0
  250. package/chunks/loadedSettingsAdapter-EOD3RVZS.js +68 -0
  251. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
  252. package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
  253. package/chunks/{ls-L654WOAT.js → ls-ZB2BDP6T.js} +6 -6
  254. package/chunks/{lsp-M35KE54Y.js → lsp-V5DN4YUJ.js} +6 -8
  255. package/chunks/mcp-D2P46DB4.js +68 -0
  256. package/chunks/{monitor-464OY2UE.js → monitor-4ZWVOL6J.js} +50 -50
  257. package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
  258. package/chunks/nonInteractiveCli-NAHUR2X6.js +124 -0
  259. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-RCQ2D2IE.js} +51 -51
  260. package/chunks/openaiContentGenerator-U655T5QC.js +56 -0
  261. package/chunks/pidfile-O3OO2TCP.js +73 -0
  262. package/chunks/{pt-2THT3YHA.js → pt-6IR2VRQY.js} +91 -6
  263. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-ABGWCRS6.js} +52 -52
  264. package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
  265. package/chunks/read-file-X7M4GUPY.js +30 -0
  266. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
  267. package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
  268. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-4XKZX3UW.js} +7 -7
  269. package/chunks/ripGrep-KMPJJK5J.js +60 -0
  270. package/chunks/{ru-Z67YJHBG.js → ru-DBTHQA3F.js} +91 -6
  271. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-O6CMPURG.js} +958 -184
  272. package/chunks/runtime-THE2YO27.js +94 -0
  273. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-XXEA6EFC.js} +51 -51
  274. package/chunks/{send-message-OA6MV4EU.js → send-message-F36YD6KQ.js} +7 -7
  275. package/chunks/serve-W6F44JQQ.js +74 -0
  276. package/chunks/{server-M372UENX.js → server-SAEKMY52.js} +4340 -829
  277. package/chunks/{session-F5KSNP2N.js → session-4GGYGOWY.js} +162 -117
  278. package/chunks/settings-PYEU5HVD.js +118 -0
  279. package/chunks/shell-JGQECKTH.js +68 -0
  280. package/chunks/{skill-A2TL2NPC.js → skill-XPP3C2DS.js} +24 -24
  281. package/chunks/spawnChannel-62QKQBQN.js +70 -0
  282. package/chunks/{src-XKZMNHXS.js → src-2656Q6SN.js} +126 -52
  283. package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
  284. package/chunks/standalone-update-X7AZVG5R.js +79 -0
  285. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-DXR4K6T5.js} +2277 -1834
  286. package/chunks/stdioHelpers-UMY72QRP.js +14 -0
  287. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
  288. package/chunks/task-create-FRGOEIKY.js +22 -0
  289. package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
  290. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
  291. package/chunks/{task-update-5WUG5MVQ.js → task-update-YRA532MT.js} +12 -12
  292. package/chunks/{team-create-TBQVWAG7.js → team-create-3EHCUCKA.js} +50 -50
  293. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
  294. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-KZ7NZIMX.js} +50 -50
  295. package/chunks/theme-manager-J7ANV4JR.js +64 -0
  296. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
  297. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2XLGWG4H.js} +24 -24
  298. package/chunks/total-session-admission-EQIHUOL6.js +72 -0
  299. package/chunks/trustedFolders-BEX5334Z.js +79 -0
  300. package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
  301. package/chunks/updateCheck-NKPJGJCR.js +69 -0
  302. package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
  303. package/chunks/validateNonInterActiveAuth-6DGGGE4A.js +190 -0
  304. package/chunks/{version-CEDD6ZZR.js → version-FRVWU5ZU.js} +3 -3
  305. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
  306. package/chunks/{workflow-CQQ4J4I6.js → workflow-LWFMECLD.js} +51 -51
  307. package/chunks/workspace-providers-status-NE7QWEYS.js +71 -0
  308. package/chunks/workspace-registry-RCWAP57G.js +76 -0
  309. package/chunks/workspace-service-4QUMVGBX.js +80 -0
  310. package/chunks/workspace-skills-status-L34BYRSY.js +70 -0
  311. package/chunks/{write-file-VWGY7AJP.js → write-file-WXO4M5FN.js} +51 -51
  312. package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
  313. package/chunks/{zh-7XVVRTDH.js → zh-LJP47LX7.js} +101 -7
  314. package/chunks/{zh-TW-DPH554OG.js → zh-TW-5ISMO3VJ.js} +101 -7
  315. package/cli.js +18 -17
  316. package/locales/ca.js +117 -7
  317. package/locales/de.js +116 -7
  318. package/locales/en.js +133 -7
  319. package/locales/fr.js +117 -7
  320. package/locales/ja.js +119 -7
  321. package/locales/pt.js +116 -7
  322. package/locales/ru.js +116 -7
  323. package/locales/zh-TW.js +130 -7
  324. package/locales/zh.js +130 -7
  325. package/package.json +3 -6
  326. package/web-shell/assets/{arc-C7hjaa7g.js → arc-BRDEF7h6.js} +1 -1
  327. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-Cxnk4Ygq.js} +1 -1
  328. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-BZrtayqw.js} +1 -1
  329. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-Djmbi1yB.js} +1 -1
  330. package/web-shell/assets/channel-C9zfQCn-.js +1 -0
  331. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-Cdokj-0U.js} +1 -1
  332. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-BI9Hx57o.js} +1 -1
  333. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-Cb17cEzj.js} +1 -1
  334. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DY1Fc0h_.js} +1 -1
  335. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-B10G71Hd.js} +1 -1
  336. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-BP6OoB6Z.js} +1 -1
  337. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-CWIIwUFC.js} +1 -1
  338. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DMrqCfGO.js} +1 -1
  339. package/web-shell/assets/classDiagram-4FO5ZUOK-BVNaf5JM.js +1 -0
  340. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BVNaf5JM.js +1 -0
  341. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CF-mpkgI.js} +1 -1
  342. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-DfsRFsg7.js} +1 -1
  343. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-DBNwf6Dy.js} +1 -1
  344. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-CD1TqV1j.js} +1 -1
  345. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-DkWlaLI2.js} +1 -1
  346. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-ClrAcxwF.js} +1 -1
  347. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-Dr6dnPLw.js} +1 -1
  348. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-Dm_vj18R.js} +1 -1
  349. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-lp3cMdZu.js} +1 -1
  350. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-AtdCWZya.js} +3 -3
  351. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-BARTJafF.js} +1 -1
  352. package/web-shell/assets/index-BkNgyfu7.js +3 -0
  353. package/web-shell/assets/index-CihmnZZR.js +784 -0
  354. package/web-shell/assets/index-zfdXhnwH.css +5 -0
  355. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-CxbJ54_f.js} +1 -1
  356. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-hFoO0HQA.js} +1 -1
  357. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-Bo6cKnLe.js} +1 -1
  358. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-DIFrH-XL.js} +1 -1
  359. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-Bjv_GjDd.js} +1 -1
  360. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-C_OiqQEP.js} +5 -5
  361. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-B79Gk8aB.js} +1 -1
  362. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B_P0gIHr.js} +1 -1
  363. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-BC7F0ohb.js} +1 -1
  364. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-BrA5_NSW.js} +1 -1
  365. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-Q2iqrNI_.js} +1 -1
  366. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-6vdIWz4H.js} +1 -1
  367. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DMzXNKcB.js} +1 -1
  368. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BWFH0OCO.js +1 -0
  369. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-BykEawmS.js} +1 -1
  370. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-B24KD2X1.js} +1 -1
  371. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-C761G_tA.js} +1 -1
  372. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-CfwGJYqw.js} +1 -1
  373. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BDu5AZ2D.js} +1 -1
  374. package/web-shell/index.html +16 -4
  375. package/chunks/MaxSizedBox-XY5LIO5O.js +0 -71
  376. package/chunks/agent-TKIBLLQT.js +0 -68
  377. package/chunks/agent-headless-VLX4C7KX.js +0 -62
  378. package/chunks/bridge-BCU73DZO.js +0 -77
  379. package/chunks/chunk-6SHO7WFF.js +0 -79
  380. package/chunks/chunk-IFEWJXFS.js +0 -37
  381. package/chunks/chunk-S6RLAIUR.js +0 -23
  382. package/chunks/contextCommand-LAYJZF7H.js +0 -68
  383. package/chunks/daemon-status-provider-XSAFKVDS.js +0 -74
  384. package/chunks/earlyInputCapture-AERYYGXE.js +0 -69
  385. package/chunks/errors-GMZL4QV7.js +0 -75
  386. package/chunks/handleAutoUpdate-HN7ZOSXY.js +0 -65
  387. package/chunks/initializer-SRN3IM42.js +0 -69
  388. package/chunks/list-INTVXUPA.js +0 -71
  389. package/chunks/loadedSettingsAdapter-QVHHQPGM.js +0 -66
  390. package/chunks/mcp-7V4T46RG.js +0 -66
  391. package/chunks/nonInteractiveCli-LJEEODU2.js +0 -116
  392. package/chunks/openaiContentGenerator-PFF6HYB2.js +0 -56
  393. package/chunks/pidfile-LIBUENIV.js +0 -73
  394. package/chunks/read-file-L7TBQVX7.js +0 -30
  395. package/chunks/ripGrep-CKKX3GRB.js +0 -60
  396. package/chunks/serve-36WS32W6.js +0 -71
  397. package/chunks/settings-WFLNS3WT.js +0 -114
  398. package/chunks/shell-DEDSWN56.js +0 -68
  399. package/chunks/spawnChannel-RQHUWTCL.js +0 -70
  400. package/chunks/task-create-RPFZNB4B.js +0 -22
  401. package/chunks/theme-manager-DQZVNSOC.js +0 -64
  402. package/chunks/trustedFolders-Z475EIHL.js +0 -79
  403. package/chunks/updateCheck-E2ZX7RL7.js +0 -65
  404. package/chunks/validateNonInterActiveAuth-O4ECBHQL.js +0 -181
  405. package/chunks/workspace-providers-status-MVYXMYDG.js +0 -68
  406. package/chunks/workspace-service-OMBR6ZLG.js +0 -78
  407. package/chunks/workspace-skills-status-IMMQ7CAY.js +0 -68
  408. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  409. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  410. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  411. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  412. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  413. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  414. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  415. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  416. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  417. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  418. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  419. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  420. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  421. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  422. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  423. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  424. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  425. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  426. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  427. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  428. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  429. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  430. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  431. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  432. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  433. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  434. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
@@ -1,23 +1,23 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ DEFAULT_DARK_THEME_NAME,
5
+ DEFAULT_LIGHT_THEME_NAME
6
+ } from "./chunk-RKUWKYED.js";
3
7
  import {
4
8
  SUPPORTED_LANGUAGES,
5
9
  detectSystemLanguage,
6
10
  getLanguageNameFromLocale,
7
11
  getLanguageSettingsOptions,
8
12
  t
9
- } from "./chunk-QAKFYMJI.js";
13
+ } from "./chunk-LD5OWZ5E.js";
10
14
  import {
11
- DEFAULT_DARK_THEME_NAME,
12
- DEFAULT_LIGHT_THEME_NAME
13
- } from "./chunk-TLRYABYP.js";
15
+ getHomeEnvFallbackVars,
16
+ loadEnvironment,
17
+ preResolveHomeEnvOverrides
18
+ } from "./chunk-P3X7RYUQ.js";
14
19
  import {
15
20
  CONSOLIDATED_DISABLE_KEYS,
16
- DEFAULT_EXCLUDED_ENV_VARS,
17
- ENV_CORRUPTED_PATH,
18
- ENV_WAS_RECOVERED,
19
- HOME_ENV_BOOTSTRAP_KEYS,
20
- PROJECT_ENV_HARDCODED_EXCLUSIONS,
21
21
  V1_INDICATOR_KEYS,
22
22
  V1_TO_V2_MIGRATION_MAP,
23
23
  V1_TO_V2_PRESERVE_DISABLE_MAP,
@@ -25,14 +25,18 @@ import {
25
25
  getSystemDefaultsPath,
26
26
  getSystemSettingsPath,
27
27
  resolveEnvVarsInObject
28
- } from "./chunk-4RQIB5UZ.js";
28
+ } from "./chunk-3BTRNWWD.js";
29
+ import {
30
+ ENV_CORRUPTED_PATH,
31
+ ENV_WAS_RECOVERED
32
+ } from "./chunk-QRUIS3DN.js";
29
33
  import {
30
34
  isWorkspaceTrusted,
31
35
  updateSettingsFilePreservingFormat
32
- } from "./chunk-MIG5SQNL.js";
36
+ } from "./chunk-CBKR4Q5K.js";
33
37
  import {
34
38
  require_strip_json_comments
35
- } from "./chunk-QYUE6W3T.js";
39
+ } from "./chunk-RDJSGHZE.js";
36
40
  import {
37
41
  DEFAULT_MAX_SUBAGENT_DEPTH,
38
42
  DEFAULT_MAX_TOOL_CALLS_PER_TURN,
@@ -42,27 +46,23 @@ import {
42
46
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
43
47
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
44
48
  stripRuntimeSnapshotPrefix
45
- } from "./chunk-YEGT55NW.js";
46
- import {
47
- require_main
48
- } from "./chunk-SKAZWEV5.js";
49
+ } from "./chunk-UUVCHN62.js";
49
50
  import {
50
51
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
51
- } from "./chunk-TLWA7TPR.js";
52
+ } from "./chunk-4QLQE5WJ.js";
52
53
  import {
53
54
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
54
55
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
55
- } from "./chunk-GMOWQOQQ.js";
56
+ } from "./chunk-MUCWGT7O.js";
56
57
  import {
57
58
  FatalConfigError,
58
- QWEN_DIR,
59
59
  Storage,
60
60
  createDebugLogger,
61
61
  getErrorMessage
62
- } from "./chunk-22MNNNXE.js";
62
+ } from "./chunk-J4TSQ5EQ.js";
63
63
  import {
64
64
  init_esbuild_shims
65
- } from "./chunk-A4BMJM77.js";
65
+ } from "./chunk-5O2XNYP6.js";
66
66
  import {
67
67
  __name,
68
68
  __toESM
@@ -70,10 +70,10 @@ import {
70
70
 
71
71
  // packages/cli/src/config/settings.ts
72
72
  init_esbuild_shims();
73
- import * as fs4 from "node:fs";
74
- import * as path3 from "node:path";
75
- import { homedir as homedir2 } from "node:os";
76
- import process2 from "node:process";
73
+ import * as fs3 from "node:fs";
74
+ import * as path2 from "node:path";
75
+ import { homedir } from "node:os";
76
+ import process from "node:process";
77
77
  var import_strip_json_comments = __toESM(require_strip_json_comments(), 1);
78
78
 
79
79
  // packages/cli/src/config/modelProvidersScope.ts
@@ -841,25 +841,30 @@ var SETTINGS_SCHEMA = {
841
841
  category: "UI",
842
842
  requiresRestart: false,
843
843
  default: false,
844
- description: "Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).",
845
- showInDialog: true
844
+ // Retired from the TUI (compact tool output is now always-on there, and
845
+ // Ctrl+O opens the transcript instead of toggling this). Kept as a
846
+ // hidden, schema-only setting so the web shell's independent compact
847
+ // toggle can still persist via the daemon settings routes (mirrors
848
+ // `voiceModel`). Not shown in the TUI settings dialog.
849
+ description: "Compact view (web shell only; not used by the TUI).",
850
+ showInDialog: false
846
851
  },
847
- compactInline: {
852
+ useTerminalBuffer: {
848
853
  type: "boolean",
849
- label: "Compact Inline",
854
+ label: "Virtualized History (reduces flicker on long sessions)",
850
855
  category: "UI",
851
- requiresRestart: true,
856
+ requiresRestart: false,
852
857
  default: false,
853
- description: "Compact tool display within each group instead of merging across groups. Requires compactMode to be enabled.",
858
+ description: "Render conversation history in an in-app scrollable viewport instead of the terminal scrollback buffer. Recommended if you see flicker, scroll-storm, or interface freeze on long sessions, after Ctrl+O, after Ctrl+E / Ctrl+F (expand), after window resize, or when alt-tabbing back. Scroll with Shift+\u2191/\u2193 (line), PgUp/PgDn (page), Ctrl+Home/End (top/bottom), or the mouse wheel. Also enables mouse interactions: click an option in a menu/dialog to select it, hover to highlight it, and click in the prompt to position the cursor. Does NOT use the host terminal scrollback while enabled; for native text selection, hold Shift (or Option on macOS) while dragging.",
854
859
  showInDialog: true
855
860
  },
856
- useTerminalBuffer: {
861
+ showScrollbar: {
857
862
  type: "boolean",
858
- label: "Virtualized History (reduces flicker on long sessions)",
863
+ label: "Show Scrollbar (Virtualized History)",
859
864
  category: "UI",
860
865
  requiresRestart: false,
861
- default: false,
862
- description: "Render conversation history in an in-app scrollable viewport instead of the terminal scrollback buffer. Recommended if you see flicker, scroll-storm, or interface freeze on long sessions, after Ctrl+O, after Ctrl+E / Ctrl+F (expand), after window resize, or when alt-tabbing back. Scroll with Shift+\u2191/\u2193 (line), PgUp/PgDn (page), Ctrl+Home/End (top/bottom), or the mouse wheel. Also enables mouse interactions: click an option in a menu/dialog to select it, hover to highlight it, and click in the prompt to position the cursor. Does NOT use the host terminal scrollback while enabled; for native text selection, hold Shift (or Option on macOS) while dragging.",
866
+ default: true,
867
+ description: "Show the auto-hiding scrollbar in the in-app scrollable viewport (Virtualized History). The bar appears while scrolling and fades out when idle. Disable to hide it entirely.",
863
868
  showInDialog: true
864
869
  },
865
870
  shellOutputMaxLines: {
@@ -1093,6 +1098,19 @@ var SETTINGS_SCHEMA = {
1093
1098
  description: "Image-capable model used as the vision bridge: when a text-only main model receives an image, it is transcribed by this model first. Set with /model --vision. Leave empty to auto-pick a same-provider vision model.",
1094
1099
  showInDialog: true
1095
1100
  },
1101
+ visionBridgeTimeoutMs: {
1102
+ type: "integer",
1103
+ label: "Vision Bridge Timeout (ms)",
1104
+ category: "Model",
1105
+ // Read once in the Config constructor with no setter, so a mid-session
1106
+ // change only takes effect on restart.
1107
+ requiresRestart: true,
1108
+ default: void 0,
1109
+ minimum: 1,
1110
+ maximum: 2147483647,
1111
+ description: "Per-attempt timeout in milliseconds for the vision bridge image transcription call (a positive integer up to 2147483647). Unset uses the built-in 30s. Raise for slow or proxied vision endpoints.",
1112
+ showInDialog: false
1113
+ },
1096
1114
  modelFallbacks: {
1097
1115
  type: "string",
1098
1116
  label: "Model Fallbacks",
@@ -1310,6 +1328,16 @@ var SETTINGS_SCHEMA = {
1310
1328
  parentKey: "generationConfig",
1311
1329
  showInDialog: false
1312
1330
  },
1331
+ forceGlobalCacheScope: {
1332
+ type: "boolean",
1333
+ label: "Force Global Cache Scope",
1334
+ category: "Generation Configuration",
1335
+ requiresRestart: false,
1336
+ default: false,
1337
+ description: "Force scope:'global' on Anthropic cache_control entries even when the base URL is not an Anthropic-native origin (e.g. proxy providers like Routify, OpenRouter). Requires the proxy to forward cache_control fields and the prompt-caching-scope-2026-01-05 beta.",
1338
+ parentKey: "generationConfig",
1339
+ showInDialog: false
1340
+ },
1313
1341
  splitToolMedia: {
1314
1342
  type: "boolean",
1315
1343
  label: "Split Tool Result Media",
@@ -1533,7 +1561,7 @@ var SETTINGS_SCHEMA = {
1533
1561
  category: "Context",
1534
1562
  requiresRestart: false,
1535
1563
  default: void 0,
1536
- description: "Fraction of context window at which auto-compaction triggers (greater than 0, up to 1). Default is 0.7 (70%).",
1564
+ description: "Target fraction of the context window at which auto-compaction triggers (greater than 0, up to 1). Acts as a ceiling on the trigger: on large windows this is the effective trigger (~85%); on smaller windows compaction may fire earlier to leave room to summarize. Default is 0.85 (85%).",
1537
1565
  showInDialog: false,
1538
1566
  jsonSchemaOverride: {
1539
1567
  type: "number",
@@ -1588,6 +1616,16 @@ var SETTINGS_SCHEMA = {
1588
1616
  description: "Ask for confirmation before auto-generated skills are added to the skill library. When off, auto-skills are saved immediately.",
1589
1617
  showInDialog: false
1590
1618
  },
1619
+ agentTimeoutMinutes: {
1620
+ type: "number",
1621
+ label: "Memory Agent Timeout (minutes)",
1622
+ category: "Memory",
1623
+ requiresRestart: true,
1624
+ default: void 0,
1625
+ minimum: 0,
1626
+ description: "Max runtime in minutes for background memory agents (extraction, dream, remember, skill review). Unset uses each agent's built-in default (2\u20135 minutes); 0 disables the time limit. Useful for slow local models that need longer than the defaults.",
1627
+ showInDialog: false
1628
+ },
1591
1629
  enableTeamMemory: {
1592
1630
  type: "boolean",
1593
1631
  label: "Enable Team Memory",
@@ -2716,7 +2754,7 @@ var SETTINGS_SCHEMA = {
2716
2754
  category: "Experimental",
2717
2755
  requiresRestart: false,
2718
2756
  default: true,
2719
- description: "Generate a short LLM-based label after each tool batch completes. In compact mode the label replaces the generic `Tool \xD7 N` header; in full mode it appears as a dim `\u25CF <label>` line below the tool group. Requires a fast model to be configured; runs in parallel with the next API call so latency is hidden. Currently affects interactive CLI rendering only \u2014 SDK / non-interactive emission of the `tool_use_summary` message is not yet wired (the message factory is exported for a follow-up PR). Can be overridden with QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 or =1.",
2757
+ description: "Generate a short LLM-based label after each tool batch completes. For a completed tool group the label replaces the generic `Tool \xD7 N` header; when the group is force-expanded it appears as a dim `\u25CF <label>` line below the tool group. Requires a fast model to be configured; runs in parallel with the next API call so latency is hidden. Currently affects interactive CLI rendering only \u2014 SDK / non-interactive emission of the `tool_use_summary` message is not yet wired (the message factory is exported for a follow-up PR). Can be overridden with QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 or =1.",
2720
2758
  showInDialog: true
2721
2759
  }
2722
2760
  }
@@ -3047,8 +3085,8 @@ function getDefaultValue(key) {
3047
3085
  return getFlattenedSchema()[key]?.default;
3048
3086
  }
3049
3087
  __name(getDefaultValue, "getDefaultValue");
3050
- function getNestedValue(obj, path4) {
3051
- const [first, ...rest] = path4;
3088
+ function getNestedValue(obj, path3) {
3089
+ const [first, ...rest] = path3;
3052
3090
  if (!first || !(first in obj)) {
3053
3091
  return void 0;
3054
3092
  }
@@ -3062,8 +3100,8 @@ function getNestedValue(obj, path4) {
3062
3100
  return void 0;
3063
3101
  }
3064
3102
  __name(getNestedValue, "getNestedValue");
3065
- function getNestedProperty(obj, path4) {
3066
- return getNestedValue(obj, path4.split("."));
3103
+ function getNestedProperty(obj, path3) {
3104
+ return getNestedValue(obj, path3.split("."));
3067
3105
  }
3068
3106
  __name(getNestedProperty, "getNestedProperty");
3069
3107
  function getEffectiveValue(key, settings, mergedSettings) {
@@ -3071,12 +3109,12 @@ function getEffectiveValue(key, settings, mergedSettings) {
3071
3109
  if (!definition) {
3072
3110
  return void 0;
3073
3111
  }
3074
- const path4 = key.split(".");
3075
- let value = getNestedValue(settings, path4);
3112
+ const path3 = key.split(".");
3113
+ let value = getNestedValue(settings, path3);
3076
3114
  if (value !== void 0) {
3077
3115
  return value;
3078
3116
  }
3079
- value = getNestedValue(mergedSettings, path4);
3117
+ value = getNestedValue(mergedSettings, path3);
3080
3118
  if (value !== void 0) {
3081
3119
  return value;
3082
3120
  }
@@ -3130,6 +3168,15 @@ function validateSettingValue(def, value) {
3130
3168
  if (def.maximum !== void 0 && value > def.maximum)
3131
3169
  return `Value must be <= ${def.maximum}`;
3132
3170
  break;
3171
+ case "integer":
3172
+ if (typeof value !== "number" || !Number.isFinite(value))
3173
+ return "Value must be a finite integer";
3174
+ if (!Number.isInteger(value)) return "Value must be an integer";
3175
+ if (def.minimum !== void 0 && value < def.minimum)
3176
+ return `Value must be >= ${def.minimum}`;
3177
+ if (def.maximum !== void 0 && value > def.maximum)
3178
+ return `Value must be <= ${def.maximum}`;
3179
+ break;
3133
3180
  case "string":
3134
3181
  if (typeof value !== "string") return "Value must be a string";
3135
3182
  if (value.length > MAX_SETTING_STRING_VALUE_LENGTH)
@@ -3162,8 +3209,8 @@ function getDialogSettingKeys() {
3162
3209
  }
3163
3210
  __name(getDialogSettingKeys, "getDialogSettingKeys");
3164
3211
  function settingExistsInScope(key, scopeSettings) {
3165
- const path4 = key.split(".");
3166
- const value = getNestedValue(scopeSettings, path4);
3212
+ const path3 = key.split(".");
3213
+ const value = getNestedValue(scopeSettings, path3);
3167
3214
  return value !== void 0;
3168
3215
  }
3169
3216
  __name(settingExistsInScope, "settingExistsInScope");
@@ -3176,8 +3223,8 @@ function pathHasUnsafeSegment(keys) {
3176
3223
  return false;
3177
3224
  }
3178
3225
  __name(pathHasUnsafeSegment, "pathHasUnsafeSegment");
3179
- function setNestedPropertyForce(obj, path4, value) {
3180
- const keys = path4.split(".");
3226
+ function setNestedPropertyForce(obj, path3, value) {
3227
+ const keys = path3.split(".");
3181
3228
  if (pathHasUnsafeSegment(keys)) return;
3182
3229
  const lastKey = keys.pop();
3183
3230
  if (!lastKey) return;
@@ -3191,8 +3238,8 @@ function setNestedPropertyForce(obj, path4, value) {
3191
3238
  current[lastKey] = value;
3192
3239
  }
3193
3240
  __name(setNestedPropertyForce, "setNestedPropertyForce");
3194
- function setNestedPropertySafe(obj, path4, value) {
3195
- const keys = path4.split(".");
3241
+ function setNestedPropertySafe(obj, path3, value) {
3242
+ const keys = path3.split(".");
3196
3243
  if (pathHasUnsafeSegment(keys)) return;
3197
3244
  const lastKey = keys.pop();
3198
3245
  if (!lastKey) return;
@@ -3211,8 +3258,8 @@ function setNestedPropertySafe(obj, path4, value) {
3211
3258
  current[lastKey] = value;
3212
3259
  }
3213
3260
  __name(setNestedPropertySafe, "setNestedPropertySafe");
3214
- function deleteNestedPropertySafe(obj, path4) {
3215
- const keys = path4.split(".");
3261
+ function deleteNestedPropertySafe(obj, path3) {
3262
+ const keys = path3.split(".");
3216
3263
  const lastKey = keys.pop();
3217
3264
  if (!lastKey) return;
3218
3265
  let current = obj;
@@ -3244,10 +3291,10 @@ function getRestartRequiredFromModified(modifiedSettings) {
3244
3291
  __name(getRestartRequiredFromModified, "getRestartRequiredFromModified");
3245
3292
  function saveModifiedSettings(modifiedSettings, pendingSettings, loadedSettings, scope) {
3246
3293
  modifiedSettings.forEach((settingKey) => {
3247
- const path4 = settingKey.split(".");
3294
+ const path3 = settingKey.split(".");
3248
3295
  const value = getNestedValue(
3249
3296
  pendingSettings,
3250
- path4
3297
+ path3
3251
3298
  );
3252
3299
  const existsInOriginalFile = settingExistsInScope(
3253
3300
  settingKey,
@@ -3349,12 +3396,12 @@ function isPlainObject(item) {
3349
3396
  return !!item && typeof item === "object" && !Array.isArray(item);
3350
3397
  }
3351
3398
  __name(isPlainObject, "isPlainObject");
3352
- function mergeRecursively(target, source, getMergeStrategyForPath2, path4 = []) {
3399
+ function mergeRecursively(target, source, getMergeStrategyForPath2, path3 = []) {
3353
3400
  for (const key of Object.keys(source)) {
3354
3401
  if (key === "__proto__" || key === "constructor" || key === "prototype") {
3355
3402
  continue;
3356
3403
  }
3357
- const newPath = [...path4, key];
3404
+ const newPath = [...path3, key];
3358
3405
  const srcValue = source[key];
3359
3406
  const objValue = target[key];
3360
3407
  const mergeStrategy = getMergeStrategyForPath2(newPath);
@@ -3950,382 +3997,12 @@ function needsMigration(settings) {
3950
3997
  }
3951
3998
  __name(needsMigration, "needsMigration");
3952
3999
 
3953
- // packages/cli/src/config/environment.ts
3954
- init_esbuild_shims();
3955
- var dotenv = __toESM(require_main(), 1);
3956
- import * as fs3 from "node:fs";
3957
- import * as path2 from "node:path";
3958
- import * as os from "node:os";
3959
- var SETTINGS_DIRECTORY_NAME = QWEN_DIR;
3960
- var RELOAD_EXCLUDED_KEYS = /* @__PURE__ */ new Set([
3961
- ...PROJECT_ENV_HARDCODED_EXCLUSIONS,
3962
- "QWEN_SERVER_TOKEN",
3963
- "QWEN_CLI_ENTRY",
3964
- "NODE_OPTIONS",
3965
- "NODE_PATH",
3966
- "NODE_TLS_REJECT_UNAUTHORIZED",
3967
- "LD_PRELOAD",
3968
- "LD_AUDIT",
3969
- "LD_LIBRARY_PATH",
3970
- "DYLD_INSERT_LIBRARIES",
3971
- "DYLD_LIBRARY_PATH",
3972
- "BASH_ENV",
3973
- "ENV",
3974
- "PATH",
3975
- "HOME",
3976
- "TMPDIR",
3977
- "TMP",
3978
- "TEMP"
3979
- ]);
3980
- var dotEnvSourcedKeys = /* @__PURE__ */ new Set();
3981
- var settingsEnvSourcedKeys = /* @__PURE__ */ new Set();
3982
- var lastReloadSnapshot = /* @__PURE__ */ new Map();
3983
- var lastReloadSnapshotSeeded = false;
3984
- function getUserLevelEnvPaths() {
3985
- const homeDir = os.homedir();
3986
- const globalQwenDir = Storage.getGlobalQwenDir();
3987
- const paths = /* @__PURE__ */ new Set([
3988
- path2.normalize(path2.join(homeDir, ".env")),
3989
- path2.normalize(path2.join(globalQwenDir, ".env"))
3990
- ]);
3991
- const legacyQwenEnv = path2.normalize(path2.join(homeDir, QWEN_DIR, ".env"));
3992
- paths.add(legacyQwenEnv);
3993
- return paths;
3994
- }
3995
- __name(getUserLevelEnvPaths, "getUserLevelEnvPaths");
3996
- var homeEnvBootstrapped = false;
3997
- function preResolveHomeEnvOverrides() {
3998
- if (homeEnvBootstrapped) {
3999
- return;
4000
- }
4001
- homeEnvBootstrapped = true;
4002
- if (HOME_ENV_BOOTSTRAP_KEYS.every((key) => process.env[key])) {
4003
- return;
4004
- }
4005
- const initialQwenHome = process.env["QWEN_HOME"];
4006
- const initialQwenDir = Storage.getGlobalQwenDir();
4007
- const candidates = [path2.join(initialQwenDir, ".env")];
4008
- if (!initialQwenHome) {
4009
- candidates.push(path2.join(path2.dirname(initialQwenDir), ".env"));
4010
- }
4011
- for (const candidate of candidates) {
4012
- readHomeEnvInto(candidate);
4013
- }
4014
- const discoveredQwenHome = process.env["QWEN_HOME"];
4015
- if (discoveredQwenHome && discoveredQwenHome !== initialQwenHome) {
4016
- const discoveredDir = Storage.getGlobalQwenDir();
4017
- if (discoveredDir !== initialQwenDir) {
4018
- readHomeEnvInto(path2.join(discoveredDir, ".env"));
4019
- }
4020
- }
4021
- }
4022
- __name(preResolveHomeEnvOverrides, "preResolveHomeEnvOverrides");
4023
- function readHomeEnvInto(file) {
4024
- if (!fs3.existsSync(file)) {
4025
- return;
4026
- }
4027
- try {
4028
- const parsed = dotenv.parse(fs3.readFileSync(file, "utf-8"));
4029
- for (const key of PROJECT_ENV_HARDCODED_EXCLUSIONS) {
4030
- if (parsed[key] && !Object.hasOwn(process.env, key)) {
4031
- process.env[key] = parsed[key];
4032
- }
4033
- }
4034
- } catch (_e) {
4035
- }
4036
- }
4037
- __name(readHomeEnvInto, "readHomeEnvInto");
4038
- function resetHomeEnvBootstrapForTesting() {
4039
- homeEnvBootstrapped = false;
4040
- }
4041
- __name(resetHomeEnvBootstrapForTesting, "resetHomeEnvBootstrapForTesting");
4042
- function resetEnvironmentTrackingForTesting() {
4043
- dotEnvSourcedKeys.clear();
4044
- settingsEnvSourcedKeys.clear();
4045
- lastReloadSnapshot.clear();
4046
- lastReloadSnapshotSeeded = false;
4047
- }
4048
- __name(resetEnvironmentTrackingForTesting, "resetEnvironmentTrackingForTesting");
4049
- function getHomeEnvFallbackVars(onReadError) {
4050
- const globalQwenDir = Storage.getGlobalQwenDir();
4051
- const candidates = [path2.join(globalQwenDir, ".env")];
4052
- if (!process.env["QWEN_HOME"]) {
4053
- candidates.push(path2.join(path2.dirname(globalQwenDir), ".env"));
4054
- }
4055
- const result = {};
4056
- for (const candidate of candidates) {
4057
- if (!fs3.existsSync(candidate)) {
4058
- continue;
4059
- }
4060
- try {
4061
- const parsed = dotenv.parse(fs3.readFileSync(candidate, "utf-8"));
4062
- for (const key in parsed) {
4063
- if (Object.hasOwn(parsed, key) && !Object.hasOwn(process.env, key)) {
4064
- result[key] ??= parsed[key];
4065
- }
4066
- }
4067
- } catch (e) {
4068
- onReadError?.(
4069
- `Failed to read home .env candidate ${candidate}: ${getErrorMessage(e)}`
4070
- );
4071
- }
4072
- }
4073
- return result;
4074
- }
4075
- __name(getHomeEnvFallbackVars, "getHomeEnvFallbackVars");
4076
- function findEnvFiles(settings, startDir, userLevelPaths = getUserLevelEnvPaths()) {
4077
- const homeDir = os.homedir();
4078
- let realStartDir = path2.resolve(startDir);
4079
- try {
4080
- realStartDir = fs3.realpathSync(realStartDir);
4081
- } catch {
4082
- }
4083
- const isTrusted = isWorkspaceTrusted(
4084
- settings,
4085
- void 0,
4086
- realStartDir
4087
- ).isTrusted;
4088
- const globalQwenDir = Storage.getGlobalQwenDir();
4089
- const legacyQwenDir = path2.normalize(path2.join(homeDir, QWEN_DIR));
4090
- const hasCustomConfigDir = path2.normalize(globalQwenDir) !== legacyQwenDir;
4091
- const found = [];
4092
- const seen = /* @__PURE__ */ new Set();
4093
- const canUseEnvFile = /* @__PURE__ */ __name((filePath) => isTrusted !== false || userLevelPaths.has(path2.normalize(filePath)), "canUseEnvFile");
4094
- const pushCandidate = /* @__PURE__ */ __name((filePath) => {
4095
- const normalized = path2.normalize(filePath);
4096
- if (!seen.has(normalized) && fs3.existsSync(filePath) && canUseEnvFile(filePath)) {
4097
- seen.add(normalized);
4098
- found.push(filePath);
4099
- return true;
4100
- }
4101
- return false;
4102
- }, "pushCandidate");
4103
- const pushHomeCandidates = /* @__PURE__ */ __name(() => {
4104
- const candidates = [path2.join(globalQwenDir, ".env")];
4105
- if (hasCustomConfigDir) {
4106
- candidates.push(path2.join(legacyQwenDir, ".env"));
4107
- }
4108
- candidates.push(path2.join(homeDir, ".env"));
4109
- for (const candidate of candidates) {
4110
- pushCandidate(candidate);
4111
- }
4112
- }, "pushHomeCandidates");
4113
- let currentDir = realStartDir;
4114
- let visitedHomeDir = false;
4115
- while (true) {
4116
- if (currentDir === homeDir) {
4117
- visitedHomeDir = true;
4118
- pushHomeCandidates();
4119
- return found;
4120
- } else {
4121
- const geminiEnvPath = path2.join(currentDir, QWEN_DIR, ".env");
4122
- if (pushCandidate(geminiEnvPath)) {
4123
- pushHomeCandidates();
4124
- return found;
4125
- }
4126
- const envPath = path2.join(currentDir, ".env");
4127
- if (pushCandidate(envPath)) {
4128
- pushHomeCandidates();
4129
- return found;
4130
- }
4131
- }
4132
- const parentDir = path2.dirname(currentDir);
4133
- if (parentDir === currentDir || !parentDir) {
4134
- if (!visitedHomeDir) {
4135
- pushHomeCandidates();
4136
- }
4137
- return found;
4138
- }
4139
- currentDir = parentDir;
4140
- }
4141
- }
4142
- __name(findEnvFiles, "findEnvFiles");
4143
- function setUpCloudShellEnvironment(envFilePath) {
4144
- if (envFilePath && fs3.existsSync(envFilePath)) {
4145
- const envFileContent = fs3.readFileSync(envFilePath);
4146
- const parsedEnv = dotenv.parse(envFileContent);
4147
- if (parsedEnv["GOOGLE_CLOUD_PROJECT"]) {
4148
- process.env["GOOGLE_CLOUD_PROJECT"] = parsedEnv["GOOGLE_CLOUD_PROJECT"];
4149
- } else {
4150
- process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
4151
- }
4152
- } else {
4153
- process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
4154
- }
4155
- }
4156
- __name(setUpCloudShellEnvironment, "setUpCloudShellEnvironment");
4157
- function setUpCloudShellEnvironmentFromFiles(envFilePaths) {
4158
- for (const envFilePath of envFilePaths) {
4159
- if (!fs3.existsSync(envFilePath)) {
4160
- continue;
4161
- }
4162
- const envFileContent = fs3.readFileSync(envFilePath);
4163
- const parsedEnv = dotenv.parse(envFileContent);
4164
- if (parsedEnv["GOOGLE_CLOUD_PROJECT"]) {
4165
- process.env["GOOGLE_CLOUD_PROJECT"] = parsedEnv["GOOGLE_CLOUD_PROJECT"];
4166
- return;
4167
- }
4168
- }
4169
- process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
4170
- }
4171
- __name(setUpCloudShellEnvironmentFromFiles, "setUpCloudShellEnvironmentFromFiles");
4172
- function loadEnvironment(settings, startDir = process.cwd()) {
4173
- const userLevelPaths = getUserLevelEnvPaths();
4174
- const envFilePaths = findEnvFiles(settings, startDir, userLevelPaths);
4175
- if (process.env["CLOUD_SHELL"] === "true") {
4176
- setUpCloudShellEnvironmentFromFiles(envFilePaths);
4177
- }
4178
- for (const envFilePath of envFilePaths) {
4179
- try {
4180
- const envFileContent = fs3.readFileSync(envFilePath, "utf-8");
4181
- const parsedEnv = dotenv.parse(envFileContent);
4182
- const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
4183
- const normalizedEnvFilePath = path2.normalize(envFilePath);
4184
- const isHomeScopedEnvFile = userLevelPaths.has(normalizedEnvFilePath);
4185
- const isQwenScopedEnvFile = isHomeScopedEnvFile || path2.basename(path2.dirname(normalizedEnvFilePath)) === QWEN_DIR;
4186
- for (const key in parsedEnv) {
4187
- if (Object.hasOwn(parsedEnv, key)) {
4188
- if (!isHomeScopedEnvFile && PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
4189
- continue;
4190
- }
4191
- if (!isQwenScopedEnvFile && excludedVars.includes(key)) {
4192
- continue;
4193
- }
4194
- const existingValue = process.env[key];
4195
- const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
4196
- if (isEffectivelyUnset) {
4197
- process.env[key] = parsedEnv[key];
4198
- dotEnvSourcedKeys.add(key);
4199
- }
4200
- if (!lastReloadSnapshotSeeded && !lastReloadSnapshot.has(key)) {
4201
- lastReloadSnapshot.set(key, parsedEnv[key]);
4202
- }
4203
- }
4204
- }
4205
- } catch (_e) {
4206
- }
4207
- }
4208
- if (settings.env) {
4209
- for (const [key, value] of Object.entries(settings.env)) {
4210
- if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
4211
- continue;
4212
- }
4213
- const existingValue = process.env[key];
4214
- const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
4215
- if (isEffectivelyUnset && typeof value === "string") {
4216
- process.env[key] = value;
4217
- settingsEnvSourcedKeys.add(key);
4218
- }
4219
- if (!lastReloadSnapshotSeeded && typeof value === "string" && !lastReloadSnapshot.has(key)) {
4220
- lastReloadSnapshot.set(key, value);
4221
- }
4222
- }
4223
- }
4224
- lastReloadSnapshotSeeded = true;
4225
- }
4226
- __name(loadEnvironment, "loadEnvironment");
4227
- function reloadEnvironment(settings, workspaceCwd) {
4228
- const userLevelPaths = getUserLevelEnvPaths();
4229
- const envFilePaths = findEnvFiles(settings, workspaceCwd, userLevelPaths);
4230
- if (process.env["CLOUD_SHELL"] === "true") {
4231
- setUpCloudShellEnvironmentFromFiles(envFilePaths);
4232
- }
4233
- let dotEnvReadFailed = false;
4234
- const newDotEnvKeys = /* @__PURE__ */ new Map();
4235
- const newSettingsEnvKeys = /* @__PURE__ */ new Map();
4236
- for (const envFilePath of envFilePaths) {
4237
- try {
4238
- const envFileContent = fs3.readFileSync(envFilePath, "utf-8");
4239
- const parsedEnv = dotenv.parse(envFileContent);
4240
- const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
4241
- const normalizedEnvFilePath = path2.normalize(envFilePath);
4242
- const isHomeScopedEnvFile = userLevelPaths.has(normalizedEnvFilePath);
4243
- const isQwenScopedEnvFile = isHomeScopedEnvFile || path2.basename(path2.dirname(normalizedEnvFilePath)) === QWEN_DIR;
4244
- for (const key in parsedEnv) {
4245
- if (!Object.hasOwn(parsedEnv, key)) continue;
4246
- if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
4247
- if (!isHomeScopedEnvFile && PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
4248
- continue;
4249
- }
4250
- if (!isQwenScopedEnvFile && excludedVars.includes(key)) continue;
4251
- if (!newDotEnvKeys.has(key)) {
4252
- newDotEnvKeys.set(key, parsedEnv[key]);
4253
- }
4254
- }
4255
- } catch {
4256
- dotEnvReadFailed = true;
4257
- }
4258
- }
4259
- if (settings.env) {
4260
- for (const [key, value] of Object.entries(settings.env)) {
4261
- if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
4262
- if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
4263
- if (typeof value !== "string") continue;
4264
- const dotEnvValue = newDotEnvKeys.get(key);
4265
- if (dotEnvValue !== void 0 && dotEnvValue !== "") continue;
4266
- if (dotEnvReadFailed && lastReloadSnapshot.has(key)) continue;
4267
- newSettingsEnvKeys.set(key, value);
4268
- }
4269
- }
4270
- const allNewKeys = /* @__PURE__ */ new Set([
4271
- ...newDotEnvKeys.keys(),
4272
- ...newSettingsEnvKeys.keys()
4273
- ]);
4274
- const updatedKeys = [];
4275
- const removedKeys = [];
4276
- if (!dotEnvReadFailed) {
4277
- const previouslyKnown = /* @__PURE__ */ new Set([
4278
- ...lastReloadSnapshot.keys(),
4279
- ...dotEnvSourcedKeys,
4280
- ...settingsEnvSourcedKeys
4281
- ]);
4282
- for (const key of previouslyKnown) {
4283
- if (!allNewKeys.has(key) && !RELOAD_EXCLUDED_KEYS.has(key)) {
4284
- delete process.env[key];
4285
- removedKeys.push(key);
4286
- }
4287
- }
4288
- }
4289
- for (const [key, value] of newDotEnvKeys) {
4290
- if (value === "" && newSettingsEnvKeys.has(key)) continue;
4291
- if (process.env[key] !== value) {
4292
- updatedKeys.push(key);
4293
- }
4294
- process.env[key] = value;
4295
- }
4296
- for (const [key, value] of newSettingsEnvKeys) {
4297
- if (process.env[key] !== value) {
4298
- updatedKeys.push(key);
4299
- }
4300
- process.env[key] = value;
4301
- }
4302
- if (!dotEnvReadFailed) {
4303
- dotEnvSourcedKeys.clear();
4304
- for (const key of newDotEnvKeys.keys()) {
4305
- dotEnvSourcedKeys.add(key);
4306
- }
4307
- lastReloadSnapshot.clear();
4308
- for (const [key, value] of newDotEnvKeys) {
4309
- lastReloadSnapshot.set(key, value);
4310
- }
4311
- for (const [key, value] of newSettingsEnvKeys) {
4312
- lastReloadSnapshot.set(key, value);
4313
- }
4314
- }
4315
- settingsEnvSourcedKeys.clear();
4316
- for (const key of newSettingsEnvKeys.keys()) {
4317
- settingsEnvSourcedKeys.add(key);
4318
- }
4319
- return { updatedKeys, removedKeys };
4320
- }
4321
- __name(reloadEnvironment, "reloadEnvironment");
4322
-
4323
4000
  // packages/cli/src/config/settings.ts
4324
4001
  var debugLogger2 = createDebugLogger("SETTINGS");
4325
- function getMergeStrategyForPath(path4) {
4002
+ function getMergeStrategyForPath(path3) {
4326
4003
  let current = void 0;
4327
4004
  let currentSchema = getSettingsSchema();
4328
- for (const key of path4) {
4005
+ for (const key of path3) {
4329
4006
  if (!currentSchema || !currentSchema[key]) {
4330
4007
  return void 0;
4331
4008
  }
@@ -4340,7 +4017,7 @@ function getUserSettingsPath() {
4340
4017
  }
4341
4018
  __name(getUserSettingsPath, "getUserSettingsPath");
4342
4019
  function getUserSettingsDir() {
4343
- return path3.dirname(getUserSettingsPath());
4020
+ return path2.dirname(getUserSettingsPath());
4344
4021
  }
4345
4022
  __name(getUserSettingsDir, "getUserSettingsDir");
4346
4023
  var SETTINGS_VERSION = 4;
@@ -4602,14 +4279,14 @@ var LoadedSettings = class {
4602
4279
  reloadScopeFromDisk(scope) {
4603
4280
  const file = this.forScope(scope);
4604
4281
  try {
4605
- if (!fs4.existsSync(file.path)) {
4282
+ if (!fs3.existsSync(file.path)) {
4606
4283
  file.settings = {};
4607
4284
  file.originalSettings = {};
4608
4285
  file.rawJson = void 0;
4609
4286
  this._merged = this.computeMergedSettings();
4610
4287
  return;
4611
4288
  }
4612
- const content = fs4.readFileSync(file.path, "utf-8");
4289
+ const content = fs3.readFileSync(file.path, "utf-8");
4613
4290
  const parsed = JSON.parse((0, import_strip_json_comments.default)(content));
4614
4291
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
4615
4292
  const resolved = resolveEnvVarsInObject(
@@ -4666,33 +4343,33 @@ function createMinimalSettings() {
4666
4343
  }
4667
4344
  __name(createMinimalSettings, "createMinimalSettings");
4668
4345
  function detectQwenHomeRedirectWithoutMigration(activeUserSettingsPath) {
4669
- if (!process2.env["QWEN_HOME"]) {
4346
+ if (!process.env["QWEN_HOME"]) {
4670
4347
  return null;
4671
4348
  }
4672
4349
  const activeQwenDir = Storage.getGlobalQwenDir();
4673
- const savedQwenHome = process2.env["QWEN_HOME"];
4674
- delete process2.env["QWEN_HOME"];
4350
+ const savedQwenHome = process.env["QWEN_HOME"];
4351
+ delete process.env["QWEN_HOME"];
4675
4352
  let legacyQwenDir;
4676
4353
  try {
4677
4354
  legacyQwenDir = Storage.getGlobalQwenDir();
4678
4355
  } finally {
4679
- process2.env["QWEN_HOME"] = savedQwenHome;
4356
+ process.env["QWEN_HOME"] = savedQwenHome;
4680
4357
  }
4681
- if (path3.resolve(activeQwenDir) === path3.resolve(legacyQwenDir)) {
4358
+ if (path2.resolve(activeQwenDir) === path2.resolve(legacyQwenDir)) {
4682
4359
  return null;
4683
4360
  }
4684
- if (fs4.existsSync(activeUserSettingsPath)) {
4361
+ if (fs3.existsSync(activeUserSettingsPath)) {
4685
4362
  return null;
4686
4363
  }
4687
- const legacyUserSettings = path3.join(legacyQwenDir, "settings.json");
4688
- if (!fs4.existsSync(legacyUserSettings)) {
4364
+ const legacyUserSettings = path2.join(legacyQwenDir, "settings.json");
4365
+ if (!fs3.existsSync(legacyUserSettings)) {
4689
4366
  return null;
4690
4367
  }
4691
4368
  return `QWEN_HOME points to "${activeQwenDir}" but no settings.json was found there. Existing config remains at "${legacyQwenDir}" \u2014 OAuth tokens, settings, memory, extensions, and skills are not auto-migrated. Copy them manually if you want them to apply at the new location.`;
4692
4369
  }
4693
4370
  __name(detectQwenHomeRedirectWithoutMigration, "detectQwenHomeRedirectWithoutMigration");
4694
4371
  var CORRUPTED_SUFFIX = ".corrupted";
4695
- function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars = true) {
4372
+ function loadSettings(workspaceDir = process.cwd(), consumeCorruptionEnvVars = true) {
4696
4373
  const opts = typeof consumeCorruptionEnvVars === "object" ? consumeCorruptionEnvVars : { consumeCorruptionEnvVars };
4697
4374
  preResolveHomeEnvOverrides();
4698
4375
  const userSettingsPath = getUserSettingsPath();
@@ -4705,21 +4382,21 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4705
4382
  const systemSettingsPath = getSystemSettingsPath();
4706
4383
  const systemDefaultsPath = getSystemDefaultsPath();
4707
4384
  const migratedInMemorScopes = /* @__PURE__ */ new Set();
4708
- const resolvedWorkspaceDir = path3.resolve(workspaceDir);
4709
- const resolvedHomeDir = path3.resolve(homedir2());
4385
+ const resolvedWorkspaceDir = path2.resolve(workspaceDir);
4386
+ const resolvedHomeDir = path2.resolve(homedir());
4710
4387
  let realWorkspaceDir = resolvedWorkspaceDir;
4711
4388
  try {
4712
- realWorkspaceDir = fs4.realpathSync(resolvedWorkspaceDir);
4389
+ realWorkspaceDir = fs3.realpathSync(resolvedWorkspaceDir);
4713
4390
  } catch (_e) {
4714
4391
  }
4715
- const realHomeDir = fs4.realpathSync(resolvedHomeDir);
4392
+ const realHomeDir = fs3.realpathSync(resolvedHomeDir);
4716
4393
  const workspaceSettingsPath = new Storage(
4717
4394
  workspaceDir
4718
4395
  ).getWorkspaceSettingsPath();
4719
4396
  const loadAndMigrate = /* @__PURE__ */ __name((filePath, scope) => {
4720
4397
  try {
4721
- if (fs4.existsSync(filePath)) {
4722
- const content = fs4.readFileSync(filePath, "utf-8");
4398
+ if (fs3.existsSync(filePath)) {
4399
+ const content = fs3.readFileSync(filePath, "utf-8");
4723
4400
  let rawSettings;
4724
4401
  const corruptedPath = `${filePath}${CORRUPTED_SUFFIX}`;
4725
4402
  let corruptedSaved = false;
@@ -4731,7 +4408,7 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4731
4408
  `Settings file ${filePath} has invalid JSON (${getErrorMessage(parseError)}). Resetting to empty settings.`
4732
4409
  );
4733
4410
  try {
4734
- fs4.copyFileSync(filePath, corruptedPath);
4411
+ fs3.copyFileSync(filePath, corruptedPath);
4735
4412
  corruptedSaved = true;
4736
4413
  } catch (copyError) {
4737
4414
  debugLogger2.warn(
@@ -4743,7 +4420,7 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4743
4420
  debugLogger2.warn(warningMsg);
4744
4421
  if (corruptedSaved) {
4745
4422
  try {
4746
- fs4.writeFileSync(filePath, "{}", "utf-8");
4423
+ fs3.writeFileSync(filePath, "{}", "utf-8");
4747
4424
  } catch {
4748
4425
  }
4749
4426
  }
@@ -4755,12 +4432,12 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4755
4432
  };
4756
4433
  }
4757
4434
  }
4758
- const envCorruptedPath = process2.env[ENV_CORRUPTED_PATH];
4435
+ const envCorruptedPath = process.env[ENV_CORRUPTED_PATH];
4759
4436
  if ((opts.consumeCorruptionEnvVars ?? true) && envCorruptedPath && envCorruptedPath === corruptedPath && scope === "User" /* User */) {
4760
4437
  corruptedSaved = true;
4761
- recoveredFromEnvVar = process2.env[ENV_WAS_RECOVERED] === "1";
4762
- delete process2.env[ENV_CORRUPTED_PATH];
4763
- delete process2.env[ENV_WAS_RECOVERED];
4438
+ recoveredFromEnvVar = process.env[ENV_WAS_RECOVERED] === "1";
4439
+ delete process.env[ENV_CORRUPTED_PATH];
4440
+ delete process.env[ENV_WAS_RECOVERED];
4764
4441
  }
4765
4442
  if (typeof rawSettings !== "object" || rawSettings === null || Array.isArray(rawSettings)) {
4766
4443
  settingsErrors.push({
@@ -4955,9 +4632,9 @@ function createSettingsUpdate(key, value) {
4955
4632
  __name(createSettingsUpdate, "createSettingsUpdate");
4956
4633
  function saveSettings(settingsFile, updates = settingsFile.originalSettings, replacePath = [], opts = {}) {
4957
4634
  try {
4958
- const dirPath = path3.dirname(settingsFile.path);
4959
- if (!fs4.existsSync(dirPath)) {
4960
- fs4.mkdirSync(dirPath, { recursive: true });
4635
+ const dirPath = path2.dirname(settingsFile.path);
4636
+ if (!fs3.existsSync(dirPath)) {
4637
+ fs3.mkdirSync(dirPath, { recursive: true });
4961
4638
  }
4962
4639
  const written = updateSettingsFilePreservingFormat(
4963
4640
  settingsFile.path,
@@ -5010,15 +4687,6 @@ export {
5010
4687
  backupSettingsFile,
5011
4688
  restoreSettingsFromBackup,
5012
4689
  cleanupSettingsBackup,
5013
- SETTINGS_DIRECTORY_NAME,
5014
- preResolveHomeEnvOverrides,
5015
- resetHomeEnvBootstrapForTesting,
5016
- resetEnvironmentTrackingForTesting,
5017
- getHomeEnvFallbackVars,
5018
- findEnvFiles,
5019
- setUpCloudShellEnvironment,
5020
- loadEnvironment,
5021
- reloadEnvironment,
5022
4690
  getUserSettingsPath,
5023
4691
  getUserSettingsDir,
5024
4692
  SETTINGS_VERSION,