@qwen-code/qwen-code 0.21.13 → 0.21.14-nightly.20260822.7a4566cb3b

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 (400) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +15 -7
  2. package/bundled/qc-helper/docs/extension/introduction.md +2 -0
  3. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
  5. package/bundled/qc-helper/docs/features/code-review.md +25 -3
  6. package/bundled/qc-helper/docs/features/commands.md +120 -8
  7. package/bundled/qc-helper/docs/features/markdown-rendering.md +6 -0
  8. package/bundled/qc-helper/docs/features/sub-agents.md +3 -3
  9. package/bundled/qc-helper/docs/features/terminal-images.md +50 -0
  10. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
  11. package/bundled/qc-helper/docs/qwen-serve.md +21 -4
  12. package/bundled/review/SKILL.md +113 -62
  13. package/chunks/MaxSizedBox-NCWYES5B.js +98 -0
  14. package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-A4V4F64Y.js} +80 -79
  15. package/chunks/{acp-startup-profiler-NMDXYGDN.js → acp-startup-profiler-DDVSJKJK.js} +2 -2
  16. package/chunks/{acpAgent-XPES32S7.js → acpAgent-YYRH7HTQ.js} +1094 -278
  17. package/chunks/{agent-DPTOZFEM.js → agent-NEM254CJ.js} +52 -51
  18. package/chunks/agent-headless-AVFYIRPV.js +88 -0
  19. package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-IWFTSBSV.js} +25 -25
  20. package/chunks/{artifact-tool-GEXTOPVO.js → artifact-tool-SBXMTVCB.js} +3 -3
  21. package/chunks/{askUserQuestion-B33XRSB7.js → askUserQuestion-KEQJRFD6.js} +3 -3
  22. package/chunks/{bridge-YNQBAA4Z.js → bridge-2CGOUO25.js} +59 -57
  23. package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
  24. package/chunks/{channel-management-service-GWY2GAIC.js → channel-management-service-FUJ2EFTF.js} +1 -1
  25. package/chunks/channel-settings-store-AZKNHHDC.js +103 -0
  26. package/chunks/{channel-worker-group-7LXCMZ77.js → channel-worker-group-CTE54QL6.js} +8 -7
  27. package/chunks/{channel-worker-manager-RYEME4ZZ.js → channel-worker-manager-4EHTD3T4.js} +8 -7
  28. package/chunks/{channel-worker-supervisor-OEVWBHGT.js → channel-worker-supervisor-F6I6WSWW.js} +6 -5
  29. package/chunks/{chunk-KD5BOPLP.js → chunk-2G4QF4VI.js} +125 -31
  30. package/chunks/{chunk-BHILXOC3.js → chunk-2MTIAN5Z.js} +3 -3
  31. package/chunks/{chunk-A4QRWUDE.js → chunk-2NWPB6T4.js} +6 -6
  32. package/chunks/{chunk-KV27IEHM.js → chunk-2TRNCJK4.js} +1 -1
  33. package/chunks/{chunk-EL5SXY3T.js → chunk-32CHFLGV.js} +198 -23
  34. package/chunks/{chunk-5CVO7YES.js → chunk-36OF5PRW.js} +1 -1
  35. package/chunks/{chunk-X26JYGTD.js → chunk-37BZSWEV.js} +1 -1
  36. package/chunks/{chunk-WFSTRPRO.js → chunk-3CLIDIVQ.js} +3 -3
  37. package/chunks/{chunk-A267JX7H.js → chunk-3HWN4E7N.js} +18 -18
  38. package/chunks/{chunk-ZYYTZUI2.js → chunk-3LYGXZ2H.js} +3 -3
  39. package/chunks/chunk-3SIGAHUX.js +3969 -0
  40. package/chunks/{chunk-BVJS5BSP.js → chunk-3XD4PT3B.js} +1 -1
  41. package/chunks/{chunk-6QFDQMQX.js → chunk-3ZFJUBTP.js} +1 -1
  42. package/chunks/{chunk-HUTNYWBG.js → chunk-45UD2TU4.js} +19 -11
  43. package/chunks/{chunk-4W5U2TUT.js → chunk-4F5WV4RF.js} +4 -4
  44. package/chunks/{chunk-I3G5JWBV.js → chunk-4GP3MNQ2.js} +2695 -1524
  45. package/chunks/{chunk-V26NVGAU.js → chunk-4MIDDJLJ.js} +8 -3
  46. package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
  47. package/chunks/{chunk-V57QC6WW.js → chunk-5OTMZVPL.js} +11 -9
  48. package/chunks/{chunk-MC4TLKEI.js → chunk-5PHLBWBL.js} +3 -3
  49. package/chunks/chunk-64LXOKG4.js +367 -0
  50. package/chunks/{chunk-6HY6IF3Z.js → chunk-6NFAEG54.js} +22 -2
  51. package/chunks/{chunk-TIGA2IVL.js → chunk-6NJIPX6W.js} +10 -298
  52. package/chunks/{chunk-MRMJCLIY.js → chunk-6RB2S4QP.js} +3 -3
  53. package/chunks/chunk-6S2OXVJT.js +369 -0
  54. package/chunks/{chunk-O4D7SPJN.js → chunk-6U46RZ25.js} +3 -3
  55. package/chunks/{chunk-JOOFMXGF.js → chunk-6UDHEIUT.js} +6 -6
  56. package/chunks/{chunk-VOQXFAY5.js → chunk-74TONY4F.js} +286 -0
  57. package/chunks/{chunk-LJQAUZMR.js → chunk-7CPJMZVJ.js} +1627 -180
  58. package/chunks/{chunk-T3CHYWJZ.js → chunk-7E7UCJHS.js} +100 -4
  59. package/chunks/{chunk-YZHRN3CF.js → chunk-7IV52LTO.js} +2 -2
  60. package/chunks/{chunk-4PKCUT7F.js → chunk-7JDGSJQH.js} +7 -7
  61. package/chunks/{chunk-GO7STP6N.js → chunk-7VITNOH6.js} +4 -4
  62. package/chunks/{chunk-CU6GJD55.js → chunk-7WLFSDLG.js} +1 -1
  63. package/chunks/{chunk-4WKAA4KS.js → chunk-A4N4FTMH.js} +1 -11
  64. package/chunks/{chunk-BUQDLC2G.js → chunk-A5F2YNO6.js} +3 -3
  65. package/chunks/{chunk-OY5RNSV4.js → chunk-AGCLK4G7.js} +3 -3
  66. package/chunks/{chunk-IA2K2HJE.js → chunk-AP3B7LKD.js} +2 -2
  67. package/chunks/{chunk-Y3YCSWG5.js → chunk-AZF6SME3.js} +2 -2
  68. package/chunks/{chunk-QFJ5JHQR.js → chunk-C72BXMJ5.js} +1 -1
  69. package/chunks/chunk-CETB5XY4.js +3654 -0
  70. package/chunks/{chunk-AA2BEKV3.js → chunk-CTAP6PO3.js} +3 -3
  71. package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
  72. package/chunks/{chunk-QF2NHSPB.js → chunk-D534POS2.js} +274 -225
  73. package/chunks/{chunk-UKMR3CKV.js → chunk-D7QQ6RUB.js} +24 -9
  74. package/chunks/{chunk-DXIBNLBZ.js → chunk-DB2OKNTU.js} +2 -2
  75. package/chunks/{chunk-DGZEMW5R.js → chunk-DJEHYM4H.js} +3 -3
  76. package/chunks/{chunk-O565M6A4.js → chunk-DRVS6K7A.js} +260 -16
  77. package/chunks/{chunk-U3VNBPUO.js → chunk-DV4375RD.js} +5 -5
  78. package/chunks/{chunk-OXCMMLED.js → chunk-E63A23D7.js} +3 -3
  79. package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
  80. package/chunks/{chunk-6ORZ2EDC.js → chunk-EW2IQ3ID.js} +3 -3
  81. package/chunks/{chunk-DGK6P3BQ.js → chunk-EXVK5R7X.js} +13 -13
  82. package/chunks/{chunk-NWNEANAT.js → chunk-FOGQO4FG.js} +953 -660
  83. package/chunks/{chunk-3U3VAL47.js → chunk-FV6PXZRO.js} +1 -1
  84. package/chunks/{chunk-76J3IJ3M.js → chunk-FX5TGHDE.js} +8 -8
  85. package/chunks/{chunk-QIH2HAEN.js → chunk-GXG4PYQB.js} +1 -1
  86. package/chunks/{chunk-FDGGZIYW.js → chunk-HDKCKCYO.js} +3 -3
  87. package/chunks/{chunk-RIAABG2K.js → chunk-HERHU33B.js} +2 -2
  88. package/chunks/{chunk-ZYBBISBY.js → chunk-HETN3NE2.js} +18 -15
  89. package/chunks/{chunk-XIT3GURH.js → chunk-HGBACZGD.js} +3 -3
  90. package/chunks/{chunk-UZPM4XHR.js → chunk-HGH7DXNI.js} +29 -8
  91. package/chunks/{chunk-CHHABXPE.js → chunk-HIK2OF33.js} +1 -1
  92. package/chunks/{chunk-FC4KQFCS.js → chunk-HMJ2P3SV.js} +1 -1
  93. package/chunks/chunk-HRVMTN37.js +26 -0
  94. package/chunks/{chunk-PQ36L4F5.js → chunk-HZZGYJIP.js} +1 -1
  95. package/chunks/{chunk-PT4I7NBA.js → chunk-I432KXWD.js} +1 -1
  96. package/chunks/{chunk-3EZLLVDF.js → chunk-IBJ5S45N.js} +3 -3
  97. package/chunks/{chunk-A4MFR4C5.js → chunk-IO257NUD.js} +3 -5
  98. package/chunks/{chunk-MIPFDQAF.js → chunk-ISJMN3ML.js} +1 -1
  99. package/chunks/chunk-IWOWEENB.js +9169 -0
  100. package/chunks/{chunk-XHRY7BXD.js → chunk-J6SIP2IT.js} +4 -4
  101. package/chunks/{chunk-OD2WU5QY.js → chunk-J7JQXYVL.js} +1 -1
  102. package/chunks/{chunk-NEFOOD54.js → chunk-J7VPB2HF.js} +4 -4
  103. package/chunks/{chunk-P7MPQI75.js → chunk-JGUBDRBC.js} +2 -2
  104. package/chunks/{chunk-SXCOEJO4.js → chunk-JOLJTKIG.js} +1 -1
  105. package/chunks/{chunk-NTTBXH7U.js → chunk-JS73NNWF.js} +8 -0
  106. package/chunks/{chunk-QRCNA3SR.js → chunk-JXLPQTMW.js} +50 -70
  107. package/chunks/{chunk-NNHNLJ2X.js → chunk-K2MSGB3W.js} +317 -72
  108. package/chunks/{chunk-KBXKR5R2.js → chunk-K52PZNU4.js} +1 -1
  109. package/chunks/{chunk-OOQUVWIG.js → chunk-K5OIW3I7.js} +4 -4
  110. package/chunks/{chunk-SOORFWKY.js → chunk-KSPRQSB4.js} +1 -1
  111. package/chunks/{chunk-WSH6GRKG.js → chunk-KVGR4MCF.js} +3 -3
  112. package/chunks/{chunk-6YKYPVDV.js → chunk-LC5M7YVE.js} +4 -4
  113. package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
  114. package/chunks/{chunk-OMLJNPBE.js → chunk-LDGWX737.js} +84 -4
  115. package/chunks/{chunk-FAAUPSY2.js → chunk-LI4YHTQK.js} +1 -1
  116. package/chunks/{chunk-CXAOG665.js → chunk-LIKIJAUH.js} +2 -2
  117. package/chunks/chunk-LJZSMWOH.js +18 -0
  118. package/chunks/{chunk-BKPPWD33.js → chunk-M2IL2RTA.js} +22 -2
  119. package/chunks/{chunk-N5YPT6PH.js → chunk-MHOY756Q.js} +25 -13
  120. package/chunks/{chunk-YP5KH5Y7.js → chunk-ND7NOI4P.js} +1 -1
  121. package/chunks/{chunk-AW4TRXOC.js → chunk-NP2LV67M.js} +1 -1
  122. package/chunks/{chunk-GGDBMYGZ.js → chunk-NQB52P65.js} +5 -5
  123. package/chunks/{chunk-E3DYKPYZ.js → chunk-NUGZAFR2.js} +3 -3
  124. package/chunks/{chunk-GMIEIY3Y.js → chunk-O5BDEWBC.js} +3 -3
  125. package/chunks/{chunk-GDXET5XU.js → chunk-O5Z7EB6Y.js} +3 -3
  126. package/chunks/{chunk-5EYKMUUY.js → chunk-OTXXOZKW.js} +1 -1
  127. package/chunks/{chunk-M732YJPW.js → chunk-PALTIYXB.js} +6 -6
  128. package/chunks/{chunk-7UXUJ5T3.js → chunk-PLECQWDB.js} +1 -1
  129. package/chunks/{chunk-MLPXSYXR.js → chunk-PMIKPGDF.js} +66 -32
  130. package/chunks/{chunk-IWPYVAO2.js → chunk-PSQJ24ZZ.js} +3 -3
  131. package/chunks/{chunk-CPHEPGAO.js → chunk-PZRUV52H.js} +2 -2
  132. package/chunks/{chunk-PP4FUZNV.js → chunk-Q7RPLE33.js} +2 -2
  133. package/chunks/{chunk-S5DWMTHO.js → chunk-QQUVPMMZ.js} +2 -0
  134. package/chunks/{chunk-JUEPY766.js → chunk-RNGTMHKN.js} +3 -3
  135. package/chunks/{chunk-TUGSVUJB.js → chunk-ROV6B34L.js} +6 -6
  136. package/chunks/{chunk-RVOJ2FBP.js → chunk-RPJOOK6N.js} +1576 -10633
  137. package/chunks/{chunk-AXN7UPYQ.js → chunk-RQJJZQOH.js} +2 -2
  138. package/chunks/{chunk-AFSG32D5.js → chunk-RRRCWDFO.js} +1 -1
  139. package/chunks/{chunk-2M55OBEB.js → chunk-S3G6YFQC.js} +1 -1
  140. package/chunks/{chunk-4S5337WV.js → chunk-SVU5KGR7.js} +6527 -3314
  141. package/chunks/chunk-TBVSALA3.js +1109 -0
  142. package/chunks/{chunk-QUGAUQGJ.js → chunk-TBWQLLFO.js} +2 -0
  143. package/chunks/{chunk-AS5IN4GK.js → chunk-THK3QUU6.js} +5 -5
  144. package/chunks/{chunk-JNDY2MDR.js → chunk-TLDZKNZP.js} +1 -1
  145. package/chunks/{chunk-ZZO74WKW.js → chunk-TNAIZBPQ.js} +115 -28
  146. package/chunks/{chunk-3Z43GZUQ.js → chunk-TXASDT2M.js} +1 -1
  147. package/chunks/{chunk-CZBYX5MY.js → chunk-U53XZHAE.js} +1 -1
  148. package/chunks/{chunk-HIBNSEJE.js → chunk-UDG5EZJI.js} +0 -2
  149. package/chunks/{chunk-QNQAPSN2.js → chunk-URN2JIAQ.js} +4 -1
  150. package/chunks/{chunk-EZ5RP345.js → chunk-UYQTX2P6.js} +44 -13
  151. package/chunks/{chunk-BZ263IKX.js → chunk-UZPYR3EV.js} +1 -1
  152. package/chunks/{chunk-YZOSNW4R.js → chunk-VFACN2CE.js} +1 -1
  153. package/chunks/{chunk-RWDNJBWN.js → chunk-VLRBJ24J.js} +2 -2
  154. package/chunks/{chunk-NHDR76JX.js → chunk-VMJL7RH6.js} +4 -4
  155. package/chunks/{chunk-E23IPNGS.js → chunk-VOTDAZR7.js} +35 -6
  156. package/chunks/{chunk-XLLKYULU.js → chunk-VSNPOSDN.js} +2 -2
  157. package/chunks/{chunk-25EYDK42.js → chunk-VUMLT7E5.js} +2 -2
  158. package/chunks/{chunk-H4A72DE5.js → chunk-W4CRPSC5.js} +1 -1
  159. package/chunks/{chunk-NM5V5OVW.js → chunk-WJJYJVQE.js} +3 -3
  160. package/chunks/{chunk-ROIYNTHJ.js → chunk-WRT324N6.js} +3 -3
  161. package/chunks/chunk-WZAD4ZNJ.js +59 -0
  162. package/chunks/{chunk-SG7ZP5PG.js → chunk-WZDM44SB.js} +4 -4
  163. package/chunks/{chunk-JE7KQ2UP.js → chunk-XIQ5HQ2F.js} +469 -77
  164. package/chunks/{chunk-QV5YN5YD.js → chunk-XJOHLP2A.js} +5 -5
  165. package/chunks/{chunk-XUJNK7Y6.js → chunk-XL5K4SVK.js} +1 -1
  166. package/chunks/{chunk-CKSJECTU.js → chunk-XZJKSETB.js} +9 -5
  167. package/chunks/{chunk-YEYY7TEP.js → chunk-Y2FEAXLP.js} +7 -7
  168. package/chunks/{chunk-2B2BF7P7.js → chunk-YDJRMQU4.js} +3 -3
  169. package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
  170. package/chunks/{chunk-OVZPVYZB.js → chunk-YMVFIYHV.js} +96 -18
  171. package/chunks/{chunk-WGHHA7ZH.js → chunk-Z3JMO2CH.js} +1 -1
  172. package/chunks/{chunk-MA2HEDVP.js → chunk-ZRYQMWEP.js} +3 -3
  173. package/chunks/{chunk-IGGGG5CX.js → chunk-ZTAT23TL.js} +15948 -10201
  174. package/chunks/{computer-use-77C5FHMW.js → computer-use-H2T7IFYX.js} +55 -54
  175. package/chunks/{config-utils-IVHRSXWI.js → config-utils-3DY73VIJ.js} +2 -2
  176. package/chunks/contextCommand-5AAZFFFV.js +94 -0
  177. package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-JWFNKO2S.js} +57 -55
  178. package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-33HIYIJE.js} +58 -56
  179. package/chunks/{create-sub-session-KRQULJE6.js → create-sub-session-XBCVGNFU.js} +6 -4
  180. package/chunks/{cron-create-H7UEPDSN.js → cron-create-IKA56DAF.js} +5 -5
  181. package/chunks/{cron-delete-6SZK7YFM.js → cron-delete-K5Q62EGH.js} +5 -5
  182. package/chunks/{cron-list-H25JIHEZ.js → cron-list-QBFGAMP7.js} +5 -5
  183. package/chunks/{daemon-2KTG7ZBN.js → daemon-NNCQ3HWT.js} +806 -147
  184. package/chunks/{daemon-git-worktree-guard-DXYIMWFT.js → daemon-git-worktree-guard-6233JAPJ.js} +54 -53
  185. package/chunks/daemon-status-provider-3EI2KALQ.js +104 -0
  186. package/chunks/daemon-trust-policy-QWWU7CON.js +100 -0
  187. package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-FH7GBAKN.js} +60 -59
  188. package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
  189. package/chunks/{deferred-core-runtime-3SGXFXEQ.js → deferred-core-runtime-EDUZQRME.js} +52 -51
  190. package/chunks/{discovery-ORA5J7YP.js → discovery-X2NV535U.js} +1 -1
  191. package/chunks/{display-image-ON3EYFRD.js → display-image-OEJMJV3S.js} +5 -5
  192. package/chunks/{dist-YEPL4RAW.js → dist-5EV2G6MC.js} +2 -3
  193. package/chunks/{dist-MAQXAQ2Y.js → dist-EQ3Q5XHX.js} +45337 -32756
  194. package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
  195. package/chunks/{dist-JWMKPWT5.js → dist-EUOUPUFO.js} +3 -4
  196. package/chunks/{dist-IYYN3RUT.js → dist-UOFRXJT6.js} +2798 -1250
  197. package/chunks/{earlyInputCapture-KJMLFVQV.js → earlyInputCapture-VSP42LUR.js} +53 -52
  198. package/chunks/{edit-I4LQFAEC.js → edit-ZTLO5ASX.js} +60 -58
  199. package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
  200. package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-TMTPDS2S.js} +55 -54
  201. package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-UBAXFMYI.js} +55 -54
  202. package/chunks/{environment-S7CTIHMX.js → environment-C2CZN7CB.js} +55 -54
  203. package/chunks/{errors-7HB2AIDS.js → errors-ZUNFQINF.js} +54 -53
  204. package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-572NWEPJ.js} +55 -54
  205. package/chunks/exitPlanMode-QTIXFGZT.js +86 -0
  206. package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-CEEVHQL3.js} +3 -3
  207. package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
  208. package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
  209. package/chunks/{gemini-RSUFP5OE.js → gemini-I2YR6GMS.js} +114 -112
  210. package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-GQWNDZQF.js} +7 -7
  211. package/chunks/getMachineId-bsd-FBOAYNSY.js +48 -0
  212. package/chunks/{getMachineId-bsd-FG7IUY6U.js → getMachineId-bsd-YH7RURBZ.js} +4 -4
  213. package/chunks/{getMachineId-darwin-GLCJI2RA.js → getMachineId-darwin-H6USQYNI.js} +4 -4
  214. package/chunks/getMachineId-darwin-RNJLJUXY.js +47 -0
  215. package/chunks/{getMachineId-linux-O6OPPAKO.js → getMachineId-linux-HF2N63ET.js} +3 -3
  216. package/chunks/getMachineId-linux-UEVRAIAB.js +41 -0
  217. package/chunks/getMachineId-unsupported-FWXYJ7HW.js +31 -0
  218. package/chunks/{getMachineId-unsupported-S6CKYVGC.js → getMachineId-unsupported-NYA5DXRB.js} +3 -3
  219. package/chunks/getMachineId-win-LRVGMHLW.js +50 -0
  220. package/chunks/{getMachineId-win-X5SRNEH7.js → getMachineId-win-SMEGY2DW.js} +4 -4
  221. package/chunks/{glob-J4RUJAHX.js → glob-XFBL2RVT.js} +58 -57
  222. package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-TLJCE7YZ.js} +6 -6
  223. package/chunks/{grep-VJWPLFOT.js → grep-U675LEXE.js} +55 -54
  224. package/chunks/handleAutoUpdate-R6RUCIA2.js +97 -0
  225. package/chunks/{i18n-RM5YOICI.js → i18n-SJCZDZ4C.js} +53 -52
  226. package/chunks/{image-gen-EXECB5XM.js → image-gen-6VY7CA7C.js} +14 -14
  227. package/chunks/initializer-CRDZXJOG.js +101 -0
  228. package/chunks/installationInfo-EW3NEJDZ.js +95 -0
  229. package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
  230. package/chunks/{keychain-token-storage-3XFJ5ZB2.js → keychain-token-storage-MTFTAESK.js} +3 -3
  231. package/chunks/list-TZEMTXDH.js +104 -0
  232. package/chunks/{list-agents-OSVDFI6S.js → list-agents-43XUEXJV.js} +6 -6
  233. package/chunks/loadedSettingsAdapter-47DG424L.js +98 -0
  234. package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-77C6O5VW.js} +31 -29
  235. package/chunks/{loop-wakeup-WQS6JYAG.js → loop-wakeup-E54KDUXC.js} +6 -6
  236. package/chunks/{ls-D3HUFHDP.js → ls-CGL2UC3H.js} +7 -7
  237. package/chunks/{lsp-3QDDJTCS.js → lsp-5IKUO5DX.js} +3 -3
  238. package/chunks/{managed-npm-update-E7IW6N7V.js → managed-npm-update-AJ5GZRUA.js} +53 -52
  239. package/chunks/mcp-AQK656Y4.js +98 -0
  240. package/chunks/{monitor-EE2UYMGE.js → monitor-UDZXKYT3.js} +55 -54
  241. package/chunks/nonInteractiveCli-6NC3NLZM.js +166 -0
  242. package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-G6WZI2YT.js} +59 -57
  243. package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-IHVHP3VB.js} +32 -32
  244. package/chunks/{pidfile-4XSFLYBZ.js → pidfile-EBKS2HBK.js} +53 -52
  245. package/chunks/{processUtils-WDA2MJFD.js → processUtils-B7M35ZLR.js} +2 -2
  246. package/chunks/prompt-terminal-ledger-5JYOPOII.js +93 -0
  247. package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
  248. package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-WCJPPTED.js} +59 -58
  249. package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-S2CLBSEZ.js} +10 -10
  250. package/chunks/read-file-WFM53FTW.js +33 -0
  251. package/chunks/{read-mcp-resource-XD54ZQMC.js → read-mcp-resource-XYES2B42.js} +3 -3
  252. package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-W3IBTGL7.js} +10 -6
  253. package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-CK4ZC6YO.js} +59 -58
  254. package/chunks/ripGrep-B3PBLEQ3.js +86 -0
  255. package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
  256. package/chunks/{run-qwen-serve-3QSGRXAN.js → run-qwen-serve-DC5RXI6N.js} +537 -185
  257. package/chunks/{runtime-5MLLZ7DC.js → runtime-UVEETF54.js} +63 -62
  258. package/chunks/{scheduler-RPBJ63CH.js → scheduler-MWT3UMVN.js} +54 -53
  259. package/chunks/{sdk-exporters-grpc-54L4LS5L.js → sdk-exporters-grpc-6J5CKOMO.js} +194 -75
  260. package/chunks/{sdk-exporters-http-XUVP63H6.js → sdk-exporters-http-Q3YZ4752.js} +40 -45
  261. package/chunks/{sdk-impl-YXUEN2Z2.js → sdk-impl-BOMCAN2Z.js} +7211 -5454
  262. package/chunks/{send-message-VZENRWRH.js → send-message-J4VT46OI.js} +8 -8
  263. package/chunks/{serve-HS3XLPXU.js → serve-AKM75GTE.js} +60 -61
  264. package/chunks/{server-TC4A7AAZ.js → server-KU7XIDVT.js} +2221 -399
  265. package/chunks/{session-UBOFXVMN.js → session-DKVYIRWN.js} +108 -105
  266. package/chunks/{settings-D5644OM5.js → settings-NS3PXZDP.js} +63 -62
  267. package/chunks/{shell-3PZULQQV.js → shell-UXCNM2OK.js} +52 -51
  268. package/chunks/{skill-PEVVXQ3L.js → skill-KV7YCCTM.js} +30 -28
  269. package/chunks/{skill-settings-J65JKKES.js → skill-settings-EXW7ESWJ.js} +59 -58
  270. package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-FCP44P4V.js} +55 -54
  271. package/chunks/{standalone-update-IFM53PE7.js → standalone-update-RGW3B2DX.js} +55 -54
  272. package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-UZMF2BIJ.js} +615 -392
  273. package/chunks/{syntheticOutput-7GWFIDXT.js → syntheticOutput-JAXMIMZP.js} +4 -4
  274. package/chunks/{task-create-FCBDX7UH.js → task-create-I2H322E4.js} +12 -12
  275. package/chunks/{task-list-YIYIUFUA.js → task-list-3OLIWFTQ.js} +21 -7
  276. package/chunks/{task-stop-X37KYTKB.js → task-stop-JAUY6MSY.js} +3 -3
  277. package/chunks/{task-update-MYPFVOVM.js → task-update-B3XO4CPI.js} +87 -16
  278. package/chunks/{team-create-ZAIA7KAV.js → team-create-77XY3KAE.js} +56 -56
  279. package/chunks/{team-delete-6UMU4XLS.js → team-delete-Q7GE7RRI.js} +6 -6
  280. package/chunks/{team-plan-approval-UNIUS7OD.js → team-plan-approval-TAQANDQG.js} +55 -54
  281. package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-V4LIF5NS.js} +54 -53
  282. package/chunks/theme-manager-KKBAJ574.js +90 -0
  283. package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-FJJTY2TI.js} +7 -7
  284. package/chunks/{tool-search-5R2OE4C7.js → tool-search-GZJYRK4I.js} +25 -24
  285. package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-NIBNWXHE.js} +59 -57
  286. package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-7GEI2NYC.js} +53 -52
  287. package/chunks/{undici-PYHBDDPN.js → undici-S7WJSKGJ.js} +962 -391
  288. package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-OA3OEBMD.js} +5 -5
  289. package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-QVHQEVIY.js} +56 -55
  290. package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-WZ27J7NY.js} +64 -63
  291. package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-OXJA2JWG.js} +99 -96
  292. package/chunks/{version-G5A5DGVS.js → version-KJO64WD7.js} +1 -1
  293. package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-CC5INI2R.js} +25 -23
  294. package/chunks/{web-search-5OXHEZPV.js → web-search-MOAUAN6N.js} +18 -18
  295. package/chunks/{web-shell-static-O73YPVVC.js → web-shell-static-3NUTRHAH.js} +4 -5
  296. package/chunks/{workflow-ISQJHPG2.js → workflow-BN2ZEJMK.js} +366 -105
  297. package/chunks/workspace-providers-status-R5QTZFK3.js +101 -0
  298. package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-WMSLM36M.js} +1 -1
  299. package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-J3RUCXH6.js} +59 -57
  300. package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-JJZFPKM4.js} +66 -65
  301. package/chunks/workspace-skills-status-DRIOZRIA.js +101 -0
  302. package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-YAYSN6CX.js} +69 -67
  303. package/chunks/write-file-7HXHFFOY.js +88 -0
  304. package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
  305. package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
  306. package/chunks/{zoom-image-4BFYJ3HG.js → zoom-image-EFMQMU4G.js} +24 -22
  307. package/cli.js +15 -15
  308. package/locales/ca.js +13 -0
  309. package/locales/de.js +12 -0
  310. package/locales/en.js +11 -0
  311. package/locales/fr.js +13 -0
  312. package/locales/ja.js +13 -0
  313. package/locales/pt.js +12 -0
  314. package/locales/ru.js +12 -0
  315. package/locales/zh-TW.js +11 -0
  316. package/locales/zh.js +11 -0
  317. package/package.json +3 -3
  318. package/web-shell/assets/{arc-CgOpDKvm.js → arc-BCP1f-bN.js} +1 -1
  319. package/web-shell/assets/{architectureDiagram-3BPJPVTR-0Ag_m34F.js → architectureDiagram-3BPJPVTR-D-6ajMay.js} +1 -1
  320. package/web-shell/assets/{blockDiagram-GPEHLZMM-IwTwFau0.js → blockDiagram-GPEHLZMM-CcLlnVnf.js} +1 -1
  321. package/web-shell/assets/{c4Diagram-AAUBKEIU-DLa5GUv8.js → c4Diagram-AAUBKEIU-C_Sp9UwQ.js} +1 -1
  322. package/web-shell/assets/channel-BcImYzbA.js +1 -0
  323. package/web-shell/assets/{chunk-2J33WTMH-DcYP-WFG.js → chunk-2J33WTMH-CG0ngvo9.js} +1 -1
  324. package/web-shell/assets/{chunk-4BX2VUAB-C8MVPMiQ.js → chunk-4BX2VUAB-D43LsVdk.js} +1 -1
  325. package/web-shell/assets/{chunk-55IACEB6-BUi4Yfv3.js → chunk-55IACEB6-BqNIn5rz.js} +1 -1
  326. package/web-shell/assets/{chunk-727SXJPM-Cy3Su2YY.js → chunk-727SXJPM-BSHmO08Y.js} +1 -1
  327. package/web-shell/assets/{chunk-AQP2D5EJ-Dp8Teqv6.js → chunk-AQP2D5EJ-CMUbr5tQ.js} +1 -1
  328. package/web-shell/assets/{chunk-FMBD7UC4-BDTDM-4j.js → chunk-FMBD7UC4-Cm6JflnZ.js} +1 -1
  329. package/web-shell/assets/{chunk-ND2GUHAM-7HfDt0r2.js → chunk-ND2GUHAM-CBR39YQZ.js} +1 -1
  330. package/web-shell/assets/{chunk-QZHKN3VN-BIBU0uCF.js → chunk-QZHKN3VN-CWnqaLb-.js} +1 -1
  331. package/web-shell/assets/classDiagram-4FO5ZUOK-OWx0rDRW.js +1 -0
  332. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-OWx0rDRW.js +1 -0
  333. package/web-shell/assets/{cose-bilkent-S5V4N54A-DRLdcg9p.js → cose-bilkent-S5V4N54A-DJlTdnfD.js} +1 -1
  334. package/web-shell/assets/{dagre-BM42HDAG-DCCgDwqW.js → dagre-BM42HDAG-1AFN1uVc.js} +1 -1
  335. package/web-shell/assets/{diagram-2AECGRRQ-CsBTBmk3.js → diagram-2AECGRRQ-gC0GGNSW.js} +1 -1
  336. package/web-shell/assets/{diagram-5GNKFQAL-C9qjH8Lt.js → diagram-5GNKFQAL-CPmRPT1s.js} +1 -1
  337. package/web-shell/assets/{diagram-KO2AKTUF-Brjs_lj2.js → diagram-KO2AKTUF-atigp6Hr.js} +1 -1
  338. package/web-shell/assets/{diagram-LMA3HP47-DtiWCl_F.js → diagram-LMA3HP47-BJnJFSRQ.js} +1 -1
  339. package/web-shell/assets/{diagram-OG6HWLK6-DmfKLkBT.js → diagram-OG6HWLK6-CyvJ4fG2.js} +1 -1
  340. package/web-shell/assets/{erDiagram-TEJ5UH35-Bve_4deH.js → erDiagram-TEJ5UH35-CZac_jT6.js} +1 -1
  341. package/web-shell/assets/{flowDiagram-I6XJVG4X-C2_kXCcV.js → flowDiagram-I6XJVG4X-pd-LQxWB.js} +1 -1
  342. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BSBIjiTF.js → ganttDiagram-6RSMTGT7-CvB1at7l.js} +1 -1
  343. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CyebwI55.js → gitGraphDiagram-PVQCEYII-B5Y6nkil.js} +1 -1
  344. package/web-shell/assets/index-Bg3DAn8Z.js +1788 -0
  345. package/web-shell/assets/{index-d0yfnV1M.js → index-Bj3ZSUHL.js} +1 -1
  346. package/web-shell/assets/index-mp32EO88.css +5 -0
  347. package/web-shell/assets/{infoDiagram-5YYISTIA-CSDGnWxU.js → infoDiagram-5YYISTIA-BdyWvU4P.js} +1 -1
  348. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK4jU13p.js → ishikawaDiagram-YF4QCWOH-CaHbUdvN.js} +1 -1
  349. package/web-shell/assets/{journeyDiagram-JHISSGLW-D_W6j-oF.js → journeyDiagram-JHISSGLW-DR9F3FpG.js} +1 -1
  350. package/web-shell/assets/{kanban-definition-UN3LZRKU-C7xf-SdC.js → kanban-definition-UN3LZRKU-BoEUbkw2.js} +1 -1
  351. package/web-shell/assets/{linear-DQmzxpxd.js → linear-DUbfzV4T.js} +1 -1
  352. package/web-shell/assets/{mermaid.core-9P7AGOLG.js → mermaid.core-CLLkPcpD.js} +5 -5
  353. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DgcgMyPk.js → mindmap-definition-RKZ34NQL-FuKI3Stt.js} +1 -1
  354. package/web-shell/assets/{pieDiagram-4H26LBE5-3wWGb9eG.js → pieDiagram-4H26LBE5-CVAHL7l5.js} +1 -1
  355. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BeCXnQw9.js → quadrantDiagram-W4KKPZXB-BkGi5fRj.js} +1 -1
  356. package/web-shell/assets/{requirementDiagram-4Y6WPE33-Bi1UOHDz.js → requirementDiagram-4Y6WPE33-B5ghV8-K.js} +1 -1
  357. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-lrLUjjbb.js → sankeyDiagram-5OEKKPKP-CKFbVhkQ.js} +1 -1
  358. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BFuqKz6Q.js → sequenceDiagram-3UESZ5HK-C5P9ujPd.js} +1 -1
  359. package/web-shell/assets/{stateDiagram-AJRCARHV-8DemQLhu.js → stateDiagram-AJRCARHV-CsDn-Rez.js} +1 -1
  360. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DpGKD1ez.js +1 -0
  361. package/web-shell/assets/{timeline-definition-PNZ67QCA-uzEuVQXg.js → timeline-definition-PNZ67QCA-B6oLBkTr.js} +1 -1
  362. package/web-shell/assets/{vennDiagram-CIIHVFJN-BQTeZ_-o.js → vennDiagram-CIIHVFJN-DvtBkYwp.js} +1 -1
  363. package/web-shell/assets/{wardley-L42UT6IY-B6yM5Im7.js → wardley-L42UT6IY-D2UwTX16.js} +1 -1
  364. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-ChM8bmgn.js → wardleyDiagram-YWT4CUSO-FnnfCxYI.js} +1 -1
  365. package/web-shell/assets/{xychartDiagram-2RQKCTM6-oNG6HyB1.js → xychartDiagram-2RQKCTM6-C1SaMQ7d.js} +1 -1
  366. package/web-shell/index.html +2 -2
  367. package/chunks/MaxSizedBox-UQALOVVT.js +0 -97
  368. package/chunks/agent-headless-GJCQMURW.js +0 -87
  369. package/chunks/channel-settings-store-WNWYFHG7.js +0 -102
  370. package/chunks/chunk-AZQ3DT76.js +0 -10017
  371. package/chunks/chunk-CR3C7WXL.js +0 -113
  372. package/chunks/chunk-K5IDV3PC.js +0 -519
  373. package/chunks/chunk-MPHPFVKK.js +0 -48
  374. package/chunks/chunk-RLKC46YT.js +0 -3582
  375. package/chunks/chunk-UPDOZBWO.js +0 -358
  376. package/chunks/contextCommand-PJ77GBWL.js +0 -93
  377. package/chunks/daemon-status-provider-ZDOYJCU6.js +0 -102
  378. package/chunks/daemon-trust-policy-E67OYUK2.js +0 -99
  379. package/chunks/exitPlanMode-R4JY7V2O.js +0 -85
  380. package/chunks/handleAutoUpdate-POCX2MNB.js +0 -94
  381. package/chunks/initializer-Z2AFGBNR.js +0 -100
  382. package/chunks/installationInfo-4I5FXNMH.js +0 -92
  383. package/chunks/list-ZMBFIGZA.js +0 -103
  384. package/chunks/loadedSettingsAdapter-T6TV4YJ7.js +0 -97
  385. package/chunks/mcp-6UNYX4HG.js +0 -97
  386. package/chunks/nonInteractiveCli-WAY237O4.js +0 -163
  387. package/chunks/read-file-TAFBKMNI.js +0 -32
  388. package/chunks/ripGrep-WOEK2PXS.js +0 -85
  389. package/chunks/theme-manager-Z3RIT7DB.js +0 -89
  390. package/chunks/undici-3FJYTMOF.js +0 -25914
  391. package/chunks/workspace-providers-status-2ZPZPUPZ.js +0 -100
  392. package/chunks/workspace-skills-status-RS4O7AIJ.js +0 -100
  393. package/chunks/write-file-EWXKVVXF.js +0 -87
  394. package/web-shell/assets/channel-BrGVBa2L.js +0 -1
  395. package/web-shell/assets/classDiagram-4FO5ZUOK-B5TUzJzI.js +0 -1
  396. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B5TUzJzI.js +0 -1
  397. package/web-shell/assets/index-CIDsgxTe.js +0 -1792
  398. package/web-shell/assets/index-DiQnWi_E.css +0 -5
  399. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DhM5ixYd.js +0 -1
  400. package/chunks/{dist-BROOP2EG.js → dist-LZO24N3E.js} +1 -1
@@ -2,29 +2,35 @@
2
2
  "use strict";
3
3
  import {
4
4
  performStandaloneUpdate
5
- } from "./chunk-NEFOOD54.js";
5
+ } from "./chunk-J7VPB2HF.js";
6
6
  import {
7
7
  updateEventEmitter
8
8
  } from "./chunk-YAF2MQZ6.js";
9
9
  import {
10
+ t
11
+ } from "./chunk-45UD2TU4.js";
12
+ import {
13
+ require_semver
14
+ } from "./chunk-2AUM35J5.js";
15
+ import {
16
+ getHomebrewLatestVersion,
10
17
  getInstallationInfo,
11
18
  resolveUpdateCommand
12
- } from "./chunk-BKPPWD33.js";
13
- import {
14
- t
15
- } from "./chunk-HUTNYWBG.js";
19
+ } from "./chunk-M2IL2RTA.js";
16
20
  import {
17
21
  createDebugLogger
18
- } from "./chunk-BUQDLC2G.js";
22
+ } from "./chunk-A5F2YNO6.js";
19
23
  import {
20
24
  init_esbuild_shims
21
25
  } from "./chunk-5O2XNYP6.js";
22
26
  import {
23
- __name
27
+ __name,
28
+ __toESM
24
29
  } from "./chunk-J2S4EL5Y.js";
25
30
 
26
31
  // packages/cli/src/utils/handleAutoUpdate.ts
27
32
  init_esbuild_shims();
33
+ var import_semver = __toESM(require_semver(), 1);
28
34
 
29
35
  // packages/cli/src/utils/spawnWrapper.ts
30
36
  init_esbuild_shims();
@@ -36,7 +42,7 @@ import os from "node:os";
36
42
  var debugLogger = createDebugLogger("AUTO_UPDATE");
37
43
  var UPDATE_SUCCESS_MESSAGE = "Update successful! The new version will be used on your next run.";
38
44
  var UPDATE_FAILED_MESSAGE = "Automatic update failed. Please try updating manually.";
39
- function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
45
+ async function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
40
46
  if (!info) {
41
47
  return;
42
48
  }
@@ -45,10 +51,19 @@ function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
45
51
  projectRoot,
46
52
  isAutoUpdateEnabled
47
53
  );
54
+ if (installationInfo.packageManager === "homebrew" /* HOMEBREW */) {
55
+ const installedVersion = import_semver.default.coerce(info.update.current)?.version;
56
+ const brewLatestVersion = import_semver.default.coerce(
57
+ await getHomebrewLatestVersion() ?? void 0
58
+ )?.version;
59
+ if (installedVersion && brewLatestVersion && !import_semver.default.gt(brewLatestVersion, installedVersion)) {
60
+ return;
61
+ }
62
+ }
48
63
  let combinedMessage = info.message;
49
64
  if (installationInfo.updateMessage) {
50
65
  combinedMessage += `
51
- ${installationInfo.updateMessage}`;
66
+ ${t(installationInfo.updateMessage)}`;
52
67
  }
53
68
  updateEventEmitter.emit("update-received", {
54
69
  message: combinedMessage
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  wrapForMultiplexer
5
- } from "./chunk-GMIEIY3Y.js";
5
+ } from "./chunk-O5BDEWBC.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-BUQDLC2G.js";
8
+ } from "./chunk-A5F2YNO6.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -19,15 +19,15 @@ import {
19
19
  taskHasLegacyCondition,
20
20
  taskHasLegacyRunMode,
21
21
  updateCronTasks
22
- } from "./chunk-Y3YCSWG5.js";
22
+ } from "./chunk-AZF6SME3.js";
23
23
  import {
24
24
  ToolNames
25
- } from "./chunk-6HY6IF3Z.js";
25
+ } from "./chunk-6NFAEG54.js";
26
26
  import {
27
27
  Storage,
28
28
  createDebugLogger,
29
29
  getProjectHash
30
- } from "./chunk-BUQDLC2G.js";
30
+ } from "./chunk-A5F2YNO6.js";
31
31
  import {
32
32
  init_esbuild_shims
33
33
  } from "./chunk-5O2XNYP6.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-NYWWQ437.js";
18
18
  import {
19
19
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
20
- } from "./chunk-S5DWMTHO.js";
20
+ } from "./chunk-QQUVPMMZ.js";
21
21
  import {
22
22
  MAX_WORKSPACE_PATH_LENGTH,
23
23
  translateAndCheckAbsoluteWorkspacePath
@@ -29,7 +29,7 @@ import {
29
29
  ROOT_CONTEXT,
30
30
  context,
31
31
  init_esm
32
- } from "./chunk-QUGAUQGJ.js";
32
+ } from "./chunk-TBWQLLFO.js";
33
33
  import {
34
34
  init_esbuild_shims
35
35
  } from "./chunk-5O2XNYP6.js";
@@ -923,9 +923,107 @@ function isDeepHealthQuery(raw) {
923
923
  }
924
924
  __name(isDeepHealthQuery, "isDeepHealthQuery");
925
925
 
926
- // packages/cli/src/serve/auth.ts
926
+ // packages/cli/src/serve/local-control/credentials.ts
927
927
  init_esbuild_shims();
928
928
  import { createHash, timingSafeEqual } from "node:crypto";
929
+ var CredentialStore = class {
930
+ static {
931
+ __name(this, "CredentialStore");
932
+ }
933
+ #runtime;
934
+ /** Pairing id → sha256 of the pairing secret. */
935
+ #pairing = /* @__PURE__ */ new Map();
936
+ constructor(runtimeToken) {
937
+ this.#runtime = hashToken(runtimeToken);
938
+ }
939
+ addPairingToken(id, token) {
940
+ this.#pairing.set(id, createHash("sha256").update(token, "utf8").digest());
941
+ }
942
+ revokePairingToken(id) {
943
+ return this.#pairing.delete(id);
944
+ }
945
+ /**
946
+ * Is the gate open — i.e. may an unauthenticated request through?
947
+ *
948
+ * Only ever true on the primary listener of a no-token loopback daemon,
949
+ * preserving today's developer default. The LAN listener is never open: it
950
+ * exists only while a pairing token does, and it must not inherit the
951
+ * "operator chose the surface area" reasoning that governs `--hostname`.
952
+ */
953
+ isOpen(listener) {
954
+ if (listener.kind === "local-control") return false;
955
+ return this.#runtime === void 0;
956
+ }
957
+ /**
958
+ * Constant-time check of a presented credential against those valid for
959
+ * `listener`. Every candidate in scope is compared even after a match so the
960
+ * work is independent of which credential matched — with a handful of
961
+ * pairing tokens the cost is negligible and the timing signal is not worth
962
+ * reasoning about separately.
963
+ */
964
+ verify(credentials, listener) {
965
+ const candidate = createHash("sha256").update(credentials, "utf8").digest();
966
+ let matched = false;
967
+ if (listener.kind === "local-control") {
968
+ for (const expected of this.#pairing.values()) {
969
+ if (equalDigest(candidate, expected)) matched = true;
970
+ }
971
+ return matched;
972
+ }
973
+ return this.#runtime !== void 0 && equalDigest(candidate, this.#runtime);
974
+ }
975
+ };
976
+ function singleTokenCredentials(token) {
977
+ const expected = hashToken(token);
978
+ return {
979
+ isOpen: /* @__PURE__ */ __name((listener) => expected === void 0 && listener.kind !== "local-control", "isOpen"),
980
+ verify: /* @__PURE__ */ __name((candidate, listener) => {
981
+ if (expected === void 0 || listener.kind === "local-control") {
982
+ return false;
983
+ }
984
+ return equalDigest(
985
+ createHash("sha256").update(candidate, "utf8").digest(),
986
+ expected
987
+ );
988
+ }, "verify")
989
+ };
990
+ }
991
+ __name(singleTokenCredentials, "singleTokenCredentials");
992
+ function hashToken(token) {
993
+ return token === void 0 || token === "" ? void 0 : createHash("sha256").update(token, "utf8").digest();
994
+ }
995
+ __name(hashToken, "hashToken");
996
+ function equalDigest(a, b) {
997
+ return a.length === b.length && timingSafeEqual(a, b);
998
+ }
999
+ __name(equalDigest, "equalDigest");
1000
+
1001
+ // packages/cli/src/serve/local-control/listener-identity.ts
1002
+ init_esbuild_shims();
1003
+ var LISTENER_TAG = Symbol.for("qwen.serve.listenerIdentity");
1004
+ function tagListener(server, identity) {
1005
+ server[LISTENER_TAG] = identity;
1006
+ }
1007
+ __name(tagListener, "tagListener");
1008
+ var PRIMARY = { kind: "primary" };
1009
+ function fromServer(server) {
1010
+ if (!server || typeof server !== "object") return void 0;
1011
+ return server[LISTENER_TAG];
1012
+ }
1013
+ __name(fromServer, "fromServer");
1014
+ function listenerIdentityOf(req) {
1015
+ const socket = req.socket;
1016
+ return fromServer(socket?.server) ?? PRIMARY;
1017
+ }
1018
+ __name(listenerIdentityOf, "listenerIdentityOf");
1019
+ function listenerIdentityOfSocket(socket) {
1020
+ const withServer = socket;
1021
+ return fromServer(withServer?.server) ?? PRIMARY;
1022
+ }
1023
+ __name(listenerIdentityOfSocket, "listenerIdentityOfSocket");
1024
+
1025
+ // packages/cli/src/serve/auth.ts
1026
+ init_esbuild_shims();
929
1027
  var denyBrowserOriginCors = /* @__PURE__ */ __name((req, res, next) => {
930
1028
  if (req.headers.origin) {
931
1029
  res.setHeader("Vary", "Origin");
@@ -973,7 +1071,42 @@ function parseAllowOriginPatterns(raw) {
973
1071
  return { allowAny, origins };
974
1072
  }
975
1073
  __name(parseAllowOriginPatterns, "parseAllowOriginPatterns");
1074
+ var MutableOriginAllowlist = class {
1075
+ static {
1076
+ __name(this, "MutableOriginAllowlist");
1077
+ }
1078
+ #allowAny;
1079
+ #static;
1080
+ #dynamic = /* @__PURE__ */ new Map();
1081
+ constructor(base) {
1082
+ this.#allowAny = base.allowAny;
1083
+ this.#static = new Set(base.origins);
1084
+ }
1085
+ allows(origin) {
1086
+ if (this.#allowAny) return true;
1087
+ const normalized = origin.toLowerCase();
1088
+ if (this.#static.has(normalized)) return true;
1089
+ for (const value of this.#dynamic.values()) {
1090
+ if (value === normalized) return true;
1091
+ }
1092
+ return false;
1093
+ }
1094
+ /** Add a runtime origin under `key`; re-adding the same key replaces it. */
1095
+ add(key, origin) {
1096
+ this.#dynamic.set(key, origin.toLowerCase());
1097
+ }
1098
+ remove(key) {
1099
+ this.#dynamic.delete(key);
1100
+ }
1101
+ };
1102
+ function toMatcher(patterns) {
1103
+ return "allows" in patterns ? patterns : {
1104
+ allows: /* @__PURE__ */ __name((origin) => patterns.allowAny || patterns.origins.has(origin.toLowerCase()), "allows")
1105
+ };
1106
+ }
1107
+ __name(toMatcher, "toMatcher");
976
1108
  function allowOriginCors(patterns) {
1109
+ const matcher = toMatcher(patterns);
977
1110
  const allowedMethods = "GET, POST, PATCH, DELETE, OPTIONS";
978
1111
  const allowedHeaders = "Authorization, Content-Type, X-Qwen-Client-Id, Last-Event-ID, X-Qwen-Event-Epoch";
979
1112
  const maxAgeSeconds = "86400";
@@ -989,7 +1122,7 @@ function allowOriginCors(patterns) {
989
1122
  res.status(403).json({ error: "Request denied by CORS policy" });
990
1123
  return;
991
1124
  }
992
- const matched = patterns.allowAny || patterns.origins.has(origin.toLowerCase());
1125
+ const matched = matcher.allows(origin);
993
1126
  if (matched) {
994
1127
  res.setHeader("Access-Control-Allow-Origin", origin);
995
1128
  res.setHeader("Vary", "Origin");
@@ -1010,6 +1143,24 @@ function allowOriginCors(patterns) {
1010
1143
  }
1011
1144
  __name(allowOriginCors, "allowOriginCors");
1012
1145
  function hostAllowlist(bind, getPort) {
1146
+ const primaryGate = buildPrimaryHostGate(bind, getPort);
1147
+ return (req, res, next) => {
1148
+ const listener = listenerIdentityOf(req);
1149
+ if (listener.kind !== "local-control") {
1150
+ primaryGate(req, res, next);
1151
+ return;
1152
+ }
1153
+ const host = (req.headers.host || "").toLowerCase();
1154
+ const browserHost = listener.origin === void 0 ? void 0 : new URL(listener.origin).host.toLowerCase();
1155
+ if (listener.authority === void 0 || host !== listener.authority && host !== browserHost) {
1156
+ res.status(403).json({ error: "Invalid Host header" });
1157
+ return;
1158
+ }
1159
+ next();
1160
+ };
1161
+ }
1162
+ __name(hostAllowlist, "hostAllowlist");
1163
+ function buildPrimaryHostGate(bind, getPort) {
1013
1164
  if (!isLoopbackBind(bind)) {
1014
1165
  return (_req, _res, next) => next();
1015
1166
  }
@@ -1042,13 +1193,15 @@ function hostAllowlist(bind, getPort) {
1042
1193
  next();
1043
1194
  };
1044
1195
  }
1045
- __name(hostAllowlist, "hostAllowlist");
1046
- function bearerAuth(token) {
1047
- if (!token) {
1048
- return (_req, _res, next) => next();
1049
- }
1050
- const expected = createHash("sha256").update(token, "utf8").digest();
1196
+ __name(buildPrimaryHostGate, "buildPrimaryHostGate");
1197
+ function bearerAuth(source) {
1198
+ const credentials = typeof source === "object" && source !== null ? source : singleTokenCredentials(source);
1051
1199
  return (req, res, next) => {
1200
+ const listener = listenerIdentityOf(req);
1201
+ if (credentials.isOpen(listener)) {
1202
+ next();
1203
+ return;
1204
+ }
1052
1205
  const header = req.headers.authorization;
1053
1206
  if (!header) {
1054
1207
  res.status(401).json({ error: "Unauthorized" });
@@ -1068,26 +1221,35 @@ function bearerAuth(token) {
1068
1221
  while (credStart < header.length && (header.charCodeAt(credStart) === 32 || header.charCodeAt(credStart) === 9)) {
1069
1222
  credStart++;
1070
1223
  }
1071
- const credentials = header.slice(credStart);
1072
- if (credentials.length === 0) {
1224
+ const presented = header.slice(credStart);
1225
+ if (presented.length === 0) {
1073
1226
  res.status(401).json({ error: "Unauthorized" });
1074
1227
  return;
1075
1228
  }
1076
- const candidate = createHash("sha256").update(credentials, "utf8").digest();
1077
- if (!timingSafeEqual(candidate, expected)) {
1229
+ if (!credentials.verify(presented, listener)) {
1078
1230
  res.status(401).json({ error: "Unauthorized" });
1079
1231
  return;
1080
1232
  }
1233
+ req[AUTHENTICATED_REQUEST] = true;
1081
1234
  next();
1082
1235
  };
1083
1236
  }
1084
1237
  __name(bearerAuth, "bearerAuth");
1238
+ var AUTHENTICATED_REQUEST = Symbol("qwen.serve.authenticatedRequest");
1239
+ function requestWasAuthenticated(req) {
1240
+ return req[AUTHENTICATED_REQUEST] === true;
1241
+ }
1242
+ __name(requestWasAuthenticated, "requestWasAuthenticated");
1085
1243
  function createMutationGate(deps) {
1086
1244
  const passthrough = /* @__PURE__ */ __name((_req, _res, next) => next(), "passthrough");
1087
1245
  if (deps.requireAuth || deps.tokenConfigured) {
1088
1246
  return () => passthrough;
1089
1247
  }
1090
- const strictDenier = /* @__PURE__ */ __name((_req, res) => {
1248
+ const strictDenier = /* @__PURE__ */ __name((req, res, next) => {
1249
+ if (requestWasAuthenticated(req)) {
1250
+ next();
1251
+ return;
1252
+ }
1091
1253
  res.status(401).json({
1092
1254
  error: "This route requires the daemon to be configured with a bearer token. Set QWEN_SERVER_TOKEN or pass --token to enable bearer auth.",
1093
1255
  code: "token_required"
@@ -1270,6 +1432,10 @@ var SERVE_CAPABILITY_REGISTRY = {
1270
1432
  session_source_metadata: { since: "v1" },
1271
1433
  session_side_task: { since: "v1" },
1272
1434
  session_prompt: { since: "v1" },
1435
+ session_turn_status: { since: "v1" },
1436
+ // Prompts and mid-turn messages reference session-scoped image and file
1437
+ // attachments by their stored filename.
1438
+ session_attachments: { since: "v1" },
1273
1439
  session_mid_turn_message_mutation: { since: "v1" },
1274
1440
  // Daemon-owned reconciliation surface for mid-turn messages:
1275
1441
  // `GET /session/:id/mid-turn-messages` returns the messages still waiting
@@ -1403,6 +1569,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1403
1569
  workspace_tool_toggle: { since: "v1" },
1404
1570
  workspace_skill_toggle: { since: "v1" },
1405
1571
  workspace_skill_batch_toggle: { since: "v1" },
1572
+ extension_batch_activation_v2: { since: "v1" },
1406
1573
  workspace_skill_manage: { since: "v1" },
1407
1574
  workspace_settings: { since: "v1" },
1408
1575
  // `GET /workspace/permissions` is always available when this tag is
@@ -1591,6 +1758,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1591
1758
  // projections. This is additive to the legacy primary-workspace
1592
1759
  // `workspace_extensions` contract.
1593
1760
  extension_management_v2: { since: "v1" },
1761
+ extension_git_credentials: { since: "v1" },
1594
1762
  // Workspace-qualified, daemon-local persisted transcript paging. The tag is
1595
1763
  // unconditional because the route also serves a trusted single-workspace
1596
1764
  // primary; authorization is evaluated for the selected runtime per request.
@@ -1603,6 +1771,17 @@ var SERVE_CAPABILITY_REGISTRY = {
1603
1771
  // This remains independent from active export so older daemons cannot ignore
1604
1772
  // archive intent and return an active transcript with the same session id.
1605
1773
  workspace_archived_session_export: { since: "v1" },
1774
+ // Workspace-qualified, memory-only session live-state snapshot plus the
1775
+ // in-memory catalog version token
1776
+ // (`GET /workspaces/:workspace/sessions/live-state`). Independent from
1777
+ // `workspace_qualified_rest_core`: released daemons can advertise that tag
1778
+ // without implementing this route, so clients must pre-flight it directly.
1779
+ // The route stays subject to the per-workspace trust check even when the
1780
+ // tag is advertised.
1781
+ workspace_session_live_state: { since: "v1" },
1782
+ // Workspace-qualified metadata updates for active, inactive, and archived
1783
+ // persisted sessions.
1784
+ workspace_session_metadata: { since: "v1" },
1606
1785
  // Workspace-qualified ACP transport (issue #6378 Phase 4):
1607
1786
  // `/workspaces/:workspace/acp` mounts a per-runtime ACP dispatcher (HTTP +
1608
1787
  // WebSocket) for each registered workspace, with per-runtime device-flow and
@@ -2861,6 +3040,13 @@ async function buildDaemonStatusResponse(detail, input) {
2861
3040
  let childRssBytesTotal = 0;
2862
3041
  let childRssSampled = 0;
2863
3042
  let oldestChildReadingAgeMs = null;
3043
+ let heapReported = 0;
3044
+ let peakOldGenerationBytes = 0;
3045
+ let peakLiveSetBytes = 0;
3046
+ let peakTotalHeapBytes = 0;
3047
+ let heapMajorGcCount = 0;
3048
+ let heapMajorGcMs = 0;
3049
+ const heapUnclassified = /* @__PURE__ */ new Set();
2864
3050
  for (const runtime of managedRuntimes ?? []) {
2865
3051
  if (!runtime.bridge.isChannelLive()) continue;
2866
3052
  const snapshot = runtime.bridge.getChildResourceSnapshot?.();
@@ -2873,6 +3059,23 @@ async function buildDaemonStatusResponse(detail, input) {
2873
3059
  snapshot.ageMs
2874
3060
  );
2875
3061
  }
3062
+ const heap = snapshot.heap;
3063
+ if (!heap) continue;
3064
+ heapReported += 1;
3065
+ peakOldGenerationBytes = Math.max(
3066
+ peakOldGenerationBytes,
3067
+ heap.peakOldGenerationBytes
3068
+ );
3069
+ peakLiveSetBytes = Math.max(peakLiveSetBytes, heap.peakLiveSetBytes);
3070
+ peakTotalHeapBytes = Math.max(
3071
+ peakTotalHeapBytes,
3072
+ heap.peakTotalHeapBytes
3073
+ );
3074
+ heapMajorGcCount = Math.max(heapMajorGcCount, heap.majorGcCount);
3075
+ heapMajorGcMs = Math.max(heapMajorGcMs, heap.majorGcMs);
3076
+ for (const name of heap.unclassifiedSpaceNames) {
3077
+ heapUnclassified.add(name);
3078
+ }
2876
3079
  }
2877
3080
  const pressureMode = input.opts.memoryPressureMode ?? "observe";
2878
3081
  const pressureMemory = process.memoryUsage();
@@ -2883,7 +3086,18 @@ async function buildDaemonStatusResponse(detail, input) {
2883
3086
  children: {
2884
3087
  rssBytes: childRssBytesTotal,
2885
3088
  sampled: childRssSampled,
2886
- oldestReadingAgeMs: oldestChildReadingAgeMs
3089
+ oldestReadingAgeMs: oldestChildReadingAgeMs,
3090
+ // `null` on zero reporters, so an unmeasured daemon never publishes a
3091
+ // zeroed object that reads as "no child needs any heap".
3092
+ heap: heapReported > 0 ? {
3093
+ peakOldGenerationBytes,
3094
+ peakLiveSetBytes,
3095
+ peakTotalHeapBytes,
3096
+ majorGcCount: heapMajorGcCount,
3097
+ majorGcMs: heapMajorGcMs,
3098
+ unclassifiedSpaceNames: [...heapUnclassified],
3099
+ reported: heapReported
3100
+ } : null
2887
3101
  },
2888
3102
  modeled: {
2889
3103
  recommendedShareAtRegisteredMb: registeredWorkspaceCount > 0 ? recommendedChildShareMb(memoryBudget, registeredWorkspaceCount) : null,
@@ -3738,6 +3952,25 @@ var WorkspaceVoiceCoordinator = class {
3738
3952
  init_esbuild_shims();
3739
3953
  init_esm();
3740
3954
  import { performance } from "node:perf_hooks";
3955
+
3956
+ // packages/cli/src/serve/server/telemetry-context.ts
3957
+ init_esbuild_shims();
3958
+ var daemonTelemetryResponseContext = Symbol(
3959
+ "daemonTelemetryResponseContext"
3960
+ );
3961
+ var daemonInboundTraceIdContext = Symbol(
3962
+ "daemonInboundTraceIdContext"
3963
+ );
3964
+ function getDaemonTelemetryInboundTraceId(res) {
3965
+ try {
3966
+ return res[daemonInboundTraceIdContext];
3967
+ } catch {
3968
+ return void 0;
3969
+ }
3970
+ }
3971
+ __name(getDaemonTelemetryInboundTraceId, "getDaemonTelemetryInboundTraceId");
3972
+
3973
+ // packages/cli/src/serve/server/access-log.ts
3741
3974
  var SESSION_ID_RE = /\/session\/([^/]+)/;
3742
3975
  var ACCESS_LOG_BURST = 60;
3743
3976
  var ACCESS_LOG_REFILL_PER_SECOND = 2;
@@ -3844,6 +4077,7 @@ function installAccessLogMiddleware(app, daemonLog, monotonicNow = () => perform
3844
4077
  const sessionId = sessionMatch?.[1] ? truncateUtf8(sessionMatch[1], SESSION_ID_MAX_BYTES) : void 0;
3845
4078
  const rawClientId = firstRawHeader(req.rawHeaders, "x-qwen-client-id");
3846
4079
  const clientId = rawClientId ? truncateUtf8(rawClientId, CLIENT_ID_MAX_BYTES) : void 0;
4080
+ const inboundTraceId = getDaemonTelemetryInboundTraceId(res);
3847
4081
  const ctx = {
3848
4082
  route: route.value,
3849
4083
  ...route.originalBytes ? { routeOriginalBytes: route.originalBytes } : {},
@@ -3855,6 +4089,7 @@ function installAccessLogMiddleware(app, daemonLog, monotonicNow = () => perform
3855
4089
  clientId: clientId.value,
3856
4090
  ...clientId.originalBytes ? { clientIdOriginalBytes: clientId.originalBytes } : {}
3857
4091
  } : {},
4092
+ ...inboundTraceId ? { traceId: inboundTraceId } : {},
3858
4093
  status,
3859
4094
  durationMs: Math.max(0, Math.round(monotonicNow() - startMs))
3860
4095
  };
@@ -3882,11 +4117,18 @@ export {
3882
4117
  createBridgeFileSystemAdapter,
3883
4118
  PathMutexRegistry,
3884
4119
  isDeepHealthQuery,
4120
+ CredentialStore,
4121
+ singleTokenCredentials,
4122
+ tagListener,
4123
+ listenerIdentityOf,
4124
+ listenerIdentityOfSocket,
3885
4125
  denyBrowserOriginCors,
3886
4126
  parseAllowOriginPatterns,
4127
+ MutableOriginAllowlist,
3887
4128
  allowOriginCors,
3888
4129
  hostAllowlist,
3889
4130
  bearerAuth,
4131
+ requestWasAuthenticated,
3890
4132
  createMutationGate,
3891
4133
  ClientMcpSenderRegistry,
3892
4134
  createClientMcpServerProvider,
@@ -3947,6 +4189,8 @@ export {
3947
4189
  MAX_CONCURRENT_VOICE_SESSIONS,
3948
4190
  VoiceLeaseAbortError,
3949
4191
  WorkspaceVoiceCoordinator,
4192
+ daemonTelemetryResponseContext,
4193
+ daemonInboundTraceIdContext,
3950
4194
  ACCESS_LOG_CONTROLLER_LOCAL,
3951
4195
  installAccessLogMiddleware
3952
4196
  };
@@ -1,20 +1,20 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ t
5
+ } from "./chunk-45UD2TU4.js";
3
6
  import {
4
7
  require_semver
5
8
  } from "./chunk-2AUM35J5.js";
6
9
  import {
7
10
  getNpmCliPath
8
- } from "./chunk-BKPPWD33.js";
9
- import {
10
- t
11
- } from "./chunk-HUTNYWBG.js";
11
+ } from "./chunk-M2IL2RTA.js";
12
12
  import {
13
13
  getPackageJson
14
14
  } from "./chunk-WZMH7II3.js";
15
15
  import {
16
16
  createDebugLogger
17
- } from "./chunk-BUQDLC2G.js";
17
+ } from "./chunk-A5F2YNO6.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  getRateLimitErrorDetails
5
- } from "./chunk-FAAUPSY2.js";
5
+ } from "./chunk-LI4YHTQK.js";
6
6
  import {
7
7
  isInternalPromptId
8
- } from "./chunk-RVOJ2FBP.js";
8
+ } from "./chunk-RPJOOK6N.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-BUQDLC2G.js";
11
+ } from "./chunk-A5F2YNO6.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } 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");
@@ -5,14 +5,14 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-QIH2HAEN.js";
8
+ } from "./chunk-GXG4PYQB.js";
9
9
  import {
10
10
  resolvePath
11
- } from "./chunk-WGHHA7ZH.js";
11
+ } from "./chunk-Z3JMO2CH.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  isSubpath
15
- } from "./chunk-BUQDLC2G.js";
15
+ } from "./chunk-A5F2YNO6.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-5O2XNYP6.js";