@qwen-code/qwen-code 0.21.13 → 0.21.14

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 (293) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +13 -7
  2. package/bundled/qc-helper/docs/features/code-review.md +5 -1
  3. package/bundled/qc-helper/docs/features/commands.md +120 -8
  4. package/bundled/qc-helper/docs/features/sub-agents.md +2 -2
  5. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
  6. package/bundled/qc-helper/docs/qwen-serve.md +20 -3
  7. package/bundled/review/SKILL.md +50 -30
  8. package/chunks/{MaxSizedBox-UQALOVVT.js → MaxSizedBox-67IDQILY.js} +24 -23
  9. package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-G4QJIRMH.js} +41 -40
  10. package/chunks/{acp-startup-profiler-NMDXYGDN.js → acp-startup-profiler-HUYGO57H.js} +2 -2
  11. package/chunks/{acpAgent-XPES32S7.js → acpAgent-BS3YYO33.js} +626 -141
  12. package/chunks/{agent-DPTOZFEM.js → agent-EHHEXKWN.js} +22 -21
  13. package/chunks/{agent-headless-GJCQMURW.js → agent-headless-UT2ZF76T.js} +22 -21
  14. package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-M7XRJMSK.js} +3 -3
  15. package/chunks/{bridge-YNQBAA4Z.js → bridge-WQ4IL2RF.js} +26 -25
  16. package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
  17. package/chunks/{channel-management-service-GWY2GAIC.js → channel-management-service-X6LCQUAD.js} +1 -1
  18. package/chunks/{channel-settings-store-WNWYFHG7.js → channel-settings-store-ZDFXY7VY.js} +30 -29
  19. package/chunks/{channel-worker-group-7LXCMZ77.js → channel-worker-group-TJ35JDPE.js} +2 -2
  20. package/chunks/{channel-worker-manager-RYEME4ZZ.js → channel-worker-manager-G5LKWGOG.js} +2 -2
  21. package/chunks/{chunk-4PKCUT7F.js → chunk-2A6VQJYK.js} +6 -6
  22. package/chunks/chunk-2C6HJMG3.js +757 -0
  23. package/chunks/chunk-3PWCMXIR.js +9169 -0
  24. package/chunks/{chunk-BVJS5BSP.js → chunk-3PWNVF6N.js} +1 -1
  25. package/chunks/{chunk-X26JYGTD.js → chunk-3SL2P3WX.js} +1 -1
  26. package/chunks/{chunk-ZYBBISBY.js → chunk-3YRVPHT3.js} +15 -12
  27. package/chunks/{chunk-AS5IN4GK.js → chunk-47L5MLB5.js} +3 -3
  28. package/chunks/{chunk-3U3VAL47.js → chunk-4SR45OM4.js} +1 -1
  29. package/chunks/{chunk-OMLJNPBE.js → chunk-4ZMS3JCR.js} +1 -0
  30. package/chunks/{chunk-UKMR3CKV.js → chunk-4ZS3BLER.js} +3 -3
  31. package/chunks/{chunk-5EYKMUUY.js → chunk-544KT7X4.js} +1 -1
  32. package/chunks/{chunk-TUGSVUJB.js → chunk-55VKMB7X.js} +5 -5
  33. package/chunks/{chunk-GO7STP6N.js → chunk-5IJSFWQO.js} +4 -4
  34. package/chunks/{chunk-A4QRWUDE.js → chunk-5IYS4WWR.js} +1 -1
  35. package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
  36. package/chunks/{chunk-MLPXSYXR.js → chunk-6BJSYAML.js} +25 -16
  37. package/chunks/{chunk-V57QC6WW.js → chunk-6LAPGPVA.js} +5 -3
  38. package/chunks/{chunk-NNHNLJ2X.js → chunk-6RDZLBSJ.js} +240 -42
  39. package/chunks/{chunk-ZZO74WKW.js → chunk-73JUK3ZW.js} +24 -18
  40. package/chunks/{chunk-N5YPT6PH.js → chunk-7VNHO4MN.js} +7 -4
  41. package/chunks/{chunk-OVZPVYZB.js → chunk-AKBOLMUF.js} +95 -17
  42. package/chunks/{chunk-NHDR76JX.js → chunk-BQWNIPTE.js} +1 -1
  43. package/chunks/{chunk-IWPYVAO2.js → chunk-C3T6M24E.js} +2 -2
  44. package/chunks/{chunk-NM5V5OVW.js → chunk-CEXU72GE.js} +2 -2
  45. package/chunks/{chunk-AA2BEKV3.js → chunk-CH5OFRV7.js} +1 -1
  46. package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
  47. package/chunks/{chunk-E23IPNGS.js → chunk-CZK622ZK.js} +12 -3
  48. package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
  49. package/chunks/{chunk-OXCMMLED.js → chunk-DGJ7O55J.js} +1 -1
  50. package/chunks/{chunk-DGK6P3BQ.js → chunk-DHUPMYMC.js} +10 -10
  51. package/chunks/{chunk-O4D7SPJN.js → chunk-DRAONPUW.js} +3 -3
  52. package/chunks/{chunk-P7MPQI75.js → chunk-DVR7XKO5.js} +1 -1
  53. package/chunks/{chunk-PP4FUZNV.js → chunk-E5WQMF3K.js} +2 -2
  54. package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
  55. package/chunks/{chunk-ZYYTZUI2.js → chunk-EOPBFLA5.js} +3 -3
  56. package/chunks/{chunk-OOQUVWIG.js → chunk-FN6M5WUL.js} +4 -4
  57. package/chunks/{chunk-DGZEMW5R.js → chunk-FS5NGKWC.js} +1 -1
  58. package/chunks/{chunk-MRMJCLIY.js → chunk-G6KI5UOJ.js} +2 -2
  59. package/chunks/{chunk-6ORZ2EDC.js → chunk-H3SHU2XU.js} +1 -1
  60. package/chunks/{chunk-GMIEIY3Y.js → chunk-I3N2Z25H.js} +1 -1
  61. package/chunks/{chunk-BHILXOC3.js → chunk-J63PKMYA.js} +1 -1
  62. package/chunks/{chunk-KD5BOPLP.js → chunk-J6YS7Z25.js} +98 -4
  63. package/chunks/chunk-K2Y45XXS.js +3887 -0
  64. package/chunks/{chunk-RVOJ2FBP.js → chunk-KC4WMLZO.js} +1486 -10574
  65. package/chunks/{chunk-LJQAUZMR.js → chunk-L3T4V5GZ.js} +925 -92
  66. package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
  67. package/chunks/{chunk-RIAABG2K.js → chunk-LSO6EL4Y.js} +1 -1
  68. package/chunks/{chunk-XHRY7BXD.js → chunk-MDIGJH5X.js} +3 -3
  69. package/chunks/{chunk-MC4TLKEI.js → chunk-MVHJZ3FZ.js} +2 -2
  70. package/chunks/{chunk-YEYY7TEP.js → chunk-N6RSOOWJ.js} +5 -5
  71. package/chunks/{chunk-OD2WU5QY.js → chunk-NRPXRNN4.js} +1 -1
  72. package/chunks/{chunk-CKSJECTU.js → chunk-NVRMCWTP.js} +8 -4
  73. package/chunks/{chunk-Y3YCSWG5.js → chunk-OBJYN4MX.js} +1 -1
  74. package/chunks/{chunk-GGDBMYGZ.js → chunk-OEYAK5O6.js} +3 -3
  75. package/chunks/{chunk-6YKYPVDV.js → chunk-OEZCXK7Y.js} +3 -3
  76. package/chunks/{chunk-4S5337WV.js → chunk-OFTPCOGR.js} +4312 -2704
  77. package/chunks/{chunk-7UXUJ5T3.js → chunk-OJB5FYVK.js} +1 -1
  78. package/chunks/{chunk-WFSTRPRO.js → chunk-OJOP26ET.js} +1 -1
  79. package/chunks/{chunk-TIGA2IVL.js → chunk-OO4FKHLO.js} +2 -2
  80. package/chunks/{chunk-BZ263IKX.js → chunk-OVY67CYC.js} +1 -1
  81. package/chunks/{chunk-PQ36L4F5.js → chunk-P3AA6S7O.js} +1 -1
  82. package/chunks/{chunk-CU6GJD55.js → chunk-PCETXVVV.js} +1 -1
  83. package/chunks/{chunk-AFSG32D5.js → chunk-PHN4R2ZV.js} +1 -1
  84. package/chunks/{chunk-QF2NHSPB.js → chunk-PJSD2FOR.js} +233 -184
  85. package/chunks/{chunk-NEFOOD54.js → chunk-QAVTWAHL.js} +2 -2
  86. package/chunks/{chunk-AW4TRXOC.js → chunk-QEHH23OM.js} +1 -1
  87. package/chunks/{chunk-CZBYX5MY.js → chunk-QEJZUXSK.js} +1 -1
  88. package/chunks/{chunk-XIT3GURH.js → chunk-QRVHGEVY.js} +3 -3
  89. package/chunks/{chunk-M732YJPW.js → chunk-RXHBTKMG.js} +2 -2
  90. package/chunks/{chunk-JOOFMXGF.js → chunk-S7N3HUIB.js} +5 -5
  91. package/chunks/{chunk-76J3IJ3M.js → chunk-SCZU65AI.js} +3 -3
  92. package/chunks/{chunk-QIH2HAEN.js → chunk-SFJMFZT5.js} +1 -1
  93. package/chunks/{chunk-JNDY2MDR.js → chunk-SFTKAX4O.js} +1 -1
  94. package/chunks/{chunk-WSH6GRKG.js → chunk-SLILKYV2.js} +2 -2
  95. package/chunks/{chunk-DXIBNLBZ.js → chunk-SNQZZ765.js} +1 -1
  96. package/chunks/{chunk-V26NVGAU.js → chunk-TSMPNGBC.js} +8 -3
  97. package/chunks/{chunk-QV5YN5YD.js → chunk-U657UZJN.js} +5 -5
  98. package/chunks/{chunk-QNQAPSN2.js → chunk-UC67T4SF.js} +3 -1
  99. package/chunks/{chunk-O565M6A4.js → chunk-UYDGFWIJ.js} +199 -14
  100. package/chunks/{chunk-OY5RNSV4.js → chunk-V6WEMZPD.js} +3 -3
  101. package/chunks/{chunk-A267JX7H.js → chunk-VFP5YOHJ.js} +6 -6
  102. package/chunks/{chunk-HUTNYWBG.js → chunk-VTOLYFWM.js} +18 -10
  103. package/chunks/{chunk-EZ5RP345.js → chunk-W7EYJGN7.js} +40 -9
  104. package/chunks/{chunk-BKPPWD33.js → chunk-WAO53ZQF.js} +1 -1
  105. package/chunks/{chunk-S5DWMTHO.js → chunk-WP4WIUOJ.js} +2 -0
  106. package/chunks/{chunk-25EYDK42.js → chunk-WPVUOVYX.js} +1 -1
  107. package/chunks/{chunk-AXN7UPYQ.js → chunk-WSSH2BNO.js} +1 -1
  108. package/chunks/chunk-WZAD4ZNJ.js +59 -0
  109. package/chunks/{chunk-JUEPY766.js → chunk-XITLNXLX.js} +2 -2
  110. package/chunks/{chunk-EL5SXY3T.js → chunk-XT4RKHVE.js} +2 -2
  111. package/chunks/{chunk-IGGGG5CX.js → chunk-XYRBK56E.js} +4635 -1655
  112. package/chunks/{chunk-UZPM4XHR.js → chunk-Y4RVDOXV.js} +29 -8
  113. package/chunks/{chunk-QRCNA3SR.js → chunk-Y7QY6DKW.js} +49 -69
  114. package/chunks/{chunk-FDGGZIYW.js → chunk-YECDICIO.js} +2 -2
  115. package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
  116. package/chunks/{chunk-U3VNBPUO.js → chunk-YHXQK4SR.js} +2 -2
  117. package/chunks/{chunk-A4MFR4C5.js → chunk-ZIGC3MUS.js} +2 -4
  118. package/chunks/{computer-use-77C5FHMW.js → computer-use-YORZJQE5.js} +22 -21
  119. package/chunks/{config-utils-IVHRSXWI.js → config-utils-NJQA5YLJ.js} +2 -2
  120. package/chunks/{contextCommand-PJ77GBWL.js → contextCommand-PACHGIF4.js} +24 -23
  121. package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-6HD5DSPX.js} +22 -21
  122. package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-IQFIPUQA.js} +26 -24
  123. package/chunks/{cron-create-H7UEPDSN.js → cron-create-NFRZEOQX.js} +2 -2
  124. package/chunks/{cron-delete-6SZK7YFM.js → cron-delete-GFVSVO7C.js} +2 -2
  125. package/chunks/{cron-list-H25JIHEZ.js → cron-list-NRW34CLU.js} +2 -2
  126. package/chunks/{daemon-2KTG7ZBN.js → daemon-XH76IXOC.js} +356 -21
  127. package/chunks/{daemon-git-worktree-guard-DXYIMWFT.js → daemon-git-worktree-guard-6P27GKSU.js} +24 -23
  128. package/chunks/{daemon-status-provider-ZDOYJCU6.js → daemon-status-provider-SXS66ZIR.js} +31 -30
  129. package/chunks/{daemon-trust-policy-E67OYUK2.js → daemon-trust-policy-5QJHAS3N.js} +29 -28
  130. package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-JA2WZRZ3.js} +29 -28
  131. package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
  132. package/chunks/{deferred-core-runtime-3SGXFXEQ.js → deferred-core-runtime-R2VWOVG3.js} +22 -21
  133. package/chunks/{discovery-ORA5J7YP.js → discovery-X2NV535U.js} +1 -1
  134. package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
  135. package/chunks/{earlyInputCapture-KJMLFVQV.js → earlyInputCapture-PQEEOFKJ.js} +22 -21
  136. package/chunks/{edit-I4LQFAEC.js → edit-RASZHTU2.js} +25 -23
  137. package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
  138. package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-CH5OMHJE.js} +22 -21
  139. package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-AQKR3CAH.js} +22 -21
  140. package/chunks/{environment-S7CTIHMX.js → environment-7QRYIEBA.js} +25 -24
  141. package/chunks/{errors-7HB2AIDS.js → errors-P2LL5452.js} +24 -23
  142. package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-WUDL26CY.js} +22 -21
  143. package/chunks/{exitPlanMode-R4JY7V2O.js → exitPlanMode-JM75SAUI.js} +22 -21
  144. package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-KVNSOHVA.js} +3 -3
  145. package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
  146. package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
  147. package/chunks/{gemini-RSUFP5OE.js → gemini-ADMD2EOS.js} +62 -61
  148. package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-CS3M7SOS.js} +3 -3
  149. package/chunks/{glob-J4RUJAHX.js → glob-WIJOGYVV.js} +22 -21
  150. package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-K5OHOJ6B.js} +1 -1
  151. package/chunks/{grep-VJWPLFOT.js → grep-CIFRQBR7.js} +22 -21
  152. package/chunks/{handleAutoUpdate-POCX2MNB.js → handleAutoUpdate-KJ4SN7DM.js} +26 -25
  153. package/chunks/{i18n-RM5YOICI.js → i18n-36SZUO4C.js} +23 -22
  154. package/chunks/{image-gen-EXECB5XM.js → image-gen-R4B5VUYB.js} +2 -2
  155. package/chunks/{initializer-Z2AFGBNR.js → initializer-CW5YCAOL.js} +29 -28
  156. package/chunks/{installationInfo-4I5FXNMH.js → installationInfo-NMQIOUGY.js} +23 -22
  157. package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
  158. package/chunks/{list-ZMBFIGZA.js → list-HHGT3S4P.js} +32 -31
  159. package/chunks/{loadedSettingsAdapter-T6TV4YJ7.js → loadedSettingsAdapter-SJ2MJF35.js} +29 -28
  160. package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-GR2QQ2C5.js} +12 -10
  161. package/chunks/{loop-wakeup-WQS6JYAG.js → loop-wakeup-HWVUU5CF.js} +3 -3
  162. package/chunks/{managed-npm-update-E7IW6N7V.js → managed-npm-update-ADQJHKTO.js} +23 -22
  163. package/chunks/{mcp-6UNYX4HG.js → mcp-QW3OTL5W.js} +29 -28
  164. package/chunks/{monitor-EE2UYMGE.js → monitor-RJKPVERH.js} +22 -21
  165. package/chunks/{nonInteractiveCli-WAY237O4.js → nonInteractiveCli-MROMHSTL.js} +59 -57
  166. package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-2ENWDBZO.js} +26 -24
  167. package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-Z3GPWJU4.js} +12 -11
  168. package/chunks/{pidfile-4XSFLYBZ.js → pidfile-5G42YSTP.js} +22 -21
  169. package/chunks/{processUtils-WDA2MJFD.js → processUtils-ZDMXYKQY.js} +2 -2
  170. package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
  171. package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-NLEMBZVU.js} +25 -24
  172. package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-EBV52DWJ.js} +3 -3
  173. package/chunks/{read-file-TAFBKMNI.js → read-file-5BYIF53O.js} +9 -7
  174. package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-GLU3UWBV.js} +3 -1
  175. package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-AFTBRS3G.js} +25 -24
  176. package/chunks/{ripGrep-WOEK2PXS.js → ripGrep-NN7AOLQY.js} +22 -21
  177. package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
  178. package/chunks/{run-qwen-serve-3QSGRXAN.js → run-qwen-serve-UR3DYDAF.js} +49 -40
  179. package/chunks/{runtime-5MLLZ7DC.js → runtime-PR5RKGNH.js} +32 -31
  180. package/chunks/{scheduler-RPBJ63CH.js → scheduler-GPMLVKJM.js} +24 -23
  181. package/chunks/{sdk-exporters-http-XUVP63H6.js → sdk-exporters-http-NC746HLT.js} +2 -2
  182. package/chunks/{sdk-impl-YXUEN2Z2.js → sdk-impl-YVL7BP6Y.js} +2 -2
  183. package/chunks/{send-message-VZENRWRH.js → send-message-TNBG5EVA.js} +1 -1
  184. package/chunks/{serve-HS3XLPXU.js → serve-E7V2JVA2.js} +29 -30
  185. package/chunks/{server-TC4A7AAZ.js → server-YXB3DBN7.js} +1267 -165
  186. package/chunks/{session-UBOFXVMN.js → session-DZEAUT7S.js} +60 -58
  187. package/chunks/{settings-D5644OM5.js → settings-ESZ3NWAP.js} +28 -27
  188. package/chunks/{shell-3PZULQQV.js → shell-JMSK5WIL.js} +22 -21
  189. package/chunks/{skill-PEVVXQ3L.js → skill-5K5CSUJV.js} +11 -9
  190. package/chunks/{skill-settings-J65JKKES.js → skill-settings-V64NIOTI.js} +28 -27
  191. package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-S63APBZZ.js} +24 -23
  192. package/chunks/{standalone-update-IFM53PE7.js → standalone-update-P42HDFXX.js} +24 -23
  193. package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-LFBLFHJ4.js} +262 -191
  194. package/chunks/{task-create-FCBDX7UH.js → task-create-EILHJJB7.js} +4 -4
  195. package/chunks/{task-list-YIYIUFUA.js → task-list-WGJR6YL5.js} +18 -4
  196. package/chunks/{task-update-MYPFVOVM.js → task-update-XZAHVXJ5.js} +79 -8
  197. package/chunks/{team-create-ZAIA7KAV.js → team-create-EDNOUM2U.js} +23 -23
  198. package/chunks/{team-delete-6UMU4XLS.js → team-delete-UEP4QOOT.js} +3 -3
  199. package/chunks/{team-plan-approval-UNIUS7OD.js → team-plan-approval-QRSNK2DX.js} +22 -21
  200. package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-6J2NPL32.js} +22 -21
  201. package/chunks/{theme-manager-Z3RIT7DB.js → theme-manager-WJMLRBXS.js} +22 -21
  202. package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-ATS62CAP.js} +1 -1
  203. package/chunks/{tool-search-5R2OE4C7.js → tool-search-MZ6WU7DM.js} +9 -7
  204. package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-DQVW2LIP.js} +26 -25
  205. package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-QMH25GOX.js} +23 -22
  206. package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-EG75LLW5.js} +5 -5
  207. package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-MTZIVGT5.js} +25 -24
  208. package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-IGCW5EPO.js} +31 -30
  209. package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-D5FPAB2C.js} +56 -54
  210. package/chunks/{version-G5A5DGVS.js → version-UOLDLLRB.js} +1 -1
  211. package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-QKKW6CWH.js} +11 -8
  212. package/chunks/{web-search-5OXHEZPV.js → web-search-JYRBZMCW.js} +2 -2
  213. package/chunks/{workflow-ISQJHPG2.js → workflow-SR7SEAU7.js} +139 -37
  214. package/chunks/{workspace-providers-status-2ZPZPUPZ.js → workspace-providers-status-OXGV4EFF.js} +32 -31
  215. package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-V5EGKLBH.js} +1 -1
  216. package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-KJVIYTF5.js} +26 -25
  217. package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-6RLSGUB5.js} +33 -32
  218. package/chunks/{workspace-skills-status-RS4O7AIJ.js → workspace-skills-status-BHFEPDGH.js} +30 -29
  219. package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-DB5ERSUN.js} +33 -32
  220. package/chunks/{write-file-EWXKVVXF.js → write-file-IUP4GTZ4.js} +22 -21
  221. package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
  222. package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
  223. package/chunks/{zoom-image-4BFYJ3HG.js → zoom-image-SRBDTIVA.js} +14 -11
  224. package/cli.js +13 -13
  225. package/locales/ca.js +13 -0
  226. package/locales/de.js +12 -0
  227. package/locales/en.js +11 -0
  228. package/locales/fr.js +13 -0
  229. package/locales/ja.js +13 -0
  230. package/locales/pt.js +12 -0
  231. package/locales/ru.js +12 -0
  232. package/locales/zh-TW.js +11 -0
  233. package/locales/zh.js +11 -0
  234. package/package.json +3 -3
  235. package/web-shell/assets/{arc-CgOpDKvm.js → arc-DItbX0DI.js} +1 -1
  236. package/web-shell/assets/{architectureDiagram-3BPJPVTR-0Ag_m34F.js → architectureDiagram-3BPJPVTR-CmnIlH8y.js} +1 -1
  237. package/web-shell/assets/{blockDiagram-GPEHLZMM-IwTwFau0.js → blockDiagram-GPEHLZMM-pObnB9kw.js} +1 -1
  238. package/web-shell/assets/{c4Diagram-AAUBKEIU-DLa5GUv8.js → c4Diagram-AAUBKEIU-BNBmMS0Y.js} +1 -1
  239. package/web-shell/assets/channel-hZnMfWA9.js +1 -0
  240. package/web-shell/assets/{chunk-2J33WTMH-DcYP-WFG.js → chunk-2J33WTMH-Dz4JBOO6.js} +1 -1
  241. package/web-shell/assets/{chunk-4BX2VUAB-C8MVPMiQ.js → chunk-4BX2VUAB-Cz2GnvAR.js} +1 -1
  242. package/web-shell/assets/{chunk-55IACEB6-BUi4Yfv3.js → chunk-55IACEB6-CC6kOQYx.js} +1 -1
  243. package/web-shell/assets/{chunk-727SXJPM-Cy3Su2YY.js → chunk-727SXJPM-Z4lY4gbh.js} +1 -1
  244. package/web-shell/assets/{chunk-AQP2D5EJ-Dp8Teqv6.js → chunk-AQP2D5EJ-Yz0hZr3D.js} +1 -1
  245. package/web-shell/assets/{chunk-FMBD7UC4-BDTDM-4j.js → chunk-FMBD7UC4-nKmTWTv9.js} +1 -1
  246. package/web-shell/assets/{chunk-ND2GUHAM-7HfDt0r2.js → chunk-ND2GUHAM-CjZz0f6Y.js} +1 -1
  247. package/web-shell/assets/{chunk-QZHKN3VN-BIBU0uCF.js → chunk-QZHKN3VN-Bab3FpuS.js} +1 -1
  248. package/web-shell/assets/classDiagram-4FO5ZUOK-BRnxm8DX.js +1 -0
  249. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BRnxm8DX.js +1 -0
  250. package/web-shell/assets/{cose-bilkent-S5V4N54A-DRLdcg9p.js → cose-bilkent-S5V4N54A-BuSAGFox.js} +1 -1
  251. package/web-shell/assets/{dagre-BM42HDAG-DCCgDwqW.js → dagre-BM42HDAG-CRZXTg3g.js} +1 -1
  252. package/web-shell/assets/{diagram-2AECGRRQ-CsBTBmk3.js → diagram-2AECGRRQ-BFx1Ayrz.js} +1 -1
  253. package/web-shell/assets/{diagram-5GNKFQAL-C9qjH8Lt.js → diagram-5GNKFQAL-B2hMZ3gS.js} +1 -1
  254. package/web-shell/assets/{diagram-KO2AKTUF-Brjs_lj2.js → diagram-KO2AKTUF-DKxAQLmc.js} +1 -1
  255. package/web-shell/assets/{diagram-LMA3HP47-DtiWCl_F.js → diagram-LMA3HP47-Bo1xGqVY.js} +1 -1
  256. package/web-shell/assets/{diagram-OG6HWLK6-DmfKLkBT.js → diagram-OG6HWLK6-B9NG78d-.js} +1 -1
  257. package/web-shell/assets/{erDiagram-TEJ5UH35-Bve_4deH.js → erDiagram-TEJ5UH35-DltQKiqQ.js} +1 -1
  258. package/web-shell/assets/{flowDiagram-I6XJVG4X-C2_kXCcV.js → flowDiagram-I6XJVG4X-5xXGmS4I.js} +1 -1
  259. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BSBIjiTF.js → ganttDiagram-6RSMTGT7-bhGL5n0l.js} +1 -1
  260. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CyebwI55.js → gitGraphDiagram-PVQCEYII-ZYnz9hgh.js} +1 -1
  261. package/web-shell/assets/{index-d0yfnV1M.js → index-CBBeUArD.js} +1 -1
  262. package/web-shell/assets/index-CbgU-jUo.css +5 -0
  263. package/web-shell/assets/index-_nhzXqab.js +1750 -0
  264. package/web-shell/assets/{infoDiagram-5YYISTIA-CSDGnWxU.js → infoDiagram-5YYISTIA-Cg-jamQf.js} +1 -1
  265. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK4jU13p.js → ishikawaDiagram-YF4QCWOH-CcmvKlyq.js} +1 -1
  266. package/web-shell/assets/{journeyDiagram-JHISSGLW-D_W6j-oF.js → journeyDiagram-JHISSGLW-BRsOQZp1.js} +1 -1
  267. package/web-shell/assets/{kanban-definition-UN3LZRKU-C7xf-SdC.js → kanban-definition-UN3LZRKU-xW-dmEHK.js} +1 -1
  268. package/web-shell/assets/{linear-DQmzxpxd.js → linear-ClBfEZH2.js} +1 -1
  269. package/web-shell/assets/{mermaid.core-9P7AGOLG.js → mermaid.core-D65NDkzc.js} +5 -5
  270. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DgcgMyPk.js → mindmap-definition-RKZ34NQL-CyvFslYa.js} +1 -1
  271. package/web-shell/assets/{pieDiagram-4H26LBE5-3wWGb9eG.js → pieDiagram-4H26LBE5-BwSefMyG.js} +1 -1
  272. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BeCXnQw9.js → quadrantDiagram-W4KKPZXB-GqBJspFS.js} +1 -1
  273. package/web-shell/assets/{requirementDiagram-4Y6WPE33-Bi1UOHDz.js → requirementDiagram-4Y6WPE33-B137PlTJ.js} +1 -1
  274. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-lrLUjjbb.js → sankeyDiagram-5OEKKPKP-maHkkt8i.js} +1 -1
  275. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BFuqKz6Q.js → sequenceDiagram-3UESZ5HK-DJ1mRaG3.js} +1 -1
  276. package/web-shell/assets/{stateDiagram-AJRCARHV-8DemQLhu.js → stateDiagram-AJRCARHV-aRmP7Q4i.js} +1 -1
  277. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Db39gvZ_.js +1 -0
  278. package/web-shell/assets/{timeline-definition-PNZ67QCA-uzEuVQXg.js → timeline-definition-PNZ67QCA-CIQ3BRPA.js} +1 -1
  279. package/web-shell/assets/{vennDiagram-CIIHVFJN-BQTeZ_-o.js → vennDiagram-CIIHVFJN-DR9VPd5h.js} +1 -1
  280. package/web-shell/assets/{wardley-L42UT6IY-B6yM5Im7.js → wardley-L42UT6IY-ZcfIbT4D.js} +1 -1
  281. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-ChM8bmgn.js → wardleyDiagram-YWT4CUSO-D0jgPi4T.js} +1 -1
  282. package/web-shell/assets/{xychartDiagram-2RQKCTM6-oNG6HyB1.js → xychartDiagram-2RQKCTM6-BGWU4s5o.js} +1 -1
  283. package/web-shell/index.html +2 -2
  284. package/chunks/chunk-MPHPFVKK.js +0 -48
  285. package/chunks/chunk-RLKC46YT.js +0 -3582
  286. package/chunks/chunk-UPDOZBWO.js +0 -358
  287. package/web-shell/assets/channel-BrGVBa2L.js +0 -1
  288. package/web-shell/assets/classDiagram-4FO5ZUOK-B5TUzJzI.js +0 -1
  289. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B5TUzJzI.js +0 -1
  290. package/web-shell/assets/index-CIDsgxTe.js +0 -1792
  291. package/web-shell/assets/index-DiQnWi_E.css +0 -5
  292. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DhM5ixYd.js +0 -1
  293. /package/chunks/{chunk-NTTBXH7U.js → chunk-UGK4K2N2.js} +0 -0
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-CPBF7KYF.js";
11
11
  import {
12
12
  atomicWriteJSON
13
- } from "./chunk-FDGGZIYW.js";
13
+ } from "./chunk-YECDICIO.js";
14
14
  import {
15
15
  Storage,
16
16
  isNodeError
@@ -24,8 +24,86 @@ import {
24
24
 
25
25
  // packages/core/src/agents/team/teamHelpers.ts
26
26
  init_esbuild_shims();
27
- import * as fs from "node:fs/promises";
27
+ import * as fs2 from "node:fs/promises";
28
28
  import * as path from "node:path";
29
+
30
+ // packages/core/src/utils/process-liveness.ts
31
+ init_esbuild_shims();
32
+ import * as fs from "node:fs";
33
+ function isPidAlive(pid) {
34
+ if (!Number.isInteger(pid) || pid <= 0) return false;
35
+ try {
36
+ process.kill(pid, 0);
37
+ return !isZombie(pid);
38
+ } catch (err) {
39
+ return isNodeError(err) && (err.code === "EPERM" || err.code === "EACCES") && !isZombie(pid);
40
+ }
41
+ }
42
+ __name(isPidAlive, "isPidAlive");
43
+ function isZombie(pid) {
44
+ if (process.platform !== "linux") return false;
45
+ let raw;
46
+ try {
47
+ raw = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
48
+ } catch {
49
+ return false;
50
+ }
51
+ const commEnd = raw.lastIndexOf(")");
52
+ if (commEnd === -1) return false;
53
+ return raw.slice(commEnd + 1).trimStart().startsWith("Z");
54
+ }
55
+ __name(isZombie, "isZombie");
56
+ function readProcStartToken(pid) {
57
+ if (process.platform !== "linux") return null;
58
+ if (!Number.isInteger(pid) || pid <= 0) return null;
59
+ const bootId = readLocalBootId();
60
+ if (bootId === null) return null;
61
+ let raw;
62
+ try {
63
+ raw = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
64
+ } catch {
65
+ return null;
66
+ }
67
+ const commEnd = raw.lastIndexOf(")");
68
+ if (commEnd === -1) return null;
69
+ const fields = raw.slice(commEnd + 1).trim().split(/\s+/);
70
+ const startTime = fields[19];
71
+ return startTime !== void 0 && /^\d+$/.test(startTime) ? `${bootId}:${startTime}` : null;
72
+ }
73
+ __name(readProcStartToken, "readProcStartToken");
74
+ var cachedBootId;
75
+ function readLocalBootId() {
76
+ if (cachedBootId !== void 0) return cachedBootId;
77
+ try {
78
+ const value = fs.readFileSync("/proc/sys/kernel/random/boot_id", "utf8").trim();
79
+ if (/^[0-9a-f-]+$/i.test(value)) {
80
+ cachedBootId = value;
81
+ return value;
82
+ }
83
+ } catch {
84
+ }
85
+ return null;
86
+ }
87
+ __name(readLocalBootId, "readLocalBootId");
88
+ function readPidNamespaceId() {
89
+ if (process.platform !== "linux") return null;
90
+ try {
91
+ return fs.statSync("/proc/self/ns/pid").ino;
92
+ } catch {
93
+ return null;
94
+ }
95
+ }
96
+ __name(readPidNamespaceId, "readPidNamespaceId");
97
+ function isSameProcess(pid, procStart) {
98
+ if (!isPidAlive(pid)) return false;
99
+ if (procStart == null) return true;
100
+ const current = readProcStartToken(pid);
101
+ if (current === null) return true;
102
+ return current === procStart;
103
+ }
104
+ __name(isSameProcess, "isSameProcess");
105
+
106
+ // packages/core/src/agents/team/teamHelpers.ts
29
107
  function getTeamsRootDir() {
30
108
  return path.join(Storage.getGlobalQwenDir(), TEAMS_DIR);
31
109
  }
@@ -103,7 +181,7 @@ __name(classifyShutdownResponse, "classifyShutdownResponse");
103
181
  async function readTeamFile(teamName) {
104
182
  const filePath = getTeamFilePath(teamName);
105
183
  try {
106
- const raw = await fs.readFile(filePath, "utf-8");
184
+ const raw = await fs2.readFile(filePath, "utf-8");
107
185
  return JSON.parse(raw);
108
186
  } catch (err) {
109
187
  if (isNodeError(err) && err.code === "ENOENT") {
@@ -115,28 +193,19 @@ async function readTeamFile(teamName) {
115
193
  __name(readTeamFile, "readTeamFile");
116
194
  async function writeTeamFile(teamName, teamFile) {
117
195
  const filePath = getTeamFilePath(teamName);
118
- await fs.mkdir(path.dirname(filePath), { recursive: true });
196
+ await fs2.mkdir(path.dirname(filePath), { recursive: true });
119
197
  await atomicWriteJSON(filePath, teamFile);
120
198
  }
121
199
  __name(writeTeamFile, "writeTeamFile");
122
200
  async function createTeamFile(teamName, teamFile) {
123
201
  const filePath = getTeamFilePath(teamName);
124
- await fs.mkdir(path.dirname(filePath), { recursive: true });
125
- await fs.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
202
+ await fs2.mkdir(path.dirname(filePath), { recursive: true });
203
+ await fs2.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
126
204
  encoding: "utf-8",
127
205
  flag: "wx"
128
206
  });
129
207
  }
130
208
  __name(createTeamFile, "createTeamFile");
131
- function isPidAlive(pid) {
132
- try {
133
- process.kill(pid, 0);
134
- return true;
135
- } catch (err) {
136
- return isNodeError(err) && err.code === "EPERM";
137
- }
138
- }
139
- __name(isPidAlive, "isPidAlive");
140
209
  async function tryReclaimStaleTeam(teamName) {
141
210
  let existing;
142
211
  try {
@@ -162,13 +231,17 @@ async function deleteTeamDirs(teamName) {
162
231
  const teamDir = getTeamDir(teamName);
163
232
  const tasksDir = getTasksDir(teamName);
164
233
  await Promise.allSettled([
165
- fs.rm(teamDir, { recursive: true, force: true }),
166
- fs.rm(tasksDir, { recursive: true, force: true })
234
+ fs2.rm(teamDir, { recursive: true, force: true }),
235
+ fs2.rm(tasksDir, { recursive: true, force: true })
167
236
  ]);
168
237
  }
169
238
  __name(deleteTeamDirs, "deleteTeamDirs");
170
239
 
171
240
  export {
241
+ readProcStartToken,
242
+ readLocalBootId,
243
+ readPidNamespaceId,
244
+ isSameProcess,
172
245
  getTeamDir,
173
246
  getInboxesDir,
174
247
  getTasksDir,
@@ -183,6 +256,11 @@ export {
183
256
  tryReclaimStaleTeam,
184
257
  deleteTeamDirs
185
258
  };
259
+ /**
260
+ * @license
261
+ * Copyright 2026 Qwen
262
+ * SPDX-License-Identifier: Apache-2.0
263
+ */
186
264
  /**
187
265
  * @license
188
266
  * Copyright 2025 Qwen
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MissingCliEntryError
5
- } from "./chunk-QNQAPSN2.js";
5
+ } from "./chunk-UC67T4SF.js";
6
6
  import {
7
7
  redactLogCredentials
8
8
  } from "./chunk-M5GB774H.js";
@@ -12,13 +12,13 @@ import {
12
12
  } from "./chunk-MR3PXB6E.js";
13
13
  import {
14
14
  ideContextStore
15
- } from "./chunk-4S5337WV.js";
15
+ } from "./chunk-OFTPCOGR.js";
16
16
  import {
17
17
  require_proper_lockfile
18
18
  } from "./chunk-MLXTMF7H.js";
19
19
  import {
20
20
  atomicWriteFileSync
21
- } from "./chunk-FDGGZIYW.js";
21
+ } from "./chunk-YECDICIO.js";
22
22
  import {
23
23
  FatalConfigError,
24
24
  Storage,
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  STATUS_SCHEMA_VERSION
5
- } from "./chunk-QNQAPSN2.js";
5
+ } from "./chunk-UC67T4SF.js";
6
6
  import {
7
7
  formatMemoryUsage
8
- } from "./chunk-4S5337WV.js";
8
+ } from "./chunk-OFTPCOGR.js";
9
9
  import {
10
10
  detectRuntime,
11
11
  redactProxyCredentials
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
5
- } from "./chunk-S5DWMTHO.js";
5
+ } from "./chunk-WP4WIUOJ.js";
6
6
  import {
7
7
  SessionNotFoundError
8
8
  } from "./chunk-624NHDGB.js";
@@ -189,6 +189,14 @@ var PROJECT_ENV_HARDCODED_EXCLUSIONS = [
189
189
  // operator set in the daemon's launch env still apply.
190
190
  "QWEN_CDP_MCP_COMMAND",
191
191
  "QWEN_SERVE_CDP_TUNNEL_OVER_WS",
192
+ // QWEN_SERVE_NEW_FILE_MODE decides the creation mode of every agent-written
193
+ // NEW file (owner-only 0600 vs umask-derived). A project `.env` flipping it
194
+ // to `system` would silently widen file visibility daemon-wide — including
195
+ // files written for OTHER workspaces — with no warning, since `system` is a
196
+ // valid value. The fail-closed 0600 posture is an operator decision
197
+ // (documented as a per-daemon opt-in), so only the daemon's launch
198
+ // environment or a home `.env` may set it.
199
+ "QWEN_SERVE_NEW_FILE_MODE",
192
200
  // DEV gates the daemon's inherited-loader-env scrub (run-qwen-serve.ts);
193
201
  // only the dev harness (scripts/dev.js) stamps it into the launch env. A
194
202
  // project file setting it would silently keep loader vars in the base env
@@ -11,14 +11,14 @@ import {
11
11
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
12
12
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
13
13
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
14
- } from "./chunk-4S5337WV.js";
14
+ } from "./chunk-OFTPCOGR.js";
15
15
  import {
16
16
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
17
17
  } from "./chunk-KBXKR5R2.js";
18
18
  import {
19
19
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
20
20
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
21
- } from "./chunk-K5IDV3PC.js";
21
+ } from "./chunk-D34RDOLP.js";
22
22
  import {
23
23
  init_esbuild_shims
24
24
  } from "./chunk-5O2XNYP6.js";
@@ -519,7 +519,7 @@ var SETTINGS_SCHEMA = {
519
519
  category: "General",
520
520
  requiresRestart: false,
521
521
  default: true,
522
- description: 'Append the attribution footer naming the model and CLI version (e.g. "_\u2014 qwen3-coder via Qwen Code /review (v0.21.2)_") to review bodies and inline comments posted to GitHub. Disable to post reviews without AI attribution. Note: with the footer off, presubmit duplicate detection still recognizes earlier posts by the same GitHub account, but footer-less posts from other accounts escape it. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot set review policy for its reviewers.',
522
+ description: `Append the attribution footer naming the model and CLI version (e.g. "_\u2014 qwen3-coder via Qwen Code /review (v0.21.2)_") to review bodies and inline comments posted to GitHub. Disable to post reviews without VISIBLE AI attribution: no footer, and no "**[Critical]**"/"**[Suggestion]**" severity markers on posted comments and body lists. Unattributed posts stay identifiable in the raw source: each posted comment carries an invisible severity marker ("<!-- qwen-review critical -->") and the review body carries a ledger marker ("<!-- qwen-review-ledger ... -->") \u2014 anything reading comment bodies (GitHub API automation, the workflows this setting couples to) still recognizes a /review artifact, and presubmit duplicate detection recognizes the reviewing account's earlier posts by the severity marker, though unattributed posts from other accounts escape it. Another consequence: qwen-autofix's Critical-only mode (engaged after round 5, or earlier when a counting window's diff-growth budget trips) no longer recognizes the posted findings as Critical and defers them. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored, so a repository cannot set review policy for its reviewers.`,
523
523
  showInDialog: true
524
524
  },
525
525
  effort: {
@@ -1151,6 +1151,15 @@ var SETTINGS_SCHEMA = {
1151
1151
  description: "Model used for generating prompt suggestions and speculative execution. Leave empty to use the main model. A smaller/faster model (e.g., qwen3-coder-flash) reduces latency and cost.",
1152
1152
  showInDialog: true
1153
1153
  },
1154
+ advisorModel: {
1155
+ type: "string",
1156
+ label: "Advisor Model",
1157
+ category: "Model",
1158
+ requiresRestart: false,
1159
+ default: "",
1160
+ description: "Model used by /advisor for second-opinion reviews of the conversation. Leave empty to use the main model. A model at least as capable as the main model is recommended. Setting this sends the recent conversation transcript to that model, even when it uses another provider.",
1161
+ showInDialog: true
1162
+ },
1154
1163
  visionModel: {
1155
1164
  type: "string",
1156
1165
  label: "Vision Model",
@@ -415,16 +415,25 @@ function unregisterSessionProjectDir(sessionId) {
415
415
  }
416
416
  __name(unregisterSessionProjectDir, "unregisterSessionProjectDir");
417
417
  var modelBySession = /* @__PURE__ */ new Map();
418
- function registerSessionModel(sessionId, model) {
419
- if (sessionId && model) modelBySession.set(sessionId, model);
418
+ var modelIdentityBySession = /* @__PURE__ */ new Map();
419
+ function registerSessionModel(sessionId, model, identity) {
420
+ if (!sessionId || !model) return;
421
+ modelBySession.set(sessionId, model);
422
+ if (identity) modelIdentityBySession.set(sessionId, identity);
423
+ else modelIdentityBySession.delete(sessionId);
420
424
  }
421
425
  __name(registerSessionModel, "registerSessionModel");
422
426
  function getSessionModel(sessionId) {
423
427
  return modelBySession.get(sessionId);
424
428
  }
425
429
  __name(getSessionModel, "getSessionModel");
430
+ function getSessionModelIdentity(sessionId) {
431
+ return modelIdentityBySession.get(sessionId);
432
+ }
433
+ __name(getSessionModelIdentity, "getSessionModelIdentity");
426
434
  function unregisterSessionModel(sessionId) {
427
435
  modelBySession.delete(sessionId);
436
+ modelIdentityBySession.delete(sessionId);
428
437
  }
429
438
  __name(unregisterSessionModel, "unregisterSessionModel");
430
439
 
@@ -505,6 +514,7 @@ export {
505
514
  unregisterSessionProjectDir,
506
515
  registerSessionModel,
507
516
  getSessionModel,
517
+ getSessionModelIdentity,
508
518
  unregisterSessionModel
509
519
  };
510
520
  /**
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-FAAUPSY2.js";
6
6
  import {
7
7
  isInternalPromptId
8
- } from "./chunk-RVOJ2FBP.js";
8
+ } from "./chunk-KC4WMLZO.js";
9
9
  import {
10
10
  createDebugLogger
11
11
  } from "./chunk-BUQDLC2G.js";
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-IGGGG5CX.js";
5
+ } from "./chunk-XYRBK56E.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-PQ36L4F5.js";
11
+ } from "./chunk-P3AA6S7O.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-3Z43GZUQ.js";
15
15
  import {
16
16
  IdeClient,
17
17
  getAllProviderBaseUrls
18
- } from "./chunk-4S5337WV.js";
18
+ } from "./chunk-OFTPCOGR.js";
19
19
  import {
20
20
  detectRuntime,
21
21
  getOrCreateSharedDispatcher,
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-CPHEPGAO.js";
25
25
  import {
26
26
  initializeTelemetry
27
- } from "./chunk-EL5SXY3T.js";
27
+ } from "./chunk-XT4RKHVE.js";
28
28
  import {
29
29
  createDebugLogger
30
30
  } from "./chunk-BUQDLC2G.js";
@@ -231,11 +231,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
231
231
  { updateEventEmitter },
232
232
  { t }
233
233
  ] = await Promise.all([
234
- import("./updateCheck-W4Y2GFSD.js"),
235
- import("./handleAutoUpdate-POCX2MNB.js"),
236
- import("./installationInfo-4I5FXNMH.js"),
234
+ import("./updateCheck-MTZIVGT5.js"),
235
+ import("./handleAutoUpdate-KJ4SN7DM.js"),
236
+ import("./installationInfo-NMQIOUGY.js"),
237
237
  import("./updateEventEmitter-5MKC7BLQ.js"),
238
- import("./i18n-RM5YOICI.js")
238
+ import("./i18n-36SZUO4C.js")
239
239
  ]);
240
240
  const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
241
241
  reason: describeUpdateCheckFailure(error)
@@ -308,7 +308,7 @@ ${t(
308
308
  state: "connecting"
309
309
  });
310
310
  try {
311
- const { connectIdeForStartup } = await import("./initializer-Z2AFGBNR.js");
311
+ const { connectIdeForStartup } = await import("./initializer-CW5YCAOL.js");
312
312
  await withTimeout(
313
313
  connectIdeForStartup(config),
314
314
  "ide_connect",
@@ -332,7 +332,7 @@ ${t(
332
332
  }
333
333
  if (config.isInteractive()) {
334
334
  runDeferredTask("background_housekeeping", async () => {
335
- const { startBackgroundHousekeeping } = await import("./scheduler-RPBJ63CH.js");
335
+ const { startBackgroundHousekeeping } = await import("./scheduler-GPMLVKJM.js");
336
336
  startBackgroundHousekeeping(config, settings);
337
337
  });
338
338
  }
@@ -2,15 +2,15 @@
2
2
  "use strict";
3
3
  import {
4
4
  sanitizeFilenameForDisplay
5
- } from "./chunk-4NFY2S7N.js";
5
+ } from "./chunk-E7REAOTN.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-HUTNYWBG.js";
8
+ } from "./chunk-VTOLYFWM.js";
9
9
  import {
10
10
  fetchGitDiff,
11
11
  findProviderByCredentials,
12
12
  resolveMetadataKey
13
- } from "./chunk-4S5337WV.js";
13
+ } from "./chunk-OFTPCOGR.js";
14
14
  import {
15
15
  init_esbuild_shims
16
16
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-FDGGZIYW.js";
5
+ } from "./chunk-YECDICIO.js";
6
6
  import {
7
7
  Storage,
8
8
  createDebugLogger
@@ -3,11 +3,11 @@
3
3
  import {
4
4
  UNSAFE_OBJECT_KEYS,
5
5
  getPlugin
6
- } from "./chunk-A4QRWUDE.js";
6
+ } from "./chunk-5IYS4WWR.js";
7
7
  import {
8
8
  loadSettings,
9
9
  saveSettings
10
- } from "./chunk-A267JX7H.js";
10
+ } from "./chunk-VFP5YOHJ.js";
11
11
  import {
12
12
  init_esbuild_shims
13
13
  } from "./chunk-5O2XNYP6.js";
@@ -26,6 +26,16 @@ var getAsciiArtWidth = /* @__PURE__ */ __name((asciiArt) => {
26
26
  }, "getAsciiArtWidth");
27
27
  var codePointsCache = /* @__PURE__ */ new Map();
28
28
  var MAX_STRING_LENGTH_TO_CACHE = 1e3;
29
+ var TEXT_CACHE_MAX_ENTRIES = 500;
30
+ function evictOldestTextCacheEntry(cache) {
31
+ if (cache.size >= TEXT_CACHE_MAX_ENTRIES) {
32
+ const firstKey = cache.keys().next().value;
33
+ if (firstKey !== void 0) {
34
+ cache.delete(firstKey);
35
+ }
36
+ }
37
+ }
38
+ __name(evictOldestTextCacheEntry, "evictOldestTextCacheEntry");
29
39
  function toCodePoints(str) {
30
40
  let isAscii = true;
31
41
  for (let i = 0; i < str.length; i++) {
@@ -45,6 +55,7 @@ function toCodePoints(str) {
45
55
  }
46
56
  const result = Array.from(str);
47
57
  if (str.length <= MAX_STRING_LENGTH_TO_CACHE) {
58
+ evictOldestTextCacheEntry(codePointsCache);
48
59
  codePointsCache.set(str, result);
49
60
  }
50
61
  return result;
@@ -77,10 +88,14 @@ var getCachedStringWidth = /* @__PURE__ */ __name((str) => {
77
88
  if (/^[\x20-\x7E]*$/.test(str)) {
78
89
  return str.length;
79
90
  }
91
+ if (str.length > MAX_STRING_LENGTH_TO_CACHE) {
92
+ return stringWidth(str);
93
+ }
80
94
  if (stringWidthCache.has(str)) {
81
95
  return stringWidthCache.get(str);
82
96
  }
83
97
  const width = stringWidth(str);
98
+ evictOldestTextCacheEntry(stringWidthCache);
84
99
  stringWidthCache.set(str, width);
85
100
  return width;
86
101
  }, "getCachedStringWidth");
@@ -3,13 +3,13 @@
3
3
  import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol
6
- } from "./chunk-4S5337WV.js";
6
+ } from "./chunk-OFTPCOGR.js";
7
7
  import {
8
8
  external_exports
9
9
  } from "./chunk-CQ35AJ4Z.js";
10
10
  import {
11
11
  stripRuntimeSnapshotPrefix
12
- } from "./chunk-5EYKMUUY.js";
12
+ } from "./chunk-544KT7X4.js";
13
13
  import {
14
14
  REASONING_EFFORT_TIERS,
15
15
  normalizeReasoningEffort
@@ -17,7 +17,7 @@ import {
17
17
  import {
18
18
  AuthType,
19
19
  MODEL_GENERATION_CONFIG_FIELDS
20
- } from "./chunk-4PKCUT7F.js";
20
+ } from "./chunk-2A6VQJYK.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -3,17 +3,17 @@
3
3
  import {
4
4
  getGitVersion,
5
5
  getNpmVersion
6
- } from "./chunk-XHRY7BXD.js";
6
+ } from "./chunk-MDIGJH5X.js";
7
7
  import {
8
8
  buildEnvStatusFromEnv,
9
9
  snapshotProcessEnv
10
- } from "./chunk-NM5V5OVW.js";
10
+ } from "./chunk-CEXU72GE.js";
11
11
  import {
12
12
  mapDomainErrorToErrorKind
13
- } from "./chunk-QNQAPSN2.js";
13
+ } from "./chunk-UC67T4SF.js";
14
14
  import {
15
15
  canUseRipgrep
16
- } from "./chunk-4S5337WV.js";
16
+ } from "./chunk-OFTPCOGR.js";
17
17
  import {
18
18
  init_esbuild_shims
19
19
  } from "./chunk-5O2XNYP6.js";
@@ -19,7 +19,7 @@ import {
19
19
  taskHasLegacyCondition,
20
20
  taskHasLegacyRunMode,
21
21
  updateCronTasks
22
- } from "./chunk-Y3YCSWG5.js";
22
+ } from "./chunk-OBJYN4MX.js";
23
23
  import {
24
24
  ToolNames
25
25
  } from "./chunk-6HY6IF3Z.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  useKeypress
5
- } from "./chunk-M732YJPW.js";
5
+ } from "./chunk-RXHBTKMG.js";
6
6
  import {
7
7
  require_react
8
8
  } from "./chunk-5QWWOFGG.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-HUTNYWBG.js";
11
+ } from "./chunk-VTOLYFWM.js";
12
12
  import {
13
13
  APPROVAL_MODES
14
14
  } from "./chunk-RWDNJBWN.js";
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-QIH2HAEN.js";
8
+ } from "./chunk-SFJMFZT5.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-WGHHA7ZH.js";
@@ -11,7 +11,7 @@ import {
11
11
  } from "./chunk-DJ2GSRLV.js";
12
12
  import {
13
13
  atomicWriteFile
14
- } from "./chunk-FDGGZIYW.js";
14
+ } from "./chunk-YECDICIO.js";
15
15
  import {
16
16
  Storage,
17
17
  createDebugLogger
@@ -15,7 +15,7 @@ import {
15
15
  } from "./chunk-5QWWOFGG.js";
16
16
  import {
17
17
  toCodePoints
18
- } from "./chunk-4NFY2S7N.js";
18
+ } from "./chunk-E7REAOTN.js";
19
19
  import {
20
20
  stringWidth
21
21
  } from "./chunk-2MIN6GRR.js";