@qwen-code/qwen-code 0.23.2 → 0.23.3-nightly.20260910.c46cb85cf2

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 (396) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/goal-draft/SKILL.md +2 -2
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
  5. package/bundled/qc-helper/docs/configuration/settings.md +5 -3
  6. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +0 -20
  8. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  9. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  10. package/bundled/qc-helper/docs/features/commands.md +57 -9
  11. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  12. package/bundled/qc-helper/docs/features/cross-session-protocol.md +320 -0
  13. package/bundled/qc-helper/docs/features/goals.md +3 -3
  14. package/bundled/qc-helper/docs/features/hooks.md +14 -13
  15. package/bundled/qc-helper/docs/qwen-serve.md +23 -6
  16. package/bundled/review/SKILL.md +82 -79
  17. package/bundled/review/references/posting.md +31 -14
  18. package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-UZW24XUX.js} +61 -54
  19. package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-IDK7NAZL.js} +83 -76
  20. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-ARO4II44.js} +2 -2
  21. package/chunks/acp-subagent-executor-7TLJGISS.js +919 -0
  22. package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-YRCNNIIU.js} +707 -209
  23. package/chunks/{agent-T5LEFJIU.js → agent-SGU5EE7U.js} +45 -39
  24. package/chunks/{agent-headless-VZKSRH36.js → agent-headless-JVYBLNLT.js} +45 -39
  25. package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-SGIR5IKF.js} +68 -36
  26. package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-PMYZCYNH.js} +2 -2
  27. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-4M4YYIB4.js} +2 -2
  28. package/chunks/{bridge-AOX5IY44.js → bridge-YF6NYRPZ.js} +66 -59
  29. package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
  30. package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-E4HTMU7T.js} +9 -9
  31. package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-FZ5VKHQD.js} +72 -65
  32. package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-X6WH4XWF.js} +9 -9
  33. package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-SICFJDPJ.js} +19 -10
  34. package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-HSFAKML6.js} +6 -6
  35. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  36. package/chunks/{chunk-F2NYVASI.js → chunk-34ZYDM3F.js} +14 -12
  37. package/chunks/{chunk-HIXUUCGY.js → chunk-36HCNKDS.js} +1 -1
  38. package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
  39. package/chunks/{chunk-QB3KS3N3.js → chunk-3I7W2POO.js} +1 -1
  40. package/chunks/{chunk-TOOOLHVS.js → chunk-3VPFA6L2.js} +3 -3
  41. package/chunks/chunk-532WHF4F.js +127 -0
  42. package/chunks/{chunk-J3TJH52D.js → chunk-5FFAUU4T.js} +1 -1
  43. package/chunks/{chunk-OXR34GCD.js → chunk-5FKZ7KFQ.js} +1851 -34
  44. package/chunks/{chunk-QQK4L3UU.js → chunk-5GLDOLNQ.js} +131 -26
  45. package/chunks/{chunk-TODNHE76.js → chunk-5ZJ3KK5J.js} +5 -5
  46. package/chunks/{chunk-ZN5TKAVR.js → chunk-6EDWSKN4.js} +3 -3
  47. package/chunks/{chunk-5OZUKLL7.js → chunk-6EOMQPTS.js} +4 -4
  48. package/chunks/{chunk-JYGIJA4W.js → chunk-6NONRGYX.js} +1 -1
  49. package/chunks/{chunk-TRQNRP2H.js → chunk-6UK77U7D.js} +46 -3
  50. package/chunks/{chunk-4JNHNVAZ.js → chunk-72BGC7RT.js} +4 -4
  51. package/chunks/{chunk-CRZBDVP2.js → chunk-74JEYK2C.js} +10 -10
  52. package/chunks/{chunk-RM244SCQ.js → chunk-7XM6KEVW.js} +1 -1
  53. package/chunks/{chunk-CALNF3Z3.js → chunk-7XVQNDFB.js} +1 -1
  54. package/chunks/{chunk-G37O7YO6.js → chunk-7ZKDPTYO.js} +2 -2
  55. package/chunks/{chunk-WXPPUPHM.js → chunk-7ZVIGDZF.js} +1 -1
  56. package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
  57. package/chunks/{chunk-LEAOJ43M.js → chunk-ATH66AEU.js} +62 -59
  58. package/chunks/{chunk-7NDZKE2M.js → chunk-AW2SIT3B.js} +3 -3
  59. package/chunks/{chunk-R3JIDRUL.js → chunk-AWMJRE5N.js} +4 -4
  60. package/chunks/chunk-AYEJOTIU.js +43 -0
  61. package/chunks/{chunk-VJJXG73H.js → chunk-B2TGBZXY.js} +16 -1
  62. package/chunks/{chunk-XDNFODER.js → chunk-B6BDT4RX.js} +1 -1
  63. package/chunks/{chunk-3OAXF3UK.js → chunk-BHR6IN2X.js} +3080 -933
  64. package/chunks/{chunk-FGHPZGOP.js → chunk-BI3WSRQE.js} +39 -55
  65. package/chunks/{chunk-QHLHE2OT.js → chunk-BQOP3K76.js} +1 -1
  66. package/chunks/{chunk-4WMGYG3F.js → chunk-BTWGOKHU.js} +2 -2
  67. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  68. package/chunks/{chunk-WDVV3LRM.js → chunk-C4NLHK7X.js} +34 -129
  69. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  70. package/chunks/chunk-CAAMI77K.js +937 -0
  71. package/chunks/chunk-CF5KXZZX.js +150 -0
  72. package/chunks/{chunk-SOA4HKRJ.js → chunk-CGKEUUYG.js} +2 -2
  73. package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
  74. package/chunks/{chunk-AUTUFD5X.js → chunk-CSHX5ZC4.js} +1 -1
  75. package/chunks/{chunk-UYDQYDW2.js → chunk-CUK6F5UF.js} +1 -1
  76. package/chunks/{chunk-CALTQWTZ.js → chunk-DLH7YIX6.js} +2 -2
  77. package/chunks/{chunk-CMWU6P4D.js → chunk-DMX7RF6E.js} +1 -1
  78. package/chunks/{chunk-TRWQQBVH.js → chunk-DTNV6UZY.js} +1 -1
  79. package/chunks/{chunk-GSFV5RQW.js → chunk-E4UEO3XM.js} +3 -2
  80. package/chunks/{chunk-KFECPHLV.js → chunk-E5GQNSJY.js} +3 -3
  81. package/chunks/chunk-ELRMZTPF.js +374 -0
  82. package/chunks/chunk-ERU3SDXT.js +27 -0
  83. package/chunks/{chunk-O2FEO2CB.js → chunk-EUURTIV6.js} +18 -2
  84. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  85. package/chunks/{chunk-GOEVQADN.js → chunk-F2RKL5I2.js} +287 -169
  86. package/chunks/{chunk-ELD3OBPU.js → chunk-F45SKYIQ.js} +3 -3
  87. package/chunks/{chunk-7PD7ZMX5.js → chunk-FCQJLMA2.js} +98 -5
  88. package/chunks/{chunk-G3ZUMSFS.js → chunk-FGRDUDCI.js} +6 -6
  89. package/chunks/{chunk-7SVM3RP2.js → chunk-FGV2QEAO.js} +4 -6
  90. package/chunks/{chunk-4VY3ITHR.js → chunk-FN3JNDRU.js} +3 -3
  91. package/chunks/{chunk-GOKAOSCN.js → chunk-FRVV5SSD.js} +2 -2
  92. package/chunks/{chunk-ULZECEIP.js → chunk-FYZ5NZ3V.js} +2 -20
  93. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  94. package/chunks/{chunk-RNAJVXUG.js → chunk-GP47UR3M.js} +6 -6
  95. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  96. package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
  97. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  98. package/chunks/{chunk-WDN64MVT.js → chunk-HL2DQG3Y.js} +83 -17
  99. package/chunks/{chunk-E6TI726I.js → chunk-HUXPEUFL.js} +1 -1
  100. package/chunks/{chunk-5DQ4YTIZ.js → chunk-HZTXKVSV.js} +1 -1
  101. package/chunks/{chunk-LYT2OU7D.js → chunk-IAEXTMED.js} +1 -1
  102. package/chunks/{chunk-IRGDIDGJ.js → chunk-IFHJIEMN.js} +26 -19
  103. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  104. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  105. package/chunks/{chunk-XSOXPG2L.js → chunk-IOUBOANU.js} +36 -7
  106. package/chunks/{chunk-KA5HR3G2.js → chunk-IUVIBDKU.js} +2 -2
  107. package/chunks/{chunk-U6REWGVR.js → chunk-J2RNOJRV.js} +2 -2
  108. package/chunks/{chunk-PDN7FJZV.js → chunk-J5PYQVD2.js} +2 -2
  109. package/chunks/{chunk-DAI65CMX.js → chunk-JDEW3V5B.js} +1 -1
  110. package/chunks/{chunk-67XTVRVB.js → chunk-JEMDIKGQ.js} +7 -7
  111. package/chunks/chunk-JL6APGBX.js +43 -0
  112. package/chunks/{chunk-PFKGV6PO.js → chunk-JOMCZWX7.js} +9 -15
  113. package/chunks/{chunk-HJ5UJQQL.js → chunk-JV5YASQA.js} +1822 -1335
  114. package/chunks/{chunk-N6S3NUYJ.js → chunk-JXNIF2O5.js} +1 -1
  115. package/chunks/chunk-K2OJUPOE.js +78 -0
  116. package/chunks/{chunk-QFJZAY7W.js → chunk-KFGPNCCY.js} +4 -4
  117. package/chunks/{chunk-NX7ZTXFF.js → chunk-KHIBLKNK.js} +1 -1
  118. package/chunks/{chunk-A7EFXK7P.js → chunk-KVBNJ4K2.js} +5 -5
  119. package/chunks/{chunk-CWVZBIZJ.js → chunk-KZ2CU2LH.js} +1 -1
  120. package/chunks/{chunk-IWABUX6T.js → chunk-L2KF7HUE.js} +6 -6
  121. package/chunks/{chunk-4ALNJDHL.js → chunk-L3DTX6U4.js} +3 -1
  122. package/chunks/{chunk-22GORRNY.js → chunk-LAP7X6EC.js} +1 -1
  123. package/chunks/{chunk-DARWOZY6.js → chunk-LEGNDA46.js} +1 -1
  124. package/chunks/{chunk-WXFCI3O5.js → chunk-LG5Y4OWO.js} +2 -2
  125. package/chunks/{chunk-3LPJ776W.js → chunk-LILGKQ4B.js} +10 -7
  126. package/chunks/{chunk-WK7P62DV.js → chunk-LIR7YS2O.js} +6 -6
  127. package/chunks/{chunk-X7LFJF5D.js → chunk-LK2WUCDQ.js} +36 -84
  128. package/chunks/{chunk-46MMBZHI.js → chunk-LY2GK2PR.js} +4 -4
  129. package/chunks/{chunk-NPKCVSXX.js → chunk-MOS5OAOG.js} +10 -8
  130. package/chunks/chunk-MXOALJIL.js +691 -0
  131. package/chunks/chunk-NUQ4GK5I.js +315 -0
  132. package/chunks/{chunk-J3VZF2AL.js → chunk-NUQVB25K.js} +2 -2
  133. package/chunks/{chunk-GNY7B3CA.js → chunk-NVIBH7WS.js} +1 -1
  134. package/chunks/{chunk-KCF2436G.js → chunk-O3MKRN2I.js} +4 -4
  135. package/chunks/{chunk-MV5DTLJV.js → chunk-ONGZNOIP.js} +1 -1
  136. package/chunks/{chunk-WBU2PIZ5.js → chunk-OOLSYRZ7.js} +16 -16
  137. package/chunks/{chunk-QTB4VP4K.js → chunk-PIGUW2U2.js} +149 -12
  138. package/chunks/{chunk-QAZ2MGYT.js → chunk-PLLIWEM3.js} +2 -2
  139. package/chunks/{chunk-WXD7INFV.js → chunk-PMS4FVLY.js} +8 -8
  140. package/chunks/{chunk-NB3NDQQK.js → chunk-Q2XLNLAV.js} +1 -1
  141. package/chunks/{chunk-4I3WFI3U.js → chunk-Q6HXLBZF.js} +12 -12
  142. package/chunks/{chunk-CCBTNJB4.js → chunk-QPWZX4ZV.js} +27 -27
  143. package/chunks/{chunk-JO77FGNZ.js → chunk-RJZTX2OF.js} +19 -7
  144. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  145. package/chunks/{chunk-IR6JKBAP.js → chunk-SAWPURIU.js} +2 -2
  146. package/chunks/{chunk-LWX4WDFF.js → chunk-SNZWDV67.js} +43 -15
  147. package/chunks/{chunk-YLOHCA6I.js → chunk-SXEE6PND.js} +2 -2
  148. package/chunks/{chunk-G5VOXCRX.js → chunk-T4JVQR7Z.js} +2 -2
  149. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  150. package/chunks/{chunk-YQGW3M6Z.js → chunk-TP2DUOB6.js} +8 -8
  151. package/chunks/{chunk-MWIO7MF6.js → chunk-TP6FYVQT.js} +2 -0
  152. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  153. package/chunks/{chunk-B25JYXZE.js → chunk-TWC3FHUI.js} +4 -4
  154. package/chunks/{chunk-H3Q3RSKZ.js → chunk-U7O65WKL.js} +1 -1
  155. package/chunks/{chunk-LUNC5KCL.js → chunk-UBEYS536.js} +7 -7
  156. package/chunks/{chunk-R457KFV7.js → chunk-UGS62IR2.js} +3 -3
  157. package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
  158. package/chunks/{chunk-7LTCFO6T.js → chunk-VHKOULAI.js} +6 -5
  159. package/chunks/{chunk-FAJPLSYF.js → chunk-VID4BW52.js} +90 -86
  160. package/chunks/{chunk-2BMXHB6N.js → chunk-VLZOU6UH.js} +7 -7
  161. package/chunks/{chunk-ZP5XDLSA.js → chunk-VTBPMLRO.js} +12 -12
  162. package/chunks/{chunk-QTNCGZHQ.js → chunk-VX63RJXE.js} +9 -0
  163. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  164. package/chunks/{chunk-XQ4RDO5B.js → chunk-WBCPROWX.js} +1 -1
  165. package/chunks/{chunk-AO2VMS72.js → chunk-WS7MOFK6.js} +3 -3
  166. package/chunks/{chunk-FV4DM2M4.js → chunk-WXFK4MH7.js} +32 -12
  167. package/chunks/{chunk-APXIW2TF.js → chunk-WY4N6KS7.js} +4 -4
  168. package/chunks/{chunk-KEPC5BOL.js → chunk-XDQUDARC.js} +10 -13
  169. package/chunks/{chunk-2EKVPSIJ.js → chunk-Y2MYW47X.js} +1 -1
  170. package/chunks/{chunk-5BH2AIEY.js → chunk-YIU5PEAT.js} +2 -2
  171. package/chunks/{chunk-PSPAM24S.js → chunk-YKK2XXHF.js} +4 -0
  172. package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
  173. package/chunks/{chunk-OFVAS4AR.js → chunk-ZGQIIGNQ.js} +2 -2
  174. package/chunks/{chunk-HNLMYDQE.js → chunk-ZHECLGA6.js} +2 -4
  175. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  176. package/chunks/{chunk-OWCFKIFQ.js → chunk-ZKYR7QS4.js} +1 -1
  177. package/chunks/{chunk-YZTGGCEE.js → chunk-ZKZHSB5W.js} +1 -1
  178. package/chunks/{chunk-ERXNTINK.js → chunk-ZT6EPPBY.js} +1 -1
  179. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  180. package/chunks/{chunk-BK7D2JR6.js → chunk-ZUQVZTWG.js} +3 -3
  181. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  182. package/chunks/{config-utils-GPLIABL2.js → config-utils-S5LFS4RN.js} +65 -58
  183. package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-XXKZMMSQ.js} +62 -55
  184. package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-YGUA42AZ.js} +64 -57
  185. package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-SEK6KCYR.js} +62 -55
  186. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-TIGCFGCS.js} +2 -2
  187. package/chunks/{cron-create-GTPVMJCF.js → cron-create-AKWX67FO.js} +1 -1
  188. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-XPB6IYZJ.js} +1 -1
  189. package/chunks/{cron-list-KTFKFDKC.js → cron-list-XBKO4WU5.js} +1 -1
  190. package/chunks/{daemon-2CKIAO3I.js → daemon-G5TYKZD6.js} +2 -2
  191. package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-3AWINPPX.js} +63 -56
  192. package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-RTKHKUFJ.js} +71 -64
  193. package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-6YQOC7B6.js} +67 -60
  194. package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-EN5L23GS.js} +67 -60
  195. package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
  196. package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-JPLQRVZO.js} +60 -53
  197. package/chunks/{display-image-CTNHJRZC.js → display-image-NAH3AZ63.js} +3 -3
  198. package/chunks/{dist-6YDUH3BB.js → dist-3BJVSJ7D.js} +10 -631
  199. package/chunks/{dist-F6JLAJLE.js → dist-65Q3TRLH.js} +16 -36
  200. package/chunks/{dist-Y5KC3IHW.js → dist-HX2LG76F.js} +233 -34
  201. package/chunks/{dist-BNQVF565.js → dist-J7PDFK53.js} +12 -31
  202. package/chunks/{dist-NP7QKLVG.js → dist-JCXKXRH6.js} +3 -6
  203. package/chunks/{dist-UFTFGI6I.js → dist-LHGMHIDK.js} +2 -6
  204. package/chunks/{dist-XLV33CLY.js → dist-QPTIRE3U.js} +4 -12
  205. package/chunks/{dist-ZDNJK74R.js → dist-SBK33YLC.js} +3 -34
  206. package/chunks/{dist-F34J4FZX.js → dist-WMFHZG3R.js} +2 -5
  207. package/chunks/{edit-YJD6IETK.js → edit-QXJZIWRQ.js} +48 -42
  208. package/chunks/{en-YJNRUQG4.js → en-7BZ2OZKH.js} +2 -1
  209. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-54L5QJ3N.js} +4 -4
  210. package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-2ITCVQ5N.js} +45 -39
  211. package/chunks/{environment-HP3AXFTB.js → environment-URPO5ORZ.js} +63 -56
  212. package/chunks/{errors-22ON46G7.js → errors-TDUYLEKI.js} +62 -55
  213. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-EORJDKDS.js} +4 -4
  214. package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-RA7KMUEW.js} +45 -39
  215. package/chunks/{fast-path-2X7BPMXX.js → fast-path-Q2JYP64P.js} +6 -6
  216. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-GTHZLVSS.js} +2 -2
  217. package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
  218. package/chunks/{glob-Y7ACIB3P.js → glob-VHSV4BKE.js} +48 -42
  219. package/chunks/{goal-tools-DABMICUC.js → goal-tools-5FIE56CK.js} +51 -41
  220. package/chunks/{grep-BLHF2S5D.js → grep-3PKFKLCA.js} +2 -2
  221. package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-7FZFLKNZ.js} +63 -56
  222. package/chunks/{i18n-C3GDCALP.js → i18n-NTFQDWKR.js} +61 -54
  223. package/chunks/{image-gen-XP4NNIYG.js → image-gen-TF3IQWSH.js} +7 -6
  224. package/chunks/{initializer-4URDQL2G.js → initializer-LB3T635H.js} +67 -60
  225. package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-KRO433ZG.js} +60 -53
  226. package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
  227. package/chunks/{list-JOGBAC2R.js → list-NEP3WPZ7.js} +70 -63
  228. package/chunks/{list-agents-2CXPGJUE.js → list-agents-QLDXS5OD.js} +17 -7
  229. package/chunks/{llm-2KPNSAVY.js → llm-AZEJEIAD.js} +130 -123
  230. package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-KWXFHBR3.js} +6 -5
  231. package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-NZORJLSD.js} +67 -60
  232. package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-NGHVU6AK.js} +67 -60
  233. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-HHMYIC7Z.js} +2 -2
  234. package/chunks/{ls-YV7RKLKY.js → ls-N7ABR6HI.js} +4 -4
  235. package/chunks/{lsp-NO3AMRZT.js → lsp-LTOFWG5P.js} +1 -1
  236. package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-3LHNBEAG.js} +60 -53
  237. package/chunks/{mcp-6YYNSYLK.js → mcp-4SWJKDX7.js} +67 -60
  238. package/chunks/{monitor-A255TNZR.js → monitor-V5EFBZC7.js} +47 -41
  239. package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-5UFUBUAT.js} +114 -107
  240. package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-ATV46KWD.js} +46 -40
  241. package/chunks/openai-WX26N5OJ.js +47 -0
  242. package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-BKTO5QJK.js} +31 -25
  243. package/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js +1658 -0
  244. package/chunks/{pidfile-B7DZC4TP.js → pidfile-JAIOWPI3.js} +60 -53
  245. package/chunks/process-registry-X6ZCASEN.js +10 -0
  246. package/chunks/{processUtils-BPZ2MCZS.js → processUtils-TCQH3LVD.js} +2 -2
  247. package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-BYXHEUHX.js} +61 -54
  248. package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
  249. package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-K5TJK75P.js} +58 -50
  250. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-NOXRK323.js} +6 -5
  251. package/chunks/{read-file-A4H4O3VQ.js → read-file-DL7GNZD5.js} +11 -9
  252. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-B37WANAQ.js} +1 -1
  253. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-OAXWXZ5D.js} +2 -2
  254. package/chunks/record-source-D7R7X3GT.js +22 -0
  255. package/chunks/{report-findings-TJ34R7QK.js → report-findings-AR3VC6EQ.js} +3 -3
  256. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-IKNWTX5M.js} +5 -5
  257. package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-OYKXZ4YO.js} +66 -59
  258. package/chunks/{ripGrep-W32NWFTA.js → ripGrep-EOUMIU4K.js} +15 -13
  259. package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
  260. package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-PPTGWC5B.js} +305 -138
  261. package/chunks/{runtime-VRVBX2E5.js → runtime-5RO22P2N.js} +73 -66
  262. package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-YGERFWLZ.js} +68 -61
  263. package/chunks/{scheduler-M2YPN7Z7.js → scheduler-S6WU6M3C.js} +62 -55
  264. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  265. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  266. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  267. package/chunks/{send-message-76BKWKFZ.js → send-message-TWOGWCBG.js} +12 -9
  268. package/chunks/{serve-BE3H2P6P.js → serve-HT4WOCWS.js} +68 -61
  269. package/chunks/{server-FLY5JERG.js → server-SWXVPRCS.js} +2947 -523
  270. package/chunks/{session-JVN62R5K.js → session-6DSFUOMO.js} +122 -115
  271. package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-SOZCTQWW.js} +60 -53
  272. package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-F7XUBQBH.js} +68 -61
  273. package/chunks/{settings-D44YMZFT.js → settings-SWQH36PO.js} +72 -65
  274. package/chunks/{shell-3VE6I4V5.js → shell-XUQL6EYV.js} +45 -39
  275. package/chunks/{skill-FHEGRRZU.js → skill-HNRDD54C.js} +33 -23
  276. package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-JU72PCII.js} +66 -59
  277. package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-7ZVM3GBU.js} +63 -56
  278. package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-64JQY2LX.js} +62 -55
  279. package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-RSLBXESU.js} +183 -161
  280. package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-ZDPHD7XE.js} +553 -1123
  281. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-F6F27JMK.js} +2 -2
  282. package/chunks/{task-create-MWXJFRRM.js → task-create-Y623TBHB.js} +8 -8
  283. package/chunks/{task-list-EYO3FE57.js → task-list-FCPEEGWL.js} +1 -1
  284. package/chunks/{task-stop-BFSKRTGV.js → task-stop-QTKZXLPH.js} +1 -1
  285. package/chunks/{task-update-2JJJRHMT.js → task-update-YLSXF25N.js} +8 -8
  286. package/chunks/{team-create-GY3VFY47.js → team-create-U52VYSNO.js} +47 -41
  287. package/chunks/{team-delete-IQZ6XGFI.js → team-delete-S7TLHZCF.js} +1 -1
  288. package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-IQ4ADQIK.js} +45 -39
  289. package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-ZEMF7LB2.js} +62 -55
  290. package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-DK2S2SOX.js} +60 -53
  291. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-5QI2H2FW.js} +4 -4
  292. package/chunks/{tool-search-XI3QWD5I.js → tool-search-6U4OQG7K.js} +21 -15
  293. package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-BOARHBZU.js} +66 -59
  294. package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-GKQZXZSV.js} +61 -54
  295. package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-GLACF7PX.js} +5 -5
  296. package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-NLBSZB4Q.js} +62 -55
  297. package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-3X3BYU7H.js} +70 -63
  298. package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-NE3JLOIR.js} +111 -104
  299. package/chunks/{version-EK7VAGSI.js → version-6H5YAT4N.js} +1 -1
  300. package/chunks/{web-fetch-24KZO763.js → web-fetch-RWSO7TTN.js} +15 -13
  301. package/chunks/{web-search-CRNXKZ2X.js → web-search-DADI3LV5.js} +388 -327
  302. package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-CCN4JZEE.js} +1 -1
  303. package/chunks/workflow-LPGCZCIT.js +1224 -0
  304. package/chunks/{workspace-providers-status-MAM42IZS.js → workspace-providers-status-QBRBEFTO.js} +71 -64
  305. package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-WUKTMJPW.js} +3 -1
  306. package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-CJV7KVGF.js} +66 -59
  307. package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-7LYMFMFF.js} +69 -60
  308. package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-HWXZSA4J.js} +73 -66
  309. package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-D6QXUWCC.js} +68 -61
  310. package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-VZX7G7CZ.js} +73 -66
  311. package/chunks/{write-file-ERG67ZFX.js → write-file-KKHV26YV.js} +47 -41
  312. package/chunks/{zh-VBFCRQBL.js → zh-J2GLI64H.js} +2 -1
  313. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-TBAICUJQ.js} +2 -1
  314. package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-OG7X7KAA.js} +12 -10
  315. package/cli.js +14 -14
  316. package/export-transcript-document.css +1 -0
  317. package/export-transcript-document.js +164 -165
  318. package/locales/ca.js +2 -2
  319. package/locales/de.js +2 -2
  320. package/locales/en.js +3 -2
  321. package/locales/fr.js +2 -2
  322. package/locales/ja.js +2 -2
  323. package/locales/pt.js +2 -2
  324. package/locales/ru.js +2 -2
  325. package/locales/zh-TW.js +3 -2
  326. package/locales/zh.js +3 -2
  327. package/package.json +5 -4
  328. package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-NT0lTLRG.js} +1 -1
  329. package/web-shell/assets/{arc-qAF9_XsR.js → arc-DDqnIMMx.js} +1 -1
  330. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-DfYghE3W.js} +1 -1
  331. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-DlqJIx5c.js} +1 -1
  332. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-CinqLGU4.js} +1 -1
  333. package/web-shell/assets/channel-BHGoSkEv.js +1 -0
  334. package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-CsjJX5M7.js} +1 -1
  335. package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CaVb2tdH.js} +1 -1
  336. package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CRyErlzW.js} +1 -1
  337. package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-7I79DZCf.js} +1 -1
  338. package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-Dz4cac5F.js} +1 -1
  339. package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-Ls24Derb.js} +1 -1
  340. package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-JzYe4qx7.js} +1 -1
  341. package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-BxDwesA-.js} +1 -1
  342. package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-CW4hjgWc.js} +1 -1
  343. package/web-shell/assets/classDiagram-DTDB5LWJ-E47Xnn15.js +1 -0
  344. package/web-shell/assets/classDiagram-v2-JRS7N3AN-E47Xnn15.js +1 -0
  345. package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-DxikE9iF.js} +1 -1
  346. package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-CvVsIkVN.js} +1 -1
  347. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-CDHkk3wq.js} +1 -1
  348. package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-BgLdkVLT.js} +1 -1
  349. package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-DP43cGhe.js} +1 -1
  350. package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-BWrZYhoT.js} +1 -1
  351. package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-B80wjH_n.js} +1 -1
  352. package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-DPpKmDsY.js} +1 -1
  353. package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-kaEBNbNU.js} +1 -1
  354. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-1-qbEZvk.js} +1 -1
  355. package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-CrK2gMkV.js} +1 -1
  356. package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-Dic2xofW.js} +1 -1
  357. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-DJko8vT7.js} +1 -1
  358. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-DxsQ-bHT.js} +1 -1
  359. package/web-shell/assets/index-DY8CxdBr.js +2173 -0
  360. package/web-shell/assets/index-eBxK3rs2.css +36 -0
  361. package/web-shell/assets/{index-DWoFMu5x.js → index-t7VBrUeD.js} +1 -1
  362. package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-DcRUJbNi.js} +1 -1
  363. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U-CUPw-2_e.js} +1 -1
  364. package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-yOHhZxkW.js} +1 -1
  365. package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-CFUGBbqz.js} +1 -1
  366. package/web-shell/assets/{layout-Dvdh5jRH.js → layout-BoilNfBU.js} +1 -1
  367. package/web-shell/assets/{linear-Dvc6KIW2.js → linear-DOuHaPrl.js} +1 -1
  368. package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-1G1fXWda.js} +6 -6
  369. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-B8BhkrOX.js} +1 -1
  370. package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-CipC5K1D.js} +1 -1
  371. package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-CHBDFDUJ.js} +1 -1
  372. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-_iiBkoZO.js} +1 -1
  373. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-Cx1peHDi.js} +1 -1
  374. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-CBRiPbdQ.js} +1 -1
  375. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-TT6GcHaZ.js} +1 -1
  376. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-CWP42PNb.js} +1 -1
  377. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-Bp94roEG.js} +1 -1
  378. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-0ftrzTAy.js} +1 -1
  379. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-PgAST0dK.js +1 -0
  380. package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-D-FsenYJ.js} +1 -1
  381. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BcWcB5bj.js +8 -0
  382. package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-Ctvrj28y.js} +1 -1
  383. package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-5DZncjOt.js} +1 -1
  384. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-jZjYwPY7.js} +1 -1
  385. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-Ci6Q2C2_.js} +1 -1
  386. package/web-shell/index.html +29 -5
  387. package/chunks/chunk-V7RNNPGC.js +0 -44
  388. package/chunks/workflow-HD5NYMW5.js +0 -2907
  389. package/web-shell/assets/channel-COIuCrVH.js +0 -1
  390. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
  391. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
  392. package/web-shell/assets/index-CI1ysIEv.js +0 -2154
  393. package/web-shell/assets/index-CpxXGH-8.css +0 -36
  394. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
  395. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
  396. /package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
@@ -7,12 +7,12 @@ import {
7
7
  hostAssignsIpv6Loopback,
8
8
  isOwnInterfaceAddress
9
9
  } from "./chunk-24FVUD5P.js";
10
- import {
11
- resolveRemoteServeToken
12
- } from "./chunk-F23YN37B.js";
13
10
  import {
14
11
  RUNTIME_STARTUP_CANCELLED_MESSAGE
15
12
  } from "./chunk-QUPXZXLV.js";
13
+ import {
14
+ resolveRemoteServeToken
15
+ } from "./chunk-F23YN37B.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-VJJXG73H.js";
54
+ } from "./chunk-B2TGBZXY.js";
55
55
  import {
56
56
  ConversationDirectoryIdentityError,
57
57
  assertExactConversationRootIdentity,
@@ -72,6 +72,9 @@ import {
72
72
  import {
73
73
  setDeferredRuntimeRequestTiming
74
74
  } from "./chunk-LAUEEBDL.js";
75
+ import {
76
+ normalizeSessionIdForLookup
77
+ } from "./chunk-ZEZKIS2K.js";
75
78
  import {
76
79
  require_express
77
80
  } from "./chunk-SVWWF5TZ.js";
@@ -83,13 +86,14 @@ import {
83
86
  isLoopbackAddress,
84
87
  isLoopbackBind
85
88
  } from "./chunk-DMEUXLSS.js";
86
- import {
87
- normalizeSessionIdForLookup
88
- } from "./chunk-ZEZKIS2K.js";
89
89
  import "./chunk-NYWWQ437.js";
90
90
  import {
91
91
  resolveSessionRestoreTimeoutMs
92
92
  } from "./chunk-4JRM2BSM.js";
93
+ import {
94
+ ConversationRuntimeOwnershipError,
95
+ LIVE_HOST_PROTOCOL_VERSION
96
+ } from "./chunk-2Z3T52OC.js";
93
97
  import {
94
98
  DEFAULT_RING_SIZE
95
99
  } from "./chunk-7U5G6JXI.js";
@@ -102,39 +106,21 @@ import {
102
106
  normalizeMaxJournalBytes,
103
107
  normalizeMaxJournalEvents
104
108
  } from "./chunk-WCCLLK7X.js";
105
- import {
106
- resolveChannelCwd
107
- } from "./chunk-AUTUFD5X.js";
108
- import {
109
- ConversationRuntimeOwnershipError,
110
- LIVE_HOST_PROTOCOL_VERSION
111
- } from "./chunk-2Z3T52OC.js";
112
109
  import "./chunk-ZL4HFSL6.js";
113
- import "./chunk-K6KS3LTN.js";
114
- import "./chunk-OSHQMOBS.js";
115
110
  import {
116
- consumeServeFastPathRejectedLoaderKeys,
117
- loadServeFastPathSettings,
118
- preResolveServeFastPathHomeEnvOverrides
119
- } from "./chunk-FV4DM2M4.js";
111
+ resolveChannelCwd
112
+ } from "./chunk-CSHX5ZC4.js";
120
113
  import {
121
- MAX_REGISTERED_WORKSPACES,
122
- resolveWorkspaceInputs,
123
- workspaceRegistrationId
124
- } from "./chunk-LWX4WDFF.js";
125
- import "./chunk-TRQNRP2H.js";
114
+ assertChannelControlWorkspaceCapacity
115
+ } from "./chunk-6UK77U7D.js";
126
116
  import {
127
117
  LOAD_REPLAY_META_KEY
128
- } from "./chunk-PSPAM24S.js";
118
+ } from "./chunk-YKK2XXHF.js";
129
119
  import "./chunk-FAWTMDX7.js";
130
- import {
131
- canonicalizeWorkspace,
132
- translateAndCheckAbsoluteWorkspacePath
133
- } from "./chunk-6PLDPT2C.js";
134
120
  import {
135
121
  ExtraCaInspectionError,
136
122
  loadableCertificates
137
- } from "./chunk-KEPC5BOL.js";
123
+ } from "./chunk-XDQUDARC.js";
138
124
  import "./chunk-FYJ7W2PI.js";
139
125
  import "./chunk-Z7B6SRPM.js";
140
126
  import {
@@ -143,19 +129,25 @@ import {
143
129
  import {
144
130
  normalizeWorkerDiagnostic,
145
131
  sanitizeWorkerDiagnostic
146
- } from "./chunk-DARWOZY6.js";
132
+ } from "./chunk-LEGNDA46.js";
133
+ import {
134
+ channelSelectionNames,
135
+ normalizeServeChannelSelection
136
+ } from "./chunk-GDWE23OR.js";
147
137
  import {
148
138
  QWEN_SERVER_TOKEN_ENV
149
139
  } from "./chunk-GYTKQYDB.js";
150
- import {
151
- channelSelectionNames
152
- } from "./chunk-ALMR3E6Q.js";
153
140
  import {
154
141
  ChannelDeliveryError,
155
142
  isChannelDeliveryError
156
143
  } from "./chunk-RKFGE7JH.js";
144
+ import {
145
+ MAX_CHANNEL_CONTROL_WORKSPACES
146
+ } from "./chunk-CJ3DHN5I.js";
157
147
  import "./chunk-UDG5EZJI.js";
158
- import "./chunk-M5GB774H.js";
148
+ import {
149
+ redactLogCredentials
150
+ } from "./chunk-M5GB774H.js";
159
151
  import {
160
152
  EXTERNAL_TOOL_GUARD_PROVIDER_ATTACHED_VALUE,
161
153
  EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
@@ -163,25 +155,40 @@ import {
163
155
  PRIVATE_EXTERNAL_TOOL_GUARD_ENV,
164
156
  PRIVATE_EXTERNAL_TOOL_GUARD_PROVIDER_ENV
165
157
  } from "./chunk-3VUENPWF.js";
166
- import "./chunk-TGNNLRC3.js";
158
+ import "./chunk-K6KS3LTN.js";
159
+ import "./chunk-OSHQMOBS.js";
167
160
  import {
168
161
  sanitizeLogText
169
- } from "./chunk-WDVV3LRM.js";
170
- import "./chunk-IW6RQPQB.js";
171
- import "./chunk-BW4333PP.js";
162
+ } from "./chunk-C4NLHK7X.js";
163
+ import "./chunk-IJOS26LH.js";
172
164
  import {
173
- getGlobalQwenDirLite,
174
- resolveConfigPathLite
175
- } from "./chunk-IDS7MSUP.js";
165
+ consumeServeFastPathRejectedLoaderKeys,
166
+ loadServeFastPathSettings,
167
+ preResolveServeFastPathHomeEnvOverrides
168
+ } from "./chunk-WXFK4MH7.js";
169
+ import "./chunk-BW4333PP.js";
176
170
  import {
177
171
  acquireInheritedLoaderEnvScrub,
178
172
  clearLoaderKeyRejectionReporterIfCurrent,
179
173
  scrubInheritedLoaderEnv,
180
174
  setLoaderKeyRejectionReporter
181
- } from "./chunk-QTNCGZHQ.js";
175
+ } from "./chunk-VX63RJXE.js";
176
+ import {
177
+ resolveMaxRegisteredWorkspaces,
178
+ resolveWorkspaceInputs,
179
+ workspaceRegistrationId
180
+ } from "./chunk-SNZWDV67.js";
181
+ import {
182
+ canonicalizeWorkspace,
183
+ translateAndCheckAbsoluteWorkspacePath
184
+ } from "./chunk-6PLDPT2C.js";
185
+ import {
186
+ getGlobalQwenDirLite,
187
+ resolveConfigPathLite
188
+ } from "./chunk-IDS7MSUP.js";
182
189
  import {
183
190
  getCliVersion
184
- } from "./chunk-MV5DTLJV.js";
191
+ } from "./chunk-ONGZNOIP.js";
185
192
  import "./chunk-W3N5XAZ6.js";
186
193
  import "./chunk-NPQ5ZKRP.js";
187
194
  import {
@@ -194,10 +201,10 @@ import {
194
201
  } from "./chunk-32CM56LO.js";
195
202
  import "./chunk-LJZSMWOH.js";
196
203
  import "./chunk-GOFAQQZA.js";
197
- import "./chunk-65I7S4Z3.js";
198
- import "./chunk-6HUXPLB5.js";
199
204
  import "./chunk-TWPJO254.js";
200
205
  import "./chunk-CQ35AJ4Z.js";
206
+ import "./chunk-65I7S4Z3.js";
207
+ import "./chunk-6HUXPLB5.js";
201
208
  import {
202
209
  require_proper_lockfile
203
210
  } from "./chunk-MLXTMF7H.js";
@@ -206,6 +213,12 @@ import "./chunk-5ETULJLP.js";
206
213
  import {
207
214
  MEMORY_PROJECT_SCOPES
208
215
  } from "./chunk-HD7O6WLV.js";
216
+ import {
217
+ TraceFlags,
218
+ init_esm,
219
+ isSpanContextValid,
220
+ trace
221
+ } from "./chunk-TBWQLLFO.js";
209
222
  import {
210
223
  finalizeStartupProfile,
211
224
  profileCheckpoint
@@ -218,12 +231,6 @@ import {
218
231
  } from "./chunk-7FA2II6K.js";
219
232
  import "./chunk-DMTGGOSA.js";
220
233
  import "./chunk-YQ3U5MUC.js";
221
- import {
222
- TraceFlags,
223
- init_esm,
224
- isSpanContextValid,
225
- trace
226
- } from "./chunk-TBWQLLFO.js";
227
234
  import {
228
235
  init_esbuild_shims
229
236
  } from "./chunk-5O2XNYP6.js";
@@ -3098,6 +3105,16 @@ var QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS_ENV = "QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS";
3098
3105
  var SHUTDOWN_FORCE_CLOSE_MS = 5e3;
3099
3106
  var DAEMON_LOG_FORCED_FLUSH_BUDGET_MS = 250;
3100
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");
3101
3118
  function channelDeliveryPublicError(code) {
3102
3119
  switch (code) {
3103
3120
  case "channel_worker_unavailable":
@@ -3246,7 +3263,8 @@ function isNonNegativeIntegerOrInfinity(value) {
3246
3263
  return value === Number.POSITIVE_INFINITY || Number.isFinite(value) && Number.isInteger(value) && value >= 0;
3247
3264
  }
3248
3265
  __name(isNonNegativeIntegerOrInfinity, "isNonNegativeIntegerOrInfinity");
3249
- function deriveDefaultMaxTotalSessions(maxSessionsPerWorkspace, workspaceCount) {
3266
+ function deriveDefaultMaxTotalSessions(maxSessionsPerWorkspace, workspaceCount, maxRegisteredWorkspaces) {
3267
+ if (maxRegisteredWorkspaces > 25) return 800;
3250
3268
  if (workspaceCount <= 1) return void 0;
3251
3269
  const perWorkspace = maxSessionsPerWorkspace ?? DEFAULT_MAX_SESSIONS;
3252
3270
  if (perWorkspace === 0 || perWorkspace === Number.POSITIVE_INFINITY) {
@@ -3924,12 +3942,12 @@ __name(hasRetryableChannelWorkerShutdownError, "hasRetryableChannelWorkerShutdow
3924
3942
  var channelWorkerRuntimePromise;
3925
3943
  async function loadChannelWorkerRuntime() {
3926
3944
  channelWorkerRuntimePromise ??= Promise.all([
3927
- import("./channel-worker-supervisor-EMITFMCP.js"),
3928
- import("./pidfile-B7DZC4TP.js"),
3929
- import("./runtime-VRVBX2E5.js"),
3945
+ import("./channel-worker-supervisor-HSFAKML6.js"),
3946
+ import("./pidfile-JAIOWPI3.js"),
3947
+ import("./runtime-5RO22P2N.js"),
3930
3948
  import("./cli-entry-path-4VJ3Y6T2.js"),
3931
- import("./channel-worker-group-SQ5FRWOH.js"),
3932
- import("./channel-worker-manager-TU4ZNWOE.js")
3949
+ import("./channel-worker-group-X6WH4XWF.js"),
3950
+ import("./channel-worker-manager-SICFJDPJ.js")
3933
3951
  ]).then(
3934
3952
  ([
3935
3953
  supervisor,
@@ -4035,7 +4053,7 @@ function shouldPreheatBridge(deps) {
4035
4053
  __name(shouldPreheatBridge, "shouldPreheatBridge");
4036
4054
  var coreRuntimePromise;
4037
4055
  function loadCoreRuntime() {
4038
- coreRuntimePromise ??= import("./core-runtime-WKYKWVYU.js");
4056
+ coreRuntimePromise ??= import("./core-runtime-YGUA42AZ.js");
4039
4057
  return coreRuntimePromise;
4040
4058
  }
4041
4059
  __name(loadCoreRuntime, "loadCoreRuntime");
@@ -4071,10 +4089,10 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
4071
4089
  var settingsRuntimePromise;
4072
4090
  function loadSettingsRuntimeModules() {
4073
4091
  settingsRuntimePromise ??= Promise.all([
4074
- import("./settings-D44YMZFT.js"),
4075
- import("./environment-HP3AXFTB.js"),
4076
- import("./loadedSettingsAdapter-DVKROEJD.js"),
4077
- import("./trustedFolders-OVAQKNV5.js")
4092
+ import("./settings-SWQH36PO.js"),
4093
+ import("./environment-URPO5ORZ.js"),
4094
+ import("./loadedSettingsAdapter-NZORJLSD.js"),
4095
+ import("./trustedFolders-GKQZXZSV.js")
4078
4096
  ]).then(([settings, environment, loadedSettingsAdapter, trustedFolders]) => ({
4079
4097
  settings,
4080
4098
  environment,
@@ -4087,8 +4105,8 @@ __name(loadSettingsRuntimeModules, "loadSettingsRuntimeModules");
4087
4105
  var channelWebhookConfigRuntimePromise;
4088
4106
  function loadChannelWebhookConfigRuntime() {
4089
4107
  channelWebhookConfigRuntimePromise ??= Promise.all([
4090
- import("./runtime-VRVBX2E5.js"),
4091
- import("./config-utils-GPLIABL2.js")
4108
+ import("./runtime-5RO22P2N.js"),
4109
+ import("./config-utils-S5LFS4RN.js")
4092
4110
  ]).then(([channelRuntime, configUtils]) => ({
4093
4111
  loadChannelsConfig: channelRuntime.loadChannelsConfig,
4094
4112
  parseChannelWebhookConfig: configUtils.parseChannelWebhookConfig
@@ -4115,19 +4133,19 @@ async function loadServeRuntimeModules() {
4115
4133
  workspaceRuntimeCoordinatorModule,
4116
4134
  promptLedgerModule
4117
4135
  ] = await Promise.all([
4118
- import("./server-FLY5JERG.js"),
4119
- import("./bridge-AOX5IY44.js"),
4120
- import("./spawnChannel-T6MX2ZDN.js"),
4121
- import("./process-registry-OAEG6WGC.js"),
4122
- import("./workspace-service-5IFDCNN3.js"),
4136
+ import("./server-SWXVPRCS.js"),
4137
+ import("./bridge-YF6NYRPZ.js"),
4138
+ import("./spawnChannel-7ZVM3GBU.js"),
4139
+ import("./process-registry-X6ZCASEN.js"),
4140
+ import("./workspace-service-HWXZSA4J.js"),
4123
4141
  import("./types-HKLPXZB3.js"),
4124
- import("./daemon-status-provider-OK7VONJG.js"),
4125
- import("./workspace-providers-status-MAM42IZS.js"),
4126
- import("./workspace-skills-status-FJ3HNH4H.js"),
4127
- import("./total-session-admission-3SNSJJ32.js"),
4128
- import("./workspace-registry-7RDDOBLN.js"),
4129
- import("./workspace-runtime-coordinator-LEPDPXJO.js"),
4130
- import("./prompt-terminal-ledger-FYYTAOXS.js")
4142
+ import("./daemon-status-provider-RTKHKUFJ.js"),
4143
+ import("./workspace-providers-status-QBRBEFTO.js"),
4144
+ import("./workspace-skills-status-D6QXUWCC.js"),
4145
+ import("./total-session-admission-BOARHBZU.js"),
4146
+ import("./workspace-registry-CJV7KVGF.js"),
4147
+ import("./workspace-runtime-coordinator-7LYMFMFF.js"),
4148
+ import("./prompt-terminal-ledger-BYXHEUHX.js")
4131
4149
  ]);
4132
4150
  return {
4133
4151
  createServeApp: serverModule.createServeApp,
@@ -4240,6 +4258,14 @@ function createBootstrapCapabilities(input) {
4240
4258
  transports: ["rest"],
4241
4259
  policy: { permission: input.permissionPolicy ?? "first-responder" },
4242
4260
  limits: {
4261
+ maxRegisteredWorkspaces: input.opts.maxRegisteredWorkspaces,
4262
+ maxChannelControlWorkspaces: MAX_CHANNEL_CONTROL_WORKSPACES,
4263
+ ...input.opts.maxTotalSessions !== void 0 ? {
4264
+ maxSessionsPerWorkspace: advertisedMaxSessions(
4265
+ input.opts.maxSessions
4266
+ ),
4267
+ maxTotalSessions: positiveFiniteOrNull(input.opts.maxTotalSessions)
4268
+ } : {},
4243
4269
  maxPendingPromptsPerSession: advertisedMaxPendingPromptsPerSession(
4244
4270
  input.opts.maxPendingPromptsPerSession
4245
4271
  ),
@@ -4500,6 +4526,8 @@ function createBootstrapServeApp(input) {
4500
4526
  sessionShellCommandEnabled
4501
4527
  },
4502
4528
  limits: {
4529
+ maxRegisteredWorkspaces: opts.maxRegisteredWorkspaces,
4530
+ maxChannelControlWorkspaces: MAX_CHANNEL_CONTROL_WORKSPACES,
4503
4531
  maxSessions: advertisedMaxSessions(opts.maxSessions),
4504
4532
  maxTotalSessions: positiveFiniteOrNull(opts.maxTotalSessions),
4505
4533
  maxPendingPromptsPerSession: advertisedMaxPendingPromptsPerSession(
@@ -4941,6 +4969,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
4941
4969
  const opts = {
4942
4970
  ...optsIn,
4943
4971
  hostname: bindHostname,
4972
+ maxRegisteredWorkspaces: resolveMaxRegisteredWorkspaces(
4973
+ optsIn.maxRegisteredWorkspaces,
4974
+ daemonRuntimeBaseEnv
4975
+ ),
4944
4976
  token,
4945
4977
  promptDeadlineMs,
4946
4978
  writerIdleTimeoutMs,
@@ -5163,9 +5195,9 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5163
5195
  }
5164
5196
  }
5165
5197
  }
5166
- if (workspaceInputs.length > MAX_REGISTERED_WORKSPACES) {
5198
+ if (workspaceInputs.length > opts.maxRegisteredWorkspaces) {
5167
5199
  throw new Error(
5168
- `At most ${MAX_REGISTERED_WORKSPACES} --workspace values may be registered.`
5200
+ `At most ${opts.maxRegisteredWorkspaces} --workspace values may be registered.`
5169
5201
  );
5170
5202
  }
5171
5203
  opts.daemonMemoryBudget = resolveDaemonMemoryBudget({
@@ -5205,8 +5237,9 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5205
5237
  );
5206
5238
  }
5207
5239
  let workspaceRegistrationStore = deps.workspaceRegistrationStore;
5240
+ const explicitWorkspaceCount = workspaceInputs.length;
5208
5241
  if (workspaceRegistrationStore === void 0 && process.env["QWEN_SERVE_NO_PERSISTENT_REGISTRATION"] !== "1") {
5209
- const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-HKLJEDQX.js");
5242
+ const { WorkspaceRegistrationStore } = await import("./workspace-registration-store-WUKTMJPW.js");
5210
5243
  workspaceRegistrationStore = new WorkspaceRegistrationStore(boundWorkspace);
5211
5244
  }
5212
5245
  if (workspaceRegistrationStore) {
@@ -5261,14 +5294,6 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5261
5294
  );
5262
5295
  continue;
5263
5296
  }
5264
- if (workspaceInputs.length >= MAX_REGISTERED_WORKSPACES) {
5265
- writeStderrLine(
5266
- `qwen serve: skipping persisted workspace registration ${JSON.stringify(
5267
- storedWorkspace
5268
- )}: workspace limit reached`
5269
- );
5270
- continue;
5271
- }
5272
5297
  workspaceInputs.push({
5273
5298
  raw: storedWorkspace,
5274
5299
  cwd,
@@ -5283,6 +5308,11 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5283
5308
  );
5284
5309
  }
5285
5310
  }
5311
+ if (workspaceInputs.length > opts.maxRegisteredWorkspaces) {
5312
+ throw new Error(
5313
+ `${explicitWorkspaceCount} explicit + ${workspaceInputs.length - explicitWorkspaceCount} restored workspaces exceed the configured limit of ${opts.maxRegisteredWorkspaces}. Restart with the previous capacity, forget registrations and reduce explicit --workspace values before lowering the limit. The registration store was not changed.`
5314
+ );
5315
+ }
5286
5316
  if (workspaceInputs.length > 1 && deps.bridge) {
5287
5317
  throw new Error(
5288
5318
  "Injected bridge dependencies are only supported with a single workspace; multiple --workspace values require runQwenServe to construct one bridge per workspace."
@@ -5308,7 +5338,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5308
5338
  throw err;
5309
5339
  }
5310
5340
  writeStderrLine(
5311
- `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.`
5312
5342
  );
5313
5343
  }
5314
5344
  const daemonLogBaseDir = await resolveDaemonLogBaseDirForRun({
@@ -5321,6 +5351,54 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5321
5351
  baseDir: daemonLogBaseDir
5322
5352
  });
5323
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
+ }
5324
5402
  daemonLog.info("project memory scope resolved", {
5325
5403
  projectMemoryScope: resolvedMemoryProjectScope,
5326
5404
  projectMemoryScopeSource: memoryProjectScopeSource,
@@ -5472,7 +5550,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5472
5550
  }
5473
5551
  opts.maxTotalSessions ??= deriveDefaultMaxTotalSessions(
5474
5552
  opts.maxSessions,
5475
- workspaceInputs.length
5553
+ workspaceInputs.length,
5554
+ opts.maxRegisteredWorkspaces
5476
5555
  );
5477
5556
  const inheritedNoPool = process.env["QWEN_SERVE_NO_MCP_POOL"] === "1";
5478
5557
  if (opts.mcpPoolActive === void 0 && inheritedNoPool) {
@@ -5497,7 +5576,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5497
5576
  "qwen serve: required external tool guard handshake succeeded."
5498
5577
  );
5499
5578
  }
5500
- const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-73ZWOLKL.js");
5579
+ const { createDaemonToolGuard } = await import("./daemon-git-worktree-guard-3AWINPPX.js");
5501
5580
  const daemonToolGuardHandler = createDaemonToolGuard(
5502
5581
  externalToolGuardHandler
5503
5582
  );
@@ -5848,7 +5927,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
5848
5927
  loadCoreRuntime(),
5849
5928
  loadSettingsRuntimeModules(),
5850
5929
  cliVersionPromise,
5851
- import("./daemon-trust-policy-CAUCREG2.js")
5930
+ import("./daemon-trust-policy-6YQOC7B6.js")
5852
5931
  ]);
5853
5932
  getWorkspaceRuntimeCoordinatorIfSupported = runtime.getWorkspaceRuntimeCoordinatorIfSupported;
5854
5933
  cliVersion = resolvedCliVersion;
@@ -6256,7 +6335,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6256
6335
  }), "persistDisabledToolsFn");
6257
6336
  const persistDisabledSkillsFn = /* @__PURE__ */ __name((workspace, skillName, enabled, assertGenerationOpen) => withSettingsLock(workspace, async () => {
6258
6337
  assertGenerationOpen?.();
6259
- const { skillSettingStrings, updateWorkspaceSkillSettingLists } = await import("./skill-settings-VHEJMBFL.js");
6338
+ const { skillSettingStrings, updateWorkspaceSkillSettingLists } = await import("./skill-settings-JU72PCII.js");
6260
6339
  const fresh = loadSettingsForPersistence(workspace);
6261
6340
  const workspaceDisabled = skillSettingStrings(
6262
6341
  fresh,
@@ -6306,7 +6385,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6306
6385
  }), "persistDisabledSkillsFn");
6307
6386
  const persistDisabledSkillsBatchFn = /* @__PURE__ */ __name((workspace, skillNames, enabled, assertGenerationOpen) => withSettingsLock(workspace, async () => {
6308
6387
  assertGenerationOpen?.();
6309
- const { skillSettingStrings, updateWorkspaceSkillSettingLists } = await import("./skill-settings-VHEJMBFL.js");
6388
+ const { skillSettingStrings, updateWorkspaceSkillSettingLists } = await import("./skill-settings-JU72PCII.js");
6310
6389
  const fresh = loadSettingsForPersistence(workspace);
6311
6390
  const initialDisabled = skillSettingStrings(
6312
6391
  fresh,
@@ -6397,10 +6476,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
6397
6476
  }
6398
6477
  }), "persistSettingsFn");
6399
6478
  const [{ createSubSessionLauncher }, scheduledTaskRoutes] = await Promise.all([
6400
- import("./create-sub-session-PPLXB3JJ.js"),
6401
- import("./scheduled-tasks-D65KJDA3.js")
6479
+ import("./create-sub-session-SEK6KCYR.js"),
6480
+ import("./scheduled-tasks-YGERFWLZ.js")
6402
6481
  ]);
6403
- const { sessionAttachmentsRoots } = await import("./session-attachments-root-7ACGLHXA.js");
6482
+ const { sessionAttachmentsRoots } = await import("./session-attachments-root-SOZCTQWW.js");
6404
6483
  const createCurrentSessionScheduledTaskHandler = /* @__PURE__ */ __name((workspaceCwd, runtimeBaseDir, getBridge, assertGenerationOpen) => async ({
6405
6484
  callerSessionId,
6406
6485
  cron,
@@ -7241,7 +7320,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7241
7320
  };
7242
7321
  sessionPrRefreshTimer?.dispose();
7243
7322
  const refreshGeneration = ++sessionPrRefreshGeneration;
7244
- void import("./session-pr-refresh-TQS57SDK.js").then((mod) => {
7323
+ void import("./session-pr-refresh-F7XUBQBH.js").then((mod) => {
7245
7324
  if (refreshGeneration !== sessionPrRefreshGeneration) return;
7246
7325
  sessionPrRefreshTimer = mod.startSessionPrRefreshTimer({
7247
7326
  workspaceRegistry,
@@ -7911,8 +7990,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7911
7990
  { createChannelManagementService },
7912
7991
  { WorkspaceChannelSettingsStore }
7913
7992
  ] = await Promise.all([
7914
- import("./channel-management-service-MWQGHPAS.js"),
7915
- import("./channel-settings-store-XZCGDGHW.js")
7993
+ import("./channel-management-service-E4HTMU7T.js"),
7994
+ import("./channel-settings-store-FZ5VKHQD.js")
7916
7995
  ]);
7917
7996
  return createChannelManagementService({
7918
7997
  workspaceCwd: targetRuntime.workspaceCwd,
@@ -7966,6 +8045,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
7966
8045
  throw new Error("Workspace runtime publication validation failed.");
7967
8046
  }, "validateWorkspaceRuntimeForPublication");
7968
8047
  const app2 = runtime.createServeApp(opts, () => actualPort, {
8048
+ maxChannelControlWorkspaces: MAX_CHANNEL_CONTROL_WORKSPACES,
7969
8049
  serveAppLifecycle,
7970
8050
  liveDiscoveryStableBaseDir,
7971
8051
  workspaceRegistry,
@@ -8117,8 +8197,8 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8117
8197
  { createWorkspaceTrustReconciler },
8118
8198
  { createDaemonTrustPolicyMonitor }
8119
8199
  ] = await Promise.all([
8120
- import("./workspace-trust-reconciler-PQFHIWLR.js"),
8121
- import("./daemon-trust-policy-monitor-3Y36OOEQ.js")
8200
+ import("./workspace-trust-reconciler-VZX7G7CZ.js"),
8201
+ import("./daemon-trust-policy-monitor-EN5L23GS.js")
8122
8202
  ]);
8123
8203
  const materializationFor = /* @__PURE__ */ __name((entry, snapshot, decision) => {
8124
8204
  const boundWorkspaces2 = entry.primary && decision.targetTrusted ? runtime.resolveBoundWorkspacesFromIdeEnv(
@@ -8315,7 +8395,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8315
8395
  // through (and start the runtime) exactly like the warm app would.
8316
8396
  // Dynamic import keeps web-shell-static out of the serve fast-path
8317
8397
  // static closure (see the import-boundary guards in fast-path.test.ts).
8318
- isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-BFDESDD4.js").then(
8398
+ isPreAuthRequest: webShellMounted ? (req) => import("./web-shell-static-CCN4JZEE.js").then(
8319
8399
  (webShellStatic) => webShellStatic.isPreAuthWebShellRequest(req)
8320
8400
  ) : void 0
8321
8401
  });
@@ -8334,11 +8414,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8334
8414
  `Invalid maxConnections: ${opts.maxConnections}. Must be >= 0 (0 / Infinity = unlimited).`
8335
8415
  );
8336
8416
  }
8337
- const channelValidationSettingsRuntime = opts.channelSelection ? await loadSettingsRuntimeModules() : void 0;
8338
- const channelValidationTrustPolicy = opts.channelSelection ? await import("./daemon-trust-policy-CAUCREG2.js") : void 0;
8339
- const channelValidationTrustSnapshot = channelValidationTrustPolicy ? await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot() : void 0;
8417
+ let channelValidationSettingsRuntime;
8418
+ let channelValidationTrustPolicy;
8419
+ let channelValidationTrustSnapshot;
8340
8420
  const resolveChannelWorkspaceGroupsAtListen = /* @__PURE__ */ __name(() => {
8341
- if (!opts.channelSelection || !channelValidationSettingsRuntime || !channelRuntime) {
8421
+ const validationSettingsRuntime = channelValidationSettingsRuntime;
8422
+ if (!opts.channelSelection || !validationSettingsRuntime || !channelRuntime) {
8342
8423
  return void 0;
8343
8424
  }
8344
8425
  const registry = (runtimeApp ?? runtimeAppForCleanup)?.locals?.["workspaceRegistry"];
@@ -8378,15 +8459,12 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8378
8459
  { code: "untrusted_workspace" }
8379
8460
  );
8380
8461
  }
8381
- const effectiveEnv = runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : channelValidationSettingsRuntime.environment.buildRuntimeEnvironment(
8382
- channelValidationSettingsRuntime.settings.loadSettings(
8383
- workspace.cwd,
8384
- {
8385
- skipLoadEnvironment: true,
8386
- skipWorkspaceSettings: false,
8387
- workspaceTrusted: true
8388
- }
8389
- ).merged,
8462
+ const effectiveEnv = runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : validationSettingsRuntime.environment.buildRuntimeEnvironment(
8463
+ validationSettingsRuntime.settings.loadSettings(workspace.cwd, {
8464
+ skipLoadEnvironment: true,
8465
+ skipWorkspaceSettings: false,
8466
+ workspaceTrusted: true
8467
+ }).merged,
8390
8468
  workspace.cwd,
8391
8469
  daemonRuntimeBaseEnv,
8392
8470
  trusted
@@ -8397,7 +8475,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8397
8475
  const workspaces = workspaceInputs.map((workspace, index) => {
8398
8476
  const runtime = resolveRuntime(workspace.cwd);
8399
8477
  const trusted = resolveTrusted(workspace.cwd, index === 0, runtime);
8400
- const settings = channelValidationSettingsRuntime.settings.loadSettings(
8478
+ const settings = validationSettingsRuntime.settings.loadSettings(
8401
8479
  workspace.cwd,
8402
8480
  {
8403
8481
  skipLoadEnvironment: true,
@@ -8408,7 +8486,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8408
8486
  settingsByWorkspace.set(workspace.cwd, settings);
8409
8487
  channelWebhookEnvByWorkspace.set(
8410
8488
  workspace.cwd,
8411
- runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : channelValidationSettingsRuntime.environment.buildRuntimeEnvironment(
8489
+ runtime ? workspaceRuntimeEffectiveEnv(runtime, daemonRuntimeBaseEnv) : validationSettingsRuntime.environment.buildRuntimeEnvironment(
8412
8490
  settings.merged,
8413
8491
  workspace.cwd,
8414
8492
  daemonRuntimeBaseEnv,
@@ -8439,7 +8517,23 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8439
8517
  return grouping.groups;
8440
8518
  }, "resolveChannelWorkspaceGroupsAtListen");
8441
8519
  if (opts.channelSelection) {
8442
- reserveChannelServicePidfile(opts.channelSelection);
8520
+ try {
8521
+ channelValidationSettingsRuntime = await loadSettingsRuntimeModules();
8522
+ channelValidationTrustPolicy = await import("./daemon-trust-policy-6YQOC7B6.js");
8523
+ channelValidationTrustSnapshot = await channelValidationTrustPolicy.readDaemonTrustPolicySnapshot();
8524
+ if (opts.channelSelection.mode === "names" && workspaceInputs.length > MAX_CHANNEL_CONTROL_WORKSPACES) {
8525
+ const groups = resolveChannelWorkspaceGroupsAtListen();
8526
+ assertChannelControlWorkspaceCapacity(
8527
+ groups?.map((group) => group.workspaceCwd) ?? []
8528
+ );
8529
+ }
8530
+ reserveChannelServicePidfile(opts.channelSelection);
8531
+ } catch (error) {
8532
+ if (!channelSelectionFromSettings) throw error;
8533
+ removeCurrentServePidfile();
8534
+ opts.channelSelection = void 0;
8535
+ reportConfiguredChannelStartupFailure(error);
8536
+ }
8443
8537
  }
8444
8538
  return await new Promise((resolve3, reject) => {
8445
8539
  let closeHost;
@@ -8806,11 +8900,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
8806
8900
  const armRuntimeStartupTimer = /* @__PURE__ */ __name(() => {
8807
8901
  if (runtimeStartupTimeoutMs <= 0 || runtimeStartupTimer) return;
8808
8902
  runtimeStartupTimer = setTimeout(() => {
8809
- void failRuntimeStartup(
8810
- new Error(
8811
- `Daemon runtime startup timed out after ${runtimeStartupTimeoutMs}ms.`
8812
- )
8903
+ const timeoutError = new Error(
8904
+ `Daemon runtime startup timed out after ${runtimeStartupTimeoutMs}ms.`
8813
8905
  );
8906
+ void failRuntimeStartup(timeoutError);
8814
8907
  }, runtimeStartupTimeoutMs);
8815
8908
  runtimeStartupTimer.unref();
8816
8909
  }, "armRuntimeStartupTimer");
@@ -9037,8 +9130,32 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9037
9130
  acpHandle?.attachServer?.(server);
9038
9131
  if (opts.channelSelection) {
9039
9132
  closeServerAfterChannelWorkerStartupFailure = true;
9040
- const manager = await ensureChannelWorkerManager();
9041
- await manager.startInitial(opts.channelSelection);
9133
+ let manager;
9134
+ try {
9135
+ manager = await ensureChannelWorkerManager();
9136
+ await manager.startInitial(opts.channelSelection);
9137
+ } catch (error2) {
9138
+ if (!channelSelectionFromSettings || runtimeStartupSettled) {
9139
+ throw error2;
9140
+ }
9141
+ closeServerAfterChannelWorkerStartupFailure = false;
9142
+ opts.channelSelection = void 0;
9143
+ reportConfiguredChannelStartupFailure(error2);
9144
+ try {
9145
+ if (manager) {
9146
+ await manager.stopSelection();
9147
+ } else {
9148
+ removeCurrentServePidfile();
9149
+ if (channelPidfileReserved) {
9150
+ throw new Error(
9151
+ "Failed to release the channel service lease."
9152
+ );
9153
+ }
9154
+ }
9155
+ } catch (cleanupError) {
9156
+ reportConfiguredChannelStartupFailure(cleanupError);
9157
+ }
9158
+ }
9042
9159
  if (runtimeStartupSettled) return;
9043
9160
  }
9044
9161
  if (runtimeStartupSettled) return;
@@ -9048,7 +9165,45 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9048
9165
  clearRuntimeStartupTimer();
9049
9166
  markRuntimeReady();
9050
9167
  }, "completeRuntimeStartup");
9051
- const startBridgePreheat = /* @__PURE__ */ __name((bridge) => {
9168
+ const scheduleWorkspaceMcpDiscoveryAfterPreheat = /* @__PURE__ */ __name((app2) => {
9169
+ if (runtimeStartupError !== void 0) {
9170
+ daemonLog.info(
9171
+ "workspace runtime ensure after preheat skipped: runtime startup failed"
9172
+ );
9173
+ return;
9174
+ }
9175
+ if (shuttingDown) {
9176
+ daemonLog.info(
9177
+ "workspace runtime ensure after preheat skipped: shutting down"
9178
+ );
9179
+ return;
9180
+ }
9181
+ const registry = app2.locals?.["workspaceRegistry"];
9182
+ const primaryEntry = registry?.primaryEntry;
9183
+ const runtime = primaryEntry?.state === "active" ? primaryEntry.current?.runtime : void 0;
9184
+ if (!runtime) {
9185
+ daemonLog.info(
9186
+ "workspace runtime ensure after preheat skipped: no primary runtime"
9187
+ );
9188
+ return;
9189
+ }
9190
+ const coordinator = getWorkspaceRuntimeCoordinatorIfSupported?.(runtime);
9191
+ if (!coordinator) {
9192
+ daemonLog.info(
9193
+ "workspace runtime ensure after preheat skipped: workspace runtime lifecycle is not supported"
9194
+ );
9195
+ return;
9196
+ }
9197
+ void coordinator.ensure({ keepAliveMs: ENSURE_KEEP_ALIVE_MS }).catch((err) => {
9198
+ if (shuttingDown || runtimeStartupError !== void 0) {
9199
+ return;
9200
+ }
9201
+ daemonLog.warn(
9202
+ `workspace runtime ensure after preheat failed: ${deepestErrorMessage(err)}`
9203
+ );
9204
+ });
9205
+ }, "scheduleWorkspaceMcpDiscoveryAfterPreheat");
9206
+ const startBridgePreheat = /* @__PURE__ */ __name((bridge, app2) => {
9052
9207
  startup.preheat.status = "running";
9053
9208
  const preheatStartedAt = performance2.now();
9054
9209
  bridge.preheat().then(() => {
@@ -9056,6 +9211,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9056
9211
  startup.preheat.durationMs = Math.round(
9057
9212
  performance2.now() - preheatStartedAt
9058
9213
  );
9214
+ scheduleWorkspaceMcpDiscoveryAfterPreheat(app2);
9059
9215
  }).catch((err) => {
9060
9216
  const message = err instanceof Error ? err.message : String(err);
9061
9217
  startup.preheat.status = "failed";
@@ -9089,7 +9245,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9089
9245
  return;
9090
9246
  }
9091
9247
  if (shouldPreheat && runtime.bridge) {
9092
- startBridgePreheat(runtime.bridge);
9248
+ startBridgePreheat(runtime.bridge, runtime.app);
9093
9249
  }
9094
9250
  await completeRuntimeStartup(runtime.app);
9095
9251
  }).catch((err) => failRuntimeStartup(err));
@@ -9406,14 +9562,19 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9406
9562
  } catch (err) {
9407
9563
  removeCurrentServePidfile();
9408
9564
  const error2 = err instanceof Error ? err : new Error(String(err));
9409
- markServeAppStartupFailed(error2);
9410
- void serveAppLifecycle.close().then(
9411
- () => reject(error2),
9412
- (closeError) => reject(
9413
- closeError instanceof Error ? new AggregateError([error2, closeError], error2.message) : error2
9414
- )
9415
- );
9416
- return;
9565
+ if (channelSelectionFromSettings) {
9566
+ opts.channelSelection = void 0;
9567
+ reportConfiguredChannelStartupFailure(error2);
9568
+ } else {
9569
+ markServeAppStartupFailed(error2);
9570
+ void serveAppLifecycle.close().then(
9571
+ () => reject(error2),
9572
+ (closeError) => reject(
9573
+ closeError instanceof Error ? new AggregateError([error2, closeError], error2.message) : error2
9574
+ )
9575
+ );
9576
+ return;
9577
+ }
9417
9578
  }
9418
9579
  if (channelWorkspaceGroups) {
9419
9580
  for (const group of channelWorkspaceGroups) {
@@ -9424,7 +9585,7 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9424
9585
  }
9425
9586
  if (opts.channelSelection?.mode === "all") {
9426
9587
  writeStderrLine(
9427
- "qwen serve: --channel all is primary-workspace only; non-primary workspace channels are not hosted."
9588
+ 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."
9428
9589
  );
9429
9590
  }
9430
9591
  }
@@ -9472,9 +9633,10 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9472
9633
  });
9473
9634
  const preparedRuntimeApp = runtimeApp ?? runtimeAppForCleanup;
9474
9635
  if (preparedRuntimeApp && bridgeRef && deps.bridge) {
9636
+ runtimeApp ??= preparedRuntimeApp;
9475
9637
  attachLiveDiscoveryControl(preparedRuntimeApp);
9476
9638
  if (shouldPreheat) {
9477
- startBridgePreheat(bridgeRef);
9639
+ startBridgePreheat(bridgeRef, preparedRuntimeApp);
9478
9640
  }
9479
9641
  if (opts.channelSelection && !runtimeStartupSettled) {
9480
9642
  armRuntimeStartupTimer();
@@ -9486,6 +9648,11 @@ async function runQwenServeImpl(optsIn, deps, loggerLifecycle) {
9486
9648
  acpHandle?.attachServer?.(server);
9487
9649
  markServeAppStartupReady();
9488
9650
  void publishLiveDiscovery(preparedRuntimeApp);
9651
+ if (!runtimeStartupSettled) {
9652
+ runtimeStartupSettled = true;
9653
+ clearRuntimeStartupTimer();
9654
+ markRuntimeReady();
9655
+ }
9489
9656
  }
9490
9657
  } else if (deferRuntimeUntilFirstHealth) {
9491
9658
  scheduleRuntimeStartFallback();