@qwen-code/qwen-code 0.19.8 → 0.19.9-nightly.20260714.9dd8389eb

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 (449) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +61 -51
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
  7. package/bundled/qc-helper/docs/features/channels/overview.md +82 -7
  8. package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
  9. package/bundled/qc-helper/docs/features/code-review.md +109 -41
  10. package/bundled/qc-helper/docs/features/commands.md +45 -44
  11. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  12. package/bundled/qc-helper/docs/features/hooks.md +29 -0
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  14. package/bundled/qc-helper/docs/integration-vscode.md +2 -2
  15. package/bundled/qc-helper/docs/qwen-serve.md +60 -22
  16. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
  17. package/bundled/review/DESIGN.md +303 -46
  18. package/bundled/review/SKILL.md +658 -165
  19. package/chunks/MaxSizedBox-QAYHOC4F.js +71 -0
  20. package/chunks/{StandaloneSessionPicker-EYRGH6PJ.js → StandaloneSessionPicker-D3R6YYX3.js} +82 -79
  21. package/chunks/{acpAgent-GRFTTRHW.js → acpAgent-ENHBW72A.js} +1178 -421
  22. package/chunks/agent-57LX4KMG.js +69 -0
  23. package/chunks/agent-headless-AC6EVNAP.js +63 -0
  24. package/chunks/{anthropicContentGenerator-CPF22MA7.js → anthropicContentGenerator-56U3YCP2.js} +187 -31
  25. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-BWZZJ42H.js} +5 -5
  26. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-WU3S5A5T.js} +6 -6
  27. package/chunks/bridge-4OZH44MK.js +79 -0
  28. package/chunks/{ca-MKD32FQL.js → ca-C2JTT2N5.js} +68 -6
  29. package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
  30. package/chunks/channel-worker-manager-5RWKSGEU.js +418 -0
  31. package/chunks/channel-worker-supervisor-PCDAZN4D.js +20 -0
  32. package/chunks/{chunk-CSOTA7KX.js → chunk-2FO5GFKZ.js} +2 -2
  33. package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
  34. package/chunks/{chunk-I6WGFJJ3.js → chunk-2MF6ICOL.js} +38 -12
  35. package/chunks/{chunk-X3YGAX7V.js → chunk-2UUAIFQO.js} +4 -2
  36. package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
  37. package/chunks/{chunk-NQKLOAVJ.js → chunk-2Z5UX4KI.js} +2 -2
  38. package/chunks/chunk-3MX7D6QN.js +516 -0
  39. package/chunks/{chunk-YDOXPLYL.js → chunk-4DYYRLIE.js} +3890 -975
  40. package/chunks/{chunk-OQXDAMKY.js → chunk-4FPUAYTT.js} +8 -8
  41. package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
  42. package/chunks/{chunk-YKZIAK7C.js → chunk-4LJNI7MU.js} +166 -37
  43. package/chunks/{chunk-BOBOCR5H.js → chunk-4QOPEEL2.js} +4 -4
  44. package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
  45. package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
  46. package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
  47. package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
  48. package/chunks/chunk-5HBA2Z7V.js +28 -0
  49. package/chunks/{chunk-SKAZWEV5.js → chunk-5M6IDOMF.js} +35 -98
  50. package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
  51. package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
  52. package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
  53. package/chunks/{chunk-AYNCLGTW.js → chunk-6HHAADP2.js} +8 -51
  54. package/chunks/{chunk-VZ7HY3YU.js → chunk-6OATMEYN.js} +3 -3
  55. package/chunks/{chunk-3UP777ZS.js → chunk-6RLROE6G.js} +1 -1
  56. package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
  57. package/chunks/{chunk-RMLZAUWH.js → chunk-7BIZARI2.js} +10 -12
  58. package/chunks/{chunk-GN3F6PIU.js → chunk-7NAWTFVY.js} +5 -5
  59. package/chunks/{chunk-22MNNNXE.js → chunk-7NFB7LBQ.js} +11 -3
  60. package/chunks/{chunk-ZL5HN75Q.js → chunk-7R4DPSRA.js} +37 -3
  61. package/chunks/{chunk-BVYU3ZTI.js → chunk-7U7UIO5W.js} +1005 -942
  62. package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
  63. package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
  64. package/chunks/{chunk-WF4FAXDL.js → chunk-AAS2Q2TV.js} +62 -62
  65. package/chunks/{chunk-O7FIRWJV.js → chunk-AAWKZ5R7.js} +3 -3
  66. package/chunks/{chunk-JCH35JB3.js → chunk-AGBFWLA5.js} +2 -2
  67. package/chunks/{chunk-QYUE6W3T.js → chunk-ALGGS7UH.js} +2 -39
  68. package/chunks/{chunk-WMPVYQ4P.js → chunk-ARKANCNX.js} +3 -2
  69. package/chunks/{chunk-HDOH3QYE.js → chunk-ASVORVFT.js} +2 -2
  70. package/chunks/{chunk-CHB5SLZZ.js → chunk-AUGSSJX3.js} +3 -3
  71. package/chunks/{chunk-PUVCVELY.js → chunk-B6ABUBYY.js} +4 -4
  72. package/chunks/{chunk-L4AMBVQG.js → chunk-B6KHOCU7.js} +49 -21
  73. package/chunks/{chunk-HW4N45EE.js → chunk-B7NUUEXC.js} +38 -11
  74. package/chunks/{chunk-CD6USWHZ.js → chunk-BBNVFRGD.js} +2 -2
  75. package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
  76. package/chunks/{chunk-VGGOPZUL.js → chunk-C4CXFRKY.js} +12 -5
  77. package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
  78. package/chunks/{chunk-SQ2UATK7.js → chunk-CLTWL6HD.js} +11 -11
  79. package/chunks/{chunk-GLE2YUPU.js → chunk-COH43MRJ.js} +1 -1
  80. package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
  81. package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
  82. package/chunks/{chunk-DIWVZ3VM.js → chunk-CSACSGAW.js} +5 -5
  83. package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
  84. package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
  85. package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
  86. package/chunks/chunk-DKXW66XA.js +38 -0
  87. package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
  88. package/chunks/{chunk-JZHIQJOE.js → chunk-DMTQY5GY.js} +6 -6
  89. package/chunks/{chunk-GSHQYYIV.js → chunk-DNKX35GS.js} +6 -26
  90. package/chunks/{chunk-6IAWPIQ6.js → chunk-DPSWJWZI.js} +4 -3
  91. package/chunks/{chunk-X2XNQQJI.js → chunk-E2UVIFI2.js} +186 -399
  92. package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
  93. package/chunks/{chunk-3B26UVCX.js → chunk-E67NFMF4.js} +39 -10
  94. package/chunks/{chunk-ON3JA3RU.js → chunk-EU3U7USF.js} +7 -9
  95. package/chunks/{chunk-L46XKEGM.js → chunk-EUNRLYJG.js} +5 -8
  96. package/chunks/{chunk-OACJLMLD.js → chunk-FBU7WRZI.js} +18 -2
  97. package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
  98. package/chunks/{chunk-A5JOJ77H.js → chunk-FDL4PB5H.js} +38 -15
  99. package/chunks/{chunk-E7KNELIZ.js → chunk-FSA7ERJ2.js} +2 -2
  100. package/chunks/{chunk-TI3BWD4D.js → chunk-G6QTKQN4.js} +39 -19
  101. package/chunks/{chunk-44NROQYV.js → chunk-GDQQRV43.js} +4 -4
  102. package/chunks/{chunk-O2YT7VB4.js → chunk-GOXKNSDZ.js} +2 -65
  103. package/chunks/{chunk-V35MD7KN.js → chunk-GRC5HGPI.js} +1 -1
  104. package/chunks/chunk-GYGGUR4Q.js +253 -0
  105. package/chunks/{chunk-S6RLAIUR.js → chunk-GYTKQYDB.js} +1 -1
  106. package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
  107. package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
  108. package/chunks/{chunk-E7EMCSUG.js → chunk-HE54PGVI.js} +64 -42
  109. package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
  110. package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
  111. package/chunks/chunk-HZYUNZDQ.js +296 -0
  112. package/chunks/chunk-IDS7MSUP.js +74 -0
  113. package/chunks/chunk-J2TDDOSM.js +493 -0
  114. package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
  115. package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
  116. package/chunks/chunk-JR63TOV4.js +91 -0
  117. package/chunks/chunk-K3PPUB46.js +445 -0
  118. package/chunks/{chunk-42XGFRJS.js → chunk-KKRTYONM.js} +8 -6
  119. package/chunks/{chunk-GGQQA4JW.js → chunk-KSO42X3Z.js} +15 -2
  120. package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
  121. package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
  122. package/chunks/{chunk-TLWA7TPR.js → chunk-L5U3ELZX.js} +2 -2
  123. package/chunks/{chunk-WHJQ3JUS.js → chunk-LAM6CGP5.js} +10 -10
  124. package/chunks/{chunk-H6EMK6QK.js → chunk-LQIDP6K5.js} +11913 -5207
  125. package/chunks/{chunk-MZ7BABX3.js → chunk-LXLTBIDP.js} +44 -7
  126. package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
  127. package/chunks/{chunk-EEN2TKST.js → chunk-MBJ3D6SF.js} +2 -2
  128. package/chunks/{chunk-PMFULMLX.js → chunk-MBP3K324.js} +2234 -377
  129. package/chunks/chunk-MR3PXB6E.js +48 -0
  130. package/chunks/{chunk-ZE6E424U.js → chunk-N7FCSERB.js} +2 -2
  131. package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
  132. package/chunks/chunk-OATTJGPJ.js +448 -0
  133. package/chunks/{chunk-UX6OTBVD.js → chunk-OCC3UTWA.js} +2 -2
  134. package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
  135. package/chunks/chunk-OJAMDVF5.js +66 -0
  136. package/chunks/{chunk-IJRL2S3D.js → chunk-OKAIGAYW.js} +6 -6
  137. package/chunks/{chunk-WQTHLB5T.js → chunk-P3S67A5R.js} +7 -7
  138. package/chunks/{chunk-FBET5XZ2.js → chunk-PEJWA3QQ.js} +29 -10
  139. package/chunks/{chunk-J7RCB6N5.js → chunk-PHYCWSDG.js} +2 -2
  140. package/chunks/{chunk-LAXNEOBG.js → chunk-PMRH4YYW.js} +18 -3
  141. package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
  142. package/chunks/{chunk-PC4ZXHU2.js → chunk-Q6TUALBE.js} +3 -3
  143. package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
  144. package/chunks/{chunk-P3XEEI3X.js → chunk-QABSSDQH.js} +36 -7
  145. package/chunks/{chunk-XOHNA2S6.js → chunk-QAW7PIHT.js} +3 -3
  146. package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
  147. package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
  148. package/chunks/{chunk-Z3I3QJK3.js → chunk-QRUIS3DN.js} +1 -1
  149. package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
  150. package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
  151. package/chunks/{chunk-W7EEOR7D.js → chunk-RCEEXIOO.js} +8 -6
  152. package/chunks/{chunk-2EM7ECZD.js → chunk-RJL5T4WJ.js} +281 -65
  153. package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
  154. package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
  155. package/chunks/{chunk-JRQ7EVGE.js → chunk-S2QXYLUB.js} +2 -2
  156. package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
  157. package/chunks/{chunk-O33TBKDC.js → chunk-SE74CIZD.js} +155 -19
  158. package/chunks/{chunk-FV7425LN.js → chunk-SPJQO2CE.js} +18 -5
  159. package/chunks/{chunk-3GNOQZDC.js → chunk-SSFDPGFN.js} +11866 -11542
  160. package/chunks/{chunk-DCZWC4PF.js → chunk-SUWGUGAD.js} +5 -5
  161. package/chunks/{chunk-IBY3Q3HG.js → chunk-SXU3KKNI.js} +963 -181
  162. package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
  163. package/chunks/{chunk-M7S4GK5Z.js → chunk-T2L6SGQY.js} +115 -29
  164. package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
  165. package/chunks/{chunk-JPALE3PA.js → chunk-T5C2OUCI.js} +6 -6
  166. package/chunks/{chunk-BUZ6HGL4.js → chunk-T7FSRWQ5.js} +248 -55
  167. package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
  168. package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
  169. package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
  170. package/chunks/{chunk-CCGOFQV3.js → chunk-TQBODCFD.js} +8 -7
  171. package/chunks/chunk-TV6K2FB4.js +224 -0
  172. package/chunks/{chunk-5MBO76SL.js → chunk-TXY2C3D2.js} +3 -3
  173. package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
  174. package/chunks/{chunk-QYNNN7BK.js → chunk-TYLOFD2U.js} +2 -2
  175. package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
  176. package/chunks/{chunk-UXEW557D.js → chunk-UI3W56WF.js} +3 -3
  177. package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
  178. package/chunks/{channel-worker-supervisor-NZQUOEFJ.js → chunk-URU5UEK6.js} +190 -34
  179. package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
  180. package/chunks/chunk-V75IOTWF.js +71 -0
  181. package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
  182. package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
  183. package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
  184. package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
  185. package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
  186. package/chunks/{chunk-7LTB54MK.js → chunk-WIEO4CWB.js} +2 -2
  187. package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
  188. package/chunks/{chunk-6VK6FIMQ.js → chunk-WM5HY72H.js} +415 -379
  189. package/chunks/{chunk-BOBRZZKD.js → chunk-WN4D7YCI.js} +5 -5
  190. package/chunks/{chunk-DHOLNQLC.js → chunk-WWQ3QIJS.js} +60 -40
  191. package/chunks/{chunk-FEJ2FZ3U.js → chunk-WX6SD4IQ.js} +2 -2
  192. package/chunks/{chunk-DICGXFAI.js → chunk-X7EBAABW.js} +11 -9
  193. package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
  194. package/chunks/{chunk-YHKAK72D.js → chunk-XHW5VUIQ.js} +102 -16
  195. package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
  196. package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
  197. package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
  198. package/chunks/{chunk-SUAKHHK7.js → chunk-Y66VOBRP.js} +3 -3
  199. package/chunks/chunk-YAF2MQZ6.js +19 -0
  200. package/chunks/{chunk-FQNC62B2.js → chunk-YH4J5XI3.js} +11 -11
  201. package/chunks/chunk-YHN5SUIJ.js +219 -0
  202. package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
  203. package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
  204. package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
  205. package/chunks/{chunk-XYR5RUA5.js → chunk-YWUK7OS7.js} +10 -3
  206. package/chunks/{chunk-27BHARDE.js → chunk-Z56JO4JZ.js} +2124 -30
  207. package/chunks/{chunk-TSPB77TG.js → chunk-ZLM3KXBT.js} +1015 -2967
  208. package/chunks/{chunk-AHNJGLFV.js → chunk-ZPAHLFZU.js} +3 -3
  209. package/chunks/chunk-ZRKBI3DP.js +34 -0
  210. package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
  211. package/chunks/{computer-use-WMY3UOBX.js → computer-use-DIP5BWXP.js} +51 -50
  212. package/chunks/config-utils-CFT33LTP.js +24 -0
  213. package/chunks/contextCommand-QU4GJWWD.js +69 -0
  214. package/chunks/create-sub-session-TCLIYVGR.js +376 -0
  215. package/chunks/create-sub-session-WNX2OQVX.js +207 -0
  216. package/chunks/{cron-create-JSXEIPVS.js → cron-create-36TIFKRT.js} +9 -9
  217. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-OQD3WULU.js} +7 -7
  218. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-4533T2FH.js} +14 -10
  219. package/chunks/{daemon-WPAENEBW.js → daemon-CEZ27OH4.js} +734 -24
  220. package/chunks/daemon-status-provider-SIBFMLBQ.js +77 -0
  221. package/chunks/{de-ZFPPQVSF.js → de-2VCDRDGU.js} +68 -6
  222. package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
  223. package/chunks/{dist-E6UANPIM.js → dist-3V3ZV6ML.js} +1011 -197
  224. package/chunks/{dist-SCFLLYMK.js → dist-ERCPDVA6.js} +12 -11
  225. package/chunks/{dist-Z34QPAQW.js → dist-HNN7DR2L.js} +529 -79
  226. package/chunks/{dist-O2IRTRPP.js → dist-JZE7F6YR.js} +10 -10
  227. package/chunks/{dist-BEXOZXLQ.js → dist-MOEC47TR.js} +36 -15
  228. package/chunks/{dist-H2AEJCZ5.js → dist-PHEPJLXD.js} +5 -5
  229. package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
  230. package/chunks/earlyInputCapture-L66BEG2C.js +70 -0
  231. package/chunks/{edit-OTYWAXGP.js → edit-Y5LAJSST.js} +52 -51
  232. package/chunks/{en-N4EPZAQI.js → en-NJCA3TAA.js} +78 -6
  233. package/chunks/{enter-worktree-HNYBDVCX.js → enter-worktree-X5LML7T4.js} +51 -50
  234. package/chunks/{enterPlanMode-CJCNGT63.js → enterPlanMode-XWF32QOW.js} +67 -51
  235. package/chunks/environment-YVMA5F4I.js +90 -0
  236. package/chunks/errors-4Y5SUAOC.js +76 -0
  237. package/chunks/{exit-worktree-DUUKOE3X.js → exit-worktree-SFHU7XYC.js} +51 -50
  238. package/chunks/{exitPlanMode-AMMSXOAJ.js → exitPlanMode-FP3NAN6E.js} +52 -51
  239. package/chunks/{fast-path-OV6NIP3K.js → fast-path-ZJNFFCBM.js} +8 -8
  240. package/chunks/{fast-path-settings-7RIFI3PK.js → fast-path-settings-DAOVFADC.js} +8 -6
  241. package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
  242. package/chunks/{fr-5WWMY53B.js → fr-5F3E7WKD.js} +68 -6
  243. package/chunks/{gemini-NQ3WWBKB.js → gemini-5CAB22BI.js} +122 -109
  244. package/chunks/{geminiContentGenerator-CDUNEJQE.js → geminiContentGenerator-GE3HPIFB.js} +9 -9
  245. package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
  246. package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
  247. package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
  248. package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
  249. package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
  250. package/chunks/{glob-ROV3YS4R.js → glob-YPACZAEL.js} +98 -75
  251. package/chunks/{grep-NRITKDCD.js → grep-IPR4XW37.js} +51 -50
  252. package/chunks/handleAutoUpdate-P2KEP56V.js +70 -0
  253. package/chunks/i18n-BRCT66AA.js +85 -0
  254. package/chunks/initializer-34HXSK3A.js +74 -0
  255. package/chunks/installationInfo-WOTDQMSC.js +66 -0
  256. package/chunks/{ja-CUHZOLEJ.js → ja-66J6B53L.js} +69 -7
  257. package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-AU22CQI6.js} +4 -4
  258. package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
  259. package/chunks/list-XOGP7UPP.js +77 -0
  260. package/chunks/loadedSettingsAdapter-L4YKGU6F.js +71 -0
  261. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-MVUKDVCP.js} +10 -10
  262. package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
  263. package/chunks/{ls-7MFU2QYW.js → ls-RXNIAQDE.js} +6 -6
  264. package/chunks/{lsp-XHDTPTGV.js → lsp-HB5LM5IL.js} +4 -4
  265. package/chunks/mcp-HH7DIP7Y.js +71 -0
  266. package/chunks/{monitor-FL2ZO33W.js → monitor-25DEBT6U.js} +51 -50
  267. package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
  268. package/chunks/nonInteractiveCli-CT3VSSLK.js +130 -0
  269. package/chunks/{notebook-edit-6PULTHL5.js → notebook-edit-TAVXSWQ6.js} +52 -51
  270. package/chunks/openaiContentGenerator-6I7DKUAN.js +56 -0
  271. package/chunks/pidfile-SIQGCFLZ.js +74 -0
  272. package/chunks/{pt-OLYN42DS.js → pt-TFZO5Y6T.js} +68 -6
  273. package/chunks/{qwenContentGenerator-NX2E7PB7.js → qwenContentGenerator-5DDIXI2N.js} +53 -52
  274. package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-LEYOU7RU.js} +9 -9
  275. package/chunks/read-file-WDOAYRFU.js +30 -0
  276. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-6LRTZKXI.js} +5 -5
  277. package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
  278. package/chunks/{record-artifact-SQ2OKRJW.js → record-artifact-PMDTY4OS.js} +4 -4
  279. package/chunks/ripGrep-MI7PHN3Q.js +61 -0
  280. package/chunks/{ru-LDM3GWVQ.js → ru-4L4LFHIT.js} +68 -6
  281. package/chunks/{run-qwen-serve-JK2DL7PI.js → run-qwen-serve-PNTYF3RE.js} +1289 -256
  282. package/chunks/runtime-V3FBMUTG.js +100 -0
  283. package/chunks/{scheduler-O4IGVZKK.js → scheduler-4TAUIJBM.js} +52 -51
  284. package/chunks/{send-message-76GT3JMC.js → send-message-SR4WSXP2.js} +7 -7
  285. package/chunks/serve-WB2TR7XM.js +77 -0
  286. package/chunks/{server-SGNPKX2O.js → server-AF6LNFPK.js} +8094 -2800
  287. package/chunks/{session-5BNM25EZ.js → session-BIGK4NRW.js} +341 -135
  288. package/chunks/settings-IXF5FIQO.js +121 -0
  289. package/chunks/shell-5VWJ2PPG.js +69 -0
  290. package/chunks/{skill-I22QK5XS.js → skill-SI667Y3B.js} +24 -24
  291. package/chunks/spawnChannel-IKX6DD7J.js +71 -0
  292. package/chunks/{src-BBQSM46M.js → src-55DZWDAK.js} +151 -52
  293. package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
  294. package/chunks/standalone-update-MHLSFHE6.js +80 -0
  295. package/chunks/{startInteractiveUI-JII36UGN.js → startInteractiveUI-V2EDWLAX.js} +2239 -1846
  296. package/chunks/stdioHelpers-UMY72QRP.js +14 -0
  297. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-YKFNUQZD.js} +5 -5
  298. package/chunks/task-create-NUFOHU53.js +23 -0
  299. package/chunks/{task-list-TGGJX7EA.js → task-list-Z2IKQY3S.js} +11 -10
  300. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-KQFIVQTJ.js} +4 -4
  301. package/chunks/{task-update-XYWMHJGJ.js → task-update-HKADXSTD.js} +13 -12
  302. package/chunks/{team-create-A7NUU5AQ.js → team-create-IZAMLBJS.js} +51 -50
  303. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-SDNTGZLG.js} +11 -10
  304. package/chunks/{team-plan-approval-TOQRJ2KI.js → team-plan-approval-3R4RCKCP.js} +51 -50
  305. package/chunks/theme-manager-LCOXZ5DO.js +65 -0
  306. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YNXB27GB.js} +6 -6
  307. package/chunks/{tool-search-SZ4EFS2T.js → tool-search-NYNCD5LF.js} +24 -24
  308. package/chunks/total-session-admission-PJWGOMQE.js +73 -0
  309. package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
  310. package/chunks/trustedFolders-DOJDHNYP.js +81 -0
  311. package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
  312. package/chunks/updateCheck-ZXL66KIG.js +70 -0
  313. package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
  314. package/chunks/validateNonInterActiveAuth-JSNJZCYY.js +195 -0
  315. package/chunks/{version-NO2XSNNP.js → version-3NLBENG5.js} +3 -3
  316. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-ZSPR3PRR.js} +8 -8
  317. package/chunks/{workflow-WO2H6NRI.js → workflow-BQYLF7XP.js} +52 -51
  318. package/chunks/workspace-providers-status-FA2DGEZW.js +74 -0
  319. package/chunks/workspace-registration-store-TARTAGMI.js +27 -0
  320. package/chunks/workspace-registry-AGE7WAXX.js +77 -0
  321. package/chunks/workspace-service-ERC5VR2B.js +83 -0
  322. package/chunks/workspace-skills-status-FKYWGNCN.js +73 -0
  323. package/chunks/{write-file-PX2Z7IBE.js → write-file-S47KSK7Z.js} +52 -51
  324. package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
  325. package/chunks/{zh-J4F6QWQV.js → zh-FSAH32JB.js} +79 -7
  326. package/chunks/{zh-TW-XVDWOLSW.js → zh-TW-D2YIE2LO.js} +79 -7
  327. package/cli.js +18 -17
  328. package/locales/ca.js +91 -7
  329. package/locales/de.js +90 -7
  330. package/locales/en.js +109 -7
  331. package/locales/fr.js +91 -7
  332. package/locales/ja.js +93 -7
  333. package/locales/pt.js +90 -7
  334. package/locales/ru.js +90 -7
  335. package/locales/zh-TW.js +106 -7
  336. package/locales/zh.js +106 -7
  337. package/package.json +3 -6
  338. package/web-shell/assets/{arc-BWyoJpY2.js → arc-Zj4EkBUY.js} +1 -1
  339. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BT0mGrz2.js → architectureDiagram-3BPJPVTR-DAk1Ua3Y.js} +1 -1
  340. package/web-shell/assets/{blockDiagram-GPEHLZMM-BLgUWvyf.js → blockDiagram-GPEHLZMM-DBNqUthM.js} +1 -1
  341. package/web-shell/assets/{c4Diagram-AAUBKEIU-DYx9M7oU.js → c4Diagram-AAUBKEIU-Dq5QGJ53.js} +1 -1
  342. package/web-shell/assets/channel-DWfYijFS.js +1 -0
  343. package/web-shell/assets/{chunk-2J33WTMH-CfMHWbuZ.js → chunk-2J33WTMH-DY0AeGru.js} +1 -1
  344. package/web-shell/assets/{chunk-4BX2VUAB-B1URoqEV.js → chunk-4BX2VUAB-COX3OyIi.js} +1 -1
  345. package/web-shell/assets/{chunk-55IACEB6-DAIaM4QF.js → chunk-55IACEB6-Csoyddbh.js} +1 -1
  346. package/web-shell/assets/{chunk-727SXJPM-B2X34knw.js → chunk-727SXJPM-BJPONdxX.js} +1 -1
  347. package/web-shell/assets/{chunk-AQP2D5EJ-Cif-zLTQ.js → chunk-AQP2D5EJ-syLVH6fg.js} +1 -1
  348. package/web-shell/assets/{chunk-FMBD7UC4-H18WCXdY.js → chunk-FMBD7UC4-Cfm59Nhw.js} +1 -1
  349. package/web-shell/assets/{chunk-ND2GUHAM-YFtetHi0.js → chunk-ND2GUHAM-DZf6tAqS.js} +1 -1
  350. package/web-shell/assets/{chunk-QZHKN3VN-By2hiH3r.js → chunk-QZHKN3VN-DKBp_v5q.js} +1 -1
  351. package/web-shell/assets/classDiagram-4FO5ZUOK-DDht-78J.js +1 -0
  352. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DDht-78J.js +1 -0
  353. package/web-shell/assets/{cose-bilkent-S5V4N54A-VrcnnLZu.js → cose-bilkent-S5V4N54A-DUU3mMQ5.js} +1 -1
  354. package/web-shell/assets/{dagre-BM42HDAG-CGo-IaVV.js → dagre-BM42HDAG-BUgNfbh-.js} +1 -1
  355. package/web-shell/assets/{diagram-2AECGRRQ-Dl4QjzIB.js → diagram-2AECGRRQ-DT7MVfAg.js} +1 -1
  356. package/web-shell/assets/{diagram-5GNKFQAL-qMLmsO0u.js → diagram-5GNKFQAL-Cv4YG-ec.js} +1 -1
  357. package/web-shell/assets/{diagram-KO2AKTUF-CHlmuxPI.js → diagram-KO2AKTUF-BAe9LLkn.js} +1 -1
  358. package/web-shell/assets/{diagram-LMA3HP47-BUwU3GwT.js → diagram-LMA3HP47-DW8wqTIP.js} +1 -1
  359. package/web-shell/assets/{diagram-OG6HWLK6-HEhwPDUM.js → diagram-OG6HWLK6-CmkuWbaK.js} +1 -1
  360. package/web-shell/assets/{erDiagram-TEJ5UH35-1n0llBmM.js → erDiagram-TEJ5UH35-DwvdHjZ9.js} +1 -1
  361. package/web-shell/assets/{flowDiagram-I6XJVG4X-BN74uMnt.js → flowDiagram-I6XJVG4X-CSsXrhW_.js} +1 -1
  362. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BoOq78i3.js → ganttDiagram-6RSMTGT7-BtuznCdi.js} +3 -3
  363. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CN8b00c8.js → gitGraphDiagram-PVQCEYII-DGmAm06g.js} +1 -1
  364. package/web-shell/assets/index-B9Xwf4OS.css +5 -0
  365. package/web-shell/assets/index-BEtz1cvN.js +3 -0
  366. package/web-shell/assets/index-BUkM4ZXX.js +1088 -0
  367. package/web-shell/assets/{infoDiagram-5YYISTIA-CCurnIna.js → infoDiagram-5YYISTIA-OAiZ1q0K.js} +1 -1
  368. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AwuRqdUP.js → ishikawaDiagram-YF4QCWOH-DyK0KTIT.js} +1 -1
  369. package/web-shell/assets/{journeyDiagram-JHISSGLW-B7IICk-E.js → journeyDiagram-JHISSGLW-DzYJlwfO.js} +1 -1
  370. package/web-shell/assets/{kanban-definition-UN3LZRKU-BYF0OKhx.js → kanban-definition-UN3LZRKU-CU_tcDwi.js} +1 -1
  371. package/web-shell/assets/{linear-GWWguGfD.js → linear-DvZXjF17.js} +1 -1
  372. package/web-shell/assets/{mermaid.core-JqtkxvCl.js → mermaid.core-_ZFEQlOl.js} +5 -5
  373. package/web-shell/assets/{mindmap-definition-RKZ34NQL-B0MmHsZ6.js → mindmap-definition-RKZ34NQL-Or4p64HB.js} +1 -1
  374. package/web-shell/assets/{pieDiagram-4H26LBE5-DhImUZLQ.js → pieDiagram-4H26LBE5-lXE-zZ6b.js} +1 -1
  375. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DGeSC3DT.js → quadrantDiagram-W4KKPZXB-DUXb9mUV.js} +1 -1
  376. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DkspY6Re.js → requirementDiagram-4Y6WPE33-D_10uHfo.js} +1 -1
  377. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CaOofS2x.js → sankeyDiagram-5OEKKPKP-E8c0fPqe.js} +1 -1
  378. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DFQ_kFnN.js → sequenceDiagram-3UESZ5HK-CJMtFttK.js} +1 -1
  379. package/web-shell/assets/{stateDiagram-AJRCARHV-D3snw0Tz.js → stateDiagram-AJRCARHV-DhbviRbB.js} +1 -1
  380. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CntljfwW.js +1 -0
  381. package/web-shell/assets/{timeline-definition-PNZ67QCA-l4zH8nLM.js → timeline-definition-PNZ67QCA-CM5yMkFK.js} +1 -1
  382. package/web-shell/assets/{vennDiagram-CIIHVFJN-BnRlA98M.js → vennDiagram-CIIHVFJN-BCi-zWNN.js} +1 -1
  383. package/web-shell/assets/{wardley-L42UT6IY-BS0xUdmd.js → wardley-L42UT6IY-BJ_yJNjJ.js} +1 -1
  384. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKGBUWyQ.js → wardleyDiagram-YWT4CUSO-TjtLk-qN.js} +1 -1
  385. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DVb2HuOB.js → xychartDiagram-2RQKCTM6-D1TjyoQ3.js} +1 -1
  386. package/web-shell/index.html +16 -4
  387. package/chunks/MaxSizedBox-5DT2SD7B.js +0 -71
  388. package/chunks/agent-H2DGKS77.js +0 -68
  389. package/chunks/agent-headless-KFMFIT6J.js +0 -62
  390. package/chunks/bridge-NA3ZQQKJ.js +0 -78
  391. package/chunks/chunk-6SHO7WFF.js +0 -79
  392. package/chunks/chunk-IFEWJXFS.js +0 -37
  393. package/chunks/chunk-XNXVCNAT.js +0 -88
  394. package/chunks/contextCommand-LXFZRP4L.js +0 -68
  395. package/chunks/daemon-status-provider-GJRXY5EN.js +0 -76
  396. package/chunks/earlyInputCapture-KNOYZ4MJ.js +0 -69
  397. package/chunks/environment-ATFTYMLZ.js +0 -88
  398. package/chunks/errors-A54HAADA.js +0 -75
  399. package/chunks/handleAutoUpdate-CEZJAARW.js +0 -65
  400. package/chunks/initializer-BRFJKRRX.js +0 -71
  401. package/chunks/list-KVHF7O4X.js +0 -73
  402. package/chunks/loadedSettingsAdapter-LL5PSFKX.js +0 -68
  403. package/chunks/mcp-3GCXRTOQ.js +0 -68
  404. package/chunks/nonInteractiveCli-PTQI3DV6.js +0 -119
  405. package/chunks/openaiContentGenerator-YE42PKCY.js +0 -56
  406. package/chunks/pidfile-NZYSCFRK.js +0 -73
  407. package/chunks/read-file-33XGP5HF.js +0 -30
  408. package/chunks/ripGrep-QWZLGTAN.js +0 -60
  409. package/chunks/serve-JTMIGANH.js +0 -74
  410. package/chunks/settings-3MI4XXP6.js +0 -118
  411. package/chunks/shell-YJKBE67T.js +0 -68
  412. package/chunks/spawnChannel-UNV6W4DU.js +0 -70
  413. package/chunks/task-create-WCHTB435.js +0 -22
  414. package/chunks/theme-manager-WZ4RRMMB.js +0 -64
  415. package/chunks/total-session-admission-ULXJWXFV.js +0 -72
  416. package/chunks/trustedFolders-LAZZPZ3D.js +0 -79
  417. package/chunks/updateCheck-KONLM73X.js +0 -65
  418. package/chunks/validateNonInterActiveAuth-MPKSRCXD.js +0 -184
  419. package/chunks/workspace-providers-status-3W7E7DFW.js +0 -71
  420. package/chunks/workspace-registry-SXJZNN3O.js +0 -74
  421. package/chunks/workspace-service-CZRQZ4Q4.js +0 -80
  422. package/chunks/workspace-skills-status-K7WFREPD.js +0 -70
  423. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  424. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  425. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  426. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  427. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  428. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  429. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  430. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  431. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  432. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  433. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  434. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  435. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  436. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  437. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  438. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  439. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  440. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  441. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  442. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  443. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  444. package/web-shell/assets/channel-wmPUGHtg.js +0 -1
  445. package/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +0 -1
  446. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +0 -1
  447. package/web-shell/assets/index-CNwoO1Cn.js +0 -783
  448. package/web-shell/assets/index-CWQ0z6kZ.css +0 -5
  449. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +0 -1
@@ -0,0 +1,493 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ MAX_WORKSPACE_PATH_LENGTH,
5
+ canonicalizeWorkspace
6
+ } from "./chunk-W7FJ3N32.js";
7
+ import {
8
+ MAX_DAEMON_WORKSPACES
9
+ } from "./chunk-5HBA2Z7V.js";
10
+ import {
11
+ getGlobalQwenDirLite
12
+ } from "./chunk-IDS7MSUP.js";
13
+ import {
14
+ isWithinRoot
15
+ } from "./chunk-MR3PXB6E.js";
16
+ import {
17
+ require_proper_lockfile
18
+ } from "./chunk-E2UVIFI2.js";
19
+ import {
20
+ init_esbuild_shims
21
+ } from "./chunk-5O2XNYP6.js";
22
+ import {
23
+ __name,
24
+ __toESM
25
+ } from "./chunk-J2S4EL5Y.js";
26
+
27
+ // packages/cli/src/serve/workspace-registration-store.ts
28
+ init_esbuild_shims();
29
+ var import_proper_lockfile = __toESM(require_proper_lockfile(), 1);
30
+ import { createHash } from "node:crypto";
31
+ import { constants } from "node:fs";
32
+ import * as fs from "node:fs/promises";
33
+ import * as os from "node:os";
34
+ import * as path from "node:path";
35
+
36
+ // packages/cli/src/serve/workspace-inputs.ts
37
+ init_esbuild_shims();
38
+ var MAX_REGISTERED_WORKSPACES = MAX_DAEMON_WORKSPACES;
39
+ var DuplicateWorkspaceInputError = class extends Error {
40
+ static {
41
+ __name(this, "DuplicateWorkspaceInputError");
42
+ }
43
+ constructor(workspace) {
44
+ super(
45
+ `Duplicate --workspace value resolves to ${JSON.stringify(workspace)}. Pass distinct --workspace values.`
46
+ );
47
+ this.name = "DuplicateWorkspaceInputError";
48
+ }
49
+ };
50
+ var NestedWorkspaceInputError = class extends Error {
51
+ static {
52
+ __name(this, "NestedWorkspaceInputError");
53
+ }
54
+ constructor(parent, child) {
55
+ super(
56
+ `Nested --workspace values are not supported yet: ${JSON.stringify(child)} is inside ${JSON.stringify(parent)}. Pass non-nested --workspace values.`
57
+ );
58
+ this.name = "NestedWorkspaceInputError";
59
+ }
60
+ };
61
+ var MissingWorkspaceInputError = class extends Error {
62
+ static {
63
+ __name(this, "MissingWorkspaceInputError");
64
+ }
65
+ constructor() {
66
+ super("--workspace requires a value.");
67
+ this.name = "MissingWorkspaceInputError";
68
+ }
69
+ };
70
+ function normalizeWorkspaceInputs(workspace) {
71
+ if (Array.isArray(workspace)) {
72
+ if (workspace.length === 0) {
73
+ throw new MissingWorkspaceInputError();
74
+ }
75
+ return workspace.map((value) => String(value));
76
+ }
77
+ if (workspace === void 0) return [process.cwd()];
78
+ return [String(workspace)];
79
+ }
80
+ __name(normalizeWorkspaceInputs, "normalizeWorkspaceInputs");
81
+ function isNestedWorkspace(parent, child) {
82
+ return parent !== child && isWithinRoot(child, parent);
83
+ }
84
+ __name(isNestedWorkspace, "isNestedWorkspace");
85
+ function rejectDuplicateOrNestedWorkspaceInputs(workspaces) {
86
+ if (workspaces.length <= 1) return;
87
+ let canonicalWorkspaces;
88
+ try {
89
+ canonicalWorkspaces = workspaces.map(
90
+ (workspace) => canonicalizeWorkspace(workspace)
91
+ );
92
+ } catch {
93
+ return;
94
+ }
95
+ const seen = /* @__PURE__ */ new Set();
96
+ for (const workspace of canonicalWorkspaces) {
97
+ if (seen.has(workspace)) {
98
+ throw new DuplicateWorkspaceInputError(workspace);
99
+ }
100
+ seen.add(workspace);
101
+ }
102
+ for (let i = 0; i < canonicalWorkspaces.length; i++) {
103
+ for (let j = i + 1; j < canonicalWorkspaces.length; j++) {
104
+ const first = canonicalWorkspaces[i];
105
+ const second = canonicalWorkspaces[j];
106
+ if (isNestedWorkspace(first, second)) {
107
+ throw new NestedWorkspaceInputError(first, second);
108
+ }
109
+ if (isNestedWorkspace(second, first)) {
110
+ throw new NestedWorkspaceInputError(second, first);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ __name(rejectDuplicateOrNestedWorkspaceInputs, "rejectDuplicateOrNestedWorkspaceInputs");
116
+ function resolveWorkspaceInputs(workspace) {
117
+ const workspaces = normalizeWorkspaceInputs(workspace);
118
+ rejectDuplicateOrNestedWorkspaceInputs(workspaces);
119
+ return workspaces;
120
+ }
121
+ __name(resolveWorkspaceInputs, "resolveWorkspaceInputs");
122
+
123
+ // packages/cli/src/serve/workspace-registration-store.ts
124
+ var SCHEMA_VERSION = 1;
125
+ var MAX_SECONDARY_WORKSPACES = MAX_REGISTERED_WORKSPACES - 1;
126
+ var MAX_STORE_BYTES = 256 * 1024;
127
+ var LOCK_OPTIONS = {
128
+ realpath: false,
129
+ stale: 1e4,
130
+ update: 2e3,
131
+ retries: {
132
+ retries: 120,
133
+ minTimeout: 10,
134
+ maxTimeout: 100,
135
+ factor: 1.2,
136
+ randomize: true
137
+ }
138
+ };
139
+ var WorkspaceRegistrationStoreError = class extends Error {
140
+ static {
141
+ __name(this, "WorkspaceRegistrationStoreError");
142
+ }
143
+ constructor(message) {
144
+ super(message);
145
+ this.name = "WorkspaceRegistrationStoreError";
146
+ }
147
+ };
148
+ var WorkspaceRegistrationStoreLimitError = class extends WorkspaceRegistrationStoreError {
149
+ static {
150
+ __name(this, "WorkspaceRegistrationStoreLimitError");
151
+ }
152
+ };
153
+ var WorkspaceRegistrationStoreCommittedError = class extends WorkspaceRegistrationStoreError {
154
+ static {
155
+ __name(this, "WorkspaceRegistrationStoreCommittedError");
156
+ }
157
+ };
158
+ function normalizedScopePath(primaryWorkspace) {
159
+ return os.platform() === "win32" ? primaryWorkspace.toLowerCase() : primaryWorkspace;
160
+ }
161
+ __name(normalizedScopePath, "normalizedScopePath");
162
+ function workspaceRegistrationScopeHash(primaryWorkspace) {
163
+ return createHash("sha256").update(normalizedScopePath(primaryWorkspace)).digest("hex");
164
+ }
165
+ __name(workspaceRegistrationScopeHash, "workspaceRegistrationScopeHash");
166
+ function workspaceRegistrationId(workspace) {
167
+ return createHash("sha256").update(workspace).digest("hex").slice(0, 16);
168
+ }
169
+ __name(workspaceRegistrationId, "workspaceRegistrationId");
170
+ function getWorkspaceRegistrationStorePath(primaryWorkspace, qwenHome = getGlobalQwenDirLite()) {
171
+ return path.join(
172
+ qwenHome,
173
+ "daemon",
174
+ "workspaces",
175
+ `${workspaceRegistrationScopeHash(primaryWorkspace)}.json`
176
+ );
177
+ }
178
+ __name(getWorkspaceRegistrationStorePath, "getWorkspaceRegistrationStorePath");
179
+ function emptySnapshot(primaryWorkspace) {
180
+ return {
181
+ schemaVersion: SCHEMA_VERSION,
182
+ primaryWorkspace,
183
+ workspaces: []
184
+ };
185
+ }
186
+ __name(emptySnapshot, "emptySnapshot");
187
+ function validateWorkspacePath(value, label) {
188
+ if (typeof value !== "string" || !path.isAbsolute(value)) {
189
+ throw new WorkspaceRegistrationStoreError(
190
+ `${label} must be an absolute path`
191
+ );
192
+ }
193
+ if (value.includes("\0") || value.length > MAX_WORKSPACE_PATH_LENGTH) {
194
+ throw new WorkspaceRegistrationStoreError(`${label} is invalid`);
195
+ }
196
+ return value;
197
+ }
198
+ __name(validateWorkspacePath, "validateWorkspacePath");
199
+ function parseSnapshot(raw, primaryWorkspace) {
200
+ let value;
201
+ try {
202
+ value = JSON.parse(raw);
203
+ } catch {
204
+ throw new WorkspaceRegistrationStoreError(
205
+ "Workspace registration store contains malformed JSON"
206
+ );
207
+ }
208
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
209
+ throw new WorkspaceRegistrationStoreError(
210
+ "Workspace registration store root must be an object"
211
+ );
212
+ }
213
+ const record = value;
214
+ if (record["schemaVersion"] !== SCHEMA_VERSION) {
215
+ throw new WorkspaceRegistrationStoreError(
216
+ `Unsupported workspace registration schema ${String(record["schemaVersion"])}`
217
+ );
218
+ }
219
+ const storedPrimary = validateWorkspacePath(
220
+ record["primaryWorkspace"],
221
+ "primaryWorkspace"
222
+ );
223
+ if (normalizedScopePath(storedPrimary) !== normalizedScopePath(primaryWorkspace)) {
224
+ throw new WorkspaceRegistrationStoreError(
225
+ "Workspace registration store primary does not match this daemon"
226
+ );
227
+ }
228
+ if (!Array.isArray(record["workspaces"])) {
229
+ throw new WorkspaceRegistrationStoreError(
230
+ "Workspace registration store workspaces must be an array"
231
+ );
232
+ }
233
+ if (record["workspaces"].length > MAX_SECONDARY_WORKSPACES) {
234
+ throw new WorkspaceRegistrationStoreError(
235
+ `Workspace registration store exceeds ${MAX_SECONDARY_WORKSPACES} entries`
236
+ );
237
+ }
238
+ const seen = /* @__PURE__ */ new Set();
239
+ const workspaces = record["workspaces"].map((entry, index) => {
240
+ const workspace = validateWorkspacePath(entry, `workspaces[${index}]`);
241
+ const normalizedWorkspace = normalizedScopePath(workspace);
242
+ if (normalizedWorkspace === normalizedScopePath(primaryWorkspace)) {
243
+ throw new WorkspaceRegistrationStoreError(
244
+ "Primary workspace cannot be stored as a secondary registration"
245
+ );
246
+ }
247
+ if (seen.has(normalizedWorkspace)) {
248
+ throw new WorkspaceRegistrationStoreError(
249
+ "Workspace registration store contains duplicate paths"
250
+ );
251
+ }
252
+ seen.add(normalizedWorkspace);
253
+ return workspace;
254
+ });
255
+ return { schemaVersion: SCHEMA_VERSION, primaryWorkspace, workspaces };
256
+ }
257
+ __name(parseSnapshot, "parseSnapshot");
258
+ var updateChains = /* @__PURE__ */ new Map();
259
+ async function withInProcessLock(filePath, work) {
260
+ const previous = updateChains.get(filePath) ?? Promise.resolve();
261
+ const next = previous.then(work, work);
262
+ const settled = next.catch(() => void 0).finally(() => {
263
+ if (updateChains.get(filePath) === settled) updateChains.delete(filePath);
264
+ });
265
+ updateChains.set(filePath, settled);
266
+ return next;
267
+ }
268
+ __name(withInProcessLock, "withInProcessLock");
269
+ function compromisedLockError() {
270
+ return new WorkspaceRegistrationStoreError(
271
+ "Workspace registration store lock was compromised"
272
+ );
273
+ }
274
+ __name(compromisedLockError, "compromisedLockError");
275
+ async function acquireFileLock(filePath) {
276
+ await fs.mkdir(path.dirname(filePath), { recursive: true, mode: 448 });
277
+ let compromised = false;
278
+ const release = await import_proper_lockfile.default.lock(filePath, {
279
+ ...LOCK_OPTIONS,
280
+ onCompromised: /* @__PURE__ */ __name(() => {
281
+ compromised = true;
282
+ }, "onCompromised")
283
+ });
284
+ return {
285
+ assertOwned: /* @__PURE__ */ __name(() => {
286
+ if (compromised) throw compromisedLockError();
287
+ }, "assertOwned"),
288
+ release: /* @__PURE__ */ __name(async () => {
289
+ try {
290
+ await release();
291
+ } catch (err) {
292
+ if (!compromised) throw err;
293
+ }
294
+ if (compromised) throw compromisedLockError();
295
+ }, "release")
296
+ };
297
+ }
298
+ __name(acquireFileLock, "acquireFileLock");
299
+ var WorkspaceRegistrationStore = class {
300
+ constructor(primaryWorkspace, qwenHome) {
301
+ this.primaryWorkspace = primaryWorkspace;
302
+ validateWorkspacePath(primaryWorkspace, "primaryWorkspace");
303
+ this.filePath = getWorkspaceRegistrationStorePath(
304
+ primaryWorkspace,
305
+ qwenHome
306
+ );
307
+ }
308
+ static {
309
+ __name(this, "WorkspaceRegistrationStore");
310
+ }
311
+ filePath;
312
+ /** Returns an unlocked point-in-time snapshot; mutations re-read under lock. */
313
+ async read() {
314
+ try {
315
+ const entry = await fs.lstat(this.filePath);
316
+ if (entry.isSymbolicLink() || !entry.isFile()) {
317
+ throw new WorkspaceRegistrationStoreError(
318
+ "Workspace registration store must be a regular file"
319
+ );
320
+ }
321
+ } catch (err) {
322
+ if (err.code === "ENOENT") {
323
+ return emptySnapshot(this.primaryWorkspace);
324
+ }
325
+ throw err;
326
+ }
327
+ let file;
328
+ try {
329
+ file = await fs.open(
330
+ this.filePath,
331
+ (constants.O_RDONLY ?? 0) | (constants.O_NOFOLLOW ?? 0)
332
+ );
333
+ } catch (err) {
334
+ if (err.code === "ENOENT") {
335
+ return emptySnapshot(this.primaryWorkspace);
336
+ }
337
+ if (err.code === "ELOOP") {
338
+ throw new WorkspaceRegistrationStoreError(
339
+ "Workspace registration store must be a regular file"
340
+ );
341
+ }
342
+ throw err;
343
+ }
344
+ try {
345
+ const stat = await file.stat();
346
+ if (!stat.isFile()) {
347
+ throw new WorkspaceRegistrationStoreError(
348
+ "Workspace registration store must be a regular file"
349
+ );
350
+ }
351
+ if (stat.size > MAX_STORE_BYTES) {
352
+ throw new WorkspaceRegistrationStoreError(
353
+ `Workspace registration store exceeds ${MAX_STORE_BYTES} bytes`
354
+ );
355
+ }
356
+ let buffer = Buffer.alloc(
357
+ Math.max(1, Math.min(stat.size + 1, MAX_STORE_BYTES + 1))
358
+ );
359
+ let totalBytesRead = 0;
360
+ for (; ; ) {
361
+ if (totalBytesRead === buffer.length) {
362
+ if (totalBytesRead > MAX_STORE_BYTES) break;
363
+ const grown = Buffer.alloc(
364
+ Math.min(
365
+ MAX_STORE_BYTES + 1,
366
+ Math.max(buffer.length * 2, totalBytesRead + 1)
367
+ )
368
+ );
369
+ buffer.copy(grown, 0, 0, totalBytesRead);
370
+ buffer = grown;
371
+ }
372
+ const { bytesRead } = await file.read(
373
+ buffer,
374
+ totalBytesRead,
375
+ buffer.length - totalBytesRead,
376
+ totalBytesRead
377
+ );
378
+ if (bytesRead === 0) break;
379
+ totalBytesRead += bytesRead;
380
+ }
381
+ if (totalBytesRead > MAX_STORE_BYTES) {
382
+ throw new WorkspaceRegistrationStoreError(
383
+ `Workspace registration store exceeds ${MAX_STORE_BYTES} bytes`
384
+ );
385
+ }
386
+ return parseSnapshot(
387
+ buffer.toString("utf8", 0, totalBytesRead),
388
+ this.primaryWorkspace
389
+ );
390
+ } finally {
391
+ await file.close();
392
+ }
393
+ }
394
+ async add(workspace) {
395
+ validateWorkspacePath(workspace, "workspace");
396
+ if (normalizedScopePath(workspace) === normalizedScopePath(this.primaryWorkspace)) {
397
+ throw new WorkspaceRegistrationStoreError(
398
+ "Primary workspace cannot be stored as a secondary registration"
399
+ );
400
+ }
401
+ return this.update((snapshot) => {
402
+ const normalizedWorkspace = normalizedScopePath(workspace);
403
+ if (snapshot.workspaces.some(
404
+ (stored) => normalizedScopePath(stored) === normalizedWorkspace
405
+ )) {
406
+ return false;
407
+ }
408
+ if (snapshot.workspaces.length >= MAX_SECONDARY_WORKSPACES) {
409
+ throw new WorkspaceRegistrationStoreLimitError(
410
+ `Workspace registration store limit of ${MAX_SECONDARY_WORKSPACES} reached`
411
+ );
412
+ }
413
+ snapshot.workspaces.push(workspace);
414
+ return true;
415
+ });
416
+ }
417
+ async removeById(id) {
418
+ return await this.removeByIds([id]) > 0;
419
+ }
420
+ async removeByIds(ids) {
421
+ const requested = new Set(ids);
422
+ if (requested.size === 0) return 0;
423
+ let removed = 0;
424
+ await this.update((snapshot) => {
425
+ const retained = snapshot.workspaces.filter((workspace) => {
426
+ if (!requested.has(workspaceRegistrationId(workspace))) return true;
427
+ removed++;
428
+ return false;
429
+ });
430
+ if (removed === 0) return false;
431
+ snapshot.workspaces.splice(0, snapshot.workspaces.length, ...retained);
432
+ return true;
433
+ });
434
+ return removed;
435
+ }
436
+ async update(mutate) {
437
+ const { atomicWriteFile } = await import("./src-55DZWDAK.js");
438
+ return withInProcessLock(this.filePath, async () => {
439
+ const lock = await acquireFileLock(this.filePath);
440
+ let committed = false;
441
+ let changed = false;
442
+ let workError;
443
+ try {
444
+ const snapshot = await this.read();
445
+ lock.assertOwned();
446
+ changed = mutate(snapshot);
447
+ if (changed) {
448
+ lock.assertOwned();
449
+ await atomicWriteFile(
450
+ this.filePath,
451
+ `${JSON.stringify(snapshot, null, 2)}
452
+ `,
453
+ { mode: 384, forceMode: true, noFollow: true }
454
+ );
455
+ committed = true;
456
+ }
457
+ } catch (err) {
458
+ workError = err;
459
+ }
460
+ let releaseError;
461
+ try {
462
+ await lock.release();
463
+ } catch (err) {
464
+ releaseError = committed ? new WorkspaceRegistrationStoreCommittedError(
465
+ `Workspace registration update committed but lock release failed: ${err instanceof Error ? err.message : String(err)}`
466
+ ) : err;
467
+ }
468
+ if (workError instanceof Error && releaseError !== void 0 && workError.cause === void 0) {
469
+ workError.cause = releaseError;
470
+ }
471
+ if (workError !== void 0) throw workError;
472
+ if (releaseError !== void 0) throw releaseError;
473
+ return changed;
474
+ });
475
+ }
476
+ };
477
+
478
+ export {
479
+ MAX_REGISTERED_WORKSPACES,
480
+ resolveWorkspaceInputs,
481
+ WorkspaceRegistrationStoreError,
482
+ WorkspaceRegistrationStoreLimitError,
483
+ WorkspaceRegistrationStoreCommittedError,
484
+ workspaceRegistrationScopeHash,
485
+ workspaceRegistrationId,
486
+ getWorkspaceRegistrationStorePath,
487
+ WorkspaceRegistrationStore
488
+ };
489
+ /**
490
+ * @license
491
+ * Copyright 2026 Qwen Team
492
+ * SPDX-License-Identifier: Apache-2.0
493
+ */
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  require_node_domexception
5
- } from "./chunk-2PSWA5ID.js";
5
+ } from "./chunk-2X56YUSZ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
- } from "./chunk-A4BMJM77.js";
8
+ } from "./chunk-5O2XNYP6.js";
9
9
  import {
10
10
  __commonJS,
11
11
  __esm,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  init_esbuild_shims
5
- } from "./chunk-A4BMJM77.js";
5
+ } from "./chunk-5O2XNYP6.js";
6
6
  import {
7
7
  __name
8
8
  } from "./chunk-J2S4EL5Y.js";
@@ -0,0 +1,91 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ t
5
+ } from "./chunk-SE74CIZD.js";
6
+ import {
7
+ writeStderrLine
8
+ } from "./chunk-YUZI3WAC.js";
9
+ import {
10
+ createDebugLogger
11
+ } from "./chunk-7NFB7LBQ.js";
12
+ import {
13
+ init_esbuild_shims
14
+ } from "./chunk-5O2XNYP6.js";
15
+ import {
16
+ __name
17
+ } from "./chunk-J2S4EL5Y.js";
18
+
19
+ // packages/cli/src/utils/chat-recording-failure.ts
20
+ init_esbuild_shims();
21
+ import { randomUUID } from "node:crypto";
22
+ var CHAT_RECORDING_FAILURE_MESSAGE = "Session recording stopped after a write failure. New messages for the affected session will not be saved. Check disk space and permissions, then start a new session to resume recording. See the debug log for details.";
23
+ var TUI_CHAT_RECORDING_FAILURE_MESSAGE = "Session recording stopped after a write failure. New messages for the affected session will not be saved. Check disk space and permissions, then run `/clear` to start a new recorded session. See the debug log for details.";
24
+ var CHAT_RECORDING_SETTLE_TIMEOUT_MS = 2e3;
25
+ var debugLogger = createDebugLogger("CHAT_RECORDING");
26
+ function createChatRecordingFailureSystemMessage(event) {
27
+ return {
28
+ type: "system",
29
+ subtype: "session_recording_degraded",
30
+ uuid: randomUUID(),
31
+ session_id: event.sessionId,
32
+ parent_tool_use_id: null,
33
+ data: {
34
+ session_id: event.sessionId,
35
+ reason: "write_failed",
36
+ message: CHAT_RECORDING_FAILURE_MESSAGE
37
+ }
38
+ };
39
+ }
40
+ __name(createChatRecordingFailureSystemMessage, "createChatRecordingFailureSystemMessage");
41
+ function reportChatRecordingFailureToAdapter(adapter, event) {
42
+ adapter.emitMessage(createChatRecordingFailureSystemMessage(event));
43
+ }
44
+ __name(reportChatRecordingFailureToAdapter, "reportChatRecordingFailureToAdapter");
45
+ function subscribeToHeadlessChatRecordingFailures(config, adapter) {
46
+ if (typeof config.onChatRecordingFailure !== "function") return () => {
47
+ };
48
+ return config.onChatRecordingFailure((event) => {
49
+ if (config.getOutputFormat() === "text" /* TEXT */) {
50
+ writeStderrLine(`Warning: ${t(CHAT_RECORDING_FAILURE_MESSAGE)}`);
51
+ return;
52
+ }
53
+ reportChatRecordingFailureToAdapter(adapter, event);
54
+ });
55
+ }
56
+ __name(subscribeToHeadlessChatRecordingFailures, "subscribeToHeadlessChatRecordingFailures");
57
+ async function settleChatRecording(config, options) {
58
+ if (typeof config.getChatRecordingService !== "function") return "settled";
59
+ const recorder = config.getChatRecordingService();
60
+ if (!recorder) return "settled";
61
+ if (options.finalize) recorder.finalize();
62
+ let timer;
63
+ const timeout = new Promise((resolve) => {
64
+ timer = setTimeout(() => {
65
+ debugLogger.debug("Timed out waiting for chat recording to flush");
66
+ resolve("timeout");
67
+ }, CHAT_RECORDING_SETTLE_TIMEOUT_MS);
68
+ });
69
+ const settled = recorder.flush().then(
70
+ () => "settled",
71
+ () => "settled"
72
+ );
73
+ try {
74
+ return await Promise.race([settled, timeout]);
75
+ } finally {
76
+ if (timer) clearTimeout(timer);
77
+ }
78
+ }
79
+ __name(settleChatRecording, "settleChatRecording");
80
+
81
+ export {
82
+ TUI_CHAT_RECORDING_FAILURE_MESSAGE,
83
+ reportChatRecordingFailureToAdapter,
84
+ subscribeToHeadlessChatRecordingFailures,
85
+ settleChatRecording
86
+ };
87
+ /**
88
+ * @license
89
+ * Copyright 2025 Qwen Team
90
+ * SPDX-License-Identifier: Apache-2.0
91
+ */