@qwen-code/qwen-code 0.23.3 → 0.23.4

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 (462) hide show
  1. package/bundled/computer-use/SKILL.md +46 -198
  2. package/bundled/computer-use/references/macos.md +208 -0
  3. package/bundled/computer-use/references/windows-linux.md +247 -0
  4. package/bundled/goal-draft/SKILL.md +10 -10
  5. package/bundled/qc-helper/docs/configuration/settings.md +81 -71
  6. package/bundled/qc-helper/docs/extension/getting-started-extensions.md +2 -0
  7. package/bundled/qc-helper/docs/extension/introduction.md +9 -3
  8. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  9. package/bundled/qc-helper/docs/features/agent-board.md +89 -0
  10. package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -21
  11. package/bundled/qc-helper/docs/features/channels/dws.md +5 -1
  12. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  13. package/bundled/qc-helper/docs/features/code-review.md +18 -4
  14. package/bundled/qc-helper/docs/features/commands.md +9 -0
  15. package/bundled/qc-helper/docs/features/computer-use.md +26 -8
  16. package/bundled/qc-helper/docs/features/cross-session-protocol.md +23 -5
  17. package/bundled/qc-helper/docs/features/followup-suggestions.md +17 -5
  18. package/bundled/qc-helper/docs/features/goals.md +22 -18
  19. package/bundled/qc-helper/docs/features/hooks.md +48 -37
  20. package/bundled/qc-helper/docs/features/skills.md +33 -3
  21. package/bundled/qc-helper/docs/features/status-line.md +2 -0
  22. package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
  23. package/bundled/qc-helper/docs/qwen-serve.md +7 -3
  24. package/bundled/review/SKILL.md +20 -10
  25. package/bundled/review/references/persistence.md +2 -0
  26. package/bundled/workflow-authoring/SKILL.md +442 -0
  27. package/bundled/workflow-creator/SKILL.md +1 -1
  28. package/chunks/{MaxSizedBox-D4LW7RZZ.js → MaxSizedBox-Q44AWRWI.js} +59 -55
  29. package/chunks/{StandaloneSessionPicker-ALTTRWUP.js → StandaloneSessionPicker-UKII7M7U.js} +83 -79
  30. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
  31. package/chunks/acp-subagent-executor-7RUAOXE7.js +141 -0
  32. package/chunks/{acpAgent-BBSW7XZG.js → acpAgent-5N3LHCO3.js} +1026 -355
  33. package/chunks/{agent-SQ6OY3QD.js → agent-LU5UJALC.js} +43 -39
  34. package/chunks/{agent-headless-RI2THRQ7.js → agent-headless-LTLADUGR.js} +43 -39
  35. package/chunks/{anthropicContentGenerator-JSKMKS6V.js → anthropicContentGenerator-H5YPXIDE.js} +37 -15
  36. package/chunks/{artifact-tool-PMYZCYNH.js → artifact-tool-MFGORTWZ.js} +59 -109
  37. package/chunks/{askUserQuestion-4M4YYIB4.js → askUserQuestion-WS4GUT7C.js} +3 -3
  38. package/chunks/{bridge-DAFMI72L.js → bridge-P34XQP3D.js} +63 -58
  39. package/chunks/{build-63BIOYWK.js → build-5KWQBWEQ.js} +1 -1
  40. package/chunks/{ca-KC2AISNS.js → ca-GZ4FDJU2.js} +3 -3
  41. package/chunks/{channel-management-service-OWDXVL7R.js → channel-management-service-AFVIT4VH.js} +8 -8
  42. package/chunks/{channel-settings-store-4I6JONT7.js → channel-settings-store-VE4ARRSR.js} +68 -64
  43. package/chunks/{channel-worker-group-F2ZZMLNS.js → channel-worker-group-JR6JOELM.js} +8 -8
  44. package/chunks/{channel-worker-manager-2SZLJJSJ.js → channel-worker-manager-AVKJEZFL.js} +8 -8
  45. package/chunks/{channel-worker-supervisor-ZFNWMG6D.js → channel-worker-supervisor-OOYY7BAQ.js} +5 -5
  46. package/chunks/{chunk-DAWWT2ID.js → chunk-2NRKLYID.js} +1374 -2164
  47. package/chunks/{chunk-53GWJOLP.js → chunk-2P2IXKDR.js} +3 -1
  48. package/chunks/{chunk-6JACAGYH.js → chunk-2S2WIGCM.js} +1 -1
  49. package/chunks/{chunk-IUVIBDKU.js → chunk-2YMRRI2C.js} +9 -10
  50. package/chunks/{chunk-MLQNSPRZ.js → chunk-3AYIKQTJ.js} +15 -5
  51. package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
  52. package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
  53. package/chunks/{chunk-BWAMMKIS.js → chunk-4XP7WXC4.js} +135 -6
  54. package/chunks/{chunk-W5ZQMAEM.js → chunk-4Y2I3CI3.js} +1 -1
  55. package/chunks/{chunk-HGEUHUEV.js → chunk-54B2LTKP.js} +1 -1
  56. package/chunks/{chunk-IRH27ZC2.js → chunk-5EZRLTLQ.js} +4 -4
  57. package/chunks/{chunk-DLH7YIX6.js → chunk-5FK4MSHB.js} +3 -3
  58. package/chunks/chunk-5JG3DAKS.js +1416 -0
  59. package/chunks/{chunk-CUEXOHQH.js → chunk-5ODRE7E5.js} +9 -15
  60. package/chunks/{chunk-532WHF4F.js → chunk-5VQR2DD7.js} +2 -2
  61. package/chunks/chunk-62MWBTS7.js +191 -0
  62. package/chunks/{chunk-YQHLFCPU.js → chunk-65ANUQSV.js} +32 -24
  63. package/chunks/{chunk-YBUMTY7B.js → chunk-66N6C4EH.js} +1 -1
  64. package/chunks/{chunk-AC6KDLH3.js → chunk-6TFZIA2L.js} +1 -1
  65. package/chunks/{chunk-Y2MYW47X.js → chunk-6WXVEDT2.js} +9 -2
  66. package/chunks/{chunk-NRXWJXJ4.js → chunk-7GKPKIUB.js} +15 -15
  67. package/chunks/chunk-7JGH6IMU.js +2780 -0
  68. package/chunks/{chunk-ZHKTKHMO.js → chunk-7MIBD3LG.js} +1 -1
  69. package/chunks/{chunk-HGAELO7B.js → chunk-7ML2ZLQF.js} +2 -2
  70. package/chunks/{chunk-3UXUOFO6.js → chunk-7W2Y3PZD.js} +9 -10
  71. package/chunks/{chunk-76RGWKLS.js → chunk-ABNX6E6K.js} +1 -1
  72. package/chunks/chunk-ACHCT36C.js +28 -0
  73. package/chunks/{chunk-NE624IVP.js → chunk-ADQUK6WA.js} +1 -1
  74. package/chunks/{chunk-PLLIWEM3.js → chunk-AEWCOE64.js} +2 -2
  75. package/chunks/{chunk-3FPYT6QC.js → chunk-ARDHE6MM.js} +23 -0
  76. package/chunks/{chunk-LILGKQ4B.js → chunk-AXZMWAJV.js} +156 -26
  77. package/chunks/{chunk-SYLECP23.js → chunk-BBMOAZ2E.js} +4 -4
  78. package/chunks/{chunk-RWVD5RRY.js → chunk-BDDE4YNP.js} +3 -3
  79. package/chunks/{chunk-TPKQIA7G.js → chunk-BSIOCNDK.js} +1 -1
  80. package/chunks/{chunk-U7O65WKL.js → chunk-BW2SMO6L.js} +1 -1
  81. package/chunks/{chunk-WBCPROWX.js → chunk-C4HBZQNH.js} +1 -1
  82. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  83. package/chunks/chunk-CFMZLE3L.js +75 -0
  84. package/chunks/{chunk-AXTFYDXT.js → chunk-CXXAZ2LZ.js} +1 -1
  85. package/chunks/{chunk-N7VWZDWW.js → chunk-DCRVSIK6.js} +4460 -3838
  86. package/chunks/{chunk-NJQTG2G3.js → chunk-DGTH4BSO.js} +11 -11
  87. package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
  88. package/chunks/{chunk-BWQLXU37.js → chunk-E4XZSQXB.js} +381 -86
  89. package/chunks/{chunk-2ALXPGB4.js → chunk-E6IR653O.js} +1 -1
  90. package/chunks/{chunk-R4Q2PEFV.js → chunk-E7HXORS7.js} +1 -1
  91. package/chunks/{chunk-ZKYR7QS4.js → chunk-EDB556X7.js} +2 -2
  92. package/chunks/{chunk-NUQVB25K.js → chunk-EKMJR7M3.js} +2 -2
  93. package/chunks/{chunk-Q5BD56BW.js → chunk-ELHAQ5H4.js} +7 -7
  94. package/chunks/{chunk-GSILBZLN.js → chunk-EOQXU3ZE.js} +2 -2
  95. package/chunks/{chunk-7QYWGTHB.js → chunk-EPVEPTI3.js} +44 -151
  96. package/chunks/{chunk-POC3YMHG.js → chunk-F2IRY2TD.js} +4 -4
  97. package/chunks/{chunk-S6Q6Q4P2.js → chunk-FBDHP23D.js} +1 -1
  98. package/chunks/{chunk-3I7W2POO.js → chunk-FGROOEKM.js} +5 -40
  99. package/chunks/{chunk-HNLMYDQE.js → chunk-FMLBBXHB.js} +13 -9
  100. package/chunks/{chunk-Z3GF56ME.js → chunk-FRISMWG3.js} +3 -3
  101. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  102. package/chunks/{chunk-IAEXTMED.js → chunk-GNV2SFO7.js} +173 -7
  103. package/chunks/{chunk-CXTPVBFA.js → chunk-GSS4SZNG.js} +100 -17
  104. package/chunks/{chunk-3XLK2QMY.js → chunk-H7L725Z6.js} +59 -16
  105. package/chunks/{chunk-6HUXPLB5.js → chunk-HEOH7JZY.js} +5 -5
  106. package/chunks/{chunk-DTNV6UZY.js → chunk-HFJSQ4GL.js} +10 -24
  107. package/chunks/{chunk-BZM5U74J.js → chunk-I6JRN375.js} +724 -468
  108. package/chunks/{chunk-VZUCTJ2P.js → chunk-I6YJZGHS.js} +10 -10
  109. package/chunks/{chunk-RZHU3K6M.js → chunk-IAS753HG.js} +2 -20
  110. package/chunks/{chunk-EDMXGXAK.js → chunk-IBRQG2MP.js} +10 -13
  111. package/chunks/{chunk-NOAG7N22.js → chunk-IGLX6UXJ.js} +2 -2
  112. package/chunks/chunk-INGBUYL6.js +230 -0
  113. package/chunks/{chunk-IL5M5NYD.js → chunk-IR5CVY5G.js} +11 -9
  114. package/chunks/{chunk-OX7IZ2G5.js → chunk-ITOB3LRT.js} +4 -4
  115. package/chunks/{chunk-LDVNJZGH.js → chunk-IUXWAKVS.js} +17 -8
  116. package/chunks/{chunk-2PJRI3EH.js → chunk-J4DRBDHX.js} +218 -43
  117. package/chunks/{chunk-XGYHNWL3.js → chunk-J7LBAKDH.js} +3 -3
  118. package/chunks/{chunk-W5FIP7FC.js → chunk-JLZ5YCMV.js} +5 -5
  119. package/chunks/{chunk-LG5Y4OWO.js → chunk-JRHKM3YQ.js} +2 -2
  120. package/chunks/{chunk-2ZN3O5FT.js → chunk-JZ3FFPES.js} +6 -6
  121. package/chunks/{chunk-NMCDMLHL.js → chunk-K2DCZ6SZ.js} +50 -35
  122. package/chunks/{chunk-F42YYSCK.js → chunk-KLGCF6G7.js} +8 -8
  123. package/chunks/{chunk-K2OJUPOE.js → chunk-KP2FHIFR.js} +12 -0
  124. package/chunks/{chunk-IV7GDNKC.js → chunk-KZCK5JUN.js} +4 -4
  125. package/chunks/{acp-subagent-executor-LEUN3N7N.js → chunk-L56E7YUM.js} +11 -110
  126. package/chunks/{chunk-NMRCXKQ5.js → chunk-L5BVU4JW.js} +3 -3
  127. package/chunks/{chunk-ZW2EUO2A.js → chunk-L6DIANLD.js} +1 -1
  128. package/chunks/{chunk-GOXQL4YH.js → chunk-LFNK4DGQ.js} +2 -2
  129. package/chunks/{chunk-UKZ45TJL.js → chunk-LMDMYMSS.js} +420 -219
  130. package/chunks/chunk-LMJSPC55.js +260 -0
  131. package/chunks/{chunk-X6K77VHC.js → chunk-LWWRJRCD.js} +1 -1
  132. package/chunks/{chunk-UXEO7E3V.js → chunk-LYD3T3H7.js} +1 -0
  133. package/chunks/{chunk-HBQ2NXOU.js → chunk-M6MID3FA.js} +2 -2
  134. package/chunks/{chunk-E4UEO3XM.js → chunk-ME4JBHSB.js} +324 -2
  135. package/chunks/{chunk-MF6E7FSA.js → chunk-MFPAVOYJ.js} +8 -201
  136. package/chunks/{chunk-BV6Q5HMY.js → chunk-MJHLKWGJ.js} +8 -7
  137. package/chunks/{chunk-NFYEQRLG.js → chunk-MQRLLBMQ.js} +1 -1
  138. package/chunks/{chunk-O4KNCAX4.js → chunk-NCPFOLM2.js} +11 -0
  139. package/chunks/{chunk-2SZH22YO.js → chunk-NJ2OFVUX.js} +115 -97
  140. package/chunks/{chunk-6MBXY6WM.js → chunk-NRQI3PGS.js} +1 -1
  141. package/chunks/{chunk-3CZ2BQV6.js → chunk-NXUZFW3G.js} +49 -19
  142. package/chunks/{chunk-X7UJKOHZ.js → chunk-O75ZXPOX.js} +4 -6
  143. package/chunks/{chunk-5GLDOLNQ.js → chunk-OWUAZXXN.js} +4 -3
  144. package/chunks/{chunk-XBZTAGB7.js → chunk-OXDQETZA.js} +1 -1
  145. package/chunks/{chunk-2UWQX4FP.js → chunk-OZEV3R3S.js} +1 -1
  146. package/chunks/{chunk-SBRX4BDI.js → chunk-P225AM5U.js} +2 -2
  147. package/chunks/{chunk-ZU47FBOC.js → chunk-P6XVYPWA.js} +126 -12
  148. package/chunks/{chunk-MHAADZOZ.js → chunk-PCIYPEYV.js} +3 -3
  149. package/chunks/{chunk-SSGAAWLY.js → chunk-PNACDSCO.js} +95 -73
  150. package/chunks/chunk-PRWRNC64.js +32 -0
  151. package/chunks/{chunk-7BXXIQG4.js → chunk-PVKEYO5D.js} +36 -72
  152. package/chunks/{chunk-FCQJLMA2.js → chunk-Q3TFRP5G.js} +178 -8
  153. package/chunks/{chunk-DYFOSJHU.js → chunk-QM2MRAG4.js} +2756 -1153
  154. package/chunks/{chunk-ZKZHSB5W.js → chunk-QR4Q425T.js} +9 -9
  155. package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
  156. package/chunks/{chunk-3BTSSIJO.js → chunk-RHTNPDGD.js} +99 -14
  157. package/chunks/{chunk-OLTN767L.js → chunk-RJFUPP3F.js} +2 -2
  158. package/chunks/chunk-RKXAOP6F.js +154 -0
  159. package/chunks/{chunk-TP6FYVQT.js → chunk-RSWBT7AZ.js} +33 -1
  160. package/chunks/{chunk-E7LB57MB.js → chunk-RWKR4VNK.js} +6 -6
  161. package/chunks/chunk-S7UQ3V2H.js +87 -0
  162. package/chunks/{chunk-N6VQ37ZZ.js → chunk-SFL6U7U7.js} +1 -1
  163. package/chunks/{chunk-SODMFNAR.js → chunk-SQCZDHBQ.js} +5 -5
  164. package/chunks/{chunk-MOS5OAOG.js → chunk-SROLVJFY.js} +6 -6
  165. package/chunks/{chunk-3KQBQ6FM.js → chunk-SYDMM6IX.js} +190 -28
  166. package/chunks/{chunk-HUXPEUFL.js → chunk-SYROIHU7.js} +1 -1
  167. package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
  168. package/chunks/{chunk-RLLRJJDR.js → chunk-TJDUJSVH.js} +2 -2
  169. package/chunks/{chunk-HBU7EKY4.js → chunk-TRKIKBUW.js} +45 -15
  170. package/chunks/{chunk-GCDXVPFK.js → chunk-TW2RLZPC.js} +31 -7
  171. package/chunks/chunk-U6H3XTFA.js +95 -0
  172. package/chunks/{chunk-NHJKAR6E.js → chunk-UGEDTVL6.js} +972 -18
  173. package/chunks/{chunk-KOKPXIAN.js → chunk-UL4DXZMP.js} +3 -3
  174. package/chunks/{chunk-MSNHNAQZ.js → chunk-UUT7EFX3.js} +3 -3
  175. package/chunks/{chunk-JXNIF2O5.js → chunk-V545KI73.js} +1 -1
  176. package/chunks/{chunk-7ICHPMBQ.js → chunk-VELFTVEO.js} +4 -4
  177. package/chunks/chunk-VGY2RGXL.js +100 -0
  178. package/chunks/{chunk-5KI7ZDTB.js → chunk-VQ3SUPLA.js} +24 -12
  179. package/chunks/{chunk-TBEXLLAO.js → chunk-VRQZESKP.js} +1 -1
  180. package/chunks/{chunk-FN3JNDRU.js → chunk-VVI7MK3V.js} +3 -3
  181. package/chunks/{chunk-EUURTIV6.js → chunk-WBSJ6VPZ.js} +10 -2
  182. package/chunks/{chunk-NLNQNBZ2.js → chunk-WD6YQI5M.js} +1 -1
  183. package/chunks/{chunk-KFZYGSJN.js → chunk-WDB57HEI.js} +3 -3
  184. package/chunks/chunk-WFNEY5G7.js +347 -0
  185. package/chunks/{chunk-XKBFYTCD.js → chunk-WK6DEH3Q.js} +46 -0
  186. package/chunks/{chunk-EVTNACMT.js → chunk-WKQX4FND.js} +12 -12
  187. package/chunks/{chunk-36HCNKDS.js → chunk-WKVZES7O.js} +65 -14
  188. package/chunks/{chunk-NHCZJQE4.js → chunk-WLFILD4T.js} +6 -6
  189. package/chunks/{chunk-JYKWOREU.js → chunk-WMEX6CFP.js} +13 -3
  190. package/chunks/{chunk-6W4HBUA2.js → chunk-WNQRJXKP.js} +1 -1
  191. package/chunks/{chunk-7APZIRH3.js → chunk-X7GOO6VM.js} +5 -5
  192. package/chunks/{chunk-VX63RJXE.js → chunk-XX5HQLCZ.js} +7 -0
  193. package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
  194. package/chunks/{chunk-V2P3DOQR.js → chunk-YDFOHRS5.js} +1 -1
  195. package/chunks/{chunk-QMUYLYT5.js → chunk-YGFJ6BRT.js} +1 -1
  196. package/chunks/{chunk-LK2WUCDQ.js → chunk-YM6KUQ2S.js} +1 -1
  197. package/chunks/chunk-Z72PLR74.js +36 -0
  198. package/chunks/{chunk-BHTYRHJF.js → chunk-ZJ7JQUGY.js} +4 -1
  199. package/chunks/{chunk-4ALNJDHL.js → chunk-ZKIAGIGH.js} +87 -4
  200. package/chunks/{chunk-VG3Q2NC4.js → chunk-ZNI3YJHS.js} +32 -12
  201. package/chunks/{chunk-DT75RKNH.js → chunk-ZXUKZHMV.js} +3 -3
  202. package/chunks/{chunk-Q2LVVIKF.js → chunk-ZZUXUBEB.js} +29 -12
  203. package/chunks/codex-subagent-executor-WCRCJMQK.js +586 -0
  204. package/chunks/{config-utils-L6KLDYIV.js → config-utils-73C3RGYN.js} +60 -56
  205. package/chunks/{contextCommand-UYEH7NIU.js → contextCommand-4ZDPQJHD.js} +58 -54
  206. package/chunks/{core-runtime-NVHT3Z3V.js → core-runtime-ZDUA5DYE.js} +58 -55
  207. package/chunks/{create-sub-session-YWASE5VH.js → create-sub-session-JK3SSJKO.js} +169 -89
  208. package/chunks/{create-sub-session-TIGCFGCS.js → create-sub-session-MSGNIM37.js} +5 -2
  209. package/chunks/{cron-create-AKWX67FO.js → cron-create-U2JJ5CCF.js} +3 -3
  210. package/chunks/{cron-delete-XPB6IYZJ.js → cron-delete-7DM4LJWD.js} +2 -2
  211. package/chunks/{cron-list-XBKO4WU5.js → cron-list-VCUSZK2Y.js} +2 -2
  212. package/chunks/{daemon-G5TYKZD6.js → daemon-NJB4PWZ7.js} +3 -1
  213. package/chunks/{daemon-git-worktree-guard-FOW4RQSK.js → daemon-git-worktree-guard-QU2CCJIE.js} +58 -54
  214. package/chunks/{daemon-status-provider-O5KQZYMP.js → daemon-status-provider-2PO7NLDQ.js} +68 -63
  215. package/chunks/{daemon-trust-policy-3ATXEON7.js → daemon-trust-policy-IMDTIUWB.js} +64 -60
  216. package/chunks/{daemon-trust-policy-monitor-7MCNDNEC.js → daemon-trust-policy-monitor-6IVBNUAD.js} +64 -60
  217. package/chunks/{de-UU2YTO37.js → de-VGY3VNBU.js} +3 -3
  218. package/chunks/{deferred-core-runtime-JK5IXL5K.js → deferred-core-runtime-3AZUE7F3.js} +56 -52
  219. package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
  220. package/chunks/{display-image-NAH3AZ63.js → display-image-QTHALY6N.js} +3 -3
  221. package/chunks/{dist-KLZ7XGEQ.js → dist-2QYIVNS6.js} +1 -4
  222. package/chunks/{dist-AHJYPSJL.js → dist-GUB7QRYA.js} +2 -5
  223. package/chunks/{dist-ZXTZTE54.js → dist-MPUZZOG5.js} +4 -17
  224. package/chunks/{dist-F2DVGTL3.js → dist-NIOJXMGY.js} +111 -101
  225. package/chunks/{dist-KJGRVIGJ.js → dist-PA7WPFVE.js} +5 -36
  226. package/chunks/{dist-AIKC5E5P.js → dist-SE4J6Z4O.js} +43 -669
  227. package/chunks/{dist-H6G3K26N.js → dist-T6DDPDLQ.js} +14 -34
  228. package/chunks/{dist-GWNQVPZT.js → dist-TFGETXFN.js} +10 -33
  229. package/chunks/{dist-ZA52JXAS.js → dist-VDLSBCLM.js} +1 -5
  230. package/chunks/{edit-SY35KYIE.js → edit-HXMBABZU.js} +46 -42
  231. package/chunks/{en-CAJHTIQT.js → en-E5ZO5TZW.js} +5 -3
  232. package/chunks/{enter-worktree-54L5QJ3N.js → enter-worktree-CAARFWBI.js} +6 -5
  233. package/chunks/{enterPlanMode-HXX6KQJR.js → enterPlanMode-KAMW2I2C.js} +43 -39
  234. package/chunks/{environment-DKXHG4HB.js → environment-HYMXOTVB.js} +59 -55
  235. package/chunks/{errors-ADY7LQJJ.js → errors-NQRH7NAM.js} +58 -54
  236. package/chunks/exec-RPKEY6HP.js +505 -0
  237. package/chunks/{exit-worktree-EORJDKDS.js → exit-worktree-JXGGUOBP.js} +6 -5
  238. package/chunks/{exitPlanMode-HSK2CQI6.js → exitPlanMode-SMEBS5EF.js} +43 -39
  239. package/chunks/{fast-path-U636VWN2.js → fast-path-CUWUTJUR.js} +10 -10
  240. package/chunks/{fast-path-settings-V7MI7EZJ.js → fast-path-settings-XDYX7X5Z.js} +2 -2
  241. package/chunks/{fr-HKNWVXRJ.js → fr-UAZJJH5N.js} +3 -3
  242. package/chunks/{glob-GUGGTH5L.js → glob-VOM5DVZ3.js} +43 -39
  243. package/chunks/{goal-tools-PXYRSQGX.js → goal-tools-YBYJ5KPM.js} +49 -41
  244. package/chunks/{grep-3PKFKLCA.js → grep-H2I33VAO.js} +8 -3
  245. package/chunks/{handleAutoUpdate-5KHS4HIN.js → handleAutoUpdate-4CEHNJ2F.js} +61 -57
  246. package/chunks/{i18n-KSGKMUPT.js → i18n-G7ODGUGN.js} +57 -53
  247. package/chunks/{image-gen-OCCR2WWU.js → image-gen-5G2TQ3DY.js} +6 -5
  248. package/chunks/{initializer-YYT5XEZF.js → initializer-GZ73HSOA.js} +64 -60
  249. package/chunks/{installationInfo-UNSBPYW2.js → installationInfo-PV472I52.js} +57 -53
  250. package/chunks/{ja-GJS5RZGU.js → ja-2RITCMAJ.js} +3 -3
  251. package/chunks/list-D4A7LFOF.js +133 -0
  252. package/chunks/{list-agents-QLDXS5OD.js → list-agents-EWDCEPIW.js} +3 -3
  253. package/chunks/{llm-XGGLBGPH.js → llm-PJU4VT3K.js} +161 -125
  254. package/chunks/{llm-content-generator-ZHQQT5W7.js → llm-content-generator-ITOMDK65.js} +14 -7
  255. package/chunks/{loadedSettingsAdapter-3DXLASK7.js → loadedSettingsAdapter-NNU4BY5Q.js} +64 -60
  256. package/chunks/{loggingContentGenerator-V72OCCJO.js → loggingContentGenerator-SMI2AJYY.js} +47 -43
  257. package/chunks/{loop-wakeup-HHMYIC7Z.js → loop-wakeup-VG6CGBQA.js} +4 -4
  258. package/chunks/{ls-N7ABR6HI.js → ls-6ZB3BEIR.js} +1 -1
  259. package/chunks/{lsp-LTOFWG5P.js → lsp-M54FQARP.js} +5 -1
  260. package/chunks/{managed-npm-update-HV5LPZH2.js → managed-npm-update-AN5RDI5D.js} +57 -53
  261. package/chunks/mcp-RIIEZ7NJ.js +127 -0
  262. package/chunks/model-configuration-E5M35A3M.js +140 -0
  263. package/chunks/modelConfigUtils-43SY2EDS.js +119 -0
  264. package/chunks/{monitor-TLBNM4MV.js → monitor-5WYDOXLI.js} +43 -39
  265. package/chunks/{nonInteractiveCli-LSJSQ2W4.js → nonInteractiveCli-D3YFYXNB.js} +112 -107
  266. package/chunks/{notebook-edit-OSPOLZP6.js → notebook-edit-GQNFJTIR.js} +45 -41
  267. package/chunks/{openaiContentGenerator-BE4S5TRD.js → openaiContentGenerator-VJAKFZ32.js} +24 -19
  268. package/chunks/{openaiResponsesContentGenerator-RTCAJ5V5.js → openaiResponsesContentGenerator-AWRYZLJU.js} +110 -19
  269. package/chunks/{pidfile-H32FEPWA.js → pidfile-I5SWEJDX.js} +56 -52
  270. package/chunks/{processUtils-SSLIPDEA.js → processUtils-NSYM3SKR.js} +2 -2
  271. package/chunks/{prompt-terminal-ledger-I5SLL6UF.js → prompt-terminal-ledger-KWBANHUE.js} +57 -53
  272. package/chunks/{pt-FXMYXEUV.js → pt-5ZF7ZQUV.js} +3 -3
  273. package/chunks/{qwenContentGenerator-TMQC623Z.js → qwenContentGenerator-LR6HNFBU.js} +47 -43
  274. package/chunks/{qwenOAuth2-3ZRQHHTC.js → qwenOAuth2-WIEUEFEY.js} +5 -4
  275. package/chunks/{read-file-T2QAIZE2.js → read-file-LOSUPKDX.js} +9 -8
  276. package/chunks/{read-mcp-resource-B37WANAQ.js → read-mcp-resource-LPSWXVOD.js} +1 -1
  277. package/chunks/{record-artifact-OAXWXZ5D.js → record-artifact-PXMNP7GZ.js} +3 -3
  278. package/chunks/{record-source-D7R7X3GT.js → record-source-2GSY5JD5.js} +6 -6
  279. package/chunks/{report-findings-AR3VC6EQ.js → report-findings-W6GR7SYZ.js} +4 -4
  280. package/chunks/{request-shutdown-IKNWTX5M.js → request-shutdown-53SNYGVR.js} +5 -5
  281. package/chunks/{resumeHistoryUtils-QLKDH5GY.js → resumeHistoryUtils-6IFK3MQO.js} +63 -59
  282. package/chunks/{ripGrep-YGWL7KCV.js → ripGrep-MBSYRHNP.js} +13 -11
  283. package/chunks/{ru-RMHURE5U.js → ru-7BNZFQKG.js} +3 -3
  284. package/chunks/{run-qwen-serve-26KZDECC.js → run-qwen-serve-WYEEYIHV.js} +314 -127
  285. package/chunks/{runtime-BMEIVDDG.js → runtime-FVTTOB4E.js} +69 -65
  286. package/chunks/{scheduled-tasks-NCFPP6VQ.js → scheduled-tasks-RN6DUY7E.js} +66 -60
  287. package/chunks/{scheduler-47TVMUVN.js → scheduler-T7DDWINW.js} +58 -54
  288. package/chunks/{sdk-exporters-http-VWTF4W6K.js → sdk-exporters-http-3R2TRQHE.js} +2 -1
  289. package/chunks/{sdk-impl-G6FVTBQZ.js → sdk-impl-4WF3VZ2F.js} +3 -3
  290. package/chunks/{send-message-TWOGWCBG.js → send-message-UMJKN27Q.js} +7 -7
  291. package/chunks/{serve-KL3G6LQQ.js → serve-LVMPJBTV.js} +66 -62
  292. package/chunks/{server-LBPYXZ5G.js → server-U7K7EJEP.js} +783 -350
  293. package/chunks/{session-YG6742LO.js → session-BQNC5QUN.js} +117 -112
  294. package/chunks/{session-attachments-root-OUBQDYC4.js → session-attachments-root-LQDHWZST.js} +56 -52
  295. package/chunks/{session-pr-refresh-EKGMYNAW.js → session-pr-refresh-J7DQYX2I.js} +66 -60
  296. package/chunks/{settings-DDNHJX2L.js → settings-WAWJIZHR.js} +67 -63
  297. package/chunks/{shell-KUCXWITU.js → shell-WFJEYGQI.js} +43 -39
  298. package/chunks/{skill-JQLKPNWZ.js → skill-RHQWSDOK.js} +128 -23
  299. package/chunks/{skill-settings-XERQCUXZ.js → skill-settings-ALFUQQD6.js} +72 -60
  300. package/chunks/{spawnChannel-GQ45QFGB.js → spawnChannel-D35CB5JB.js} +60 -55
  301. package/chunks/{standalone-update-PRF3ILGZ.js → standalone-update-NMMY6CAO.js} +58 -54
  302. package/chunks/{start-opentui-ui-JDSOZE3N.js → start-opentui-ui-F6BN46GE.js} +2693 -2160
  303. package/chunks/{startInteractiveUI-RRW3JVHN.js → startInteractiveUI-E6U7L5AD.js} +1610 -1773
  304. package/chunks/{syntheticOutput-F6F27JMK.js → syntheticOutput-EX5L5GYI.js} +2 -2
  305. package/chunks/{task-create-Y623TBHB.js → task-create-75HVPEAH.js} +7 -7
  306. package/chunks/{task-list-FCPEEGWL.js → task-list-ZLJSMRFA.js} +2 -2
  307. package/chunks/{task-stop-QTKZXLPH.js → task-stop-MD7P6QGK.js} +1 -1
  308. package/chunks/{task-update-YLSXF25N.js → task-update-RI7QNVDP.js} +20 -13
  309. package/chunks/{team-create-5DRLOLOE.js → team-create-DKAJ3OUY.js} +43 -39
  310. package/chunks/{team-delete-S7TLHZCF.js → team-delete-RIDINW6I.js} +1 -1
  311. package/chunks/{team-plan-approval-MWSGAL5T.js → team-plan-approval-ZUG32DAK.js} +43 -39
  312. package/chunks/{terminal-image-renderer-H7PD4FQW.js → terminal-image-renderer-U3Z5PMGO.js} +58 -54
  313. package/chunks/{theme-manager-7AV73D6R.js → theme-manager-GA65ZFKB.js} +56 -52
  314. package/chunks/{todoWrite-5QI2H2FW.js → todoWrite-XSTG2VT5.js} +6 -3
  315. package/chunks/{tool-search-UGYTBLUV.js → tool-search-XCEN7VXX.js} +17 -12
  316. package/chunks/{total-session-admission-JIHSTJ5S.js → total-session-admission-FZSHBR32.js} +63 -58
  317. package/chunks/{trustedFolders-5VCBXFOP.js → trustedFolders-SXPNZESV.js} +57 -53
  318. package/chunks/{update-relaunch-4LF3APCV.js → update-relaunch-QOUTZZ7Q.js} +5 -5
  319. package/chunks/{updateCheck-4T3WUE5F.js → updateCheck-DYRX7M34.js} +60 -56
  320. package/chunks/{useAutoAcceptIndicator-UMGB64Z6.js → useAutoAcceptIndicator-QOG7LUT3.js} +68 -64
  321. package/chunks/{validateNonInterActiveAuth-GFJ72U2C.js → validateNonInterActiveAuth-FJPAEMDD.js} +109 -104
  322. package/chunks/{version-EAAZN4T2.js → version-5IC46F2Z.js} +1 -1
  323. package/chunks/{web-fetch-VRU3A2NI.js → web-fetch-WSW4QZBA.js} +15 -13
  324. package/chunks/web-search-5QFKXWUV.js +39 -0
  325. package/chunks/{web-shell-static-CCN4JZEE.js → web-shell-static-T7UGLVE4.js} +2 -7
  326. package/chunks/{workflow-UHPFALVZ.js → workflow-ZF4DLK4V.js} +179 -79
  327. package/chunks/workspace-providers-status-4E4XWBFS.js +133 -0
  328. package/chunks/{workspace-registration-store-A7RGKW62.js → workspace-registration-store-M3QEP27F.js} +2 -2
  329. package/chunks/{workspace-registry-C2NGE6SD.js → workspace-registry-H2ENI5G2.js} +63 -58
  330. package/chunks/{workspace-runtime-coordinator-QKMZ24YF.js → workspace-runtime-coordinator-CRRNB7PC.js} +66 -59
  331. package/chunks/{workspace-service-RQTTAGGC.js → workspace-service-GJ2GOHKU.js} +70 -65
  332. package/chunks/workspace-skills-status-CRWHV35X.js +130 -0
  333. package/chunks/{workspace-trust-reconciler-KFWATZUU.js → workspace-trust-reconciler-GG2JA7KI.js} +73 -68
  334. package/chunks/{write-file-DPVB2SBQ.js → write-file-LZ4EMF36.js} +45 -41
  335. package/chunks/{zh-TW-2K2WRFPY.js → zh-TW-7PRVUGLW.js} +5 -3
  336. package/chunks/{zh-S5V3Z5CR.js → zh-V2EYTYJP.js} +5 -3
  337. package/chunks/{zoom-image-S7AWLAPC.js → zoom-image-J5IMS3WD.js} +11 -10
  338. package/cli.js +18 -17
  339. package/codeModeHost.js +4425 -0
  340. package/export-transcript-document.css +1 -1
  341. package/export-transcript-document.js +151 -151
  342. package/locales/ca.js +5 -6
  343. package/locales/de.js +5 -6
  344. package/locales/en.js +7 -6
  345. package/locales/fr.js +6 -6
  346. package/locales/ja.js +5 -6
  347. package/locales/pt.js +5 -6
  348. package/locales/ru.js +6 -6
  349. package/locales/zh-TW.js +7 -6
  350. package/locales/zh.js +7 -6
  351. package/package.json +4 -3
  352. package/web-shell/assets/{abnfDiagram-VCTEODGH-nU24rpIE.js → abnfDiagram-VCTEODGH-S_JCiANq.js} +1 -1
  353. package/web-shell/assets/{arc-D1hTu8QI.js → arc-DP-839Xn.js} +1 -1
  354. package/web-shell/assets/architectureDiagram-5GKGNRK7-C8rCd2KK.js +36 -0
  355. package/web-shell/assets/blockDiagram-NRAW4CY4-DQR82jwr.js +129 -0
  356. package/web-shell/assets/{c4Diagram-UCG6FXSJ-kEFoC1ei.js → c4Diagram-UCG6FXSJ-D21PNMRP.js} +4 -4
  357. package/web-shell/assets/channel-BgGrpX_z.js +1 -0
  358. package/web-shell/assets/{chunk-2Q5K7J3B-DbT9wS7j.js → chunk-2Q5K7J3B-KdDInGLi.js} +1 -1
  359. package/web-shell/assets/{chunk-5VM5RSS4-CNbULt6O.js → chunk-5VM5RSS4-ltb7zRmH.js} +1 -1
  360. package/web-shell/assets/{chunk-F27PBJKO-CbQRy4Tb.js → chunk-F27PBJKO-DcpQA0Ng.js} +1 -1
  361. package/web-shell/assets/chunk-G27WJ6UU-C8NDZxcy.js +231 -0
  362. package/web-shell/assets/chunk-JWPE2WC7-hXhhHTs1.js +1 -0
  363. package/web-shell/assets/chunk-LCL6LL3I-CLaOR-Hl.js +206 -0
  364. package/web-shell/assets/chunk-POPQ4Y6H-Y5_qlB1N.js +1 -0
  365. package/web-shell/assets/{chunk-SVP7TREG-DyBb2Axj.js → chunk-SVP7TREG-BWX2Voh7.js} +4 -4
  366. package/web-shell/assets/{chunk-XXDRQBXY-BIA0eb5B.js → chunk-XXDRQBXY-1wmj_kXI.js} +1 -1
  367. package/web-shell/assets/classDiagram-DTDB5LWJ-jUH7ADYs.js +1 -0
  368. package/web-shell/assets/classDiagram-v2-JRS7N3AN-jUH7ADYs.js +1 -0
  369. package/web-shell/assets/cose-bilkent-JH36ORCC-DpLc-cdd.js +1 -0
  370. package/web-shell/assets/cynefin-OW5HDTMX-DhxGiPZW.js +178 -0
  371. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-LENf_IUy.js → cynefinDiagram-5FMLGOSQ-Dl3jfBry.js} +1 -1
  372. package/web-shell/assets/{cytoscape.esm-CUqq0XTU.js → cytoscape.esm-DJK6lGiH.js} +3 -3
  373. package/web-shell/assets/dagre-3AP2YEHR-C8FA8vJk.js +4 -0
  374. package/web-shell/assets/diagram-S7CK7UJ4-D-quIUtW.js +30 -0
  375. package/web-shell/assets/diagram-UQ7AKVKN-Bjo09Uts.js +41 -0
  376. package/web-shell/assets/diagram-VSXAHHWV-IoI3ttq4.js +3 -0
  377. package/web-shell/assets/diagram-VX7I27RA-BKyOZ5SO.js +24 -0
  378. package/web-shell/assets/diagram-Z3DM3KII-Cu_OHEhw.js +24 -0
  379. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BGpiquRm.js → ebnfDiagram-PWID7BFC-UVB-bbPg.js} +1 -1
  380. package/web-shell/assets/{erDiagram-SSCWMZ5O-D0besu_U.js → erDiagram-SSCWMZ5O-l8drddto.js} +13 -13
  381. package/web-shell/assets/flowDiagram-A5DVABFB-DU1I_VAI.js +168 -0
  382. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CNlsAeNr.js → ganttDiagram-EL5Y4UJY-BLRH05uB.js} +1 -1
  383. package/web-shell/assets/gitGraphDiagram-WWUBYQGX-Czg_BkRE.js +106 -0
  384. package/web-shell/assets/index-CmMV8Jla.js +3 -0
  385. package/web-shell/assets/{index-CGT341lL.js → index-DohPy72Z.js} +1 -1
  386. package/web-shell/assets/index-DyMtNYuu.js +2207 -0
  387. package/web-shell/assets/index-n6N-2a3v.css +36 -0
  388. package/web-shell/assets/{infoDiagram-RXCK75RN-Bpai64Ll.js → infoDiagram-RXCK75RN-BpBvjkro.js} +1 -1
  389. package/web-shell/assets/ishikawaDiagram-5VMMS53U-phy1l3jm.js +70 -0
  390. package/web-shell/assets/{journeyDiagram-EYS64GPL-iz_DKgFX.js → journeyDiagram-EYS64GPL-oY-9LgVS.js} +1 -1
  391. package/web-shell/assets/kanban-definition-3QL26DDD-slZoy-sc.js +89 -0
  392. package/web-shell/assets/{layout-qEvKgnvU.js → layout-0hnn_P9l.js} +1 -1
  393. package/web-shell/assets/{linear-C6lklGdq.js → linear-7Wqe8DRy.js} +1 -1
  394. package/web-shell/assets/mermaid.core-BaK8n0bq.js +312 -0
  395. package/web-shell/assets/mindmap-definition-FBJOCRG2-BedUdy_E.js +96 -0
  396. package/web-shell/assets/{pegDiagram-XKGWAZYB-BhD0q0i6.js → pegDiagram-XKGWAZYB-DQLRdmxq.js} +1 -1
  397. package/web-shell/assets/pieDiagram-E7YTZNPT-UC20w9-5.js +39 -0
  398. package/web-shell/assets/quadrantDiagram-AXDQQJYC-CQx2Hmk3.js +7 -0
  399. package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
  400. package/web-shell/assets/{railroadDiagram-O6MQD6OU-E1g2KIFK.js → railroadDiagram-O6MQD6OU-2UEJe_y-.js} +1 -1
  401. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CuerYJOe.js → requirementDiagram-EFPCY7ZU-DOAJggB4.js} +13 -13
  402. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CqWyCZGA.js → sankeyDiagram-P5KCCOFB-DnQ_qJo7.js} +7 -7
  403. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-B-YWb8x4.js → sequenceDiagram-WJ2MYXX4-DZrZUoCo.js} +16 -16
  404. package/web-shell/assets/sizeCapture-X5ZJPWSS-B5G4GDQB.js +1 -0
  405. package/web-shell/assets/{stateDiagram-HBIQ2CUA-C8LDpNHS.js → stateDiagram-HBIQ2CUA-Bn1cT0qF.js} +1 -1
  406. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BF3xtNvJ.js +1 -0
  407. package/web-shell/assets/swimlanes-XN3QIQJK-Bzhcdn87.js +1 -0
  408. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-B753mA3E.js +8 -0
  409. package/web-shell/assets/timeline-definition-24CTP7MA-BqZ_3D10.js +120 -0
  410. package/web-shell/assets/vennDiagram-4TSXK5OY-z9kw1kmm.js +34 -0
  411. package/web-shell/assets/wardleyDiagram-VM6X3IG4-Cydp1zJW.js +78 -0
  412. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-ruD2Wjhg.js → xychartDiagram-S5SC5T6Z-j4X1lQKo.js} +1 -1
  413. package/web-shell/index.html +2 -2
  414. package/chunks/chunk-7Q2AXRDJ.js +0 -114
  415. package/chunks/chunk-AEY27Z35.js +0 -1411
  416. package/chunks/chunk-CFKIH3D3.js +0 -50
  417. package/chunks/chunk-HWVUSYSN.js +0 -126
  418. package/chunks/chunk-QHMLYMMS.js +0 -32
  419. package/chunks/chunk-SAH4BD2J.js +0 -92
  420. package/chunks/chunk-TWUKBNWM.js +0 -86
  421. package/chunks/chunk-ZTTC7T4X.js +0 -126
  422. package/chunks/list-YL6LDQKQ.js +0 -129
  423. package/chunks/mcp-IYVSIW6O.js +0 -123
  424. package/chunks/web-search-NEGYQNDJ.js +0 -912
  425. package/chunks/workspace-providers-status-AEYISSU2.js +0 -127
  426. package/chunks/workspace-skills-status-5HWZU3HX.js +0 -126
  427. package/web-shell/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.js +0 -36
  428. package/web-shell/assets/blockDiagram-NRAW4CY4-C3pddUNg.js +0 -129
  429. package/web-shell/assets/channel-Blod4z1X.js +0 -1
  430. package/web-shell/assets/chunk-G27WJ6UU-CVbXTxYk.js +0 -231
  431. package/web-shell/assets/chunk-JWPE2WC7-D89c_BXy.js +0 -1
  432. package/web-shell/assets/chunk-LCL6LL3I-B7-I_9KB.js +0 -206
  433. package/web-shell/assets/chunk-POPQ4Y6H-DcLQFzS4.js +0 -1
  434. package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +0 -1
  435. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +0 -1
  436. package/web-shell/assets/cose-bilkent-JH36ORCC-Db2FYN85.js +0 -1
  437. package/web-shell/assets/cynefin-OW5HDTMX-i4GwmBVy.js +0 -178
  438. package/web-shell/assets/dagre-3AP2YEHR-CF9XVrD9.js +0 -4
  439. package/web-shell/assets/diagram-S7CK7UJ4-DD5PJfSm.js +0 -30
  440. package/web-shell/assets/diagram-UQ7AKVKN-CjD_sBMj.js +0 -41
  441. package/web-shell/assets/diagram-VSXAHHWV-U5WwMqyA.js +0 -3
  442. package/web-shell/assets/diagram-VX7I27RA-BujpHJJf.js +0 -24
  443. package/web-shell/assets/diagram-Z3DM3KII-3ZLtKEXo.js +0 -24
  444. package/web-shell/assets/flowDiagram-A5DVABFB-9DwDuIyr.js +0 -168
  445. package/web-shell/assets/gitGraphDiagram-WWUBYQGX-C_pPFiTR.js +0 -106
  446. package/web-shell/assets/index-BYWs4JWq.js +0 -3
  447. package/web-shell/assets/index-D3YS6KuJ.js +0 -2173
  448. package/web-shell/assets/index-eBxK3rs2.css +0 -36
  449. package/web-shell/assets/ishikawaDiagram-5VMMS53U-ktpJFq4r.js +0 -70
  450. package/web-shell/assets/kanban-definition-3QL26DDD-m_gG00Yt.js +0 -89
  451. package/web-shell/assets/mermaid.core-DSCYB_2P.js +0 -312
  452. package/web-shell/assets/mindmap-definition-FBJOCRG2-DRQbT8w-.js +0 -96
  453. package/web-shell/assets/pieDiagram-E7YTZNPT-BvIGQCSd.js +0 -39
  454. package/web-shell/assets/quadrantDiagram-AXDQQJYC-BDQtfpU-.js +0 -7
  455. package/web-shell/assets/sizeCapture-X5ZJPWSS-BB7YY4Tl.js +0 -1
  456. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +0 -1
  457. package/web-shell/assets/swimlanes-XN3QIQJK-D94vOoxZ.js +0 -1
  458. package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +0 -8
  459. package/web-shell/assets/timeline-definition-24CTP7MA-C9C8uEYm.js +0 -120
  460. package/web-shell/assets/vennDiagram-4TSXK5OY-CYzMHbVW.js +0 -34
  461. package/web-shell/assets/wardleyDiagram-VM6X3IG4-G9nhtLES.js +0 -78
  462. package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
@@ -7,12 +7,12 @@ import {
7
7
  hostAssignsIpv6Loopback,
8
8
  isOwnInterfaceAddress
9
9
  } from "./chunk-24FVUD5P.js";
10
- import {
11
- RUNTIME_STARTUP_CANCELLED_MESSAGE
12
- } from "./chunk-QUPXZXLV.js";
13
10
  import {
14
11
  resolveRemoteServeToken
15
12
  } from "./chunk-F23YN37B.js";
13
+ import {
14
+ RUNTIME_STARTUP_CANCELLED_MESSAGE
15
+ } from "./chunk-QUPXZXLV.js";
16
16
  import {
17
17
  ACCESS_LOG_CONTROLLER_LOCAL,
18
18
  CAPABILITIES_SCHEMA_VERSION,
@@ -51,7 +51,7 @@ import {
51
51
  prepareManagedScratchRoot,
52
52
  resolveAcpHttpEnabled,
53
53
  toDaemonStatusMemoryLimits
54
- } from "./chunk-NRXWJXJ4.js";
54
+ } from "./chunk-7GKPKIUB.js";
55
55
  import {
56
56
  ConversationDirectoryIdentityError,
57
57
  assertExactConversationRootIdentity,
@@ -65,35 +65,30 @@ import {
65
65
  revalidateConversationRootIdentity
66
66
  } from "./chunk-PB7JBAHF.js";
67
67
  import {
68
- formatMemoryBudgetStderr,
69
- resolveDaemonMemoryBudget,
70
- serveJournalGrowthPoolMb
71
- } from "./chunk-UXEO7E3V.js";
68
+ formatHostForAuthority,
69
+ isLoopbackAddress,
70
+ isLoopbackBind
71
+ } from "./chunk-DMEUXLSS.js";
72
72
  import {
73
73
  setDeferredRuntimeRequestTiming
74
74
  } from "./chunk-LAUEEBDL.js";
75
75
  import {
76
76
  normalizeSessionIdForLookup
77
77
  } from "./chunk-ZEZKIS2K.js";
78
+ import "./chunk-NYWWQ437.js";
79
+ import {
80
+ resolveSessionRestoreTimeoutMs
81
+ } from "./chunk-4JRM2BSM.js";
78
82
  import {
79
83
  require_express
80
84
  } from "./chunk-SVWWF5TZ.js";
81
85
  import {
82
86
  resolveWebShellDir
83
87
  } from "./chunk-FBX2SDQ4.js";
84
- import {
85
- formatHostForAuthority,
86
- isLoopbackAddress,
87
- isLoopbackBind
88
- } from "./chunk-DMEUXLSS.js";
89
- import "./chunk-NYWWQ437.js";
90
- import {
91
- resolveSessionRestoreTimeoutMs
92
- } from "./chunk-4JRM2BSM.js";
93
88
  import {
94
89
  ConversationRuntimeOwnershipError,
95
90
  LIVE_HOST_PROTOCOL_VERSION
96
- } from "./chunk-2Z3T52OC.js";
91
+ } from "./chunk-Y5TM7SBV.js";
97
92
  import {
98
93
  DEFAULT_RING_SIZE
99
94
  } from "./chunk-7U5G6JXI.js";
@@ -106,36 +101,51 @@ import {
106
101
  normalizeMaxJournalBytes,
107
102
  normalizeMaxJournalEvents
108
103
  } from "./chunk-WCCLLK7X.js";
104
+ import {
105
+ formatMemoryBudgetStderr,
106
+ resolveDaemonMemoryBudget,
107
+ serveJournalGrowthPoolMb
108
+ } from "./chunk-LYD3T3H7.js";
109
109
  import "./chunk-ZL4HFSL6.js";
110
110
  import {
111
111
  resolveChannelCwd
112
- } from "./chunk-76RGWKLS.js";
112
+ } from "./chunk-ABNX6E6K.js";
113
+ import {
114
+ resolveMaxRegisteredWorkspaces,
115
+ resolveWorkspaceInputs,
116
+ workspaceRegistrationId
117
+ } from "./chunk-P225AM5U.js";
113
118
  import {
114
119
  assertChannelControlWorkspaceCapacity
115
- } from "./chunk-XGYHNWL3.js";
120
+ } from "./chunk-J7LBAKDH.js";
116
121
  import {
117
122
  LOAD_REPLAY_META_KEY
118
- } from "./chunk-PSPAM24S.js";
123
+ } from "./chunk-TBSCTWKF.js";
119
124
  import "./chunk-FAWTMDX7.js";
125
+ import {
126
+ canonicalizeWorkspace,
127
+ translateAndCheckAbsoluteWorkspacePath
128
+ } from "./chunk-6PLDPT2C.js";
120
129
  import {
121
130
  ExtraCaInspectionError,
122
131
  loadableCertificates
123
- } from "./chunk-EDMXGXAK.js";
132
+ } from "./chunk-IBRQG2MP.js";
124
133
  import "./chunk-FYJ7W2PI.js";
125
134
  import "./chunk-Z7B6SRPM.js";
126
135
  import {
127
136
  ChannelWebhookEnqueueError
128
137
  } from "./chunk-STUJ7IMZ.js";
138
+ import {
139
+ QWEN_SERVER_TOKEN_ENV
140
+ } from "./chunk-GYTKQYDB.js";
129
141
  import {
130
142
  normalizeWorkerDiagnostic,
131
143
  sanitizeWorkerDiagnostic
132
- } from "./chunk-NLNQNBZ2.js";
144
+ } from "./chunk-WD6YQI5M.js";
133
145
  import {
134
- channelSelectionNames
135
- } from "./chunk-ALMR3E6Q.js";
136
- import {
137
- QWEN_SERVER_TOKEN_ENV
138
- } from "./chunk-GYTKQYDB.js";
146
+ channelSelectionNames,
147
+ normalizeServeChannelSelection
148
+ } from "./chunk-GDWE23OR.js";
139
149
  import {
140
150
  ChannelDeliveryError,
141
151
  isChannelDeliveryError
@@ -144,7 +154,6 @@ import {
144
154
  MAX_CHANNEL_CONTROL_WORKSPACES
145
155
  } from "./chunk-CJ3DHN5I.js";
146
156
  import "./chunk-UDG5EZJI.js";
147
- import "./chunk-M5GB774H.js";
148
157
  import {
149
158
  EXTERNAL_TOOL_GUARD_PROVIDER_ATTACHED_VALUE,
150
159
  EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
@@ -152,40 +161,34 @@ import {
152
161
  PRIVATE_EXTERNAL_TOOL_GUARD_ENV,
153
162
  PRIVATE_EXTERNAL_TOOL_GUARD_PROVIDER_ENV
154
163
  } from "./chunk-3VUENPWF.js";
164
+ import {
165
+ redactLogCredentials
166
+ } from "./chunk-M5GB774H.js";
155
167
  import "./chunk-K6KS3LTN.js";
156
168
  import "./chunk-OSHQMOBS.js";
157
169
  import {
158
170
  sanitizeLogText
159
- } from "./chunk-7QYWGTHB.js";
171
+ } from "./chunk-EPVEPTI3.js";
160
172
  import "./chunk-IJOS26LH.js";
161
173
  import {
162
174
  consumeServeFastPathRejectedLoaderKeys,
163
175
  loadServeFastPathSettings,
164
176
  preResolveServeFastPathHomeEnvOverrides
165
- } from "./chunk-VG3Q2NC4.js";
177
+ } from "./chunk-ZNI3YJHS.js";
166
178
  import "./chunk-BW4333PP.js";
179
+ import {
180
+ getGlobalQwenDirLite,
181
+ resolveConfigPathLite
182
+ } from "./chunk-IDS7MSUP.js";
167
183
  import {
168
184
  acquireInheritedLoaderEnvScrub,
169
185
  clearLoaderKeyRejectionReporterIfCurrent,
170
186
  scrubInheritedLoaderEnv,
171
187
  setLoaderKeyRejectionReporter
172
- } from "./chunk-VX63RJXE.js";
173
- import {
174
- resolveMaxRegisteredWorkspaces,
175
- resolveWorkspaceInputs,
176
- workspaceRegistrationId
177
- } from "./chunk-SBRX4BDI.js";
178
- import {
179
- canonicalizeWorkspace,
180
- translateAndCheckAbsoluteWorkspacePath
181
- } from "./chunk-6PLDPT2C.js";
182
- import {
183
- getGlobalQwenDirLite,
184
- resolveConfigPathLite
185
- } from "./chunk-IDS7MSUP.js";
188
+ } from "./chunk-XX5HQLCZ.js";
186
189
  import {
187
190
  getCliVersion
188
- } from "./chunk-R4Q2PEFV.js";
191
+ } from "./chunk-E7HXORS7.js";
189
192
  import "./chunk-W3N5XAZ6.js";
190
193
  import "./chunk-NPQ5ZKRP.js";
191
194
  import {
@@ -198,10 +201,10 @@ import {
198
201
  } from "./chunk-32CM56LO.js";
199
202
  import "./chunk-LJZSMWOH.js";
200
203
  import "./chunk-GOFAQQZA.js";
204
+ import "./chunk-HEOH7JZY.js";
201
205
  import "./chunk-TWPJO254.js";
202
206
  import "./chunk-CQ35AJ4Z.js";
203
207
  import "./chunk-65I7S4Z3.js";
204
- import "./chunk-6HUXPLB5.js";
205
208
  import {
206
209
  require_proper_lockfile
207
210
  } from "./chunk-MLXTMF7H.js";
@@ -3102,6 +3105,16 @@ var QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS_ENV = "QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS";
3102
3105
  var SHUTDOWN_FORCE_CLOSE_MS = 5e3;
3103
3106
  var DAEMON_LOG_FORCED_FLUSH_BUDGET_MS = 250;
3104
3107
  var DEFAULT_LIVE_DISCOVERY_RETRY_MS = 5e3;
3108
+ var ENSURE_KEEP_ALIVE_MS = 10 * 6e4;
3109
+ function deepestErrorMessage(err) {
3110
+ if (!(err instanceof Error)) return String(err);
3111
+ let deepest = err;
3112
+ while (deepest.cause instanceof Error) {
3113
+ deepest = deepest.cause;
3114
+ }
3115
+ return deepest.message;
3116
+ }
3117
+ __name(deepestErrorMessage, "deepestErrorMessage");
3105
3118
  function channelDeliveryPublicError(code) {
3106
3119
  switch (code) {
3107
3120
  case "channel_worker_unavailable":
@@ -3929,12 +3942,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
3929
3942
  var channelWorkerRuntimePromise;
3930
3943
  async function loadChannelWorkerRuntime() {
3931
3944
  channelWorkerRuntimePromise ??= Promise.all([
3932
- import("./channel-worker-supervisor-ZFNWMG6D.js"),
3933
- import("./pidfile-H32FEPWA.js"),
3934
- import("./runtime-BMEIVDDG.js"),
3945
+ import("./channel-worker-supervisor-OOYY7BAQ.js"),
3946
+ import("./pidfile-I5SWEJDX.js"),
3947
+ import("./runtime-FVTTOB4E.js"),
3935
3948
  import("./cli-entry-path-4VJ3Y6T2.js"),
3936
- import("./channel-worker-group-F2ZZMLNS.js"),
3937
- import("./channel-worker-manager-2SZLJJSJ.js")
3949
+ import("./channel-worker-group-JR6JOELM.js"),
3950
+ import("./channel-worker-manager-AVKJEZFL.js")
3938
3951
  ]).then(
3939
3952
  ([
3940
3953
  supervisor,
@@ -4040,13 +4053,13 @@ function shouldPreheatBridge(deps) {
4040
4053
  __name(shouldPreheatBridge, "shouldPreheatBridge");
4041
4054
  var coreRuntimePromise;
4042
4055
  function loadCoreRuntime() {
4043
- coreRuntimePromise ??= import("./core-runtime-NVHT3Z3V.js");
4056
+ coreRuntimePromise ??= import("./core-runtime-ZDUA5DYE.js");
4044
4057
  return coreRuntimePromise;
4045
4058
  }
4046
4059
  __name(loadCoreRuntime, "loadCoreRuntime");
4047
4060
  var liveDiscoveryRuntimePromise;
4048
4061
  function loadLiveDiscoveryRuntime() {
4049
- liveDiscoveryRuntimePromise ??= import("./discovery-XP4RMDUM.js");
4062
+ liveDiscoveryRuntimePromise ??= import("./discovery-5KUEPR65.js");
4050
4063
  return liveDiscoveryRuntimePromise;
4051
4064
  }
4052
4065
  __name(loadLiveDiscoveryRuntime, "loadLiveDiscoveryRuntime");
@@ -4076,10 +4089,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
4076
4089
  var settingsRuntimePromise;
4077
4090
  function loadSettingsRuntimeModules() {
4078
4091
  settingsRuntimePromise ??= Promise.all([
4079
- import("./settings-DDNHJX2L.js"),
4080
- import("./environment-DKXHG4HB.js"),
4081
- import("./loadedSettingsAdapter-3DXLASK7.js"),
4082
- import("./trustedFolders-5VCBXFOP.js")
4092
+ import("./settings-WAWJIZHR.js"),
4093
+ import("./environment-HYMXOTVB.js"),
4094
+ import("./loadedSettingsAdapter-NNU4BY5Q.js"),
4095
+ import("./trustedFolders-SXPNZESV.js")
4083
4096
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
4084
4097
  settings,
4085
4098
  environment,
@@ -4092,8 +4105,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
4092
4105
  var channelWebhookConfigRuntimePromise;
4093
4106
  function loadChannelWebhookConfigRuntime() {
4094
4107
  channelWebhookConfigRuntimePromise ??= Promise.all([
4095
- import("./runtime-BMEIVDDG.js"),
4096
- import("./config-utils-L6KLDYIV.js")
4108
+ import("./runtime-FVTTOB4E.js"),
4109
+ import("./config-utils-73C3RGYN.js")
4097
4110
  ]).then(([channelRuntime, configUtils]) => ({
4098
4111
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
4099
4112
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -4120,19 +4133,19 @@ async function loadServeRuntimeModules() {
4120
4133
  workspaceRuntimeCoordinatorModule,
4121
4134
  promptLedgerModule
4122
4135
  ] = await Promise.all([
4123
- import("./server-LBPYXZ5G.js"),
4124
- import("./bridge-DAFMI72L.js"),
4125
- import("./spawnChannel-GQ45QFGB.js"),
4136
+ import("./server-U7K7EJEP.js"),
4137
+ import("./bridge-P34XQP3D.js"),
4138
+ import("./spawnChannel-D35CB5JB.js"),
4126
4139
  import("./process-registry-X6ZCASEN.js"),
4127
- import("./workspace-service-RQTTAGGC.js"),
4140
+ import("./workspace-service-GJ2GOHKU.js"),
4128
4141
  import("./types-HKLPXZB3.js"),
4129
- import("./daemon-status-provider-O5KQZYMP.js"),
4130
- import("./workspace-providers-status-AEYISSU2.js"),
4131
- import("./workspace-skills-status-5HWZU3HX.js"),
4132
- import("./total-session-admission-JIHSTJ5S.js"),
4133
- import("./workspace-registry-C2NGE6SD.js"),
4134
- import("./workspace-runtime-coordinator-QKMZ24YF.js"),
4135
- import("./prompt-terminal-ledger-I5SLL6UF.js")
4142
+ import("./daemon-status-provider-2PO7NLDQ.js"),
4143
+ import("./workspace-providers-status-4E4XWBFS.js"),
4144
+ import("./workspace-skills-status-CRWHV35X.js"),
4145
+ import("./total-session-admission-FZSHBR32.js"),
4146
+ import("./workspace-registry-H2ENI5G2.js"),
4147
+ import("./workspace-runtime-coordinator-CRRNB7PC.js"),
4148
+ import("./prompt-terminal-ledger-KWBANHUE.js")
4136
4149
  ]);
4137
4150
  return {
4138
4151
  createServeApp: serverModule.createServeApp,
@@ -5226,7 +5239,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5226
5239
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
5227
5240
  const explicitWorkspaceCount = workspaceInputs.length;
5228
5241
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
5229
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-A7RGKW62.js");
5242
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-M3QEP27F.js");
5230
5243
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
5231
5244
  }
5232
5245
  if (workspaceRegistrationStore) {
@@ -5325,7 +5338,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5325
5338
  throw err;
5326
5339
  }
5327
5340
  writeStderrLine(
5328
- `qwen serve: could not read settings for context.fileName / policy.* (${err instanceof Error ? err.message : String(err)}); falling back to defaults. Restart with a valid settings.json to apply context.fileName / policy.* overrides.`
5341
+ `qwen serve: could not read settings for context.fileName / policy.* / serve.channels (${err instanceof Error ? err.message : String(err)}); falling back to defaults. Restart with a valid settings.json to apply context.fileName / policy.* / serve.channels overrides.`
5329
5342
  );
5330
5343
  }
5331
5344
  const daemonLogBaseDir = await resolveDaemonLogBaseDirForRun({
@@ -5338,6 +5351,54 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5338
5351
  baseDir: daemonLogBaseDir
5339
5352
  });
5340
5353
  loggerLifecycle.initialized(daemonLog);
5354
+ let channelSelectionFromSettings = false;
5355
+ const reportConfiguredChannelStartupFailure = /* @__PURE__ */ __name((error) => {
5356
+ const message = sanitizeLogText(
5357
+ redactLogCredentials(
5358
+ error instanceof Error ? error.message : String(error)
5359
+ ),
5360
+ 512
5361
+ );
5362
+ const detail = /[.!?]$/.test(message) ? message : `${message}.`;
5363
+ writeStderrLine(
5364
+ `qwen serve: workspace serve.channels was not restored: ${detail} Continuing without channels.`
5365
+ );
5366
+ daemonLog.warn(
5367
+ `workspace serve.channels was not restored: ${detail} Continuing without channels`
5368
+ );
5369
+ }, "reportConfiguredChannelStartupFailure");
5370
+ if (!opts.channelSelection && bootSettings?.serve?.channels !== void 0) {
5371
+ try {
5372
+ const rawChannels = bootSettings.serve.channels;
5373
+ if (!Array.isArray(rawChannels) || !rawChannels.every((name) => typeof name === "string")) {
5374
+ throw new Error("serve.channels must be a string array.");
5375
+ }
5376
+ const configuredChannels = rawChannels.filter((name, index) => {
5377
+ if (!name || name !== name.trim() || sanitizeLogText(name, name.length) !== name) {
5378
+ daemonLog.warn(
5379
+ `ignored invalid workspace serve.channels entry at index ${index}`
5380
+ );
5381
+ return false;
5382
+ }
5383
+ return true;
5384
+ });
5385
+ opts.channelSelection = normalizeServeChannelSelection(
5386
+ configuredChannels,
5387
+ "serve.channels"
5388
+ );
5389
+ if (opts.channelSelection) {
5390
+ channelSelectionFromSettings = true;
5391
+ channelRuntime = await ensureChannelRuntime();
5392
+ daemonLog.info("restoring channels from workspace serve.channels", {
5393
+ channels: channelSelectionNames(opts.channelSelection),
5394
+ workspaceCwd: boundWorkspace
5395
+ });
5396
+ }
5397
+ } catch (error) {
5398
+ opts.channelSelection = void 0;
5399
+ reportConfiguredChannelStartupFailure(error);
5400
+ }
5401
+ }
5341
5402
  daemonLog.info("project memory scope resolved", {
5342
5403
  projectMemoryScope: resolvedMemoryProjectScope,
5343
5404
  projectMemoryScopeSource: memoryProjectScopeSource,
@@ -5515,7 +5576,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5515
5576
  "qwen serve: required external tool guard handshake succeeded."
5516
5577
  );
5517
5578
  }
5518
- const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-FOW4RQSK.js");
5579
+ const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-QU2CCJIE.js");
5519
5580
  const daemonToolGuardHandler = createDaemonToolGuard(
5520
5581
  externalToolGuardHandler
5521
5582
  );
@@ -5866,7 +5927,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5866
5927
  loadCoreRuntime(),
5867
5928
  loadSettingsRuntimeModules(),
5868
5929
  cliVersionPromise,
5869
- import("./daemon-trust-policy-3ATXEON7.js")
5930
+ import("./daemon-trust-policy-IMDTIUWB.js")
5870
5931
  ]);
5871
5932
  getWorkspaceRuntimeCoordinatorIfSupported = runtime.getWorkspaceRuntimeCoordinatorIfSupported;
5872
5933
  cliVersion = resolvedCliVersion;
@@ -6274,7 +6335,11 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6274
6335
  }), "persistDisabledToolsFn");
6275
6336
  const persistDisabledSkillsFn = /* @__PURE__ */ __name((workspace, skillName, enabled, assertGenerationOpen) => withSettingsLock(workspace, async () => {
6276
6337
  assertGenerationOpen?.();
6277
- const { skillSettingStrings, updateWorkspaceSkillSettingLists } = await import("./skill-settings-XERQCUXZ.js");
6338
+ const {
6339
+ skillSettingStrings,
6340
+ skillToggleBlockForName,
6341
+ updateWorkspaceSkillSettingLists
6342
+ } = await import("./skill-settings-ALFUQQD6.js");
6278
6343
  const fresh = loadSettingsForPersistence(workspace);
6279
6344
  const workspaceDisabled = skillSettingStrings(
6280
6345
  fresh,
@@ -6286,6 +6351,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6286
6351
  WORKSPACE_SETTING_SCOPE,
6287
6352
  "enabled"
6288
6353
  );
6354
+ if (enabled) {
6355
+ const block = skillToggleBlockForName(fresh, skillName);
6356
+ if (block) {
6357
+ return { changed: false, disabled: workspaceDisabled, block };
6358
+ }
6359
+ }
6289
6360
  const next = updateWorkspaceSkillSettingLists(
6290
6361
  { disabled: workspaceDisabled, enabled: workspaceEnabled },
6291
6362
  skillName,
@@ -6324,7 +6395,11 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6324
6395
  }), "persistDisabledSkillsFn");
6325
6396
  const persistDisabledSkillsBatchFn = /* @__PURE__ */ __name((workspace, skillNames, enabled, assertGenerationOpen) => withSettingsLock(workspace, async () => {
6326
6397
  assertGenerationOpen?.();
6327
- const { skillSettingStrings, updateWorkspaceSkillSettingLists } = await import("./skill-settings-XERQCUXZ.js");
6398
+ const {
6399
+ skillSettingStrings,
6400
+ skillToggleBlockForName,
6401
+ updateWorkspaceSkillSettingLists
6402
+ } = await import("./skill-settings-ALFUQQD6.js");
6328
6403
  const fresh = loadSettingsForPersistence(workspace);
6329
6404
  const initialDisabled = skillSettingStrings(
6330
6405
  fresh,
@@ -6339,6 +6414,15 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6339
6414
  let next = { disabled: initialDisabled, enabled: initialEnabled };
6340
6415
  const outcomes = [];
6341
6416
  for (const skillName of skillNames) {
6417
+ if (enabled) {
6418
+ const block = skillToggleBlockForName(fresh, skillName);
6419
+ if (block && !(block.scope === "Workspace" && block.list === "disabled" && !next.disabled.some(
6420
+ (name) => name.trim().toLowerCase() === block.entry
6421
+ ))) {
6422
+ outcomes.push({ skillName, changed: false });
6423
+ continue;
6424
+ }
6425
+ }
6342
6426
  const updated = updateWorkspaceSkillSettingLists(
6343
6427
  next,
6344
6428
  skillName,
@@ -6415,10 +6499,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6415
6499
  }
6416
6500
  }), "persistSettingsFn");
6417
6501
  const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
6418
- import("./create-sub-session-YWASE5VH.js"),
6419
- import("./scheduled-tasks-NCFPP6VQ.js")
6502
+ import("./create-sub-session-JK3SSJKO.js"),
6503
+ import("./scheduled-tasks-RN6DUY7E.js")
6420
6504
  ]);
6421
- const { sessionAttachmentsRoots } = await import("./session-attachments-root-OUBQDYC4.js");
6505
+ const { sessionAttachmentsRoots } = await import("./session-attachments-root-LQDHWZST.js");
6422
6506
  const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
6423
6507
  callerSessionId,
6424
6508
  cron,
@@ -6455,6 +6539,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6455
6539
  const subSessionLauncher = createSubSessionLauncher({
6456
6540
  getBridge: /* @__PURE__ */ __name(() => bridgeRef, "getBridge"),
6457
6541
  boundWorkspace,
6542
+ runtimeBaseDir: primarySessionRuntimeBaseDir,
6458
6543
  ...subSessionConcurrencyCapsFromSettings(
6459
6544
  runtimeBootSettings?.merged.serve ?? {}
6460
6545
  )
@@ -6464,6 +6549,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6464
6549
  primarySessionRuntimeBaseDir
6465
6550
  );
6466
6551
  const bridge = deps.bridge ?? runtime.createAcpSessionBridge({
6552
+ artifactSnapshotRuntimeBaseDir: primarySessionRuntimeBaseDir,
6467
6553
  sessionAttachmentsRoot: attachmentsRoots.root,
6468
6554
  sessionAttachmentsFallbackRoot: attachmentsRoots.fallback,
6469
6555
  // Reverse tool channel: let `BridgeClient.extMethod` reach the WS
@@ -6903,6 +6989,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6903
6989
  const secondarySubSessionLauncher = createSubSessionLauncher({
6904
6990
  getBridge: /* @__PURE__ */ __name(() => secondaryBridgeRef, "getBridge"),
6905
6991
  boundWorkspace: workspaceInput.cwd,
6992
+ runtimeBaseDir: secondaryEnv.sessionRuntimeBaseDir,
6906
6993
  ...subSessionConcurrencyCapsFromSettings(
6907
6994
  secondarySettings?.merged.serve ?? {}
6908
6995
  )
@@ -6912,6 +6999,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6912
6999
  secondaryEnv.sessionRuntimeBaseDir
6913
7000
  );
6914
7001
  const secondaryBridge = runtime.createAcpSessionBridge({
7002
+ artifactSnapshotRuntimeBaseDir: secondaryEnv.sessionRuntimeBaseDir,
6915
7003
  sessionAttachmentsRoot: secondaryAttachmentsRoots.root,
6916
7004
  sessionAttachmentsFallbackRoot: secondaryAttachmentsRoots.fallback,
6917
7005
  clientMcpSender: secondaryClientMcpSenderRegistry.lookup,
@@ -7259,7 +7347,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7259
7347
  };
7260
7348
  sessionPrRefreshTimer?.dispose();
7261
7349
  const refreshGeneration = ++sessionPrRefreshGeneration;
7262
- void import("./session-pr-refresh-EKGMYNAW.js").then((mod) => {
7350
+ void import("./session-pr-refresh-J7DQYX2I.js").then((mod) => {
7263
7351
  if (refreshGeneration !== sessionPrRefreshGeneration) return;
7264
7352
  sessionPrRefreshTimer = mod.startSessionPrRefreshTimer({
7265
7353
  workspaceRegistry,
@@ -7343,6 +7431,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7343
7431
  const wsSubSessionLauncher = createSubSessionLauncher({
7344
7432
  getBridge: /* @__PURE__ */ __name(() => wsBridgeRef, "getBridge"),
7345
7433
  boundWorkspace: cwd,
7434
+ runtimeBaseDir: wsEnv.sessionRuntimeBaseDir,
7346
7435
  ...provenance === "live-conversation" ? {
7347
7436
  notifySentCompletion: true,
7348
7437
  getStandaloneSessionService: /* @__PURE__ */ __name(() => (runtimeApp ?? runtimeAppForCleanup)?.locals?.["standaloneSessionService"], "getStandaloneSessionService"),
@@ -7366,6 +7455,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7366
7455
  wsEnv.sessionRuntimeBaseDir
7367
7456
  );
7368
7457
  wsBridge = runtime.createAcpSessionBridge({
7458
+ artifactSnapshotRuntimeBaseDir: wsEnv.sessionRuntimeBaseDir,
7369
7459
  sessionAttachmentsRoot: wsAttachmentsRoots.root,
7370
7460
  sessionAttachmentsFallbackRoot: wsAttachmentsRoots.fallback,
7371
7461
  clientMcpSender: wsClientMcpRegistry.lookup,
@@ -7929,8 +8019,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7929
8019
  { createChannelManagementService },
7930
8020
  { WorkspaceChannelSettingsStore }
7931
8021
  ] = await Promise.all([
7932
- import("./channel-management-service-OWDXVL7R.js"),
7933
- import("./channel-settings-store-4I6JONT7.js")
8022
+ import("./channel-management-service-AFVIT4VH.js"),
8023
+ import("./channel-settings-store-VE4ARRSR.js")
7934
8024
  ]);
7935
8025
  return createChannelManagementService({
7936
8026
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -8083,6 +8173,16 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8083
8173
  sessionArtifactsPersistenceAvailable: sessionArtifactsPersistenceAvailableFromSettings(
8084
8174
  runtimeBootSettings?.merged
8085
8175
  ),
8176
+ updateModelContextWindow: /* @__PURE__ */ __name((workspace, key, size, assertGenerationOpen) => withSettingsLock(workspace, async () => {
8177
+ assertGenerationOpen();
8178
+ const { updateModelContextWindow } = await import("./model-configuration-E5M35A3M.js");
8179
+ return updateModelContextWindow(
8180
+ loadSettingsForPersistence(workspace),
8181
+ key,
8182
+ size,
8183
+ assertGenerationOpen
8184
+ );
8185
+ }), "updateModelContextWindow"),
8086
8186
  installAuthProvider: /* @__PURE__ */ __name((req, assertGenerationOpen) => withSettingsLock(
8087
8187
  boundWorkspace,
8088
8188
  async () => {
@@ -8095,11 +8195,17 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8095
8195
  getDefaultModelIds: core.getDefaultModelIds,
8096
8196
  resolveBaseUrl: core.resolveBaseUrl
8097
8197
  });
8098
- const plan = core.buildInstallPlan(provider, inputs);
8099
8198
  const fresh = loadSettingsForPersistence(boundWorkspace);
8199
+ const plan = core.buildInstallPlan(
8200
+ provider,
8201
+ inputs,
8202
+ fresh.merged.modelProviders?.[inputs.protocol ?? provider.protocol]
8203
+ );
8100
8204
  const adapter = settingsRuntime.loadedSettingsAdapter.createLoadedSettingsAdapter(
8101
8205
  fresh
8102
8206
  );
8207
+ const { getAuthTypeFromEnv } = await import("./modelConfigUtils-43SY2EDS.js");
8208
+ const hasConversationAuth = adapter.getValue("security.auth.selectedType") || getAuthTypeFromEnv(primaryRuntimeEnv.effectiveEnv);
8103
8209
  await core.applyProviderInstallPlan(plan, {
8104
8210
  settings: adapter,
8105
8211
  doRefreshAuth: false
@@ -8118,7 +8224,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8118
8224
  authType: plan.authType,
8119
8225
  ...effectiveModelId ? { modelId: effectiveModelId } : {},
8120
8226
  ...effectiveBaseUrl ? { baseUrl: effectiveBaseUrl } : {},
8121
- message: `Successfully configured ${provider.label}. Use /model to switch models.`
8227
+ message: !plan.modelSelection ? hasConversationAuth ? "Service models saved." : "Service models saved. Configure a conversation model to start chatting." : `Successfully configured ${provider.label}. Use /model to switch models.`
8122
8228
  };
8123
8229
  }
8124
8230
  ), "installAuthProvider")
@@ -8136,8 +8242,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8136
8242
  { createWorkspaceTrustReconciler },
8137
8243
  { createDaemonTrustPolicyMonitor }
8138
8244
  ] = await Promise.all([
8139
- import("./workspace-trust-reconciler-KFWATZUU.js"),
8140
- import("./daemon-trust-policy-monitor-7MCNDNEC.js")
8245
+ import("./workspace-trust-reconciler-GG2JA7KI.js"),
8246
+ import("./daemon-trust-policy-monitor-6IVBNUAD.js")
8141
8247
  ]);
8142
8248
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
8143
8249
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -8334,7 +8440,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8334
8440
  // through (and start the runtime) exactly like the warm app would.
8335
8441
  // Dynamic import keeps web-shell-static out of the serve fast-path
8336
8442
  // static closure (see the import-boundary guards in fast-path.test.ts).
8337
- isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-CCN4JZEE.js").then(
8443
+ isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-T7UGLVE4.js").then(
8338
8444
  (webShellStatic) => webShellStatic.isPreAuthWebShellRequest(req)
8339
8445
  ) : void 0
8340
8446
  });
@@ -8353,11 +8459,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8353
8459
  `Invalid maxConnections: ${opts.maxConnections}. Must be >= 0 (0 / Infinity = unlimited).`
8354
8460
  );
8355
8461
  }
8356
- const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
8357
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-3ATXEON7.js") : void 0;
8358
- const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
8462
+ let channelValidationSettingsRuntime;
8463
+ let channelValidationTrustPolicy;
8464
+ let channelValidationTrustSnapshot;
8359
8465
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
8360
- if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
8466
+ const validationSettingsRuntime = channelValidationSettingsRuntime;
8467
+ if (!opts.channelSelection || !validationSettingsRuntime || !channelRuntime) {
8361
8468
  return void 0;
8362
8469
  }
8363
8470
  const registry = (runtimeApp ?? runtimeAppForCleanup)?.locals?.["workspaceRegistry"];
@@ -8397,15 +8504,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8397
8504
  { code: "untrusted_workspace" }
8398
8505
  );
8399
8506
  }
8400
- const effectiveEnv = runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : channelValidationSettingsRuntime.environment.buildRuntimeEnvironment(
8401
- channelValidationSettingsRuntime.settings.loadSettings(
8402
- workspace.cwd,
8403
- {
8404
- skipLoadEnvironment: true,
8405
- skipWorkspaceSettings: false,
8406
- workspaceTrusted: true
8407
- }
8408
- ).merged,
8507
+ const effectiveEnv = runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : validationSettingsRuntime.environment.buildRuntimeEnvironment(
8508
+ validationSettingsRuntime.settings.loadSettings(workspace.cwd, {
8509
+ skipLoadEnvironment: true,
8510
+ skipWorkspaceSettings: false,
8511
+ workspaceTrusted: true
8512
+ }).merged,
8409
8513
  workspace.cwd,
8410
8514
  daemonRuntimeBaseEnv,
8411
8515
  trusted
@@ -8416,7 +8520,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8416
8520
  const workspaces = workspaceInputs.map((workspace, index) => {
8417
8521
  const runtime = resolveRuntime(workspace.cwd);
8418
8522
  const trusted = resolveTrusted(workspace.cwd, index === 0, runtime);
8419
- const settings = channelValidationSettingsRuntime.settings.loadSettings(
8523
+ const settings = validationSettingsRuntime.settings.loadSettings(
8420
8524
  workspace.cwd,
8421
8525
  {
8422
8526
  skipLoadEnvironment: true,
@@ -8427,7 +8531,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8427
8531
  settingsByWorkspace.set(workspace.cwd, settings);
8428
8532
  channelWebhookEnvByWorkspace.set(
8429
8533
  workspace.cwd,
8430
- runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : channelValidationSettingsRuntime.environment.buildRuntimeEnvironment(
8534
+ runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : validationSettingsRuntime.environment.buildRuntimeEnvironment(
8431
8535
  settings.merged,
8432
8536
  workspace.cwd,
8433
8537
  daemonRuntimeBaseEnv,
@@ -8458,13 +8562,23 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8458
8562
  return grouping.groups;
8459
8563
  }, "resolveChannelWorkspaceGroupsAtListen");
8460
8564
  if (opts.channelSelection) {
8461
- if (opts.channelSelection.mode === "names" && workspaceInputs.length > MAX_CHANNEL_CONTROL_WORKSPACES) {
8462
- const groups = resolveChannelWorkspaceGroupsAtListen();
8463
- assertChannelControlWorkspaceCapacity(
8464
- groups?.map((group) => group.workspaceCwd) ?? []
8465
- );
8565
+ try {
8566
+ channelValidationSettingsRuntime = await loadSettingsRuntimeModules();
8567
+ channelValidationTrustPolicy = await import("./daemon-trust-policy-IMDTIUWB.js");
8568
+ channelValidationTrustSnapshot = await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot();
8569
+ if (opts.channelSelection.mode === "names" && workspaceInputs.length > MAX_CHANNEL_CONTROL_WORKSPACES) {
8570
+ const groups = resolveChannelWorkspaceGroupsAtListen();
8571
+ assertChannelControlWorkspaceCapacity(
8572
+ groups?.map((group) => group.workspaceCwd) ?? []
8573
+ );
8574
+ }
8575
+ reserveChannelServicePidfile(opts.channelSelection);
8576
+ } catch (error) {
8577
+ if (!channelSelectionFromSettings) throw error;
8578
+ removeCurrentServePidfile();
8579
+ opts.channelSelection = void 0;
8580
+ reportConfiguredChannelStartupFailure(error);
8466
8581
  }
8467
- reserveChannelServicePidfile(opts.channelSelection);
8468
8582
  }
8469
8583
  return await new Promise((resolve3, reject) => {
8470
8584
  let closeHost;
@@ -8831,11 +8945,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8831
8945
  const armRuntimeStartupTimer = /* @__PURE__ */ __name(() => {
8832
8946
  if (runtimeStartupTimeoutMs <= 0 || runtimeStartupTimer) return;
8833
8947
  runtimeStartupTimer = setTimeout(() => {
8834
- void failRuntimeStartup(
8835
- new Error(
8836
- `Daemon runtime startup timed out after ${runtimeStartupTimeoutMs}ms.`
8837
- )
8948
+ const timeoutError = new Error(
8949
+ `Daemon runtime startup timed out after ${runtimeStartupTimeoutMs}ms.`
8838
8950
  );
8951
+ void failRuntimeStartup(timeoutError);
8839
8952
  }, runtimeStartupTimeoutMs);
8840
8953
  runtimeStartupTimer.unref();
8841
8954
  }, "armRuntimeStartupTimer");
@@ -9062,8 +9175,32 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9062
9175
  acpHandle?.attachServer?.(server);
9063
9176
  if (opts.channelSelection) {
9064
9177
  closeServerAfterChannelWorkerStartupFailure = true;
9065
- const manager = await ensureChannelWorkerManager();
9066
- await manager.startInitial(opts.channelSelection);
9178
+ let manager;
9179
+ try {
9180
+ manager = await ensureChannelWorkerManager();
9181
+ await manager.startInitial(opts.channelSelection);
9182
+ } catch (error2) {
9183
+ if (!channelSelectionFromSettings || runtimeStartupSettled) {
9184
+ throw error2;
9185
+ }
9186
+ closeServerAfterChannelWorkerStartupFailure = false;
9187
+ opts.channelSelection = void 0;
9188
+ reportConfiguredChannelStartupFailure(error2);
9189
+ try {
9190
+ if (manager) {
9191
+ await manager.stopSelection();
9192
+ } else {
9193
+ removeCurrentServePidfile();
9194
+ if (channelPidfileReserved) {
9195
+ throw new Error(
9196
+ "Failed to release the channel service lease."
9197
+ );
9198
+ }
9199
+ }
9200
+ } catch (cleanupError) {
9201
+ reportConfiguredChannelStartupFailure(cleanupError);
9202
+ }
9203
+ }
9067
9204
  if (runtimeStartupSettled) return;
9068
9205
  }
9069
9206
  if (runtimeStartupSettled) return;
@@ -9073,7 +9210,45 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9073
9210
  clearRuntimeStartupTimer();
9074
9211
  markRuntimeReady();
9075
9212
  }, "completeRuntimeStartup");
9076
- const startBridgePreheat = /* @__PURE__ */ __name((bridge) => {
9213
+ const scheduleWorkspaceMcpDiscoveryAfterPreheat = /* @__PURE__ */ __name((app2) => {
9214
+ if (runtimeStartupError !== void 0) {
9215
+ daemonLog.info(
9216
+ "workspace runtime ensure after preheat skipped: runtime startup failed"
9217
+ );
9218
+ return;
9219
+ }
9220
+ if (shuttingDown) {
9221
+ daemonLog.info(
9222
+ "workspace runtime ensure after preheat skipped: shutting down"
9223
+ );
9224
+ return;
9225
+ }
9226
+ const registry = app2.locals?.["workspaceRegistry"];
9227
+ const primaryEntry = registry?.primaryEntry;
9228
+ const runtime = primaryEntry?.state === "active" ? primaryEntry.current?.runtime : void 0;
9229
+ if (!runtime) {
9230
+ daemonLog.info(
9231
+ "workspace runtime ensure after preheat skipped: no primary runtime"
9232
+ );
9233
+ return;
9234
+ }
9235
+ const coordinator = getWorkspaceRuntimeCoordinatorIfSupported?.(runtime);
9236
+ if (!coordinator) {
9237
+ daemonLog.info(
9238
+ "workspace runtime ensure after preheat skipped: workspace runtime lifecycle is not supported"
9239
+ );
9240
+ return;
9241
+ }
9242
+ void coordinator.ensure({ keepAliveMs: ENSURE_KEEP_ALIVE_MS }).catch((err) => {
9243
+ if (shuttingDown || runtimeStartupError !== void 0) {
9244
+ return;
9245
+ }
9246
+ daemonLog.warn(
9247
+ `workspace runtime ensure after preheat failed: ${deepestErrorMessage(err)}`
9248
+ );
9249
+ });
9250
+ }, "scheduleWorkspaceMcpDiscoveryAfterPreheat");
9251
+ const startBridgePreheat = /* @__PURE__ */ __name((bridge, app2) => {
9077
9252
  startup.preheat.status = "running";
9078
9253
  const preheatStartedAt = performance2.now();
9079
9254
  bridge.preheat().then(() => {
@@ -9081,6 +9256,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9081
9256
  startup.preheat.durationMs = Math.round(
9082
9257
  performance2.now() - preheatStartedAt
9083
9258
  );
9259
+ scheduleWorkspaceMcpDiscoveryAfterPreheat(app2);
9084
9260
  }).catch((err) => {
9085
9261
  const message = err instanceof Error ? err.message : String(err);
9086
9262
  startup.preheat.status = "failed";
@@ -9114,7 +9290,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9114
9290
  return;
9115
9291
  }
9116
9292
  if (shouldPreheat && runtime.bridge) {
9117
- startBridgePreheat(runtime.bridge);
9293
+ startBridgePreheat(runtime.bridge, runtime.app);
9118
9294
  }
9119
9295
  await completeRuntimeStartup(runtime.app);
9120
9296
  }).catch((err) => failRuntimeStartup(err));
@@ -9431,14 +9607,19 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9431
9607
  } catch (err) {
9432
9608
  removeCurrentServePidfile();
9433
9609
  const error2 = err instanceof Error ? err : new Error(String(err));
9434
- markServeAppStartupFailed(error2);
9435
- void serveAppLifecycle.close().then(
9436
- () => reject(error2),
9437
- (closeError) => reject(
9438
- closeError instanceof Error ? new AggregateError([error2, closeError], error2.message) : error2
9439
- )
9440
- );
9441
- return;
9610
+ if (channelSelectionFromSettings) {
9611
+ opts.channelSelection = void 0;
9612
+ reportConfiguredChannelStartupFailure(error2);
9613
+ } else {
9614
+ markServeAppStartupFailed(error2);
9615
+ void serveAppLifecycle.close().then(
9616
+ () => reject(error2),
9617
+ (closeError) => reject(
9618
+ closeError instanceof Error ? new AggregateError([error2, closeError], error2.message) : error2
9619
+ )
9620
+ );
9621
+ return;
9622
+ }
9442
9623
  }
9443
9624
  if (channelWorkspaceGroups) {
9444
9625
  for (const group of channelWorkspaceGroups) {
@@ -9449,7 +9630,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9449
9630
  }
9450
9631
  if (opts.channelSelection?.mode === "all") {
9451
9632
  writeStderrLine(
9452
- "qwen serve: --channel all is primary-workspace only; non-primary workspace channels are not hosted."
9633
+ channelSelectionFromSettings ? 'qwen serve: workspace serve.channels selection "all" is primary-workspace only; non-primary workspace channels are not hosted.' : "qwen serve: --channel all is primary-workspace only; non-primary workspace channels are not hosted."
9453
9634
  );
9454
9635
  }
9455
9636
  }
@@ -9497,9 +9678,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9497
9678
  });
9498
9679
  const preparedRuntimeApp = runtimeApp ?? runtimeAppForCleanup;
9499
9680
  if (preparedRuntimeApp && bridgeRef && deps.bridge) {
9681
+ runtimeApp ??= preparedRuntimeApp;
9500
9682
  attachLiveDiscoveryControl(preparedRuntimeApp);
9501
9683
  if (shouldPreheat) {
9502
- startBridgePreheat(bridgeRef);
9684
+ startBridgePreheat(bridgeRef, preparedRuntimeApp);
9503
9685
  }
9504
9686
  if (opts.channelSelection && !runtimeStartupSettled) {
9505
9687
  armRuntimeStartupTimer();
@@ -9511,6 +9693,11 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9511
9693
  acpHandle?.attachServer?.(server);
9512
9694
  markServeAppStartupReady();
9513
9695
  void publishLiveDiscovery(preparedRuntimeApp);
9696
+ if (!runtimeStartupSettled) {
9697
+ runtimeStartupSettled = true;
9698
+ clearRuntimeStartupTimer();
9699
+ markRuntimeReady();
9700
+ }
9514
9701
  }
9515
9702
  } else if (deferRuntimeUntilFirstHealth) {
9516
9703
  scheduleRuntimeStartFallback();