@qwen-code/qwen-code 0.23.1-preview.1 → 0.23.1

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 (351) hide show
  1. package/bundled/computer-use/SKILL.md +189 -116
  2. package/bundled/goal-draft/SKILL.md +23 -13
  3. package/bundled/qc-helper/docs/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +47 -1
  5. package/bundled/qc-helper/docs/configuration/settings.md +57 -7
  6. package/bundled/qc-helper/docs/conversations-recovery.md +102 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +26 -0
  8. package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
  9. package/bundled/qc-helper/docs/features/commands.md +71 -6
  10. package/bundled/qc-helper/docs/features/computer-use.md +9 -7
  11. package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
  12. package/bundled/qc-helper/docs/features/goals.md +15 -3
  13. package/bundled/qc-helper/docs/features/skills.md +40 -0
  14. package/bundled/qc-helper/docs/qwen-serve.md +19 -1
  15. package/chunks/{MaxSizedBox-5ARLO5PR.js → MaxSizedBox-UDO6Y7RB.js} +35 -36
  16. package/chunks/{StandaloneSessionPicker-T6B322CB.js → StandaloneSessionPicker-D4CUOO4H.js} +55 -56
  17. package/chunks/{acp-startup-profiler-6ULXXQMS.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
  18. package/chunks/{acpAgent-WTDEY5KD.js → acpAgent-KWLJFADK.js} +210 -131
  19. package/chunks/{agent-NXPUXEVZ.js → agent-GSUPGEOL.js} +24 -25
  20. package/chunks/{agent-headless-QQZTWOKO.js → agent-headless-HNYCQUJB.js} +24 -25
  21. package/chunks/{anthropicContentGenerator-6XDHXIII.js → anthropicContentGenerator-I7LQZH26.js} +30 -7
  22. package/chunks/{artifact-tool-DFVVJXL2.js → artifact-tool-P52OKKEF.js} +1 -1
  23. package/chunks/{askUserQuestion-GF7VQ44M.js → askUserQuestion-I5W5S3D6.js} +2 -2
  24. package/chunks/{bridge-OHY5OGOZ.js → bridge-B7CV6RVI.js} +40 -41
  25. package/chunks/{channel-management-service-ZDDG3G5S.js → channel-management-service-TRTLQTSV.js} +4 -4
  26. package/chunks/{channel-settings-store-7BJAS2SU.js → channel-settings-store-FW45IRUP.js} +46 -47
  27. package/chunks/{channel-worker-group-2ISMRENV.js → channel-worker-group-PIYPVCTF.js} +6 -6
  28. package/chunks/{channel-worker-manager-VSRPVPRH.js → channel-worker-manager-FQHEDTD2.js} +6 -6
  29. package/chunks/{channel-worker-supervisor-SRJBK72Z.js → channel-worker-supervisor-XJPZZ3VK.js} +3 -3
  30. package/chunks/{chunk-2WGJG2KW.js → chunk-25CBAK3H.js} +4 -4
  31. package/chunks/{chunk-XUSOYE2I.js → chunk-27LTEY6D.js} +1 -1
  32. package/chunks/{chunk-WTW36TJ3.js → chunk-2EKVPSIJ.js} +1 -1
  33. package/chunks/{chunk-NAKALAL4.js → chunk-2TMJRF46.js} +116 -15
  34. package/chunks/{chunk-E4L5BM2B.js → chunk-2YS3NU4A.js} +4 -4
  35. package/chunks/chunk-2Z3T52OC.js +82 -0
  36. package/chunks/{chunk-ER273QE6.js → chunk-2ZFO5JD7.js} +21 -4
  37. package/chunks/{chunk-WXC6OAWD.js → chunk-3BTHHXXE.js} +1 -1
  38. package/chunks/{chunk-GXZHYPHZ.js → chunk-3LPJ776W.js} +5 -2
  39. package/chunks/{chunk-XY3USGFE.js → chunk-3VDLQUR2.js} +1 -1
  40. package/chunks/{chunk-LK7S2D6V.js → chunk-3VWPPK5Q.js} +58 -4
  41. package/chunks/{chunk-IKLFS6SC.js → chunk-3YQMUBTS.js} +3 -3
  42. package/chunks/{chunk-P4RUUG64.js → chunk-45ROPFQY.js} +1 -1
  43. package/chunks/{chunk-W4LL5RZO.js → chunk-4ALNJDHL.js} +52 -13
  44. package/chunks/{chunk-D6PIMKY3.js → chunk-4VY3ITHR.js} +4 -4
  45. package/chunks/{chunk-H3UDNQLO.js → chunk-5CVY5Q2P.js} +3 -3
  46. package/chunks/{chunk-6UIACMGH.js → chunk-5DQ4YTIZ.js} +1 -1
  47. package/chunks/{chunk-P6LATTDG.js → chunk-5IL2BZHW.js} +3 -3
  48. package/chunks/{chunk-537SQ2AI.js → chunk-5WC2ECUK.js} +104 -16
  49. package/chunks/{chunk-HFTB354P.js → chunk-5Z4FCEPY.js} +60 -6
  50. package/chunks/{chunk-3K65MUKD.js → chunk-65I7S4Z3.js} +2 -1
  51. package/chunks/{chunk-AQ5NAGWI.js → chunk-66JBCTJF.js} +8 -7
  52. package/chunks/{chunk-54TF2ZIQ.js → chunk-6JXHO7LG.js} +3 -3
  53. package/chunks/{chunk-YCDL2SAS.js → chunk-6QILGINT.js} +2 -2
  54. package/chunks/{chunk-P5LDR7FI.js → chunk-6QV7Z74P.js} +3 -3
  55. package/chunks/{chunk-4HC4DYKN.js → chunk-6RZX2HIH.js} +1 -1
  56. package/chunks/{chunk-O45WBTNS.js → chunk-6SADVYQQ.js} +3 -3
  57. package/chunks/{chunk-KE3Q4JMY.js → chunk-6TPVIESH.js} +5 -7
  58. package/chunks/{chunk-2LD5U7Q3.js → chunk-6YEOCHSE.js} +29 -1
  59. package/chunks/{chunk-QWZOOIR3.js → chunk-75LBC7SV.js} +69 -12
  60. package/chunks/{chunk-7BZS4ZDV.js → chunk-7SL55L5H.js} +25 -18
  61. package/chunks/{chunk-O2GG7H4C.js → chunk-ARYNBBBM.js} +3 -3
  62. package/chunks/{chunk-CZACBHAW.js → chunk-B3EL44K3.js} +5 -5
  63. package/chunks/{chunk-VY6UVU7G.js → chunk-CABDNUJ4.js} +2 -2
  64. package/chunks/{chunk-RVNS7NWN.js → chunk-CALNF3Z3.js} +1 -1
  65. package/chunks/{chunk-MWHY26G3.js → chunk-CHVU543W.js} +1 -1
  66. package/chunks/{chunk-GZWW2QWR.js → chunk-CIKL2DQP.js} +2 -2
  67. package/chunks/{chunk-R355CUNQ.js → chunk-CLKE4IY3.js} +1 -77
  68. package/chunks/{chunk-MUZCSTOO.js → chunk-CRZBDVP2.js} +5 -4
  69. package/chunks/{chunk-SFMCYMVF.js → chunk-D6AQNMUA.js} +4 -4
  70. package/chunks/{chunk-D4CU6DKR.js → chunk-DO5SMV52.js} +10 -8
  71. package/chunks/{chunk-ZAZ3NFL6.js → chunk-DXQ6Z7AH.js} +315 -63
  72. package/chunks/{chunk-IXSGOSEG.js → chunk-DZ6D4B3K.js} +28 -25
  73. package/chunks/{chunk-GMNLYQOS.js → chunk-E6TI726I.js} +1 -1
  74. package/chunks/{chunk-JBTZUFR4.js → chunk-E7XSUYCZ.js} +6 -6
  75. package/chunks/{chunk-AHBLRVD5.js → chunk-EEKU6COG.js} +4 -4
  76. package/chunks/{chunk-47BZVBTE.js → chunk-EHTKOO6W.js} +4 -4
  77. package/chunks/{chunk-HJ34U5J4.js → chunk-ENZDGHGJ.js} +4 -4
  78. package/chunks/{chunk-IFD3BTEA.js → chunk-EOET4H7C.js} +3 -3
  79. package/chunks/{chunk-ZTAVGFKA.js → chunk-ERXNTINK.js} +1 -1
  80. package/chunks/{chunk-F47DITLZ.js → chunk-FAWTMDX7.js} +14 -0
  81. package/chunks/{chunk-KPXRFTT7.js → chunk-FETY36NQ.js} +1 -1
  82. package/chunks/{chunk-5JLQWQK6.js → chunk-FV4DM2M4.js} +2 -2
  83. package/chunks/{chunk-4F2QRVW6.js → chunk-FW4E4QPG.js} +1 -1
  84. package/chunks/{chunk-KJJPJYHI.js → chunk-FWRRUITH.js} +8 -8
  85. package/chunks/{chunk-4VUVBN3Y.js → chunk-G6UUOCUT.js} +87 -0
  86. package/chunks/{chunk-4JAGXZR3.js → chunk-GM44O6F7.js} +1 -1
  87. package/chunks/{chunk-4MCY33Y2.js → chunk-GNY7B3CA.js} +1 -1
  88. package/chunks/{chunk-VEFRT7NX.js → chunk-H3Q3RSKZ.js} +1 -1
  89. package/chunks/{chunk-43NOB5NM.js → chunk-HIXUUCGY.js} +188 -13
  90. package/chunks/{chunk-EJNYBDYC.js → chunk-HNLMYDQE.js} +1 -1
  91. package/chunks/{chunk-JOPC3FND.js → chunk-HUX2DOTF.js} +5 -5
  92. package/chunks/{chunk-GCFZ2LAX.js → chunk-HZ2HUXX7.js} +2 -2
  93. package/chunks/{chunk-CWNC7M73.js → chunk-IKG2YVRZ.js} +2 -2
  94. package/chunks/{chunk-L4R7BCVV.js → chunk-J3TJH52D.js} +1 -1
  95. package/chunks/{chunk-QMFOYPGV.js → chunk-J3VZF2AL.js} +2 -2
  96. package/chunks/{chunk-ZJ2LM2SI.js → chunk-JGDRB4FP.js} +104 -33
  97. package/chunks/{chunk-LMJQSPWB.js → chunk-KA5HR3G2.js} +1 -1
  98. package/chunks/{chunk-G34YLYCS.js → chunk-L7V52QEZ.js} +10 -10
  99. package/chunks/{chunk-GVVCLL2P.js → chunk-LNCNUMJ5.js} +451 -396
  100. package/chunks/{chunk-RDKXZ2LS.js → chunk-LYT2OU7D.js} +1 -1
  101. package/chunks/{chunk-SAZS4IWW.js → chunk-LZGFVUWZ.js} +3 -3
  102. package/chunks/{chunk-32YDNYXP.js → chunk-M73KHGNR.js} +13 -66
  103. package/chunks/{chunk-ADJD4LZF.js → chunk-MA5OUNN6.js} +1 -1
  104. package/chunks/{chunk-2RYWGYB3.js → chunk-MFYH2VXV.js} +3 -3
  105. package/chunks/{chunk-RPBMP6BN.js → chunk-MWIO7MF6.js} +3 -0
  106. package/chunks/{chunk-OECNP26L.js → chunk-N6S3NUYJ.js} +1 -1
  107. package/chunks/{chunk-5MTARK4Y.js → chunk-N7YQEKGX.js} +6 -6
  108. package/chunks/{chunk-XOVVCGZX.js → chunk-NB3NDQQK.js} +1 -1
  109. package/chunks/chunk-NOO4QFXM.js +171 -0
  110. package/chunks/{chunk-NGX4NUNP.js → chunk-O2FEO2CB.js} +131 -6
  111. package/chunks/{chunk-XHGGYCTA.js → chunk-O2JBJQCF.js} +1 -1
  112. package/chunks/{chunk-LPBQODMR.js → chunk-OESZTXTG.js} +4 -4
  113. package/chunks/{chunk-UKADFFL2.js → chunk-OFVAS4AR.js} +1 -1
  114. package/chunks/{chunk-TDP7UULF.js → chunk-OPMKGOLD.js} +1 -1
  115. package/chunks/{chunk-LDS57224.js → chunk-OWCFKIFQ.js} +1 -1
  116. package/chunks/{chunk-I72PHOKL.js → chunk-PDUMGZ2P.js} +1524 -1382
  117. package/chunks/{chunk-JRYL3T2O.js → chunk-PQSCGZT2.js} +1 -1
  118. package/chunks/{chunk-WEXA2DNG.js → chunk-PSPAM24S.js} +14 -0
  119. package/chunks/{chunk-UKKYOIVT.js → chunk-QAZ2MGYT.js} +2 -2
  120. package/chunks/{chunk-J3O5I5ZD.js → chunk-QK4K76T6.js} +3 -3
  121. package/chunks/{chunk-NUQFUXOG.js → chunk-QTNCGZHQ.js} +2 -0
  122. package/chunks/{chunk-5YY5MZT6.js → chunk-QZOXVQPK.js} +1 -1
  123. package/chunks/{chunk-QJVZLILI.js → chunk-R7OO56VZ.js} +1 -1
  124. package/chunks/{chunk-IQN2CCIE.js → chunk-RNYENHN5.js} +398 -55
  125. package/chunks/{chunk-64MQTIX7.js → chunk-RPFJJ33Z.js} +2 -2
  126. package/chunks/{chunk-4VZCORNT.js → chunk-RXT4QBDX.js} +1 -1
  127. package/chunks/{chunk-SN5FV4FY.js → chunk-S6QVI3MV.js} +3 -3
  128. package/chunks/{chunk-NXWYCSPL.js → chunk-SOA4HKRJ.js} +1 -1
  129. package/chunks/{chunk-JLWFGYXU.js → chunk-T2IHCZLS.js} +2 -2
  130. package/chunks/{chunk-DNPHKA72.js → chunk-TGC4264Q.js} +6 -6
  131. package/chunks/{chunk-PZV2FASB.js → chunk-TRWQQBVH.js} +1 -1
  132. package/chunks/{chunk-Y3ZKI4RQ.js → chunk-TWAMIEQ2.js} +85 -22
  133. package/chunks/{chunk-KK2GZGBK.js → chunk-TWWS7XUW.js} +14 -11
  134. package/chunks/{chunk-4IQKBLTQ.js → chunk-UHUT4IDM.js} +18 -9
  135. package/chunks/{chunk-BKNY7PDI.js → chunk-USN6VNTO.js} +1 -1
  136. package/chunks/{chunk-TMWB67LS.js → chunk-UXDVUFKU.js} +3 -3
  137. package/chunks/{chunk-HY3DXYZK.js → chunk-UYDQYDW2.js} +1 -1
  138. package/chunks/{chunk-3K456UJF.js → chunk-VF6D6EGV.js} +12 -4
  139. package/chunks/{chunk-PZUOHCWI.js → chunk-WAASYFPK.js} +2 -2
  140. package/chunks/{chunk-OHOO527W.js → chunk-WG7BL3FY.js} +52 -2
  141. package/chunks/{chunk-JPEAQJNS.js → chunk-WJDXKQIO.js} +1 -1
  142. package/chunks/{chunk-MNEYUNOE.js → chunk-WNISCNTA.js} +40 -2
  143. package/chunks/{chunk-Z6WZPXQH.js → chunk-WQMUGQ6G.js} +2 -2
  144. package/chunks/{chunk-N7VURC4O.js → chunk-WXFCI3O5.js} +2 -2
  145. package/chunks/{chunk-VU7O7CGQ.js → chunk-XDNFODER.js} +1 -1
  146. package/chunks/{chunk-N7EYO2E7.js → chunk-XQ4RDO5B.js} +1 -1
  147. package/chunks/{chunk-VDXYYVCD.js → chunk-XVTCSVBK.js} +579 -57
  148. package/chunks/{chunk-PTFFWTTO.js → chunk-XZ3Z43XL.js} +3 -3
  149. package/chunks/{chunk-QSC5YOEC.js → chunk-YAC7H4K3.js} +2 -2
  150. package/chunks/{chunk-43JNQAHO.js → chunk-YCEKI7QX.js} +51 -10
  151. package/chunks/{chunk-7IKXTGZT.js → chunk-YI2YCNSP.js} +1 -1
  152. package/chunks/{chunk-VUSSAGKI.js → chunk-YZTGGCEE.js} +10 -2
  153. package/chunks/{chunk-WR3SH3EY.js → chunk-ZNO5BUAD.js} +149 -66
  154. package/chunks/{chunk-URSCX7S7.js → chunk-ZPL2TZNA.js} +353 -11
  155. package/chunks/{chunk-UEZOXZNI.js → chunk-ZU2T5JIS.js} +804 -371
  156. package/chunks/{config-utils-QXDOTXEQ.js → config-utils-KTDSQ4MU.js} +39 -40
  157. package/chunks/{contextCommand-RN4KARWC.js → contextCommand-UQ3KRYGK.js} +37 -38
  158. package/chunks/{core-runtime-NAZCOKHB.js → core-runtime-JR34JAFH.js} +35 -36
  159. package/chunks/{create-sub-session-BCSM4WKB.js → create-sub-session-RGPJOI4S.js} +45 -40
  160. package/chunks/{create-sub-session-BQ3SE4TX.js → create-sub-session-TGIX63YU.js} +2 -2
  161. package/chunks/{cron-create-D6HQ7I7I.js → cron-create-GTPVMJCF.js} +1 -1
  162. package/chunks/{cron-delete-KK3D2SQV.js → cron-delete-ZBK27Z4K.js} +1 -1
  163. package/chunks/{cron-list-VBF3IZMF.js → cron-list-KTFKFDKC.js} +1 -1
  164. package/chunks/{daemon-LCUELM6E.js → daemon-UI6SQSBV.js} +1 -1
  165. package/chunks/{daemon-git-worktree-guard-3K5CAU36.js → daemon-git-worktree-guard-H3OA26KQ.js} +35 -36
  166. package/chunks/{daemon-status-provider-4X3ZZQTZ.js → daemon-status-provider-6WZLKSZU.js} +45 -46
  167. package/chunks/{daemon-trust-policy-R45CFUJA.js → daemon-trust-policy-3EDP2BYD.js} +42 -43
  168. package/chunks/{daemon-trust-policy-monitor-DSSFCO3K.js → daemon-trust-policy-monitor-CRHZPK52.js} +42 -43
  169. package/chunks/{deferred-core-runtime-UO2M6WYI.js → deferred-core-runtime-LO5NTQQ4.js} +35 -36
  170. package/chunks/{discovery-TUM3ZQ6U.js → discovery-XP4RMDUM.js} +4 -2
  171. package/chunks/{display-image-EVVTBVYE.js → display-image-CTNHJRZC.js} +4 -4
  172. package/chunks/{dist-SIHF5MU2.js → dist-24TCWK5H.js} +1 -1
  173. package/chunks/{dist-AFH3BMZZ.js → dist-5I4HLUTO.js} +1 -1
  174. package/chunks/{dist-3T5MDUHP.js → dist-FDISN4AK.js} +1 -1
  175. package/chunks/{dist-SB2XRXZA.js → dist-M4CBX53H.js} +1 -1
  176. package/chunks/{dist-UVHW2U56.js → dist-NQ2636VT.js} +1 -1
  177. package/chunks/{dist-PH5RSTEA.js → dist-OR2ZQTXZ.js} +1 -1
  178. package/chunks/{dist-MK5PPBRF.js → dist-STAGIFNB.js} +1099 -67
  179. package/chunks/{dist-R5Y34V6T.js → dist-WZTUKIDR.js} +2 -2
  180. package/chunks/{dist-QUU7TVE3.js → dist-XJ25G6OH.js} +1 -1
  181. package/chunks/{edit-VNBCTRWP.js → edit-LB7Z7XK5.js} +24 -25
  182. package/chunks/{en-JMR535HP.js → en-YJNRUQG4.js} +1 -1
  183. package/chunks/{enter-worktree-CEVK7MQ2.js → enter-worktree-YFTKHXHZ.js} +4 -4
  184. package/chunks/{enterPlanMode-4KMZMUIA.js → enterPlanMode-P6TVUFIY.js} +24 -25
  185. package/chunks/{environment-S2HYQDON.js → environment-QATJNNKI.js} +38 -39
  186. package/chunks/{errors-DAAN5TL7.js → errors-3XJ37PS2.js} +37 -38
  187. package/chunks/{exit-worktree-D3YE6MUN.js → exit-worktree-NF2XEMES.js} +5 -5
  188. package/chunks/{exitPlanMode-HR36HG3D.js → exitPlanMode-A3OKL5UO.js} +24 -25
  189. package/chunks/{fast-path-4IWSW3UV.js → fast-path-DBIT5YQQ.js} +3 -3
  190. package/chunks/{fast-path-settings-ISEJPRYE.js → fast-path-settings-SATXY3PD.js} +3 -3
  191. package/chunks/{glob-IZYB2XH2.js → glob-73EDTXUE.js} +24 -25
  192. package/chunks/{goal-tools-VGUPKQDJ.js → goal-tools-DFI6YMSD.js} +24 -25
  193. package/chunks/{grep-OUVLNXG7.js → grep-BLHF2S5D.js} +2 -2
  194. package/chunks/{handleAutoUpdate-D56FMDTW.js → handleAutoUpdate-2FUNJO3B.js} +38 -39
  195. package/chunks/{i18n-BKE5WO6T.js → i18n-FDIA6KFI.js} +38 -37
  196. package/chunks/{image-gen-SHVQ3XID.js → image-gen-XP4NNIYG.js} +5 -5
  197. package/chunks/{initializer-MS4SGEHF.js → initializer-4MJTJOTW.js} +42 -43
  198. package/chunks/{installationInfo-542MGC4S.js → installationInfo-232RA2OK.js} +35 -36
  199. package/chunks/{list-H6XTKUWL.js → list-WN6WSGEB.js} +45 -46
  200. package/chunks/{list-agents-ULYBGJXC.js → list-agents-I5TRH3J7.js} +2 -2
  201. package/chunks/{llm-3NUC4EJY.js → llm-UDFWQWZA.js} +77 -78
  202. package/chunks/{llm-content-generator-R4NL3OQN.js → llm-content-generator-VLMZ2A7A.js} +23 -8
  203. package/chunks/{loadedSettingsAdapter-3XLKYDVT.js → loadedSettingsAdapter-OBQEIXM7.js} +42 -43
  204. package/chunks/{loggingContentGenerator-ZYSWVNEO.js → loggingContentGenerator-RGVUMUVX.js} +26 -27
  205. package/chunks/{loop-wakeup-B27BEYRL.js → loop-wakeup-HL6XOWI4.js} +2 -2
  206. package/chunks/{ls-3IIMMVKF.js → ls-YV7RKLKY.js} +1 -1
  207. package/chunks/{lsp-VJAT7XKS.js → lsp-NO3AMRZT.js} +1 -1
  208. package/chunks/{managed-npm-update-L2I53ZAI.js → managed-npm-update-QBAJYCFU.js} +35 -36
  209. package/chunks/{mcp-4PIXQASW.js → mcp-OTIZZCPY.js} +42 -43
  210. package/chunks/{monitor-O2YQTOZZ.js → monitor-BV5XF6LL.js} +24 -25
  211. package/chunks/{nonInteractiveCli-LV7CDBA2.js → nonInteractiveCli-W6MUKDVJ.js} +79 -77
  212. package/chunks/{notebook-edit-4RE2ALH4.js → notebook-edit-HGBEKGTE.js} +24 -25
  213. package/chunks/{openaiContentGenerator-7ND7K5CP.js → openaiContentGenerator-NSU3ERBH.js} +15 -15
  214. package/chunks/{pidfile-UFTLQ7NP.js → pidfile-LE3TU4GE.js} +35 -36
  215. package/chunks/{processUtils-3XBB4FYV.js → processUtils-YFBGJK67.js} +2 -2
  216. package/chunks/{prompt-terminal-ledger-2QASOGMM.js → prompt-terminal-ledger-4W4W7DSO.js} +36 -37
  217. package/chunks/{qwenContentGenerator-AELTUTH6.js → qwenContentGenerator-HTA57WFC.js} +28 -29
  218. package/chunks/{qwenOAuth2-BS5D2LYV.js → qwenOAuth2-KX6LVYQ3.js} +4 -4
  219. package/chunks/{read-file-PDWHZPHX.js → read-file-KHPQ2MB6.js} +4 -4
  220. package/chunks/{read-mcp-resource-YXJZ75UB.js → read-mcp-resource-D3N75DGF.js} +1 -1
  221. package/chunks/{record-artifact-WJDOV6XU.js → record-artifact-Q5CRGJTP.js} +2 -2
  222. package/chunks/{report-findings-Q4UACKWR.js → report-findings-TJ34R7QK.js} +3 -3
  223. package/chunks/{request-shutdown-2YZ3E3GH.js → request-shutdown-LRKMTBAD.js} +6 -6
  224. package/chunks/{resumeHistoryUtils-QRXZEEBA.js → resumeHistoryUtils-K7RV3QBN.js} +39 -40
  225. package/chunks/{ripGrep-KSOOLE6H.js → ripGrep-NBBVCMG4.js} +7 -7
  226. package/chunks/{run-qwen-serve-RTAREPT6.js → run-qwen-serve-A3JBOZCM.js} +58 -60
  227. package/chunks/{runtime-ESFSCJRZ.js → runtime-7YOU2KJ3.js} +47 -48
  228. package/chunks/{scheduled-tasks-6ZHRNBH6.js → scheduled-tasks-52LXK7LN.js} +42 -43
  229. package/chunks/{scheduler-DQI6KV7T.js → scheduler-J44M72VM.js} +37 -38
  230. package/chunks/{send-message-PQCVSVMN.js → send-message-AWKUDJBH.js} +8 -8
  231. package/chunks/{serve-FY7ZEW52.js → serve-TRC6XJUB.js} +42 -43
  232. package/chunks/{server-KNDY6K5F.js → server-YPNTJLX2.js} +1314 -841
  233. package/chunks/{session-MCEPXAZP.js → session-FMMIBFYX.js} +98 -84
  234. package/chunks/{session-attachments-root-OLNAE6GF.js → session-attachments-root-LDJMNK7K.js} +35 -36
  235. package/chunks/{session-pr-refresh-HKJHQQQK.js → session-pr-refresh-NLR4EK2J.js} +41 -42
  236. package/chunks/{settings-VXO4WBMK.js → settings-A46L577J.js} +41 -42
  237. package/chunks/{shell-U263OTES.js → shell-Q5LSQPPY.js} +24 -25
  238. package/chunks/{skill-SDODGBKL.js → skill-75KPJRCM.js} +10 -57
  239. package/chunks/{skill-settings-YEIA22QJ.js → skill-settings-775YT4YR.js} +41 -42
  240. package/chunks/{spawnChannel-4WJZVFPP.js → spawnChannel-XY73I5CU.js} +37 -38
  241. package/chunks/{standalone-update-ZWVQUO64.js → standalone-update-L46XXNQ2.js} +37 -38
  242. package/chunks/{start-opentui-ui-BFYCJQRZ.js → start-opentui-ui-WLV43247.js} +2007 -1003
  243. package/chunks/{startInteractiveUI-JYAFCMHL.js → startInteractiveUI-F5DKMLOV.js} +1231 -1528
  244. package/chunks/{syntheticOutput-AUAJBNXR.js → syntheticOutput-D2P5V6RG.js} +2 -2
  245. package/chunks/{task-create-LD5ISM3E.js → task-create-PMAFST2T.js} +7 -7
  246. package/chunks/{task-list-YISJ4RJA.js → task-list-R2HSY2NC.js} +1 -1
  247. package/chunks/{task-stop-65ZOVATJ.js → task-stop-BFSKRTGV.js} +1 -1
  248. package/chunks/{task-update-AAN4ZVEY.js → task-update-JYC57USF.js} +7 -7
  249. package/chunks/{team-create-KU7MABNO.js → team-create-2PATB77U.js} +24 -25
  250. package/chunks/{team-delete-XFRRTJTT.js → team-delete-CBHVBTPB.js} +1 -1
  251. package/chunks/{team-plan-approval-DPB377A3.js → team-plan-approval-QTANEWOS.js} +24 -25
  252. package/chunks/{terminal-image-renderer-WGWRENOF.js → terminal-image-renderer-OGULCFNF.js} +37 -38
  253. package/chunks/{theme-manager-GBUFULSO.js → theme-manager-CNO3QERP.js} +35 -36
  254. package/chunks/{todoWrite-G7NT4IFP.js → todoWrite-5ERKFWAK.js} +3 -5
  255. package/chunks/{tool-search-6YUXHBPT.js → tool-search-VXWEOZE7.js} +9 -9
  256. package/chunks/{total-session-admission-54R2JQ5L.js → total-session-admission-4KAADZPB.js} +41 -42
  257. package/chunks/{trustedFolders-KAJIDJTH.js → trustedFolders-PPJSOPOT.js} +36 -37
  258. package/chunks/{update-relaunch-XM4IWBFD.js → update-relaunch-4PT4MW7B.js} +5 -5
  259. package/chunks/{updateCheck-W6UZFURI.js → updateCheck-WAVFLWNG.js} +37 -38
  260. package/chunks/{useAutoAcceptIndicator-LAWYHY3U.js → useAutoAcceptIndicator-XNED4NRB.js} +44 -45
  261. package/chunks/{validateNonInterActiveAuth-7WCKHRN2.js → validateNonInterActiveAuth-J676DUQ2.js} +74 -74
  262. package/chunks/{version-3ZU43RJ6.js → version-J6SRRQB2.js} +1 -1
  263. package/chunks/{web-fetch-QHI2SQL4.js → web-fetch-FMZZYX44.js} +7 -7
  264. package/chunks/{web-search-3KZZKWNY.js → web-search-3G2KXCX5.js} +19 -8
  265. package/chunks/{workflow-HRW7Y2X4.js → workflow-PPZZICQ7.js} +26 -27
  266. package/chunks/{workspace-providers-status-KTGCWCPC.js → workspace-providers-status-IIYTAQST.js} +46 -47
  267. package/chunks/{workspace-registration-store-LHLPPWNE.js → workspace-registration-store-VHCDXAV7.js} +1 -1
  268. package/chunks/{workspace-registry-X34MLN52.js → workspace-registry-I7VQIPS2.js} +41 -42
  269. package/chunks/{workspace-runtime-coordinator-U4PW4P7K.js → workspace-runtime-coordinator-DBGNY32G.js} +41 -42
  270. package/chunks/{workspace-service-KD7BCGYL.js → workspace-service-QSKB2T54.js} +47 -48
  271. package/chunks/{workspace-skills-status-YJGO6Y3T.js → workspace-skills-status-T7GPT65J.js} +43 -44
  272. package/chunks/{workspace-trust-reconciler-EUYHISCH.js → workspace-trust-reconciler-2PKRDAU4.js} +48 -49
  273. package/chunks/{write-file-EBSB34NJ.js → write-file-L76CGFTQ.js} +26 -27
  274. package/chunks/{zh-TW-W2GNP2IU.js → zh-TW-N2TBF2F2.js} +1 -1
  275. package/chunks/{zh-DVFYHRK5.js → zh-VBFCRQBL.js} +1 -1
  276. package/chunks/{zoom-image-UJ5VKWKP.js → zoom-image-TDJJY2VZ.js} +4 -4
  277. package/cli.js +13 -13
  278. package/export-transcript-document.js +126 -122
  279. package/locales/en.js +2 -2
  280. package/locales/zh-TW.js +2 -2
  281. package/locales/zh.js +2 -2
  282. package/package.json +3 -3
  283. package/web-shell/assets/{abnfDiagram-VCTEODGH-Dur--luQ.js → abnfDiagram-VCTEODGH-DHc6plZn.js} +1 -1
  284. package/web-shell/assets/{arc-tYLobxFi.js → arc-BQ9m8TDV.js} +1 -1
  285. package/web-shell/assets/{architectureDiagram-5GKGNRK7-IG6aXD03.js → architectureDiagram-5GKGNRK7-D5ap3oVB.js} +1 -1
  286. package/web-shell/assets/{blockDiagram-NRAW4CY4-C6eBSkfA.js → blockDiagram-NRAW4CY4-BIbnyNph.js} +1 -1
  287. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BrX3HJqB.js → c4Diagram-UCG6FXSJ-BRsdx_iG.js} +1 -1
  288. package/web-shell/assets/channel-uMMdTrYk.js +1 -0
  289. package/web-shell/assets/{chunk-2Q5K7J3B-B3fcJ8ee.js → chunk-2Q5K7J3B-3lf1fNlx.js} +1 -1
  290. package/web-shell/assets/{chunk-5VM5RSS4-CeC90yKM.js → chunk-5VM5RSS4-DP8VNRc4.js} +1 -1
  291. package/web-shell/assets/{chunk-F27PBJKO-CW44RVki.js → chunk-F27PBJKO-DrohDmZ6.js} +1 -1
  292. package/web-shell/assets/{chunk-G27WJ6UU-D1PAMukD.js → chunk-G27WJ6UU-UZ2QhSx6.js} +1 -1
  293. package/web-shell/assets/{chunk-JWPE2WC7-Dt3Y2Fvx.js → chunk-JWPE2WC7-BIMHVcZK.js} +1 -1
  294. package/web-shell/assets/{chunk-LCL6LL3I-CZHw2lLI.js → chunk-LCL6LL3I-izRxdSDd.js} +1 -1
  295. package/web-shell/assets/{chunk-POPQ4Y6H-ysNAdTGx.js → chunk-POPQ4Y6H-CXADD4PP.js} +1 -1
  296. package/web-shell/assets/{chunk-SVP7TREG-BdNXW6YQ.js → chunk-SVP7TREG-B96d8Y_1.js} +1 -1
  297. package/web-shell/assets/{chunk-XXDRQBXY-DgqQ9UA8.js → chunk-XXDRQBXY-CF2sVQpv.js} +1 -1
  298. package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +1 -0
  299. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +1 -0
  300. package/web-shell/assets/{cose-bilkent-JH36ORCC-BILImXzJ.js → cose-bilkent-JH36ORCC-CT6tXVAS.js} +1 -1
  301. package/web-shell/assets/csv-CX7rUNeC.svg +1 -0
  302. package/web-shell/assets/{cynefin-OW5HDTMX-DR88Pund.js → cynefin-OW5HDTMX-X1NS4vtV.js} +1 -1
  303. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BYFbfkA6.js → cynefinDiagram-5FMLGOSQ-DNsKNOT4.js} +1 -1
  304. package/web-shell/assets/{dagre-3AP2YEHR-rfpyc6sX.js → dagre-3AP2YEHR-9-AHKqsb.js} +1 -1
  305. package/web-shell/assets/{diagram-S7CK7UJ4-BJxLmEwH.js → diagram-S7CK7UJ4-Bjgms7j6.js} +1 -1
  306. package/web-shell/assets/{diagram-UQ7AKVKN-H34xm7k3.js → diagram-UQ7AKVKN-h6bCprbE.js} +1 -1
  307. package/web-shell/assets/{diagram-VSXAHHWV-HYxhwNLx.js → diagram-VSXAHHWV-4SbQXVLt.js} +1 -1
  308. package/web-shell/assets/{diagram-VX7I27RA-BJazso8F.js → diagram-VX7I27RA-B5gPCzzB.js} +1 -1
  309. package/web-shell/assets/{diagram-Z3DM3KII-Clje1aNy.js → diagram-Z3DM3KII-DFJXIA3A.js} +1 -1
  310. package/web-shell/assets/{ebnfDiagram-PWID7BFC-M93YBkFh.js → ebnfDiagram-PWID7BFC-FwyaU7VY.js} +1 -1
  311. package/web-shell/assets/{erDiagram-SSCWMZ5O-DY8XzSHU.js → erDiagram-SSCWMZ5O-8vJQh2te.js} +1 -1
  312. package/web-shell/assets/{flowDiagram-A5DVABFB-CE6Aylcq.js → flowDiagram-A5DVABFB-BzA_1gMN.js} +1 -1
  313. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DI-5LL22.js → ganttDiagram-EL5Y4UJY-Co-ABbVX.js} +1 -1
  314. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C7BZWElk.js → gitGraphDiagram-WWUBYQGX-DW_FcyrX.js} +1 -1
  315. package/web-shell/assets/{index-DclFHns9.js → index-BbMXfhNG.js} +1 -1
  316. package/web-shell/assets/{index-CVyqwW7y.js → index-Bu-rZoJ-.js} +483 -475
  317. package/web-shell/assets/index-CsPwZ1ut.css +36 -0
  318. package/web-shell/assets/{infoDiagram-RXCK75RN-CGUSy4Pc.js → infoDiagram-RXCK75RN-BEgfhUFN.js} +1 -1
  319. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-B5BVks9q.js → ishikawaDiagram-5VMMS53U-DCsMxQmc.js} +1 -1
  320. package/web-shell/assets/{journeyDiagram-EYS64GPL-CFh6Tf7h.js → journeyDiagram-EYS64GPL-DyIEYoHz.js} +1 -1
  321. package/web-shell/assets/{kanban-definition-3QL26DDD-B7TlxP7c.js → kanban-definition-3QL26DDD-CkxjqCNr.js} +1 -1
  322. package/web-shell/assets/{layout-Br_pZq2Q.js → layout-BEWc0Al9.js} +1 -1
  323. package/web-shell/assets/{linear-BVlP6fte.js → linear-CNuNxirL.js} +1 -1
  324. package/web-shell/assets/{mermaid.core-TrcYWoiF.js → mermaid.core-DZBre674.js} +6 -6
  325. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BJ4LzqjZ.js → mindmap-definition-FBJOCRG2-CpafFz_F.js} +1 -1
  326. package/web-shell/assets/{pegDiagram-XKGWAZYB-1b_MxlOl.js → pegDiagram-XKGWAZYB-DfZqk_dq.js} +1 -1
  327. package/web-shell/assets/{pieDiagram-E7YTZNPT-B8zl0YhY.js → pieDiagram-E7YTZNPT-S0UWXlgC.js} +1 -1
  328. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CIZO8ukl.js → quadrantDiagram-AXDQQJYC-dd37_Ohj.js} +1 -1
  329. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CepHSbCj.js → railroadDiagram-O6MQD6OU-CH8NJZ7u.js} +1 -1
  330. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCgxkcSW.js → requirementDiagram-EFPCY7ZU-CFdqWYih.js} +1 -1
  331. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CE5CcoMM.js → sankeyDiagram-P5KCCOFB-CsddcEGD.js} +1 -1
  332. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DvgHi-d5.js → sequenceDiagram-WJ2MYXX4-BZ270mGw.js} +1 -1
  333. package/web-shell/assets/{sizeCapture-X5ZJPWSS-T-fAsCPX.js → sizeCapture-X5ZJPWSS-CGaS4DBV.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-HBIQ2CUA-DYHaul-5.js → stateDiagram-HBIQ2CUA-COpIzMu6.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +1 -0
  336. package/web-shell/assets/{swimlanes-XN3QIQJK-Dbz3Qiej.js → swimlanes-XN3QIQJK-CMF889m3.js} +1 -1
  337. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +8 -0
  338. package/web-shell/assets/{timeline-definition-24CTP7MA-9NVRts3N.js → timeline-definition-24CTP7MA-BelnxYz5.js} +1 -1
  339. package/web-shell/assets/{vennDiagram-4TSXK5OY-C7cb7vnH.js → vennDiagram-4TSXK5OY-CU-NRqIB.js} +1 -1
  340. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CG-8Ddjm.js → wardleyDiagram-VM6X3IG4-CDNKqWh-.js} +1 -1
  341. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-iGeYAcP4.js → xychartDiagram-S5SC5T6Z-CLqguL5D.js} +1 -1
  342. package/web-shell/index.html +6 -3
  343. package/chunks/chunk-3UMWOKJC.js +0 -78
  344. package/chunks/chunk-FKJM6JKY.js +0 -98
  345. package/chunks/chunk-IQAFKVXS.js +0 -22
  346. package/web-shell/assets/channel-uEkvKckd.js +0 -1
  347. package/web-shell/assets/classDiagram-DTDB5LWJ-DuPsnhWS.js +0 -1
  348. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DuPsnhWS.js +0 -1
  349. package/web-shell/assets/index-FO7JXPnH.css +0 -36
  350. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BcYho9a4.js +0 -1
  351. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6HsOIgX.js +0 -8
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-WZAD4ZNJ.js";
24
24
  import {
25
25
  SchemaValidator
26
- } from "./chunk-RPBMP6BN.js";
26
+ } from "./chunk-MWIO7MF6.js";
27
27
  import {
28
28
  createDebugLogger
29
29
  } from "./chunk-ZAFYHRVY.js";
@@ -37,6 +37,18 @@ function sessionCloseDrainBudgetMs(outerWaitMs) {
37
37
  return Math.max(1, Math.floor(outerWaitMs * 0.8));
38
38
  }
39
39
  __name(sessionCloseDrainBudgetMs, "sessionCloseDrainBudgetMs");
40
+ var ACTIVE_WORK_CLOSE_RETRY_GRACE = 1;
41
+ var ACTIVE_WORK_CLOSE_RETRY_BASE_MS = 6e4;
42
+ var ACTIVE_WORK_CLOSE_RETRY_CEILING_MS = 36e5;
43
+ function activeWorkCloseRetryDelayMs(failures) {
44
+ if (failures <= ACTIVE_WORK_CLOSE_RETRY_GRACE) return null;
45
+ const exponent = failures - ACTIVE_WORK_CLOSE_RETRY_GRACE - 1;
46
+ return Math.min(
47
+ ACTIVE_WORK_CLOSE_RETRY_BASE_MS * 2 ** exponent,
48
+ ACTIVE_WORK_CLOSE_RETRY_CEILING_MS
49
+ );
50
+ }
51
+ __name(activeWorkCloseRetryDelayMs, "activeWorkCloseRetryDelayMs");
40
52
  var ACTIVE_WORK_MAX_SNAPSHOT_SESSIONS = 1024;
41
53
  var ACTIVE_WORK_MAX_SESSION_HOLDS = 1024;
42
54
  var WORKTREE_MCP_DEFER_META_KEY = "qwen.session.deferMcpDiscovery";
@@ -45,6 +57,7 @@ var ACTIVE_WORK_HOLD_CATEGORIES = [
45
57
  "agent",
46
58
  "notification",
47
59
  "shell",
60
+ "session",
48
61
  "workflow"
49
62
  ];
50
63
  function clampActiveWorkIntervalMs(raw) {
@@ -106,6 +119,7 @@ export {
106
119
  ACTIVE_WORK_CLOSE_IF_UNHELD_PARAM,
107
120
  ACTIVE_WORK_CLOSE_TIMEOUT_MS,
108
121
  sessionCloseDrainBudgetMs,
122
+ activeWorkCloseRetryDelayMs,
109
123
  ACTIVE_WORK_MAX_SNAPSHOT_SESSIONS,
110
124
  ACTIVE_WORK_MAX_SESSION_HOLDS,
111
125
  WORKTREE_MCP_DEFER_META_KEY,
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  getCurrentAgentId
5
- } from "./chunk-VEFRT7NX.js";
5
+ } from "./chunk-H3Q3RSKZ.js";
6
6
  import {
7
7
  getTeammateContext,
8
8
  isTeammate
9
9
  } from "./chunk-S6LOFUVP.js";
10
10
  import {
11
11
  ToolNames
12
- } from "./chunk-RPBMP6BN.js";
12
+ } from "./chunk-MWIO7MF6.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -5,17 +5,17 @@ import {
5
5
  } from "./chunk-BHTYRHJF.js";
6
6
  import {
7
7
  STATUS_SCHEMA_VERSION
8
- } from "./chunk-KPXRFTT7.js";
8
+ } from "./chunk-FETY36NQ.js";
9
9
  import {
10
10
  resolveSkillSettings
11
11
  } from "./chunk-HWVUSYSN.js";
12
12
  import {
13
13
  loadSettings
14
- } from "./chunk-AQ5NAGWI.js";
14
+ } from "./chunk-66JBCTJF.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-I72PHOKL.js";
18
+ } from "./chunk-PDUMGZ2P.js";
19
19
  import {
20
20
  writeStderrLine
21
21
  } from "./chunk-7FA2II6K.js";
@@ -39,6 +39,8 @@ var PROJECT_ENV_HARDCODED_EXCLUSIONS = [
39
39
  "QWEN_RUNTIME_DIR",
40
40
  "QWEN_CODE_MCP_APPROVALS_PATH",
41
41
  "QWEN_CODE_TRUSTED_FOLDERS_PATH",
42
+ // Downloaded updates execute as the user; a project must not select them.
43
+ "QWEN_UPDATE_BASE_URL",
42
44
  // This points to a host temp file that carries build warnings. A project
43
45
  // `.env` must not redirect it to an arbitrary file to read or delete.
44
46
  "QWEN_CODE_WARNINGS_FILE",
@@ -568,7 +568,7 @@ var WorkspaceRegistrationStore = class {
568
568
  return removed;
569
569
  }
570
570
  async update(mutate) {
571
- const { atomicWriteFile } = await import("./deferred-core-runtime-UO2M6WYI.js");
571
+ const { atomicWriteFile } = await import("./deferred-core-runtime-LO5NTQQ4.js");
572
572
  return withInProcessLock(this.filePath, async () => {
573
573
  const lock = await acquireFileLock(this.filePath);
574
574
  let committed = false;
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-NYWWQ437.js";
6
6
  import {
7
7
  SessionNotFoundError
8
- } from "./chunk-F47DITLZ.js";
8
+ } from "./chunk-FAWTMDX7.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  ICON
5
- } from "./chunk-JBTZUFR4.js";
5
+ } from "./chunk-E7XSUYCZ.js";
6
6
  import {
7
7
  theme
8
8
  } from "./chunk-4LIPOIXS.js";
@@ -15,15 +15,15 @@ import {
15
15
  import {
16
16
  sanitizeForOsc,
17
17
  wrapForMultiplexer
18
- } from "./chunk-VU7O7CGQ.js";
18
+ } from "./chunk-XDNFODER.js";
19
19
  import {
20
20
  MAIN_SOURCE,
21
21
  uiTelemetryService
22
- } from "./chunk-P5LDR7FI.js";
22
+ } from "./chunk-6QV7Z74P.js";
23
23
  import {
24
24
  ToolDisplayNames,
25
25
  ToolNames
26
- } from "./chunk-RPBMP6BN.js";
26
+ } from "./chunk-MWIO7MF6.js";
27
27
  import {
28
28
  init_esbuild_shims
29
29
  } from "./chunk-5O2XNYP6.js";
@@ -427,6 +427,66 @@ function labelMayDeceive(label, url) {
427
427
  }
428
428
  __name(labelMayDeceive, "labelMayDeceive");
429
429
 
430
+ // packages/cli/src/ui/utils/displayUtils.ts
431
+ init_esbuild_shims();
432
+ function getArenaStatusLabel(status) {
433
+ switch (status) {
434
+ case "idle" /* IDLE */:
435
+ return { icon: "\u2713", text: "Idle", color: theme.status.success };
436
+ case "completed" /* COMPLETED */:
437
+ return { icon: "\u2713", text: "Done", color: theme.status.success };
438
+ case "cancelled" /* CANCELLED */:
439
+ return { icon: "\u2298", text: "Cancelled", color: theme.status.warning };
440
+ case "failed" /* FAILED */:
441
+ return { icon: "\u2717", text: "Failed", color: theme.status.error };
442
+ case "running" /* RUNNING */:
443
+ return {
444
+ icon: ICON.CIRCLE_EMPTY,
445
+ text: "Running",
446
+ color: theme.text.secondary
447
+ };
448
+ case "initializing" /* INITIALIZING */:
449
+ return {
450
+ icon: ICON.CIRCLE_EMPTY,
451
+ text: "Initializing",
452
+ color: theme.text.secondary
453
+ };
454
+ default:
455
+ return {
456
+ icon: ICON.CIRCLE_EMPTY,
457
+ text: status,
458
+ color: theme.text.secondary
459
+ };
460
+ }
461
+ }
462
+ __name(getArenaStatusLabel, "getArenaStatusLabel");
463
+ var TOOL_SUCCESS_RATE_HIGH = 95;
464
+ var TOOL_SUCCESS_RATE_MEDIUM = 85;
465
+ var USER_AGREEMENT_RATE_HIGH = 75;
466
+ var USER_AGREEMENT_RATE_MEDIUM = 45;
467
+ var getStatusColor = /* @__PURE__ */ __name((value, thresholds, options = {}) => {
468
+ if (value >= thresholds.green) {
469
+ return theme.status.success;
470
+ }
471
+ if (value >= thresholds.yellow) {
472
+ return theme.status.warning;
473
+ }
474
+ if (thresholds.red != null && value >= thresholds.red) {
475
+ return theme.status.error;
476
+ }
477
+ return options.defaultColor ?? theme.status.error;
478
+ }, "getStatusColor");
479
+ function formatDuration(ms) {
480
+ const totalSeconds = Math.round(ms / 1e3);
481
+ if (totalSeconds < 60) {
482
+ return `${totalSeconds}s`;
483
+ }
484
+ const minutes = Math.floor(totalSeconds / 60);
485
+ const seconds = totalSeconds % 60;
486
+ return seconds > 0 ? `${minutes}m ${seconds}s` : `${minutes}m`;
487
+ }
488
+ __name(formatDuration, "formatDuration");
489
+
430
490
  // packages/cli/src/ui/keyMatchers.ts
431
491
  init_esbuild_shims();
432
492
 
@@ -682,65 +742,335 @@ var TOOL_DISPLAY_BY_NAME = Object.fromEntries(
682
742
  ])
683
743
  );
684
744
 
685
- // packages/cli/src/ui/utils/displayUtils.ts
745
+ // packages/cli/src/ui/statusLinePresets.ts
686
746
  init_esbuild_shims();
687
- function getArenaStatusLabel(status) {
688
- switch (status) {
689
- case "idle" /* IDLE */:
690
- return { icon: "\u2713", text: "Idle", color: theme.status.success };
691
- case "completed" /* COMPLETED */:
692
- return { icon: "\u2713", text: "Done", color: theme.status.success };
693
- case "cancelled" /* CANCELLED */:
694
- return { icon: "\u2298", text: "Cancelled", color: theme.status.warning };
695
- case "failed" /* FAILED */:
696
- return { icon: "\u2717", text: "Failed", color: theme.status.error };
697
- case "running" /* RUNNING */:
698
- return {
699
- icon: ICON.CIRCLE_EMPTY,
700
- text: "Running",
701
- color: theme.text.secondary
702
- };
703
- case "initializing" /* INITIALIZING */:
704
- return {
705
- icon: ICON.CIRCLE_EMPTY,
706
- text: "Initializing",
707
- color: theme.text.secondary
708
- };
747
+ import nodePath from "node:path";
748
+ var STATUS_LINE_PRESET_ITEM_IDS = [
749
+ "project-name",
750
+ "git-branch",
751
+ "model-with-reasoning",
752
+ "model",
753
+ "context-remaining",
754
+ "total-input-tokens",
755
+ "total-output-tokens",
756
+ "current-dir",
757
+ "pull-request-number",
758
+ "branch-changes",
759
+ "context-used",
760
+ "run-state",
761
+ "qwen-version",
762
+ "context-window-size",
763
+ "used-tokens",
764
+ "session-id"
765
+ ];
766
+ function aggregateModelTokens(metrics) {
767
+ let totalInputTokens = 0;
768
+ let totalOutputTokens = 0;
769
+ for (const modelMetrics of Object.values(metrics.models)) {
770
+ totalInputTokens += modelMetrics.tokens.prompt;
771
+ totalOutputTokens += modelMetrics.tokens.candidates;
772
+ }
773
+ return { totalInputTokens, totalOutputTokens };
774
+ }
775
+ __name(aggregateModelTokens, "aggregateModelTokens");
776
+ var STATUS_LINE_PRESET_ITEMS = [
777
+ {
778
+ id: "project-name",
779
+ label: "project-name",
780
+ description: "Project name when available",
781
+ defaultSelected: true
782
+ },
783
+ {
784
+ id: "git-branch",
785
+ label: "git-branch",
786
+ description: "Current Git branch when available",
787
+ defaultSelected: true
788
+ },
789
+ {
790
+ id: "model-with-reasoning",
791
+ label: "model-with-reasoning",
792
+ description: "Current model name with reasoning level when available",
793
+ defaultSelected: true
794
+ },
795
+ {
796
+ id: "model",
797
+ label: "model-only",
798
+ description: "Current model name without reasoning level"
799
+ },
800
+ {
801
+ id: "context-remaining",
802
+ label: "context-remaining",
803
+ description: "Percentage of context window remaining"
804
+ },
805
+ {
806
+ id: "total-input-tokens",
807
+ label: "total-input-tokens",
808
+ description: "Total input tokens used in session"
809
+ },
810
+ {
811
+ id: "total-output-tokens",
812
+ label: "total-output-tokens",
813
+ description: "Total output tokens used in session"
814
+ },
815
+ {
816
+ id: "current-dir",
817
+ label: "current-dir",
818
+ description: "Current working directory"
819
+ },
820
+ {
821
+ id: "pull-request-number",
822
+ label: "pull-request-number",
823
+ description: "Open pull request number for the current branch"
824
+ },
825
+ {
826
+ id: "branch-changes",
827
+ label: "branch-changes",
828
+ description: "Session file changes added and removed"
829
+ },
830
+ {
831
+ id: "context-used",
832
+ label: "context-used",
833
+ description: "Percentage of context window used",
834
+ defaultSelected: true
835
+ },
836
+ {
837
+ id: "run-state",
838
+ label: "run-state",
839
+ description: "Compact session run-state text"
840
+ },
841
+ {
842
+ id: "qwen-version",
843
+ label: "qwen-version",
844
+ description: "Qwen Code application version"
845
+ },
846
+ {
847
+ id: "context-window-size",
848
+ label: "context-window-size",
849
+ description: "Total context window size in tokens"
850
+ },
851
+ {
852
+ id: "used-tokens",
853
+ label: "used-tokens",
854
+ description: "Current prompt tokens used"
855
+ },
856
+ {
857
+ id: "session-id",
858
+ label: "session-id",
859
+ description: "Current session identifier"
860
+ }
861
+ ];
862
+ var STATUS_LINE_PRESET_ITEM_ID_SET = new Set(
863
+ STATUS_LINE_PRESET_ITEM_IDS
864
+ );
865
+ function orderStatusLinePresetItems(items) {
866
+ const selectedItems = new Set(
867
+ items.filter(
868
+ (item) => typeof item === "string" && STATUS_LINE_PRESET_ITEM_ID_SET.has(item)
869
+ )
870
+ );
871
+ return STATUS_LINE_PRESET_ITEM_IDS.filter((item) => selectedItems.has(item));
872
+ }
873
+ __name(orderStatusLinePresetItems, "orderStatusLinePresetItems");
874
+ var DEFAULT_STATUS_LINE_PRESET_CONFIG = {
875
+ type: "preset",
876
+ useThemeColors: true,
877
+ items: orderStatusLinePresetItems(
878
+ STATUS_LINE_PRESET_ITEMS.filter((item) => item.defaultSelected).map(
879
+ (item) => item.id
880
+ )
881
+ )
882
+ };
883
+ function normalizeStatusLinePresetConfig(raw) {
884
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
885
+ return void 0;
886
+ }
887
+ const candidate = raw;
888
+ if (candidate["type"] !== "preset") {
889
+ return void 0;
890
+ }
891
+ const hasItemsArray = Array.isArray(candidate["items"]);
892
+ const items = hasItemsArray ? orderStatusLinePresetItems(candidate["items"]) : [];
893
+ return {
894
+ type: "preset",
895
+ useThemeColors: typeof candidate["useThemeColors"] === "boolean" ? candidate["useThemeColors"] : true,
896
+ items: hasItemsArray ? items : [...DEFAULT_STATUS_LINE_PRESET_CONFIG.items],
897
+ hideContextIndicator: typeof candidate["hideContextIndicator"] === "boolean" ? candidate["hideContextIndicator"] : void 0
898
+ };
899
+ }
900
+ __name(normalizeStatusLinePresetConfig, "normalizeStatusLinePresetConfig");
901
+ function formatPercent(value) {
902
+ if (!Number.isFinite(value)) {
903
+ return "0%";
904
+ }
905
+ const rounded = Math.round(value * 10) / 10;
906
+ return `${Number.isInteger(rounded) ? rounded.toFixed(0) : rounded}%`;
907
+ }
908
+ __name(formatPercent, "formatPercent");
909
+ function formatTokenCount(value) {
910
+ if (!Number.isFinite(value) || value <= 0) {
911
+ return "0";
912
+ }
913
+ if (value >= 1e6) {
914
+ return `${(value / 1e6).toFixed(1)}m`;
915
+ }
916
+ if (value >= 1e3) {
917
+ return `${(value / 1e3).toFixed(1)}k`;
918
+ }
919
+ return String(Math.round(value));
920
+ }
921
+ __name(formatTokenCount, "formatTokenCount");
922
+ function getRunStateLabel(state) {
923
+ switch (state) {
924
+ case "idle" /* Idle */:
925
+ return "Ready";
926
+ case "responding" /* Responding */:
927
+ return "Working";
928
+ case "waiting_for_confirmation" /* WaitingForConfirmation */:
929
+ return "Confirm";
709
930
  default:
710
- return {
711
- icon: ICON.CIRCLE_EMPTY,
712
- text: status,
713
- color: theme.text.secondary
714
- };
931
+ return "Working";
715
932
  }
716
933
  }
717
- __name(getArenaStatusLabel, "getArenaStatusLabel");
718
- var TOOL_SUCCESS_RATE_HIGH = 95;
719
- var TOOL_SUCCESS_RATE_MEDIUM = 85;
720
- var USER_AGREEMENT_RATE_HIGH = 75;
721
- var USER_AGREEMENT_RATE_MEDIUM = 45;
722
- var getStatusColor = /* @__PURE__ */ __name((value, thresholds, options = {}) => {
723
- if (value >= thresholds.green) {
724
- return theme.status.success;
934
+ __name(getRunStateLabel, "getRunStateLabel");
935
+ function stripProviderPrefix(name) {
936
+ return name.replace(/^\[[^\]]*\]\s*/, "");
937
+ }
938
+ __name(stripProviderPrefix, "stripProviderPrefix");
939
+ function formatModelWithReasoning(modelDisplayName, reasoning) {
940
+ const cleanName = stripProviderPrefix(modelDisplayName);
941
+ if (reasoning === false) {
942
+ return `${cleanName} reasoning off`;
725
943
  }
726
- if (value >= thresholds.yellow) {
727
- return theme.status.warning;
944
+ if (reasoning?.effort) {
945
+ return `${cleanName} ${reasoning.effort}`;
728
946
  }
729
- if (thresholds.red != null && value >= thresholds.red) {
730
- return theme.status.error;
947
+ return cleanName;
948
+ }
949
+ __name(formatModelWithReasoning, "formatModelWithReasoning");
950
+ function inferPullRequestNumber(branch) {
951
+ if (!branch) {
952
+ return void 0;
731
953
  }
732
- return options.defaultColor ?? theme.status.error;
733
- }, "getStatusColor");
734
- function formatDuration(ms) {
735
- const totalSeconds = Math.round(ms / 1e3);
736
- if (totalSeconds < 60) {
737
- return `${totalSeconds}s`;
954
+ const match = branch.match(
955
+ /(?:^|[/_-])(?:pr|pull|pull-request)[/_-]?#?(\d+)(?:$|[/_-])/i
956
+ );
957
+ return match?.[1];
958
+ }
959
+ __name(inferPullRequestNumber, "inferPullRequestNumber");
960
+ function buildStatusLinePresetData(params) {
961
+ const usedPercentage = params.contextWindowSize > 0 ? Math.min(
962
+ 100,
963
+ Math.max(
964
+ 0,
965
+ Math.round(
966
+ params.currentUsage / params.contextWindowSize * 1e3
967
+ ) / 10
968
+ )
969
+ ) : 0;
970
+ return {
971
+ sessionId: params.sessionId,
972
+ version: params.version || "unknown",
973
+ modelDisplayName: params.modelDisplayName || "unknown",
974
+ reasoning: params.reasoning,
975
+ currentDir: params.currentDir,
976
+ projectName: nodePath.basename(params.currentDir) || void 0,
977
+ branch: params.branch,
978
+ pullRequestNumber: params.pullRequestNumber,
979
+ contextWindowSize: params.contextWindowSize,
980
+ usedPercentage,
981
+ remainingPercentage: Math.round((100 - usedPercentage) * 10) / 10,
982
+ currentUsage: params.currentUsage,
983
+ totalInputTokens: params.totalInputTokens,
984
+ totalOutputTokens: params.totalOutputTokens,
985
+ totalLinesAdded: params.totalLinesAdded,
986
+ totalLinesRemoved: params.totalLinesRemoved,
987
+ streamingState: params.streamingState
988
+ };
989
+ }
990
+ __name(buildStatusLinePresetData, "buildStatusLinePresetData");
991
+ function formatPresetItem(item, data) {
992
+ switch (item) {
993
+ case "model-with-reasoning":
994
+ return formatModelWithReasoning(data.modelDisplayName, data.reasoning);
995
+ case "model":
996
+ return stripProviderPrefix(data.modelDisplayName);
997
+ case "context-remaining":
998
+ if (data.contextWindowSize > 0) {
999
+ return `Context ${formatPercent(data.remainingPercentage)} left`;
1000
+ }
1001
+ return void 0;
1002
+ case "current-dir":
1003
+ return data.currentDir;
1004
+ case "context-used":
1005
+ if (data.contextWindowSize > 0 && data.usedPercentage > 0) {
1006
+ return `${formatTokenCount(data.contextWindowSize)} Context ${formatPercent(data.usedPercentage)} used`;
1007
+ }
1008
+ return void 0;
1009
+ case "git-branch":
1010
+ if (data.branch) {
1011
+ return `git:(${data.branch})`;
1012
+ }
1013
+ return void 0;
1014
+ case "project-name":
1015
+ if (data.projectName) {
1016
+ return `\u279C ${data.projectName}`;
1017
+ }
1018
+ return void 0;
1019
+ case "pull-request-number": {
1020
+ const prNumber = data.pullRequestNumber ?? inferPullRequestNumber(data.branch);
1021
+ if (prNumber) {
1022
+ return `#${prNumber}`;
1023
+ }
1024
+ return void 0;
1025
+ }
1026
+ case "branch-changes":
1027
+ if (data.totalLinesAdded > 0 || data.totalLinesRemoved > 0) {
1028
+ return `+${data.totalLinesAdded} -${data.totalLinesRemoved}`;
1029
+ }
1030
+ return void 0;
1031
+ case "run-state":
1032
+ return getRunStateLabel(data.streamingState);
1033
+ case "qwen-version":
1034
+ return `v${data.version}`;
1035
+ case "context-window-size":
1036
+ if (data.contextWindowSize > 0) {
1037
+ return `${formatTokenCount(data.contextWindowSize)} window`;
1038
+ }
1039
+ return void 0;
1040
+ case "used-tokens":
1041
+ if (data.currentUsage > 0) {
1042
+ return `${formatTokenCount(data.currentUsage)} used`;
1043
+ }
1044
+ return void 0;
1045
+ case "total-input-tokens":
1046
+ return `${formatTokenCount(data.totalInputTokens)} total in`;
1047
+ case "total-output-tokens":
1048
+ return `${formatTokenCount(data.totalOutputTokens)} total out`;
1049
+ case "session-id":
1050
+ return data.sessionId || void 0;
1051
+ default: {
1052
+ item;
1053
+ return void 0;
1054
+ }
738
1055
  }
739
- const minutes = Math.floor(totalSeconds / 60);
740
- const seconds = totalSeconds % 60;
741
- return seconds > 0 ? `${minutes}m ${seconds}s` : `${minutes}m`;
742
1056
  }
743
- __name(formatDuration, "formatDuration");
1057
+ __name(formatPresetItem, "formatPresetItem");
1058
+ function buildStatusLinePresetParts(config, data) {
1059
+ const parts = [];
1060
+ for (const item of orderStatusLinePresetItems(config.items)) {
1061
+ const text = formatPresetItem(item, data);
1062
+ if (text) {
1063
+ parts.push(text);
1064
+ }
1065
+ }
1066
+ return parts;
1067
+ }
1068
+ __name(buildStatusLinePresetParts, "buildStatusLinePresetParts");
1069
+ function buildStatusLinePresetLines(config, data) {
1070
+ const line = buildStatusLinePresetParts(config, data).join(" \xB7 ");
1071
+ return line ? [line] : [];
1072
+ }
1073
+ __name(buildStatusLinePresetLines, "buildStatusLinePresetLines");
744
1074
 
745
1075
  // packages/cli/src/ui/utils/modelsBySource.ts
746
1076
  init_esbuild_shims();
@@ -821,7 +1151,15 @@ export {
821
1151
  TOOL_DISPLAY_BY_NAME,
822
1152
  SessionStatsProvider,
823
1153
  useSessionStats,
824
- flattenModelsBySource
1154
+ flattenModelsBySource,
1155
+ aggregateModelTokens,
1156
+ STATUS_LINE_PRESET_ITEMS,
1157
+ orderStatusLinePresetItems,
1158
+ DEFAULT_STATUS_LINE_PRESET_CONFIG,
1159
+ normalizeStatusLinePresetConfig,
1160
+ formatTokenCount,
1161
+ buildStatusLinePresetData,
1162
+ buildStatusLinePresetLines
825
1163
  };
826
1164
  /**
827
1165
  * @license
@@ -838,3 +1176,8 @@ export {
838
1176
  * Copyright 2025 Qwen Team
839
1177
  * SPDX-License-Identifier: Apache-2.0
840
1178
  */
1179
+ /**
1180
+ * @license
1181
+ * Copyright 2026 Qwen
1182
+ * SPDX-License-Identifier: Apache-2.0
1183
+ */
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-UKKYOIVT.js";
9
+ } from "./chunk-QAZ2MGYT.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-S6LOFUVP.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-RPBMP6BN.js";
18
+ } from "./chunk-MWIO7MF6.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-BKNY7PDI.js";
5
+ } from "./chunk-USN6VNTO.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -8,16 +8,16 @@ import {
8
8
  initializeI18n,
9
9
  resolveLanguageSetting,
10
10
  t
11
- } from "./chunk-MUZCSTOO.js";
11
+ } from "./chunk-CRZBDVP2.js";
12
12
  import {
13
13
  IdeClient
14
- } from "./chunk-I72PHOKL.js";
14
+ } from "./chunk-PDUMGZ2P.js";
15
15
  import {
16
16
  AuthEvent,
17
17
  IdeConnectionEvent,
18
18
  logAuth,
19
19
  logIdeConnection
20
- } from "./chunk-P5LDR7FI.js";
20
+ } from "./chunk-6QV7Z74P.js";
21
21
  import {
22
22
  getErrorMessage
23
23
  } from "./chunk-ZAFYHRVY.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  isPrivateHost
5
- } from "./chunk-UKADFFL2.js";
5
+ } from "./chunk-OFVAS4AR.js";
6
6
  import {
7
7
  loadUndici
8
8
  } from "./chunk-4HOEU2OR.js";