@qwen-code/qwen-code 0.22.2 → 0.22.3

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 (324) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  3. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  5. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  6. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  7. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  8. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  9. package/bundled/review/SKILL.md +81 -31
  10. package/bundled/review/references/persistence.md +7 -3
  11. package/bundled/review/references/posting.md +10 -4
  12. package/chunks/{MaxSizedBox-X5FZSNAJ.js → MaxSizedBox-X42SXBJH.js} +33 -35
  13. package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-2FJAOLGG.js} +51 -53
  14. package/chunks/{acpAgent-MXEAN54C.js → acpAgent-2ZMIJAFV.js} +268 -186
  15. package/chunks/{agent-PJIPDWHB.js → agent-X5WX3L2I.js} +24 -26
  16. package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-IZM25LJA.js} +24 -26
  17. package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
  18. package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
  19. package/chunks/{bridge-FKZTVIS3.js → bridge-ME6QXZNA.js} +37 -39
  20. package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
  21. package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-PEOI7XCG.js} +47 -44
  22. package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
  23. package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
  24. package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
  25. package/chunks/{chunk-P5GGM4KS.js → chunk-2HYKTO7V.js} +3 -3
  26. package/chunks/{chunk-XDFHY4R3.js → chunk-2LNNVAUV.js} +2 -2
  27. package/chunks/{chunk-ZFKOCECU.js → chunk-2OBKDPZZ.js} +2 -2
  28. package/chunks/{chunk-3DXFGHAJ.js → chunk-2OUD5T67.js} +1 -1
  29. package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
  30. package/chunks/{chunk-4JWNNLPT.js → chunk-2YOHKHYR.js} +2 -2
  31. package/chunks/{chunk-JU4EEXC7.js → chunk-36GSQ3MM.js} +2 -2
  32. package/chunks/chunk-36LGBEM6.js +130 -0
  33. package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
  34. package/chunks/{chunk-G34IR3D6.js → chunk-3SZC4VP4.js} +26 -109
  35. package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
  36. package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
  37. package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
  38. package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
  39. package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
  40. package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
  41. package/chunks/{chunk-IJKTMLBE.js → chunk-4TT3IVGA.js} +1 -1
  42. package/chunks/{chunk-C6K43ZDE.js → chunk-4VPCTGH6.js} +5 -5
  43. package/chunks/chunk-4VQBQLIZ.js +293 -0
  44. package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
  45. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  46. package/chunks/{chunk-AGR5UROZ.js → chunk-6X7EU5TI.js} +17 -29
  47. package/chunks/{chunk-PFCQ62V4.js → chunk-6ZPDLGHN.js} +6 -6
  48. package/chunks/{chunk-RIEFGNTP.js → chunk-734C6JGI.js} +207 -43
  49. package/chunks/{chunk-FBSSIAAQ.js → chunk-73RM4POK.js} +7 -7
  50. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  51. package/chunks/chunk-7J6OTNGO.js +424 -0
  52. package/chunks/{chunk-O2UN57NX.js → chunk-7LOELM2I.js} +19 -2
  53. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  54. package/chunks/{chunk-CPGJJJLU.js → chunk-7T52W4SW.js} +1 -1
  55. package/chunks/{chunk-5O72BNDD.js → chunk-7VMIMAVB.js} +7 -7
  56. package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
  57. package/chunks/{chunk-F7TNAPZ4.js → chunk-AIAOIFY4.js} +5 -5
  58. package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
  59. package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
  60. package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
  61. package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
  62. package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
  63. package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
  64. package/chunks/{chunk-FY76G3G5.js → chunk-C3PEFRKD.js} +4 -4
  65. package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
  66. package/chunks/{chunk-CCBZDVUA.js → chunk-CIZCL2MW.js} +33 -20
  67. package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
  68. package/chunks/chunk-DJBQCO2E.js +842 -0
  69. package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
  70. package/chunks/{chunk-F5SZP77N.js → chunk-DJEZ55D4.js} +71 -65
  71. package/chunks/{chunk-BAJKAAOY.js → chunk-DJPASAUV.js} +3840 -1055
  72. package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
  73. package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
  74. package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
  75. package/chunks/{chunk-DZWPESIF.js → chunk-EFWRMA2I.js} +3 -3
  76. package/chunks/{chunk-4MQEPP3Y.js → chunk-EQSBPBZ3.js} +5 -119
  77. package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
  78. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  79. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  80. package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
  81. package/chunks/{chunk-SJ3ZUWFK.js → chunk-GBJBJ4HX.js} +4 -4
  82. package/chunks/{chunk-IOPCFOTF.js → chunk-GPGU4S2N.js} +2 -2
  83. package/chunks/{chunk-6LFJEACX.js → chunk-GVIVASYK.js} +7 -7
  84. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  85. package/chunks/{chunk-A7YP63XN.js → chunk-HP5LR5HL.js} +5 -5
  86. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  87. package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
  88. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  89. package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
  90. package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
  91. package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
  92. package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
  93. package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
  94. package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
  95. package/chunks/{chunk-JSHHYW6T.js → chunk-LHBUKJG2.js} +3 -3
  96. package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
  97. package/chunks/{chunk-66KDY3LV.js → chunk-M3QRM3DE.js} +1 -1
  98. package/chunks/{chunk-V4QXXQJ2.js → chunk-MF7HCQWZ.js} +2 -2
  99. package/chunks/{chunk-W5MJJ2V7.js → chunk-MK2GIB46.js} +1 -1
  100. package/chunks/{chunk-Y6LSMB6J.js → chunk-MO3FC2WT.js} +1 -1
  101. package/chunks/{chunk-L6YT5H34.js → chunk-MPNBVAEU.js} +4 -4
  102. package/chunks/{chunk-CSMI4FP5.js → chunk-MSBO7X2W.js} +1 -1
  103. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  104. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  105. package/chunks/{chunk-6LFTG244.js → chunk-NMOD2FXQ.js} +15 -5
  106. package/chunks/{chunk-KUX5D6DK.js → chunk-NV55WWD6.js} +11330 -10971
  107. package/chunks/{chunk-Q26AYA62.js → chunk-OU5APVWO.js} +2 -2
  108. package/chunks/{chunk-2K6ORIHJ.js → chunk-P2G476QN.js} +11 -11
  109. package/chunks/{chunk-OIP7C4FE.js → chunk-PADPMMYM.js} +4 -4
  110. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  111. package/chunks/{chunk-TGWAQ5RB.js → chunk-PZ66FRIC.js} +2071 -2124
  112. package/chunks/{chunk-7UYV53BC.js → chunk-Q2MSPKIJ.js} +1 -1
  113. package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
  114. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  115. package/chunks/chunk-SEONHUS3.js +275 -0
  116. package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
  117. package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
  118. package/chunks/{chunk-3SGB2UHX.js → chunk-ST5MDGH3.js} +23 -11
  119. package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
  120. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  121. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  122. package/chunks/{chunk-77RG5SFQ.js → chunk-TEBDFQBZ.js} +1 -1
  123. package/chunks/{chunk-6CGL7E7G.js → chunk-TVC6HQ2U.js} +2 -2
  124. package/chunks/{chunk-BBWV7ONL.js → chunk-TZBSGJ6C.js} +6 -6
  125. package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
  126. package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
  127. package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
  128. package/chunks/{chunk-KEKZFOL6.js → chunk-V7EESTJV.js} +1 -1
  129. package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
  130. package/chunks/{chunk-RJC5EIKY.js → chunk-VGIFXISB.js} +3 -3
  131. package/chunks/{chunk-Z7FLBQPR.js → chunk-W3JH33JE.js} +7 -7
  132. package/chunks/{chunk-K2NQPH5D.js → chunk-WGY3AVGM.js} +3 -3
  133. package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
  134. package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
  135. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  136. package/chunks/{chunk-IK5BW3CS.js → chunk-XHF7WQ6B.js} +2 -2
  137. package/chunks/{chunk-2NYCN6F2.js → chunk-XSG6G3G6.js} +43 -26
  138. package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
  139. package/chunks/{chunk-LXIBMVRN.js → chunk-YLSQLSH7.js} +13 -7
  140. package/chunks/{chunk-JSC3H3TD.js → chunk-ZEYFMJQA.js} +14 -6
  141. package/chunks/chunk-ZWJDJ6RU.js +2597 -0
  142. package/chunks/{chunk-QP4C6WCE.js → chunk-ZYMLPEZQ.js} +2 -2
  143. package/chunks/{chunk-BNMF3K5X.js → chunk-ZZMSC3RG.js} +52 -36
  144. package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
  145. package/chunks/{config-utils-BBOCOGZW.js → config-utils-R6M3TA34.js} +39 -39
  146. package/chunks/{contextCommand-EET67MQ2.js → contextCommand-ZCAP23J6.js} +36 -38
  147. package/chunks/{core-runtime-677KFX6Q.js → core-runtime-AXB6SK5D.js} +41 -43
  148. package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-4QNE64MR.js} +34 -36
  149. package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
  150. package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-IVAJJWYK.js} +33 -35
  151. package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-K3SJ5C2U.js} +42 -44
  152. package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-DOR3YG62.js} +41 -43
  153. package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-KGGROSIV.js} +41 -43
  154. package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-WOYLUQQ7.js} +33 -35
  155. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  156. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  157. package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
  158. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  159. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  160. package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
  161. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  162. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  163. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  164. package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-OHBEVO4K.js} +33 -35
  165. package/chunks/{edit-BSV6YRVW.js → edit-LEQLAGPZ.js} +24 -26
  166. package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
  167. package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-ONQN3WHE.js} +27 -29
  168. package/chunks/{environment-MOZMPUHR.js → environment-UANTR7A4.js} +37 -39
  169. package/chunks/{errors-DMPQVYJL.js → errors-WAK6KFBC.js} +36 -38
  170. package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
  171. package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-UEYBG6P5.js} +24 -26
  172. package/chunks/{fast-path-773PV7PU.js → fast-path-WUL7UZ6H.js} +4 -4
  173. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  174. package/chunks/{glob-CZHOWUEA.js → glob-Y54QUWDY.js} +24 -26
  175. package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
  176. package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-FP3NWNSG.js} +37 -39
  177. package/chunks/{i18n-B42HKHKH.js → i18n-INIU5X7A.js} +35 -37
  178. package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
  179. package/chunks/{initializer-FB66WYR3.js → initializer-TYODV6GE.js} +41 -43
  180. package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-AAPKYDSZ.js} +33 -35
  181. package/chunks/{list-2HWGSVRA.js → list-TUODDN6J.js} +44 -46
  182. package/chunks/{gemini-IP4FJAP5.js → llm-NSAVK5V3.js} +84 -82
  183. package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-AY2QKXHE.js} +25 -25
  184. package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KJCLZ3C4.js} +41 -43
  185. package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-DSFQHXIF.js} +305 -27
  186. package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-TSWENTK5.js} +33 -35
  187. package/chunks/{mcp-QGG5NMJJ.js → mcp-MWSAPFOL.js} +41 -43
  188. package/chunks/{monitor-FI7PY36Z.js → monitor-RW4GWJHB.js} +24 -26
  189. package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-JXKL343Q.js} +77 -78
  190. package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-CQNYS5OR.js} +24 -26
  191. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  192. package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-J6QIF7EX.js} +13 -15
  193. package/chunks/{pidfile-JMF2CLMY.js → pidfile-QOIQZFT2.js} +33 -35
  194. package/chunks/process-registry-OAEG6WGC.js +662 -0
  195. package/chunks/{processUtils-IQZBYWSB.js → processUtils-GPHNANKZ.js} +2 -2
  196. package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-FOMFTYOM.js} +34 -36
  197. package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-WWDXPYQI.js} +28 -30
  198. package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
  199. package/chunks/{read-file-QE2B5FTX.js → read-file-FQUQHC6N.js} +5 -5
  200. package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
  201. package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
  202. package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-NSGF3UCB.js} +37 -39
  203. package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-4CAT6SKV.js} +7 -7
  204. package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-5X6IDZER.js} +271 -86
  205. package/chunks/{runtime-TTIGSBM4.js → runtime-HK27GMPF.js} +46 -48
  206. package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-MN2ZZ5P6.js} +39 -41
  207. package/chunks/{scheduler-YRUG22M7.js → scheduler-WD4MHMO5.js} +35 -37
  208. package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
  209. package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
  210. package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
  211. package/chunks/{serve-MXXCDAQN.js → serve-2XCHPPGG.js} +41 -43
  212. package/chunks/{server-DFUSSSHI.js → server-GO2N5DH7.js} +4148 -3348
  213. package/chunks/{session-3TEHNENZ.js → session-IFNHTUBT.js} +81 -82
  214. package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
  215. package/chunks/{settings-VOZYKLTT.js → settings-L6N54CU6.js} +40 -42
  216. package/chunks/{shell-6RTKZVMI.js → shell-4Y5LLW6N.js} +24 -26
  217. package/chunks/{skill-FEOKFX26.js → skill-YOWTRAKQ.js} +58 -14
  218. package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-ZL4JY5UE.js} +41 -43
  219. package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-ZST6XJVJ.js} +35 -37
  220. package/chunks/{standalone-update-RGILUQVK.js → standalone-update-THVU3OKY.js} +36 -38
  221. package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-XDFSHBZD.js} +401 -334
  222. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  223. package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
  224. package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
  225. package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
  226. package/chunks/{team-create-QYSWCYCL.js → team-create-OOPXCDBA.js} +24 -26
  227. package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
  228. package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-DSX5EWAT.js} +24 -26
  229. package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-KS25G33E.js} +33 -35
  230. package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-YMZNG45F.js} +33 -35
  231. package/chunks/{tool-search-F2EMIAPV.js → tool-search-J5Q6U7DN.js} +9 -9
  232. package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-PVN64JVV.js} +37 -39
  233. package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-FATSC4YI.js} +35 -37
  234. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  235. package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-SIKHLHVR.js} +6 -6
  236. package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-D3YG2WCD.js} +36 -38
  237. package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-ILINOSAS.js} +43 -45
  238. package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-JUDQP6V4.js} +74 -75
  239. package/chunks/{version-ANP4TS6O.js → version-C63GDDWN.js} +1 -1
  240. package/chunks/{web-fetch-QJADSAH3.js → web-fetch-FOQZMNSC.js} +8 -10
  241. package/chunks/{web-search-7TTQKEKM.js → web-search-PUJTBFUC.js} +5 -7
  242. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  243. package/chunks/{workflow-5XN6XSOT.js → workflow-Y5IPINVH.js} +47 -58
  244. package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-IJ4VHFMB.js} +45 -47
  245. package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-SMJWI2AI.js} +1 -1
  246. package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-BTGZIMPK.js} +37 -39
  247. package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-SIN67ITC.js} +46 -51
  248. package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-F3RKCUIX.js} +44 -46
  249. package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-PLIDLJZX.js} +45 -47
  250. package/chunks/{write-file-GGRBB5TZ.js → write-file-PAIGB33C.js} +26 -28
  251. package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-LYQD7BQA.js} +5 -5
  252. package/cli.js +14 -14
  253. package/package.json +3 -3
  254. package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
  255. package/web-shell/assets/{arc-BSTnk5pu.js → arc-D9Uls5b3.js} +1 -1
  256. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
  257. package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
  258. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
  259. package/web-shell/assets/channel-CXjVLaBa.js +1 -0
  260. package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
  261. package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
  262. package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
  263. package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
  264. package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
  265. package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
  266. package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
  267. package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
  268. package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
  269. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
  270. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
  271. package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
  272. package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
  273. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
  274. package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
  275. package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
  276. package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
  277. package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
  278. package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
  279. package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
  280. package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
  281. package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
  282. package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
  283. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
  284. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
  285. package/web-shell/assets/{index-CBGz4Qjl.js → index-BK_NKxiJ.js} +1 -1
  286. package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
  287. package/web-shell/assets/index-LDlXZRHA.css +36 -0
  288. package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
  289. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
  290. package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
  291. package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
  292. package/web-shell/assets/{layout-CEz_1L8z.js → layout-B9n81PC9.js} +1 -1
  293. package/web-shell/assets/{linear-CBjTq9Hc.js → linear-Bb6nXZQq.js} +1 -1
  294. package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-Cgrm3JVT.js} +6 -6
  295. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
  296. package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
  297. package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
  298. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
  299. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
  300. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
  301. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
  302. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
  303. package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
  304. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
  305. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
  306. package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
  307. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
  308. package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
  309. package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
  310. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
  311. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
  312. package/web-shell/index.html +3 -3
  313. package/chunks/chunk-7DJCPZE3.js +0 -945
  314. package/chunks/chunk-J2OSJFP3.js +0 -202
  315. package/chunks/chunk-K2OJUPOE.js +0 -78
  316. package/chunks/chunk-P3QQPMQA.js +0 -19
  317. package/chunks/process-registry-PMJOA5CO.js +0 -172
  318. package/web-shell/assets/channel-CENAhErJ.js +0 -1
  319. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
  320. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
  321. package/web-shell/assets/index-8hXIpvo4.js +0 -1865
  322. package/web-shell/assets/index-DclEv91i.css +0 -5
  323. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
  324. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
@@ -2,31 +2,25 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseToolWriteOriginMeta
5
- } from "./chunk-T3WXYEZ4.js";
5
+ } from "./chunk-U54AYGEC.js";
6
+ import {
7
+ isLoopbackBind
8
+ } from "./chunk-RXFQM6FQ.js";
6
9
  import {
7
10
  MAX_CHILD_HEAP_MB,
8
11
  MIN_CHILD_HEAP_MB,
9
12
  recommendedChildShareMb
10
13
  } from "./chunk-UXEO7E3V.js";
11
14
  import {
12
- isLoopbackBind
13
- } from "./chunk-RXFQM6FQ.js";
14
- import {
15
- normalizeSessionIdForLookup
16
- } from "./chunk-ZEZKIS2K.js";
15
+ CLIENT_ID_RE,
16
+ MAX_CLIENT_ID_LENGTH
17
+ } from "./chunk-SEONHUS3.js";
17
18
  import {
18
19
  isInternalWorkspaceRuntime
19
20
  } from "./chunk-NYWWQ437.js";
20
21
  import {
21
22
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
22
23
  } from "./chunk-OZ6KS6KW.js";
23
- import {
24
- MAX_WORKSPACE_PATH_LENGTH,
25
- translateAndCheckAbsoluteWorkspacePath
26
- } from "./chunk-6PLDPT2C.js";
27
- import {
28
- writeStderrLine
29
- } from "./chunk-KGJGEEVR.js";
30
24
  import {
31
25
  ROOT_CONTEXT,
32
26
  context,
@@ -1516,6 +1510,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1516
1510
  session_metadata: { since: "v1" },
1517
1511
  session_organization: { since: "v1" },
1518
1512
  session_export: { since: "v1" },
1513
+ standalone_sessions_v1: { since: "v1" },
1519
1514
  session_transcript: { since: "v1" },
1520
1515
  session_transcript_pagination: { since: "v1" },
1521
1516
  // Daemon supports the MCP client guardrail surface: an in-process
@@ -1582,8 +1577,8 @@ var SERVE_CAPABILITY_REGISTRY = {
1582
1577
  // unregistered — the toggle takes effect on the next ACP child spawn
1583
1578
  // (`tools.disabled` is consulted at `Config` construction time).
1584
1579
  workspace_tool_toggle: { since: "v1" },
1585
- workspace_skill_toggle: { since: "v1" },
1586
- workspace_skill_batch_toggle: { since: "v1" },
1580
+ workspace_skill_settings_toggle: { since: "v1" },
1581
+ workspace_skill_settings_batch_toggle: { since: "v1" },
1587
1582
  extension_batch_activation_v2: { since: "v1" },
1588
1583
  workspace_skill_manage: { since: "v1" },
1589
1584
  workspace_settings: { since: "v1" },
@@ -1601,13 +1596,12 @@ var SERVE_CAPABILITY_REGISTRY = {
1601
1596
  // Workspace trust policy changes rebuild the affected runtime generation
1602
1597
  // without restarting the daemon. V2 trust status exposes convergence.
1603
1598
  workspace_trust_hot_reload: { since: "v1" },
1604
- // `POST /workspace/init` scaffolds an empty
1605
- // `QWEN.md` (or whatever `getCurrentGeminiMdFilename()` returns) at
1606
- // the bound workspace root. Body: `{force?: boolean}`. Default
1599
+ // `POST /workspace/init` scaffolds an empty `QWEN.md` (or the
1600
+ // workspace `context.fileName` value injected as `contextFilename`)
1601
+ // at the bound workspace root. Body: `{force?: boolean}`. Default
1607
1602
  // refuses with 409 when the file already exists; `force: true`
1608
- // overwrites. Mechanical only — does NOT call the LLM. To AI-fill
1609
- // the file, the caller should follow up with
1610
- // `POST /session/:id/prompt`.
1603
+ // overwrites. Mechanical only — does NOT call the LLM. To AI-fill the
1604
+ // file, the caller should follow up with `POST /session/:id/prompt`.
1611
1605
  workspace_init: { since: "v1" },
1612
1606
  // `POST /workspace/setup-github` installs the fixed
1613
1607
  // qwen-code-action workflow set into the bound workspace after
@@ -1774,6 +1768,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1774
1768
  // `workspace_extensions` contract.
1775
1769
  extension_management_v2: { since: "v1" },
1776
1770
  extension_git_credentials: { since: "v1" },
1771
+ extension_local_path_install: { since: "v1" },
1777
1772
  // Workspace-qualified, daemon-local persisted transcript paging. The tag is
1778
1773
  // unconditional because the route also serves a trusted single-workspace
1779
1774
  // primary; authorization is evaluated for the selected runtime per request.
@@ -1839,10 +1834,15 @@ var SERVE_CAPABILITY_REGISTRY = {
1839
1834
  // WebShell daemon with native Host integration and the hot-applied enabled
1840
1835
  // gate. `/live/status` remains the dynamic readiness surface for the Host,
1841
1836
  // permissions, self-checks, and provider reachability.
1842
- realtime_voice: { since: "v1" }
1837
+ realtime_voice: { since: "v1" },
1838
+ web_terminal: { since: "v1" }
1843
1839
  };
1844
1840
  var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1845
1841
  ["require_auth", (toggles) => toggles.requireAuth === true],
1842
+ [
1843
+ "standalone_sessions_v1",
1844
+ (toggles) => toggles.standaloneSessionsAvailable === true
1845
+ ],
1846
1846
  ["mcp_workspace_pool", (toggles) => toggles.mcpPoolActive === true],
1847
1847
  ["mcp_pool_restart", (toggles) => toggles.mcpPoolActive === true],
1848
1848
  [
@@ -1960,7 +1960,8 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1960
1960
  [
1961
1961
  "realtime_voice",
1962
1962
  (toggles) => toggles.acpHttpEnabled === true && toggles.realtimeVoiceEnabled === true
1963
- ]
1963
+ ],
1964
+ ["web_terminal", (toggles) => toggles.acpHttpEnabled === true]
1964
1965
  ]);
1965
1966
  var SERVE_FEATURES = Object.freeze(
1966
1967
  Object.keys(SERVE_CAPABILITY_REGISTRY)
@@ -2393,235 +2394,6 @@ function installServeAppLifecycle(app, lifecycle = new ServeAppLifecycleControll
2393
2394
  }
2394
2395
  __name(installServeAppLifecycle, "installServeAppLifecycle");
2395
2396
 
2396
- // packages/cli/src/serve/server/request-helpers.ts
2397
- init_esbuild_shims();
2398
- function sendJsonBodyParserError(res, err) {
2399
- if (err instanceof SyntaxError && "status" in err && err.status === 400) {
2400
- res.status(400).json({ error: "Invalid JSON in request body" });
2401
- return true;
2402
- }
2403
- if (err && typeof err === "object" && "status" in err && err.status === 413) {
2404
- res.status(413).json({ error: "Request body too large (max 10 MB)" });
2405
- return true;
2406
- }
2407
- return false;
2408
- }
2409
- __name(sendJsonBodyParserError, "sendJsonBodyParserError");
2410
- var PROTOTYPE_POLLUTION_KEYS = /* @__PURE__ */ new Set([
2411
- "__proto__",
2412
- "constructor",
2413
- "prototype"
2414
- ]);
2415
- var CLIENT_ID_HEADER = "x-qwen-client-id";
2416
- var MAX_CLIENT_ID_LENGTH = 128;
2417
- var MAX_TOOL_NAME_LENGTH = 256;
2418
- var MAX_SERVER_NAME_LENGTH = 256;
2419
- var CLIENT_ID_RE = /^[A-Za-z0-9._:-]+$/;
2420
- var INVALID_PERMISSION_OUTCOME_ERROR = '`outcome` must be `{ outcome: "cancelled" }` or `{ outcome: "selected", optionId: string }`';
2421
- var deferredRuntimeTimingKey = Symbol(
2422
- "deferredRuntimeRequestTiming"
2423
- );
2424
- function setDeferredRuntimeRequestTiming(req, timing) {
2425
- req[deferredRuntimeTimingKey] = timing;
2426
- }
2427
- __name(setDeferredRuntimeRequestTiming, "setDeferredRuntimeRequestTiming");
2428
- function getDeferredRuntimeRequestTiming(req) {
2429
- return req[deferredRuntimeTimingKey];
2430
- }
2431
- __name(getDeferredRuntimeRequestTiming, "getDeferredRuntimeRequestTiming");
2432
- function safeBody(req) {
2433
- const raw = req.body;
2434
- if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
2435
- return /* @__PURE__ */ Object.create(null);
2436
- }
2437
- const out = /* @__PURE__ */ Object.create(null);
2438
- for (const [key, value] of Object.entries(raw)) {
2439
- if (PROTOTYPE_POLLUTION_KEYS.has(key)) continue;
2440
- out[key] = value;
2441
- }
2442
- return out;
2443
- }
2444
- __name(safeBody, "safeBody");
2445
- function parseOptionalWorkspaceCwd(body, boundWorkspace, res) {
2446
- const hasCwd = "cwd" in body;
2447
- if (hasCwd && typeof body["cwd"] !== "string") {
2448
- res.status(400).json({ error: "`cwd` must be a string absolute path when provided" });
2449
- return void 0;
2450
- }
2451
- if (hasCwd && body["cwd"].length > MAX_WORKSPACE_PATH_LENGTH) {
2452
- res.status(400).json({
2453
- error: `\`cwd\` exceeds the ${MAX_WORKSPACE_PATH_LENGTH}-character limit`
2454
- });
2455
- return void 0;
2456
- }
2457
- const cwd = translateAndCheckAbsoluteWorkspacePath(
2458
- hasCwd ? body["cwd"] : boundWorkspace
2459
- );
2460
- if (cwd === null) {
2461
- res.status(400).json({ error: "`cwd` must be an absolute path when provided" });
2462
- return void 0;
2463
- }
2464
- return cwd;
2465
- }
2466
- __name(parseOptionalWorkspaceCwd, "parseOptionalWorkspaceCwd");
2467
- function requireSessionId(req, res) {
2468
- const sessionId = req.params["id"];
2469
- if (!sessionId) {
2470
- res.status(400).json({ error: "`sessionId` route parameter is required" });
2471
- return null;
2472
- }
2473
- return normalizeSessionIdForLookup(sessionId);
2474
- }
2475
- __name(requireSessionId, "requireSessionId");
2476
- function parseClientIdHeader(req, res) {
2477
- const raw = req.get(CLIENT_ID_HEADER);
2478
- if (raw === void 0 || raw === "") return void 0;
2479
- if (raw.length > MAX_CLIENT_ID_LENGTH || !CLIENT_ID_RE.test(raw)) {
2480
- res.status(400).json({
2481
- error: "`X-Qwen-Client-Id` must be a non-empty token of 128 characters or fewer",
2482
- code: "invalid_client_id"
2483
- });
2484
- return null;
2485
- }
2486
- return raw;
2487
- }
2488
- __name(parseClientIdHeader, "parseClientIdHeader");
2489
- function detectFromLoopback(req) {
2490
- const addr = req.socket?.remoteAddress;
2491
- if (typeof addr !== "string") return false;
2492
- if (addr === "::1") return true;
2493
- if (addr.startsWith("127.")) return true;
2494
- if (addr.startsWith("::ffff:127.")) return true;
2495
- return false;
2496
- }
2497
- __name(detectFromLoopback, "detectFromLoopback");
2498
- function validateMcpRuntimeServerName(name, res) {
2499
- if (typeof name !== "string" || name.length === 0) {
2500
- res.status(400).json({
2501
- error: "Server name is required and must be a non-empty string",
2502
- code: "invalid_server_name"
2503
- });
2504
- return false;
2505
- }
2506
- if (name.length > MAX_SERVER_NAME_LENGTH) {
2507
- res.status(400).json({
2508
- error: `Server name exceeds ${MAX_SERVER_NAME_LENGTH}-character limit`,
2509
- code: "invalid_server_name"
2510
- });
2511
- return false;
2512
- }
2513
- if (!/^[A-Za-z0-9_-]+$/.test(name)) {
2514
- res.status(400).json({
2515
- error: "Server name must contain only alphanumeric characters, underscores, and hyphens",
2516
- code: "invalid_server_name"
2517
- });
2518
- return false;
2519
- }
2520
- if (name === "__proto__" || name === "constructor" || name === "prototype") {
2521
- res.status(400).json({
2522
- error: "Server name must not be a reserved JS property name",
2523
- code: "invalid_server_name"
2524
- });
2525
- return false;
2526
- }
2527
- return true;
2528
- }
2529
- __name(validateMcpRuntimeServerName, "validateMcpRuntimeServerName");
2530
- function parseAndValidateWorkspaceClientId(req, res, bridge) {
2531
- const raw = parseClientIdHeader(req, res);
2532
- if (raw === null || raw === void 0) return raw;
2533
- const bridges = Array.isArray(bridge) ? bridge : [bridge];
2534
- if (!bridges.some((candidate) => candidate.knownClientIds().has(raw))) {
2535
- res.status(400).json({
2536
- error: `Client id "${raw}" is not registered for this workspace`,
2537
- code: "invalid_client_id",
2538
- clientId: raw
2539
- });
2540
- return null;
2541
- }
2542
- return raw;
2543
- }
2544
- __name(parseAndValidateWorkspaceClientId, "parseAndValidateWorkspaceClientId");
2545
- function createBuildWorkspaceCtx(boundWorkspace) {
2546
- return (route, clientId) => ({
2547
- originatorClientId: clientId,
2548
- route,
2549
- workspaceCwd: boundWorkspace
2550
- });
2551
- }
2552
- __name(createBuildWorkspaceCtx, "createBuildWorkspaceCtx");
2553
- function parsePermissionVoteBody(req, res) {
2554
- const body = safeBody(req);
2555
- const outcome = body["outcome"];
2556
- if (!isValidOutcome(outcome)) {
2557
- res.status(400).json({ error: INVALID_PERMISSION_OUTCOME_ERROR });
2558
- return void 0;
2559
- }
2560
- return {
2561
- ...body,
2562
- outcome
2563
- };
2564
- }
2565
- __name(parsePermissionVoteBody, "parsePermissionVoteBody");
2566
- function isValidOutcome(raw) {
2567
- if (typeof raw !== "object" || raw === null) return false;
2568
- const obj = raw;
2569
- if (obj["outcome"] === "cancelled") return true;
2570
- return obj["outcome"] === "selected" && typeof obj["optionId"] === "string" && obj["optionId"].length > 0;
2571
- }
2572
- __name(isValidOutcome, "isValidOutcome");
2573
- var MIN_QUERY_MAX_QUEUED = 16;
2574
- var MAX_QUERY_MAX_QUEUED = 2048;
2575
- function parseMaxQueuedQuery(raw, res) {
2576
- if (raw === void 0) return void 0;
2577
- if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
2578
- writeStderrLine(
2579
- `qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (not a decimal integer)`
2580
- );
2581
- res.status(400).json({
2582
- error: "`maxQueued` must be a decimal integer",
2583
- code: "invalid_max_queued"
2584
- });
2585
- return null;
2586
- }
2587
- const n = Number.parseInt(raw, 10);
2588
- if (!Number.isFinite(n) || n < MIN_QUERY_MAX_QUEUED || n > MAX_QUERY_MAX_QUEUED) {
2589
- writeStderrLine(
2590
- `qwen serve: rejected ?maxQueued ${safeLogValue(raw)} (outside [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}])`
2591
- );
2592
- res.status(400).json({
2593
- error: `\`maxQueued\` must be in [${MIN_QUERY_MAX_QUEUED}, ${MAX_QUERY_MAX_QUEUED}]`,
2594
- code: "invalid_max_queued"
2595
- });
2596
- return null;
2597
- }
2598
- return n;
2599
- }
2600
- __name(parseMaxQueuedQuery, "parseMaxQueuedQuery");
2601
- function safeLogValue(raw) {
2602
- return JSON.stringify(String(raw)).slice(0, 82);
2603
- }
2604
- __name(safeLogValue, "safeLogValue");
2605
- function parseLastEventId(raw) {
2606
- if (typeof raw !== "string" || !/^\d+$/.test(raw)) {
2607
- if (typeof raw === "string" && raw.length > 0) {
2608
- writeStderrLine(
2609
- `qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (not a decimal integer)`
2610
- );
2611
- }
2612
- return void 0;
2613
- }
2614
- const n = Number.parseInt(raw, 10);
2615
- if (!Number.isFinite(n) || n > Number.MAX_SAFE_INTEGER) {
2616
- writeStderrLine(
2617
- `qwen serve: rejected Last-Event-ID ${safeLogValue(raw)} (exceeds Number.MAX_SAFE_INTEGER)`
2618
- );
2619
- return void 0;
2620
- }
2621
- return n;
2622
- }
2623
- __name(parseLastEventId, "parseLastEventId");
2624
-
2625
2397
  // packages/cli/src/serve/rate-limit.ts
2626
2398
  init_esbuild_shims();
2627
2399
  var MAX_BUCKETS = 1e4;
@@ -4176,26 +3948,6 @@ export {
4176
3948
  conversationRootCompromisedError,
4177
3949
  ServeAppLifecycleController,
4178
3950
  installServeAppLifecycle,
4179
- sendJsonBodyParserError,
4180
- CLIENT_ID_HEADER,
4181
- MAX_CLIENT_ID_LENGTH,
4182
- MAX_TOOL_NAME_LENGTH,
4183
- MAX_SERVER_NAME_LENGTH,
4184
- CLIENT_ID_RE,
4185
- setDeferredRuntimeRequestTiming,
4186
- getDeferredRuntimeRequestTiming,
4187
- safeBody,
4188
- parseOptionalWorkspaceCwd,
4189
- requireSessionId,
4190
- parseClientIdHeader,
4191
- detectFromLoopback,
4192
- validateMcpRuntimeServerName,
4193
- parseAndValidateWorkspaceClientId,
4194
- createBuildWorkspaceCtx,
4195
- parsePermissionVoteBody,
4196
- parseMaxQueuedQuery,
4197
- safeLogValue,
4198
- parseLastEventId,
4199
3951
  createRateLimiter,
4200
3952
  setRateLimiter,
4201
3953
  getRateLimiter,
@@ -1,19 +1,14 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- retryContext
5
- } from "./chunk-P3QQPMQA.js";
6
- import {
7
- classifyRetryError
8
- } from "./chunk-J2OSJFP3.js";
9
- import {
4
+ classifyRetryError,
10
5
  formatQuotaExhaustedMessage,
11
6
  getRetryAfterDelayMs,
12
7
  getRetryDelayMs,
13
8
  isQuotaExhaustedError,
14
9
  isQwenQuotaExceededError,
15
10
  isRateLimitError
16
- } from "./chunk-4FTKQNWJ.js";
11
+ } from "./chunk-DYXFD5RO.js";
17
12
  import {
18
13
  createDebugLogger,
19
14
  getErrorStatus
@@ -27,6 +22,13 @@ import {
27
22
 
28
23
  // packages/core/src/utils/retry.ts
29
24
  init_esbuild_shims();
25
+
26
+ // packages/core/src/utils/retryContext.ts
27
+ init_esbuild_shims();
28
+ import { AsyncLocalStorage } from "node:async_hooks";
29
+ var retryContext = new AsyncLocalStorage();
30
+
31
+ // packages/core/src/utils/retry.ts
30
32
  var debugLogger = createDebugLogger("RETRY");
31
33
  var PERSISTENT_MAX_BACKOFF_MS = 5 * 60 * 1e3;
32
34
  var PERSISTENT_CAP_MS = 6 * 60 * 60 * 1e3;
@@ -331,10 +333,16 @@ function logRetryAtStatusLevel(message, retryDiagnostics, error, errorStatus) {
331
333
  __name(logRetryAtStatusLevel, "logRetryAtStatusLevel");
332
334
 
333
335
  export {
336
+ retryContext,
334
337
  isUnattendedMode,
335
338
  delay,
336
339
  retryWithBackoff
337
340
  };
341
+ /**
342
+ * @license
343
+ * Copyright 2026 Qwen Team
344
+ * SPDX-License-Identifier: Apache-2.0
345
+ */
338
346
  /**
339
347
  * @license
340
348
  * Copyright 2025 Google LLC
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getEffectiveSupportedModes
5
- } from "./chunk-K2NQPH5D.js";
5
+ } from "./chunk-WGY3AVGM.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -27,10 +27,10 @@ import {
27
27
  } from "./chunk-3VUENPWF.js";
28
28
  import {
29
29
  loadSettings
30
- } from "./chunk-F7TNAPZ4.js";
30
+ } from "./chunk-AIAOIFY4.js";
31
31
  import {
32
32
  MCP_BUDGET_WARN_FRACTION
33
- } from "./chunk-TGWAQ5RB.js";
33
+ } from "./chunk-PZ66FRIC.js";
34
34
  import {
35
35
  parsePositiveIntegerEnv
36
36
  } from "./chunk-6PVPNMXU.js";
@@ -44,7 +44,7 @@ import {
44
44
  import {
45
45
  writeStderrLine,
46
46
  writeStdoutLine
47
- } from "./chunk-KGJGEEVR.js";
47
+ } from "./chunk-7FA2II6K.js";
48
48
  import {
49
49
  init_esbuild_shims
50
50
  } from "./chunk-5O2XNYP6.js";
@@ -444,7 +444,7 @@ var serveCommand = {
444
444
  delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
445
445
  const openWithAuth = argv["open-with-auth"];
446
446
  const open = argv.open || openWithAuth;
447
- const { runQwenServe } = await import("./run-qwen-serve-TPHZMSXJ.js");
447
+ const { runQwenServe } = await import("./run-qwen-serve-5X6IDZER.js");
448
448
  try {
449
449
  const serveOptions = {
450
450
  port: argv.port,
@@ -507,7 +507,7 @@ var serveCommand = {
507
507
  ...channelSelection !== void 0 ? { channelSelection } : {}
508
508
  };
509
509
  if (openWithAuth) {
510
- const { applyOpenWithAuth } = await import("./open-with-auth-4UI3KHUR.js");
510
+ const { applyOpenWithAuth } = await import("./open-with-auth-YN3QZHVM.js");
511
511
  applyOpenWithAuth(serveOptions);
512
512
  }
513
513
  const handle = await runQwenServe(serveOptions);