@qwen-code/qwen-code 0.22.2 → 0.22.3-nightly.20260831.3a0c4c6108

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 (480) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/common-workflow.md +32 -0
  3. package/bundled/qc-helper/docs/configuration/auth.md +6 -6
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +4 -2
  5. package/bundled/qc-helper/docs/configuration/settings.md +47 -44
  6. package/bundled/qc-helper/docs/extension/introduction.md +1 -1
  7. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  8. package/bundled/qc-helper/docs/features/auto-mode.md +34 -17
  9. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  10. package/bundled/qc-helper/docs/features/channels/overview.md +36 -3
  11. package/bundled/qc-helper/docs/features/code-review.md +5 -5
  12. package/bundled/qc-helper/docs/features/commands.md +41 -0
  13. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  14. package/bundled/qc-helper/docs/features/hooks.md +6 -2
  15. package/bundled/qc-helper/docs/features/memory.md +1 -0
  16. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  17. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +17 -7
  18. package/bundled/qc-helper/docs/qwen-serve.md +59 -55
  19. package/bundled/review/SKILL.md +90 -31
  20. package/bundled/review/references/persistence.md +7 -3
  21. package/bundled/review/references/posting.md +11 -5
  22. package/chunks/MaxSizedBox-IHRTWGSY.js +115 -0
  23. package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-TLVWVTJ7.js} +88 -85
  24. package/chunks/{acp-startup-profiler-GNYAL6LI.js → acp-startup-profiler-M4X5F3VK.js} +2 -2
  25. package/chunks/{acpAgent-MXEAN54C.js → acpAgent-7I5LLPP3.js} +1563 -407
  26. package/chunks/agent-4Z4NTJXD.js +99 -0
  27. package/chunks/agent-headless-TVUJXQWU.js +89 -0
  28. package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-VSSPG7XV.js} +84 -55
  29. package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-TEYW6I4A.js} +11 -3
  30. package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-PYNBWV63.js} +45 -7
  31. package/chunks/bridge-EVURP4NO.js +122 -0
  32. package/chunks/{ca-7HPYOYSZ.js → ca-BNU7YNDE.js} +3 -0
  33. package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-IDBNYSFW.js} +6 -6
  34. package/chunks/channel-settings-store-MZNXRKVI.js +125 -0
  35. package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-ZLP5SJHT.js} +7 -7
  36. package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-FG5377T2.js} +7 -7
  37. package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-HDVE4ADS.js} +4 -4
  38. package/chunks/{chunk-PPKZ7JOE.js → chunk-22UH7VTP.js} +1 -1
  39. package/chunks/chunk-24FVUD5P.js +49 -0
  40. package/chunks/{chunk-CMHFCLBU.js → chunk-26SIKQIC.js} +1 -1
  41. package/chunks/{chunk-5PA6UEYA.js → chunk-3452WXOK.js} +4 -1
  42. package/chunks/{chunk-SFPGAQUL.js → chunk-373DQUVA.js} +72 -31
  43. package/chunks/{chunk-H2WDGQ6D.js → chunk-3AKCBZVW.js} +3 -3
  44. package/chunks/{chunk-LXIBMVRN.js → chunk-3CZGSTZX.js} +15 -9
  45. package/chunks/{chunk-JVPFTDBK.js → chunk-3EGEBDTW.js} +1 -1
  46. package/chunks/{chunk-K2NQPH5D.js → chunk-3NQCZMUB.js} +79 -5
  47. package/chunks/{chunk-E7REAOTN.js → chunk-47ECGEJC.js} +4 -0
  48. package/chunks/{chunk-WKK5BQNP.js → chunk-4P7PPAHN.js} +45 -421
  49. package/chunks/chunk-4VQBQLIZ.js +293 -0
  50. package/chunks/{chunk-4JWNNLPT.js → chunk-5FGWVPCM.js} +4 -4
  51. package/chunks/{chunk-ZFKOCECU.js → chunk-5ICKESC3.js} +2 -2
  52. package/chunks/{chunk-3I6UTTDX.js → chunk-67AY5D3M.js} +20 -20
  53. package/chunks/chunk-6HUXPLB5.js +110 -0
  54. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  55. package/chunks/{chunk-6LFTG244.js → chunk-6NWPR2EB.js} +19 -9
  56. package/chunks/chunk-6OO7QEWV.js +2581 -0
  57. package/chunks/{chunk-TWSKM647.js → chunk-6VHIWUJP.js} +1 -1
  58. package/chunks/{chunk-RJC5EIKY.js → chunk-6YXNJXQW.js} +7 -5
  59. package/chunks/{chunk-TPI7O7HR.js → chunk-7DDTI7Q3.js} +1 -1
  60. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  61. package/chunks/chunk-7J6OTNGO.js +424 -0
  62. package/chunks/{chunk-NIFYWDYN.js → chunk-7TBU7PU2.js} +1 -1
  63. package/chunks/{chunk-3FDFA4MZ.js → chunk-7XICSE62.js} +3 -3
  64. package/chunks/{chunk-V2NDP3I4.js → chunk-7XL4WRXM.js} +2 -2
  65. package/chunks/{chunk-F7TNAPZ4.js → chunk-AAX236AR.js} +45 -11
  66. package/chunks/{chunk-T32W2JHI.js → chunk-ACZ4YRYK.js} +6 -6
  67. package/chunks/chunk-ADJD4LZF.js +210 -0
  68. package/chunks/{chunk-JWALNCLT.js → chunk-AF3QB6OL.js} +1 -1
  69. package/chunks/{chunk-P2SU6ZTI.js → chunk-AI35S34R.js} +3 -3
  70. package/chunks/{chunk-OIP7C4FE.js → chunk-AKNQMSL2.js} +5 -5
  71. package/chunks/{chunk-6CGL7E7G.js → chunk-AN3KFCNH.js} +2 -2
  72. package/chunks/{chunk-ABS25QER.js → chunk-ANVG3BVV.js} +1 -1
  73. package/chunks/chunk-AYYKUUKP.js +972 -0
  74. package/chunks/chunk-B2RIIK3K.js +346 -0
  75. package/chunks/{chunk-F5SZP77N.js → chunk-BBYTY46C.js} +153 -112
  76. package/chunks/{chunk-XRSOI3DL.js → chunk-BE5FGT5Z.js} +1 -1
  77. package/chunks/{chunk-BGXZBI5B.js → chunk-BHTYRHJF.js} +3 -2
  78. package/chunks/{chunk-CSMI4FP5.js → chunk-BSJOBW4U.js} +1 -1
  79. package/chunks/{chunk-Z7TGYN5F.js → chunk-BXNKREX7.js} +3 -3
  80. package/chunks/{chunk-4MQEPP3Y.js → chunk-BY24DZ4J.js} +5 -119
  81. package/chunks/{chunk-5XBFCMWD.js → chunk-CAZADEU7.js} +17 -9
  82. package/chunks/chunk-CHEIIBT3.js +40 -0
  83. package/chunks/{chunk-BBWV7ONL.js → chunk-CM4F4JBB.js} +6 -6
  84. package/chunks/{chunk-CAJTKR6W.js → chunk-D7D3HSYQ.js} +6 -5
  85. package/chunks/{chunk-3DXFGHAJ.js → chunk-DBTMP3P4.js} +213 -185
  86. package/chunks/chunk-DJBQCO2E.js +842 -0
  87. package/chunks/{chunk-RXFQM6FQ.js → chunk-DMEUXLSS.js} +16 -1
  88. package/chunks/{chunk-3AFMQUTI.js → chunk-E4JNFXNI.js} +3 -3
  89. package/chunks/{chunk-UHQFIS7N.js → chunk-EAHOJF6V.js} +28 -4
  90. package/chunks/{chunk-OIVXBW3W.js → chunk-ED7DD7MV.js} +3 -3
  91. package/chunks/{chunk-6DIGWMGT.js → chunk-EIJT2PQ6.js} +2 -2
  92. package/chunks/{chunk-XQFT3QUF.js → chunk-ENYUKMFK.js} +1 -1
  93. package/chunks/{chunk-CQH5KTKC.js → chunk-ERHAMGAA.js} +1 -1
  94. package/chunks/{chunk-IOPCFOTF.js → chunk-ERRJA23L.js} +3 -3
  95. package/chunks/{chunk-LDP5OD6N.js → chunk-EU2B4P3D.js} +12 -12
  96. package/chunks/{chunk-W5MJJ2V7.js → chunk-FHPYRXRH.js} +1 -1
  97. package/chunks/{chunk-IZIVM7LZ.js → chunk-FIWZOMBF.js} +3 -3
  98. package/chunks/{chunk-4HV6HH33.js → chunk-FPMQT2YY.js} +9 -9
  99. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  100. package/chunks/{chunk-L2M46FP5.js → chunk-FXUSWLBF.js} +225 -12
  101. package/chunks/{chunk-VVW4ZNFY.js → chunk-GB4UKWY5.js} +16 -8
  102. package/chunks/{chunk-PKAYJDB3.js → chunk-GCUR24KK.js} +22 -4
  103. package/chunks/{chunk-DIMEPKCW.js → chunk-GDXSXL3H.js} +11 -1
  104. package/chunks/{chunk-7JPW6IYH.js → chunk-GN422P4J.js} +1 -1
  105. package/chunks/{chunk-66KDY3LV.js → chunk-GS7XT345.js} +3 -3
  106. package/chunks/{chunk-PFCQ62V4.js → chunk-H2A2GJGL.js} +6 -6
  107. package/chunks/{chunk-Z7FLBQPR.js → chunk-H5GPPDGY.js} +8 -8
  108. package/chunks/{chunk-CPGJJJLU.js → chunk-HDMKCJHI.js} +1 -1
  109. package/chunks/{chunk-6PJOTWAN.js → chunk-HT5S5TRQ.js} +1 -1
  110. package/chunks/{chunk-Z4X5MTRT.js → chunk-HWVUSYSN.js} +5 -12
  111. package/chunks/{chunk-V4QXXQJ2.js → chunk-I75VKFCJ.js} +4 -4
  112. package/chunks/{chunk-NU7RKEZR.js → chunk-IBMUI5EV.js} +3 -3
  113. package/chunks/{chunk-4J657AJR.js → chunk-ID33ZRWH.js} +42 -42
  114. package/chunks/{chunk-R4PMVSR5.js → chunk-IIFL7QDN.js} +30 -192
  115. package/chunks/{chunk-MQM5PJML.js → chunk-IVUWTA2D.js} +1 -1
  116. package/chunks/{chunk-E55H6BZ7.js → chunk-IXEZHTDR.js} +1616 -151
  117. package/chunks/{chunk-XF63PKEN.js → chunk-IXHV5MIC.js} +1 -1
  118. package/chunks/{chunk-JHS74YAB.js → chunk-J4Y3QJHF.js} +3 -1
  119. package/chunks/{chunk-MIIVI25Q.js → chunk-JDIO45X7.js} +3 -3
  120. package/chunks/{chunk-QFCDF5PL.js → chunk-JHN7UIDW.js} +1 -1
  121. package/chunks/{chunk-FDY5RMGH.js → chunk-JLSZT354.js} +2 -2
  122. package/chunks/chunk-JMRE4WJQ.js +1849 -0
  123. package/chunks/{chunk-FY76G3G5.js → chunk-JOTYTYYW.js} +6 -6
  124. package/chunks/{chunk-TRZTNIQ6.js → chunk-JOWQD4LO.js} +3 -3
  125. package/chunks/{chunk-KEKZFOL6.js → chunk-JPKTAQS3.js} +1 -1
  126. package/chunks/chunk-JS73NNWF.js +30 -0
  127. package/chunks/chunk-JX6XHPTX.js +26 -0
  128. package/chunks/{chunk-5JTIYALA.js → chunk-JZWOCUZ3.js} +1 -1
  129. package/chunks/{chunk-3JGZSIDA.js → chunk-KFN2IZYR.js} +3 -3
  130. package/chunks/{chunk-23RFD54N.js → chunk-KHP66DFN.js} +1 -1
  131. package/chunks/{chunk-AGR5UROZ.js → chunk-KUDI54QQ.js} +23 -33
  132. package/chunks/{chunk-3SGB2UHX.js → chunk-L2OKAIUK.js} +28 -16
  133. package/chunks/{chunk-BXDAPVQU.js → chunk-L6CUJZDG.js} +28 -4
  134. package/chunks/chunk-LAUEEBDL.js +277 -0
  135. package/chunks/{chunk-BNMF3K5X.js → chunk-LFAR7CPW.js} +55 -39
  136. package/chunks/{chunk-Y3QL45LS.js → chunk-LKODFJRD.js} +9 -9
  137. package/chunks/{chunk-BWORX6FA.js → chunk-LMMHS3RS.js} +1 -1
  138. package/chunks/{chunk-UTLCH2FK.js → chunk-LYSZVCCD.js} +10 -7
  139. package/chunks/{chunk-F6FV3C5K.js → chunk-MBZ5ORJB.js} +264 -283
  140. package/chunks/{chunk-L6YT5H34.js → chunk-MJBHSZEJ.js} +5 -5
  141. package/chunks/{chunk-B7CDU2SL.js → chunk-MOF6VZN2.js} +18 -21
  142. package/chunks/{chunk-6LFJEACX.js → chunk-MZ5A5PQW.js} +7 -7
  143. package/chunks/chunk-MZYWNU66.js +149 -0
  144. package/chunks/{chunk-2TNL5KPM.js → chunk-N4QWUPDM.js} +7 -0
  145. package/chunks/{chunk-5O72BNDD.js → chunk-ND7TQQPE.js} +9 -9
  146. package/chunks/{chunk-QP4C6WCE.js → chunk-NGKLMNWN.js} +3 -3
  147. package/chunks/{chunk-JSC3H3TD.js → chunk-NT5XIL5H.js} +46 -18
  148. package/chunks/{chunk-KUX5D6DK.js → chunk-NT7LXVV5.js} +11010 -11138
  149. package/chunks/{chunk-PDQGMSZK.js → chunk-ODZF64DM.js} +1 -1
  150. package/chunks/{chunk-FBSSIAAQ.js → chunk-OE5AQVNB.js} +8 -8
  151. package/chunks/chunk-OHU2H5CS.js +130 -0
  152. package/chunks/{chunk-2K6ORIHJ.js → chunk-OKMDOATP.js} +13 -13
  153. package/chunks/{chunk-JB4JIVTJ.js → chunk-OKTNXDVO.js} +1 -1
  154. package/chunks/{chunk-XDLEZ5HX.js → chunk-OQYXJK2V.js} +1 -1
  155. package/chunks/{chunk-EFUM7RVY.js → chunk-OSTQZIOY.js} +944 -18
  156. package/chunks/{chunk-VQUGEVGR.js → chunk-OTTNXUT5.js} +1 -1
  157. package/chunks/{chunk-T3WXYEZ4.js → chunk-PB7JBAHF.js} +53 -54
  158. package/chunks/{chunk-WAOIHTJS.js → chunk-PDAKFU7M.js} +1 -1
  159. package/chunks/{chunk-43GGFFLY.js → chunk-PDXYZBBQ.js} +3 -3
  160. package/chunks/{chunk-4CMJKUND.js → chunk-PNIGAVY6.js} +67 -2
  161. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  162. package/chunks/{chunk-4CDSK5AZ.js → chunk-PWR2NQBS.js} +6 -6
  163. package/chunks/{chunk-YTDVNSUQ.js → chunk-QAK5475D.js} +1 -1
  164. package/chunks/{chunk-IJKTMLBE.js → chunk-QE7DTCLX.js} +1 -1
  165. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  166. package/chunks/{chunk-C6K43ZDE.js → chunk-QTMPM6RC.js} +16 -10
  167. package/chunks/{chunk-P5GGM4KS.js → chunk-RAEEQEC5.js} +5 -5
  168. package/chunks/{chunk-XDFHY4R3.js → chunk-RGEV5AUD.js} +242 -14
  169. package/chunks/{chunk-M6FOJXW3.js → chunk-RKW36UWC.js} +1 -1
  170. package/chunks/{chunk-RIEFGNTP.js → chunk-RLSPPTWH.js} +5119 -683
  171. package/chunks/{chunk-PDMJ3KGS.js → chunk-RT4QNQ5P.js} +3 -3
  172. package/chunks/{chunk-SJ3ZUWFK.js → chunk-RVCGAHC7.js} +4 -26
  173. package/chunks/{chunk-77RG5SFQ.js → chunk-RY7DL5IF.js} +11 -6
  174. package/chunks/{chunk-4FTKQNWJ.js → chunk-S2T7H5MI.js} +182 -3
  175. package/chunks/{chunk-EOGELB3H.js → chunk-SDCHI64N.js} +4 -4
  176. package/chunks/{chunk-EKSCLBBF.js → chunk-SMJYTKTB.js} +23 -5
  177. package/chunks/{chunk-MZS7GEC7.js → chunk-SMRDCANI.js} +1 -1
  178. package/chunks/{chunk-43UYNAWX.js → chunk-T3TL6S3B.js} +4 -4
  179. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  180. package/chunks/{chunk-IK5BW3CS.js → chunk-T4RMUTTT.js} +16 -5
  181. package/chunks/{chunk-L6BZRIUL.js → chunk-TBJ3SNS3.js} +183 -5
  182. package/chunks/{chunk-CCBZDVUA.js → chunk-TNMOFNT4.js} +133 -122
  183. package/chunks/{chunk-Y6LSMB6J.js → chunk-TV7BJ7TX.js} +1 -1
  184. package/chunks/{chunk-G34IR3D6.js → chunk-U5RTYI7D.js} +102 -146
  185. package/chunks/{chunk-TTX2JUE6.js → chunk-U6D2PPMN.js} +1 -1
  186. package/chunks/{chunk-D5LUXLUH.js → chunk-UJ4DUYIH.js} +18 -4
  187. package/chunks/{chunk-A7YP63XN.js → chunk-UKB2TZAO.js} +5 -5
  188. package/chunks/{chunk-VTHREBQM.js → chunk-UKYXYWI2.js} +2 -2
  189. package/chunks/{chunk-2NYCN6F2.js → chunk-UVYKCRJZ.js} +46 -29
  190. package/chunks/{chunk-HVEYF6VT.js → chunk-UXEW7TQS.js} +2 -2
  191. package/chunks/{chunk-HVQ3B7FF.js → chunk-V4HN35IF.js} +44 -7
  192. package/chunks/chunk-VGHZT6JR.js +51 -0
  193. package/chunks/{chunk-V5J4J5TP.js → chunk-VYSZUQGU.js} +2 -20
  194. package/chunks/{chunk-6IUNAPLR.js → chunk-W4BDHLRT.js} +3 -3
  195. package/chunks/{chunk-Q26AYA62.js → chunk-W7KWB6AH.js} +7 -4
  196. package/chunks/chunk-WLEYH7CD.js +332 -0
  197. package/chunks/{chunk-RU7BK6B3.js → chunk-X7C7KFWA.js} +2 -2
  198. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  199. package/chunks/{chunk-BFPESSTR.js → chunk-XEAAO654.js} +1 -1
  200. package/chunks/{chunk-JU4EEXC7.js → chunk-XLENZQXH.js} +2 -2
  201. package/chunks/{chunk-JSHHYW6T.js → chunk-XPDKSOVW.js} +69 -64
  202. package/chunks/chunk-YDQ4OCDK.js +1222 -0
  203. package/chunks/{chunk-ZU4UDIWX.js → chunk-YKADANK6.js} +6 -7
  204. package/chunks/{chunk-JCQD3INC.js → chunk-YNG7XAJU.js} +3 -3
  205. package/chunks/{chunk-O2UN57NX.js → chunk-YOFULAHO.js} +19 -2
  206. package/chunks/{chunk-BAJKAAOY.js → chunk-YOMKOM7E.js} +4892 -1504
  207. package/chunks/{chunk-ERFDKH32.js → chunk-YPISTYEI.js} +8 -7
  208. package/chunks/{chunk-TGWAQ5RB.js → chunk-ZBDYI7VM.js} +6900 -6882
  209. package/chunks/{chunk-OZ6KS6KW.js → chunk-ZGCKTAL5.js} +6 -1
  210. package/chunks/chunk-ZHO2CW6D.js +205 -0
  211. package/chunks/{chunk-DZWPESIF.js → chunk-ZQ3FKEWA.js} +3 -3
  212. package/chunks/{chunk-7EQQR46F.js → chunk-ZVP4PWBU.js} +1 -1
  213. package/chunks/{chunk-7UYV53BC.js → chunk-ZYPJ7HVZ.js} +1 -1
  214. package/chunks/config-utils-NNUPVGEC.js +118 -0
  215. package/chunks/contextCommand-S3TPCDM5.js +111 -0
  216. package/chunks/{core-runtime-677KFX6Q.js → core-runtime-NASPCSQX.js} +66 -63
  217. package/chunks/{create-sub-session-23ITIELI.js → create-sub-session-36TNCHCP.js} +3 -3
  218. package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-DS4BJLYZ.js} +97 -68
  219. package/chunks/{cron-create-KJ4IY6PP.js → cron-create-QXHTYUTO.js} +4 -4
  220. package/chunks/{cron-delete-MBLQCAYY.js → cron-delete-WV2BM42M.js} +4 -4
  221. package/chunks/{cron-list-DWH2PQ47.js → cron-list-7KVNBLZ7.js} +4 -4
  222. package/chunks/{daemon-MJQUO7RA.js → daemon-UCVUHPJD.js} +723 -90
  223. package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-ATXVQPS3.js} +63 -60
  224. package/chunks/daemon-status-provider-UI3GBTMO.js +121 -0
  225. package/chunks/daemon-trust-policy-SUCBJ2CA.js +117 -0
  226. package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-3LM5RQNS.js} +71 -68
  227. package/chunks/{de-X6HLSIFE.js → de-T4BLOKEC.js} +3 -0
  228. package/chunks/deferred-core-runtime-SCOJLVYG.js +119 -0
  229. package/chunks/{display-image-BE7I6ZB6.js → display-image-Z4VBQDEJ.js} +5 -5
  230. package/chunks/{dist-TJUDJTCB.js → dist-5423MG3D.js} +411 -91
  231. package/chunks/{dist-ILDBUWDB.js → dist-7WDZYMWV.js} +43 -25
  232. package/chunks/{dist-ZBVOXSKF.js → dist-FLJLHASF.js} +219 -121
  233. package/chunks/{dist-QODVOVWI.js → dist-GPSRNVVP.js} +43 -35
  234. package/chunks/{dist-DJBNNPLN.js → dist-LY66XNUL.js} +10 -3
  235. package/chunks/{dist-7CKN54NL.js → dist-S3BKCTWF.js} +205 -89
  236. package/chunks/{dist-UQUFZDIY.js → dist-SDKHGH5O.js} +41 -20
  237. package/chunks/{dist-4Q7NTUNB.js → dist-WAUO5OMN.js} +46 -22
  238. package/chunks/{dist-SATKXKUR.js → dist-WIVVPE7M.js} +28 -14
  239. package/chunks/earlyInputCapture-INWJ2STR.js +112 -0
  240. package/chunks/{edit-BSV6YRVW.js → edit-B7ZRRGAE.js} +51 -49
  241. package/chunks/{en-YLXBXM4Z.js → en-E4AYTX6H.js} +3 -0
  242. package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-SPZHEETQ.js} +7 -7
  243. package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-S554IKJ2.js} +55 -53
  244. package/chunks/environment-25ADH4Y6.js +134 -0
  245. package/chunks/errors-G2I6LFTW.js +118 -0
  246. package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-AWUXAMAM.js} +7 -7
  247. package/chunks/exitPlanMode-ZFH4OYPM.js +87 -0
  248. package/chunks/{fast-path-773PV7PU.js → fast-path-WZHVZ2ER.js} +8 -7
  249. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-NILM6QZL.js} +3 -3
  250. package/chunks/{fr-FTZWF462.js → fr-BGHGYX6A.js} +3 -0
  251. package/chunks/{glob-CZHOWUEA.js → glob-UOVDMBUP.js} +50 -48
  252. package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-7TNK5ZHC.js} +5 -4
  253. package/chunks/{grep-5GPICQBU.js → grep-LHYJ5V2N.js} +9 -7
  254. package/chunks/handleAutoUpdate-4MZ45DZY.js +114 -0
  255. package/chunks/i18n-KWUEI4DS.js +129 -0
  256. package/chunks/{image-gen-HAYOEQ4O.js → image-gen-YZDVO5YS.js} +8 -10
  257. package/chunks/initializer-2NBROGMG.js +118 -0
  258. package/chunks/installationInfo-YKUSY3ZB.js +112 -0
  259. package/chunks/{ja-2GL5FKYJ.js → ja-G3FTD5XE.js} +3 -0
  260. package/chunks/{keychain-token-storage-37XPR34V.js → keychain-token-storage-REZVMJA6.js} +2 -2
  261. package/chunks/list-W2WV3COM.js +121 -0
  262. package/chunks/list-agents-PMVMHNY7.js +128 -0
  263. package/chunks/{gemini-IP4FJAP5.js → llm-NPPHLIJI.js} +162 -133
  264. package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-YK3WN6XW.js} +29 -29
  265. package/chunks/loadedSettingsAdapter-2P7DFWUR.js +115 -0
  266. package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-QYYYGU6V.js} +318 -35
  267. package/chunks/{loop-wakeup-XJFONSQ7.js → loop-wakeup-EBM4F5MZ.js} +5 -5
  268. package/chunks/{ls-3VAT2J7A.js → ls-F6TRX3DD.js} +4 -4
  269. package/chunks/{lsp-5W7IRUBH.js → lsp-QYTOS2FI.js} +2 -2
  270. package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-UMC4NBWW.js} +64 -61
  271. package/chunks/mcp-OFI6XDP2.js +115 -0
  272. package/chunks/{monitor-FI7PY36Z.js → monitor-QX3BM3JY.js} +50 -48
  273. package/chunks/nonInteractiveCli-NVRMD5MN.js +193 -0
  274. package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-AAILDPSV.js} +51 -49
  275. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-D6JD6LDS.js} +4 -4
  276. package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-53PB3CMN.js} +27 -29
  277. package/chunks/pidfile-5ACKG2LI.js +116 -0
  278. package/chunks/process-registry-OAEG6WGC.js +662 -0
  279. package/chunks/{processUtils-IQZBYWSB.js → processUtils-2BCDO3DZ.js} +2 -2
  280. package/chunks/prompt-terminal-ledger-3RKW73A2.js +110 -0
  281. package/chunks/{pt-XN2YWJVM.js → pt-D73IFYT7.js} +3 -0
  282. package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-N4LLWDPH.js} +56 -54
  283. package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-7AOCKSOQ.js} +7 -9
  284. package/chunks/{read-file-QE2B5FTX.js → read-file-DPAKXHYE.js} +13 -13
  285. package/chunks/{read-mcp-resource-XD257PGJ.js → read-mcp-resource-R4NO75DW.js} +2 -2
  286. package/chunks/{record-artifact-RZGZBENU.js → record-artifact-2EAYLAL5.js} +4 -4
  287. package/chunks/{report-findings-Q3SYKKW5.js → report-findings-Y4MSHDS3.js} +9 -5
  288. package/chunks/{request-shutdown-BCLA3JV2.js → request-shutdown-DWRMGTMB.js} +8 -7
  289. package/chunks/resumeHistoryUtils-3JQORXAK.js +123 -0
  290. package/chunks/ripGrep-AHF5QCI7.js +39 -0
  291. package/chunks/{ru-OLTMFJEW.js → ru-QMISLKRH.js} +3 -0
  292. package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-3LKV7KDC.js} +728 -256
  293. package/chunks/runtime-66F4W3IA.js +153 -0
  294. package/chunks/scheduled-tasks-2NVKS5Q2.js +132 -0
  295. package/chunks/scheduler-JNV7T3ZO.js +127 -0
  296. package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-MFIWD23D.js} +2 -2
  297. package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-2RXJ4Q6X.js} +11 -5
  298. package/chunks/send-message-WPZRCJOB.js +442 -0
  299. package/chunks/serve-GP2UNRP7.js +123 -0
  300. package/chunks/{server-DFUSSSHI.js → server-7W6C3SOW.js} +5233 -3623
  301. package/chunks/{session-3TEHNENZ.js → session-PZLBAQGG.js} +125 -118
  302. package/chunks/session-pr-refresh-OIVL3U3Z.js +367 -0
  303. package/chunks/{settings-VOZYKLTT.js → settings-ZOHIQWYK.js} +70 -67
  304. package/chunks/shell-FWZT6IUR.js +97 -0
  305. package/chunks/{skill-FEOKFX26.js → skill-RTQC2YGA.js} +121 -65
  306. package/chunks/skill-settings-AKMIXFSJ.js +123 -0
  307. package/chunks/spawnChannel-ZP23JL6O.js +116 -0
  308. package/chunks/standalone-update-P2Q5H4ZU.js +123 -0
  309. package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-NSA6QPQZ.js} +2018 -1526
  310. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  311. package/chunks/{syntheticOutput-ML43GEFN.js → syntheticOutput-5URSQLIS.js} +3 -3
  312. package/chunks/{task-create-TMSV7RD5.js → task-create-3EXVDG3G.js} +12 -12
  313. package/chunks/{task-list-W55RBFRX.js → task-list-PIBYNSE7.js} +5 -6
  314. package/chunks/{task-stop-CXEH5L2D.js → task-stop-IV3BYWJC.js} +2 -2
  315. package/chunks/{task-update-N536I4GQ.js → task-update-H5BPDS5Y.js} +13 -14
  316. package/chunks/{team-create-QYSWCYCL.js → team-create-53T42W37.js} +56 -55
  317. package/chunks/{team-delete-FJRFX33M.js → team-delete-X3WPELS6.js} +25 -8
  318. package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-D45ZC5OE.js} +50 -48
  319. package/chunks/terminal-image-renderer-FCRUWT6C.js +121 -0
  320. package/chunks/theme-manager-MHNPEDP7.js +107 -0
  321. package/chunks/{todoWrite-WDJNQEMW.js → todoWrite-A5IOZZ3P.js} +4 -4
  322. package/chunks/{tool-search-F2EMIAPV.js → tool-search-6RPBGGUX.js} +27 -23
  323. package/chunks/total-session-admission-MGV56XDK.js +117 -0
  324. package/chunks/trustedFolders-QJYEFMTU.js +127 -0
  325. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  326. package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-ZDMQX63C.js} +6 -6
  327. package/chunks/updateCheck-4QZWCGP6.js +123 -0
  328. package/chunks/useAutoAcceptIndicator-DLIQN256.js +125 -0
  329. package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-HGTG7AEK.js} +114 -107
  330. package/chunks/{version-ANP4TS6O.js → version-CPAZMC4B.js} +1 -1
  331. package/chunks/{web-fetch-QJADSAH3.js → web-fetch-N4K5M3M4.js} +16 -18
  332. package/chunks/{web-search-7TTQKEKM.js → web-search-4VZKM5SF.js} +9 -11
  333. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-PW7OEDQO.js} +3 -2
  334. package/chunks/{workflow-5XN6XSOT.js → workflow-2ALQKTHG.js} +229 -146
  335. package/chunks/workspace-providers-status-5JM4CB6R.js +119 -0
  336. package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-RNMFVCH7.js} +2 -1
  337. package/chunks/workspace-registry-6EULAPZC.js +126 -0
  338. package/chunks/workspace-runtime-coordinator-IRI2DRCJ.js +127 -0
  339. package/chunks/workspace-service-SETHN4WE.js +131 -0
  340. package/chunks/workspace-skills-status-4D4EUEQU.js +118 -0
  341. package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-4LR3CDL4.js} +77 -76
  342. package/chunks/write-file-45GWPSOI.js +92 -0
  343. package/chunks/{zh-UNY63FR3.js → zh-2BQ7P6OD.js} +3 -0
  344. package/chunks/{zh-TW-RPTMRTHG.js → zh-TW-UFXRZTXX.js} +3 -0
  345. package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-K6IQUKRC.js} +13 -13
  346. package/cli.js +129 -92
  347. package/locales/ca.js +6 -0
  348. package/locales/de.js +6 -0
  349. package/locales/en.js +6 -0
  350. package/locales/fr.js +6 -0
  351. package/locales/ja.js +6 -0
  352. package/locales/pt.js +6 -0
  353. package/locales/ru.js +6 -0
  354. package/locales/zh-TW.js +6 -0
  355. package/locales/zh.js +6 -0
  356. package/package.json +3 -3
  357. package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-C80OZcPP.js} +1 -1
  358. package/web-shell/assets/{arc-BSTnk5pu.js → arc-AUqStYgf.js} +1 -1
  359. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-CQYOdYla.js} +1 -1
  360. package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-lYKlFysy.js} +1 -1
  361. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-BoS23iIp.js} +1 -1
  362. package/web-shell/assets/channel-B0ovOJeK.js +1 -0
  363. package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-DLLooL1E.js} +1 -1
  364. package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-kPfJxScY.js} +1 -1
  365. package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-CVGFBqkD.js} +1 -1
  366. package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-CnM_kOVV.js} +1 -1
  367. package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Cj-ajOkT.js} +1 -1
  368. package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-8L5c-wFo.js} +1 -1
  369. package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-DsXTxpvL.js} +1 -1
  370. package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-DU5GE1_z.js} +1 -1
  371. package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-D2IIWZKt.js} +1 -1
  372. package/web-shell/assets/classDiagram-DTDB5LWJ-DMll2-6_.js +1 -0
  373. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DMll2-6_.js +1 -0
  374. package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-CF_txUJr.js} +1 -1
  375. package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-DEZ-My-Z.js} +1 -1
  376. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-BV7EKUS6.js} +1 -1
  377. package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-JGIX0G4H.js} +1 -1
  378. package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-DdUY7q6A.js} +1 -1
  379. package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-fhzRZ19v.js} +1 -1
  380. package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-BOgOex6q.js} +1 -1
  381. package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-C0NknIz6.js} +1 -1
  382. package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-C__3mUBX.js} +1 -1
  383. package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-BvPhqycH.js} +1 -1
  384. package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-BqzoNoL9.js} +1 -1
  385. package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CJKOre47.js} +1 -1
  386. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-C5xZjrp0.js} +1 -1
  387. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-C0EjwuPK.js} +1 -1
  388. package/web-shell/assets/index-B_IPzA0h.js +2020 -0
  389. package/web-shell/assets/{index-CBGz4Qjl.js → index-C5M93syE.js} +1 -1
  390. package/web-shell/assets/index-D1OKGQlM.css +36 -0
  391. package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-BUwzsYOs.js} +1 -1
  392. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-EDJ_DH3V.js} +1 -1
  393. package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BnfcOsS0.js} +1 -1
  394. package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-D_ofTVGu.js} +1 -1
  395. package/web-shell/assets/{layout-CEz_1L8z.js → layout-CBuQFdfZ.js} +1 -1
  396. package/web-shell/assets/{linear-CBjTq9Hc.js → linear-DRIHtmGv.js} +1 -1
  397. package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-CmR5wZH6.js} +6 -6
  398. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-BV374olC.js} +1 -1
  399. package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-Bpy1SplK.js} +1 -1
  400. package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-CeZx4hR2.js} +1 -1
  401. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-COYKs14h.js} +1 -1
  402. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-5g2pOeTs.js} +1 -1
  403. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-Yn8uPGtF.js} +1 -1
  404. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-CTayAGq6.js} +1 -1
  405. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-BFWDKzUU.js} +1 -1
  406. package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-CtErUbj4.js} +1 -1
  407. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-Co3HFzOd.js} +1 -1
  408. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C3gdRjPm.js +1 -0
  409. package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-CDZuxzOj.js} +1 -1
  410. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C34TGCPZ.js +8 -0
  411. package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-UcNHj8At.js} +1 -1
  412. package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-JKR9pVFG.js} +1 -1
  413. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-C4SU-yIW.js} +1 -1
  414. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-D_yoWGZ4.js} +1 -1
  415. package/web-shell/index.html +197 -3
  416. package/chunks/MaxSizedBox-X5FZSNAJ.js +0 -112
  417. package/chunks/agent-PJIPDWHB.js +0 -97
  418. package/chunks/agent-headless-B4JVD7UK.js +0 -87
  419. package/chunks/bridge-FKZTVIS3.js +0 -121
  420. package/chunks/channel-settings-store-4UFCLBBG.js +0 -117
  421. package/chunks/chunk-7DJCPZE3.js +0 -945
  422. package/chunks/chunk-CPBF7KYF.js +0 -51
  423. package/chunks/chunk-H72BQNM3.js +0 -645
  424. package/chunks/chunk-J2OSJFP3.js +0 -202
  425. package/chunks/chunk-K2OJUPOE.js +0 -78
  426. package/chunks/chunk-P3QQPMQA.js +0 -19
  427. package/chunks/chunk-RUGNCYNO.js +0 -699
  428. package/chunks/chunk-T26EAKDL.js +0 -13
  429. package/chunks/chunk-ZGXYO7DY.js +0 -3416
  430. package/chunks/chunk-ZYNTSXWK.js +0 -32
  431. package/chunks/config-utils-BBOCOGZW.js +0 -113
  432. package/chunks/contextCommand-EET67MQ2.js +0 -108
  433. package/chunks/daemon-status-provider-RFKZOK3S.js +0 -119
  434. package/chunks/daemon-trust-policy-DRZPFB4Q.js +0 -114
  435. package/chunks/deferred-core-runtime-BBVIOP24.js +0 -116
  436. package/chunks/earlyInputCapture-2JOMMNQ4.js +0 -109
  437. package/chunks/environment-MOZMPUHR.js +0 -131
  438. package/chunks/errors-DMPQVYJL.js +0 -115
  439. package/chunks/exitPlanMode-UE4FGCY4.js +0 -85
  440. package/chunks/handleAutoUpdate-SGXKTQM6.js +0 -111
  441. package/chunks/i18n-B42HKHKH.js +0 -126
  442. package/chunks/initializer-FB66WYR3.js +0 -115
  443. package/chunks/installationInfo-Y7AULNMX.js +0 -109
  444. package/chunks/list-2HWGSVRA.js +0 -118
  445. package/chunks/list-agents-DI3YFTDT.js +0 -80
  446. package/chunks/loadedSettingsAdapter-7Y7IEI6T.js +0 -112
  447. package/chunks/mcp-QGG5NMJJ.js +0 -112
  448. package/chunks/nonInteractiveCli-4LO2TL72.js +0 -186
  449. package/chunks/pidfile-JMF2CLMY.js +0 -113
  450. package/chunks/process-registry-PMJOA5CO.js +0 -172
  451. package/chunks/prompt-terminal-ledger-DCZO6S7C.js +0 -107
  452. package/chunks/resumeHistoryUtils-CZ4JRDVW.js +0 -120
  453. package/chunks/ripGrep-R6B6HWPX.js +0 -39
  454. package/chunks/runtime-TTIGSBM4.js +0 -150
  455. package/chunks/scheduled-tasks-QB4ZVUQS.js +0 -129
  456. package/chunks/scheduler-YRUG22M7.js +0 -124
  457. package/chunks/send-message-Y5I6NYAM.js +0 -295
  458. package/chunks/serve-MXXCDAQN.js +0 -120
  459. package/chunks/shell-6RTKZVMI.js +0 -95
  460. package/chunks/skill-settings-VA4XVYVL.js +0 -120
  461. package/chunks/spawnChannel-F6WVP723.js +0 -114
  462. package/chunks/standalone-update-RGILUQVK.js +0 -120
  463. package/chunks/terminal-image-renderer-SMQE46UJ.js +0 -116
  464. package/chunks/theme-manager-RFO5WWFF.js +0 -104
  465. package/chunks/total-session-admission-HTVTP4BS.js +0 -116
  466. package/chunks/trustedFolders-7OCNMUQE.js +0 -124
  467. package/chunks/updateCheck-7QBDXZRT.js +0 -120
  468. package/chunks/useAutoAcceptIndicator-UI4SNL2O.js +0 -122
  469. package/chunks/workspace-providers-status-PDFZWL5Q.js +0 -116
  470. package/chunks/workspace-registry-23R7XRB5.js +0 -125
  471. package/chunks/workspace-service-MUYO2QIC.js +0 -131
  472. package/chunks/workspace-skills-status-IKECTOOQ.js +0 -115
  473. package/chunks/write-file-GGRBB5TZ.js +0 -90
  474. package/web-shell/assets/channel-CENAhErJ.js +0 -1
  475. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
  476. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
  477. package/web-shell/assets/index-8hXIpvo4.js +0 -1865
  478. package/web-shell/assets/index-DclEv91i.css +0 -5
  479. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
  480. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
@@ -2,31 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseToolWriteOriginMeta
5
- } from "./chunk-T3WXYEZ4.js";
5
+ } from "./chunk-VGHZT6JR.js";
6
6
  import {
7
7
  MAX_CHILD_HEAP_MB,
8
8
  MIN_CHILD_HEAP_MB,
9
9
  recommendedChildShareMb
10
10
  } from "./chunk-UXEO7E3V.js";
11
11
  import {
12
- isLoopbackBind
13
- } from "./chunk-RXFQM6FQ.js";
14
- import {
15
- normalizeSessionIdForLookup
16
- } from "./chunk-ZEZKIS2K.js";
12
+ CLIENT_ID_RE,
13
+ MAX_CLIENT_ID_LENGTH
14
+ } from "./chunk-LAUEEBDL.js";
17
15
  import {
18
16
  isInternalWorkspaceRuntime
19
17
  } from "./chunk-NYWWQ437.js";
20
18
  import {
21
- CLIENT_MCP_OVER_WS_CONFIG_FLAG
22
- } from "./chunk-OZ6KS6KW.js";
23
- import {
24
- MAX_WORKSPACE_PATH_LENGTH,
25
- translateAndCheckAbsoluteWorkspacePath
26
- } from "./chunk-6PLDPT2C.js";
19
+ formatHostForAuthority,
20
+ isLoopbackBind
21
+ } from "./chunk-DMEUXLSS.js";
27
22
  import {
28
- writeStderrLine
29
- } from "./chunk-KGJGEEVR.js";
23
+ CLIENT_MCP_OVER_WS_CONFIG_FLAG
24
+ } from "./chunk-ZGCKTAL5.js";
30
25
  import {
31
26
  ROOT_CONTEXT,
32
27
  context,
@@ -779,8 +774,8 @@ var DeviceFlowRegistry = class {
779
774
  /**
780
775
  * For diagnostics / GET /workspace/auth/status: report only pending
781
776
  * flows. Terminal entries are an implementation detail of the SDK
782
- * reconnect path and shouldn't be enumerated to all bearer-token
783
- * holders.
777
+ * reconnect path and shouldn't be enumerated to all authorized status
778
+ * callers.
784
779
  */
785
780
  listPending() {
786
781
  const out = [];
@@ -925,6 +920,67 @@ function isDeepHealthQuery(raw) {
925
920
  }
926
921
  __name(isDeepHealthQuery, "isDeepHealthQuery");
927
922
 
923
+ // packages/cli/src/serve/server/self-origin.ts
924
+ init_esbuild_shims();
925
+ function installSelfOriginStripMiddleware(app, getPort, bind) {
926
+ let cachedStripPort = -1;
927
+ let cachedSelfOrigins = /* @__PURE__ */ new Set();
928
+ const boundHost = isLoopbackBind(bind) ? formatHostForAuthority(bind) : void 0;
929
+ app.use((req, _res, next) => {
930
+ const origin = req.headers.origin;
931
+ if (origin) {
932
+ const port = getPort();
933
+ if (port !== cachedStripPort) {
934
+ cachedStripPort = port;
935
+ cachedSelfOrigins = /* @__PURE__ */ new Set([
936
+ `http://127.0.0.1:${port}`,
937
+ `http://localhost:${port}`,
938
+ `http://[::1]:${port}`,
939
+ `http://host.docker.internal:${port}`,
940
+ `https://127.0.0.1:${port}`,
941
+ `https://localhost:${port}`,
942
+ `https://[::1]:${port}`,
943
+ `https://host.docker.internal:${port}`
944
+ ]);
945
+ if (boundHost) {
946
+ cachedSelfOrigins.add(`http://${boundHost}:${port}`);
947
+ cachedSelfOrigins.add(`https://${boundHost}:${port}`);
948
+ }
949
+ if (port === 80) {
950
+ for (const host of [
951
+ "127.0.0.1",
952
+ "localhost",
953
+ "[::1]",
954
+ "host.docker.internal"
955
+ ]) {
956
+ cachedSelfOrigins.add(`http://${host}`);
957
+ }
958
+ if (boundHost) {
959
+ cachedSelfOrigins.add(`http://${boundHost}`);
960
+ }
961
+ } else if (port === 443) {
962
+ for (const host of [
963
+ "127.0.0.1",
964
+ "localhost",
965
+ "[::1]",
966
+ "host.docker.internal"
967
+ ]) {
968
+ cachedSelfOrigins.add(`https://${host}`);
969
+ }
970
+ if (boundHost) {
971
+ cachedSelfOrigins.add(`https://${boundHost}`);
972
+ }
973
+ }
974
+ }
975
+ if (cachedSelfOrigins.has(origin)) {
976
+ delete req.headers.origin;
977
+ }
978
+ }
979
+ next();
980
+ });
981
+ }
982
+ __name(installSelfOriginStripMiddleware, "installSelfOriginStripMiddleware");
983
+
928
984
  // packages/cli/src/serve/acp-child-extra-args.ts
929
985
  init_esbuild_shims();
930
986
  function acpChildExtraArgs(opts) {
@@ -1084,6 +1140,16 @@ function parseAllowOriginPatterns(raw) {
1084
1140
  return { allowAny, origins };
1085
1141
  }
1086
1142
  __name(parseAllowOriginPatterns, "parseAllowOriginPatterns");
1143
+ function findNonLoopbackHttpOrigin(patterns) {
1144
+ for (const origin of patterns.origins) {
1145
+ const parsed = new URL(origin);
1146
+ if ((parsed.protocol === "http:" || parsed.protocol === "https:") && !isLoopbackBind(parsed.hostname)) {
1147
+ return origin;
1148
+ }
1149
+ }
1150
+ return void 0;
1151
+ }
1152
+ __name(findNonLoopbackHttpOrigin, "findNonLoopbackHttpOrigin");
1087
1153
  var MutableOriginAllowlist = class {
1088
1154
  static {
1089
1155
  __name(this, "MutableOriginAllowlist");
@@ -1179,6 +1245,7 @@ function buildPrimaryHostGate(bind, getPort) {
1179
1245
  }
1180
1246
  let cachedPort = -1;
1181
1247
  let cachedAllowed = /* @__PURE__ */ new Set();
1248
+ const boundHost = formatHostForAuthority(bind);
1182
1249
  const allowedFor = /* @__PURE__ */ __name((port) => {
1183
1250
  if (port === cachedPort) return cachedAllowed;
1184
1251
  cachedPort = port;
@@ -1186,13 +1253,15 @@ function buildPrimaryHostGate(bind, getPort) {
1186
1253
  `localhost:${port}`,
1187
1254
  `127.0.0.1:${port}`,
1188
1255
  `[::1]:${port}`,
1189
- `host.docker.internal:${port}`
1256
+ `host.docker.internal:${port}`,
1257
+ `${boundHost}:${port}`
1190
1258
  ]);
1191
1259
  if (port === 80 || port === 443) {
1192
1260
  cachedAllowed.add("localhost");
1193
1261
  cachedAllowed.add("127.0.0.1");
1194
1262
  cachedAllowed.add("[::1]");
1195
1263
  cachedAllowed.add("host.docker.internal");
1264
+ cachedAllowed.add(boundHost);
1196
1265
  }
1197
1266
  return cachedAllowed;
1198
1267
  }, "allowedFor");
@@ -1253,13 +1322,22 @@ function requestWasAuthenticated(req) {
1253
1322
  return req[AUTHENTICATED_REQUEST] === true;
1254
1323
  }
1255
1324
  __name(requestWasAuthenticated, "requestWasAuthenticated");
1325
+ function isTrustedLoopbackMode(input) {
1326
+ return input.loopbackBind && !input.tokenConfigured && !input.requireAuth;
1327
+ }
1328
+ __name(isTrustedLoopbackMode, "isTrustedLoopbackMode");
1329
+ function requestHasOperatorAuthority(req, trustedLoopbackMode) {
1330
+ return requestWasAuthenticated(req) || trustedLoopbackMode && listenerIdentityOf(req).kind === "primary";
1331
+ }
1332
+ __name(requestHasOperatorAuthority, "requestHasOperatorAuthority");
1256
1333
  function createMutationGate(deps) {
1257
1334
  const passthrough = /* @__PURE__ */ __name((_req, _res, next) => next(), "passthrough");
1258
- if (deps.requireAuth || deps.tokenConfigured) {
1335
+ if (deps.tokenConfigured) {
1259
1336
  return () => passthrough;
1260
1337
  }
1338
+ const trustedLoopbackMode = deps.trustedLoopbackMode === true && deps.requireAuth === false;
1261
1339
  const strictDenier = /* @__PURE__ */ __name((req, res, next) => {
1262
- if (requestWasAuthenticated(req)) {
1340
+ if (requestHasOperatorAuthority(req, trustedLoopbackMode)) {
1263
1341
  next();
1264
1342
  return;
1265
1343
  }
@@ -1490,7 +1568,17 @@ var SERVE_CAPABILITY_REGISTRY = {
1490
1568
  since: "v1",
1491
1569
  modes: ["workspace", "clean"]
1492
1570
  },
1571
+ // Explicit remember targets and scoped forget (`scope` parameter). Old
1572
+ // daemons silently ignore an unknown `scope`, so the SDK pre-flights the
1573
+ // matching tag before sending one. The sibling no-op behavior change — a
1574
+ // zero-write remember now fails `remember_no_update` instead of completing
1575
+ // with 'No memory files updated.' — is deliberately untagged: it changes a
1576
+ // task's terminal outcome, not the surface shape, and every client sees it
1577
+ // as a typed `failed` task status that cannot be mistaken for success.
1578
+ workspace_memory_remember_project_scope: { since: "v1" },
1579
+ workspace_memory_remember_user_scope: { since: "v1" },
1493
1580
  workspace_memory_forget: { since: "v1" },
1581
+ workspace_memory_forget_scope: { since: "v1" },
1494
1582
  workspace_memory_dream: { since: "v1" },
1495
1583
  // Workspace agents CRUD (`GET/POST /workspace/agents` +
1496
1584
  // `GET/POST/DELETE /workspace/agents/:agentType`). Wraps
@@ -1516,6 +1604,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1516
1604
  session_metadata: { since: "v1" },
1517
1605
  session_organization: { since: "v1" },
1518
1606
  session_export: { since: "v1" },
1607
+ standalone_sessions_v1: { since: "v1" },
1519
1608
  session_transcript: { since: "v1" },
1520
1609
  session_transcript_pagination: { since: "v1" },
1521
1610
  // Daemon supports the MCP client guardrail surface: an in-process
@@ -1582,8 +1671,8 @@ var SERVE_CAPABILITY_REGISTRY = {
1582
1671
  // unregistered — the toggle takes effect on the next ACP child spawn
1583
1672
  // (`tools.disabled` is consulted at `Config` construction time).
1584
1673
  workspace_tool_toggle: { since: "v1" },
1585
- workspace_skill_toggle: { since: "v1" },
1586
- workspace_skill_batch_toggle: { since: "v1" },
1674
+ workspace_skill_settings_toggle: { since: "v1" },
1675
+ workspace_skill_settings_batch_toggle: { since: "v1" },
1587
1676
  extension_batch_activation_v2: { since: "v1" },
1588
1677
  workspace_skill_manage: { since: "v1" },
1589
1678
  workspace_settings: { since: "v1" },
@@ -1601,13 +1690,12 @@ var SERVE_CAPABILITY_REGISTRY = {
1601
1690
  // Workspace trust policy changes rebuild the affected runtime generation
1602
1691
  // without restarting the daemon. V2 trust status exposes convergence.
1603
1692
  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
1693
+ // `POST /workspace/init` scaffolds an empty `QWEN.md` (or the
1694
+ // workspace `context.fileName` value injected as `contextFilename`)
1695
+ // at the bound workspace root. Body: `{force?: boolean}`. Default
1607
1696
  // 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`.
1697
+ // overwrites. Mechanical only — does NOT call the LLM. To AI-fill the
1698
+ // file, the caller should follow up with `POST /session/:id/prompt`.
1611
1699
  workspace_init: { since: "v1" },
1612
1700
  // `POST /workspace/setup-github` installs the fixed
1613
1701
  // qwen-code-action workflow set into the bound workspace after
@@ -1651,8 +1739,8 @@ var SERVE_CAPABILITY_REGISTRY = {
1651
1739
  session_btw: { since: "v1" },
1652
1740
  // Direct daemon-side shell execution for an existing session.
1653
1741
  // Advertised CONDITIONALLY: operators must explicitly enable it and
1654
- // configure bearer auth. Clients must still send a session-bound
1655
- // X-Qwen-Client-Id when calling the route.
1742
+ // either configure bearer auth or use trusted-loopback mode. Clients must
1743
+ // still send a session-bound X-Qwen-Client-Id when calling the route.
1656
1744
  session_shell_command: { since: "v1" },
1657
1745
  // Daemon hosts a workspace-shared MCP transport
1658
1746
  // pool (`QwenAgent.mcpPool`); `GET /workspace/mcp` reflects pool-level
@@ -1750,6 +1838,13 @@ var SERVE_CAPABILITY_REGISTRY = {
1750
1838
  workspace_display_name: { since: "v1" },
1751
1839
  scratch_workspace_registration: { since: "v1" },
1752
1840
  workspace_runtime_removal: { since: "v1" },
1841
+ // A native OS directory picker can be opened on the daemon host
1842
+ // (osascript on macOS, PowerShell on Windows, zenity on a Linux host
1843
+ // with a display). Headless hosts omit the tag so clients hide the
1844
+ // Browse affordance instead of surfacing a guaranteed picker failure.
1845
+ native_directory_picker: { since: "v1" },
1846
+ // Workspace-owned runtime lifecycle status and explicit on-demand startup.
1847
+ workspace_runtime: { since: "v1" },
1753
1848
  // Workspace-qualified core REST routes under `/workspaces/:workspace/...`.
1754
1849
  // Covers core file read/write/upload, status/permissions/trust/lifecycle/MCP/tool,
1755
1850
  // memory, workspace agent CRUD, and persisted session organization surfaces.
@@ -1773,7 +1868,9 @@ var SERVE_CAPABILITY_REGISTRY = {
1773
1868
  // projections. This is additive to the legacy primary-workspace
1774
1869
  // `workspace_extensions` contract.
1775
1870
  extension_management_v2: { since: "v1" },
1871
+ extension_state: { since: "v1" },
1776
1872
  extension_git_credentials: { since: "v1" },
1873
+ extension_local_path_install: { since: "v1" },
1777
1874
  // Workspace-qualified, daemon-local persisted transcript paging. The tag is
1778
1875
  // unconditional because the route also serves a trusted single-workspace
1779
1876
  // primary; authorization is evaluated for the selected runtime per request.
@@ -1839,10 +1936,15 @@ var SERVE_CAPABILITY_REGISTRY = {
1839
1936
  // WebShell daemon with native Host integration and the hot-applied enabled
1840
1937
  // gate. `/live/status` remains the dynamic readiness surface for the Host,
1841
1938
  // permissions, self-checks, and provider reachability.
1842
- realtime_voice: { since: "v1" }
1939
+ realtime_voice: { since: "v1" },
1940
+ web_terminal: { since: "v1" }
1843
1941
  };
1844
1942
  var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1845
1943
  ["require_auth", (toggles) => toggles.requireAuth === true],
1944
+ [
1945
+ "standalone_sessions_v1",
1946
+ (toggles) => toggles.standaloneSessionsAvailable === true
1947
+ ],
1846
1948
  ["mcp_workspace_pool", (toggles) => toggles.mcpPoolActive === true],
1847
1949
  ["mcp_pool_restart", (toggles) => toggles.mcpPoolActive === true],
1848
1950
  [
@@ -1924,6 +2026,14 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1924
2026
  "workspace_runtime_removal",
1925
2027
  (toggles) => toggles.workspaceRuntimeRemovalAvailable === true
1926
2028
  ],
2029
+ [
2030
+ "native_directory_picker",
2031
+ (toggles) => toggles.nativeDirectoryPickerAvailable === true
2032
+ ],
2033
+ [
2034
+ "workspace_runtime",
2035
+ (toggles) => toggles.workspaceRuntimeAvailable === true
2036
+ ],
1927
2037
  [
1928
2038
  "workspace_qualified_acp",
1929
2039
  // The plural routes are pre-mounted for workspaces registered after app
@@ -1960,7 +2070,8 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1960
2070
  [
1961
2071
  "realtime_voice",
1962
2072
  (toggles) => toggles.acpHttpEnabled === true && toggles.realtimeVoiceEnabled === true
1963
- ]
2073
+ ],
2074
+ ["web_terminal", (toggles) => toggles.acpHttpEnabled === true]
1964
2075
  ]);
1965
2076
  var SERVE_FEATURES = Object.freeze(
1966
2077
  Object.keys(SERVE_CAPABILITY_REGISTRY)
@@ -1990,6 +2101,118 @@ function getServeProtocolVersions() {
1990
2101
  }
1991
2102
  __name(getServeProtocolVersions, "getServeProtocolVersions");
1992
2103
 
2104
+ // packages/cli/src/serve/native-directory-picker.ts
2105
+ init_esbuild_shims();
2106
+ import { execFile } from "node:child_process";
2107
+ import { accessSync, constants, statSync } from "node:fs";
2108
+ import { delimiter, join } from "node:path";
2109
+ import { promisify } from "node:util";
2110
+ var execFileAsync = promisify(execFile);
2111
+ var PICKER_TIMEOUT_MS = 3e5;
2112
+ var NativeDirectoryPickerUnavailableError = class extends Error {
2113
+ static {
2114
+ __name(this, "NativeDirectoryPickerUnavailableError");
2115
+ }
2116
+ };
2117
+ function isNativeDirectoryPickerAvailable(env = process.env, macOsSessionUids = process.platform === "darwin" ? readMacOsSessionUids() : void 0) {
2118
+ if (process.platform === "darwin") {
2119
+ return macOsSessionUids?.processUid !== void 0 && macOsSessionUids.processUid > 0 && macOsSessionUids.consoleUid === macOsSessionUids.processUid && !env["SSH_CONNECTION"] && !env["SSH_TTY"];
2120
+ }
2121
+ if (process.platform === "win32") {
2122
+ const sessionName = env["SESSIONNAME"]?.trim();
2123
+ return Boolean(sessionName && sessionName.toLowerCase() !== "services");
2124
+ }
2125
+ if (process.platform !== "linux") return false;
2126
+ if (!env["DISPLAY"] && !env["WAYLAND_DISPLAY"]) return false;
2127
+ return (env["PATH"] ?? "").split(delimiter).some((dir) => dir !== "" && isExecutableFile(join(dir, "zenity")));
2128
+ }
2129
+ __name(isNativeDirectoryPickerAvailable, "isNativeDirectoryPickerAvailable");
2130
+ function readMacOsSessionUids() {
2131
+ try {
2132
+ return {
2133
+ processUid: process.getuid?.(),
2134
+ consoleUid: statSync("/dev/console").uid
2135
+ };
2136
+ } catch {
2137
+ return {};
2138
+ }
2139
+ }
2140
+ __name(readMacOsSessionUids, "readMacOsSessionUids");
2141
+ function isExecutableFile(file) {
2142
+ try {
2143
+ if (!statSync(file).isFile()) return false;
2144
+ accessSync(file, constants.X_OK);
2145
+ return true;
2146
+ } catch {
2147
+ return false;
2148
+ }
2149
+ }
2150
+ __name(isExecutableFile, "isExecutableFile");
2151
+ async function pickNativeDirectory(signal) {
2152
+ try {
2153
+ if (process.platform === "darwin") {
2154
+ const script = [
2155
+ "const app = Application.currentApplication();",
2156
+ "app.includeStandardAdditions = true;",
2157
+ "app.chooseFolder({",
2158
+ 'withPrompt: "Select a workspace folder",',
2159
+ "}).toString();"
2160
+ ].join(" ");
2161
+ const { stdout } = await execFileAsync(
2162
+ "osascript",
2163
+ ["-l", "JavaScript", "-e", script],
2164
+ { timeout: PICKER_TIMEOUT_MS, signal }
2165
+ );
2166
+ return stdout.trim() || void 0;
2167
+ }
2168
+ if (process.platform === "win32") {
2169
+ const script = [
2170
+ "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8;",
2171
+ "Add-Type -AssemblyName System.Windows.Forms;",
2172
+ "$dialog = New-Object System.Windows.Forms.FolderBrowserDialog;",
2173
+ "if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {",
2174
+ "[Console]::Out.Write($dialog.SelectedPath)",
2175
+ "}"
2176
+ ].join(" ");
2177
+ const { stdout } = await execFileAsync(
2178
+ "powershell.exe",
2179
+ ["-NoProfile", "-STA", "-Command", script],
2180
+ { timeout: PICKER_TIMEOUT_MS, signal }
2181
+ );
2182
+ return stdout.trim() || void 0;
2183
+ }
2184
+ if (process.platform === "linux") {
2185
+ const { stdout } = await execFileAsync(
2186
+ "zenity",
2187
+ [
2188
+ "--file-selection",
2189
+ "--directory",
2190
+ "--title=Select a workspace folder"
2191
+ ],
2192
+ { timeout: PICKER_TIMEOUT_MS, signal }
2193
+ );
2194
+ return stdout.trim() || void 0;
2195
+ }
2196
+ } catch (error) {
2197
+ const result = error;
2198
+ if (result.killed) {
2199
+ return void 0;
2200
+ }
2201
+ if (process.platform === "darwin" && (result.stderr?.includes("(-128)") || result.stderr?.includes("User canceled")) || // Zenity exits 1 both for a deliberate cancel and for "cannot open
2202
+ // display" on headless Linux; only the former is a silent cancel.
2203
+ process.platform === "linux" && result.code === 1 && !result.stderr?.includes("cannot open display")) {
2204
+ return void 0;
2205
+ }
2206
+ throw new NativeDirectoryPickerUnavailableError(
2207
+ error instanceof Error ? error.message : String(error)
2208
+ );
2209
+ }
2210
+ throw new NativeDirectoryPickerUnavailableError(
2211
+ `Native directory picker is not supported on ${process.platform}`
2212
+ );
2213
+ }
2214
+ __name(pickNativeDirectory, "pickNativeDirectory");
2215
+
1993
2216
  // packages/cli/src/serve/types.ts
1994
2217
  init_esbuild_shims();
1995
2218
  var CAPABILITIES_SCHEMA_VERSION = 1;
@@ -2002,7 +2225,7 @@ import {
2002
2225
  basename,
2003
2226
  dirname,
2004
2227
  isAbsolute,
2005
- join,
2228
+ join as join2,
2006
2229
  relative,
2007
2230
  resolve
2008
2231
  } from "node:path";
@@ -2080,7 +2303,7 @@ async function revalidateManagedScratchRoot(root) {
2080
2303
  __name(revalidateManagedScratchRoot, "revalidateManagedScratchRoot");
2081
2304
  async function createManagedScratchDirectory(root) {
2082
2305
  await revalidateManagedScratchRoot(root);
2083
- const created = await mkdtemp(join(root.canonicalRoot, "scratch-"));
2306
+ const created = await mkdtemp(join2(root.canonicalRoot, "scratch-"));
2084
2307
  const canonical = realpathSync.native(created);
2085
2308
  if (!isManagedScratchChild(canonical, root.canonicalRoot)) {
2086
2309
  throw new Error("Managed scratch directory escaped its accepted root");
@@ -2393,235 +2616,6 @@ function installServeAppLifecycle(app, lifecycle = new ServeAppLifecycleControll
2393
2616
  }
2394
2617
  __name(installServeAppLifecycle, "installServeAppLifecycle");
2395
2618
 
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
2619
  // packages/cli/src/serve/rate-limit.ts
2626
2620
  init_esbuild_shims();
2627
2621
  var MAX_BUCKETS = 1e4;
@@ -3281,6 +3275,7 @@ async function buildDaemonStatusResponse(detail, input) {
3281
3275
  writerIdleTimeoutMs: positiveFiniteOrNull(input.opts.writerIdleTimeoutMs),
3282
3276
  channelIdleTimeoutMs: bridgeSnapshot.limits.channelIdleTimeoutMs,
3283
3277
  sessionIdleTimeoutMs: bridgeSnapshot.limits.sessionIdleTimeoutMs,
3278
+ sessionPromptSettledCloseGraceMs: bridgeSnapshot.limits.sessionPromptSettledCloseGraceMs,
3284
3279
  acpConnectionCap: acpSnapshot?.connectionCap ?? null,
3285
3280
  acpPreAttachMaxFramesPerStream: acpSnapshot !== void 0 ? ACP_PRE_ATTACH_MAX_FRAMES_PER_STREAM : null,
3286
3281
  acpPreAttachMaxFramesPerConnection: acpSnapshot !== void 0 ? ACP_PRE_ATTACH_MAX_FRAMES_PER_CONNECTION : null,
@@ -4145,6 +4140,7 @@ export {
4145
4140
  createBridgeFileSystemAdapter,
4146
4141
  PathMutexRegistry,
4147
4142
  isDeepHealthQuery,
4143
+ installSelfOriginStripMiddleware,
4148
4144
  acpChildExtraArgs,
4149
4145
  CredentialStore,
4150
4146
  singleTokenCredentials,
@@ -4153,17 +4149,22 @@ export {
4153
4149
  listenerIdentityOfSocket,
4154
4150
  denyBrowserOriginCors,
4155
4151
  parseAllowOriginPatterns,
4152
+ findNonLoopbackHttpOrigin,
4156
4153
  MutableOriginAllowlist,
4157
4154
  allowOriginCors,
4158
4155
  hostAllowlist,
4159
4156
  bearerAuth,
4160
- requestWasAuthenticated,
4157
+ isTrustedLoopbackMode,
4158
+ requestHasOperatorAuthority,
4161
4159
  createMutationGate,
4162
4160
  ClientMcpSenderRegistry,
4163
4161
  createClientMcpServerProvider,
4164
4162
  SERVE_CAPABILITY_REGISTRY,
4165
4163
  getAdvertisedServeFeatures,
4166
4164
  getServeProtocolVersions,
4165
+ NativeDirectoryPickerUnavailableError,
4166
+ isNativeDirectoryPickerAvailable,
4167
+ pickNativeDirectory,
4167
4168
  CAPABILITIES_SCHEMA_VERSION,
4168
4169
  isManagedScratchChild,
4169
4170
  isScratchRootCompatible,
@@ -4176,26 +4177,6 @@ export {
4176
4177
  conversationRootCompromisedError,
4177
4178
  ServeAppLifecycleController,
4178
4179
  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
4180
  createRateLimiter,
4200
4181
  setRateLimiter,
4201
4182
  getRateLimiter,