@qwen-code/qwen-code 0.22.2 → 0.22.3-nightly.20260829.e5cb60ad48

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 (332) 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-JK4LFKJ3.js} +36 -37
  13. package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-UA2MQCCS.js} +54 -55
  14. package/chunks/{acpAgent-MXEAN54C.js → acpAgent-ZKIVHQKW.js} +276 -191
  15. package/chunks/{agent-PJIPDWHB.js → agent-Z3Q5C3RX.js} +27 -28
  16. package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-BIVZ3KYZ.js} +27 -28
  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/{askUserQuestion-4SWJY65V.js → askUserQuestion-66I3U2QX.js} +29 -5
  20. package/chunks/{bridge-FKZTVIS3.js → bridge-KDQTHAR7.js} +40 -41
  21. package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
  22. package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-X4WWBVYW.js} +50 -46
  23. package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
  24. package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
  25. package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
  26. package/chunks/{chunk-V2NDP3I4.js → chunk-2AEHQRY2.js} +1 -1
  27. package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
  28. package/chunks/chunk-36LGBEM6.js +130 -0
  29. package/chunks/{chunk-2K6ORIHJ.js → chunk-3CAI35FS.js} +11 -11
  30. package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
  31. package/chunks/{chunk-JSHHYW6T.js → chunk-3WJLDA3X.js} +3 -3
  32. package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
  33. package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
  34. package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
  35. package/chunks/{chunk-KEKZFOL6.js → chunk-44LKG3IY.js} +1 -1
  36. package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
  37. package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
  38. package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
  39. package/chunks/chunk-4VQBQLIZ.js +293 -0
  40. package/chunks/{chunk-ZFKOCECU.js → chunk-5CALJAH7.js} +2 -2
  41. package/chunks/{chunk-F7TNAPZ4.js → chunk-5SBVOOA2.js} +5 -5
  42. package/chunks/{chunk-IK5BW3CS.js → chunk-5ZJL3AIV.js} +2 -2
  43. package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
  44. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  45. package/chunks/{chunk-77RG5SFQ.js → chunk-6XOIV7MI.js} +1 -1
  46. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  47. package/chunks/chunk-7GUOXWPY.js +2597 -0
  48. package/chunks/chunk-7J6OTNGO.js +424 -0
  49. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  50. package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
  51. package/chunks/{chunk-FBSSIAAQ.js → chunk-AMLXTTJJ.js} +7 -7
  52. package/chunks/{chunk-Z7FLBQPR.js → chunk-ARF6IJHM.js} +7 -7
  53. package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
  54. package/chunks/{chunk-4JWNNLPT.js → chunk-B42A5ZHA.js} +3 -3
  55. package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
  56. package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
  57. package/chunks/{chunk-KUX5D6DK.js → chunk-BFYGL2XL.js} +11383 -11020
  58. package/chunks/{chunk-W5MJJ2V7.js → chunk-BIJEBAAQ.js} +1 -1
  59. package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
  60. package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
  61. package/chunks/{chunk-F5SZP77N.js → chunk-BP5PTNCU.js} +79 -71
  62. package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
  63. package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
  64. package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
  65. package/chunks/{chunk-L6YT5H34.js → chunk-CVUBULIX.js} +4 -4
  66. package/chunks/{chunk-JU4EEXC7.js → chunk-CWQZUDB7.js} +2 -2
  67. package/chunks/chunk-DJBQCO2E.js +842 -0
  68. package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
  69. package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
  70. package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
  71. package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
  72. package/chunks/{chunk-TGWAQ5RB.js → chunk-ECE3UYVO.js} +4704 -5894
  73. package/chunks/{chunk-5O72BNDD.js → chunk-F5RB4S23.js} +7 -7
  74. package/chunks/{chunk-IJKTMLBE.js → chunk-FIKYKQOO.js} +1 -1
  75. package/chunks/{chunk-BNMF3K5X.js → chunk-FKET6VOO.js} +52 -36
  76. package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
  77. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  78. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  79. package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
  80. package/chunks/{chunk-7UYV53BC.js → chunk-GIHXH2KO.js} +1 -1
  81. package/chunks/{chunk-V4QXXQJ2.js → chunk-H4LCV44K.js} +2 -2
  82. package/chunks/{chunk-LXIBMVRN.js → chunk-H5WQZTAW.js} +13 -7
  83. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  84. package/chunks/{chunk-RJC5EIKY.js → chunk-HHQJANFM.js} +3 -3
  85. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  86. package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
  87. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  88. package/chunks/{chunk-66KDY3LV.js → chunk-IJMEPQ5N.js} +2 -2
  89. package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
  90. package/chunks/{chunk-6CGL7E7G.js → chunk-IZDKYNKN.js} +2 -2
  91. package/chunks/{chunk-A7YP63XN.js → chunk-J7SS77YW.js} +5 -5
  92. package/chunks/{chunk-XDFHY4R3.js → chunk-JCMS65DJ.js} +2 -2
  93. package/chunks/{chunk-6LFJEACX.js → chunk-JHDPOPQG.js} +7 -7
  94. package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
  95. package/chunks/{chunk-PFCQ62V4.js → chunk-JWDMKJG5.js} +6 -6
  96. package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
  97. package/chunks/{chunk-Y6LSMB6J.js → chunk-K6CTN5TU.js} +1 -1
  98. package/chunks/{chunk-G34IR3D6.js → chunk-KEIMKAM4.js} +26 -109
  99. package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
  100. package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
  101. package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
  102. package/chunks/chunk-LGO7DEXL.js +1186 -0
  103. package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
  104. package/chunks/{chunk-P5GGM4KS.js → chunk-MAQ2W4IF.js} +3 -3
  105. package/chunks/{chunk-RIEFGNTP.js → chunk-MVDPFLWM.js} +207 -43
  106. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  107. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  108. package/chunks/{chunk-BBWV7ONL.js → chunk-NEBSNUMX.js} +6 -6
  109. package/chunks/{chunk-3SGB2UHX.js → chunk-NENQE7VH.js} +23 -11
  110. package/chunks/{chunk-SJ3ZUWFK.js → chunk-NHDNYMBU.js} +4 -4
  111. package/chunks/{chunk-K2NQPH5D.js → chunk-OJEMXKA4.js} +3 -3
  112. package/chunks/{chunk-QP4C6WCE.js → chunk-PI6HYGBE.js} +2 -2
  113. package/chunks/{chunk-OIP7C4FE.js → chunk-PO6YCWIQ.js} +4 -4
  114. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  115. package/chunks/{chunk-4MQEPP3Y.js → chunk-PQZBDDNG.js} +5 -119
  116. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  117. package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
  118. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  119. package/chunks/{chunk-JSC3H3TD.js → chunk-RZKOA4JE.js} +14 -6
  120. package/chunks/{chunk-CPGJJJLU.js → chunk-SEDFP3ZI.js} +1 -1
  121. package/chunks/chunk-SEONHUS3.js +275 -0
  122. package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
  123. package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
  124. package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
  125. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  126. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  127. package/chunks/{chunk-BAJKAAOY.js → chunk-TGJ2PKCW.js} +4315 -1386
  128. package/chunks/{chunk-6LFTG244.js → chunk-TU6WVK67.js} +15 -5
  129. package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
  130. package/chunks/{chunk-CSMI4FP5.js → chunk-UAOTD2BN.js} +1 -1
  131. package/chunks/{chunk-CCBZDVUA.js → chunk-UI4DXRZW.js} +33 -20
  132. package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
  133. package/chunks/chunk-UVY67MSH.js +205 -0
  134. package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
  135. package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
  136. package/chunks/{chunk-Q26AYA62.js → chunk-VKCJPNGU.js} +2 -2
  137. package/chunks/{chunk-IOPCFOTF.js → chunk-VKIGT4OG.js} +2 -2
  138. package/chunks/{chunk-3DXFGHAJ.js → chunk-VNMZLAVG.js} +1 -1
  139. package/chunks/{chunk-FY76G3G5.js → chunk-W3CY4QIO.js} +4 -4
  140. package/chunks/{chunk-O2UN57NX.js → chunk-W4XG7IZ4.js} +19 -2
  141. package/chunks/{chunk-C6K43ZDE.js → chunk-W7HH77GN.js} +5 -5
  142. package/chunks/{chunk-2NYCN6F2.js → chunk-WD3WSEW3.js} +43 -26
  143. package/chunks/chunk-WLEYH7CD.js +332 -0
  144. package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
  145. package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
  146. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  147. package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
  148. package/chunks/{chunk-AGR5UROZ.js → chunk-YN44TEOZ.js} +17 -29
  149. package/chunks/{chunk-DZWPESIF.js → chunk-Z44FUM77.js} +3 -3
  150. package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
  151. package/chunks/{config-utils-BBOCOGZW.js → config-utils-NOCNFTQP.js} +42 -41
  152. package/chunks/{contextCommand-EET67MQ2.js → contextCommand-DH2NOQBI.js} +39 -40
  153. package/chunks/{core-runtime-677KFX6Q.js → core-runtime-OLW4OXMV.js} +43 -44
  154. package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-ZCGPQTIE.js} +37 -38
  155. package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
  156. package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-SHIU7MPJ.js} +36 -37
  157. package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-WECDBDF7.js} +45 -46
  158. package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-MX4OYXF3.js} +44 -45
  159. package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-73WXIKNL.js} +44 -45
  160. package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-BKS7O3D6.js} +36 -37
  161. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  162. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  163. package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
  164. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  165. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  166. package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
  167. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  168. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  169. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  170. package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-5NNZSVL7.js} +36 -37
  171. package/chunks/{edit-BSV6YRVW.js → edit-IGHPT4I2.js} +27 -28
  172. package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
  173. package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-LVTPJSAA.js} +32 -33
  174. package/chunks/{environment-MOZMPUHR.js → environment-HC2PPYDO.js} +40 -41
  175. package/chunks/{errors-DMPQVYJL.js → errors-VCWSG25A.js} +39 -40
  176. package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
  177. package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-RHI2K2O7.js} +27 -28
  178. package/chunks/{fast-path-773PV7PU.js → fast-path-IQNCJOPE.js} +4 -4
  179. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  180. package/chunks/{glob-CZHOWUEA.js → glob-EANAXPNR.js} +27 -28
  181. package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
  182. package/chunks/{grep-5GPICQBU.js → grep-3REG7TO6.js} +4 -2
  183. package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-PVVFLDQ4.js} +41 -42
  184. package/chunks/{i18n-B42HKHKH.js → i18n-VOKX5QIF.js} +38 -39
  185. package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
  186. package/chunks/{initializer-FB66WYR3.js → initializer-SZVVTGZL.js} +44 -45
  187. package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-R22453J5.js} +37 -38
  188. package/chunks/{list-2HWGSVRA.js → list-LK5M5W2N.js} +47 -48
  189. package/chunks/{gemini-IP4FJAP5.js → llm-6RQJUVIS.js} +89 -85
  190. package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-Q7JJDSJR.js} +25 -25
  191. package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KF2ZPSPG.js} +44 -45
  192. package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-SBCIJG2J.js} +307 -27
  193. package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-UG324XFY.js} +37 -38
  194. package/chunks/{mcp-QGG5NMJJ.js → mcp-PUSCFGS5.js} +44 -45
  195. package/chunks/{monitor-FI7PY36Z.js → monitor-RJW5AP64.js} +27 -28
  196. package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-OIXN4WSR.js} +82 -81
  197. package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-5MWEIMS2.js} +27 -28
  198. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  199. package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-AGTNYSCJ.js} +13 -15
  200. package/chunks/{pidfile-JMF2CLMY.js → pidfile-LTA6NT3P.js} +36 -37
  201. package/chunks/process-registry-OAEG6WGC.js +662 -0
  202. package/chunks/{processUtils-IQZBYWSB.js → processUtils-GY3Q66CJ.js} +2 -2
  203. package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-3QS6TCMF.js} +37 -38
  204. package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-NU6PCDA7.js} +31 -32
  205. package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
  206. package/chunks/{read-file-QE2B5FTX.js → read-file-DTQL5V62.js} +5 -5
  207. package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
  208. package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
  209. package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-PZ4BER55.js} +40 -41
  210. package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-A2FGBZGY.js} +7 -7
  211. package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-AESOSKFC.js} +271 -86
  212. package/chunks/{runtime-TTIGSBM4.js → runtime-YQHSEKG4.js} +49 -50
  213. package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-XG6KK6NY.js} +42 -43
  214. package/chunks/{scheduler-YRUG22M7.js → scheduler-I4WKXWRZ.js} +38 -39
  215. package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
  216. package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
  217. package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
  218. package/chunks/{serve-MXXCDAQN.js → serve-MQDTVC7X.js} +44 -45
  219. package/chunks/{server-DFUSSSHI.js → server-L5ETIKEW.js} +4153 -3351
  220. package/chunks/{session-3TEHNENZ.js → session-LKKXRUJM.js} +87 -86
  221. package/chunks/session-pr-refresh-5OWA6MC2.js +365 -0
  222. package/chunks/{settings-VOZYKLTT.js → settings-S6KG7JST.js} +43 -44
  223. package/chunks/{shell-6RTKZVMI.js → shell-JEQE5AHC.js} +27 -28
  224. package/chunks/{skill-FEOKFX26.js → skill-QEGMZXKI.js} +58 -14
  225. package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-EVY7QF4H.js} +44 -45
  226. package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-AQP72WPN.js} +38 -39
  227. package/chunks/{standalone-update-RGILUQVK.js → standalone-update-JUJA4BKV.js} +39 -40
  228. package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-5ZMSJZ3J.js} +408 -338
  229. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  230. package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
  231. package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
  232. package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
  233. package/chunks/{team-create-QYSWCYCL.js → team-create-ZEGP7KVD.js} +27 -28
  234. package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
  235. package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-SXWT2WZN.js} +27 -28
  236. package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-42B6N55E.js} +36 -37
  237. package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-DDYUBC25.js} +36 -37
  238. package/chunks/{tool-search-F2EMIAPV.js → tool-search-GDDBA4X4.js} +9 -9
  239. package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-6MYP4GBA.js} +40 -41
  240. package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-LPEIY3GE.js} +38 -39
  241. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  242. package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-BOIIZNT3.js} +6 -6
  243. package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-KSVHYJYE.js} +40 -41
  244. package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-43D2A4ZN.js} +46 -47
  245. package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-WSD4SOIM.js} +79 -78
  246. package/chunks/{version-ANP4TS6O.js → version-B4CM7RNG.js} +1 -1
  247. package/chunks/{web-fetch-QJADSAH3.js → web-fetch-MOHILUZL.js} +8 -10
  248. package/chunks/{web-search-7TTQKEKM.js → web-search-G4HIMY2V.js} +5 -7
  249. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  250. package/chunks/{workflow-5XN6XSOT.js → workflow-H3PCYU5F.js} +50 -60
  251. package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-AAX7VWMT.js} +48 -49
  252. package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-YTHZ6SL4.js} +1 -1
  253. package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-URHGBL4U.js} +40 -41
  254. package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-XJMSLRCU.js} +49 -53
  255. package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-JGEDANNT.js} +47 -48
  256. package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-ZHI5TDYB.js} +48 -49
  257. package/chunks/{write-file-GGRBB5TZ.js → write-file-5O4S63L6.js} +29 -30
  258. package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-N2IBUVXE.js} +5 -5
  259. package/cli.js +128 -91
  260. package/package.json +3 -3
  261. package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-OJQpqC9m.js} +1 -1
  262. package/web-shell/assets/{arc-BSTnk5pu.js → arc-BxH0YR17.js} +1 -1
  263. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-CxyWiGfF.js} +1 -1
  264. package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DukXbJQ7.js} +1 -1
  265. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-DvS1T6pK.js} +1 -1
  266. package/web-shell/assets/channel-Dbbg7P-u.js +1 -0
  267. package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-qvqfJ7VZ.js} +1 -1
  268. package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-BJ3kJYte.js} +1 -1
  269. package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BYPVESil.js} +1 -1
  270. package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-B4UYFElk.js} +1 -1
  271. package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-8zGKVNUU.js} +1 -1
  272. package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-CbaHONpI.js} +1 -1
  273. package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-f8kAjzlF.js} +1 -1
  274. package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-Dm8ahq7K.js} +1 -1
  275. package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-yrcLzv8z.js} +1 -1
  276. package/web-shell/assets/classDiagram-DTDB5LWJ-cDYs8iT0.js +1 -0
  277. package/web-shell/assets/classDiagram-v2-JRS7N3AN-cDYs8iT0.js +1 -0
  278. package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DN1C22IH.js} +1 -1
  279. package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-B2oF7XD_.js} +1 -1
  280. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DGgIKpiM.js} +1 -1
  281. package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-BHKawzoP.js} +1 -1
  282. package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-6UgKqreR.js} +1 -1
  283. package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-BXJbPJ6F.js} +1 -1
  284. package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-DVnYFPkS.js} +1 -1
  285. package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CjBoC0Rq.js} +1 -1
  286. package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-KZdUceQT.js} +1 -1
  287. package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-5UekGScM.js} +1 -1
  288. package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-TRWexoj1.js} +1 -1
  289. package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-Di5bhBVo.js} +1 -1
  290. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-DpJUJ8Dp.js} +1 -1
  291. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-b08xIx2C.js} +1 -1
  292. package/web-shell/assets/index-BvDpDHTN.css +36 -0
  293. package/web-shell/assets/index-Cg60lhnI.js +1913 -0
  294. package/web-shell/assets/{index-CBGz4Qjl.js → index-n6dFH09O.js} +1 -1
  295. package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-Cz14FAt7.js} +1 -1
  296. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7nxp2bIU.js} +1 -1
  297. package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-CjL47fk0.js} +1 -1
  298. package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-CWFl-mHs.js} +1 -1
  299. package/web-shell/assets/{layout-CEz_1L8z.js → layout-BUP1BcwB.js} +1 -1
  300. package/web-shell/assets/{linear-CBjTq9Hc.js → linear-CqbwqSbW.js} +1 -1
  301. package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-C_50HLol.js} +6 -6
  302. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-DbyD_AoU.js} +1 -1
  303. package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-VozWyqyY.js} +1 -1
  304. package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-O7EKamBL.js} +1 -1
  305. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-DOmPZxHg.js} +1 -1
  306. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-ElyfC2zE.js} +1 -1
  307. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-DbnqPbzR.js} +1 -1
  308. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-yPWliSHr.js} +1 -1
  309. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-BImQFomC.js} +1 -1
  310. package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-DEvqeEHo.js} +1 -1
  311. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-BbLtiF9u.js} +1 -1
  312. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DGtlzdpx.js +1 -0
  313. package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-RFewDF6v.js} +1 -1
  314. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-CITCVFdx.js +8 -0
  315. package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-DF4L3-UR.js} +1 -1
  316. package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-BtlSJXaA.js} +1 -1
  317. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-C8ogG8Fh.js} +1 -1
  318. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-C5QVfsGQ.js} +1 -1
  319. package/web-shell/index.html +3 -3
  320. package/chunks/chunk-7DJCPZE3.js +0 -945
  321. package/chunks/chunk-J2OSJFP3.js +0 -202
  322. package/chunks/chunk-K2OJUPOE.js +0 -78
  323. package/chunks/chunk-P3QQPMQA.js +0 -19
  324. package/chunks/chunk-T26EAKDL.js +0 -13
  325. package/chunks/process-registry-PMJOA5CO.js +0 -172
  326. package/web-shell/assets/channel-CENAhErJ.js +0 -1
  327. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
  328. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
  329. package/web-shell/assets/index-8hXIpvo4.js +0 -1865
  330. package/web-shell/assets/index-DclEv91i.css +0 -5
  331. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
  332. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
@@ -5,7 +5,7 @@ import {
5
5
  isTelemetrySdkInitialized,
6
6
  shouldForceSampled,
7
7
  truncateSpanError
8
- } from "./chunk-L6BZRIUL.js";
8
+ } from "./chunk-B5PHIJGI.js";
9
9
  import {
10
10
  require_src
11
11
  } from "./chunk-74TONY4F.js";
@@ -85,6 +85,14 @@ function managementFieldsWithSharedControls(fields, defaultSessionScope) {
85
85
  description: "Controls how conversations share persistent agent sessions",
86
86
  options: SESSION_SCOPE_OPTIONS
87
87
  }
88
+ ],
89
+ ...declared.has("multiSession") ? [] : [
90
+ {
91
+ key: "multiSession",
92
+ label: "Named Sessions",
93
+ kind: "boolean",
94
+ description: "Retain an owner-scoped catalog of named tasks in daemon-managed mode"
95
+ }
88
96
  ]
89
97
  ];
90
98
  }
@@ -232,15 +240,15 @@ function ensureBuiltins() {
232
240
  if (!builtinsPromise) {
233
241
  builtinsPromise = (async () => {
234
242
  const labelled = [
235
- { name: "telegram", promise: import("./dist-7CKN54NL.js") },
236
- { name: "weixin", promise: import("./dist-QODVOVWI.js") },
237
- { name: "dingtalk", promise: import("./dist-TJUDJTCB.js") },
238
- { name: "dws", promise: import("./dist-4Q7NTUNB.js") },
239
- { name: "wecom", promise: import("./dist-UQUFZDIY.js") },
240
- { name: "feishu", promise: import("./dist-ZBVOXSKF.js") },
241
- { name: "qqbot", promise: import("./dist-ILDBUWDB.js") },
242
- { name: "github", promise: import("./dist-SATKXKUR.js") },
243
- { name: "gitlab", promise: import("./dist-DJBNNPLN.js") }
243
+ { name: "telegram", promise: import("./dist-N6W6E753.js") },
244
+ { name: "weixin", promise: import("./dist-6BPYWHVD.js") },
245
+ { name: "dingtalk", promise: import("./dist-5VXFRTWU.js") },
246
+ { name: "dws", promise: import("./dist-NSV4NBPK.js") },
247
+ { name: "wecom", promise: import("./dist-SWQMYP2Q.js") },
248
+ { name: "feishu", promise: import("./dist-GFN5DCBX.js") },
249
+ { name: "qqbot", promise: import("./dist-LVZCXVPF.js") },
250
+ { name: "github", promise: import("./dist-HZNT6GQS.js") },
251
+ { name: "gitlab", promise: import("./dist-4WXLCBDR.js") }
244
252
  ];
245
253
  const results = await Promise.allSettled(labelled.map((l) => l.promise));
246
254
  for (let i = 0; i < results.length; i++) {
@@ -178,19 +178,6 @@ function classifyShutdownResponse(message) {
178
178
  return void 0;
179
179
  }
180
180
  __name(classifyShutdownResponse, "classifyShutdownResponse");
181
- async function readTeamFile(teamName) {
182
- const filePath = getTeamFilePath(teamName);
183
- try {
184
- const raw = await fs2.readFile(filePath, "utf-8");
185
- return JSON.parse(raw);
186
- } catch (err) {
187
- if (isNodeError(err) && err.code === "ENOENT") {
188
- return void 0;
189
- }
190
- throw err;
191
- }
192
- }
193
- __name(readTeamFile, "readTeamFile");
194
181
  async function writeTeamFile(teamName, teamFile) {
195
182
  const filePath = getTeamFilePath(teamName);
196
183
  await fs2.mkdir(path.dirname(filePath), { recursive: true });
@@ -207,22 +194,41 @@ async function createTeamFile(teamName, teamFile) {
207
194
  }
208
195
  __name(createTeamFile, "createTeamFile");
209
196
  async function tryReclaimStaleTeam(teamName) {
197
+ const configPath = getTeamFilePath(teamName);
198
+ let inspectedRaw;
199
+ try {
200
+ inspectedRaw = await fs2.readFile(configPath, "utf-8");
201
+ } catch (err) {
202
+ if (isNodeError(err) && err.code === "ENOENT") {
203
+ await deleteTeamDirs(teamName);
204
+ return true;
205
+ }
206
+ return false;
207
+ }
210
208
  let existing;
211
209
  try {
212
- existing = await readTeamFile(teamName);
210
+ const parsed = JSON.parse(inspectedRaw);
211
+ if (parsed === null || typeof parsed !== "object") {
212
+ return false;
213
+ }
214
+ existing = parsed;
213
215
  } catch {
214
216
  return false;
215
217
  }
216
- if (!existing) {
217
- await deleteTeamDirs(teamName);
218
- return true;
219
- }
220
218
  if (typeof existing.leadPid !== "number" || existing.leadPid <= 0) {
221
219
  return false;
222
220
  }
223
221
  if (existing.leadPid !== process.pid && isPidAlive(existing.leadPid)) {
224
222
  return false;
225
223
  }
224
+ try {
225
+ const currentRaw = await fs2.readFile(configPath, "utf-8");
226
+ if (currentRaw !== inspectedRaw) {
227
+ return false;
228
+ }
229
+ } catch {
230
+ return false;
231
+ }
226
232
  await deleteTeamDirs(teamName);
227
233
  return true;
228
234
  }
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-TGWAQ5RB.js";
5
+ } from "./chunk-ECE3UYVO.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-JWALNCLT.js";
7
7
  import {
8
8
  fileExists
9
- } from "./chunk-3I6UTTDX.js";
9
+ } from "./chunk-BKWNKLZB.js";
10
10
  import {
11
11
  createDebugLogger
12
12
  } from "./chunk-UHQFIS7N.js";
@@ -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