@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260710.205430235

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 (292) 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 +43 -36
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
  7. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  8. package/bundled/qc-helper/docs/features/code-review.md +2 -1
  9. package/bundled/qc-helper/docs/features/commands.md +39 -38
  10. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  12. package/bundled/qc-helper/docs/features/memory.md +1 -1
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  14. package/bundled/qc-helper/docs/qwen-serve.md +22 -12
  15. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  16. package/bundled/review/DESIGN.md +14 -13
  17. package/bundled/review/SKILL.md +38 -61
  18. package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
  19. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
  20. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
  21. package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
  22. package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
  23. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
  24. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
  25. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
  26. package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
  27. package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
  28. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
  29. package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
  30. package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
  31. package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
  32. package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
  33. package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
  34. package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
  35. package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
  36. package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
  37. package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
  38. package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
  39. package/chunks/chunk-5HOF2K5U.js +19 -0
  40. package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
  41. package/chunks/chunk-6O6Z2I5Q.js +292 -0
  42. package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
  43. package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
  44. package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
  45. package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
  46. package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
  47. package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
  48. package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
  49. package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
  50. package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
  51. package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
  52. package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
  53. package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
  54. package/chunks/chunk-GLE2YUPU.js +34 -0
  55. package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
  56. package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
  57. package/chunks/chunk-GVVY7GSP.js +38 -0
  58. package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
  59. package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
  60. package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
  61. package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
  62. package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
  63. package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
  64. package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
  65. package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
  66. package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
  67. package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
  68. package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
  69. package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
  70. package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
  71. package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
  72. package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
  73. package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
  74. package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
  75. package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
  76. package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
  77. package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
  78. package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
  79. package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
  80. package/chunks/chunk-PCWSPWXZ.js +168 -0
  81. package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
  82. package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
  83. package/chunks/chunk-R3SLDK6Y.js +468 -0
  84. package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
  85. package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
  86. package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
  87. package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
  88. package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
  89. package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
  90. package/chunks/chunk-TVO5C767.js +159 -0
  91. package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
  92. package/chunks/chunk-TX5QZYK6.js +296 -0
  93. package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
  94. package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
  95. package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
  96. package/chunks/chunk-V35MD7KN.js +13 -0
  97. package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
  98. package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
  99. package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
  100. package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
  101. package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
  102. package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
  103. package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
  104. package/chunks/chunk-Z3I3QJK3.js +47 -0
  105. package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
  106. package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
  107. package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
  108. package/chunks/chunk-ZL5HN75Q.js +61 -0
  109. package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
  110. package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
  111. package/chunks/create-sub-session-7JK3EYWA.js +212 -0
  112. package/chunks/create-sub-session-EVYZYAE3.js +364 -0
  113. package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
  114. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
  115. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
  116. package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
  117. package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
  118. package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
  119. package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
  120. package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
  121. package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
  122. package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
  123. package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
  124. package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
  125. package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
  126. package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
  127. package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
  128. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
  129. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
  130. package/chunks/environment-2CJAFOFN.js +88 -0
  131. package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
  132. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
  133. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
  134. package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
  135. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
  136. package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
  137. package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
  138. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
  139. package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
  140. package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
  141. package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
  142. package/chunks/i18n-5QEODTJV.js +84 -0
  143. package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
  144. package/chunks/installationInfo-OZ62OHZ2.js +65 -0
  145. package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
  146. package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
  147. package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
  148. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
  149. package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
  150. package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
  151. package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
  152. package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
  153. package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
  154. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
  155. package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
  156. package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
  157. package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
  158. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
  159. package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
  160. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
  161. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
  162. package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
  163. package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
  164. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
  165. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
  166. package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
  167. package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
  168. package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
  169. package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
  170. package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
  171. package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
  172. package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
  173. package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
  174. package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
  175. package/chunks/standalone-update-LICI2VSK.js +79 -0
  176. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
  177. package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
  178. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
  179. package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
  180. package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
  181. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
  182. package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
  183. package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
  184. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
  185. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
  186. package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
  187. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
  188. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
  189. package/chunks/total-session-admission-PRZK35X4.js +72 -0
  190. package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
  191. package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
  192. package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
  193. package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
  194. package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
  195. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
  196. package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
  197. package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
  198. package/chunks/workspace-registry-BBIPESIZ.js +76 -0
  199. package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
  200. package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
  201. package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
  202. package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
  203. package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
  204. package/cli.js +13 -12
  205. package/locales/ca.js +115 -7
  206. package/locales/de.js +114 -7
  207. package/locales/en.js +118 -7
  208. package/locales/fr.js +115 -7
  209. package/locales/ja.js +116 -6
  210. package/locales/pt.js +114 -7
  211. package/locales/ru.js +114 -7
  212. package/locales/zh-TW.js +114 -6
  213. package/locales/zh.js +114 -6
  214. package/package.json +3 -6
  215. package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
  219. package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
  232. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
  233. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
  234. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
  235. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
  236. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
  237. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
  238. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
  239. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
  240. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
  241. package/web-shell/assets/index-XLkWfLja.css +5 -0
  242. package/web-shell/assets/index-srlTR1Jg.js +786 -0
  243. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
  244. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
  245. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
  246. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
  247. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
  248. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
  249. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
  250. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
  251. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
  252. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
  253. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
  254. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
  255. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
  256. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
  257. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
  258. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
  259. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
  260. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
  261. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
  262. package/web-shell/index.html +16 -4
  263. package/chunks/chunk-6SHO7WFF.js +0 -79
  264. package/chunks/chunk-IFEWJXFS.js +0 -37
  265. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  266. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  267. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  268. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  269. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  270. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  271. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  272. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  273. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  274. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  275. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  276. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  277. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  278. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  279. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  280. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  281. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  282. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  283. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  284. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  285. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  286. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  287. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  288. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  289. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  290. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  291. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
  292. /package/chunks/{chunk-Y6Z2O3WR.js → chunk-JM7BYJO5.js} +0 -0
@@ -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-TLRYABYP.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-UOXLB2LY.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-R3SLDK6Y.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,11 +25,15 @@ import {
25
25
  getSystemDefaultsPath,
26
26
  getSystemSettingsPath,
27
27
  resolveEnvVarsInObject
28
- } from "./chunk-4RQIB5UZ.js";
28
+ } from "./chunk-O2YT7VB4.js";
29
+ import {
30
+ ENV_CORRUPTED_PATH,
31
+ ENV_WAS_RECOVERED
32
+ } from "./chunk-Z3I3QJK3.js";
29
33
  import {
30
34
  isWorkspaceTrusted,
31
35
  updateSettingsFilePreservingFormat
32
- } from "./chunk-MIG5SQNL.js";
36
+ } from "./chunk-4CSVIZLT.js";
33
37
  import {
34
38
  require_strip_json_comments
35
39
  } from "./chunk-QYUE6W3T.js";
@@ -42,20 +46,16 @@ 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-ZDAZSR2O.js";
49
50
  import {
50
51
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
51
52
  } from "./chunk-TLWA7TPR.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-5ZVIYNLN.js";
56
57
  import {
57
58
  FatalConfigError,
58
- QWEN_DIR,
59
59
  Storage,
60
60
  createDebugLogger,
61
61
  getErrorMessage
@@ -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",
@@ -1588,6 +1606,16 @@ var SETTINGS_SCHEMA = {
1588
1606
  description: "Ask for confirmation before auto-generated skills are added to the skill library. When off, auto-skills are saved immediately.",
1589
1607
  showInDialog: false
1590
1608
  },
1609
+ agentTimeoutMinutes: {
1610
+ type: "number",
1611
+ label: "Memory Agent Timeout (minutes)",
1612
+ category: "Memory",
1613
+ requiresRestart: true,
1614
+ default: void 0,
1615
+ minimum: 0,
1616
+ 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.",
1617
+ showInDialog: false
1618
+ },
1591
1619
  enableTeamMemory: {
1592
1620
  type: "boolean",
1593
1621
  label: "Enable Team Memory",
@@ -2716,7 +2744,7 @@ var SETTINGS_SCHEMA = {
2716
2744
  category: "Experimental",
2717
2745
  requiresRestart: false,
2718
2746
  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.",
2747
+ 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
2748
  showInDialog: true
2721
2749
  }
2722
2750
  }
@@ -3047,8 +3075,8 @@ function getDefaultValue(key) {
3047
3075
  return getFlattenedSchema()[key]?.default;
3048
3076
  }
3049
3077
  __name(getDefaultValue, "getDefaultValue");
3050
- function getNestedValue(obj, path4) {
3051
- const [first, ...rest] = path4;
3078
+ function getNestedValue(obj, path3) {
3079
+ const [first, ...rest] = path3;
3052
3080
  if (!first || !(first in obj)) {
3053
3081
  return void 0;
3054
3082
  }
@@ -3062,8 +3090,8 @@ function getNestedValue(obj, path4) {
3062
3090
  return void 0;
3063
3091
  }
3064
3092
  __name(getNestedValue, "getNestedValue");
3065
- function getNestedProperty(obj, path4) {
3066
- return getNestedValue(obj, path4.split("."));
3093
+ function getNestedProperty(obj, path3) {
3094
+ return getNestedValue(obj, path3.split("."));
3067
3095
  }
3068
3096
  __name(getNestedProperty, "getNestedProperty");
3069
3097
  function getEffectiveValue(key, settings, mergedSettings) {
@@ -3071,12 +3099,12 @@ function getEffectiveValue(key, settings, mergedSettings) {
3071
3099
  if (!definition) {
3072
3100
  return void 0;
3073
3101
  }
3074
- const path4 = key.split(".");
3075
- let value = getNestedValue(settings, path4);
3102
+ const path3 = key.split(".");
3103
+ let value = getNestedValue(settings, path3);
3076
3104
  if (value !== void 0) {
3077
3105
  return value;
3078
3106
  }
3079
- value = getNestedValue(mergedSettings, path4);
3107
+ value = getNestedValue(mergedSettings, path3);
3080
3108
  if (value !== void 0) {
3081
3109
  return value;
3082
3110
  }
@@ -3130,6 +3158,15 @@ function validateSettingValue(def, value) {
3130
3158
  if (def.maximum !== void 0 && value > def.maximum)
3131
3159
  return `Value must be <= ${def.maximum}`;
3132
3160
  break;
3161
+ case "integer":
3162
+ if (typeof value !== "number" || !Number.isFinite(value))
3163
+ return "Value must be a finite integer";
3164
+ if (!Number.isInteger(value)) return "Value must be an integer";
3165
+ if (def.minimum !== void 0 && value < def.minimum)
3166
+ return `Value must be >= ${def.minimum}`;
3167
+ if (def.maximum !== void 0 && value > def.maximum)
3168
+ return `Value must be <= ${def.maximum}`;
3169
+ break;
3133
3170
  case "string":
3134
3171
  if (typeof value !== "string") return "Value must be a string";
3135
3172
  if (value.length > MAX_SETTING_STRING_VALUE_LENGTH)
@@ -3162,8 +3199,8 @@ function getDialogSettingKeys() {
3162
3199
  }
3163
3200
  __name(getDialogSettingKeys, "getDialogSettingKeys");
3164
3201
  function settingExistsInScope(key, scopeSettings) {
3165
- const path4 = key.split(".");
3166
- const value = getNestedValue(scopeSettings, path4);
3202
+ const path3 = key.split(".");
3203
+ const value = getNestedValue(scopeSettings, path3);
3167
3204
  return value !== void 0;
3168
3205
  }
3169
3206
  __name(settingExistsInScope, "settingExistsInScope");
@@ -3176,8 +3213,8 @@ function pathHasUnsafeSegment(keys) {
3176
3213
  return false;
3177
3214
  }
3178
3215
  __name(pathHasUnsafeSegment, "pathHasUnsafeSegment");
3179
- function setNestedPropertyForce(obj, path4, value) {
3180
- const keys = path4.split(".");
3216
+ function setNestedPropertyForce(obj, path3, value) {
3217
+ const keys = path3.split(".");
3181
3218
  if (pathHasUnsafeSegment(keys)) return;
3182
3219
  const lastKey = keys.pop();
3183
3220
  if (!lastKey) return;
@@ -3191,8 +3228,8 @@ function setNestedPropertyForce(obj, path4, value) {
3191
3228
  current[lastKey] = value;
3192
3229
  }
3193
3230
  __name(setNestedPropertyForce, "setNestedPropertyForce");
3194
- function setNestedPropertySafe(obj, path4, value) {
3195
- const keys = path4.split(".");
3231
+ function setNestedPropertySafe(obj, path3, value) {
3232
+ const keys = path3.split(".");
3196
3233
  if (pathHasUnsafeSegment(keys)) return;
3197
3234
  const lastKey = keys.pop();
3198
3235
  if (!lastKey) return;
@@ -3211,8 +3248,8 @@ function setNestedPropertySafe(obj, path4, value) {
3211
3248
  current[lastKey] = value;
3212
3249
  }
3213
3250
  __name(setNestedPropertySafe, "setNestedPropertySafe");
3214
- function deleteNestedPropertySafe(obj, path4) {
3215
- const keys = path4.split(".");
3251
+ function deleteNestedPropertySafe(obj, path3) {
3252
+ const keys = path3.split(".");
3216
3253
  const lastKey = keys.pop();
3217
3254
  if (!lastKey) return;
3218
3255
  let current = obj;
@@ -3244,10 +3281,10 @@ function getRestartRequiredFromModified(modifiedSettings) {
3244
3281
  __name(getRestartRequiredFromModified, "getRestartRequiredFromModified");
3245
3282
  function saveModifiedSettings(modifiedSettings, pendingSettings, loadedSettings, scope) {
3246
3283
  modifiedSettings.forEach((settingKey) => {
3247
- const path4 = settingKey.split(".");
3284
+ const path3 = settingKey.split(".");
3248
3285
  const value = getNestedValue(
3249
3286
  pendingSettings,
3250
- path4
3287
+ path3
3251
3288
  );
3252
3289
  const existsInOriginalFile = settingExistsInScope(
3253
3290
  settingKey,
@@ -3349,12 +3386,12 @@ function isPlainObject(item) {
3349
3386
  return !!item && typeof item === "object" && !Array.isArray(item);
3350
3387
  }
3351
3388
  __name(isPlainObject, "isPlainObject");
3352
- function mergeRecursively(target, source, getMergeStrategyForPath2, path4 = []) {
3389
+ function mergeRecursively(target, source, getMergeStrategyForPath2, path3 = []) {
3353
3390
  for (const key of Object.keys(source)) {
3354
3391
  if (key === "__proto__" || key === "constructor" || key === "prototype") {
3355
3392
  continue;
3356
3393
  }
3357
- const newPath = [...path4, key];
3394
+ const newPath = [...path3, key];
3358
3395
  const srcValue = source[key];
3359
3396
  const objValue = target[key];
3360
3397
  const mergeStrategy = getMergeStrategyForPath2(newPath);
@@ -3950,382 +3987,12 @@ function needsMigration(settings) {
3950
3987
  }
3951
3988
  __name(needsMigration, "needsMigration");
3952
3989
 
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
3990
  // packages/cli/src/config/settings.ts
4324
3991
  var debugLogger2 = createDebugLogger("SETTINGS");
4325
- function getMergeStrategyForPath(path4) {
3992
+ function getMergeStrategyForPath(path3) {
4326
3993
  let current = void 0;
4327
3994
  let currentSchema = getSettingsSchema();
4328
- for (const key of path4) {
3995
+ for (const key of path3) {
4329
3996
  if (!currentSchema || !currentSchema[key]) {
4330
3997
  return void 0;
4331
3998
  }
@@ -4340,7 +4007,7 @@ function getUserSettingsPath() {
4340
4007
  }
4341
4008
  __name(getUserSettingsPath, "getUserSettingsPath");
4342
4009
  function getUserSettingsDir() {
4343
- return path3.dirname(getUserSettingsPath());
4010
+ return path2.dirname(getUserSettingsPath());
4344
4011
  }
4345
4012
  __name(getUserSettingsDir, "getUserSettingsDir");
4346
4013
  var SETTINGS_VERSION = 4;
@@ -4602,14 +4269,14 @@ var LoadedSettings = class {
4602
4269
  reloadScopeFromDisk(scope) {
4603
4270
  const file = this.forScope(scope);
4604
4271
  try {
4605
- if (!fs4.existsSync(file.path)) {
4272
+ if (!fs3.existsSync(file.path)) {
4606
4273
  file.settings = {};
4607
4274
  file.originalSettings = {};
4608
4275
  file.rawJson = void 0;
4609
4276
  this._merged = this.computeMergedSettings();
4610
4277
  return;
4611
4278
  }
4612
- const content = fs4.readFileSync(file.path, "utf-8");
4279
+ const content = fs3.readFileSync(file.path, "utf-8");
4613
4280
  const parsed = JSON.parse((0, import_strip_json_comments.default)(content));
4614
4281
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
4615
4282
  const resolved = resolveEnvVarsInObject(
@@ -4666,33 +4333,33 @@ function createMinimalSettings() {
4666
4333
  }
4667
4334
  __name(createMinimalSettings, "createMinimalSettings");
4668
4335
  function detectQwenHomeRedirectWithoutMigration(activeUserSettingsPath) {
4669
- if (!process2.env["QWEN_HOME"]) {
4336
+ if (!process.env["QWEN_HOME"]) {
4670
4337
  return null;
4671
4338
  }
4672
4339
  const activeQwenDir = Storage.getGlobalQwenDir();
4673
- const savedQwenHome = process2.env["QWEN_HOME"];
4674
- delete process2.env["QWEN_HOME"];
4340
+ const savedQwenHome = process.env["QWEN_HOME"];
4341
+ delete process.env["QWEN_HOME"];
4675
4342
  let legacyQwenDir;
4676
4343
  try {
4677
4344
  legacyQwenDir = Storage.getGlobalQwenDir();
4678
4345
  } finally {
4679
- process2.env["QWEN_HOME"] = savedQwenHome;
4346
+ process.env["QWEN_HOME"] = savedQwenHome;
4680
4347
  }
4681
- if (path3.resolve(activeQwenDir) === path3.resolve(legacyQwenDir)) {
4348
+ if (path2.resolve(activeQwenDir) === path2.resolve(legacyQwenDir)) {
4682
4349
  return null;
4683
4350
  }
4684
- if (fs4.existsSync(activeUserSettingsPath)) {
4351
+ if (fs3.existsSync(activeUserSettingsPath)) {
4685
4352
  return null;
4686
4353
  }
4687
- const legacyUserSettings = path3.join(legacyQwenDir, "settings.json");
4688
- if (!fs4.existsSync(legacyUserSettings)) {
4354
+ const legacyUserSettings = path2.join(legacyQwenDir, "settings.json");
4355
+ if (!fs3.existsSync(legacyUserSettings)) {
4689
4356
  return null;
4690
4357
  }
4691
4358
  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
4359
  }
4693
4360
  __name(detectQwenHomeRedirectWithoutMigration, "detectQwenHomeRedirectWithoutMigration");
4694
4361
  var CORRUPTED_SUFFIX = ".corrupted";
4695
- function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars = true) {
4362
+ function loadSettings(workspaceDir = process.cwd(), consumeCorruptionEnvVars = true) {
4696
4363
  const opts = typeof consumeCorruptionEnvVars === "object" ? consumeCorruptionEnvVars : { consumeCorruptionEnvVars };
4697
4364
  preResolveHomeEnvOverrides();
4698
4365
  const userSettingsPath = getUserSettingsPath();
@@ -4705,21 +4372,21 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4705
4372
  const systemSettingsPath = getSystemSettingsPath();
4706
4373
  const systemDefaultsPath = getSystemDefaultsPath();
4707
4374
  const migratedInMemorScopes = /* @__PURE__ */ new Set();
4708
- const resolvedWorkspaceDir = path3.resolve(workspaceDir);
4709
- const resolvedHomeDir = path3.resolve(homedir2());
4375
+ const resolvedWorkspaceDir = path2.resolve(workspaceDir);
4376
+ const resolvedHomeDir = path2.resolve(homedir());
4710
4377
  let realWorkspaceDir = resolvedWorkspaceDir;
4711
4378
  try {
4712
- realWorkspaceDir = fs4.realpathSync(resolvedWorkspaceDir);
4379
+ realWorkspaceDir = fs3.realpathSync(resolvedWorkspaceDir);
4713
4380
  } catch (_e) {
4714
4381
  }
4715
- const realHomeDir = fs4.realpathSync(resolvedHomeDir);
4382
+ const realHomeDir = fs3.realpathSync(resolvedHomeDir);
4716
4383
  const workspaceSettingsPath = new Storage(
4717
4384
  workspaceDir
4718
4385
  ).getWorkspaceSettingsPath();
4719
4386
  const loadAndMigrate = /* @__PURE__ */ __name((filePath, scope) => {
4720
4387
  try {
4721
- if (fs4.existsSync(filePath)) {
4722
- const content = fs4.readFileSync(filePath, "utf-8");
4388
+ if (fs3.existsSync(filePath)) {
4389
+ const content = fs3.readFileSync(filePath, "utf-8");
4723
4390
  let rawSettings;
4724
4391
  const corruptedPath = `${filePath}${CORRUPTED_SUFFIX}`;
4725
4392
  let corruptedSaved = false;
@@ -4731,7 +4398,7 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4731
4398
  `Settings file ${filePath} has invalid JSON (${getErrorMessage(parseError)}). Resetting to empty settings.`
4732
4399
  );
4733
4400
  try {
4734
- fs4.copyFileSync(filePath, corruptedPath);
4401
+ fs3.copyFileSync(filePath, corruptedPath);
4735
4402
  corruptedSaved = true;
4736
4403
  } catch (copyError) {
4737
4404
  debugLogger2.warn(
@@ -4743,7 +4410,7 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4743
4410
  debugLogger2.warn(warningMsg);
4744
4411
  if (corruptedSaved) {
4745
4412
  try {
4746
- fs4.writeFileSync(filePath, "{}", "utf-8");
4413
+ fs3.writeFileSync(filePath, "{}", "utf-8");
4747
4414
  } catch {
4748
4415
  }
4749
4416
  }
@@ -4755,12 +4422,12 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
4755
4422
  };
4756
4423
  }
4757
4424
  }
4758
- const envCorruptedPath = process2.env[ENV_CORRUPTED_PATH];
4425
+ const envCorruptedPath = process.env[ENV_CORRUPTED_PATH];
4759
4426
  if ((opts.consumeCorruptionEnvVars ?? true) && envCorruptedPath && envCorruptedPath === corruptedPath && scope === "User" /* User */) {
4760
4427
  corruptedSaved = true;
4761
- recoveredFromEnvVar = process2.env[ENV_WAS_RECOVERED] === "1";
4762
- delete process2.env[ENV_CORRUPTED_PATH];
4763
- delete process2.env[ENV_WAS_RECOVERED];
4428
+ recoveredFromEnvVar = process.env[ENV_WAS_RECOVERED] === "1";
4429
+ delete process.env[ENV_CORRUPTED_PATH];
4430
+ delete process.env[ENV_WAS_RECOVERED];
4764
4431
  }
4765
4432
  if (typeof rawSettings !== "object" || rawSettings === null || Array.isArray(rawSettings)) {
4766
4433
  settingsErrors.push({
@@ -4955,9 +4622,9 @@ function createSettingsUpdate(key, value) {
4955
4622
  __name(createSettingsUpdate, "createSettingsUpdate");
4956
4623
  function saveSettings(settingsFile, updates = settingsFile.originalSettings, replacePath = [], opts = {}) {
4957
4624
  try {
4958
- const dirPath = path3.dirname(settingsFile.path);
4959
- if (!fs4.existsSync(dirPath)) {
4960
- fs4.mkdirSync(dirPath, { recursive: true });
4625
+ const dirPath = path2.dirname(settingsFile.path);
4626
+ if (!fs3.existsSync(dirPath)) {
4627
+ fs3.mkdirSync(dirPath, { recursive: true });
4961
4628
  }
4962
4629
  const written = updateSettingsFilePreservingFormat(
4963
4630
  settingsFile.path,
@@ -5010,15 +4677,6 @@ export {
5010
4677
  backupSettingsFile,
5011
4678
  restoreSettingsFromBackup,
5012
4679
  cleanupSettingsBackup,
5013
- SETTINGS_DIRECTORY_NAME,
5014
- preResolveHomeEnvOverrides,
5015
- resetHomeEnvBootstrapForTesting,
5016
- resetEnvironmentTrackingForTesting,
5017
- getHomeEnvFallbackVars,
5018
- findEnvFiles,
5019
- setUpCloudShellEnvironment,
5020
- loadEnvironment,
5021
- reloadEnvironment,
5022
4680
  getUserSettingsPath,
5023
4681
  getUserSettingsDir,
5024
4682
  SETTINGS_VERSION,