@qwen-code/qwen-code 0.21.13 → 0.21.14-preview.0

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-3PZITE2Y.js} +24 -23
  9. package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-2C34PNGO.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-3J4NHAYT.js} +626 -141
  12. package/chunks/{agent-DPTOZFEM.js → agent-VFX4RPP5.js} +22 -21
  13. package/chunks/{agent-headless-GJCQMURW.js → agent-headless-6WCF4J6N.js} +22 -21
  14. package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-M7XRJMSK.js} +3 -3
  15. package/chunks/{bridge-YNQBAA4Z.js → bridge-XR5ZSR7U.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-Z7BUEUJE.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-MLPXSYXR.js → chunk-25GHLMQQ.js} +25 -16
  22. package/chunks/chunk-2C6HJMG3.js +757 -0
  23. package/chunks/{chunk-TUGSVUJB.js → chunk-2JXDFSVE.js} +5 -5
  24. package/chunks/{chunk-AS5IN4GK.js → chunk-2OA3JMRD.js} +3 -3
  25. package/chunks/chunk-3PWCMXIR.js +9169 -0
  26. package/chunks/{chunk-U3VNBPUO.js → chunk-4KQ2TI2K.js} +2 -2
  27. package/chunks/{chunk-NEFOOD54.js → chunk-4V4DFJBS.js} +2 -2
  28. package/chunks/{chunk-OMLJNPBE.js → chunk-4ZMS3JCR.js} +1 -0
  29. package/chunks/{chunk-PP4FUZNV.js → chunk-55PIFSP2.js} +2 -2
  30. package/chunks/{chunk-3U3VAL47.js → chunk-57KOJ2KZ.js} +1 -1
  31. package/chunks/{chunk-A4QRWUDE.js → chunk-5IYS4WWR.js} +1 -1
  32. package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
  33. package/chunks/{chunk-CU6GJD55.js → chunk-6DFPR7CS.js} +1 -1
  34. package/chunks/{chunk-V57QC6WW.js → chunk-6LAPGPVA.js} +5 -3
  35. package/chunks/{chunk-OOQUVWIG.js → chunk-6PDOHRN6.js} +4 -4
  36. package/chunks/{chunk-UZPM4XHR.js → chunk-6VDPDHIP.js} +29 -8
  37. package/chunks/{chunk-O4D7SPJN.js → chunk-73G3Z7QS.js} +3 -3
  38. package/chunks/{chunk-QIH2HAEN.js → chunk-7OCSX7FC.js} +1 -1
  39. package/chunks/{chunk-OVZPVYZB.js → chunk-AKBOLMUF.js} +95 -17
  40. package/chunks/{chunk-DGK6P3BQ.js → chunk-AQBHJ2IG.js} +10 -10
  41. package/chunks/{chunk-JNDY2MDR.js → chunk-BOJNAPUE.js} +1 -1
  42. package/chunks/{chunk-NHDR76JX.js → chunk-BQWNIPTE.js} +1 -1
  43. package/chunks/{chunk-AA2BEKV3.js → chunk-CH5OFRV7.js} +1 -1
  44. package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
  45. package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
  46. package/chunks/{chunk-OXCMMLED.js → chunk-DGJ7O55J.js} +1 -1
  47. package/chunks/{chunk-BKPPWD33.js → chunk-DRKYT2TR.js} +1 -1
  48. package/chunks/{chunk-P7MPQI75.js → chunk-DVR7XKO5.js} +1 -1
  49. package/chunks/{chunk-MRMJCLIY.js → chunk-DZCV3ZYU.js} +2 -2
  50. package/chunks/{chunk-EZ5RP345.js → chunk-E5RS7LF4.js} +40 -9
  51. package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
  52. package/chunks/chunk-EOCQCNV4.js +3887 -0
  53. package/chunks/{chunk-BVJS5BSP.js → chunk-FCTLOVYW.js} +1 -1
  54. package/chunks/{chunk-DGZEMW5R.js → chunk-FS5NGKWC.js} +1 -1
  55. package/chunks/{chunk-XHRY7BXD.js → chunk-G6FFFICU.js} +3 -3
  56. package/chunks/{chunk-NM5V5OVW.js → chunk-GV3OIADZ.js} +2 -2
  57. package/chunks/{chunk-QV5YN5YD.js → chunk-HGPMOXLZ.js} +5 -5
  58. package/chunks/{chunk-GMIEIY3Y.js → chunk-I3N2Z25H.js} +1 -1
  59. package/chunks/{chunk-RIAABG2K.js → chunk-I7NTHW4C.js} +1 -1
  60. package/chunks/{chunk-HUTNYWBG.js → chunk-IOTPI425.js} +18 -10
  61. package/chunks/{chunk-ZYYTZUI2.js → chunk-ISRHAMNL.js} +3 -3
  62. package/chunks/{chunk-BHILXOC3.js → chunk-J63PKMYA.js} +1 -1
  63. package/chunks/{chunk-KD5BOPLP.js → chunk-J6YS7Z25.js} +98 -4
  64. package/chunks/{chunk-GO7STP6N.js → chunk-K3CECR5C.js} +4 -4
  65. package/chunks/{chunk-RVOJ2FBP.js → chunk-KC4WMLZO.js} +1486 -10574
  66. package/chunks/{chunk-IGGGG5CX.js → chunk-KSGWAYNE.js} +4580 -1652
  67. package/chunks/{chunk-X26JYGTD.js → chunk-L6CCLB3G.js} +1 -1
  68. package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
  69. package/chunks/{chunk-ZYBBISBY.js → chunk-LLR424CQ.js} +15 -12
  70. package/chunks/{chunk-JUEPY766.js → chunk-LRDB2OLB.js} +2 -2
  71. package/chunks/{chunk-PQ36L4F5.js → chunk-MCG53LWC.js} +1 -1
  72. package/chunks/{chunk-OD2WU5QY.js → chunk-NRPXRNN4.js} +1 -1
  73. package/chunks/{chunk-76J3IJ3M.js → chunk-NV6LW6FT.js} +3 -3
  74. package/chunks/{chunk-CKSJECTU.js → chunk-NVRMCWTP.js} +8 -4
  75. package/chunks/{chunk-Y3YCSWG5.js → chunk-OBJYN4MX.js} +1 -1
  76. package/chunks/{chunk-WFSTRPRO.js → chunk-OJOP26ET.js} +1 -1
  77. package/chunks/{chunk-A267JX7H.js → chunk-OLZSWUZR.js} +6 -6
  78. package/chunks/{chunk-TIGA2IVL.js → chunk-OO4FKHLO.js} +2 -2
  79. package/chunks/{chunk-OY5RNSV4.js → chunk-OSAFWBNR.js} +3 -3
  80. package/chunks/{chunk-BZ263IKX.js → chunk-OVY67CYC.js} +1 -1
  81. package/chunks/{chunk-YEYY7TEP.js → chunk-P425IVUK.js} +5 -5
  82. package/chunks/{chunk-AFSG32D5.js → chunk-PMS7O6SA.js} +1 -1
  83. package/chunks/{chunk-6ORZ2EDC.js → chunk-PPTM4O4R.js} +1 -1
  84. package/chunks/{chunk-JOOFMXGF.js → chunk-QECSDJET.js} +5 -5
  85. package/chunks/{chunk-CZBYX5MY.js → chunk-QEJZUXSK.js} +1 -1
  86. package/chunks/{chunk-4PKCUT7F.js → chunk-QIHHJKXT.js} +6 -6
  87. package/chunks/{chunk-QRCNA3SR.js → chunk-RAQBBGS6.js} +49 -69
  88. package/chunks/{chunk-M732YJPW.js → chunk-RXHBTKMG.js} +2 -2
  89. package/chunks/{chunk-XIT3GURH.js → chunk-S6CXQKDD.js} +3 -3
  90. package/chunks/{chunk-GGDBMYGZ.js → chunk-SA7GBPEA.js} +3 -3
  91. package/chunks/{chunk-7UXUJ5T3.js → chunk-SBRIBTYN.js} +1 -1
  92. package/chunks/{chunk-MC4TLKEI.js → chunk-SGLPDKRT.js} +2 -2
  93. package/chunks/{chunk-WSH6GRKG.js → chunk-SLILKYV2.js} +2 -2
  94. package/chunks/{chunk-DXIBNLBZ.js → chunk-SNQZZ765.js} +1 -1
  95. package/chunks/{chunk-5EYKMUUY.js → chunk-SR2LYSMT.js} +1 -1
  96. package/chunks/{chunk-AW4TRXOC.js → chunk-TNPWODIZ.js} +1 -1
  97. package/chunks/{chunk-QF2NHSPB.js → chunk-U6RZRKNM.js} +233 -184
  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-LJQAUZMR.js → chunk-VGAAAMRD.js} +925 -92
  101. package/chunks/{chunk-UKMR3CKV.js → chunk-VHPMDDPT.js} +3 -3
  102. package/chunks/{chunk-S5DWMTHO.js → chunk-WP4WIUOJ.js} +2 -0
  103. package/chunks/{chunk-25EYDK42.js → chunk-WPVUOVYX.js} +1 -1
  104. package/chunks/{chunk-AXN7UPYQ.js → chunk-WSSH2BNO.js} +1 -1
  105. package/chunks/{chunk-6YKYPVDV.js → chunk-WVIABDXV.js} +3 -3
  106. package/chunks/chunk-WZAD4ZNJ.js +59 -0
  107. package/chunks/{chunk-N5YPT6PH.js → chunk-X3YA3YGG.js} +7 -4
  108. package/chunks/{chunk-4S5337WV.js → chunk-XC377TLN.js} +4312 -2704
  109. package/chunks/{chunk-NNHNLJ2X.js → chunk-XO24LIZC.js} +240 -42
  110. package/chunks/{chunk-EL5SXY3T.js → chunk-XT4RKHVE.js} +2 -2
  111. package/chunks/{chunk-FDGGZIYW.js → chunk-YECDICIO.js} +2 -2
  112. package/chunks/{chunk-E23IPNGS.js → chunk-YFPZ3NNC.js} +12 -3
  113. package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
  114. package/chunks/{chunk-V26NVGAU.js → chunk-YIWH3MKK.js} +8 -3
  115. package/chunks/{chunk-IWPYVAO2.js → chunk-YXC7JYUI.js} +2 -2
  116. package/chunks/{chunk-A4MFR4C5.js → chunk-ZIGC3MUS.js} +2 -4
  117. package/chunks/{chunk-ZZO74WKW.js → chunk-ZXEAEZFN.js} +24 -18
  118. package/chunks/{computer-use-77C5FHMW.js → computer-use-ABECHPS5.js} +22 -21
  119. package/chunks/{config-utils-IVHRSXWI.js → config-utils-NJQA5YLJ.js} +2 -2
  120. package/chunks/{contextCommand-PJ77GBWL.js → contextCommand-4CD5HZQQ.js} +24 -23
  121. package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-2MOVQ4VX.js} +22 -21
  122. package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-L6NNHG5N.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-BLXFEG4Q.js} +24 -23
  128. package/chunks/{daemon-status-provider-ZDOYJCU6.js → daemon-status-provider-XGD3TPTO.js} +31 -30
  129. package/chunks/{daemon-trust-policy-E67OYUK2.js → daemon-trust-policy-THEGCWPO.js} +29 -28
  130. package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-L7L4ACWQ.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-YQLHDUGE.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-PCTXNW7N.js} +22 -21
  136. package/chunks/{edit-I4LQFAEC.js → edit-QX2EGWYW.js} +25 -23
  137. package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
  138. package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-EM3ZZ2SB.js} +22 -21
  139. package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-ESCMVAKB.js} +22 -21
  140. package/chunks/{environment-S7CTIHMX.js → environment-TOJI56YV.js} +25 -24
  141. package/chunks/{errors-7HB2AIDS.js → errors-DZ5FWWEM.js} +24 -23
  142. package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-KUIJ36XA.js} +22 -21
  143. package/chunks/{exitPlanMode-R4JY7V2O.js → exitPlanMode-NFVY54FV.js} +22 -21
  144. package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-JLQXJSH6.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-I7OT4FWL.js} +62 -61
  148. package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-GRIS77NJ.js} +3 -3
  149. package/chunks/{glob-J4RUJAHX.js → glob-7TBUUV6R.js} +22 -21
  150. package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-K5OHOJ6B.js} +1 -1
  151. package/chunks/{grep-VJWPLFOT.js → grep-743SYWCZ.js} +22 -21
  152. package/chunks/{handleAutoUpdate-POCX2MNB.js → handleAutoUpdate-GAOYUYOD.js} +26 -25
  153. package/chunks/{i18n-RM5YOICI.js → i18n-2ITURYX6.js} +23 -22
  154. package/chunks/{image-gen-EXECB5XM.js → image-gen-4OIWDZD6.js} +2 -2
  155. package/chunks/{initializer-Z2AFGBNR.js → initializer-OC7LWA6X.js} +29 -28
  156. package/chunks/{installationInfo-4I5FXNMH.js → installationInfo-CO47QX3Q.js} +23 -22
  157. package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
  158. package/chunks/{list-ZMBFIGZA.js → list-ATR2SFWT.js} +32 -31
  159. package/chunks/{loadedSettingsAdapter-T6TV4YJ7.js → loadedSettingsAdapter-NK4B7AGK.js} +29 -28
  160. package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-3WXBU5TQ.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-4SSBWI2D.js} +23 -22
  163. package/chunks/{mcp-6UNYX4HG.js → mcp-C62AE2QI.js} +29 -28
  164. package/chunks/{monitor-EE2UYMGE.js → monitor-FEYEGASA.js} +22 -21
  165. package/chunks/{nonInteractiveCli-WAY237O4.js → nonInteractiveCli-AJEV5ZWO.js} +59 -57
  166. package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-SLLTEY4O.js} +26 -24
  167. package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-WLUGIAPX.js} +12 -11
  168. package/chunks/{pidfile-4XSFLYBZ.js → pidfile-TV2VWUMB.js} +22 -21
  169. package/chunks/{processUtils-WDA2MJFD.js → processUtils-3IN2ZR55.js} +2 -2
  170. package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
  171. package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-GSGRFPJE.js} +25 -24
  172. package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-JLSTIS4Z.js} +3 -3
  173. package/chunks/{read-file-TAFBKMNI.js → read-file-6PZZRGZZ.js} +9 -7
  174. package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-GLU3UWBV.js} +3 -1
  175. package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-5GEWKOOO.js} +25 -24
  176. package/chunks/{ripGrep-WOEK2PXS.js → ripGrep-FX7GBGFN.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-7RHU3NSV.js} +49 -40
  179. package/chunks/{runtime-5MLLZ7DC.js → runtime-EPOXAMLP.js} +32 -31
  180. package/chunks/{scheduler-RPBJ63CH.js → scheduler-F4Y7ENVV.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-LQV4TN5A.js} +29 -30
  185. package/chunks/{server-TC4A7AAZ.js → server-IZCKLIYQ.js} +1267 -165
  186. package/chunks/{session-UBOFXVMN.js → session-52ZGTDVB.js} +60 -58
  187. package/chunks/{settings-D5644OM5.js → settings-WCVB34HW.js} +28 -27
  188. package/chunks/{shell-3PZULQQV.js → shell-33BIUBLH.js} +22 -21
  189. package/chunks/{skill-PEVVXQ3L.js → skill-IYVQ2QNK.js} +11 -9
  190. package/chunks/{skill-settings-J65JKKES.js → skill-settings-YG4ZS4OZ.js} +28 -27
  191. package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-BLA4YT4W.js} +24 -23
  192. package/chunks/{standalone-update-IFM53PE7.js → standalone-update-ALRIPWSM.js} +24 -23
  193. package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-PISBXWKA.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-CIQDCC6A.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-664XCRB4.js} +22 -21
  200. package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-TEBO6ONY.js} +22 -21
  201. package/chunks/{theme-manager-Z3RIT7DB.js → theme-manager-3CIFH2JV.js} +22 -21
  202. package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-ATS62CAP.js} +1 -1
  203. package/chunks/{tool-search-5R2OE4C7.js → tool-search-IJX5JHJB.js} +9 -7
  204. package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-XBK2NVRV.js} +26 -25
  205. package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-OOFNLRWK.js} +23 -22
  206. package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-EIG7EYAQ.js} +5 -5
  207. package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-KYDCBLSF.js} +25 -24
  208. package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-RFX3KNBN.js} +31 -30
  209. package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-MZXSAITU.js} +56 -54
  210. package/chunks/{version-G5A5DGVS.js → version-PJC6ZNXV.js} +1 -1
  211. package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-XXICVGKQ.js} +11 -8
  212. package/chunks/{web-search-5OXHEZPV.js → web-search-LHPM6QWC.js} +2 -2
  213. package/chunks/{workflow-ISQJHPG2.js → workflow-4CUO2BV7.js} +139 -37
  214. package/chunks/{workspace-providers-status-2ZPZPUPZ.js → workspace-providers-status-G4MUGH3X.js} +32 -31
  215. package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-QMDMFWBE.js} +1 -1
  216. package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-FKBB4MZK.js} +26 -25
  217. package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-TIDTTA65.js} +33 -32
  218. package/chunks/{workspace-skills-status-RS4O7AIJ.js → workspace-skills-status-LBC2TZKM.js} +30 -29
  219. package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-4KJ567XP.js} +33 -32
  220. package/chunks/{write-file-EWXKVVXF.js → write-file-R6LAEER5.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-XLCK6DDK.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
@@ -64,7 +64,7 @@ async function runExitCleanup(options = {}) {
64
64
  }
65
65
  __name(runExitCleanup, "runExitCleanup");
66
66
  async function cleanupCheckpoints() {
67
- const { Storage } = await import("./deferred-core-runtime-3SGXFXEQ.js");
67
+ const { Storage } = await import("./deferred-core-runtime-YQLHDUGE.js");
68
68
  const storage = new Storage(process.cwd());
69
69
  const tempDir = storage.getProjectTempDir();
70
70
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -17,7 +17,7 @@ import {
17
17
  isLoaderEnvKey,
18
18
  publishPendingCompileCache,
19
19
  reportRejectedLoaderKeys
20
- } from "./chunk-MS7GNABG.js";
20
+ } from "./chunk-CXJHQVEK.js";
21
21
  import {
22
22
  buildTrustPrecedenceRules,
23
23
  require_strip_json_comments,
@@ -24,7 +24,7 @@ import {
24
24
  import {
25
25
  formatHistoryGapNotice,
26
26
  indexGapsByChild
27
- } from "./chunk-3U3VAL47.js";
27
+ } from "./chunk-57KOJ2KZ.js";
28
28
  import {
29
29
  stringWidth
30
30
  } from "./chunk-2MIN6GRR.js";
@@ -33,11 +33,11 @@ import {
33
33
  } from "./chunk-QHTIBUWB.js";
34
34
  import {
35
35
  t
36
- } from "./chunk-HUTNYWBG.js";
36
+ } from "./chunk-IOTPI425.js";
37
37
  import {
38
38
  getToolResponseDisplayText,
39
39
  isGoalCheckpointBookkeepingRecord
40
- } from "./chunk-4S5337WV.js";
40
+ } from "./chunk-XC377TLN.js";
41
41
  import {
42
42
  stripAnsi
43
43
  } from "./chunk-TWPJO254.js";
@@ -45,7 +45,7 @@ import {
45
45
  GoalPersistenceUnavailableError,
46
46
  parseGoalStateRecordPayloadV2,
47
47
  projectUserTranscriptForDisplay
48
- } from "./chunk-OMLJNPBE.js";
48
+ } from "./chunk-4ZMS3JCR.js";
49
49
  import {
50
50
  ToolDisplayNames
51
51
  } from "./chunk-6HY6IF3Z.js";
@@ -3141,15 +3141,16 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3141
3141
  case "user": {
3142
3142
  if (record.subtype === "goal_runtime") break;
3143
3143
  if (record.subtype === "notification" || record.subtype === "cron") {
3144
- const payload = record.systemPayload;
3144
+ const payload2 = record.systemPayload;
3145
3145
  const fallback = record.subtype === "cron" ? "Cron job fired" : "Background agent completed";
3146
- const text2 = payload?.displayText || extractTextFromParts(record.message?.parts) || fallback;
3146
+ const text2 = payload2?.displayText || extractTextFromParts(record.message?.parts) || fallback;
3147
3147
  items.push({ type: "notification", text: text2 });
3148
3148
  break;
3149
3149
  }
3150
3150
  if (record.subtype === "mid_turn_user_message") {
3151
- const payload = record.systemPayload;
3152
- const text2 = payload?.displayText || extractTextFromParts(record.message?.parts);
3151
+ const payload2 = record.systemPayload;
3152
+ const hasMediaReferences2 = Array.isArray(payload2?.mediaReferences) && payload2.mediaReferences.length > 0;
3153
+ const text2 = payload2?.displayText || (hasMediaReferences2 ? "[User message with attachments]" : extractTextFromParts(record.message?.parts));
3153
3154
  if (text2) {
3154
3155
  items.push({ type: "user" /* USER */, text: text2, sentToModel: false });
3155
3156
  }
@@ -3163,13 +3164,13 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3163
3164
  });
3164
3165
  currentToolGroup = [];
3165
3166
  }
3166
- const payload = pendingAtCommands.shift();
3167
+ const payload2 = pendingAtCommands.shift();
3167
3168
  const projection2 = projectUserTranscriptForDisplay(record);
3168
- const text2 = payload.userText || (projection2.displayText ?? extractTextFromParts(projection2.parts));
3169
+ const text2 = payload2.userText || (projection2.displayText ?? extractTextFromParts(projection2.parts));
3169
3170
  if (text2) {
3170
3171
  items.push({ type: "user", text: text2 });
3171
3172
  }
3172
- const toolDisplays = buildAtCommandDisplays(payload);
3173
+ const toolDisplays = buildAtCommandDisplays(payload2);
3173
3174
  if (toolDisplays.length > 0) {
3174
3175
  items.push({
3175
3176
  type: "tool_group",
@@ -3186,7 +3187,9 @@ function convertToHistoryItems(conversation, config, historyGaps) {
3186
3187
  currentToolGroup = [];
3187
3188
  }
3188
3189
  const projection = projectUserTranscriptForDisplay(record);
3189
- const text = projection.displayText ?? extractTextFromParts(projection.parts);
3190
+ const payload = record.systemPayload;
3191
+ const hasMediaReferences = Array.isArray(payload?.mediaReferences) && payload.mediaReferences.length > 0;
3192
+ const text = projection.displayText || (hasMediaReferences ? "[User message with attachments]" : extractTextFromParts(projection.parts));
3190
3193
  if (text) {
3191
3194
  items.push({ type: "user", text });
3192
3195
  }
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  JsonFormatter,
5
5
  parseAndFormatApiError
6
- } from "./chunk-4S5337WV.js";
6
+ } from "./chunk-XC377TLN.js";
7
7
  import {
8
8
  FatalBudgetExceededError,
9
9
  FatalCancellationError,
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-BUQDLC2G.js";
13
13
  import {
14
14
  runExitCleanup
15
- } from "./chunk-X26JYGTD.js";
15
+ } from "./chunk-L6CCLB3G.js";
16
16
  import {
17
17
  writeStderrLine
18
18
  } from "./chunk-KGJGEEVR.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-X26JYGTD.js";
5
+ } from "./chunk-L6CCLB3G.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlugin,
8
8
  supportedTypes
9
- } from "./chunk-A4QRWUDE.js";
9
+ } from "./chunk-5IYS4WWR.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-HUTNYWBG.js";
5
+ } from "./chunk-IOTPI425.js";
6
6
  import {
7
7
  SessionReferenceService,
8
8
  SessionService,
9
9
  readManyFiles,
10
10
  stripTerminalControlSequences
11
- } from "./chunk-4S5337WV.js";
11
+ } from "./chunk-XC377TLN.js";
12
12
  import {
13
13
  emptyMcpResourceText,
14
14
  formatMcpResourceContents,
@@ -16,7 +16,7 @@ import {
16
16
  } from "./chunk-ZPJWUGCS.js";
17
17
  import {
18
18
  shouldRunVisionBridge
19
- } from "./chunk-RVOJ2FBP.js";
19
+ } from "./chunk-KC4WMLZO.js";
20
20
  import {
21
21
  Storage,
22
22
  getErrorMessage,
@@ -1,8 +1,9 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- getTasksDir
5
- } from "./chunk-OVZPVYZB.js";
4
+ getTasksDir,
5
+ sanitizeName
6
+ } from "./chunk-AKBOLMUF.js";
6
7
  import {
7
8
  require_proper_lockfile
8
9
  } from "./chunk-MLXTMF7H.js";
@@ -11,7 +12,7 @@ import {
11
12
  } from "./chunk-VGC4I5JJ.js";
12
13
  import {
13
14
  atomicWriteJSON
14
- } from "./chunk-FDGGZIYW.js";
15
+ } from "./chunk-YECDICIO.js";
15
16
  import {
16
17
  createDebugLogger,
17
18
  isNodeError
@@ -400,7 +401,10 @@ async function listTasks(teamName, filters) {
400
401
  if (filters.status !== void 0 && t.status !== filters.status) {
401
402
  return false;
402
403
  }
403
- if (filters.owner !== void 0 && t.owner !== filters.owner) {
404
+ if (filters.owner !== void 0 && // Match on canonical identities both ways: owners persisted
405
+ // before the sanitization landed (#9282) keep their raw spelling
406
+ // on disk and would otherwise never match any filter.
407
+ sanitizeName(t.owner ?? "") !== sanitizeName(filters.owner)) {
404
408
  return false;
405
409
  }
406
410
  if (filters.blockedBy !== void 0 && !t.blockedBy.includes(filters.blockedBy)) {
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-VGC4I5JJ.js";
6
6
  import {
7
7
  atomicWriteJSON
8
- } from "./chunk-FDGGZIYW.js";
8
+ } from "./chunk-YECDICIO.js";
9
9
  import {
10
10
  Storage,
11
11
  getProjectHash
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-CKSJECTU.js";
5
+ } from "./chunk-NVRMCWTP.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-RKUWKYED.js";
7
7
  import {
8
8
  getSettingsSchema
9
- } from "./chunk-E23IPNGS.js";
9
+ } from "./chunk-YFPZ3NNC.js";
10
10
  import {
11
11
  CONSOLIDATED_DISABLE_KEYS,
12
12
  V1_INDICATOR_KEYS,
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-IDS7MSUP.js";
22
22
  import {
23
23
  t
24
- } from "./chunk-HUTNYWBG.js";
24
+ } from "./chunk-IOTPI425.js";
25
25
  import {
26
26
  SUPPORTED_LANGUAGES,
27
27
  getLanguageNameFromLocale
@@ -30,21 +30,21 @@ import {
30
30
  getHomeEnvFallbackVars,
31
31
  loadEnvironment,
32
32
  preResolveHomeEnvOverrides
33
- } from "./chunk-MC4TLKEI.js";
33
+ } from "./chunk-SGLPDKRT.js";
34
34
  import {
35
35
  ENV_CORRUPTED_PATH,
36
36
  ENV_WAS_RECOVERED
37
- } from "./chunk-MS7GNABG.js";
37
+ } from "./chunk-CXJHQVEK.js";
38
38
  import {
39
39
  isWorkspaceTrusted,
40
40
  updateSettingsFilePreservingFormat
41
- } from "./chunk-IWPYVAO2.js";
41
+ } from "./chunk-YXC7JYUI.js";
42
42
  import {
43
43
  require_strip_json_comments
44
44
  } from "./chunk-NPQ5ZKRP.js";
45
45
  import {
46
46
  stripRuntimeSnapshotPrefix
47
- } from "./chunk-5EYKMUUY.js";
47
+ } from "./chunk-SR2LYSMT.js";
48
48
  import {
49
49
  FatalConfigError,
50
50
  Storage,
@@ -7,14 +7,14 @@ import {
7
7
  getMeter,
8
8
  isTelemetrySdkInitialized,
9
9
  truncateSpanError
10
- } from "./chunk-EL5SXY3T.js";
10
+ } from "./chunk-XT4RKHVE.js";
11
11
  import {
12
12
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
13
13
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT,
14
14
  SERVICE_NAME,
15
15
  isValidSensitiveSpanAttributeMaxLength,
16
16
  require_src
17
- } from "./chunk-K5IDV3PC.js";
17
+ } from "./chunk-D34RDOLP.js";
18
18
  import {
19
19
  FatalConfigError,
20
20
  createDebugLogger,
@@ -8,14 +8,14 @@ import {
8
8
  } from "./chunk-Z4X5MTRT.js";
9
9
  import {
10
10
  STATUS_SCHEMA_VERSION
11
- } from "./chunk-QNQAPSN2.js";
11
+ } from "./chunk-UC67T4SF.js";
12
12
  import {
13
13
  loadSettings
14
- } from "./chunk-A267JX7H.js";
14
+ } from "./chunk-OLZSWUZR.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-4S5337WV.js";
18
+ } from "./chunk-XC377TLN.js";
19
19
  import {
20
20
  writeStderrLine
21
21
  } from "./chunk-KGJGEEVR.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
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -7,19 +7,19 @@ import {
7
7
  parseAcpBaseModelId,
8
8
  resolveCliGenerationConfig,
9
9
  sanitizeProviderBaseUrl
10
- } from "./chunk-ZYYTZUI2.js";
10
+ } from "./chunk-ISRHAMNL.js";
11
11
  import {
12
12
  snapshotProcessEnv
13
- } from "./chunk-NM5V5OVW.js";
13
+ } from "./chunk-GV3OIADZ.js";
14
14
  import {
15
15
  STATUS_SCHEMA_VERSION
16
- } from "./chunk-QNQAPSN2.js";
16
+ } from "./chunk-UC67T4SF.js";
17
17
  import {
18
18
  loadSettings
19
- } from "./chunk-A267JX7H.js";
19
+ } from "./chunk-OLZSWUZR.js";
20
20
  import {
21
21
  ModelsConfig
22
- } from "./chunk-4S5337WV.js";
22
+ } from "./chunk-XC377TLN.js";
23
23
  import {
24
24
  APPROVAL_MODES
25
25
  } from "./chunk-RWDNJBWN.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-O4D7SPJN.js";
5
+ } from "./chunk-73G3Z7QS.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-QIH2HAEN.js";
8
+ } from "./chunk-7OCSX7FC.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-WGHHA7ZH.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  loadSettings
5
- } from "./chunk-A267JX7H.js";
5
+ } from "./chunk-OLZSWUZR.js";
6
6
  import {
7
7
  getCurrentLanguage
8
- } from "./chunk-HUTNYWBG.js";
8
+ } from "./chunk-IOTPI425.js";
9
9
  import {
10
10
  isWorkspaceTrusted
11
- } from "./chunk-IWPYVAO2.js";
11
+ } from "./chunk-YXC7JYUI.js";
12
12
  import {
13
13
  require_strip_json_comments
14
14
  } from "./chunk-NPQ5ZKRP.js";
@@ -23,10 +23,10 @@ import {
23
23
  isGatedMcpScope,
24
24
  normalizeClaudeMcpServer,
25
25
  runWithTimeout
26
- } from "./chunk-4S5337WV.js";
26
+ } from "./chunk-XC377TLN.js";
27
27
  import {
28
28
  atomicWriteFile
29
- } from "./chunk-FDGGZIYW.js";
29
+ } from "./chunk-YECDICIO.js";
30
30
  import {
31
31
  Storage,
32
32
  getErrorMessage
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_STARTUP_PROFILE_VERSION
5
- } from "./chunk-S5DWMTHO.js";
5
+ } from "./chunk-WP4WIUOJ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -405,18 +405,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
405
405
  try {
406
406
  if (authType === "openai" /* USE_OPENAI */) {
407
407
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
408
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-YNFVJMRJ.js");
408
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-WLUGIAPX.js");
409
409
  return createOpenAIContentGenerator(generatorConfig, config);
410
410
  }, "loadBaseGenerator");
411
411
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
412
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-GMYZOO6A.js");
412
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-JLSTIS4Z.js");
413
413
  try {
414
414
  const qwenClient = await getQwenOauthClient(
415
415
  config,
416
416
  isInitialAuth ? { requireCachedCredentials: true } : void 0
417
417
  );
418
418
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
419
- const { QwenContentGenerator } = await import("./qwenContentGenerator-434M7QKY.js");
419
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-GSGRFPJE.js");
420
420
  return new QwenContentGenerator(qwenClient, generatorConfig, config);
421
421
  }, "loadBaseGenerator");
422
422
  } catch (error) {
@@ -427,12 +427,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
427
427
  }
428
428
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
429
429
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
430
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-G7BVXTKN.js");
430
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-M7XRJMSK.js");
431
431
  return createAnthropicContentGenerator(generatorConfig, config);
432
432
  }, "loadBaseGenerator");
433
433
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
434
434
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
435
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-SQ5XBPZ7.js");
435
+ const { createGeminiContentGenerator } = await import("./geminiContentGenerator-GRIS77NJ.js");
436
436
  return createGeminiContentGenerator(generatorConfig, config);
437
437
  }, "loadBaseGenerator");
438
438
  } else {
@@ -448,7 +448,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
448
448
  try {
449
449
  const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
450
450
  loadBaseGenerator(),
451
- import("./loggingContentGenerator-WF4ZOJEZ.js")
451
+ import("./loggingContentGenerator-3WXBU5TQ.js")
452
452
  ]);
453
453
  return new LoggingContentGenerator(
454
454
  baseGenerator,
@@ -27,11 +27,10 @@ import {
27
27
  } from "./chunk-3VUENPWF.js";
28
28
  import {
29
29
  loadSettings
30
- } from "./chunk-A267JX7H.js";
30
+ } from "./chunk-OLZSWUZR.js";
31
31
  import {
32
- MCP_BUDGET_WARN_FRACTION,
33
- sleepInhibitor
34
- } from "./chunk-4S5337WV.js";
32
+ MCP_BUDGET_WARN_FRACTION
33
+ } from "./chunk-XC377TLN.js";
35
34
  import {
36
35
  parsePositiveIntegerEnv
37
36
  } from "./chunk-6PVPNMXU.js";
@@ -55,52 +54,48 @@ import {
55
54
 
56
55
  // packages/cli/src/commands/serve.ts
57
56
  init_esbuild_shims();
58
- import { randomBytes } from "node:crypto";
59
- import { networkInterfaces } from "node:os";
60
57
  function blockForever() {
61
58
  return new Promise(() => {
62
59
  });
63
60
  }
64
61
  __name(blockForever, "blockForever");
65
62
  var DEFAULT_SERVE_HOSTNAME = "127.0.0.1";
66
- function localControlUrls(baseUrl, token, interfaces = networkInterfaces()) {
67
- const urls = [];
68
- for (const [interfaceName, addresses] of Object.entries(interfaces).sort()) {
69
- for (const address of addresses ?? []) {
70
- if (address.family !== "IPv4" || address.internal) {
71
- continue;
72
- }
73
- const target = new URL(baseUrl);
74
- target.hostname = address.address;
75
- target.hash = `token=${encodeURIComponent(token)}`;
76
- urls.push({ interfaceName, url: target.toString() });
63
+ async function startLocalControl(handle, address) {
64
+ await handle.runtimeReady;
65
+ if (!handle.webShellMounted) {
66
+ throw new Error("Local Control requires the Web Shell.");
67
+ }
68
+ const service = handle.getLocalControl();
69
+ if (!service) {
70
+ throw new Error("Local Control is unavailable on this daemon.");
71
+ }
72
+ let status;
73
+ try {
74
+ status = await service.enable(address ? { address } : {});
75
+ } catch (err) {
76
+ if (err instanceof Error && err.code === "ambiguous_lan_interface") {
77
+ throw new Error(`${err.message}. Pass --local-control-address <ip>.`);
77
78
  }
79
+ throw err;
78
80
  }
79
- return urls;
80
- }
81
- __name(localControlUrls, "localControlUrls");
82
- async function showLocalControlPairing(handle, urls) {
83
- await handle.runtimeReady;
84
- if (!handle.webShellMounted || !handle.resolvedToken) {
85
- throw new Error("Local Control requires the authenticated Web Shell.");
81
+ if (!status.url) {
82
+ throw new Error("Local Control did not return a pairing URL.");
86
83
  }
87
84
  const { default: qrcode } = await import("./main-PXAUXNF2.js");
88
85
  qrcode.setErrorLevel("Q");
89
86
  writeStdoutLine(
90
- "\nLocal Control is on. Scan a QR code from the same network:"
87
+ "\nLocal Control is on. Scan this QR code from the same network:"
91
88
  );
92
- for (const entry of urls) {
93
- writeStdoutLine(`
94
- ${entry.interfaceName}: ${entry.url}`);
95
- qrcode.generate(entry.url, { small: true }, (code) => {
96
- writeStdoutLine(code.trimEnd());
97
- });
98
- }
89
+ writeStdoutLine(`
90
+ ${status.interfaceName}: ${status.url}`);
91
+ qrcode.generate(status.url, { small: true }, (code) => {
92
+ writeStdoutLine(code.trimEnd());
93
+ });
99
94
  writeStdoutLine(
100
- "\nKeep this terminal open. Restart after changing networks. Sleep inhibition is best effort. Traffic is encrypted only when --tls-cert and --tls-key are set. Press Ctrl+C to turn Local Control off."
95
+ "\nKeep this terminal open. " + (status.sleepInhibited ? "Sleep is inhibited while this session is active. " : "Sleep inhibition is unavailable here, so the host may sleep. ") + (status.encrypted ? "Traffic is encrypted." : "Traffic is unencrypted \u2014 use it only on a network you trust.") + " Turn Local Control off from the Web Shell Settings card, or press Ctrl+C to exit the daemon."
101
96
  );
102
97
  }
103
- __name(showLocalControlPairing, "showLocalControlPairing");
98
+ __name(startLocalControl, "startLocalControl");
104
99
  async function maybeOpenWebShellBrowser(handle, open) {
105
100
  if (!open || !handle.webShellMounted || !shouldLaunchBrowser()) return;
106
101
  try {
@@ -205,22 +200,24 @@ var serveCommand = {
205
200
  }).option("local-control", {
206
201
  type: "boolean",
207
202
  default: false,
208
- description: "Share the Web Shell on the local IPv4 network with a fresh token, terminal QR code, and best-effort sleep inhibition. Press Ctrl+C to turn it off."
203
+ description: "Share the Web Shell on the local IPv4 network with its own revocable pairing token, terminal QR code, and best-effort sleep inhibition. Ctrl+C turns it off by ending the whole daemon; the Web Shell Settings card turns it off while the daemon keeps running."
204
+ }).option("local-control-address", {
205
+ type: "string",
206
+ description: "Which local IPv4 address to share when the host is on more than one network. Only needed if --local-control reports an ambiguous choice."
209
207
  }).check((argv) => {
210
- if (argv["local-control"] === true && argv.token !== void 0) {
211
- throw new Error("Local Control generates its own token.");
212
- }
213
- if (argv["local-control"] === true && argv["allow-origin"] !== void 0) {
214
- throw new Error("Local Control manages its browser origins.");
215
- }
216
208
  if (argv["local-control"] === true && argv["web"] === false) {
217
209
  throw new Error("Local Control requires the Web Shell.");
218
210
  }
219
- if (argv["local-control"] === true && (!Number.isInteger(argv["port"]) || argv["port"] < 1 || argv["port"] > 65535)) {
220
- throw new Error("Local Control requires a fixed port.");
221
- }
222
211
  if (argv["local-control"] === true && argv.hostname !== DEFAULT_SERVE_HOSTNAME) {
223
- throw new Error("Local Control manages its hostname.");
212
+ throw new Error(
213
+ `Local Control requires --hostname ${DEFAULT_SERVE_HOSTNAME}.`
214
+ );
215
+ }
216
+ if (argv["local-control"] !== true && argv["local-control-address"] !== void 0) {
217
+ throw new Error("--local-control-address requires --local-control.");
218
+ }
219
+ if (argv["local-control-address"] === "") {
220
+ throw new Error("--local-control-address must not be empty.");
224
221
  }
225
222
  return true;
226
223
  }).option("event-ring-size", {
@@ -425,23 +422,12 @@ var serveCommand = {
425
422
  }
426
423
  const externalToolGuardToken = process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV] ?? "";
427
424
  delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
428
- const { runQwenServe } = await import("./run-qwen-serve-3QSGRXAN.js");
425
+ const { runQwenServe } = await import("./run-qwen-serve-7RHU3NSV.js");
429
426
  try {
430
- const localControlToken = argv["local-control"] ? randomBytes(32).toString("base64url") : void 0;
431
- const localControlPairing = localControlToken ? localControlUrls(
432
- `${argv["tls-cert"] ? "https" : "http"}://0.0.0.0:${argv.port}/`,
433
- localControlToken
434
- ) : [];
435
- if (argv["local-control"] && localControlPairing.length === 0) {
436
- throw new Error(
437
- "Local Control could not find a non-loopback IPv4 address."
438
- );
439
- }
440
427
  const handle = await runQwenServe({
441
428
  port: argv.port,
442
- strictPort: argv["local-control"],
443
- hostname: argv["local-control"] ? "0.0.0.0" : argv.hostname,
444
- token: localControlToken ?? argv.token,
429
+ hostname: argv.hostname,
430
+ token: argv.token,
445
431
  mode: "http-bridge",
446
432
  maxSessions: argv["max-sessions"],
447
433
  ...argv["max-total-sessions"] !== void 0 ? { maxTotalSessions: argv["max-total-sessions"] } : {},
@@ -464,13 +450,9 @@ var serveCommand = {
464
450
  ...memoryBudgetMb !== void 0 ? { memoryBudgetMb } : {},
465
451
  memoryPressureMode: argv["memory-pressure-mode"],
466
452
  childHeapMode: argv["child-heap-mode"],
467
- ...argv["local-control"] ? {
468
- allowOrigins: localControlPairing.map(({ url }) => new URL(url).origin).concat(
469
- new URL(
470
- `${argv["tls-cert"] ? "https" : "http"}://127.0.0.1:${argv.port}`
471
- ).origin
472
- )
473
- } : argv["allow-origin"] && argv["allow-origin"].length > 0 ? { allowOrigins: argv["allow-origin"] } : {},
453
+ // No Local Control special case: the service registers and removes the
454
+ // LAN origin itself while a session is live.
455
+ ...argv["allow-origin"] && argv["allow-origin"].length > 0 ? { allowOrigins: argv["allow-origin"] } : {},
474
456
  ...argv["prompt-deadline-ms"] !== void 0 ? { promptDeadlineMs: argv["prompt-deadline-ms"] } : {},
475
457
  ...argv["writer-idle-timeout-ms"] !== void 0 ? { writerIdleTimeoutMs: argv["writer-idle-timeout-ms"] } : {},
476
458
  ...argv["channel-idle-timeout-ms"] !== void 0 ? { channelIdleTimeoutMs: argv["channel-idle-timeout-ms"] } : {},
@@ -503,8 +485,7 @@ var serveCommand = {
503
485
  });
504
486
  if (argv["local-control"]) {
505
487
  try {
506
- await showLocalControlPairing(handle, localControlPairing);
507
- sleepInhibitor.acquire("Qwen Code Local Control is active");
488
+ await startLocalControl(handle, argv["local-control-address"]);
508
489
  } catch (err) {
509
490
  await handle.close().catch(() => void 0);
510
491
  throw err;
@@ -522,7 +503,6 @@ var serveCommand = {
522
503
  };
523
504
 
524
505
  export {
525
- localControlUrls,
526
506
  maybeOpenWebShellBrowser,
527
507
  serveCommand
528
508
  };
@@ -16,7 +16,7 @@ import {
16
16
  MODIFIER_SHIFT_BIT,
17
17
  MODIFIER_SUPER_BIT,
18
18
  clipboardHasImage
19
- } from "./chunk-DXIBNLBZ.js";
19
+ } from "./chunk-SNQZZ765.js";
20
20
  import {
21
21
  require_jsx_runtime
22
22
  } from "./chunk-SV5PQVQE.js";
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  KittySequenceOverflowEvent,
35
35
  logKittySequenceOverflow
36
- } from "./chunk-RVOJ2FBP.js";
36
+ } from "./chunk-KC4WMLZO.js";
37
37
  import {
38
38
  createDebugLogger
39
39
  } from "./chunk-BUQDLC2G.js";