@qwen-code/qwen-code 0.22.3 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (497) hide show
  1. package/README.md +30 -0
  2. package/bundled/computer-use/SKILL.md +116 -180
  3. package/bundled/goal-draft/SKILL.md +5 -1
  4. package/bundled/qc-helper/docs/common-workflow.md +32 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +6 -6
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +8 -2
  7. package/bundled/qc-helper/docs/configuration/settings.md +63 -58
  8. package/bundled/qc-helper/docs/extension/introduction.md +1 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  11. package/bundled/qc-helper/docs/features/auto-mode.md +34 -17
  12. package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
  13. package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
  14. package/bundled/qc-helper/docs/features/channels/overview.md +5 -2
  15. package/bundled/qc-helper/docs/features/code-review.md +2 -2
  16. package/bundled/qc-helper/docs/features/commands.md +79 -1
  17. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  18. package/bundled/qc-helper/docs/features/goals.md +9 -3
  19. package/bundled/qc-helper/docs/features/headless.md +16 -1
  20. package/bundled/qc-helper/docs/features/hooks.md +8 -3
  21. package/bundled/qc-helper/docs/features/memory.md +1 -0
  22. package/bundled/qc-helper/docs/features/output-styles.md +38 -0
  23. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +17 -7
  24. package/bundled/qc-helper/docs/qwen-serve.md +74 -55
  25. package/bundled/review/SKILL.md +16 -7
  26. package/bundled/review/references/posting.md +3 -3
  27. package/chunks/MaxSizedBox-B3D7545A.js +111 -0
  28. package/chunks/{StandaloneSessionPicker-2FJAOLGG.js → StandaloneSessionPicker-QUMO4LLQ.js} +88 -86
  29. package/chunks/{acp-startup-profiler-GNYAL6LI.js → acp-startup-profiler-M4X5F3VK.js} +2 -2
  30. package/chunks/{acpAgent-2ZMIJAFV.js → acpAgent-2GTFCIEP.js} +2041 -444
  31. package/chunks/{agent-X5WX3L2I.js → agent-XKF5SZWU.js} +46 -46
  32. package/chunks/agent-headless-OC2IB55D.js +85 -0
  33. package/chunks/{anthropicContentGenerator-YVTB6QX7.js → anthropicContentGenerator-L76MR5OR.js} +53 -20
  34. package/chunks/{artifact-tool-XSMPHZBT.js → artifact-tool-MYCL2QCS.js} +3 -4
  35. package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-THQZMG44.js} +45 -7
  36. package/chunks/bridge-IHSBI2YJ.js +118 -0
  37. package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
  38. package/chunks/{ca-7HPYOYSZ.js → ca-BNU7YNDE.js} +3 -0
  39. package/chunks/{channel-management-service-HQ6KDS7C.js → channel-management-service-4MTCEGJB.js} +4 -4
  40. package/chunks/channel-settings-store-BVKWAI2T.js +121 -0
  41. package/chunks/{channel-worker-group-6NA6BBZV.js → channel-worker-group-47F4ISUZ.js} +7 -7
  42. package/chunks/{channel-worker-manager-NEZ2J6RK.js → channel-worker-manager-I5Y44GYR.js} +51 -10
  43. package/chunks/{channel-worker-supervisor-FKU7DIHJ.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
  44. package/chunks/{chunk-PPKZ7JOE.js → chunk-22UH7VTP.js} +1 -1
  45. package/chunks/chunk-24FVUD5P.js +49 -0
  46. package/chunks/{chunk-MZCJWS5Y.js → chunk-2M3EWQNG.js} +20 -0
  47. package/chunks/{chunk-7T52W4SW.js → chunk-32LU3APX.js} +1 -1
  48. package/chunks/{chunk-42IDLQWS.js → chunk-373DQUVA.js} +48 -13
  49. package/chunks/{chunk-MSBO7X2W.js → chunk-37JFWFCD.js} +1 -1
  50. package/chunks/{chunk-3JXM2CVW.js → chunk-3AKCBZVW.js} +3 -3
  51. package/chunks/{chunk-TVC6HQ2U.js → chunk-3JQZVCBI.js} +2 -2
  52. package/chunks/{chunk-2LNNVAUV.js → chunk-3L724BJ5.js} +246 -15
  53. package/chunks/{chunk-E7REAOTN.js → chunk-47ECGEJC.js} +4 -0
  54. package/chunks/{chunk-WNPDGUJO.js → chunk-47RYEQW5.js} +2 -3
  55. package/chunks/{chunk-TZBSGJ6C.js → chunk-4BGDFKQE.js} +7 -7
  56. package/chunks/{chunk-PZ66FRIC.js → chunk-4F7GQGXB.js} +11772 -4773
  57. package/chunks/{chunk-DMLVSW7L.js → chunk-4HVH57J3.js} +713 -9
  58. package/chunks/{chunk-CMHFCLBU.js → chunk-4LIFGNI4.js} +1 -1
  59. package/chunks/{chunk-3SZC4VP4.js → chunk-4M24B5J5.js} +88 -49
  60. package/chunks/{chunk-BOWFGCEU.js → chunk-4PSDSCW3.js} +3 -3
  61. package/chunks/chunk-4UANMABT.js +1026 -0
  62. package/chunks/{chunk-M3QRM3DE.js → chunk-54C6PIGT.js} +5 -5
  63. package/chunks/{chunk-HP5LR5HL.js → chunk-5EIOJGCR.js} +4 -4
  64. package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
  65. package/chunks/chunk-5IENVM7Z.js +35 -0
  66. package/chunks/{chunk-I6LYRJPB.js → chunk-5Q5RC2WE.js} +2 -2
  67. package/chunks/{chunk-WGY3AVGM.js → chunk-5RTTI4GE.js} +79 -5
  68. package/chunks/{chunk-KID24ZFN.js → chunk-64QH2UC6.js} +13 -1
  69. package/chunks/{chunk-MF7HCQWZ.js → chunk-65HWLGA7.js} +3 -3
  70. package/chunks/{chunk-OU5APVWO.js → chunk-6A2D4QSO.js} +13 -7
  71. package/chunks/chunk-6HUXPLB5.js +110 -0
  72. package/chunks/{chunk-VQUGEVGR.js → chunk-7IKXTGZT.js} +1 -1
  73. package/chunks/{chunk-UTLCH2FK.js → chunk-7JMGTOH7.js} +437 -136
  74. package/chunks/{chunk-7LOELM2I.js → chunk-7RB56BRJ.js} +3 -3
  75. package/chunks/{chunk-NIFYWDYN.js → chunk-7TBU7PU2.js} +1 -1
  76. package/chunks/{chunk-V2NDP3I4.js → chunk-7XL4WRXM.js} +2 -2
  77. package/chunks/chunk-ADJD4LZF.js +210 -0
  78. package/chunks/{chunk-T7KMERIX.js → chunk-ADYN7P2Y.js} +2 -2
  79. package/chunks/{chunk-TPI7O7HR.js → chunk-AHYTURFB.js} +1 -1
  80. package/chunks/{chunk-LUEHOUHM.js → chunk-AI35S34R.js} +3 -3
  81. package/chunks/{chunk-CIZCL2MW.js → chunk-ALUYNJPM.js} +1486 -2172
  82. package/chunks/{chunk-ABS25QER.js → chunk-ANVG3BVV.js} +1 -1
  83. package/chunks/{chunk-6ZPDLGHN.js → chunk-AZJLY2XZ.js} +5 -5
  84. package/chunks/{chunk-A3LWD5MK.js → chunk-BA4WJC4L.js} +1 -1
  85. package/chunks/{chunk-W3JH33JE.js → chunk-BFY33IB4.js} +18 -10
  86. package/chunks/{chunk-N4X7G4J2.js → chunk-BHTYRHJF.js} +1 -1
  87. package/chunks/{chunk-TEBDFQBZ.js → chunk-BJXCYUGM.js} +11 -6
  88. package/chunks/{chunk-7VMIMAVB.js → chunk-C2VWOXHS.js} +8 -8
  89. package/chunks/{chunk-XHF7WQ6B.js → chunk-C4TIXFDZ.js} +16 -5
  90. package/chunks/chunk-CHEIIBT3.js +40 -0
  91. package/chunks/chunk-CVX63TFJ.js +348 -0
  92. package/chunks/{chunk-RXFQM6FQ.js → chunk-DMEUXLSS.js} +16 -1
  93. package/chunks/{chunk-EKSCLBBF.js → chunk-DQCKVAF5.js} +23 -5
  94. package/chunks/{chunk-734C6JGI.js → chunk-DSX7KQPM.js} +5195 -666
  95. package/chunks/{chunk-4CMJKUND.js → chunk-DTVQSSNM.js} +67 -2
  96. package/chunks/{chunk-BKWNKLZB.js → chunk-DYTW3QVG.js} +24 -9
  97. package/chunks/{chunk-C2X7KY45.js → chunk-E4JNFXNI.js} +3 -3
  98. package/chunks/{chunk-UHQFIS7N.js → chunk-EAHOJF6V.js} +28 -4
  99. package/chunks/{chunk-YLSQLSH7.js → chunk-EBDGRBZX.js} +24 -16
  100. package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
  101. package/chunks/{chunk-6DIGWMGT.js → chunk-EIJT2PQ6.js} +2 -2
  102. package/chunks/{chunk-4TT3IVGA.js → chunk-EIY7SUPZ.js} +1 -1
  103. package/chunks/{chunk-XQFT3QUF.js → chunk-ENYUKMFK.js} +1 -1
  104. package/chunks/{chunk-ZWJDJ6RU.js → chunk-EVFDRBUM.js} +157 -153
  105. package/chunks/{chunk-4VPCTGH6.js → chunk-EWRW2WQC.js} +15 -9
  106. package/chunks/{chunk-VBCPNIQD.js → chunk-F33GFWPR.js} +47 -184
  107. package/chunks/{chunk-ERFDKH32.js → chunk-F47DITLZ.js} +19 -8
  108. package/chunks/{chunk-73RM4POK.js → chunk-F7NF2IOE.js} +7 -7
  109. package/chunks/{chunk-EB6QRGHM.js → chunk-FD5SJOWT.js} +10 -7
  110. package/chunks/{chunk-SS5SDCD3.js → chunk-FRICLXCZ.js} +7 -7
  111. package/chunks/{chunk-NU7RKEZR.js → chunk-FUO5V5KI.js} +14 -7
  112. package/chunks/{chunk-G6FECKTJ.js → chunk-G5PBOQWI.js} +9 -6
  113. package/chunks/{chunk-CAJTKR6W.js → chunk-G7HBEEX7.js} +15 -9
  114. package/chunks/{chunk-4QHPPXK2.js → chunk-GB4UKWY5.js} +2 -2
  115. package/chunks/{chunk-QYMAKPY5.js → chunk-GH2S4GD5.js} +350 -12
  116. package/chunks/{chunk-LHBUKJG2.js → chunk-GXUTFQXK.js} +28 -25
  117. package/chunks/{chunk-KJO2LBUK.js → chunk-H43PSPYS.js} +5 -5
  118. package/chunks/{chunk-XSG6G3G6.js → chunk-HJBHMANB.js} +12 -14
  119. package/chunks/chunk-HRPFBHW7.js +336 -0
  120. package/chunks/{chunk-6PJOTWAN.js → chunk-HT5S5TRQ.js} +1 -1
  121. package/chunks/{chunk-HCOBAG2L.js → chunk-HWVUSYSN.js} +3 -8
  122. package/chunks/{chunk-2OUD5T67.js → chunk-I2TMJPCV.js} +213 -185
  123. package/chunks/{chunk-CLWO3B77.js → chunk-I4NRYS6A.js} +11 -11
  124. package/chunks/{chunk-V7EESTJV.js → chunk-I5N4EAS6.js} +1 -1
  125. package/chunks/{chunk-K5KXUXWC.js → chunk-IG4W5SJR.js} +3 -3
  126. package/chunks/{chunk-FROAFEFB.js → chunk-IPATA3T2.js} +3 -3
  127. package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
  128. package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
  129. package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
  130. package/chunks/{chunk-QFCDF5PL.js → chunk-JHN7UIDW.js} +1 -1
  131. package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
  132. package/chunks/{chunk-CQH5KTKC.js → chunk-JR42V4UY.js} +1 -1
  133. package/chunks/chunk-JS73NNWF.js +30 -0
  134. package/chunks/{chunk-NV55WWD6.js → chunk-JUARRUMA.js} +802 -2011
  135. package/chunks/chunk-JX6XHPTX.js +26 -0
  136. package/chunks/{chunk-5JTIYALA.js → chunk-JZWOCUZ3.js} +1 -1
  137. package/chunks/{chunk-P2G476QN.js → chunk-KEVYJSI4.js} +13 -13
  138. package/chunks/{chunk-B466ZSHZ.js → chunk-KFN2IZYR.js} +3 -3
  139. package/chunks/{chunk-JWALNCLT.js → chunk-KGV55H53.js} +1 -1
  140. package/chunks/{chunk-23RFD54N.js → chunk-KHP66DFN.js} +1 -1
  141. package/chunks/{chunk-2SXSLSQE.js → chunk-KM3XVTMO.js} +12 -6
  142. package/chunks/{chunk-GPGU4S2N.js → chunk-KMU3ZHH4.js} +3 -3
  143. package/chunks/chunk-KOGW3YWJ.js +2054 -0
  144. package/chunks/{chunk-NMOD2FXQ.js → chunk-L26ONV2Y.js} +8 -8
  145. package/chunks/chunk-L34XSHIZ.js +28 -0
  146. package/chunks/{chunk-SEONHUS3.js → chunk-LAUEEBDL.js} +2 -0
  147. package/chunks/{chunk-3WK3QDNV.js → chunk-LB3WQQJK.js} +2 -2
  148. package/chunks/{chunk-URE3QBBB.js → chunk-LEPCWS5A.js} +3 -3
  149. package/chunks/{chunk-36GSQ3MM.js → chunk-LHBNR6EU.js} +2 -2
  150. package/chunks/{chunk-V4264FEG.js → chunk-LKODFJRD.js} +1 -1
  151. package/chunks/{chunk-PADPMMYM.js → chunk-LOBDDFYK.js} +5 -29
  152. package/chunks/{chunk-BXDAPVQU.js → chunk-LU77UT4D.js} +28 -4
  153. package/chunks/{chunk-RFIDDFAL.js → chunk-M4KFODIP.js} +1 -1
  154. package/chunks/{chunk-CFJY4DGX.js → chunk-M4LBBSVP.js} +4 -2
  155. package/chunks/{chunk-KYWTPLBJ.js → chunk-MOF6VZN2.js} +2 -2
  156. package/chunks/{chunk-DJPASAUV.js → chunk-MP6YZ4RK.js} +4829 -3638
  157. package/chunks/{chunk-T26EAKDL.js → chunk-N2TNM3QB.js} +2 -6
  158. package/chunks/{chunk-2TNL5KPM.js → chunk-N4QWUPDM.js} +7 -0
  159. package/chunks/{chunk-7S226YTK.js → chunk-NFIDVZND.js} +11 -1
  160. package/chunks/{chunk-ZEYFMJQA.js → chunk-NQ4L2CMD.js} +83 -18
  161. package/chunks/{chunk-ZZUKP7HV.js → chunk-NRL5CUZT.js} +1 -1
  162. package/chunks/{chunk-WXEA74YB.js → chunk-NSUKQ4DN.js} +9 -3
  163. package/chunks/chunk-NUHOLAQ6.js +59 -0
  164. package/chunks/{chunk-DJEZ55D4.js → chunk-NVVJTUSL.js} +336 -140
  165. package/chunks/{chunk-3XKLXHGK.js → chunk-NXKOVOM5.js} +9 -9
  166. package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
  167. package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
  168. package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
  169. package/chunks/{chunk-PDQGMSZK.js → chunk-ODZF64DM.js} +1 -1
  170. package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
  171. package/chunks/{chunk-36LGBEM6.js → chunk-OHU2H5CS.js} +1 -1
  172. package/chunks/{chunk-JB4JIVTJ.js → chunk-OKTNXDVO.js} +1 -1
  173. package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
  174. package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
  175. package/chunks/chunk-OSSTATJF.js +1310 -0
  176. package/chunks/chunk-P6UIF2OW.js +400 -0
  177. package/chunks/{chunk-U54AYGEC.js → chunk-PB7JBAHF.js} +15 -49
  178. package/chunks/{chunk-Y5S7LBOZ.js → chunk-PCRBLMIN.js} +17 -3
  179. package/chunks/{chunk-WAOIHTJS.js → chunk-PDAKFU7M.js} +1 -1
  180. package/chunks/{chunk-YTDVNSUQ.js → chunk-QAK5475D.js} +1 -1
  181. package/chunks/{chunk-ST5MDGH3.js → chunk-QI27MKNQ.js} +27 -19
  182. package/chunks/{chunk-MK2GIB46.js → chunk-QJGYU5PG.js} +1 -1
  183. package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
  184. package/chunks/{chunk-MQM5PJML.js → chunk-QJVZLILI.js} +1 -1
  185. package/chunks/{chunk-B5PHIJGI.js → chunk-QKDNS6FU.js} +2 -2
  186. package/chunks/{chunk-ZU4UDIWX.js → chunk-QQD2GART.js} +15 -9
  187. package/chunks/{chunk-62GQFYID.js → chunk-RAFQIHN2.js} +3 -3
  188. package/chunks/{chunk-MO3FC2WT.js → chunk-RJUVTJEZ.js} +1 -1
  189. package/chunks/{chunk-M6FOJXW3.js → chunk-RKW36UWC.js} +1 -1
  190. package/chunks/{chunk-GBJBJ4HX.js → chunk-RM4WT2XB.js} +4 -26
  191. package/chunks/{chunk-VGIFXISB.js → chunk-RN3YGDCA.js} +7 -5
  192. package/chunks/{chunk-DYXFD5RO.js → chunk-S2T7H5MI.js} +1 -1
  193. package/chunks/{chunk-FTF2YIZ5.js → chunk-S6H3ELPG.js} +1 -1
  194. package/chunks/{chunk-4NDLQAY2.js → chunk-SI7WDR3U.js} +524 -16
  195. package/chunks/{chunk-2YOHKHYR.js → chunk-SRF4KTAG.js} +6 -6
  196. package/chunks/{chunk-ZZMSC3RG.js → chunk-STCVJXQB.js} +24 -24
  197. package/chunks/{chunk-ST5V3ZOC.js → chunk-SULZPKTA.js} +3 -3
  198. package/chunks/{chunk-6X7EU5TI.js → chunk-SX2QIMJV.js} +9 -7
  199. package/chunks/{chunk-V5J4J5TP.js → chunk-TJYRTS4S.js} +2 -20
  200. package/chunks/{chunk-C3PEFRKD.js → chunk-TMKTOTMQ.js} +5 -5
  201. package/chunks/{chunk-ISKH4QX3.js → chunk-TQHPVKO6.js} +4 -4
  202. package/chunks/{chunk-HVC3PNVC.js → chunk-TSZSGQ3N.js} +1 -1
  203. package/chunks/{chunk-ICURCKIU.js → chunk-U4DJ5XB3.js} +594 -91
  204. package/chunks/{chunk-TTX2JUE6.js → chunk-U6D2PPMN.js} +1 -1
  205. package/chunks/{chunk-GVIVASYK.js → chunk-UAKRDON5.js} +4 -4
  206. package/chunks/{chunk-D5LUXLUH.js → chunk-UJ4DUYIH.js} +18 -4
  207. package/chunks/{chunk-VTHREBQM.js → chunk-UKYXYWI2.js} +2 -2
  208. package/chunks/{chunk-ZYMLPEZQ.js → chunk-UM2FFKXN.js} +3 -3
  209. package/chunks/{chunk-2OBKDPZZ.js → chunk-UPFRILIL.js} +2 -2
  210. package/chunks/{chunk-2HYKTO7V.js → chunk-UUASLXHW.js} +55 -6
  211. package/chunks/chunk-V5U2NZNJ.js +29 -0
  212. package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
  213. package/chunks/{chunk-Q2MSPKIJ.js → chunk-VBWD6C27.js} +1 -1
  214. package/chunks/chunk-VGHZT6JR.js +51 -0
  215. package/chunks/{chunk-MPNBVAEU.js → chunk-VNAYZAFX.js} +4 -4
  216. package/chunks/chunk-VPSIC437.js +780 -0
  217. package/chunks/{chunk-AIAOIFY4.js → chunk-VWTSRH6C.js} +92 -17
  218. package/chunks/{chunk-4K7KNVWH.js → chunk-VYIUNFEA.js} +3 -3
  219. package/chunks/{chunk-EQSBPBZ3.js → chunk-WP4AX3XD.js} +5 -7
  220. package/chunks/{chunk-BFPESSTR.js → chunk-XEAAO654.js} +1 -1
  221. package/chunks/{chunk-RU7BK6B3.js → chunk-XLXAZLDR.js} +3 -3
  222. package/chunks/{chunk-EFWRMA2I.js → chunk-YPWZTR7F.js} +3 -3
  223. package/chunks/{chunk-XF63PKEN.js → chunk-ZDFQGHZH.js} +1 -1
  224. package/chunks/{chunk-OZ6KS6KW.js → chunk-ZGCKTAL5.js} +6 -1
  225. package/chunks/chunk-ZHO2CW6D.js +205 -0
  226. package/chunks/chunk-ZJ2LM2SI.js +198 -0
  227. package/chunks/{chunk-AYFA7MZV.js → chunk-ZKFTS3OV.js} +6 -6
  228. package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
  229. package/chunks/{chunk-DJECZIJX.js → chunk-ZTPGUFQV.js} +30 -8
  230. package/chunks/{chunk-7EQQR46F.js → chunk-ZVP4PWBU.js} +1 -1
  231. package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
  232. package/chunks/config-utils-LVSYDLHZ.js +114 -0
  233. package/chunks/contextCommand-TZD7UAJK.js +107 -0
  234. package/chunks/{core-runtime-AXB6SK5D.js → core-runtime-B4UKKIAQ.js} +63 -62
  235. package/chunks/{create-sub-session-23ITIELI.js → create-sub-session-LUPWEUHR.js} +3 -3
  236. package/chunks/{create-sub-session-4QNE64MR.js → create-sub-session-NJ24B4US.js} +94 -66
  237. package/chunks/{cron-create-KJ4IY6PP.js → cron-create-CRSPET3H.js} +4 -4
  238. package/chunks/{cron-delete-MBLQCAYY.js → cron-delete-DB77SZTU.js} +4 -4
  239. package/chunks/{cron-list-DWH2PQ47.js → cron-list-U2JNYWV6.js} +4 -4
  240. package/chunks/{daemon-3GNHB3M2.js → daemon-RKDGBFLK.js} +613 -102
  241. package/chunks/{daemon-git-worktree-guard-IVAJJWYK.js → daemon-git-worktree-guard-O2HPOBAB.js} +62 -61
  242. package/chunks/daemon-status-provider-GRRVCJFW.js +117 -0
  243. package/chunks/daemon-trust-policy-YJL442BK.js +113 -0
  244. package/chunks/{daemon-trust-policy-monitor-KGGROSIV.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +68 -67
  245. package/chunks/{de-X6HLSIFE.js → de-T4BLOKEC.js} +3 -0
  246. package/chunks/deferred-core-runtime-S32AYVZI.js +115 -0
  247. package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
  248. package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
  249. package/chunks/{display-image-BE7I6ZB6.js → display-image-73C7XNRK.js} +5 -5
  250. package/chunks/{dist-LVZCXVPF.js → dist-62OZ7QXB.js} +44 -26
  251. package/chunks/{dist-GFN5DCBX.js → dist-EDHQIBYD.js} +152 -63
  252. package/chunks/{dist-N6W6E753.js → dist-GT64AAUR.js} +135 -26
  253. package/chunks/{dist-6BPYWHVD.js → dist-JVXT4VUJ.js} +14 -7
  254. package/chunks/{dist-4WXLCBDR.js → dist-L6URO6CK.js} +12 -5
  255. package/chunks/{dist-5VXFRTWU.js → dist-LXFYIJNG.js} +866 -172
  256. package/chunks/{dist-SWQMYP2Q.js → dist-PDGNRVPY.js} +27 -8
  257. package/chunks/{dist-NSV4NBPK.js → dist-QAF5DO3Y.js} +380 -83
  258. package/chunks/{dist-HZNT6GQS.js → dist-ZCJLKQSP.js} +28 -14
  259. package/chunks/earlyInputCapture-BBPCIVZG.js +108 -0
  260. package/chunks/{edit-LEQLAGPZ.js → edit-SUGXY63Y.js} +47 -47
  261. package/chunks/{en-YLXBXM4Z.js → en-2RATMNX7.js} +5 -0
  262. package/chunks/{enter-worktree-35QCAAFP.js → enter-worktree-B6USKSIK.js} +7 -7
  263. package/chunks/{enterPlanMode-ONQN3WHE.js → enterPlanMode-MDX4RVVL.js} +48 -48
  264. package/chunks/{environment-UANTR7A4.js → environment-VN6RXDVN.js} +63 -62
  265. package/chunks/errors-UEY36PIT.js +114 -0
  266. package/chunks/{exit-worktree-XQD6D543.js → exit-worktree-DLQ73SJH.js} +10 -8
  267. package/chunks/exitPlanMode-EPHIEDAA.js +83 -0
  268. package/chunks/{fast-path-WUL7UZ6H.js → fast-path-Y73R42LV.js} +8 -7
  269. package/chunks/{fast-path-settings-XH426LUU.js → fast-path-settings-MFUR3IWK.js} +3 -3
  270. package/chunks/{fr-FTZWF462.js → fr-BGHGYX6A.js} +3 -0
  271. package/chunks/{glob-Y54QUWDY.js → glob-DMGH7EZN.js} +47 -47
  272. package/chunks/goal-tools-3RF3PXCL.js +99 -0
  273. package/chunks/{grep-5GPICQBU.js → grep-AJVLCVXC.js} +9 -7
  274. package/chunks/handleAutoUpdate-HVWQT2AU.js +110 -0
  275. package/chunks/i18n-5OR7NTRZ.js +125 -0
  276. package/chunks/{image-gen-J6FDGUZP.js → image-gen-VOIDOHOB.js} +8 -8
  277. package/chunks/initializer-JE5RQSOE.js +114 -0
  278. package/chunks/installationInfo-KO3CCSCK.js +108 -0
  279. package/chunks/{ja-2GL5FKYJ.js → ja-G3FTD5XE.js} +3 -0
  280. package/chunks/{keychain-token-storage-37XPR34V.js → keychain-token-storage-REZVMJA6.js} +2 -2
  281. package/chunks/list-3IORSFIY.js +117 -0
  282. package/chunks/list-agents-SBMONIUK.js +128 -0
  283. package/chunks/{llm-NSAVK5V3.js → llm-K26SUDVK.js} +223 -140
  284. package/chunks/{llm-content-generator-AY2QKXHE.js → llm-content-generator-TT6EAUD4.js} +11 -12
  285. package/chunks/loadedSettingsAdapter-KLLFZF3M.js +111 -0
  286. package/chunks/{loggingContentGenerator-DSFQHXIF.js → loggingContentGenerator-EYQBA4M4.js} +66 -65
  287. package/chunks/{loop-wakeup-XJFONSQ7.js → loop-wakeup-QA6SHCZT.js} +5 -5
  288. package/chunks/{ls-3VAT2J7A.js → ls-HEJNCEYO.js} +4 -4
  289. package/chunks/{lsp-5W7IRUBH.js → lsp-WOQKNZP6.js} +2 -2
  290. package/chunks/{managed-npm-update-TSWENTK5.js → managed-npm-update-HIJTODQT.js} +61 -60
  291. package/chunks/mcp-A2UEHETW.js +111 -0
  292. package/chunks/{monitor-RW4GWJHB.js → monitor-DKNZQAB2.js} +46 -46
  293. package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
  294. package/chunks/nonInteractiveCli-YA47F2F4.js +190 -0
  295. package/chunks/{notebook-edit-CQNYS5OR.js → notebook-edit-MGHTRL2D.js} +47 -47
  296. package/chunks/{open-with-auth-YN3QZHVM.js → open-with-auth-D6JD6LDS.js} +3 -3
  297. package/chunks/{openaiContentGenerator-J6QIF7EX.js → openaiContentGenerator-ZJIEQ3ZJ.js} +26 -28
  298. package/chunks/pidfile-ETHAZNMY.js +112 -0
  299. package/chunks/{processUtils-GPHNANKZ.js → processUtils-UY3SAJJZ.js} +2 -2
  300. package/chunks/prompt-terminal-ledger-GZ747VYE.js +106 -0
  301. package/chunks/{pt-XN2YWJVM.js → pt-D73IFYT7.js} +3 -0
  302. package/chunks/{qwenContentGenerator-WWDXPYQI.js → qwenContentGenerator-VI4KATRY.js} +58 -58
  303. package/chunks/{qwenOAuth2-OF5WRBQT.js → qwenOAuth2-7AOCKSOQ.js} +7 -7
  304. package/chunks/{read-file-FQUQHC6N.js → read-file-P7F4P7LV.js} +11 -13
  305. package/chunks/{read-mcp-resource-XD257PGJ.js → read-mcp-resource-GLAGB6R7.js} +2 -2
  306. package/chunks/{record-artifact-VW23GS4F.js → record-artifact-SWVR7NSU.js} +4 -4
  307. package/chunks/renderer-selection-M4UN63VJ.js +99 -0
  308. package/chunks/{report-findings-AO5VYFLR.js → report-findings-AL5YW3KI.js} +5 -5
  309. package/chunks/{request-shutdown-BCLA3JV2.js → request-shutdown-5YK4IZ54.js} +8 -7
  310. package/chunks/resumeHistoryUtils-DPZKFW24.js +119 -0
  311. package/chunks/ripGrep-C7LJKUPZ.js +37 -0
  312. package/chunks/{ru-OLTMFJEW.js → ru-QMISLKRH.js} +3 -0
  313. package/chunks/{run-qwen-serve-5X6IDZER.js → run-qwen-serve-OGTEEUR2.js} +589 -251
  314. package/chunks/{runtime-HK27GMPF.js → runtime-LNBLEMZS.js} +73 -72
  315. package/chunks/scheduled-tasks-FLDYZQOF.js +128 -0
  316. package/chunks/{scheduler-WD4MHMO5.js → scheduler-73YXGUGW.js} +62 -61
  317. package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
  318. package/chunks/{sdk-exporters-http-TTU2CHBU.js → sdk-exporters-http-3JO5TJNU.js} +4 -4
  319. package/chunks/{sdk-impl-UUMVYMAL.js → sdk-impl-HZAUUTHJ.js} +6 -6
  320. package/chunks/{send-message-AJ4OCUBV.js → send-message-JC7NJTY6.js} +166 -35
  321. package/chunks/serve-3UR2H4CV.js +119 -0
  322. package/chunks/{server-GO2N5DH7.js → server-AOYZVVOM.js} +2904 -860
  323. package/chunks/{session-IFNHTUBT.js → session-UAWFNFGI.js} +119 -114
  324. package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
  325. package/chunks/{session-pr-refresh-I3UBWMVP.js → session-pr-refresh-CT2INROL.js} +157 -88
  326. package/chunks/{settings-L6N54CU6.js → settings-BHRGDASJ.js} +67 -66
  327. package/chunks/{shell-4Y5LLW6N.js → shell-YHOGC7TO.js} +46 -46
  328. package/chunks/{skill-YOWTRAKQ.js → skill-ZGBKNCHQ.js} +131 -97
  329. package/chunks/skill-settings-AKSP665O.js +119 -0
  330. package/chunks/spawnChannel-N25MBB6F.js +112 -0
  331. package/chunks/standalone-update-XGPWJDRN.js +119 -0
  332. package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
  333. package/chunks/{startInteractiveUI-XDFSHBZD.js → startInteractiveUI-E2WQJUOA.js} +3509 -4706
  334. package/chunks/{syntheticOutput-ML43GEFN.js → syntheticOutput-HJNZSEHN.js} +3 -3
  335. package/chunks/{task-create-QN4LYRSE.js → task-create-6RSD54S5.js} +12 -12
  336. package/chunks/{task-list-JPLGK45U.js → task-list-IQSACPOM.js} +34 -11
  337. package/chunks/{task-stop-CXEH5L2D.js → task-stop-HE2LRQNW.js} +2 -2
  338. package/chunks/{task-update-IWEOJFV2.js → task-update-XAJ2NYOA.js} +13 -14
  339. package/chunks/{team-create-OOPXCDBA.js → team-create-SOKMYSQU.js} +54 -55
  340. package/chunks/{team-delete-RZVVSGCY.js → team-delete-NGNNKGMG.js} +25 -8
  341. package/chunks/{team-plan-approval-DSX5EWAT.js → team-plan-approval-U7ZWXYAY.js} +46 -46
  342. package/chunks/terminal-image-renderer-KKM4OBLO.js +117 -0
  343. package/chunks/theme-manager-GQHF3A7T.js +103 -0
  344. package/chunks/{todoWrite-WDJNQEMW.js → todoWrite-5UTVUXHA.js} +39 -9
  345. package/chunks/{tool-search-J5Q6U7DN.js → tool-search-IAI2RVWT.js} +21 -19
  346. package/chunks/total-session-admission-G4CGCSTG.js +113 -0
  347. package/chunks/trustedFolders-D2I3FDPB.js +123 -0
  348. package/chunks/{update-relaunch-SIKHLHVR.js → update-relaunch-5RWKZAL3.js} +5 -5
  349. package/chunks/updateCheck-ZXOQDFEI.js +119 -0
  350. package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +121 -0
  351. package/chunks/{validateNonInterActiveAuth-JUDQP6V4.js → validateNonInterActiveAuth-QPFEKATS.js} +113 -109
  352. package/chunks/{version-C63GDDWN.js → version-JKNG7YDH.js} +1 -1
  353. package/chunks/{web-fetch-FOQZMNSC.js → web-fetch-X3AHIIHW.js} +16 -19
  354. package/chunks/{web-search-PUJTBFUC.js → web-search-K2FMOGS5.js} +10 -11
  355. package/chunks/{web-shell-static-HNB4FDOE.js → web-shell-static-POZHGGXE.js} +5 -4
  356. package/chunks/{workflow-Y5IPINVH.js → workflow-TOLPAK5G.js} +213 -119
  357. package/chunks/workspace-providers-status-PCJK3RC7.js +115 -0
  358. package/chunks/{workspace-registration-store-SMJWI2AI.js → workspace-registration-store-KQWVVW4Y.js} +2 -1
  359. package/chunks/workspace-registry-YNIOB6HJ.js +122 -0
  360. package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +123 -0
  361. package/chunks/workspace-service-G4ZNBOFH.js +127 -0
  362. package/chunks/workspace-skills-status-FMTPPMWC.js +114 -0
  363. package/chunks/{workspace-trust-reconciler-PLIDLJZX.js → workspace-trust-reconciler-IBDFQBQS.js} +76 -77
  364. package/chunks/wrapper-JH3IFHT2.js +35 -0
  365. package/chunks/write-file-YTLFY2S5.js +88 -0
  366. package/chunks/{zh-UNY63FR3.js → zh-25DF7OGK.js} +5 -0
  367. package/chunks/{zh-TW-RPTMRTHG.js → zh-TW-5EDMZVGK.js} +5 -0
  368. package/chunks/{zoom-image-LYQD7BQA.js → zoom-image-IFXSN74N.js} +11 -13
  369. package/cli.js +131 -90
  370. package/locales/ca.js +6 -0
  371. package/locales/de.js +6 -0
  372. package/locales/en.js +9 -0
  373. package/locales/fr.js +6 -0
  374. package/locales/ja.js +6 -0
  375. package/locales/pt.js +6 -0
  376. package/locales/ru.js +6 -0
  377. package/locales/zh-TW.js +9 -0
  378. package/locales/zh.js +9 -0
  379. package/package.json +3 -3
  380. package/web-shell/assets/{abnfDiagram-VCTEODGH-TRCMSA_6.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
  381. package/web-shell/assets/{arc-D9Uls5b3.js → arc-ESi1eNkE.js} +1 -1
  382. package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bwb8jPXg.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
  383. package/web-shell/assets/{blockDiagram-NRAW4CY4-DHj71TSX.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
  384. package/web-shell/assets/{c4Diagram-UCG6FXSJ-uKBBdbyr.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
  385. package/web-shell/assets/channel-B7ohGDil.js +1 -0
  386. package/web-shell/assets/{chunk-2Q5K7J3B-BZd0Phrl.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
  387. package/web-shell/assets/{chunk-5VM5RSS4-7KNeNBqN.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
  388. package/web-shell/assets/{chunk-F27PBJKO-BeboS7Fi.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
  389. package/web-shell/assets/{chunk-G27WJ6UU-RV3JONoj.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
  390. package/web-shell/assets/{chunk-JWPE2WC7-Yw9FCFsP.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
  391. package/web-shell/assets/{chunk-LCL6LL3I-GIMnydDe.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
  392. package/web-shell/assets/{chunk-POPQ4Y6H-Cfrux7bL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
  393. package/web-shell/assets/{chunk-SVP7TREG-BlvIN0CO.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
  394. package/web-shell/assets/{chunk-XXDRQBXY-DMs7Rr4t.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
  395. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
  396. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
  397. package/web-shell/assets/{cose-bilkent-JH36ORCC-DNGqTNwI.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
  398. package/web-shell/assets/{cynefin-OW5HDTMX-CojMpaoH.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
  399. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DF07YXGo.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
  400. package/web-shell/assets/{dagre-3AP2YEHR-17-4WtCH.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
  401. package/web-shell/assets/{diagram-S7CK7UJ4-G3Wuyz9m.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
  402. package/web-shell/assets/{diagram-UQ7AKVKN-nyWIKZ8P.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
  403. package/web-shell/assets/{diagram-VSXAHHWV-tKHhmYSC.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
  404. package/web-shell/assets/{diagram-VX7I27RA-CpDf1hYk.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
  405. package/web-shell/assets/{diagram-Z3DM3KII-Cah2IFXG.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
  406. package/web-shell/assets/{ebnfDiagram-PWID7BFC-DNaCkgxy.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
  407. package/web-shell/assets/{erDiagram-SSCWMZ5O-CAdRgcf1.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
  408. package/web-shell/assets/{flowDiagram-A5DVABFB-CMUJAShL.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
  409. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-o-_MUNey.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
  410. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
  411. package/web-shell/assets/index-BGZRqbRo.css +36 -0
  412. package/web-shell/assets/index-DRri_6_x.js +2067 -0
  413. package/web-shell/assets/{index-BK_NKxiJ.js → index-zqvnpGHv.js} +1 -1
  414. package/web-shell/assets/{infoDiagram-RXCK75RN-qJPeZbGP.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
  415. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-7Om4vNo1.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
  416. package/web-shell/assets/{journeyDiagram-EYS64GPL-BNtXqmBW.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
  417. package/web-shell/assets/{kanban-definition-3QL26DDD-COgFec8P.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
  418. package/web-shell/assets/{layout-B9n81PC9.js → layout-DkqIaFlJ.js} +1 -1
  419. package/web-shell/assets/{linear-Bb6nXZQq.js → linear-Bdkd3mCz.js} +1 -1
  420. package/web-shell/assets/{mermaid.core-Cgrm3JVT.js → mermaid.core-CGw0LkT_.js} +6 -6
  421. package/web-shell/assets/{mindmap-definition-FBJOCRG2-TKwLTjnG.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
  422. package/web-shell/assets/{pegDiagram-XKGWAZYB-BJPuvlpi.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
  423. package/web-shell/assets/{pieDiagram-E7YTZNPT-D01VkNsW.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
  424. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-C4hHsiv-.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
  425. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CuEO4xK2.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
  426. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D5J_vIo5.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
  427. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-DQKY223V.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
  428. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D27YV_cm.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
  429. package/web-shell/assets/{sizeCapture-X5ZJPWSS-TJg8UcwV.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
  430. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CmnPzUIx.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
  431. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
  432. package/web-shell/assets/{swimlanes-XN3QIQJK-ByeP3_Nu.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
  433. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
  434. package/web-shell/assets/{timeline-definition-24CTP7MA-BsFA5juR.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
  435. package/web-shell/assets/{vennDiagram-4TSXK5OY-DREP2ECo.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
  436. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-iyd9lKi2.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
  437. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CVr1_j9q.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
  438. package/web-shell/index.html +196 -2
  439. package/chunks/MaxSizedBox-X42SXBJH.js +0 -110
  440. package/chunks/agent-headless-IZM25LJA.js +0 -85
  441. package/chunks/bridge-ME6QXZNA.js +0 -119
  442. package/chunks/channel-settings-store-PEOI7XCG.js +0 -120
  443. package/chunks/chunk-7J6OTNGO.js +0 -424
  444. package/chunks/chunk-BWORX6FA.js +0 -135
  445. package/chunks/chunk-CPBF7KYF.js +0 -51
  446. package/chunks/chunk-H72BQNM3.js +0 -645
  447. package/chunks/chunk-JHYH6PYQ.js +0 -3096
  448. package/chunks/chunk-SS4MRMKE.js +0 -3525
  449. package/chunks/chunk-T4EFG2P5.js +0 -113
  450. package/chunks/chunk-XZA32HII.js +0 -19
  451. package/chunks/chunk-ZYNTSXWK.js +0 -32
  452. package/chunks/config-utils-R6M3TA34.js +0 -113
  453. package/chunks/contextCommand-ZCAP23J6.js +0 -106
  454. package/chunks/daemon-status-provider-K3SJ5C2U.js +0 -117
  455. package/chunks/daemon-trust-policy-DOR3YG62.js +0 -112
  456. package/chunks/deferred-core-runtime-WOYLUQQ7.js +0 -114
  457. package/chunks/earlyInputCapture-OHBEVO4K.js +0 -107
  458. package/chunks/errors-WAK6KFBC.js +0 -113
  459. package/chunks/exitPlanMode-UEYBG6P5.js +0 -83
  460. package/chunks/goal-tools-PTD3MBA7.js +0 -411
  461. package/chunks/handleAutoUpdate-FP3NWNSG.js +0 -109
  462. package/chunks/i18n-INIU5X7A.js +0 -124
  463. package/chunks/initializer-TYODV6GE.js +0 -113
  464. package/chunks/installationInfo-AAPKYDSZ.js +0 -107
  465. package/chunks/list-TUODDN6J.js +0 -116
  466. package/chunks/list-agents-DI3YFTDT.js +0 -80
  467. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +0 -110
  468. package/chunks/mcp-MWSAPFOL.js +0 -110
  469. package/chunks/nonInteractiveCli-JXKL343Q.js +0 -185
  470. package/chunks/pidfile-QOIQZFT2.js +0 -111
  471. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +0 -105
  472. package/chunks/resumeHistoryUtils-NSGF3UCB.js +0 -118
  473. package/chunks/ripGrep-4CAT6SKV.js +0 -39
  474. package/chunks/scheduled-tasks-MN2ZZ5P6.js +0 -127
  475. package/chunks/serve-2XCHPPGG.js +0 -118
  476. package/chunks/skill-settings-ZL4JY5UE.js +0 -118
  477. package/chunks/spawnChannel-ZST6XJVJ.js +0 -112
  478. package/chunks/standalone-update-THVU3OKY.js +0 -118
  479. package/chunks/terminal-image-renderer-KS25G33E.js +0 -114
  480. package/chunks/theme-manager-YMZNG45F.js +0 -102
  481. package/chunks/total-session-admission-PVN64JVV.js +0 -114
  482. package/chunks/trustedFolders-FATSC4YI.js +0 -122
  483. package/chunks/updateCheck-D3YG2WCD.js +0 -118
  484. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +0 -120
  485. package/chunks/workspace-providers-status-IJ4VHFMB.js +0 -114
  486. package/chunks/workspace-registry-BTGZIMPK.js +0 -123
  487. package/chunks/workspace-service-SIN67ITC.js +0 -126
  488. package/chunks/workspace-skills-status-F3RKCUIX.js +0 -113
  489. package/chunks/write-file-PAIGB33C.js +0 -88
  490. package/web-shell/assets/channel-CXjVLaBa.js +0 -1
  491. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +0 -1
  492. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +0 -1
  493. package/web-shell/assets/index-Ci-z4zWY.js +0 -1913
  494. package/web-shell/assets/index-LDlXZRHA.css +0 -36
  495. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +0 -1
  496. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +0 -8
  497. /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
@@ -2,10 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseToolWriteOriginMeta
5
- } from "./chunk-U54AYGEC.js";
6
- import {
7
- isLoopbackBind
8
- } from "./chunk-RXFQM6FQ.js";
5
+ } from "./chunk-VGHZT6JR.js";
9
6
  import {
10
7
  MAX_CHILD_HEAP_MB,
11
8
  MIN_CHILD_HEAP_MB,
@@ -14,13 +11,17 @@ import {
14
11
  import {
15
12
  CLIENT_ID_RE,
16
13
  MAX_CLIENT_ID_LENGTH
17
- } from "./chunk-SEONHUS3.js";
14
+ } from "./chunk-LAUEEBDL.js";
18
15
  import {
19
16
  isInternalWorkspaceRuntime
20
17
  } from "./chunk-NYWWQ437.js";
18
+ import {
19
+ formatHostForAuthority,
20
+ isLoopbackBind
21
+ } from "./chunk-DMEUXLSS.js";
21
22
  import {
22
23
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
23
- } from "./chunk-OZ6KS6KW.js";
24
+ } from "./chunk-ZGCKTAL5.js";
24
25
  import {
25
26
  ROOT_CONTEXT,
26
27
  context,
@@ -773,8 +774,8 @@ var DeviceFlowRegistry = class {
773
774
  /**
774
775
  * For diagnostics / GET /workspace/auth/status: report only pending
775
776
  * flows. Terminal entries are an implementation detail of the SDK
776
- * reconnect path and shouldn't be enumerated to all bearer-token
777
- * holders.
777
+ * reconnect path and shouldn't be enumerated to all authorized status
778
+ * callers.
778
779
  */
779
780
  listPending() {
780
781
  const out = [];
@@ -919,6 +920,67 @@ function isDeepHealthQuery(raw) {
919
920
  }
920
921
  __name(isDeepHealthQuery, "isDeepHealthQuery");
921
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
+
922
984
  // packages/cli/src/serve/acp-child-extra-args.ts
923
985
  init_esbuild_shims();
924
986
  function acpChildExtraArgs(opts) {
@@ -1078,6 +1140,16 @@ function parseAllowOriginPatterns(raw) {
1078
1140
  return { allowAny, origins };
1079
1141
  }
1080
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");
1081
1153
  var MutableOriginAllowlist = class {
1082
1154
  static {
1083
1155
  __name(this, "MutableOriginAllowlist");
@@ -1173,6 +1245,7 @@ function buildPrimaryHostGate(bind, getPort) {
1173
1245
  }
1174
1246
  let cachedPort = -1;
1175
1247
  let cachedAllowed = /* @__PURE__ */ new Set();
1248
+ const boundHost = formatHostForAuthority(bind);
1176
1249
  const allowedFor = /* @__PURE__ */ __name((port) => {
1177
1250
  if (port === cachedPort) return cachedAllowed;
1178
1251
  cachedPort = port;
@@ -1180,13 +1253,15 @@ function buildPrimaryHostGate(bind, getPort) {
1180
1253
  `localhost:${port}`,
1181
1254
  `127.0.0.1:${port}`,
1182
1255
  `[::1]:${port}`,
1183
- `host.docker.internal:${port}`
1256
+ `host.docker.internal:${port}`,
1257
+ `${boundHost}:${port}`
1184
1258
  ]);
1185
1259
  if (port === 80 || port === 443) {
1186
1260
  cachedAllowed.add("localhost");
1187
1261
  cachedAllowed.add("127.0.0.1");
1188
1262
  cachedAllowed.add("[::1]");
1189
1263
  cachedAllowed.add("host.docker.internal");
1264
+ cachedAllowed.add(boundHost);
1190
1265
  }
1191
1266
  return cachedAllowed;
1192
1267
  }, "allowedFor");
@@ -1247,13 +1322,22 @@ function requestWasAuthenticated(req) {
1247
1322
  return req[AUTHENTICATED_REQUEST] === true;
1248
1323
  }
1249
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");
1250
1333
  function createMutationGate(deps) {
1251
1334
  const passthrough = /* @__PURE__ */ __name((_req, _res, next) => next(), "passthrough");
1252
- if (deps.requireAuth || deps.tokenConfigured) {
1335
+ if (deps.tokenConfigured) {
1253
1336
  return () => passthrough;
1254
1337
  }
1338
+ const trustedLoopbackMode = deps.trustedLoopbackMode === true && deps.requireAuth === false;
1255
1339
  const strictDenier = /* @__PURE__ */ __name((req, res, next) => {
1256
- if (requestWasAuthenticated(req)) {
1340
+ if (requestHasOperatorAuthority(req, trustedLoopbackMode)) {
1257
1341
  next();
1258
1342
  return;
1259
1343
  }
@@ -1484,7 +1568,17 @@ var SERVE_CAPABILITY_REGISTRY = {
1484
1568
  since: "v1",
1485
1569
  modes: ["workspace", "clean"]
1486
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" },
1487
1580
  workspace_memory_forget: { since: "v1" },
1581
+ workspace_memory_forget_scope: { since: "v1" },
1488
1582
  workspace_memory_dream: { since: "v1" },
1489
1583
  // Workspace agents CRUD (`GET/POST /workspace/agents` +
1490
1584
  // `GET/POST/DELETE /workspace/agents/:agentType`). Wraps
@@ -1511,6 +1605,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1511
1605
  session_organization: { since: "v1" },
1512
1606
  session_export: { since: "v1" },
1513
1607
  standalone_sessions_v1: { since: "v1" },
1608
+ standalone_session_options_v1: { since: "v1" },
1514
1609
  session_transcript: { since: "v1" },
1515
1610
  session_transcript_pagination: { since: "v1" },
1516
1611
  // Daemon supports the MCP client guardrail surface: an in-process
@@ -1645,8 +1740,8 @@ var SERVE_CAPABILITY_REGISTRY = {
1645
1740
  session_btw: { since: "v1" },
1646
1741
  // Direct daemon-side shell execution for an existing session.
1647
1742
  // Advertised CONDITIONALLY: operators must explicitly enable it and
1648
- // configure bearer auth. Clients must still send a session-bound
1649
- // X-Qwen-Client-Id when calling the route.
1743
+ // either configure bearer auth or use trusted-loopback mode. Clients must
1744
+ // still send a session-bound X-Qwen-Client-Id when calling the route.
1650
1745
  session_shell_command: { since: "v1" },
1651
1746
  // Daemon hosts a workspace-shared MCP transport
1652
1747
  // pool (`QwenAgent.mcpPool`); `GET /workspace/mcp` reflects pool-level
@@ -1705,6 +1800,12 @@ var SERVE_CAPABILITY_REGISTRY = {
1705
1800
  writer_idle_timeout: { since: "v1" },
1706
1801
  non_blocking_prompt: { since: "v1" },
1707
1802
  session_language: { since: "v1" },
1803
+ // Sessionless user-level language sync (`POST /language`) for hosts that
1804
+ // switch language before any session exists (issue #10234). Advertised
1805
+ // CONDITIONALLY with `workspace_settings`: the route persists user-scope
1806
+ // settings, so daemons without settings persistence omit the tag and
1807
+ // return 404.
1808
+ user_language_sync: { since: "v1" },
1708
1809
  session_rewind: { since: "v1" },
1709
1810
  workspace_hooks: { since: "v1" },
1710
1811
  session_hooks: { since: "v1" },
@@ -1744,6 +1845,25 @@ var SERVE_CAPABILITY_REGISTRY = {
1744
1845
  workspace_display_name: { since: "v1" },
1745
1846
  scratch_workspace_registration: { since: "v1" },
1746
1847
  workspace_runtime_removal: { since: "v1" },
1848
+ // A native OS directory picker can be opened on the daemon host
1849
+ // (osascript on macOS, PowerShell on Windows, zenity on a Linux host
1850
+ // with a display). Headless hosts omit the tag so clients hide the
1851
+ // Browse affordance instead of surfacing a guaranteed picker failure.
1852
+ native_directory_picker: { since: "v1" },
1853
+ // Workspace-owned runtime lifecycle status and explicit on-demand startup.
1854
+ workspace_runtime: { since: "v1" },
1855
+ // The daemon host can open a workspace directory in the host's OS file
1856
+ // manager (Finder via `open` on macOS, Explorer via `explorer.exe` on
1857
+ // Windows, xdg-open on a Linux host with a display). Headless hosts omit
1858
+ // the tag so clients hide the Open-locally affordance instead of
1859
+ // surfacing a guaranteed launch failure.
1860
+ workspace_local_open: { since: "v1" },
1861
+ // The daemon host can open a terminal window in a workspace directory
1862
+ // (`open -a Terminal` on macOS, wt.exe/cmd.exe on Windows, a common
1863
+ // terminal emulator on a Linux host with a display). Headless hosts omit
1864
+ // the tag so clients hide the Open-in-terminal affordance instead of
1865
+ // surfacing a guaranteed launch failure.
1866
+ workspace_local_terminal: { since: "v1" },
1747
1867
  // Workspace-qualified core REST routes under `/workspaces/:workspace/...`.
1748
1868
  // Covers core file read/write/upload, status/permissions/trust/lifecycle/MCP/tool,
1749
1869
  // memory, workspace agent CRUD, and persisted session organization surfaces.
@@ -1767,6 +1887,7 @@ var SERVE_CAPABILITY_REGISTRY = {
1767
1887
  // projections. This is additive to the legacy primary-workspace
1768
1888
  // `workspace_extensions` contract.
1769
1889
  extension_management_v2: { since: "v1" },
1890
+ extension_state: { since: "v1" },
1770
1891
  extension_git_credentials: { since: "v1" },
1771
1892
  extension_local_path_install: { since: "v1" },
1772
1893
  // Workspace-qualified, daemon-local persisted transcript paging. The tag is
@@ -1843,6 +1964,10 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1843
1964
  "standalone_sessions_v1",
1844
1965
  (toggles) => toggles.standaloneSessionsAvailable === true
1845
1966
  ],
1967
+ [
1968
+ "standalone_session_options_v1",
1969
+ (toggles) => toggles.standaloneSessionsAvailable === true
1970
+ ],
1846
1971
  ["mcp_workspace_pool", (toggles) => toggles.mcpPoolActive === true],
1847
1972
  ["mcp_pool_restart", (toggles) => toggles.mcpPoolActive === true],
1848
1973
  [
@@ -1859,6 +1984,7 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1859
1984
  (toggles) => typeof toggles.writerIdleTimeoutMs === "number" && toggles.writerIdleTimeoutMs > 0
1860
1985
  ],
1861
1986
  ["workspace_settings", (toggles) => toggles.persistSettingAvailable === true],
1987
+ ["user_language_sync", (toggles) => toggles.persistSettingAvailable === true],
1862
1988
  ["workspace_voice", (toggles) => toggles.persistSettingAvailable === true],
1863
1989
  [
1864
1990
  "workspace_voice_transcription",
@@ -1924,6 +2050,22 @@ var CONDITIONAL_SERVE_FEATURES = /* @__PURE__ */ new Map([
1924
2050
  "workspace_runtime_removal",
1925
2051
  (toggles) => toggles.workspaceRuntimeRemovalAvailable === true
1926
2052
  ],
2053
+ [
2054
+ "native_directory_picker",
2055
+ (toggles) => toggles.nativeDirectoryPickerAvailable === true
2056
+ ],
2057
+ [
2058
+ "workspace_runtime",
2059
+ (toggles) => toggles.workspaceRuntimeAvailable === true
2060
+ ],
2061
+ [
2062
+ "workspace_local_open",
2063
+ (toggles) => toggles.localPathOpenAvailable === true
2064
+ ],
2065
+ [
2066
+ "workspace_local_terminal",
2067
+ (toggles) => toggles.localTerminalOpenAvailable === true
2068
+ ],
1927
2069
  [
1928
2070
  "workspace_qualified_acp",
1929
2071
  // The plural routes are pre-mounted for workspaces registered after app
@@ -1991,6 +2133,360 @@ function getServeProtocolVersions() {
1991
2133
  }
1992
2134
  __name(getServeProtocolVersions, "getServeProtocolVersions");
1993
2135
 
2136
+ // packages/cli/src/serve/native-directory-picker.ts
2137
+ init_esbuild_shims();
2138
+ import { execFile } from "node:child_process";
2139
+ import { accessSync, constants, statSync } from "node:fs";
2140
+ import { delimiter, join } from "node:path";
2141
+ import { promisify } from "node:util";
2142
+ var execFileAsync = promisify(execFile);
2143
+ var PICKER_TIMEOUT_MS = 3e5;
2144
+ var NativeDirectoryPickerUnavailableError = class extends Error {
2145
+ static {
2146
+ __name(this, "NativeDirectoryPickerUnavailableError");
2147
+ }
2148
+ };
2149
+ function isNativeDirectoryPickerAvailable(env = process.env, macOsSessionUids = process.platform === "darwin" ? readMacOsSessionUids() : void 0) {
2150
+ if (process.platform === "darwin") {
2151
+ return macOsSessionUids?.processUid !== void 0 && macOsSessionUids.processUid > 0 && macOsSessionUids.consoleUid === macOsSessionUids.processUid && !env["SSH_CONNECTION"] && !env["SSH_TTY"];
2152
+ }
2153
+ if (process.platform === "win32") {
2154
+ const sessionName = env["SESSIONNAME"]?.trim();
2155
+ return Boolean(sessionName && sessionName.toLowerCase() !== "services");
2156
+ }
2157
+ if (process.platform !== "linux") return false;
2158
+ if (!env["DISPLAY"] && !env["WAYLAND_DISPLAY"]) return false;
2159
+ return (env["PATH"] ?? "").split(delimiter).some((dir) => dir !== "" && isExecutableFile(join(dir, "zenity")));
2160
+ }
2161
+ __name(isNativeDirectoryPickerAvailable, "isNativeDirectoryPickerAvailable");
2162
+ function readMacOsSessionUids() {
2163
+ try {
2164
+ return {
2165
+ processUid: process.getuid?.(),
2166
+ consoleUid: statSync("/dev/console").uid
2167
+ };
2168
+ } catch {
2169
+ return {};
2170
+ }
2171
+ }
2172
+ __name(readMacOsSessionUids, "readMacOsSessionUids");
2173
+ function isExecutableFile(file) {
2174
+ try {
2175
+ if (!statSync(file).isFile()) return false;
2176
+ accessSync(file, constants.X_OK);
2177
+ return true;
2178
+ } catch {
2179
+ return false;
2180
+ }
2181
+ }
2182
+ __name(isExecutableFile, "isExecutableFile");
2183
+ async function pickNativeDirectory(signal) {
2184
+ try {
2185
+ if (process.platform === "darwin") {
2186
+ const script = [
2187
+ "const app = Application.currentApplication();",
2188
+ "app.includeStandardAdditions = true;",
2189
+ "app.chooseFolder({",
2190
+ 'withPrompt: "Select a workspace folder",',
2191
+ "}).toString();"
2192
+ ].join(" ");
2193
+ const { stdout } = await execFileAsync(
2194
+ "osascript",
2195
+ ["-l", "JavaScript", "-e", script],
2196
+ { timeout: PICKER_TIMEOUT_MS, signal }
2197
+ );
2198
+ return stdout.trim() || void 0;
2199
+ }
2200
+ if (process.platform === "win32") {
2201
+ const script = [
2202
+ "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8;",
2203
+ "Add-Type -AssemblyName System.Windows.Forms;",
2204
+ "$dialog = New-Object System.Windows.Forms.FolderBrowserDialog;",
2205
+ "if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK) {",
2206
+ "[Console]::Out.Write($dialog.SelectedPath)",
2207
+ "}"
2208
+ ].join(" ");
2209
+ const { stdout } = await execFileAsync(
2210
+ "powershell.exe",
2211
+ ["-NoProfile", "-STA", "-Command", script],
2212
+ { timeout: PICKER_TIMEOUT_MS, signal }
2213
+ );
2214
+ return stdout.trim() || void 0;
2215
+ }
2216
+ if (process.platform === "linux") {
2217
+ const { stdout } = await execFileAsync(
2218
+ "zenity",
2219
+ [
2220
+ "--file-selection",
2221
+ "--directory",
2222
+ "--title=Select a workspace folder"
2223
+ ],
2224
+ { timeout: PICKER_TIMEOUT_MS, signal }
2225
+ );
2226
+ return stdout.trim() || void 0;
2227
+ }
2228
+ } catch (error) {
2229
+ const result = error;
2230
+ if (result.killed) {
2231
+ return void 0;
2232
+ }
2233
+ 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
2234
+ // display" on headless Linux; only the former is a silent cancel.
2235
+ process.platform === "linux" && result.code === 1 && !result.stderr?.includes("cannot open display")) {
2236
+ return void 0;
2237
+ }
2238
+ throw new NativeDirectoryPickerUnavailableError(
2239
+ error instanceof Error ? error.message : String(error)
2240
+ );
2241
+ }
2242
+ throw new NativeDirectoryPickerUnavailableError(
2243
+ `Native directory picker is not supported on ${process.platform}`
2244
+ );
2245
+ }
2246
+ __name(pickNativeDirectory, "pickNativeDirectory");
2247
+
2248
+ // packages/cli/src/serve/local-path-open.ts
2249
+ init_esbuild_shims();
2250
+ import { execFile as execFile2, spawn } from "node:child_process";
2251
+ import { accessSync as accessSync2, constants as constants2, statSync as statSync2 } from "node:fs";
2252
+ import { delimiter as delimiter2, join as join2 } from "node:path";
2253
+ import { promisify as promisify2 } from "node:util";
2254
+ var execFileAsync2 = promisify2(execFile2);
2255
+ var OPEN_TIMEOUT_MS = 1e4;
2256
+ var LINUX_TERMINAL_NAMES = ["gnome-terminal", "konsole", "xterm"];
2257
+ function linuxTerminalCandidates(env) {
2258
+ return env["DISPLAY"] ? LINUX_TERMINAL_NAMES : LINUX_TERMINAL_NAMES.filter((name) => name !== "xterm");
2259
+ }
2260
+ __name(linuxTerminalCandidates, "linuxTerminalCandidates");
2261
+ var LocalPathOpenUnavailableError = class extends Error {
2262
+ static {
2263
+ __name(this, "LocalPathOpenUnavailableError");
2264
+ }
2265
+ };
2266
+ var SpawnHangError = class extends Error {
2267
+ static {
2268
+ __name(this, "SpawnHangError");
2269
+ }
2270
+ };
2271
+ function defaultMacOsSessionUids() {
2272
+ return process.platform === "darwin" ? readMacOsSessionUids2() : void 0;
2273
+ }
2274
+ __name(defaultMacOsSessionUids, "defaultMacOsSessionUids");
2275
+ function hasGuiSession(env, macOsSessionUids) {
2276
+ if (process.platform === "darwin") {
2277
+ return macOsSessionUids?.processUid !== void 0 && macOsSessionUids.processUid > 0 && macOsSessionUids.consoleUid === macOsSessionUids.processUid && !env["SSH_CONNECTION"] && !env["SSH_TTY"];
2278
+ }
2279
+ if (process.platform === "win32") {
2280
+ const sessionName = env["SESSIONNAME"]?.trim();
2281
+ return Boolean(sessionName && sessionName.toLowerCase() !== "services");
2282
+ }
2283
+ return void 0;
2284
+ }
2285
+ __name(hasGuiSession, "hasGuiSession");
2286
+ function findExecutableOnPath(env, names) {
2287
+ for (const name of names) {
2288
+ for (const dir of (env["PATH"] ?? "").split(delimiter2)) {
2289
+ if (dir === "") continue;
2290
+ const candidate = join2(dir, name);
2291
+ if (isExecutableFile2(candidate)) return candidate;
2292
+ }
2293
+ }
2294
+ return void 0;
2295
+ }
2296
+ __name(findExecutableOnPath, "findExecutableOnPath");
2297
+ function isLocalPathOpenAvailable(env = process.env, macOsSessionUids = defaultMacOsSessionUids()) {
2298
+ const guiSession = hasGuiSession(env, macOsSessionUids);
2299
+ if (guiSession !== void 0) return guiSession;
2300
+ if (process.platform !== "linux") return false;
2301
+ if (!env["DISPLAY"] && !env["WAYLAND_DISPLAY"]) return false;
2302
+ return findExecutableOnPath(env, ["xdg-open"]) !== void 0;
2303
+ }
2304
+ __name(isLocalPathOpenAvailable, "isLocalPathOpenAvailable");
2305
+ function isLocalTerminalAvailable(env = process.env, macOsSessionUids = defaultMacOsSessionUids()) {
2306
+ const guiSession = hasGuiSession(env, macOsSessionUids);
2307
+ if (guiSession !== void 0) return guiSession;
2308
+ if (process.platform !== "linux") return false;
2309
+ if (!env["DISPLAY"] && !env["WAYLAND_DISPLAY"]) return false;
2310
+ return findExecutableOnPath(env, linuxTerminalCandidates(env)) !== void 0;
2311
+ }
2312
+ __name(isLocalTerminalAvailable, "isLocalTerminalAvailable");
2313
+ function readMacOsSessionUids2() {
2314
+ try {
2315
+ return {
2316
+ processUid: process.getuid?.(),
2317
+ consoleUid: statSync2("/dev/console").uid
2318
+ };
2319
+ } catch {
2320
+ return {};
2321
+ }
2322
+ }
2323
+ __name(readMacOsSessionUids2, "readMacOsSessionUids");
2324
+ function isExecutableFile2(file) {
2325
+ try {
2326
+ if (!statSync2(file).isFile()) return false;
2327
+ accessSync2(file, constants2.X_OK);
2328
+ return true;
2329
+ } catch {
2330
+ return false;
2331
+ }
2332
+ }
2333
+ __name(isExecutableFile2, "isExecutableFile");
2334
+ async function openPathLocally(path, timeoutMs) {
2335
+ try {
2336
+ if (process.platform === "darwin") {
2337
+ await execFileAsync2("open", [path], { timeout: OPEN_TIMEOUT_MS });
2338
+ return;
2339
+ }
2340
+ if (process.platform === "win32") {
2341
+ assertPathExists(path);
2342
+ await spawnAndIgnoreExitCode("explorer.exe", [path], { timeoutMs });
2343
+ return;
2344
+ }
2345
+ if (process.platform === "linux") {
2346
+ await execFileAsync2("xdg-open", [path], { timeout: OPEN_TIMEOUT_MS });
2347
+ return;
2348
+ }
2349
+ } catch (error) {
2350
+ throw new LocalPathOpenUnavailableError(
2351
+ error instanceof Error ? error.message : String(error)
2352
+ );
2353
+ }
2354
+ throw new LocalPathOpenUnavailableError(
2355
+ `Local path open is not supported on ${process.platform}`
2356
+ );
2357
+ }
2358
+ __name(openPathLocally, "openPathLocally");
2359
+ function assertPathExists(path) {
2360
+ try {
2361
+ statSync2(path);
2362
+ } catch {
2363
+ throw new LocalPathOpenUnavailableError(`Path does not exist: ${path}`);
2364
+ }
2365
+ }
2366
+ __name(assertPathExists, "assertPathExists");
2367
+ async function openTerminalLocally(path, timeoutMs) {
2368
+ try {
2369
+ if (process.platform === "darwin") {
2370
+ await execFileAsync2("open", ["-a", "Terminal", path], {
2371
+ timeout: OPEN_TIMEOUT_MS
2372
+ });
2373
+ return;
2374
+ }
2375
+ if (process.platform === "win32") {
2376
+ assertPathExists(path);
2377
+ await spawnWindowsTerminal(path, timeoutMs);
2378
+ return;
2379
+ }
2380
+ if (process.platform === "linux") {
2381
+ assertPathExists(path);
2382
+ await spawnLinuxTerminal(path, timeoutMs);
2383
+ return;
2384
+ }
2385
+ } catch (error) {
2386
+ if (error instanceof LocalPathOpenUnavailableError) throw error;
2387
+ throw new LocalPathOpenUnavailableError(
2388
+ error instanceof Error ? error.message : String(error)
2389
+ );
2390
+ }
2391
+ throw new LocalPathOpenUnavailableError(
2392
+ `Local terminal open is not supported on ${process.platform}`
2393
+ );
2394
+ }
2395
+ __name(openTerminalLocally, "openTerminalLocally");
2396
+ async function spawnWindowsTerminal(path, timeoutMs) {
2397
+ try {
2398
+ await spawnAndIgnoreExitCode("wt.exe", ["-d", path], { timeoutMs });
2399
+ } catch (error) {
2400
+ if (error instanceof SpawnHangError) throw error;
2401
+ await spawnAndIgnoreExitCode(
2402
+ "powershell.exe",
2403
+ [
2404
+ "-NoProfile",
2405
+ "-STA",
2406
+ "-Command",
2407
+ 'Start-Process cmd.exe -WorkingDirectory "$env:QWEN_LOCAL_OPEN_DIR"'
2408
+ ],
2409
+ { extraEnv: { QWEN_LOCAL_OPEN_DIR: path }, timeoutMs }
2410
+ );
2411
+ }
2412
+ }
2413
+ __name(spawnWindowsTerminal, "spawnWindowsTerminal");
2414
+ async function spawnLinuxTerminal(path, timeoutMs) {
2415
+ const env = process.env;
2416
+ if (!env["DISPLAY"] && !env["WAYLAND_DISPLAY"]) {
2417
+ throw new LocalPathOpenUnavailableError("No display server available");
2418
+ }
2419
+ const terminal = findExecutableOnPath(env, linuxTerminalCandidates(env));
2420
+ if (terminal === void 0) {
2421
+ throw new LocalPathOpenUnavailableError(
2422
+ "No terminal emulator found on PATH"
2423
+ );
2424
+ }
2425
+ const name = terminal.split(/[\\/]/).pop();
2426
+ if (name === "gnome-terminal") {
2427
+ await spawnLongLived(terminal, [`--working-directory=${path}`], timeoutMs);
2428
+ return;
2429
+ }
2430
+ if (name === "konsole") {
2431
+ await spawnLongLived(terminal, ["--workdir", path], timeoutMs);
2432
+ return;
2433
+ }
2434
+ await spawnLongLived(
2435
+ terminal,
2436
+ ["-e", "sh", "-c", 'cd "$1" && exec "${SHELL:-/bin/sh}"', "sh", path],
2437
+ timeoutMs
2438
+ );
2439
+ }
2440
+ __name(spawnLinuxTerminal, "spawnLinuxTerminal");
2441
+ function spawnAndIgnoreExitCode(command, args, options = {}) {
2442
+ const { extraEnv, timeoutMs = OPEN_TIMEOUT_MS } = options;
2443
+ return new Promise((resolve2, reject) => {
2444
+ const child = spawn(command, [...args], {
2445
+ stdio: "ignore",
2446
+ ...extraEnv ? { env: { ...process.env, ...extraEnv } } : {}
2447
+ });
2448
+ const timer = setTimeout(() => {
2449
+ child.kill();
2450
+ reject(
2451
+ new SpawnHangError(`${command} did not exit within ${timeoutMs}ms`)
2452
+ );
2453
+ }, timeoutMs);
2454
+ child.once("error", (error) => {
2455
+ clearTimeout(timer);
2456
+ reject(error);
2457
+ });
2458
+ child.once("close", () => {
2459
+ clearTimeout(timer);
2460
+ resolve2();
2461
+ });
2462
+ });
2463
+ }
2464
+ __name(spawnAndIgnoreExitCode, "spawnAndIgnoreExitCode");
2465
+ function spawnLongLived(command, args, timeoutMs = OPEN_TIMEOUT_MS) {
2466
+ return new Promise((resolve2, reject) => {
2467
+ const child = spawn(command, [...args], {
2468
+ stdio: "ignore",
2469
+ detached: true
2470
+ });
2471
+ const timer = setTimeout(() => {
2472
+ child.kill();
2473
+ reject(
2474
+ new SpawnHangError(`${command} did not spawn within ${timeoutMs}ms`)
2475
+ );
2476
+ }, timeoutMs);
2477
+ child.once("error", (error) => {
2478
+ clearTimeout(timer);
2479
+ reject(error);
2480
+ });
2481
+ child.once("spawn", () => {
2482
+ clearTimeout(timer);
2483
+ child.unref();
2484
+ resolve2();
2485
+ });
2486
+ });
2487
+ }
2488
+ __name(spawnLongLived, "spawnLongLived");
2489
+
1994
2490
  // packages/cli/src/serve/types.ts
1995
2491
  init_esbuild_shims();
1996
2492
  var CAPABILITIES_SCHEMA_VERSION = 1;
@@ -2003,7 +2499,7 @@ import {
2003
2499
  basename,
2004
2500
  dirname,
2005
2501
  isAbsolute,
2006
- join,
2502
+ join as join3,
2007
2503
  relative,
2008
2504
  resolve
2009
2505
  } from "node:path";
@@ -2081,7 +2577,7 @@ async function revalidateManagedScratchRoot(root) {
2081
2577
  __name(revalidateManagedScratchRoot, "revalidateManagedScratchRoot");
2082
2578
  async function createManagedScratchDirectory(root) {
2083
2579
  await revalidateManagedScratchRoot(root);
2084
- const created = await mkdtemp(join(root.canonicalRoot, "scratch-"));
2580
+ const created = await mkdtemp(join3(root.canonicalRoot, "scratch-"));
2085
2581
  const canonical = realpathSync.native(created);
2086
2582
  if (!isManagedScratchChild(canonical, root.canonicalRoot)) {
2087
2583
  throw new Error("Managed scratch directory escaped its accepted root");
@@ -3053,6 +3549,7 @@ async function buildDaemonStatusResponse(detail, input) {
3053
3549
  writerIdleTimeoutMs: positiveFiniteOrNull(input.opts.writerIdleTimeoutMs),
3054
3550
  channelIdleTimeoutMs: bridgeSnapshot.limits.channelIdleTimeoutMs,
3055
3551
  sessionIdleTimeoutMs: bridgeSnapshot.limits.sessionIdleTimeoutMs,
3552
+ sessionPromptSettledCloseGraceMs: bridgeSnapshot.limits.sessionPromptSettledCloseGraceMs,
3056
3553
  acpConnectionCap: acpSnapshot?.connectionCap ?? null,
3057
3554
  acpPreAttachMaxFramesPerStream: acpSnapshot !== void 0 ? ACP_PRE_ATTACH_MAX_FRAMES_PER_STREAM : null,
3058
3555
  acpPreAttachMaxFramesPerConnection: acpSnapshot !== void 0 ? ACP_PRE_ATTACH_MAX_FRAMES_PER_CONNECTION : null,
@@ -3917,6 +4414,7 @@ export {
3917
4414
  createBridgeFileSystemAdapter,
3918
4415
  PathMutexRegistry,
3919
4416
  isDeepHealthQuery,
4417
+ installSelfOriginStripMiddleware,
3920
4418
  acpChildExtraArgs,
3921
4419
  CredentialStore,
3922
4420
  singleTokenCredentials,
@@ -3925,17 +4423,27 @@ export {
3925
4423
  listenerIdentityOfSocket,
3926
4424
  denyBrowserOriginCors,
3927
4425
  parseAllowOriginPatterns,
4426
+ findNonLoopbackHttpOrigin,
3928
4427
  MutableOriginAllowlist,
3929
4428
  allowOriginCors,
3930
4429
  hostAllowlist,
3931
4430
  bearerAuth,
3932
- requestWasAuthenticated,
4431
+ isTrustedLoopbackMode,
4432
+ requestHasOperatorAuthority,
3933
4433
  createMutationGate,
3934
4434
  ClientMcpSenderRegistry,
3935
4435
  createClientMcpServerProvider,
3936
4436
  SERVE_CAPABILITY_REGISTRY,
3937
4437
  getAdvertisedServeFeatures,
3938
4438
  getServeProtocolVersions,
4439
+ NativeDirectoryPickerUnavailableError,
4440
+ isNativeDirectoryPickerAvailable,
4441
+ pickNativeDirectory,
4442
+ LocalPathOpenUnavailableError,
4443
+ isLocalPathOpenAvailable,
4444
+ isLocalTerminalAvailable,
4445
+ openPathLocally,
4446
+ openTerminalLocally,
3939
4447
  CAPABILITIES_SCHEMA_VERSION,
3940
4448
  isManagedScratchChild,
3941
4449
  isScratchRootCompatible,