@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
@@ -2,11 +2,9 @@
2
2
  "use strict";
3
3
  import {
4
4
  startEarlyStartupPrefetches
5
- } from "./chunk-SD4N3QJ2.js";
6
- import {
7
- RELAUNCH_EXIT_CODE
8
- } from "./chunk-LEIJKM7Q.js";
5
+ } from "./chunk-3QZ6GY6A.js";
9
6
  import {
7
+ ExtensionRefreshState,
10
8
  appEvents,
11
9
  buildDisabledSkillNamesProvider,
12
10
  isDebugMode,
@@ -15,61 +13,71 @@ import {
15
13
  loadSandboxConfig,
16
14
  parseArguments,
17
15
  validateAuthMethod
18
- } from "./chunk-I4A4K72C.js";
19
- import "./chunk-NZEGNV4V.js";
20
- import "./chunk-3GONHQOA.js";
21
- import "./chunk-FRFFNYUY.js";
22
- import "./chunk-TBAZMRW3.js";
23
- import "./chunk-GL5TV7B5.js";
24
- import "./chunk-LGFAYIKX.js";
25
- import "./chunk-54YZOP7P.js";
26
- import "./chunk-4ZJIPVPB.js";
27
- import "./chunk-E7KNELIZ.js";
28
- import "./chunk-AHNXYU4O.js";
29
- import "./chunk-RNBYOUGV.js";
30
- import "./chunk-ME3YSROJ.js";
16
+ } from "./chunk-VL7GBUQA.js";
17
+ import {
18
+ RELAUNCH_EXIT_CODE
19
+ } from "./chunk-3ZAIGBCP.js";
20
+ import "./chunk-2ZQOQZIS.js";
21
+ import "./chunk-65F3I3PM.js";
22
+ import "./chunk-GL22M2DU.js";
23
+ import "./chunk-QHTIBUWB.js";
24
+ import "./chunk-L573Z2QZ.js";
25
+ import "./chunk-LK7KUE55.js";
26
+ import "./chunk-RXFQM6FQ.js";
27
+ import "./chunk-FBSBT7JS.js";
31
28
  import {
32
29
  getHeadlessYoloSafetyWarning
33
- } from "./chunk-BJBWRCSK.js";
30
+ } from "./chunk-6H67XLET.js";
31
+ import "./chunk-F4PFZ7WP.js";
32
+ import "./chunk-WPHYXKFL.js";
33
+ import "./chunk-57OAHC2Y.js";
34
+ import "./chunk-43XJTCHT.js";
35
+ import "./chunk-W7FJ3N32.js";
36
+ import "./chunk-6RLROE6G.js";
37
+ import "./chunk-COH43MRJ.js";
38
+ import "./chunk-DMN532MJ.js";
39
+ import "./chunk-DC5Z3DU6.js";
40
+ import "./chunk-V6WHFGST.js";
41
+ import "./chunk-6WH2WCSW.js";
34
42
  import {
35
43
  assembleMcpServers,
36
44
  getPendingGatedMcpServers,
37
45
  getPromptableMcpServers
38
- } from "./chunk-QZF5U5KA.js";
39
- import "./chunk-2NPS2UDH.js";
40
- import "./chunk-S6RLAIUR.js";
41
- import "./chunk-MX2YXRER.js";
42
- import "./chunk-MZ7BABX3.js";
46
+ } from "./chunk-QNTUV3PP.js";
43
47
  import {
44
- SETTINGS_DIRECTORY_NAME,
45
48
  createMinimalSettings,
46
49
  getFlattenedSchema,
47
50
  getSettingsWarnings,
48
51
  getUserSettingsDir,
49
52
  initializeLlmOutputLanguage,
50
- loadSettings,
51
- preResolveHomeEnvOverrides
52
- } from "./chunk-STAZRKOT.js";
53
+ loadSettings
54
+ } from "./chunk-L6GPKRH7.js";
55
+ import "./chunk-RKUWKYED.js";
53
56
  import {
54
57
  initializeI18n,
55
58
  resolveLanguageSetting
56
- } from "./chunk-QAKFYMJI.js";
57
- import "./chunk-TLRYABYP.js";
59
+ } from "./chunk-LD5OWZ5E.js";
60
+ import {
61
+ SETTINGS_DIRECTORY_NAME,
62
+ preResolveHomeEnvOverrides
63
+ } from "./chunk-P3X7RYUQ.js";
64
+ import "./chunk-3BTRNWWD.js";
58
65
  import {
59
66
  ENV_CORRUPTED_PATH,
60
67
  ENV_WAS_RECOVERED
61
- } from "./chunk-4RQIB5UZ.js";
62
- import "./chunk-ER3BKOLB.js";
63
- import "./chunk-G7ZG7CA6.js";
64
- import "./chunk-VRDMOSQS.js";
65
- import "./chunk-3RW4AZJV.js";
66
- import "./chunk-GD236YPV.js";
67
- import "./chunk-43W4YSO6.js";
68
- import "./chunk-MIG5SQNL.js";
68
+ } from "./chunk-QRUIS3DN.js";
69
+ import "./chunk-X4NKFGFJ.js";
70
+ import "./chunk-TJTKSVIV.js";
71
+ import "./chunk-43JB7OF4.js";
72
+ import "./chunk-UDXSXLER.js";
73
+ import "./chunk-CBKR4Q5K.js";
74
+ import "./chunk-RDJSGHZE.js";
75
+ import "./chunk-XFSFZCM5.js";
76
+ import "./chunk-CNOF2IZT.js";
77
+ import "./chunk-VJNBRRZG.js";
69
78
  import {
70
79
  writeStderrLine
71
- } from "./chunk-Y6Z2O3WR.js";
72
- import "./chunk-QYUE6W3T.js";
80
+ } from "./chunk-YUZI3WAC.js";
73
81
  import {
74
82
  GitWorktreeService,
75
83
  QWEN_CODE_SIMPLE_ENV_VAR,
@@ -87,84 +95,85 @@ import {
87
95
  worktreeBranchForSlug,
88
96
  writeWorktreeSession,
89
97
  writeWorktreeSessionMarker
90
- } from "./chunk-YEGT55NW.js";
91
- import "./chunk-5P5XGNYH.js";
92
- import "./chunk-SKAZWEV5.js";
93
- import "./chunk-K5PGHDBN.js";
94
- import "./chunk-3B26UVCX.js";
95
- import "./chunk-W7EEOR7D.js";
96
- import "./chunk-42XGFRJS.js";
97
- import "./chunk-X2XNQQJI.js";
98
- import "./chunk-VZ7HY3YU.js";
99
- import "./chunk-2MPVVENX.js";
100
- import "./chunk-ZTQ26VBE.js";
101
- import "./chunk-FV7425LN.js";
102
- import "./chunk-MLZQVCF3.js";
103
- import "./chunk-LQ7TMOCE.js";
104
- import "./chunk-E5A7LHNN.js";
105
- import "./chunk-VEB3NYSO.js";
106
- import "./chunk-GO6LNQXT.js";
107
- import "./chunk-NQKLOAVJ.js";
108
- import "./chunk-WMPVYQ4P.js";
109
- import "./chunk-TLWA7TPR.js";
110
- import "./chunk-QYNNN7BK.js";
98
+ } from "./chunk-UUVCHN62.js";
99
+ import "./chunk-CU3L64TP.js";
100
+ import "./chunk-ZJE7NSL3.js";
101
+ import "./chunk-H6XPXXMH.js";
102
+ import "./chunk-MC23XKFE.js";
103
+ import "./chunk-LUODI7WD.js";
104
+ import "./chunk-ORBGV7NJ.js";
105
+ import "./chunk-KKNMOEZH.js";
106
+ import "./chunk-W2UIXQDL.js";
107
+ import "./chunk-XU457J4V.js";
108
+ import "./chunk-VDDGDZMA.js";
109
+ import "./chunk-CEA3E3JB.js";
110
+ import "./chunk-SZRN75WQ.js";
111
+ import "./chunk-HTO4JFDZ.js";
112
+ import "./chunk-CPBF7KYF.js";
113
+ import "./chunk-4GORAUCN.js";
114
+ import "./chunk-6AM5D4ME.js";
115
+ import "./chunk-7R3CZA3Q.js";
116
+ import "./chunk-GWHYEOV2.js";
117
+ import "./chunk-4QLQE5WJ.js";
118
+ import "./chunk-5XUCZNSY.js";
111
119
  import {
112
120
  getMCPServerStatus,
113
121
  logUserPrompt,
114
122
  uiTelemetryService
115
- } from "./chunk-GMOWQOQQ.js";
116
- import "./chunk-E6US47KI.js";
117
- import "./chunk-UWCTAVOD.js";
118
- import "./chunk-OFEVLU4C.js";
119
- import "./chunk-OMX7CUOE.js";
120
- import "./chunk-4KJ2BPIT.js";
121
- import "./chunk-SUAKHHK7.js";
122
- import "./chunk-FEJ2FZ3U.js";
123
+ } from "./chunk-MUCWGT7O.js";
124
+ import "./chunk-4WKAA4KS.js";
125
+ import "./chunk-CR3C7WXL.js";
126
+ import "./chunk-CARU2RR2.js";
127
+ import "./chunk-VGC4I5JJ.js";
128
+ import "./chunk-YLV3XXFB.js";
129
+ import "./chunk-TDEXZKMT.js";
130
+ import "./chunk-J3JA76CF.js";
123
131
  import {
124
132
  require_fast_deep_equal
125
- } from "./chunk-X3YGAX7V.js";
126
- import "./chunk-IJRL2S3D.js";
127
- import "./chunk-AHNJGLFV.js";
128
- import "./chunk-22IFUCVR.js";
129
- import "./chunk-7LTB54MK.js";
130
- import "./chunk-SIUQ3YYX.js";
131
- import "./chunk-HW4N45EE.js";
132
- import "./chunk-CCGOFQV3.js";
133
- import "./chunk-IRJWHZWU.js";
134
- import "./chunk-SYCJMSIJ.js";
135
- import "./chunk-55ZMG67I.js";
136
- import "./chunk-H6BD2ELD.js";
137
- import "./chunk-5IFG2VC4.js";
138
- import "./chunk-64WXLC72.js";
139
- import "./chunk-H6EMK6QK.js";
133
+ } from "./chunk-B5ORX3FG.js";
134
+ import "./chunk-BZIFY5TF.js";
135
+ import "./chunk-UOZWKTQG.js";
136
+ import "./chunk-JESCGQM3.js";
137
+ import "./chunk-ZLXQN2QS.js";
138
+ import "./chunk-XVNQMZ2I.js";
139
+ import "./chunk-524RQP4Q.js";
140
+ import "./chunk-JSG7ZSBC.js";
141
+ import "./chunk-A4UCTEB5.js";
142
+ import "./chunk-XWRJCPHC.js";
143
+ import "./chunk-4LD5APFL.js";
144
+ import "./chunk-TYAMGABM.js";
145
+ import "./chunk-FCMNKVXT.js";
146
+ import "./chunk-DJ2GSRLV.js";
147
+ import "./chunk-4ZVWQHEQ.js";
140
148
  import {
141
149
  FatalSandboxError,
142
150
  Storage,
143
151
  createDebugLogger,
144
152
  getErrorMessage,
153
+ isDebugLogFileEnabled,
145
154
  isDebugLoggingDegraded,
146
155
  isSubpath
147
- } from "./chunk-22MNNNXE.js";
156
+ } from "./chunk-J4TSQ5EQ.js";
148
157
  import {
149
158
  cleanupCheckpoints,
150
159
  registerCleanup,
151
160
  runExitCleanup
152
- } from "./chunk-4UCTWSTP.js";
161
+ } from "./chunk-IDJEZU7C.js";
153
162
  import {
154
163
  finalizeStartupProfile,
155
164
  isStartupProfilerEnabled,
156
165
  profileCheckpoint,
157
166
  recordStartupEvent,
158
167
  setInteractiveMode
159
- } from "./chunk-ITOGNELQ.js";
160
- import "./chunk-FXGLL2HL.js";
161
- import "./chunk-ZERZSAZL.js";
162
- import "./chunk-QN5NZ3UQ.js";
163
- import "./chunk-BR4QREVK.js";
164
- import "./chunk-Z2Z3GUXZ.js";
168
+ } from "./chunk-QSWDGAIC.js";
169
+ import "./chunk-Q7YDKOGY.js";
170
+ import "./chunk-75DOP5OR.js";
171
+ import "./chunk-DMTGGOSA.js";
172
+ import "./chunk-YQ3U5MUC.js";
173
+ import "./chunk-TB6UDU4T.js";
165
174
  import {
166
175
  init_esbuild_shims
167
- } from "./chunk-A4BMJM77.js";
176
+ } from "./chunk-5O2XNYP6.js";
168
177
  import {
169
178
  __name,
170
179
  __toESM
@@ -174,7 +183,7 @@ import {
174
183
  init_esbuild_shims();
175
184
  import dns from "node:dns";
176
185
  import os4 from "node:os";
177
- import path7 from "node:path";
186
+ import path8 from "node:path";
178
187
  import v8 from "node:v8";
179
188
 
180
189
  // packages/cli/src/config/settingsWatcher.ts
@@ -828,10 +837,280 @@ function sortJsonValue(value) {
828
837
  }
829
838
  __name(sortJsonValue, "sortJsonValue");
830
839
 
831
- // packages/cli/src/startup/worktreeStartup.ts
840
+ // packages/cli/src/config/extension-file-watcher.ts
832
841
  init_esbuild_shims();
842
+ import * as fs3 from "node:fs";
833
843
  import * as path3 from "node:path";
834
- var debugLogger4 = createDebugLogger("WORKTREE_STARTUP");
844
+ var debugLogger4 = createDebugLogger("EXTENSION_FILE_WATCHER");
845
+ var TOP_LEVEL_FILES = /* @__PURE__ */ new Set(["extension-enablement.json"]);
846
+ var EXTENSION_FILES = /* @__PURE__ */ new Set([
847
+ "qwen-extension.json",
848
+ ".qwen-extension-install.json"
849
+ ]);
850
+ var AUTO_REFRESH_DIRS = /* @__PURE__ */ new Set(["commands", "skills", "agents"]);
851
+ var STALE_DIRS = /* @__PURE__ */ new Set(["hooks"]);
852
+ var ExtensionFileWatcher = class {
853
+ constructor(config, extensionsDir = Storage.getUserExtensionsDir(), refreshState = new ExtensionRefreshState()) {
854
+ this.config = config;
855
+ this.extensionsDir = extensionsDir;
856
+ this.refreshState = refreshState;
857
+ }
858
+ static {
859
+ __name(this, "ExtensionFileWatcher");
860
+ }
861
+ watcher;
862
+ bootstrapWatcher;
863
+ mutationListenerDisposer;
864
+ mutationSuppressionEnds = /* @__PURE__ */ new Map();
865
+ staleFiles = /* @__PURE__ */ new Set();
866
+ watching = false;
867
+ watchGeneration = 0;
868
+ startWatching() {
869
+ this.stopWatching();
870
+ this.watching = true;
871
+ const generation = ++this.watchGeneration;
872
+ this.subscribeExtensionManagerMutations();
873
+ this.staleFiles = this.getStaleFiles();
874
+ const roots = this.getWatchRoots();
875
+ if (roots.length > 0) {
876
+ this.watcher = watch(roots, {
877
+ ignoreInitial: true,
878
+ followSymlinks: false,
879
+ awaitWriteFinish: {
880
+ stabilityThreshold: 200,
881
+ pollInterval: 50
882
+ },
883
+ ignored: /* @__PURE__ */ __name((filePath) => this.isIgnored(filePath), "ignored")
884
+ }).on("all", (event, changedPath) => {
885
+ if (generation !== this.watchGeneration) return;
886
+ const resolvedPath = path3.resolve(changedPath);
887
+ const action = this.getRefreshAction(
888
+ event,
889
+ resolvedPath
890
+ );
891
+ let marked = false;
892
+ if (action === "auto") {
893
+ marked = this.refreshState.markExtensionContentChanged(
894
+ "extension content files changed"
895
+ );
896
+ } else if (action === "stale") {
897
+ marked = this.refreshState.markExtensionsChanged(
898
+ "extension files changed"
899
+ );
900
+ }
901
+ debugLogger4.debug("Extension file event classified", {
902
+ event,
903
+ path: resolvedPath,
904
+ action,
905
+ marked
906
+ });
907
+ }).on("error", (error) => {
908
+ debugLogger4.warn("Extension file watcher error:", error);
909
+ });
910
+ }
911
+ if (!fs3.existsSync(this.extensionsDir)) {
912
+ this.watchExtensionsParent();
913
+ }
914
+ }
915
+ stopWatching() {
916
+ const watcher = this.watcher;
917
+ const bootstrapWatcher = this.bootstrapWatcher;
918
+ this.watcher = void 0;
919
+ this.bootstrapWatcher = void 0;
920
+ this.watching = false;
921
+ this.watchGeneration++;
922
+ this.mutationListenerDisposer?.();
923
+ this.mutationListenerDisposer = void 0;
924
+ this.endPendingMutationSuppressions();
925
+ watcher?.close().catch((error) => {
926
+ debugLogger4.warn("Extension file watcher close error:", error);
927
+ });
928
+ bootstrapWatcher?.close().catch((error) => {
929
+ debugLogger4.warn("Extension bootstrap watcher close error:", error);
930
+ });
931
+ }
932
+ restartWatching() {
933
+ this.startWatching();
934
+ }
935
+ getWatchRoots() {
936
+ const roots = /* @__PURE__ */ new Set();
937
+ if (fs3.existsSync(this.extensionsDir)) {
938
+ roots.add(this.extensionsDir);
939
+ }
940
+ for (const extension of this.config.getActiveExtensions()) {
941
+ if (extension.installMetadata?.type === "link") {
942
+ const rawSource = extension.installMetadata.source;
943
+ const source = rawSource ? path3.resolve(rawSource) : void 0;
944
+ if (source && fs3.existsSync(source)) {
945
+ roots.add(source);
946
+ }
947
+ }
948
+ }
949
+ return [...roots];
950
+ }
951
+ getStaleFiles() {
952
+ const files = /* @__PURE__ */ new Set();
953
+ for (const extension of this.config.getActiveExtensions()) {
954
+ for (const filePath of extension.contextFiles) {
955
+ files.add(path3.resolve(filePath));
956
+ }
957
+ const configured = extension.config.contextFileName;
958
+ const names = configured === void 0 ? ["QWEN.md"] : Array.isArray(configured) ? configured : [configured];
959
+ for (const name of names) {
960
+ files.add(path3.resolve(extension.path, name));
961
+ }
962
+ this.addManifestFileReference(
963
+ files,
964
+ extension.path,
965
+ extension.config.hooks
966
+ );
967
+ this.addManifestFileReference(
968
+ files,
969
+ extension.path,
970
+ extension.config.lspServers
971
+ );
972
+ }
973
+ return files;
974
+ }
975
+ addManifestFileReference(files, extensionPath, value) {
976
+ if (typeof value !== "string") return;
977
+ files.add(
978
+ path3.isAbsolute(value) ? path3.resolve(value) : path3.resolve(extensionPath, value)
979
+ );
980
+ }
981
+ watchExtensionsParent() {
982
+ this.closeBootstrapWatcher();
983
+ const parentDir = path3.dirname(this.extensionsDir);
984
+ const dirBasename = path3.basename(this.extensionsDir);
985
+ const generation = this.watchGeneration;
986
+ this.bootstrapWatcher = watch(parentDir, {
987
+ ignoreInitial: true,
988
+ followSymlinks: false,
989
+ depth: 0,
990
+ ignored: /* @__PURE__ */ __name((filePath) => filePath !== parentDir && path3.basename(filePath) !== dirBasename, "ignored")
991
+ }).on("all", (_event, changedPath) => {
992
+ if (generation !== this.watchGeneration) return;
993
+ if (path3.basename(changedPath) !== dirBasename) return;
994
+ if (!fs3.existsSync(this.extensionsDir)) return;
995
+ this.refreshState.markExtensionsChanged("extension directory created");
996
+ queueMicrotask(() => {
997
+ if (this.watching) {
998
+ this.restartWatching();
999
+ }
1000
+ });
1001
+ }).on("error", (error) => {
1002
+ debugLogger4.warn("Extension bootstrap watcher error:", error);
1003
+ });
1004
+ }
1005
+ getRefreshAction(event, changedPath) {
1006
+ if (this.staleFiles.has(changedPath)) {
1007
+ return "stale";
1008
+ }
1009
+ if (changedPath === path3.resolve(this.extensionsDir)) {
1010
+ if (event === "unlinkDir") {
1011
+ this.watchExtensionsParent();
1012
+ return "stale";
1013
+ }
1014
+ return false;
1015
+ }
1016
+ if (isSubpath(this.extensionsDir, changedPath)) {
1017
+ return this.getUserExtensionRefreshAction(event, changedPath);
1018
+ }
1019
+ return this.getLinkedExtensionRefreshAction(changedPath);
1020
+ }
1021
+ getUserExtensionRefreshAction(event, changedPath) {
1022
+ const relative2 = path3.relative(this.extensionsDir, changedPath);
1023
+ const parts = relative2.split(path3.sep).filter(Boolean);
1024
+ if (parts.length === 1) {
1025
+ if (TOP_LEVEL_FILES.has(parts[0])) return "stale";
1026
+ if (event === "addDir" || event === "unlinkDir") return "stale";
1027
+ return false;
1028
+ }
1029
+ if (!fs3.existsSync(
1030
+ path3.join(this.extensionsDir, parts[0], "qwen-extension.json")
1031
+ )) {
1032
+ return "stale";
1033
+ }
1034
+ const runtimePath = parts.slice(1);
1035
+ return this.getRuntimePathRefreshAction(runtimePath);
1036
+ }
1037
+ getLinkedExtensionRefreshAction(changedPath) {
1038
+ for (const extension of this.config.getActiveExtensions()) {
1039
+ if (extension.installMetadata?.type !== "link") continue;
1040
+ const rawSource = extension.installMetadata.source;
1041
+ const source = rawSource ? path3.resolve(rawSource) : void 0;
1042
+ if (!source || !isSubpath(source, changedPath)) continue;
1043
+ const relative2 = path3.relative(source, changedPath);
1044
+ const parts = relative2.split(path3.sep).filter(Boolean);
1045
+ return parts.length === 0 ? "stale" : this.getRuntimePathRefreshAction(parts);
1046
+ }
1047
+ return false;
1048
+ }
1049
+ getRuntimePathRefreshAction(parts) {
1050
+ if (EXTENSION_FILES.has(parts[0]) || STALE_DIRS.has(parts[0])) {
1051
+ return "stale";
1052
+ }
1053
+ if (AUTO_REFRESH_DIRS.has(parts[0])) {
1054
+ return "auto";
1055
+ }
1056
+ return false;
1057
+ }
1058
+ isIgnored(filePath) {
1059
+ const normalized = filePath.replace(/\\/g, "/");
1060
+ const searchablePath = `/${normalized}/`;
1061
+ if (searchablePath.includes("/node_modules/") || searchablePath.includes("/.git/")) {
1062
+ return true;
1063
+ }
1064
+ const basename4 = normalized.split("/").pop() ?? "";
1065
+ return basename4 === ".DS_Store" || basename4.endsWith("~") || basename4.endsWith(".swp") || basename4.endsWith(".tmp");
1066
+ }
1067
+ subscribeExtensionManagerMutations() {
1068
+ const manager = this.config.getExtensionManager();
1069
+ this.mutationListenerDisposer = manager.addMutationListener(
1070
+ (event) => {
1071
+ if (event.phase === "start") {
1072
+ this.mutationSuppressionEnds.set(
1073
+ event.id,
1074
+ this.refreshState.beginSuppression(
1075
+ () => this.restartAfterMutation()
1076
+ )
1077
+ );
1078
+ return;
1079
+ }
1080
+ const endSuppression = this.mutationSuppressionEnds.get(event.id);
1081
+ if (!endSuppression) {
1082
+ return;
1083
+ }
1084
+ this.mutationSuppressionEnds.delete(event.id);
1085
+ endSuppression();
1086
+ }
1087
+ );
1088
+ }
1089
+ endPendingMutationSuppressions() {
1090
+ const endSuppressions = [...this.mutationSuppressionEnds.values()];
1091
+ this.mutationSuppressionEnds.clear();
1092
+ for (const endSuppression of endSuppressions) {
1093
+ endSuppression();
1094
+ }
1095
+ }
1096
+ restartAfterMutation() {
1097
+ if (this.watching) {
1098
+ this.restartWatching();
1099
+ }
1100
+ }
1101
+ closeBootstrapWatcher() {
1102
+ const bootstrapWatcher = this.bootstrapWatcher;
1103
+ this.bootstrapWatcher = void 0;
1104
+ bootstrapWatcher?.close().catch((error) => {
1105
+ debugLogger4.warn("Extension bootstrap watcher close error:", error);
1106
+ });
1107
+ }
1108
+ };
1109
+
1110
+ // packages/cli/src/startup/worktreeStartup.ts
1111
+ init_esbuild_shims();
1112
+ import * as path4 from "node:path";
1113
+ var debugLogger5 = createDebugLogger("WORKTREE_STARTUP");
835
1114
  var DETACHED_HEAD = "HEAD";
836
1115
  async function setupStartupWorktree(rawInput, options) {
837
1116
  if (rawInput === void 0) return null;
@@ -858,7 +1137,7 @@ async function setupStartupWorktree(rawInput, options) {
858
1137
  error: `--worktree: ${launchCwd} is not a git repository. Run \`git init\` first or relaunch from inside one.`
859
1138
  };
860
1139
  }
861
- const repoRoot = path3.resolve(rawRepoRoot);
1140
+ const repoRoot = path4.resolve(rawRepoRoot);
862
1141
  const service = repoRoot === launchCwd ? probe : new GitWorktreeService(repoRoot);
863
1142
  const prNumber = GitWorktreeService.parsePRReference(trimmed);
864
1143
  const isPullRequest = prNumber !== null;
@@ -894,7 +1173,7 @@ async function setupStartupWorktree(rawInput, options) {
894
1173
  error: `--worktree: ${expectedWorktreePath} is already a git worktree, but its branch is ${registered.branch} (expected ${expectedBranch}). Refusing to re-attach. Resolve the conflict manually (e.g. \`git worktree remove ${expectedWorktreePath}\`).`
895
1174
  };
896
1175
  }
897
- const worktreePath2 = path3.resolve(expectedWorktreePath);
1176
+ const worktreePath2 = path4.resolve(expectedWorktreePath);
898
1177
  try {
899
1178
  process.chdir(worktreePath2);
900
1179
  } catch (error) {
@@ -903,7 +1182,7 @@ async function setupStartupWorktree(rawInput, options) {
903
1182
  error: `--worktree: failed to chdir into ${worktreePath2} (${error instanceof Error ? error.message : String(error)}).`
904
1183
  };
905
1184
  }
906
- debugLogger4.debug(
1185
+ debugLogger5.debug(
907
1186
  `setupStartupWorktree: re-attached to existing worktree at ${worktreePath2} (branch=${registered.branch})`
908
1187
  );
909
1188
  return {
@@ -944,7 +1223,7 @@ async function setupStartupWorktree(rawInput, options) {
944
1223
  error: `--worktree: ${result.error ?? "failed to create worktree."}`
945
1224
  };
946
1225
  }
947
- const worktreePath = path3.resolve(result.worktree.path);
1226
+ const worktreePath = path4.resolve(result.worktree.path);
948
1227
  try {
949
1228
  process.chdir(worktreePath);
950
1229
  } catch (error) {
@@ -981,7 +1260,7 @@ async function persistStartupWorktreeSidecar(config, context) {
981
1260
  try {
982
1261
  previous = await readWorktreeSession(sidecarPath);
983
1262
  } catch (error) {
984
- debugLogger4.warn(
1263
+ debugLogger5.warn(
985
1264
  `persistStartupWorktreeSidecar: failed to read existing sidecar at ${sidecarPath} \u2014 treating as "no previous worktree" and proceeding: ${error}`
986
1265
  );
987
1266
  previous = null;
@@ -1000,7 +1279,7 @@ async function persistStartupWorktreeSidecar(config, context) {
1000
1279
  context.repoRoot,
1001
1280
  context.worktreePath
1002
1281
  ]).catch((error) => {
1003
- debugLogger4.warn(
1282
+ debugLogger5.warn(
1004
1283
  `persistStartupWorktreeSidecar: failed to check owner runtime ${owner}: ${error}`
1005
1284
  );
1006
1285
  return true;
@@ -1054,7 +1333,7 @@ function takeUtf8Prefix(value, maxBytes) {
1054
1333
  __name(takeUtf8Prefix, "takeUtf8Prefix");
1055
1334
  async function readStdin() {
1056
1335
  const MAX_STDIN_SIZE = 8 * 1024 * 1024;
1057
- return new Promise((resolve2, reject) => {
1336
+ return new Promise((resolve3, reject) => {
1058
1337
  let data = "";
1059
1338
  let totalSize = 0;
1060
1339
  let settled = false;
@@ -1091,7 +1370,7 @@ async function readStdin() {
1091
1370
  if (settled) return;
1092
1371
  settled = true;
1093
1372
  cleanup();
1094
- resolve2(data);
1373
+ resolve3(data);
1095
1374
  }, "finish");
1096
1375
  const onEnd = /* @__PURE__ */ __name(() => {
1097
1376
  finish();
@@ -1163,11 +1442,11 @@ async function relaunchAppInChildProcess(additionalNodeArgs, additionalScriptArg
1163
1442
  child.kill();
1164
1443
  throw err;
1165
1444
  }
1166
- return new Promise((resolve2, reject) => {
1445
+ return new Promise((resolve3, reject) => {
1167
1446
  child.on("error", reject);
1168
1447
  child.on("close", (code) => {
1169
1448
  process.stdin.resume();
1170
- resolve2(code ?? 1);
1449
+ resolve3(code ?? 1);
1171
1450
  });
1172
1451
  });
1173
1452
  }, "runner");
@@ -1180,8 +1459,8 @@ init_esbuild_shims();
1180
1459
  var import_shell_quote = __toESM(require_shell_quote(), 1);
1181
1460
  import { exec, execSync, spawn as spawn2 } from "node:child_process";
1182
1461
  import os2 from "node:os";
1183
- import path5 from "node:path";
1184
- import fs3 from "node:fs";
1462
+ import path6 from "node:path";
1463
+ import fs4 from "node:fs";
1185
1464
  import { promisify } from "node:util";
1186
1465
  import { randomBytes } from "node:crypto";
1187
1466
 
@@ -1201,10 +1480,10 @@ __name(parseSandboxImageName, "parseSandboxImageName");
1201
1480
 
1202
1481
  // packages/cli/src/utils/sandbox-path.ts
1203
1482
  init_esbuild_shims();
1204
- import path4 from "node:path";
1483
+ import path5 from "node:path";
1205
1484
  function isContainerPathWithinWorkdir(containerWorkdir, containerPath) {
1206
1485
  const normalize = /* @__PURE__ */ __name((value) => {
1207
- const normalized = path4.posix.normalize(value.replace(/\\/g, "/")).replace(/\/+$/, "").toLowerCase();
1486
+ const normalized = path5.posix.normalize(value.replace(/\\/g, "/")).replace(/\/+$/, "").toLowerCase();
1208
1487
  return normalized || "/";
1209
1488
  }, "normalize");
1210
1489
  const normalizedWorkdir = normalize(containerWorkdir);
@@ -1248,10 +1527,10 @@ function getContainerPath(hostPath) {
1248
1527
  }
1249
1528
  __name(getContainerPath, "getContainerPath");
1250
1529
  function ensureDirectoryAndGetRealPath(dir) {
1251
- if (!fs3.existsSync(dir)) {
1252
- fs3.mkdirSync(dir, { recursive: true });
1530
+ if (!fs4.existsSync(dir)) {
1531
+ fs4.mkdirSync(dir, { recursive: true });
1253
1532
  }
1254
- return fs3.realpathSync(dir);
1533
+ return fs4.realpathSync(dir);
1255
1534
  }
1256
1535
  __name(ensureDirectoryAndGetRealPath, "ensureDirectoryAndGetRealPath");
1257
1536
  var LOCAL_DEV_SANDBOX_IMAGE_NAME = "qwen-code-sandbox";
@@ -1267,9 +1546,9 @@ var BUILTIN_SEATBELT_PROFILES = [
1267
1546
  ];
1268
1547
  function resolveSeatbeltProfileFile(profile, importMetaUrl = import.meta.url) {
1269
1548
  if (!BUILTIN_SEATBELT_PROFILES.includes(profile)) {
1270
- return path5.join(SETTINGS_DIRECTORY_NAME, `sandbox-macos-${profile}.sb`);
1549
+ return path6.join(SETTINGS_DIRECTORY_NAME, `sandbox-macos-${profile}.sb`);
1271
1550
  }
1272
- return path5.join(
1551
+ return path6.join(
1273
1552
  resolveBundleDir(importMetaUrl),
1274
1553
  `sandbox-macos-${profile}.sb`
1275
1554
  );
@@ -1332,11 +1611,11 @@ function entrypoint(workdir, cliArgs) {
1332
1611
  if (pythonPathSuffix) {
1333
1612
  shellCmds.push(`export PYTHONPATH="$PYTHONPATH${pythonPathSuffix}";`);
1334
1613
  }
1335
- const projectSandboxBashrc = path5.join(
1614
+ const projectSandboxBashrc = path6.join(
1336
1615
  SETTINGS_DIRECTORY_NAME,
1337
1616
  "sandbox.bashrc"
1338
1617
  );
1339
- if (fs3.existsSync(projectSandboxBashrc)) {
1618
+ if (fs4.existsSync(projectSandboxBashrc)) {
1340
1619
  shellCmds.push(`source ${getContainerPath(projectSandboxBashrc)};`);
1341
1620
  }
1342
1621
  ports().forEach(
@@ -1359,7 +1638,7 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1359
1638
  }
1360
1639
  const profile = process.env["SEATBELT_PROFILE"] ??= "permissive-open";
1361
1640
  const profileFile = resolveSeatbeltProfileFile(profile);
1362
- if (!fs3.existsSync(profileFile)) {
1641
+ if (!fs4.existsSync(profileFile)) {
1363
1642
  throw new FatalSandboxError(
1364
1643
  `Missing macos seatbelt profile file '${profileFile}'`
1365
1644
  );
@@ -1371,30 +1650,30 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1371
1650
  ].join(" ");
1372
1651
  const qwenDir = Storage.getGlobalQwenDir();
1373
1652
  const runtimeDir = Storage.getRuntimeBaseDir();
1374
- fs3.mkdirSync(qwenDir, { recursive: true });
1375
- fs3.mkdirSync(runtimeDir, { recursive: true });
1653
+ fs4.mkdirSync(qwenDir, { recursive: true });
1654
+ fs4.mkdirSync(runtimeDir, { recursive: true });
1376
1655
  const args2 = [
1377
1656
  "-D",
1378
- `TARGET_DIR=${fs3.realpathSync(process.cwd())}`,
1657
+ `TARGET_DIR=${fs4.realpathSync(process.cwd())}`,
1379
1658
  "-D",
1380
- `TMP_DIR=${fs3.realpathSync(os2.tmpdir())}`,
1659
+ `TMP_DIR=${fs4.realpathSync(os2.tmpdir())}`,
1381
1660
  "-D",
1382
- `HOME_DIR=${fs3.realpathSync(os2.homedir())}`,
1661
+ `HOME_DIR=${fs4.realpathSync(os2.homedir())}`,
1383
1662
  "-D",
1384
- `CACHE_DIR=${fs3.realpathSync(execSync(`getconf DARWIN_USER_CACHE_DIR`).toString().trim())}`,
1663
+ `CACHE_DIR=${fs4.realpathSync(execSync(`getconf DARWIN_USER_CACHE_DIR`).toString().trim())}`,
1385
1664
  "-D",
1386
- `QWEN_DIR=${fs3.realpathSync(qwenDir)}`,
1665
+ `QWEN_DIR=${fs4.realpathSync(qwenDir)}`,
1387
1666
  "-D",
1388
- `RUNTIME_DIR=${fs3.realpathSync(runtimeDir)}`
1667
+ `RUNTIME_DIR=${fs4.realpathSync(runtimeDir)}`
1389
1668
  ];
1390
1669
  const MAX_INCLUDE_DIRS = 5;
1391
- const targetDir = fs3.realpathSync(cliConfig?.getTargetDir() || "");
1670
+ const targetDir = fs4.realpathSync(cliConfig?.getTargetDir() || "");
1392
1671
  const includedDirs = [];
1393
1672
  if (cliConfig) {
1394
1673
  const workspaceContext = cliConfig.getWorkspaceContext();
1395
1674
  const directories = workspaceContext.getDirectories();
1396
1675
  for (const dir of directories) {
1397
- const realDir = fs3.realpathSync(dir);
1676
+ const realDir = fs4.realpathSync(dir);
1398
1677
  if (realDir !== targetDir) {
1399
1678
  includedDirs.push(realDir);
1400
1679
  }
@@ -1467,23 +1746,23 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1467
1746
  sandboxProcess2 = spawn2(config.command, args2, {
1468
1747
  stdio: "inherit"
1469
1748
  });
1470
- return new Promise((resolve2, reject) => {
1749
+ return new Promise((resolve3, reject) => {
1471
1750
  sandboxProcess2?.on("error", reject);
1472
1751
  sandboxProcess2?.on("close", (code) => {
1473
1752
  process.stdin.resume();
1474
- resolve2(code ?? 1);
1753
+ resolve3(code ?? 1);
1475
1754
  });
1476
1755
  });
1477
1756
  }
1478
1757
  writeStderrLine(`hopping into sandbox (command: ${config.command}) ...`);
1479
- const gcPath = fs3.realpathSync(process.argv[1]);
1480
- const projectSandboxDockerfile = path5.join(
1758
+ const gcPath = fs4.realpathSync(process.argv[1]);
1759
+ const projectSandboxDockerfile = path6.join(
1481
1760
  SETTINGS_DIRECTORY_NAME,
1482
1761
  "sandbox.Dockerfile"
1483
1762
  );
1484
- const isCustomProjectSandbox = fs3.existsSync(projectSandboxDockerfile);
1763
+ const isCustomProjectSandbox = fs4.existsSync(projectSandboxDockerfile);
1485
1764
  const image = config.image;
1486
- const workdir = path5.resolve(process.cwd());
1765
+ const workdir = path6.resolve(process.cwd());
1487
1766
  const containerWorkdir = getContainerPath(workdir);
1488
1767
  if (process.env["BUILD_SANDBOX"]) {
1489
1768
  if (!gcPath.includes("qwen-code/packages/")) {
@@ -1494,13 +1773,13 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1494
1773
  writeStderrLine("building sandbox ...");
1495
1774
  const gcRoot = gcPath.split("/packages/")[0];
1496
1775
  let buildArgs = "";
1497
- const projectSandboxDockerfile2 = path5.join(
1776
+ const projectSandboxDockerfile2 = path6.join(
1498
1777
  SETTINGS_DIRECTORY_NAME,
1499
1778
  "sandbox.Dockerfile"
1500
1779
  );
1501
1780
  if (isCustomProjectSandbox) {
1502
1781
  writeStderrLine(`using ${projectSandboxDockerfile2} for sandbox`);
1503
- buildArgs += `-f ${path5.resolve(projectSandboxDockerfile2)} -i ${image}`;
1782
+ buildArgs += `-f ${path6.resolve(projectSandboxDockerfile2)} -i ${image}`;
1504
1783
  }
1505
1784
  execSync(
1506
1785
  `cd ${gcRoot} && node scripts/build_sandbox.js -s ${buildArgs}`,
@@ -1576,8 +1855,8 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1576
1855
  args.push("--env", `QWEN_RUNTIME_DIR=${runtimeBaseDirContainerPath}`);
1577
1856
  }
1578
1857
  args.push("--volume", `${os2.tmpdir()}:${getContainerPath(os2.tmpdir())}`);
1579
- const gcloudConfigDir = path5.join(os2.homedir(), ".config", "gcloud");
1580
- if (fs3.existsSync(gcloudConfigDir)) {
1858
+ const gcloudConfigDir = path6.join(os2.homedir(), ".config", "gcloud");
1859
+ if (fs4.existsSync(gcloudConfigDir)) {
1581
1860
  args.push(
1582
1861
  "--volume",
1583
1862
  `${gcloudConfigDir}:${getContainerPath(gcloudConfigDir)}:ro`
@@ -1585,7 +1864,7 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1585
1864
  }
1586
1865
  if (process.env["GOOGLE_APPLICATION_CREDENTIALS"]) {
1587
1866
  const adcFile = process.env["GOOGLE_APPLICATION_CREDENTIALS"];
1588
- if (fs3.existsSync(adcFile)) {
1867
+ if (fs4.existsSync(adcFile)) {
1589
1868
  args.push("--volume", `${adcFile}:${getContainerPath(adcFile)}:ro`);
1590
1869
  args.push(
1591
1870
  "--env",
@@ -1598,12 +1877,12 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1598
1877
  if (mount.trim()) {
1599
1878
  const { from, to, opts } = parseSandboxMountSpec(mount);
1600
1879
  mount = `${from}:${to}:${opts}`;
1601
- if (!path5.isAbsolute(from)) {
1880
+ if (!path6.isAbsolute(from)) {
1602
1881
  throw new FatalSandboxError(
1603
1882
  `Path '${from}' listed in SANDBOX_MOUNTS must be absolute`
1604
1883
  );
1605
1884
  }
1606
- if (!fs3.existsSync(from)) {
1885
+ if (!fs4.existsSync(from)) {
1607
1886
  throw new FatalSandboxError(
1608
1887
  `Missing mount path '${from}' listed in SANDBOX_MOUNTS`
1609
1888
  );
@@ -1675,7 +1954,7 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1675
1954
  "QWEN_DEBUG_LOG_FILE",
1676
1955
  "QWEN_CODE_LEGACY_MCP_BLOCKING"
1677
1956
  ]) {
1678
- if (process.env[envVar]) {
1957
+ if (process.env[envVar] !== void 0) {
1679
1958
  args.push("--env", `${envVar}=${process.env[envVar]}`);
1680
1959
  }
1681
1960
  }
@@ -1749,12 +2028,12 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1749
2028
  getContainerPath(workdir),
1750
2029
  getContainerPath(virtualEnv)
1751
2030
  )) {
1752
- const sandboxVenvPath = path5.resolve(
2031
+ const sandboxVenvPath = path6.resolve(
1753
2032
  SETTINGS_DIRECTORY_NAME,
1754
2033
  "sandbox.venv"
1755
2034
  );
1756
- if (!fs3.existsSync(sandboxVenvPath)) {
1757
- fs3.mkdirSync(sandboxVenvPath, { recursive: true });
2035
+ if (!fs4.existsSync(sandboxVenvPath)) {
2036
+ fs4.mkdirSync(sandboxVenvPath, { recursive: true });
1758
2037
  }
1759
2038
  args.push("--volume", `${sandboxVenvPath}:${getContainerPath(virtualEnv)}`);
1760
2039
  args.push("--env", `VIRTUAL_ENV=${getContainerPath(virtualEnv)}`);
@@ -1783,8 +2062,8 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1783
2062
  }
1784
2063
  args.push("--env", `SANDBOX=${containerName}`);
1785
2064
  if (config.command === "podman") {
1786
- const emptyAuthFilePath = path5.join(os2.tmpdir(), "empty_auth.json");
1787
- fs3.writeFileSync(emptyAuthFilePath, "{}", "utf-8");
2065
+ const emptyAuthFilePath = path6.join(os2.tmpdir(), "empty_auth.json");
2066
+ fs4.writeFileSync(emptyAuthFilePath, "{}", "utf-8");
1788
2067
  args.push("--authfile", emptyAuthFilePath);
1789
2068
  }
1790
2069
  let userFlag = "";
@@ -1855,7 +2134,7 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1855
2134
  sandboxProcess = spawn2(config.command, args, {
1856
2135
  stdio: "inherit"
1857
2136
  });
1858
- return new Promise((resolve2, reject) => {
2137
+ return new Promise((resolve3, reject) => {
1859
2138
  sandboxProcess.on("error", (err) => {
1860
2139
  writeStderrLine(`Sandbox process error: ${err}`);
1861
2140
  reject(err);
@@ -1867,13 +2146,13 @@ async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs = []) {
1867
2146
  `Sandbox process exited with code: ${code}, signal: ${signal}`
1868
2147
  );
1869
2148
  }
1870
- resolve2(code ?? 1);
2149
+ resolve3(code ?? 1);
1871
2150
  });
1872
2151
  });
1873
2152
  }
1874
2153
  __name(start_sandbox, "start_sandbox");
1875
2154
  async function imageExists(sandbox, image) {
1876
- return new Promise((resolve2) => {
2155
+ return new Promise((resolve3) => {
1877
2156
  const args = ["images", "-q", image];
1878
2157
  const checkProcess = spawn2(sandbox, args);
1879
2158
  let stdoutData = "";
@@ -1886,17 +2165,17 @@ async function imageExists(sandbox, image) {
1886
2165
  writeStderrLine(
1887
2166
  `Failed to start '${sandbox}' command for image check: ${err.message}`
1888
2167
  );
1889
- resolve2(false);
2168
+ resolve3(false);
1890
2169
  });
1891
2170
  checkProcess.on("close", () => {
1892
- resolve2(stdoutData.trim() !== "");
2171
+ resolve3(stdoutData.trim() !== "");
1893
2172
  });
1894
2173
  });
1895
2174
  }
1896
2175
  __name(imageExists, "imageExists");
1897
2176
  async function pullImage(sandbox, image) {
1898
2177
  writeStderrLine(`Attempting to pull image ${image} using ${sandbox}...`);
1899
- return new Promise((resolve2) => {
2178
+ return new Promise((resolve3) => {
1900
2179
  const args = ["pull", image];
1901
2180
  const pullProcess = spawn2(sandbox, args, { stdio: "pipe" });
1902
2181
  let stderrData = "";
@@ -1912,13 +2191,13 @@ async function pullImage(sandbox, image) {
1912
2191
  `Failed to start '${sandbox} pull ${image}' command: ${err.message}`
1913
2192
  );
1914
2193
  cleanup();
1915
- resolve2(false);
2194
+ resolve3(false);
1916
2195
  }, "onError");
1917
2196
  const onClose = /* @__PURE__ */ __name((code) => {
1918
2197
  if (code === 0) {
1919
2198
  writeStderrLine(`Successfully pulled image ${image}.`);
1920
2199
  cleanup();
1921
- resolve2(true);
2200
+ resolve3(true);
1922
2201
  } else {
1923
2202
  writeStderrLine(
1924
2203
  `Failed to pull image ${image}. '${sandbox} pull ${image}' exited with code ${code}.`
@@ -1926,7 +2205,7 @@ async function pullImage(sandbox, image) {
1926
2205
  if (stderrData.trim()) {
1927
2206
  }
1928
2207
  cleanup();
1929
- resolve2(false);
2208
+ resolve3(false);
1930
2209
  }
1931
2210
  }, "onClose");
1932
2211
  const cleanup = /* @__PURE__ */ __name(() => {
@@ -1983,17 +2262,17 @@ __name(ensureSandboxImageIsPresent, "ensureSandboxImageIsPresent");
1983
2262
 
1984
2263
  // packages/cli/src/utils/startupWarnings.ts
1985
2264
  init_esbuild_shims();
1986
- import fs4 from "node:fs/promises";
2265
+ import fs5 from "node:fs/promises";
1987
2266
  import os3 from "node:os";
1988
2267
  import { join as pathJoin } from "node:path";
1989
2268
  var warningsFilePath = pathJoin(os3.tmpdir(), "qwen-code-warnings.txt");
1990
2269
  async function getStartupWarnings() {
1991
2270
  try {
1992
- await fs4.access(warningsFilePath);
1993
- const warningsContent = await fs4.readFile(warningsFilePath, "utf-8");
2271
+ await fs5.access(warningsFilePath);
2272
+ const warningsContent = await fs5.readFile(warningsFilePath, "utf-8");
1994
2273
  const warnings = warningsContent.split("\n").filter((line) => line.trim() !== "");
1995
2274
  try {
1996
- await fs4.unlink(warningsFilePath);
2275
+ await fs5.unlink(warningsFilePath);
1997
2276
  } catch {
1998
2277
  warnings.push("Warning: Could not delete temporary warnings file.");
1999
2278
  }
@@ -2009,15 +2288,15 @@ __name(getStartupWarnings, "getStartupWarnings");
2009
2288
 
2010
2289
  // packages/cli/src/utils/userStartupWarnings.ts
2011
2290
  init_esbuild_shims();
2012
- import fs5 from "node:fs/promises";
2013
- import path6 from "node:path";
2291
+ import fs6 from "node:fs/promises";
2292
+ import path7 from "node:path";
2014
2293
  var rootDirectoryCheck = {
2015
2294
  id: "root-directory",
2016
2295
  check: /* @__PURE__ */ __name(async (options) => {
2017
2296
  try {
2018
- const workspaceRealPath = await fs5.realpath(options.workspaceRoot);
2297
+ const workspaceRealPath = await fs6.realpath(options.workspaceRoot);
2019
2298
  const errorMessage = "Warning: You are running Qwen Code in the root directory. Your entire folder structure will be used for context. It is strongly recommended to run in a project-specific directory.";
2020
- if (path6.dirname(workspaceRealPath) === workspaceRealPath) {
2299
+ if (path7.dirname(workspaceRealPath) === workspaceRealPath) {
2021
2300
  return errorMessage;
2022
2301
  }
2023
2302
  return null;
@@ -2090,7 +2369,7 @@ function initializeWarningHandler() {
2090
2369
  __name(initializeWarningHandler, "initializeWarningHandler");
2091
2370
 
2092
2371
  // packages/cli/src/gemini.tsx
2093
- var debugLogger5 = createDebugLogger("STARTUP");
2372
+ var debugLogger6 = createDebugLogger("STARTUP");
2094
2373
  function clearCorruptionEnvVars() {
2095
2374
  delete process.env[ENV_CORRUPTED_PATH];
2096
2375
  delete process.env[ENV_WAS_RECOVERED];
@@ -2169,7 +2448,7 @@ function installInteractiveSignalHandlers(wasRaw) {
2169
2448
  }
2170
2449
  cleanupStarted = true;
2171
2450
  void runExitCleanup().catch((error) => {
2172
- debugLogger5.error(`Error during ${signal} cleanup:`, error);
2451
+ debugLogger6.error(`Error during ${signal} cleanup:`, error);
2173
2452
  }).finally(() => {
2174
2453
  process.exit(getSignalExitCode(signal));
2175
2454
  });
@@ -2224,7 +2503,7 @@ async function main() {
2224
2503
  await initializeI18n(
2225
2504
  resolveLanguageSetting(settings.merged.general?.language)
2226
2505
  );
2227
- const { handleList: handleListExtensions } = await import("./list-INTVXUPA.js");
2506
+ const { handleList: handleListExtensions } = await import("./list-KIVFF3BB.js");
2228
2507
  await handleListExtensions();
2229
2508
  process.exit(0);
2230
2509
  }
@@ -2238,7 +2517,7 @@ async function main() {
2238
2517
  dns.setDefaultResultOrder(
2239
2518
  validateDnsResolutionOrder(settings.merged.advanced?.dnsResolutionOrder)
2240
2519
  );
2241
- const { themeManager, AUTO_THEME_NAME } = await import("./theme-manager-DQZVNSOC.js");
2520
+ const { themeManager, AUTO_THEME_NAME } = await import("./theme-manager-J7ANV4JR.js");
2242
2521
  themeManager.loadCustomThemes(settings.merged.ui?.customThemes);
2243
2522
  const configuredTheme = settings.merged.ui?.theme;
2244
2523
  if (configuredTheme && configuredTheme !== AUTO_THEME_NAME) {
@@ -2340,7 +2619,7 @@ ${finalArgs[promptIndex + 1]}`;
2340
2619
  const resolveIfPath = /* @__PURE__ */ __name((v) => {
2341
2620
  if (typeof v !== "string" || v.length === 0) return v;
2342
2621
  if (looksLikeInlineJson(v)) return v;
2343
- return path7.resolve(launchCwdForPaths, v);
2622
+ return path8.resolve(launchCwdForPaths, v);
2344
2623
  }, "resolveIfPath");
2345
2624
  argv.mcpConfig = resolveIfPath(argv.mcpConfig);
2346
2625
  argv.openaiLoggingDir = resolveIfPath(argv.openaiLoggingDir);
@@ -2349,15 +2628,15 @@ ${finalArgs[promptIndex + 1]}`;
2349
2628
  argv.telemetryOutfile = resolveIfPath(argv.telemetryOutfile);
2350
2629
  if (Array.isArray(argv.includeDirectories)) {
2351
2630
  argv.includeDirectories = argv.includeDirectories.map(
2352
- (d) => typeof d === "string" && d.length > 0 ? path7.resolve(launchCwdForPaths, d) : d
2631
+ (d) => typeof d === "string" && d.length > 0 ? path8.resolve(launchCwdForPaths, d) : d
2353
2632
  );
2354
2633
  }
2355
2634
  if (typeof argv.jsonSchema === "string") {
2356
2635
  const trimmedSchema = argv.jsonSchema.trim();
2357
2636
  if (trimmedSchema.startsWith("@")) {
2358
2637
  const rel = trimmedSchema.slice(1);
2359
- if (rel.length > 0 && !path7.isAbsolute(rel)) {
2360
- argv.jsonSchema = "@" + path7.resolve(launchCwdForPaths, rel);
2638
+ if (rel.length > 0 && !path8.isAbsolute(rel)) {
2639
+ argv.jsonSchema = "@" + path8.resolve(launchCwdForPaths, rel);
2361
2640
  }
2362
2641
  }
2363
2642
  }
@@ -2388,7 +2667,7 @@ ${finalArgs[promptIndex + 1]}`;
2388
2667
  );
2389
2668
  let resolvedSessionId;
2390
2669
  if (argv.resume === "") {
2391
- const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-APISIRJZ.js");
2670
+ const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-TYUSSNJ6.js");
2392
2671
  resolvedSessionId = await showResumeSessionPicker();
2393
2672
  } else if (!isValidSessionId(argv.resume)) {
2394
2673
  const sessionService = new SessionService(process.cwd());
@@ -2399,7 +2678,7 @@ ${finalArgs[promptIndex + 1]}`;
2399
2678
  writeStderrLine(
2400
2679
  `Multiple sessions found with title "${argv.resume}". Please select one:`
2401
2680
  );
2402
- const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-APISIRJZ.js");
2681
+ const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-TYUSSNJ6.js");
2403
2682
  resolvedSessionId = await showResumeSessionPicker(
2404
2683
  process.cwd(),
2405
2684
  matches
@@ -2449,6 +2728,23 @@ ${finalArgs[promptIndex + 1]}`;
2449
2728
  registerCleanup(disposeMcpHotReload);
2450
2729
  }
2451
2730
  registerLspHotReload(config, registerCleanup);
2731
+ const extensionRefreshState = new ExtensionRefreshState();
2732
+ const extensionFileWatcher = isBareMode(argv.bare) || config.isSafeMode() ? void 0 : new ExtensionFileWatcher(config, void 0, extensionRefreshState);
2733
+ extensionFileWatcher?.startWatching();
2734
+ if (extensionFileWatcher) {
2735
+ const restartExtensionWatcher = /* @__PURE__ */ __name(() => extensionFileWatcher.restartWatching(), "restartExtensionWatcher");
2736
+ extensionRefreshState.on(
2737
+ "extensions-reloaded" /* ExtensionsReloaded */,
2738
+ restartExtensionWatcher
2739
+ );
2740
+ registerCleanup(() => {
2741
+ extensionRefreshState.off(
2742
+ "extensions-reloaded" /* ExtensionsReloaded */,
2743
+ restartExtensionWatcher
2744
+ );
2745
+ extensionFileWatcher.stopWatching();
2746
+ });
2747
+ }
2452
2748
  if (startupWorktreeContext) {
2453
2749
  config.setPendingStartupWorktreeNotice(
2454
2750
  buildStartupWorktreeNotice(startupWorktreeContext)
@@ -2470,7 +2766,7 @@ ${finalArgs[promptIndex + 1]}`;
2470
2766
  )
2471
2767
  );
2472
2768
  } catch (error) {
2473
- debugLogger5.warn(
2769
+ debugLogger6.warn(
2474
2770
  `--worktree sidecar persist failed (non-fatal, notice preserved): ${error instanceof Error ? error.message : String(error)}`
2475
2771
  );
2476
2772
  }
@@ -2501,24 +2797,24 @@ ${finalArgs[promptIndex + 1]}`;
2501
2797
  registerCleanup(installInteractiveSignalHandlers(wasRaw));
2502
2798
  }
2503
2799
  if (config.isInteractive() && !wasRaw && process.stdin.isTTY) {
2504
- const { startEarlyInputCapture, stopAndGetCapturedInput } = await import("./earlyInputCapture-AERYYGXE.js");
2505
- const { detectAndEnableKittyProtocol } = await import("./kittyProtocolDetector-OJRCJLIU.js");
2800
+ const { startEarlyInputCapture, stopAndGetCapturedInput } = await import("./earlyInputCapture-TTWXFIWO.js");
2801
+ const { detectAndEnableKittyProtocol } = await import("./kittyProtocolDetector-HCNNKJTI.js");
2506
2802
  process.stdin.setRawMode(true);
2507
2803
  startEarlyInputCapture();
2508
2804
  registerCleanup(() => stopAndGetCapturedInput());
2509
2805
  kittyProtocolDetectionComplete = detectAndEnableKittyProtocol();
2510
2806
  if (!configuredTheme || configuredTheme === AUTO_THEME_NAME) {
2511
2807
  themeAutoDetectionComplete = themeManager.resolveAutoThemeAsync().catch((err) => {
2512
- debugLogger5.warn("Async theme auto-detection failed:", err);
2808
+ debugLogger6.warn("Async theme auto-detection failed:", err);
2513
2809
  });
2514
2810
  }
2515
2811
  }
2516
2812
  if (config.isInteractive()) {
2517
- const { setMaxSizedBoxDebugging } = await import("./MaxSizedBox-XY5LIO5O.js");
2813
+ const { setMaxSizedBoxDebugging } = await import("./MaxSizedBox-4CX4IQWE.js");
2518
2814
  setMaxSizedBoxDebugging(isDebugMode3);
2519
2815
  }
2520
2816
  const inputFormat = process.stdin.isTTY ? "text" /* TEXT */ : typeof config.getInputFormat === "function" ? config.getInputFormat() : "text" /* TEXT */;
2521
- const { initializeApp } = await import("./initializer-SRN3IM42.js");
2817
+ const { initializeApp } = await import("./initializer-LGQGC7ZT.js");
2522
2818
  let input = config.getQuestion();
2523
2819
  const hasRemoteInput = Boolean(config.getInputFile?.());
2524
2820
  const deferIdeConnection = config.isInteractive() && !config.getExperimentalZedIntegration() && !input && !hasRemoteInput;
@@ -2527,7 +2823,7 @@ ${finalArgs[promptIndex + 1]}`;
2527
2823
  });
2528
2824
  profileCheckpoint("after_initialize_app");
2529
2825
  if (config.getExperimentalZedIntegration()) {
2530
- const { runAcpAgent } = await import("./acpAgent-MMOSC2YA.js");
2826
+ const { runAcpAgent } = await import("./acpAgent-5HJEXOPR.js");
2531
2827
  await runAcpAgent(config, settings, argv);
2532
2828
  await runExitCleanup();
2533
2829
  process.exit(0);
@@ -2566,7 +2862,7 @@ ${finalArgs[promptIndex + 1]}`;
2566
2862
  setInteractiveMode(true);
2567
2863
  await kittyProtocolDetectionComplete;
2568
2864
  await themeAutoDetectionComplete;
2569
- const { startInteractiveUI } = await import("./startInteractiveUI-REKSTOHU.js");
2865
+ const { startInteractiveUI } = await import("./startInteractiveUI-DXR4K6T5.js");
2570
2866
  await startInteractiveUI(
2571
2867
  config,
2572
2868
  settings,
@@ -2574,7 +2870,8 @@ ${finalArgs[promptIndex + 1]}`;
2574
2870
  process.cwd(),
2575
2871
  initializationResult,
2576
2872
  {
2577
- postRenderConnectIde: deferIdeConnection
2873
+ postRenderConnectIde: deferIdeConnection,
2874
+ extensionRefreshState
2578
2875
  }
2579
2876
  );
2580
2877
  clearCorruptionEnvVars();
@@ -2583,9 +2880,13 @@ ${finalArgs[promptIndex + 1]}`;
2583
2880
  clearCorruptionEnvVars();
2584
2881
  if (config.getDebugMode()) {
2585
2882
  writeStderrLine("Debug mode enabled");
2586
- writeStderrLine(
2587
- `Logging to: ${Storage.getDebugLogPath(config.getSessionId())}`
2588
- );
2883
+ if (isDebugLogFileEnabled()) {
2884
+ writeStderrLine(
2885
+ `Logging to: ${Storage.getDebugLogPath(config.getSessionId())}`
2886
+ );
2887
+ } else {
2888
+ writeStderrLine("Debug log file disabled by QWEN_DEBUG_LOG_FILE");
2889
+ }
2589
2890
  if (isDebugLoggingDegraded()) {
2590
2891
  writeStderrLine(
2591
2892
  "Warning: Debug logging is degraded (write failures occurred)"
@@ -2622,7 +2923,7 @@ ${finalArgs[promptIndex + 1]}`;
2622
2923
  ${input}`;
2623
2924
  }
2624
2925
  }
2625
- const { validateNonInteractiveAuth } = await import("./validateNonInterActiveAuth-O4ECBHQL.js");
2926
+ const { validateNonInteractiveAuth } = await import("./validateNonInterActiveAuth-6DGGGE4A.js");
2626
2927
  const nonInteractiveConfig = await validateNonInteractiveAuth(
2627
2928
  settings.merged.security?.auth?.useExternal,
2628
2929
  config,
@@ -2631,7 +2932,7 @@ ${input}`;
2631
2932
  const prompt_id = createNonInteractivePromptId(config.getSessionId());
2632
2933
  if (inputFormat === "stream-json" /* STREAM_JSON */) {
2633
2934
  const trimmedInput = (input ?? "").trim();
2634
- const { runNonInteractiveStreamJson } = await import("./session-F5KSNP2N.js");
2935
+ const { runNonInteractiveStreamJson } = await import("./session-4GGYGOWY.js");
2635
2936
  await runNonInteractiveStreamJson(
2636
2937
  nonInteractiveConfig,
2637
2938
  trimmedInput.length > 0 ? trimmedInput : "",
@@ -2654,8 +2955,8 @@ ${input}`;
2654
2955
  auth_type: config.getContentGeneratorConfig()?.authType,
2655
2956
  prompt_length: input.length
2656
2957
  });
2657
- debugLogger5.debug(`Session ID: ${config.getSessionId()}`);
2658
- const { runNonInteractive } = await import("./nonInteractiveCli-LJEEODU2.js");
2958
+ debugLogger6.debug(`Session ID: ${config.getSessionId()}`);
2959
+ const { runNonInteractive } = await import("./nonInteractiveCli-NAHUR2X6.js");
2659
2960
  const exitCode = await runNonInteractive(
2660
2961
  nonInteractiveConfig,
2661
2962
  settings,
@@ -2672,28 +2973,31 @@ function createNonInteractivePromptId(sessionId) {
2672
2973
  }
2673
2974
  __name(createNonInteractivePromptId, "createNonInteractivePromptId");
2674
2975
  function registerLspHotReload(config, registerCleanup2) {
2675
- if (config.isLspEnabled?.() !== true || !config.getLspClient?.()?.reinitialize) {
2976
+ const lspClient = config.getLspClient?.();
2977
+ const runtimeConfig = config;
2978
+ const reinitializeLsp = runtimeConfig.reinitializeLsp;
2979
+ if (config.isLspEnabled?.() !== true || !lspClient?.reinitialize || !reinitializeLsp) {
2676
2980
  return;
2677
2981
  }
2678
2982
  const lspConfigWatcher = new LspConfigWatcher(config.getProjectRoot());
2679
- debugLogger5.info(
2983
+ debugLogger6.info(
2680
2984
  `Registering LSP config hot reload watcher for ${config.getProjectRoot()}`
2681
2985
  );
2682
2986
  lspConfigWatcher.startWatching(async (event) => {
2683
2987
  if (event.changeType === "invalid") {
2684
- debugLogger5.warn(`Invalid LSP config file ${event.path}: ${event.error}`);
2988
+ debugLogger6.warn(`Invalid LSP config file ${event.path}: ${event.error}`);
2685
2989
  appEvents.emit("log-error" /* LogError */, event.error);
2686
2990
  return;
2687
2991
  }
2688
- debugLogger5.info(
2992
+ debugLogger6.info(
2689
2993
  `Reloading LSP server settings: changeType=${event.changeType}, path=${event.path}`
2690
2994
  );
2691
2995
  let errorReported = false;
2692
2996
  try {
2693
- const result = await config.reinitializeLsp();
2997
+ const result = await reinitializeLsp();
2694
2998
  if (result) {
2695
2999
  const failedServers = getRuntimeReloadFailedNames(result.reconcile);
2696
- debugLogger5.info(
3000
+ debugLogger6.info(
2697
3001
  `Reloaded LSP server settings: added=${formatRuntimeReloadNames(
2698
3002
  result.reconcile.added
2699
3003
  )}, removed=${formatRuntimeReloadNames(
@@ -2725,13 +3029,13 @@ function registerLspHotReload(config, registerCleanup2) {
2725
3029
  throw new Error(message);
2726
3030
  }
2727
3031
  } else {
2728
- debugLogger5.info(
3032
+ debugLogger6.info(
2729
3033
  "Skipped LSP server settings reload because LSP is disabled or no client is available"
2730
3034
  );
2731
3035
  }
2732
3036
  appEvents.emit("lsp-status-changed" /* LspStatusChanged */);
2733
3037
  } catch (error) {
2734
- debugLogger5.warn("Failed to reload LSP server settings:", error);
3038
+ debugLogger6.warn("Failed to reload LSP server settings:", error);
2735
3039
  if (!errorReported) {
2736
3040
  const message = error instanceof Error ? `Failed to reload LSP server settings: ${error.message}. Some LSP servers may have been partially updated. Run with --debug for details.` : "Failed to reload LSP server settings; some LSP servers may have been partially updated. Run with --debug for details.";
2737
3041
  appEvents.emit("log-error" /* LogError */, message);