@qwen-code/qwen-code 0.22.2 → 0.22.3-nightly.20260829.e5cb60ad48

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 (332) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  3. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  5. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  6. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  7. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  8. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  9. package/bundled/review/SKILL.md +81 -31
  10. package/bundled/review/references/persistence.md +7 -3
  11. package/bundled/review/references/posting.md +10 -4
  12. package/chunks/{MaxSizedBox-X5FZSNAJ.js → MaxSizedBox-JK4LFKJ3.js} +36 -37
  13. package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-UA2MQCCS.js} +54 -55
  14. package/chunks/{acpAgent-MXEAN54C.js → acpAgent-ZKIVHQKW.js} +276 -191
  15. package/chunks/{agent-PJIPDWHB.js → agent-Z3Q5C3RX.js} +27 -28
  16. package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-BIVZ3KYZ.js} +27 -28
  17. package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
  18. package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
  19. package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-66I3U2QX.js} +29 -5
  20. package/chunks/{bridge-FKZTVIS3.js → bridge-KDQTHAR7.js} +40 -41
  21. package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
  22. package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-X4WWBVYW.js} +50 -46
  23. package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
  24. package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
  25. package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
  26. package/chunks/{chunk-V2NDP3I4.js → chunk-2AEHQRY2.js} +1 -1
  27. package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
  28. package/chunks/chunk-36LGBEM6.js +130 -0
  29. package/chunks/{chunk-2K6ORIHJ.js → chunk-3CAI35FS.js} +11 -11
  30. package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
  31. package/chunks/{chunk-JSHHYW6T.js → chunk-3WJLDA3X.js} +3 -3
  32. package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
  33. package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
  34. package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
  35. package/chunks/{chunk-KEKZFOL6.js → chunk-44LKG3IY.js} +1 -1
  36. package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
  37. package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
  38. package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
  39. package/chunks/chunk-4VQBQLIZ.js +293 -0
  40. package/chunks/{chunk-ZFKOCECU.js → chunk-5CALJAH7.js} +2 -2
  41. package/chunks/{chunk-F7TNAPZ4.js → chunk-5SBVOOA2.js} +5 -5
  42. package/chunks/{chunk-IK5BW3CS.js → chunk-5ZJL3AIV.js} +2 -2
  43. package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
  44. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  45. package/chunks/{chunk-77RG5SFQ.js → chunk-6XOIV7MI.js} +1 -1
  46. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  47. package/chunks/chunk-7GUOXWPY.js +2597 -0
  48. package/chunks/chunk-7J6OTNGO.js +424 -0
  49. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  50. package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
  51. package/chunks/{chunk-FBSSIAAQ.js → chunk-AMLXTTJJ.js} +7 -7
  52. package/chunks/{chunk-Z7FLBQPR.js → chunk-ARF6IJHM.js} +7 -7
  53. package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
  54. package/chunks/{chunk-4JWNNLPT.js → chunk-B42A5ZHA.js} +3 -3
  55. package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
  56. package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
  57. package/chunks/{chunk-KUX5D6DK.js → chunk-BFYGL2XL.js} +11383 -11020
  58. package/chunks/{chunk-W5MJJ2V7.js → chunk-BIJEBAAQ.js} +1 -1
  59. package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
  60. package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
  61. package/chunks/{chunk-F5SZP77N.js → chunk-BP5PTNCU.js} +79 -71
  62. package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
  63. package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
  64. package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
  65. package/chunks/{chunk-L6YT5H34.js → chunk-CVUBULIX.js} +4 -4
  66. package/chunks/{chunk-JU4EEXC7.js → chunk-CWQZUDB7.js} +2 -2
  67. package/chunks/chunk-DJBQCO2E.js +842 -0
  68. package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
  69. package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
  70. package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
  71. package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
  72. package/chunks/{chunk-TGWAQ5RB.js → chunk-ECE3UYVO.js} +4704 -5894
  73. package/chunks/{chunk-5O72BNDD.js → chunk-F5RB4S23.js} +7 -7
  74. package/chunks/{chunk-IJKTMLBE.js → chunk-FIKYKQOO.js} +1 -1
  75. package/chunks/{chunk-BNMF3K5X.js → chunk-FKET6VOO.js} +52 -36
  76. package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
  77. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  78. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  79. package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
  80. package/chunks/{chunk-7UYV53BC.js → chunk-GIHXH2KO.js} +1 -1
  81. package/chunks/{chunk-V4QXXQJ2.js → chunk-H4LCV44K.js} +2 -2
  82. package/chunks/{chunk-LXIBMVRN.js → chunk-H5WQZTAW.js} +13 -7
  83. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  84. package/chunks/{chunk-RJC5EIKY.js → chunk-HHQJANFM.js} +3 -3
  85. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  86. package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
  87. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  88. package/chunks/{chunk-66KDY3LV.js → chunk-IJMEPQ5N.js} +2 -2
  89. package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
  90. package/chunks/{chunk-6CGL7E7G.js → chunk-IZDKYNKN.js} +2 -2
  91. package/chunks/{chunk-A7YP63XN.js → chunk-J7SS77YW.js} +5 -5
  92. package/chunks/{chunk-XDFHY4R3.js → chunk-JCMS65DJ.js} +2 -2
  93. package/chunks/{chunk-6LFJEACX.js → chunk-JHDPOPQG.js} +7 -7
  94. package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
  95. package/chunks/{chunk-PFCQ62V4.js → chunk-JWDMKJG5.js} +6 -6
  96. package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
  97. package/chunks/{chunk-Y6LSMB6J.js → chunk-K6CTN5TU.js} +1 -1
  98. package/chunks/{chunk-G34IR3D6.js → chunk-KEIMKAM4.js} +26 -109
  99. package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
  100. package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
  101. package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
  102. package/chunks/chunk-LGO7DEXL.js +1186 -0
  103. package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
  104. package/chunks/{chunk-P5GGM4KS.js → chunk-MAQ2W4IF.js} +3 -3
  105. package/chunks/{chunk-RIEFGNTP.js → chunk-MVDPFLWM.js} +207 -43
  106. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  107. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  108. package/chunks/{chunk-BBWV7ONL.js → chunk-NEBSNUMX.js} +6 -6
  109. package/chunks/{chunk-3SGB2UHX.js → chunk-NENQE7VH.js} +23 -11
  110. package/chunks/{chunk-SJ3ZUWFK.js → chunk-NHDNYMBU.js} +4 -4
  111. package/chunks/{chunk-K2NQPH5D.js → chunk-OJEMXKA4.js} +3 -3
  112. package/chunks/{chunk-QP4C6WCE.js → chunk-PI6HYGBE.js} +2 -2
  113. package/chunks/{chunk-OIP7C4FE.js → chunk-PO6YCWIQ.js} +4 -4
  114. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  115. package/chunks/{chunk-4MQEPP3Y.js → chunk-PQZBDDNG.js} +5 -119
  116. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  117. package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
  118. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  119. package/chunks/{chunk-JSC3H3TD.js → chunk-RZKOA4JE.js} +14 -6
  120. package/chunks/{chunk-CPGJJJLU.js → chunk-SEDFP3ZI.js} +1 -1
  121. package/chunks/chunk-SEONHUS3.js +275 -0
  122. package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
  123. package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
  124. package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
  125. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  126. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  127. package/chunks/{chunk-BAJKAAOY.js → chunk-TGJ2PKCW.js} +4315 -1386
  128. package/chunks/{chunk-6LFTG244.js → chunk-TU6WVK67.js} +15 -5
  129. package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
  130. package/chunks/{chunk-CSMI4FP5.js → chunk-UAOTD2BN.js} +1 -1
  131. package/chunks/{chunk-CCBZDVUA.js → chunk-UI4DXRZW.js} +33 -20
  132. package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
  133. package/chunks/chunk-UVY67MSH.js +205 -0
  134. package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
  135. package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
  136. package/chunks/{chunk-Q26AYA62.js → chunk-VKCJPNGU.js} +2 -2
  137. package/chunks/{chunk-IOPCFOTF.js → chunk-VKIGT4OG.js} +2 -2
  138. package/chunks/{chunk-3DXFGHAJ.js → chunk-VNMZLAVG.js} +1 -1
  139. package/chunks/{chunk-FY76G3G5.js → chunk-W3CY4QIO.js} +4 -4
  140. package/chunks/{chunk-O2UN57NX.js → chunk-W4XG7IZ4.js} +19 -2
  141. package/chunks/{chunk-C6K43ZDE.js → chunk-W7HH77GN.js} +5 -5
  142. package/chunks/{chunk-2NYCN6F2.js → chunk-WD3WSEW3.js} +43 -26
  143. package/chunks/chunk-WLEYH7CD.js +332 -0
  144. package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
  145. package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
  146. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  147. package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
  148. package/chunks/{chunk-AGR5UROZ.js → chunk-YN44TEOZ.js} +17 -29
  149. package/chunks/{chunk-DZWPESIF.js → chunk-Z44FUM77.js} +3 -3
  150. package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
  151. package/chunks/{config-utils-BBOCOGZW.js → config-utils-NOCNFTQP.js} +42 -41
  152. package/chunks/{contextCommand-EET67MQ2.js → contextCommand-DH2NOQBI.js} +39 -40
  153. package/chunks/{core-runtime-677KFX6Q.js → core-runtime-OLW4OXMV.js} +43 -44
  154. package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-ZCGPQTIE.js} +37 -38
  155. package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
  156. package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-SHIU7MPJ.js} +36 -37
  157. package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-WECDBDF7.js} +45 -46
  158. package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-MX4OYXF3.js} +44 -45
  159. package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-73WXIKNL.js} +44 -45
  160. package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-BKS7O3D6.js} +36 -37
  161. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  162. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  163. package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
  164. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  165. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  166. package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
  167. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  168. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  169. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  170. package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-5NNZSVL7.js} +36 -37
  171. package/chunks/{edit-BSV6YRVW.js → edit-IGHPT4I2.js} +27 -28
  172. package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
  173. package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-LVTPJSAA.js} +32 -33
  174. package/chunks/{environment-MOZMPUHR.js → environment-HC2PPYDO.js} +40 -41
  175. package/chunks/{errors-DMPQVYJL.js → errors-VCWSG25A.js} +39 -40
  176. package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
  177. package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-RHI2K2O7.js} +27 -28
  178. package/chunks/{fast-path-773PV7PU.js → fast-path-IQNCJOPE.js} +4 -4
  179. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  180. package/chunks/{glob-CZHOWUEA.js → glob-EANAXPNR.js} +27 -28
  181. package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
  182. package/chunks/{grep-5GPICQBU.js → grep-3REG7TO6.js} +4 -2
  183. package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-PVVFLDQ4.js} +41 -42
  184. package/chunks/{i18n-B42HKHKH.js → i18n-VOKX5QIF.js} +38 -39
  185. package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
  186. package/chunks/{initializer-FB66WYR3.js → initializer-SZVVTGZL.js} +44 -45
  187. package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-R22453J5.js} +37 -38
  188. package/chunks/{list-2HWGSVRA.js → list-LK5M5W2N.js} +47 -48
  189. package/chunks/{gemini-IP4FJAP5.js → llm-6RQJUVIS.js} +89 -85
  190. package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-Q7JJDSJR.js} +25 -25
  191. package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KF2ZPSPG.js} +44 -45
  192. package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-SBCIJG2J.js} +307 -27
  193. package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-UG324XFY.js} +37 -38
  194. package/chunks/{mcp-QGG5NMJJ.js → mcp-PUSCFGS5.js} +44 -45
  195. package/chunks/{monitor-FI7PY36Z.js → monitor-RJW5AP64.js} +27 -28
  196. package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-OIXN4WSR.js} +82 -81
  197. package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-5MWEIMS2.js} +27 -28
  198. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  199. package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-AGTNYSCJ.js} +13 -15
  200. package/chunks/{pidfile-JMF2CLMY.js → pidfile-LTA6NT3P.js} +36 -37
  201. package/chunks/process-registry-OAEG6WGC.js +662 -0
  202. package/chunks/{processUtils-IQZBYWSB.js → processUtils-GY3Q66CJ.js} +2 -2
  203. package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-3QS6TCMF.js} +37 -38
  204. package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-NU6PCDA7.js} +31 -32
  205. package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
  206. package/chunks/{read-file-QE2B5FTX.js → read-file-DTQL5V62.js} +5 -5
  207. package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
  208. package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
  209. package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-PZ4BER55.js} +40 -41
  210. package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-A2FGBZGY.js} +7 -7
  211. package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-AESOSKFC.js} +271 -86
  212. package/chunks/{runtime-TTIGSBM4.js → runtime-YQHSEKG4.js} +49 -50
  213. package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-XG6KK6NY.js} +42 -43
  214. package/chunks/{scheduler-YRUG22M7.js → scheduler-I4WKXWRZ.js} +38 -39
  215. package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
  216. package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
  217. package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
  218. package/chunks/{serve-MXXCDAQN.js → serve-MQDTVC7X.js} +44 -45
  219. package/chunks/{server-DFUSSSHI.js → server-L5ETIKEW.js} +4153 -3351
  220. package/chunks/{session-3TEHNENZ.js → session-LKKXRUJM.js} +87 -86
  221. package/chunks/session-pr-refresh-5OWA6MC2.js +365 -0
  222. package/chunks/{settings-VOZYKLTT.js → settings-S6KG7JST.js} +43 -44
  223. package/chunks/{shell-6RTKZVMI.js → shell-JEQE5AHC.js} +27 -28
  224. package/chunks/{skill-FEOKFX26.js → skill-QEGMZXKI.js} +58 -14
  225. package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-EVY7QF4H.js} +44 -45
  226. package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-AQP72WPN.js} +38 -39
  227. package/chunks/{standalone-update-RGILUQVK.js → standalone-update-JUJA4BKV.js} +39 -40
  228. package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-5ZMSJZ3J.js} +408 -338
  229. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  230. package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
  231. package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
  232. package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
  233. package/chunks/{team-create-QYSWCYCL.js → team-create-ZEGP7KVD.js} +27 -28
  234. package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
  235. package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-SXWT2WZN.js} +27 -28
  236. package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-42B6N55E.js} +36 -37
  237. package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-DDYUBC25.js} +36 -37
  238. package/chunks/{tool-search-F2EMIAPV.js → tool-search-GDDBA4X4.js} +9 -9
  239. package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-6MYP4GBA.js} +40 -41
  240. package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-LPEIY3GE.js} +38 -39
  241. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  242. package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-BOIIZNT3.js} +6 -6
  243. package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-KSVHYJYE.js} +40 -41
  244. package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-43D2A4ZN.js} +46 -47
  245. package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-WSD4SOIM.js} +79 -78
  246. package/chunks/{version-ANP4TS6O.js → version-B4CM7RNG.js} +1 -1
  247. package/chunks/{web-fetch-QJADSAH3.js → web-fetch-MOHILUZL.js} +8 -10
  248. package/chunks/{web-search-7TTQKEKM.js → web-search-G4HIMY2V.js} +5 -7
  249. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  250. package/chunks/{workflow-5XN6XSOT.js → workflow-H3PCYU5F.js} +50 -60
  251. package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-AAX7VWMT.js} +48 -49
  252. package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-YTHZ6SL4.js} +1 -1
  253. package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-URHGBL4U.js} +40 -41
  254. package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-XJMSLRCU.js} +49 -53
  255. package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-JGEDANNT.js} +47 -48
  256. package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-ZHI5TDYB.js} +48 -49
  257. package/chunks/{write-file-GGRBB5TZ.js → write-file-5O4S63L6.js} +29 -30
  258. package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-N2IBUVXE.js} +5 -5
  259. package/cli.js +128 -91
  260. package/package.json +3 -3
  261. package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-OJQpqC9m.js} +1 -1
  262. package/web-shell/assets/{arc-BSTnk5pu.js → arc-BxH0YR17.js} +1 -1
  263. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-CxyWiGfF.js} +1 -1
  264. package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DukXbJQ7.js} +1 -1
  265. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-DvS1T6pK.js} +1 -1
  266. package/web-shell/assets/channel-Dbbg7P-u.js +1 -0
  267. package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-qvqfJ7VZ.js} +1 -1
  268. package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-BJ3kJYte.js} +1 -1
  269. package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BYPVESil.js} +1 -1
  270. package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-B4UYFElk.js} +1 -1
  271. package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-8zGKVNUU.js} +1 -1
  272. package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-CbaHONpI.js} +1 -1
  273. package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-f8kAjzlF.js} +1 -1
  274. package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-Dm8ahq7K.js} +1 -1
  275. package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-yrcLzv8z.js} +1 -1
  276. package/web-shell/assets/classDiagram-DTDB5LWJ-cDYs8iT0.js +1 -0
  277. package/web-shell/assets/classDiagram-v2-JRS7N3AN-cDYs8iT0.js +1 -0
  278. package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DN1C22IH.js} +1 -1
  279. package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-B2oF7XD_.js} +1 -1
  280. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DGgIKpiM.js} +1 -1
  281. package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-BHKawzoP.js} +1 -1
  282. package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-6UgKqreR.js} +1 -1
  283. package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-BXJbPJ6F.js} +1 -1
  284. package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-DVnYFPkS.js} +1 -1
  285. package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CjBoC0Rq.js} +1 -1
  286. package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-KZdUceQT.js} +1 -1
  287. package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-5UekGScM.js} +1 -1
  288. package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-TRWexoj1.js} +1 -1
  289. package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-Di5bhBVo.js} +1 -1
  290. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-DpJUJ8Dp.js} +1 -1
  291. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-b08xIx2C.js} +1 -1
  292. package/web-shell/assets/index-BvDpDHTN.css +36 -0
  293. package/web-shell/assets/index-Cg60lhnI.js +1913 -0
  294. package/web-shell/assets/{index-CBGz4Qjl.js → index-n6dFH09O.js} +1 -1
  295. package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-Cz14FAt7.js} +1 -1
  296. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7nxp2bIU.js} +1 -1
  297. package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-CjL47fk0.js} +1 -1
  298. package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-CWFl-mHs.js} +1 -1
  299. package/web-shell/assets/{layout-CEz_1L8z.js → layout-BUP1BcwB.js} +1 -1
  300. package/web-shell/assets/{linear-CBjTq9Hc.js → linear-CqbwqSbW.js} +1 -1
  301. package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-C_50HLol.js} +6 -6
  302. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-DbyD_AoU.js} +1 -1
  303. package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-VozWyqyY.js} +1 -1
  304. package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-O7EKamBL.js} +1 -1
  305. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-DOmPZxHg.js} +1 -1
  306. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-ElyfC2zE.js} +1 -1
  307. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-DbnqPbzR.js} +1 -1
  308. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-yPWliSHr.js} +1 -1
  309. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-BImQFomC.js} +1 -1
  310. package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-DEvqeEHo.js} +1 -1
  311. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-BbLtiF9u.js} +1 -1
  312. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DGtlzdpx.js +1 -0
  313. package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-RFewDF6v.js} +1 -1
  314. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-CITCVFdx.js +8 -0
  315. package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-DF4L3-UR.js} +1 -1
  316. package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-BtlSJXaA.js} +1 -1
  317. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-C8ogG8Fh.js} +1 -1
  318. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-C5QVfsGQ.js} +1 -1
  319. package/web-shell/index.html +3 -3
  320. package/chunks/chunk-7DJCPZE3.js +0 -945
  321. package/chunks/chunk-J2OSJFP3.js +0 -202
  322. package/chunks/chunk-K2OJUPOE.js +0 -78
  323. package/chunks/chunk-P3QQPMQA.js +0 -19
  324. package/chunks/chunk-T26EAKDL.js +0 -13
  325. package/chunks/process-registry-PMJOA5CO.js +0 -172
  326. package/web-shell/assets/channel-CENAhErJ.js +0 -1
  327. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
  328. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
  329. package/web-shell/assets/index-8hXIpvo4.js +0 -1865
  330. package/web-shell/assets/index-DclEv91i.css +0 -5
  331. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
  332. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
@@ -0,0 +1,332 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+
7
+ // packages/cli/src/config/top-level-options.ts
8
+ init_esbuild_shims();
9
+ var APPROVAL_MODES = [
10
+ "plan",
11
+ "default",
12
+ "auto-edit",
13
+ "auto",
14
+ "yolo"
15
+ ];
16
+ var APPROVAL_MODE_DESCRIPTIONS = {
17
+ plan: "Analyze only, do not modify files or execute commands",
18
+ default: "Require approval for file edits or shell commands",
19
+ "auto-edit": "Automatically approve file edits",
20
+ auto: "LLM classifier auto-approves safe actions, blocks risky ones",
21
+ yolo: "Automatically approve all tools"
22
+ };
23
+ var AUTH_TYPE_CHOICES = [
24
+ "openai",
25
+ "anthropic",
26
+ "qwen-oauth",
27
+ "gemini",
28
+ "vertex-ai"
29
+ ];
30
+ var TOP_LEVEL_USAGE = "Usage: qwen [options] [command]\n\nQwen Code - Launch an interactive CLI, use -p/--prompt for non-interactive mode";
31
+ var DEFAULT_COMMAND = "$0 [query..]";
32
+ var DEFAULT_COMMAND_DESC = "Launch Qwen Code CLI";
33
+ var QUERY_POSITIONAL = {
34
+ description: "Positional prompt. Defaults to one-shot; use -i/--prompt-interactive for interactive."
35
+ };
36
+ var TOP_LEVEL_GLOBAL_OPTIONS = {
37
+ telemetry: {
38
+ type: "boolean",
39
+ description: "Enable telemetry? This flag specifically controls if telemetry is sent. Other --telemetry-* flags set specific values but do not enable telemetry on their own."
40
+ },
41
+ "telemetry-target": {
42
+ type: "string",
43
+ choices: ["local", "gcp"],
44
+ description: "Set the telemetry target (local or gcp). Overrides settings files."
45
+ },
46
+ "telemetry-otlp-endpoint": {
47
+ type: "string",
48
+ description: "Set the OTLP endpoint for telemetry. Overrides environment variables and settings files."
49
+ },
50
+ "telemetry-otlp-protocol": {
51
+ type: "string",
52
+ choices: ["grpc", "http"],
53
+ description: "Set the OTLP protocol for telemetry (grpc or http). Overrides settings files."
54
+ },
55
+ "telemetry-log-prompts": {
56
+ type: "boolean",
57
+ description: "Enable or disable logging of user prompts for telemetry. Overrides settings files."
58
+ },
59
+ "telemetry-outfile": {
60
+ type: "string",
61
+ description: "Redirect all telemetry output to the specified file."
62
+ },
63
+ debug: {
64
+ alias: "d",
65
+ type: "boolean",
66
+ description: "Run in debug mode?",
67
+ default: false
68
+ },
69
+ bare: {
70
+ type: "boolean",
71
+ description: "Minimal mode: skip implicit startup auto-discovery and only honor explicitly provided CLI inputs.",
72
+ default: false
73
+ },
74
+ "safe-mode": {
75
+ type: "boolean",
76
+ description: "Disable all customizations (context files, hooks, extensions, skills, MCP servers) for troubleshooting."
77
+ },
78
+ proxy: {
79
+ type: "string",
80
+ description: "Proxy for Qwen Code, like schema://user:password@host:port"
81
+ },
82
+ insecure: {
83
+ type: "boolean",
84
+ description: "Skip TLS certificate verification for API connections (for self-signed certs in trusted/lab environments). Equivalent to setting QWEN_TLS_INSECURE=1. WARNING: removes protection against man-in-the-middle attacks.",
85
+ default: false
86
+ },
87
+ "chat-recording": {
88
+ type: "boolean",
89
+ description: "Enable chat recording to disk. If false, chat history is not saved and --continue/--resume will not work."
90
+ }
91
+ };
92
+ var TOP_LEVEL_DEPRECATED_OPTIONS = {
93
+ telemetry: 'Use the "telemetry.enabled" setting in settings.json instead. This flag will be removed in a future version.',
94
+ "telemetry-target": 'Use the "telemetry.target" setting in settings.json instead. This flag will be removed in a future version.',
95
+ "telemetry-otlp-endpoint": 'Use the "telemetry.otlpEndpoint" setting in settings.json instead. This flag will be removed in a future version.',
96
+ "telemetry-otlp-protocol": 'Use the "telemetry.otlpProtocol" setting in settings.json instead. This flag will be removed in a future version.',
97
+ "telemetry-log-prompts": 'Use the "telemetry.logPrompts" setting in settings.json instead. This flag will be removed in a future version.',
98
+ "telemetry-outfile": 'Use the "telemetry.outfile" setting in settings.json instead. This flag will be removed in a future version.',
99
+ proxy: 'Use the "proxy" setting in settings.json instead. This flag will be removed in a future version.',
100
+ "sandbox-image": 'Use the "tools.sandboxImage" setting in settings.json instead. This flag will be removed in a future version.',
101
+ prompt: "Use the positional prompt instead. This flag will be removed in a future version."
102
+ };
103
+ var DEFAULT_COMMAND_OPTIONS = {
104
+ model: {
105
+ alias: "m",
106
+ type: "string",
107
+ description: "Model"
108
+ },
109
+ "fallback-model": {
110
+ type: "array",
111
+ description: "Fallback model(s) for capacity errors (429/503/529), repeatable or comma-separated (max 3)"
112
+ },
113
+ prompt: {
114
+ alias: "p",
115
+ type: "string",
116
+ description: "Prompt. Appended to input on stdin (if any)."
117
+ },
118
+ "prompt-interactive": {
119
+ alias: "i",
120
+ type: "string",
121
+ description: "Execute the provided prompt and continue in interactive mode"
122
+ },
123
+ "system-prompt": {
124
+ type: "string",
125
+ description: "Override the main session system prompt for this run. Can be combined with --append-system-prompt."
126
+ },
127
+ "append-system-prompt": {
128
+ type: "string",
129
+ description: "Append instructions to the main session system prompt for this run. Can be combined with --system-prompt."
130
+ },
131
+ sandbox: {
132
+ alias: "s",
133
+ type: "boolean",
134
+ description: "Run in sandbox?"
135
+ },
136
+ "sandbox-image": {
137
+ type: "string",
138
+ description: "Sandbox image URI."
139
+ },
140
+ yolo: {
141
+ alias: "y",
142
+ type: "boolean",
143
+ description: "Automatically accept all actions (aka YOLO mode, see https://www.youtube.com/watch?v=xvFZjo5PgG0 for more details)?",
144
+ default: false
145
+ },
146
+ "approval-mode": {
147
+ type: "string",
148
+ choices: APPROVAL_MODES,
149
+ description: `Set the approval mode: ${APPROVAL_MODES.map(
150
+ (mode) => `${mode} (${APPROVAL_MODE_DESCRIPTIONS[mode]})`
151
+ ).join(", ")}`
152
+ },
153
+ acp: {
154
+ type: "boolean",
155
+ description: "Starts the agent in ACP mode"
156
+ },
157
+ "experimental-lsp": {
158
+ type: "boolean",
159
+ description: "Enable experimental LSP (Language Server Protocol) feature for code intelligence",
160
+ default: false
161
+ },
162
+ "restore-ask-user-question": {
163
+ type: "boolean",
164
+ description: "On daemon session load/resume, re-hang a trailing unanswered ask_user_question instead of synthesizing a failed tool result",
165
+ default: false
166
+ },
167
+ channel: {
168
+ type: "string",
169
+ choices: ["VSCode", "ACP", "SDK", "CI", "desktop", "daemon"],
170
+ description: "Channel identifier (VSCode, ACP, SDK, CI, desktop, daemon)"
171
+ },
172
+ "allowed-mcp-server-names": {
173
+ type: "array",
174
+ description: "Allowed MCP server names"
175
+ },
176
+ "mcp-config": {
177
+ type: "string",
178
+ description: 'MCP server configuration as JSON string or file path. Can be a path to a JSON file or inline JSON with {"mcpServers": {...}} format.'
179
+ },
180
+ "allowed-tools": {
181
+ type: "array",
182
+ // Pre-PR the default-command builder registered this option twice and
183
+ // yargs rendered the LAST registration's description; keep that wording
184
+ // so the consolidated help output is unchanged.
185
+ description: "Tools to allow, will bypass confirmation"
186
+ },
187
+ extensions: {
188
+ alias: "e",
189
+ type: "array",
190
+ description: "A list of extensions to use. If not provided, all extensions are used."
191
+ },
192
+ "list-extensions": {
193
+ alias: "l",
194
+ type: "boolean",
195
+ description: "List all available extensions and exit."
196
+ },
197
+ "include-directories": {
198
+ alias: "add-dir",
199
+ type: "array",
200
+ description: "Additional directories to include in the workspace (comma-separated or multiple --include-directories)"
201
+ },
202
+ "openai-logging": {
203
+ type: "boolean",
204
+ description: "Enable logging of OpenAI API calls for debugging and analysis"
205
+ },
206
+ "openai-logging-dir": {
207
+ type: "string",
208
+ description: "Custom directory path for OpenAI API logs. Overrides settings files."
209
+ },
210
+ "openai-api-key": {
211
+ type: "string",
212
+ description: "OpenAI API key to use for authentication"
213
+ },
214
+ "openai-base-url": {
215
+ type: "string",
216
+ description: "OpenAI base URL (for custom endpoints)"
217
+ },
218
+ "screen-reader": {
219
+ type: "boolean",
220
+ description: "Enable screen reader mode for accessibility."
221
+ },
222
+ "input-format": {
223
+ type: "string",
224
+ choices: ["text", "stream-json"],
225
+ description: "The format consumed from standard input.",
226
+ default: "text"
227
+ },
228
+ "output-format": {
229
+ alias: "o",
230
+ type: "string",
231
+ description: "The format of the CLI output.",
232
+ choices: ["text", "json", "stream-json"]
233
+ },
234
+ "include-partial-messages": {
235
+ type: "boolean",
236
+ description: "Include partial assistant messages when using stream-json output.",
237
+ default: false
238
+ },
239
+ "json-fd": {
240
+ type: "number",
241
+ description: "File descriptor for structured JSON event output (dual output mode). The TUI renders normally on stdout while JSON events are written to this fd. The caller must provide this fd via spawn stdio configuration."
242
+ },
243
+ "json-file": {
244
+ type: "string",
245
+ description: "File path for structured JSON event output (dual output mode). Can be a regular file, FIFO (named pipe), or /dev/fd/N."
246
+ },
247
+ "json-schema": {
248
+ type: "string",
249
+ description: 'JSON Schema that the model\'s final output must conform to (headless mode only). Accepts a JSON literal or "@path/to/schema.json". Registers a synthetic `structured_output` tool; the session ends on the first valid call.'
250
+ },
251
+ "input-file": {
252
+ type: "string",
253
+ description: "File path for receiving remote input commands (bidirectional sync). An external process writes JSONL commands; the TUI watches and processes them."
254
+ },
255
+ continue: {
256
+ alias: "c",
257
+ type: "boolean",
258
+ description: "Resume the most recent session for the current project.",
259
+ default: false
260
+ },
261
+ resume: {
262
+ alias: "r",
263
+ type: "string",
264
+ description: "Resume a specific session by its ID. Use without an ID to show session picker."
265
+ },
266
+ "session-id": {
267
+ type: "string",
268
+ description: "Specify a session ID for this run."
269
+ },
270
+ "fork-session": {
271
+ type: "boolean",
272
+ description: "Create a new forked session from the resumed session. Must be used with --resume or --continue.",
273
+ default: false
274
+ },
275
+ worktree: {
276
+ type: "string",
277
+ description: "Start the session inside a git worktree at <repoRoot>/.qwen/worktrees/<slug>/. Pass a slug (`--worktree my-feature`), a PR reference (`--worktree=#123` or a full GitHub pull-request URL), or use bare `--worktree` to auto-generate a slug. On exit, the WorktreeExitDialog prompts to keep or remove the worktree."
278
+ },
279
+ "max-session-turns": {
280
+ type: "number",
281
+ description: "Maximum number of session turns (must be an integer)"
282
+ },
283
+ "max-wall-time": {
284
+ type: "string",
285
+ description: "Run-level wall-clock budget for headless / unattended runs. Accepts seconds (e.g. `90`), or a duration string with unit (e.g. `30s`, `5m`, `1h`, `1.5h`). Minimum 1s \u2014 sub-second values (`500ms`, `0.5`) are rejected as typos; max ~24 days. Aborts the run with exit code 55 when exceeded."
286
+ },
287
+ "max-tool-calls": {
288
+ type: "number",
289
+ description: 'Maximum cumulative tool calls executed during the run (success or failure; `structured_output` under --json-schema is exempt). Aborts with exit code 55 when exceeded. -1 / unset means no limit; 0 means "no tool calls allowed" (first call aborts). Capped at 1,000,000 to catch typos.'
290
+ },
291
+ "max-subagent-depth": {
292
+ type: "number",
293
+ description: "Maximum sub-agent nesting depth (1-based levels). 1 keeps sub-agents available but disables nesting; capped at 100. Overrides model.maxSubagentDepth from settings. Defaults to 5."
294
+ },
295
+ "core-tools": {
296
+ type: "array",
297
+ description: "Core tool paths"
298
+ },
299
+ "exclude-tools": {
300
+ type: "array",
301
+ description: "Tools to exclude"
302
+ },
303
+ "disabled-slash-commands": {
304
+ type: "array",
305
+ description: "Slash command names to hide/disable (comma-separated or repeated). Merged with the `slashCommands.disabled` setting and QWEN_DISABLED_SLASH_COMMANDS. Matched case-insensitively against the final command name."
306
+ },
307
+ "auth-type": {
308
+ type: "string",
309
+ choices: AUTH_TYPE_CHOICES,
310
+ description: "Authentication type"
311
+ }
312
+ };
313
+ var TOP_LEVEL_HELP_OPTIONS = Object.freeze([
314
+ ...Object.entries(TOP_LEVEL_GLOBAL_OPTIONS),
315
+ ...Object.entries(DEFAULT_COMMAND_OPTIONS)
316
+ ]);
317
+
318
+ export {
319
+ TOP_LEVEL_USAGE,
320
+ DEFAULT_COMMAND,
321
+ DEFAULT_COMMAND_DESC,
322
+ QUERY_POSITIONAL,
323
+ TOP_LEVEL_GLOBAL_OPTIONS,
324
+ TOP_LEVEL_DEPRECATED_OPTIONS,
325
+ DEFAULT_COMMAND_OPTIONS,
326
+ TOP_LEVEL_HELP_OPTIONS
327
+ };
328
+ /**
329
+ * @license
330
+ * Copyright 2026 Qwen Team
331
+ * SPDX-License-Identifier: Apache-2.0
332
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  hasControlCharacter
5
- } from "./chunk-6IUNAPLR.js";
5
+ } from "./chunk-K5KXUXWC.js";
6
6
  import {
7
7
  BaseDeclarativeTool,
8
8
  BaseToolInvocation,
@@ -36,6 +36,11 @@ var FINDING_SOURCES = [
36
36
  "probe",
37
37
  "lint"
38
38
  ];
39
+ var FINDING_DIRECTIONS = [
40
+ "certifies-falsely",
41
+ "fails-closed"
42
+ ];
43
+ var FINDING_BASELINES = ["regression", "new-surface"];
39
44
  var REPORT_FINDINGS_LEVELS = ["low", "medium", "high"];
40
45
  var REPORT_FINDINGS_MAX = 50;
41
46
  var SHORT_SUMMARY_MAX = 60;
@@ -53,7 +58,7 @@ function compressFindingSummary(summary, max = SHORT_SUMMARY_MAX) {
53
58
  return `${cut.trimEnd()}\u2026`;
54
59
  }
55
60
  __name(compressFindingSummary, "compressFindingSummary");
56
- var DESCRIPTION = `Reports code-review findings as typed data so clients (the terminal UI, the Web Shell, ACP hosts) can render a per-finding list. Use it only when an active review flow (such as the bundled review skill) instructs you to report findings with it; otherwise present findings as ordinary text. Call it once per report with the complete list, most severe first \u2014 a later call replaces the whole list, it never appends. When the review wrote a findings artifact, copy each field verbatim from it (id, severity, confidence, source, file/line, summary, shortSummary, failureScenario, category); do not re-derive or re-word values \u2014 the artifact is the oracle.
61
+ var DESCRIPTION = `Reports code-review findings as typed data so clients (the terminal UI, the Web Shell, ACP hosts) can render a per-finding list. Use it only when an active review flow (such as the bundled review skill) instructs you to report findings with it; otherwise present findings as ordinary text. Call it once per report with the complete list, most severe first \u2014 a later call replaces the whole list, it never appends. When the review wrote a findings artifact, copy each field verbatim from it (id, severity, confidence, source, file/line, summary, shortSummary, failureScenario, category, direction, baseline); do not re-derive or re-word values \u2014 the artifact is the oracle.
57
62
 
58
63
  After fixes are applied \u2014 at the review's own fix step, or ANY later time in the session a reported finding's disposition changes \u2014 call it again with the same findings, each carrying "outcome" ("fixed", "skipped", or "no_change_needed"; "outcomeNote" for the reason). Client per-finding status trusts only a call that carries outcomes, and a call where some findings carry an outcome and others do not is refused: account for every finding.
59
64
 
@@ -109,6 +114,16 @@ var FINDING_ITEM_SCHEMA = {
109
114
  maxLength: 64,
110
115
  description: 'Free-form kebab-case tag ("correctness", "security", "test-coverage", \u2026).'
111
116
  },
117
+ direction: {
118
+ type: "string",
119
+ enum: [...FINDING_DIRECTIONS],
120
+ description: 'Which way a Critical fails, from the artifact: "certifies-falsely" (a wrong result presented as correct) or "fails-closed" (refuses, wedges or degrades without a wrong result). Omit when the artifact carries none.'
121
+ },
122
+ baseline: {
123
+ type: "string",
124
+ enum: [...FINDING_BASELINES],
125
+ description: 'What a Critical is measured against, from the artifact: "regression" (the merge base handled the trigger correctly) or "new-surface" (the failing path does not exist at the merge base). Omit when the artifact carries none.'
126
+ },
112
127
  outcome: {
113
128
  type: "string",
114
129
  enum: [...FINDING_OUTCOMES],
@@ -172,6 +187,8 @@ function normalizeFinding(raw) {
172
187
  shortSummary: compressFindingSummary(shortSource),
173
188
  failureScenario: raw.failureScenario.trim(),
174
189
  ...raw.category?.trim() ? { category: raw.category.trim() } : {},
190
+ ...raw.direction ? { direction: raw.direction } : {},
191
+ ...raw.baseline ? { baseline: raw.baseline } : {},
175
192
  ...raw.outcome ? { outcome: raw.outcome } : {},
176
193
  ...raw.outcomeNote?.trim() ? { outcomeNote: raw.outcomeNote.trim() } : {}
177
194
  };
@@ -332,6 +349,8 @@ export {
332
349
  FINDING_CONFIDENCES,
333
350
  FINDING_OUTCOMES,
334
351
  FINDING_SOURCES,
352
+ FINDING_DIRECTIONS,
353
+ FINDING_BASELINES,
335
354
  REPORT_FINDINGS_LEVELS,
336
355
  REPORT_FINDINGS_MAX,
337
356
  SHORT_SUMMARY_MAX,
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  getTasksDir,
5
5
  sanitizeName
6
- } from "./chunk-SFPGAQUL.js";
6
+ } from "./chunk-42IDLQWS.js";
7
7
  import {
8
8
  require_proper_lockfile
9
9
  } from "./chunk-MLXTMF7H.js";
@@ -41,7 +41,9 @@ var MODALITY_PATTERNS = [
41
41
  [/^qwen3\.5-plus/, { image: true, video: true }],
42
42
  [/^qwen3\.6-plus/, { image: true, video: true }],
43
43
  [/^qwen3\.7-plus/, { image: true, video: true }],
44
- // Qwen Max models (3.8+): image support
44
+ // Qwen 3.8 series: flash/plus support image + video; max supports image only
45
+ [/^qwen3\.8-flash/, { image: true, video: true }],
46
+ [/^qwen3\.8-plus/, { image: true, video: true }],
45
47
  [/^qwen3\.8-max/, { image: true }],
46
48
  [/^coder-model$/, { image: true, video: true }],
47
49
  // Qwen VL (vision-language) models: image + video
@@ -53,13 +55,18 @@ var MODALITY_PATTERNS = [
53
55
  [/^qwen3\.6-35b/, { image: true, video: true }],
54
56
  [/^qwen/, {}],
55
57
  // -------------------
56
- // DeepSeek — text-only
58
+ // DeepSeek — text-only, except explicit vision variants
59
+ // (QwenLM/qwen-code#10270)
57
60
  // -------------------
61
+ [/^deepseek-.*vision/, { image: true }],
58
62
  [/^deepseek/, {}],
59
63
  // -------------------
60
- // Zhipu GLM
64
+ // Zhipu GLM — v-suffix ids are vision models; others are text-only
65
+ // (QwenLM/qwen-code#10270)
61
66
  // -------------------
62
- [/^glm-4\.5v/, { image: true }],
67
+ [/^glm-[0-9.]+v/, { image: true }],
68
+ // glm-5.3-flash natively integrates vision input (no v suffix)
69
+ [/^glm-5\.3-flash/, { image: true }],
63
70
  [/^glm-5(?:-|$)/, {}],
64
71
  [/^glm-/, {}],
65
72
  // -------------------
@@ -1,12 +1,12 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- resolveChannelCwd
5
- } from "./chunk-7JPW6IYH.js";
6
3
  import {
7
4
  getPlugin,
8
5
  supportedTypes
9
- } from "./chunk-5XBFCMWD.js";
6
+ } from "./chunk-3XKLXHGK.js";
7
+ import {
8
+ resolveChannelCwd
9
+ } from "./chunk-HVC3PNVC.js";
10
10
  import {
11
11
  APPROVAL_MODES
12
12
  } from "./chunk-V5J4J5TP.js";
@@ -57,6 +57,26 @@ function resolveOptionalStringField(channelName, rawConfig, field, envResolution
57
57
  }
58
58
  __name(resolveOptionalStringField, "resolveOptionalStringField");
59
59
  var KNOWN_CREDENTIAL_FIELDS = /* @__PURE__ */ new Set(["token", "clientId", "clientSecret"]);
60
+ function multiSessionCompatibilityError(name, config) {
61
+ if (!config.multiSession) return void 0;
62
+ if (config.sessionScope !== "user") {
63
+ return `Channel "${name}" requires sessionScope "user" when multiSession is enabled.`;
64
+ }
65
+ if (typeof config.groupHistoryLimit === "number" && config.groupHistoryLimit !== 0) {
66
+ return `Channel "${name}" cannot use groupHistoryLimit when multiSession is enabled.`;
67
+ }
68
+ for (const [groupId, group] of Object.entries(config.groups ?? {})) {
69
+ const groupHistoryLimit = group !== null && typeof group === "object" && !Array.isArray(group) ? group["groupHistoryLimit"] : void 0;
70
+ if (typeof groupHistoryLimit === "number" && groupHistoryLimit !== 0) {
71
+ return `Channel "${name}" group "${groupId}" cannot use groupHistoryLimit when multiSession is enabled.`;
72
+ }
73
+ }
74
+ if (config.webhooks !== void 0 && config.webhooks !== null) {
75
+ return `Channel "${name}" cannot use webhooks when multiSession is enabled.`;
76
+ }
77
+ return void 0;
78
+ }
79
+ __name(multiSessionCompatibilityError, "multiSessionCompatibilityError");
60
80
  function resolveConfigEnvVar(value, mode) {
61
81
  if (mode === false) return value;
62
82
  if (value.startsWith("$$")) return value.substring(1);
@@ -359,6 +379,21 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
359
379
  envResolution
360
380
  );
361
381
  const configuredSessionScope = rawConfig["sessionScope"] || plugin.defaultSessionScope || "user";
382
+ const multiSession = optionalBooleanField(
383
+ name,
384
+ "multiSession",
385
+ rawConfig["multiSession"]
386
+ );
387
+ const groups = rawConfig["groups"] || {};
388
+ const webhooks = parseWebhookConfig(name, rawConfig);
389
+ const multiSessionError = multiSessionCompatibilityError(name, {
390
+ multiSession,
391
+ sessionScope: configuredSessionScope,
392
+ groupHistoryLimit: rawConfig["groupHistoryLimit"],
393
+ groups,
394
+ webhooks
395
+ });
396
+ if (multiSessionError) throw new Error(multiSessionError);
362
397
  return {
363
398
  ...resolvedRawConfig,
364
399
  type: channelType,
@@ -368,6 +403,7 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
368
403
  senderPolicy: rawConfig["senderPolicy"] || "allowlist",
369
404
  allowedUsers: rawConfig["allowedUsers"] || [],
370
405
  sessionScope: configuredSessionScope,
406
+ multiSession,
371
407
  cwd: resolveChannelCwd(rawConfig["cwd"], defaultCwd),
372
408
  approvalMode: parseApprovalModeConfig(name, rawConfig),
373
409
  instructions: rawConfig["instructions"],
@@ -380,14 +416,15 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
380
416
  model: rawConfig["model"],
381
417
  groupPolicy: rawConfig["groupPolicy"] || "disabled",
382
418
  dmPolicy: rawConfig["dmPolicy"] || "open",
383
- groups: rawConfig["groups"] || {},
384
- webhooks: parseWebhookConfig(name, rawConfig)
419
+ groups,
420
+ webhooks
385
421
  };
386
422
  }
387
423
  __name(parseChannelConfig, "parseChannelConfig");
388
424
 
389
425
  export {
390
426
  resolveEnvVars,
427
+ multiSessionCompatibilityError,
391
428
  parseChannelWebhookConfig,
392
429
  parseChannelWebhookConfigLenient,
393
430
  parseChannelConfig
@@ -2,16 +2,17 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-LDP5OD6N.js";
5
+ } from "./chunk-CLWO3B77.js";
6
6
  import {
7
7
  computeThresholds,
8
+ estimateContextTextTokens,
8
9
  formatContextFileDisplayPath,
9
10
  getMainSessionBaseSystemPrompt
10
- } from "./chunk-TGWAQ5RB.js";
11
+ } from "./chunk-ECE3UYVO.js";
11
12
  import {
12
13
  DiscoveredMCPTool,
13
14
  uiTelemetryService
14
- } from "./chunk-L2M46FP5.js";
15
+ } from "./chunk-QYMAKPY5.js";
15
16
  import {
16
17
  DEFAULT_TOKEN_LIMIT
17
18
  } from "./chunk-FPGTNKCP.js";
@@ -38,21 +39,6 @@ function currentTier(tokens, thresholds) {
38
39
  return "safe";
39
40
  }
40
41
  __name(currentTier, "currentTier");
41
- function estimateTokens(text) {
42
- if (!text || text.length === 0) return 0;
43
- let asciiChars = 0;
44
- let nonAsciiChars = 0;
45
- for (let i = 0; i < text.length; i++) {
46
- const charCode = text.charCodeAt(i);
47
- if (charCode < 128) {
48
- asciiChars++;
49
- } else {
50
- nonAsciiChars++;
51
- }
52
- }
53
- return Math.ceil(asciiChars / 4 + nonAsciiChars * 1.5);
54
- }
55
- __name(estimateTokens, "estimateTokens");
56
42
  function parseMemoryFiles(memoryContent, workingDir) {
57
43
  if (!memoryContent || memoryContent.trim().length === 0) return [];
58
44
  const results = [];
@@ -70,13 +56,13 @@ function parseMemoryFiles(memoryContent, workingDir) {
70
56
  path.resolve(workingDir, filePath),
71
57
  workingDir
72
58
  ),
73
- tokens: estimateTokens(content)
59
+ tokens: estimateContextTextTokens(content)
74
60
  });
75
61
  }
76
62
  if (results.length === 0 && memoryContent.trim().length > 0) {
77
63
  results.push({
78
64
  path: t("memory"),
79
- tokens: estimateTokens(memoryContent)
65
+ tokens: estimateContextTextTokens(memoryContent)
80
66
  });
81
67
  }
82
68
  return results;
@@ -86,17 +72,17 @@ async function collectContextData(config, showDetails) {
86
72
  const modelName = config.getModel() || "unknown";
87
73
  const contentGeneratorConfig = config.getContentGeneratorConfig();
88
74
  const contextWindowSize = contentGeneratorConfig.contextWindowSize ?? DEFAULT_TOKEN_LIMIT;
89
- const geminiClient = config.getGeminiClient?.();
90
- const activeChat = geminiClient?.isInitialized?.() ? geminiClient.getChat() : void 0;
75
+ const llmClient = config.getLlmClient?.();
76
+ const activeChat = llmClient?.isInitialized?.() ? llmClient.getChat() : void 0;
91
77
  const apiTotalTokens = activeChat ? activeChat.getLastPromptTokenCount() : uiTelemetryService.getLastPromptTokenCount();
92
78
  const apiCachedTokens = uiTelemetryService.getLastCachedContentTokenCount();
93
79
  const systemPromptText = getMainSessionBaseSystemPrompt(config);
94
- const systemPromptTokens = estimateTokens(systemPromptText);
80
+ const systemPromptTokens = estimateContextTextTokens(systemPromptText);
95
81
  const toolRegistry = config.getToolRegistry();
96
82
  const allTools = toolRegistry ? toolRegistry.getAllTools() : [];
97
83
  const toolDeclarations = toolRegistry ? toolRegistry.getFunctionDeclarations() : [];
98
84
  const toolsJsonStr = JSON.stringify(toolDeclarations);
99
- const allToolsTokens = estimateTokens(toolsJsonStr);
85
+ const allToolsTokens = estimateContextTextTokens(toolsJsonStr);
100
86
  const builtinTools = [];
101
87
  const mcpTools = [];
102
88
  for (const tool of allTools) {
@@ -104,7 +90,7 @@ async function collectContextData(config, showDetails) {
104
90
  continue;
105
91
  }
106
92
  const toolJsonStr = JSON.stringify(tool.schema);
107
- const tokens = estimateTokens(toolJsonStr);
93
+ const tokens = estimateContextTextTokens(toolJsonStr);
108
94
  if (tool instanceof DiscoveredMCPTool) {
109
95
  mcpTools.push({
110
96
  name: `${tool.serverName}__${tool.serverToolName || tool.name}`,
@@ -123,19 +109,19 @@ async function collectContextData(config, showDetails) {
123
109
  if (autoMemoryPrompt) {
124
110
  memoryFiles.push({
125
111
  path: t("auto memory"),
126
- tokens: estimateTokens(autoMemoryPrompt)
112
+ tokens: estimateContextTextTokens(autoMemoryPrompt)
127
113
  });
128
114
  }
129
115
  const memoryFilesTokens = memoryFiles.reduce((sum, f) => sum + f.tokens, 0);
130
116
  const skillTool = allTools.find((tool) => tool.name === ToolNames.SKILL);
131
- const skillToolDefinitionTokens = skillTool ? estimateTokens(JSON.stringify(skillTool.schema)) : 0;
117
+ const skillToolDefinitionTokens = skillTool ? estimateContextTextTokens(JSON.stringify(skillTool.schema)) : 0;
132
118
  const loadedSkillNames = skillTool && "getLoadedSkillNames" in skillTool ? skillTool.getLoadedSkillNames() : /* @__PURE__ */ new Set();
133
119
  const skillManager = config.getSkillManager();
134
120
  const skillConfigs = skillManager ? await skillManager.listSkills() : [];
135
121
  const disabledSkillNames = config.getDisabledSkillNames();
136
122
  let loadedBodiesTokens = 0;
137
123
  const skills = skillConfigs.map((skill) => {
138
- const listingTokens = estimateTokens(
124
+ const listingTokens = estimateContextTextTokens(
139
125
  `<skill>
140
126
  <name>
141
127
  ${skill.name}
@@ -152,7 +138,9 @@ ${skill.level}
152
138
  let bodyTokens;
153
139
  if (isLoaded && skill.body) {
154
140
  const baseDir = skill.filePath ? skill.filePath.replace(/\/[^/]+$/, "") : "";
155
- bodyTokens = estimateTokens(buildSkillLlmContent(baseDir, skill.body));
141
+ bodyTokens = estimateContextTextTokens(
142
+ buildSkillLlmContent(baseDir, skill.body)
143
+ );
156
144
  loadedBodiesTokens += bodyTokens;
157
145
  }
158
146
  return {
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  getUserSettingsPath,
5
5
  v1ToV2Migration
6
- } from "./chunk-F7TNAPZ4.js";
6
+ } from "./chunk-5SBVOOA2.js";
7
7
  import {
8
8
  getSystemDefaultsPath,
9
9
  getSystemSettingsPath
@@ -13,7 +13,7 @@ import {
13
13
  TrustLevel,
14
14
  getExplicitTrustLevel,
15
15
  getTrustedFoldersPath
16
- } from "./chunk-V4QXXQJ2.js";
16
+ } from "./chunk-H4LCV44K.js";
17
17
  import {
18
18
  require_strip_json_comments
19
19
  } from "./chunk-NPQ5ZKRP.js";
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-MR3PXB6E.js";
23
23
  import {
24
24
  ideContextStore
25
- } from "./chunk-TGWAQ5RB.js";
25
+ } from "./chunk-ECE3UYVO.js";
26
26
  import {
27
27
  init_esbuild_shims
28
28
  } from "./chunk-5O2XNYP6.js";