@qwen-code/qwen-code 0.20.0 → 0.20.1-nightly.20260724.7d17c44a3

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 (388) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +1 -1
  2. package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
  3. package/bundled/qc-helper/docs/features/commands.md +54 -0
  4. package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
  5. package/bundled/qc-helper/docs/integration-github-action.md +1 -1
  6. package/bundled/qc-helper/docs/qwen-serve.md +2 -1
  7. package/bundled/review/DESIGN.md +2 -2
  8. package/bundled/review/SKILL.md +7 -5
  9. package/chunks/MaxSizedBox-LGRTXB47.js +84 -0
  10. package/chunks/{StandaloneSessionPicker-CEGO2AZX.js → StandaloneSessionPicker-H3TBU3C3.js} +68 -56
  11. package/chunks/{acp-startup-profiler-N3RHHXJ3.js → acp-startup-profiler-RV3IV562.js} +2 -2
  12. package/chunks/{acpAgent-YUR43TLG.js → acpAgent-5D7P4BB5.js} +2061 -556
  13. package/chunks/agent-W7UAHCCI.js +80 -0
  14. package/chunks/agent-headless-KTBMPRSC.js +74 -0
  15. package/chunks/{anthropicContentGenerator-HVKLXOOU.js → anthropicContentGenerator-ZLQ3X2HI.js} +112 -45
  16. package/chunks/{artifact-tool-WBCAMD3O.js → artifact-tool-OKMWONT6.js} +3 -3
  17. package/chunks/{askUserQuestion-6DZC4UV5.js → askUserQuestion-V6FUS23G.js} +3 -3
  18. package/chunks/bridge-FFC4C6VD.js +89 -0
  19. package/chunks/{build-SSCNEHZZ.js → build-RV63TIRH.js} +2 -3
  20. package/chunks/{ca-2SL2BXTK.js → ca-GKRQZ7AM.js} +612 -201
  21. package/chunks/{channel-worker-group-53CMOPFT.js → channel-worker-group-MA3WXWYX.js} +7 -6
  22. package/chunks/{channel-worker-manager-UTXILKC2.js → channel-worker-manager-TIYYYBCT.js} +189 -29
  23. package/chunks/{channel-worker-supervisor-ZGO2W2MD.js → channel-worker-supervisor-CXRCDA4Y.js} +6 -5
  24. package/chunks/{chunk-TYQMGACW.js → chunk-22C7BQ6D.js} +508 -10967
  25. package/chunks/{chunk-4EP2PYYL.js → chunk-2G6QIHYL.js} +5 -5
  26. package/chunks/{chunk-H2XVO6NE.js → chunk-2MIN6GRR.js} +1 -1
  27. package/chunks/chunk-2RFKHEXL.js +74 -0
  28. package/chunks/{chunk-7SXZC7ID.js → chunk-2WTVWAKT.js} +7 -6
  29. package/chunks/{chunk-TIH2ZTOC.js → chunk-32A4PI3E.js} +2 -2
  30. package/chunks/chunk-36HSVBBU.js +469 -0
  31. package/chunks/{chunk-IR46U7RB.js → chunk-3FB2Y2OE.js} +3 -3
  32. package/chunks/{chunk-QR6U5QPP.js → chunk-3SJ43L4W.js} +4 -0
  33. package/chunks/chunk-3Z43GZUQ.js +32 -0
  34. package/chunks/chunk-43T5WDQ7.js +127 -0
  35. package/chunks/chunk-46UV252V.js +128 -0
  36. package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
  37. package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
  38. package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
  39. package/chunks/{chunk-OWCALFEG.js → chunk-54R2CV2G.js} +1 -1
  40. package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
  41. package/chunks/chunk-5BS3KLRP.js +6194 -0
  42. package/chunks/{chunk-NEEB7UEN.js → chunk-6GMVPFB2.js} +153 -72
  43. package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
  44. package/chunks/chunk-6PVPNMXU.js +29 -0
  45. package/chunks/chunk-6QHAUJUE.js +293 -0
  46. package/chunks/chunk-6VK3IRTX.js +10017 -0
  47. package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
  48. package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
  49. package/chunks/{chunk-FSL5W5TI.js → chunk-AFFGGOF6.js} +4 -4
  50. package/chunks/chunk-AMDSOFFV.js +10860 -0
  51. package/chunks/chunk-AXUW635Q.js +934 -0
  52. package/chunks/{chunk-A5LYNIW7.js → chunk-BJBUDCM3.js} +8 -8
  53. package/chunks/chunk-BK2UNYWD.js +29 -0
  54. package/chunks/{chunk-6RLROE6G.js → chunk-BLFVGB7D.js} +30 -4
  55. package/chunks/chunk-BPJSQIJX.js +100 -0
  56. package/chunks/{chunk-FLSVD6BS.js → chunk-BRTR7S7O.js} +3 -3
  57. package/chunks/{chunk-KG3XV6FH.js → chunk-BSNWBC33.js} +32 -2
  58. package/chunks/chunk-BULDBTYC.js +153 -0
  59. package/chunks/{chunk-PBWEWI4N.js → chunk-BW5Z5NOG.js} +83 -74
  60. package/chunks/{chunk-EIAK6Q2B.js → chunk-C3VHAXP2.js} +20 -3
  61. package/chunks/{chunk-6AFUCL3D.js → chunk-CEZB3XFD.js} +1 -1
  62. package/chunks/chunk-CHMENNJV.js +1832 -0
  63. package/chunks/{chunk-TMQ6XQCX.js → chunk-CK3IEEHR.js} +416 -291
  64. package/chunks/{chunk-OYZWQNWG.js → chunk-CK6UABV2.js} +2 -2
  65. package/chunks/{chunk-VZQUV7VK.js → chunk-CKTMY3EP.js} +1 -1
  66. package/chunks/{chunk-VDWBQ5AW.js → chunk-CUPAVLRY.js} +5 -2
  67. package/chunks/{chunk-I2PYAYFM.js → chunk-CXUFILV3.js} +3 -3
  68. package/chunks/chunk-DP3IHZGG.js +1498 -0
  69. package/chunks/{chunk-BMWMT5Y2.js → chunk-DP5GT2MW.js} +7 -375
  70. package/chunks/{chunk-D22SX43D.js → chunk-DWNZ6PVQ.js} +1 -1
  71. package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
  72. package/chunks/{chunk-DP5GXXNZ.js → chunk-EL2IQ2S5.js} +5 -1
  73. package/chunks/{chunk-EZVDJFZ7.js → chunk-ERLGR7GI.js} +1 -1
  74. package/chunks/{chunk-IVPSS6EL.js → chunk-F5MBYZSU.js} +4 -4
  75. package/chunks/{chunk-AQIEINAY.js → chunk-F6IYL66A.js} +28 -1766
  76. package/chunks/{chunk-FEOZBUMT.js → chunk-FODK6UMO.js} +0 -27
  77. package/chunks/{chunk-PGEPSDJI.js → chunk-FWNZ7CVN.js} +24 -20
  78. package/chunks/{chunk-5JBR5XIK.js → chunk-G7EFBBVF.js} +220 -141
  79. package/chunks/chunk-GLNBDYUX.js +38 -0
  80. package/chunks/{chunk-ANPINBOF.js → chunk-H4YKEV2X.js} +5 -5
  81. package/chunks/{chunk-TDKQP3M6.js → chunk-HIJQF5B5.js} +1 -1
  82. package/chunks/{chunk-FQD7GFSV.js → chunk-HJJDKFL5.js} +3 -3
  83. package/chunks/{chunk-4N3KMAIL.js → chunk-HPWHDJID.js} +152 -35
  84. package/chunks/{chunk-KQNM4EO7.js → chunk-HQCSRJ3P.js} +138 -6
  85. package/chunks/chunk-HTR4WV6U.js +327 -0
  86. package/chunks/{chunk-YWEW33JY.js → chunk-HVO55LUD.js} +7 -7
  87. package/chunks/{chunk-MJ6S23WZ.js → chunk-HZEWYOVI.js} +5 -5
  88. package/chunks/chunk-IFG6TYJ2.js +16577 -0
  89. package/chunks/{chunk-B3KGZCQN.js → chunk-IJTOWOD7.js} +322 -202
  90. package/chunks/{chunk-RS7MT2QG.js → chunk-IPUUTYMV.js} +2 -4
  91. package/chunks/{chunk-4ILMYHEI.js → chunk-IRDZJSCL.js} +3 -3
  92. package/chunks/{chunk-XU457J4V.js → chunk-IRH27ZC2.js} +2 -2
  93. package/chunks/{chunk-33XUAINQ.js → chunk-J5UKQEFG.js} +69 -9
  94. package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
  95. package/chunks/{chunk-S2XVRHDN.js → chunk-JDFBBGRD.js} +1 -1
  96. package/chunks/{chunk-4XNLIGVA.js → chunk-JKCALGYN.js} +1023 -383
  97. package/chunks/{chunk-TJTKSVIV.js → chunk-JLU636DO.js} +5 -1
  98. package/chunks/{chunk-VEXFOTEO.js → chunk-JYUSL2V4.js} +3 -3
  99. package/chunks/{chunk-S2PD3EZD.js → chunk-KJEMJWNH.js} +1 -1
  100. package/chunks/{chunk-E2UVIFI2.js → chunk-KRXPRVGL.js} +0 -1
  101. package/chunks/{chunk-CZF3E5GF.js → chunk-LA5H3LM5.js} +1 -1
  102. package/chunks/{chunk-NDMQLV4Y.js → chunk-LBAO2XRA.js} +4 -4
  103. package/chunks/{chunk-7RMOXZTC.js → chunk-LDPP5VTZ.js} +4 -4
  104. package/chunks/{chunk-KDC6GNQR.js → chunk-LEEWLFHW.js} +4 -4
  105. package/chunks/{chunk-KX6UK4VJ.js → chunk-LI4I37W4.js} +22152 -18007
  106. package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
  107. package/chunks/{chunk-AJSJ5TTU.js → chunk-LP2E4MQG.js} +1 -1
  108. package/chunks/chunk-LS77BEZP.js +405 -0
  109. package/chunks/{chunk-BRRF37CO.js → chunk-LYTBLSSW.js} +5 -5
  110. package/chunks/{chunk-DBE4QFZS.js → chunk-MB7ENXPR.js} +39 -37
  111. package/chunks/{chunk-GKY2OJ7R.js → chunk-MOHAWVLH.js} +4 -4
  112. package/chunks/chunk-NABLFI57.js +82 -0
  113. package/chunks/chunk-NBQDBANR.js +411 -0
  114. package/chunks/{chunk-EAUYY7SS.js → chunk-NOAAFNTJ.js} +43 -10
  115. package/chunks/chunk-NXS53EA7.js +1462 -0
  116. package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
  117. package/chunks/{chunk-NHDKSOEY.js → chunk-P3QQPMQA.js} +5 -5
  118. package/chunks/{chunk-OP4MOGXF.js → chunk-P5RRUHL7.js} +23 -1
  119. package/chunks/{chunk-KOR3XKCA.js → chunk-PBII2NFX.js} +12 -6
  120. package/chunks/{chunk-O3OCNYY5.js → chunk-PDYB7HG2.js} +2 -2
  121. package/chunks/{chunk-2HOVDT7W.js → chunk-PFSUKTZH.js} +1 -1
  122. package/chunks/chunk-PKL3HGNZ.js +2299 -0
  123. package/chunks/{chunk-5DTTYNB7.js → chunk-PQNHRFJC.js} +16 -3
  124. package/chunks/{chunk-OLMETXLX.js → chunk-PXHK5ONM.js} +41 -9
  125. package/chunks/{chunk-PF4CHQOJ.js → chunk-Q6GU6TKM.js} +11 -10
  126. package/chunks/{chunk-4ODB7WIB.js → chunk-QAFKR7WR.js} +1 -1
  127. package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
  128. package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
  129. package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
  130. package/chunks/{chunk-333CXMNJ.js → chunk-QXZTZJLX.js} +5 -5
  131. package/chunks/chunk-R6D2CTQR.js +289 -0
  132. package/chunks/{chunk-7PZ2ATFZ.js → chunk-R6SKHK3T.js} +54 -29
  133. package/chunks/{chunk-OONJNQ42.js → chunk-RGG6M2WF.js} +4 -4
  134. package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
  135. package/chunks/{chunk-O3Z73NBP.js → chunk-RW2NEXYJ.js} +15 -11
  136. package/chunks/{chunk-HZPN55E5.js → chunk-SJEDL7DI.js} +1 -1
  137. package/chunks/{chunk-AKX4WPPP.js → chunk-SWBJRDYC.js} +866 -183
  138. package/chunks/{chunk-NBMIC7DR.js → chunk-SX4PK3FC.js} +145 -5
  139. package/chunks/chunk-T3452DP5.js +246 -0
  140. package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
  141. package/chunks/{chunk-T4TZQJ7W.js → chunk-TWPJO254.js} +5 -16
  142. package/chunks/chunk-U7ZFW55U.js +2098 -0
  143. package/chunks/{chunk-JNWZQ27S.js → chunk-UCOJC6EB.js} +72 -23
  144. package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
  145. package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
  146. package/chunks/{chunk-2LL7TXB4.js → chunk-UH7242DI.js} +3 -3
  147. package/chunks/{chunk-CB2HFGRV.js → chunk-UJV643E2.js} +31 -6
  148. package/chunks/chunk-UO7DCGEV.js +121 -0
  149. package/chunks/{chunk-Y2ENGUD6.js → chunk-UPF7PTBI.js} +79 -2
  150. package/chunks/chunk-UW5EOVUN.js +249 -0
  151. package/chunks/{chunk-SJMV7ZBK.js → chunk-VLVO52KC.js} +8 -8
  152. package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
  153. package/chunks/{chunk-S2W2LVDU.js → chunk-WHFK6G6U.js} +8 -9
  154. package/chunks/chunk-WI3KCKZ5.js +391 -0
  155. package/chunks/{chunk-NGFEPAE6.js → chunk-WLEFWSSC.js} +8 -6
  156. package/chunks/{chunk-XVVH63JG.js → chunk-WUJXJ34P.js} +3 -3
  157. package/chunks/{chunk-MAQQGNQ5.js → chunk-WYLPWQHJ.js} +56 -717
  158. package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
  159. package/chunks/chunk-XAWJ2526.js +1049 -0
  160. package/chunks/{chunk-CV63PP6U.js → chunk-YCIM6O3I.js} +1 -1
  161. package/chunks/{chunk-OEO2ERWK.js → chunk-Z44CVEUF.js} +54 -33
  162. package/chunks/{chunk-TKLLK6XQ.js → chunk-ZT4POVWC.js} +11 -11
  163. package/chunks/{chunk-NIJEXGV6.js → chunk-ZXYUQXY5.js} +148 -10
  164. package/chunks/{computer-use-NIWQNUZF.js → computer-use-UJ5T34TE.js} +50 -37
  165. package/chunks/{config-utils-AHQ6YZ66.js → config-utils-XQRXHAN3.js} +3 -3
  166. package/chunks/contextCommand-CSCB4E5M.js +79 -0
  167. package/chunks/{create-sub-session-MGNX52P3.js → create-sub-session-55F3GOLK.js} +46 -33
  168. package/chunks/{create-sub-session-P26FE5GG.js → create-sub-session-JPCSYZAJ.js} +3 -3
  169. package/chunks/{cron-create-JWFHBDRQ.js → cron-create-CUMELMPL.js} +6 -6
  170. package/chunks/{cron-delete-GDX4E26G.js → cron-delete-QZFV6U3P.js} +5 -5
  171. package/chunks/{cron-list-USMAIWPT.js → cron-list-IDKO7ZO2.js} +5 -5
  172. package/chunks/{daemon-RG2MAI6T.js → daemon-7LP7R6IU.js} +500 -133
  173. package/chunks/daemon-status-provider-6YNZ3UAE.js +88 -0
  174. package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
  175. package/chunks/{dist-WGTQO7F2.js → dist-376652EZ.js} +114 -28
  176. package/chunks/{dist-53PZYC5B.js → dist-3YCTE6HD.js} +2 -2
  177. package/chunks/{dist-2BHAYBKP.js → dist-D7Z3HOO7.js} +14 -2
  178. package/chunks/{dist-FUTEXY6A.js → dist-MEGJFGAI.js} +40 -9
  179. package/chunks/{dist-2MIU4UUH.js → dist-NQ436QEX.js} +1 -1
  180. package/chunks/{dist-AU7NQQRP.js → dist-NQNTOIEN.js} +26 -2
  181. package/chunks/earlyInputCapture-HPUVJ2KH.js +81 -0
  182. package/chunks/{edit-3QV3JZJL.js → edit-7CMAN3F4.js} +50 -39
  183. package/chunks/{en-XE34GKAA.js → en-SALLIJS7.js} +6 -1
  184. package/chunks/{enter-worktree-4GMMF7EG.js → enter-worktree-3PH4YTY2.js} +49 -36
  185. package/chunks/{enterPlanMode-L5UWBAUC.js → enterPlanMode-MSXLSWLI.js} +55 -37
  186. package/chunks/{environment-3OV7UQOT.js → environment-KS36ZHBE.js} +48 -35
  187. package/chunks/errors-LCPFS62A.js +87 -0
  188. package/chunks/{exit-worktree-DDP57JLV.js → exit-worktree-ARA4C3CK.js} +49 -36
  189. package/chunks/{exitPlanMode-CJBLGPIP.js → exitPlanMode-GCDIQPB7.js} +49 -36
  190. package/chunks/{fast-path-M6RP2ING.js → fast-path-IDHBVIT6.js} +3 -2
  191. package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
  192. package/chunks/{gemini-H4PHBJTL.js → gemini-2AFQJMX5.js} +141 -105
  193. package/chunks/{geminiContentGenerator-VURJYPWP.js → geminiContentGenerator-UDIH3YI6.js} +9 -8
  194. package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
  195. package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
  196. package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
  197. package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
  198. package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
  199. package/chunks/{glob-2KUSRAVQ.js → glob-HCL7HZ67.js} +49 -36
  200. package/chunks/{grep-B5RXVESV.js → grep-CJLBSCTV.js} +49 -36
  201. package/chunks/handleAutoUpdate-Q572P3FL.js +80 -0
  202. package/chunks/i18n-OBB4R7SR.js +96 -0
  203. package/chunks/initializer-LXEY6V3C.js +85 -0
  204. package/chunks/installationInfo-XUAOVMEE.js +79 -0
  205. package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
  206. package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
  207. package/chunks/{kittyProtocolDetector-HCNNKJTI.js → kittyProtocolDetector-MBRTDRBK.js} +5 -3
  208. package/chunks/list-WAXY7QOU.js +88 -0
  209. package/chunks/list-agents-AH3P5NB7.js +80 -0
  210. package/chunks/loadedSettingsAdapter-OZFNBRHE.js +82 -0
  211. package/chunks/loggingContentGenerator-7WDTTE6G.js +1068 -0
  212. package/chunks/{loop-wakeup-5GLTUBHA.js → loop-wakeup-IHRW6TNB.js} +7 -7
  213. package/chunks/{ls-FHBY3Y7I.js → ls-ZAXZ2G2W.js} +5 -5
  214. package/chunks/{lsp-B6VMEW6Y.js → lsp-R4ZG3UGQ.js} +3 -3
  215. package/chunks/managed-npm-update-N42DO5QW.js +339 -0
  216. package/chunks/mcp-6SOORKTY.js +82 -0
  217. package/chunks/{monitor-GLJZDNPS.js → monitor-4PSVNVU4.js} +51 -37
  218. package/chunks/node-UUDY34IG.js +305 -0
  219. package/chunks/nonInteractiveCli-FBR5S7IZ.js +140 -0
  220. package/chunks/{notebook-edit-AVCIWS4F.js → notebook-edit-QK26632S.js} +50 -39
  221. package/chunks/{openaiContentGenerator-B7W24G3D.js → openaiContentGenerator-IXJS6C2U.js} +33 -20
  222. package/chunks/pidfile-UCFCJOAP.js +85 -0
  223. package/chunks/{processUtils-XZPY2PBB.js → processUtils-YL2LXON2.js} +2 -2
  224. package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
  225. package/chunks/{qwenContentGenerator-6GUTWJIC.js → qwenContentGenerator-H6WZPJKC.js} +56 -36
  226. package/chunks/{qwenOAuth2-GASEEWGU.js → qwenOAuth2-HTROHKXO.js} +10 -23
  227. package/chunks/read-file-FOYTMUNL.js +31 -0
  228. package/chunks/{read-mcp-resource-AKCL7I43.js → read-mcp-resource-65BWNF3F.js} +3 -3
  229. package/chunks/{record-artifact-PEUB7727.js → record-artifact-2RLSOP6U.js} +3 -3
  230. package/chunks/resumeHistoryUtils-ZNHTWBXS.js +90 -0
  231. package/chunks/ripGrep-K4K4QLNJ.js +72 -0
  232. package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
  233. package/chunks/{run-qwen-serve-OZGR3FQA.js → run-qwen-serve-XI4MCAFV.js} +343 -88
  234. package/chunks/runtime-4CTBU5WX.js +115 -0
  235. package/chunks/{scheduler-Z7QLMUWA.js → scheduler-TTEITHBF.js} +46 -33
  236. package/chunks/sdk-exporters-grpc-N3OLDF63.js +23214 -0
  237. package/chunks/sdk-exporters-http-AOHAEOMC.js +563 -0
  238. package/chunks/sdk-impl-TLQOC7P4.js +9193 -0
  239. package/chunks/{send-message-3RHE7HSM.js → send-message-GEY4CNPS.js} +47 -8
  240. package/chunks/serve-W7UKJTQT.js +88 -0
  241. package/chunks/{server-SO64U3X5.js → server-JD5PIE7A.js} +3069 -517
  242. package/chunks/{session-2KL2WQAH.js → session-R4BDHLYR.js} +112 -177
  243. package/chunks/{settings-KITVOUSV.js → settings-BXZHA6TZ.js} +50 -37
  244. package/chunks/shell-XYMFCGN5.js +82 -0
  245. package/chunks/{skill-SOQHY455.js → skill-YKXYEPOF.js} +25 -20
  246. package/chunks/spawnChannel-IO4HQLFS.js +81 -0
  247. package/chunks/{src-43LM7JLB.js → src-LKKTJ4NG.js} +382 -235
  248. package/chunks/standalone-update-76JG7DVN.js +91 -0
  249. package/chunks/{startInteractiveUI-3RGTGEX5.js → startInteractiveUI-BXWQUXAS.js} +1314 -958
  250. package/chunks/{syntheticOutput-FG5PQKIR.js → syntheticOutput-2WNMXEU5.js} +4 -4
  251. package/chunks/task-create-R5H74Y76.js +25 -0
  252. package/chunks/{task-list-QWSY4ZIU.js → task-list-WXAFDSRY.js} +7 -7
  253. package/chunks/{task-stop-GWC6UWAL.js → task-stop-CHFZP23W.js} +4 -4
  254. package/chunks/{task-update-NCTAB73Q.js → task-update-Z44A4GAR.js} +11 -9
  255. package/chunks/{team-create-FXN3PEBP.js → team-create-5Y3MCAIM.js} +49 -36
  256. package/chunks/{team-delete-KK37HTOG.js → team-delete-YDCMRSI4.js} +7 -7
  257. package/chunks/{team-plan-approval-GEIZ356Q.js → team-plan-approval-HYJJZ76T.js} +49 -36
  258. package/chunks/theme-manager-3YF2SUZL.js +76 -0
  259. package/chunks/{todoWrite-ERCAMLFS.js → todoWrite-ED2IVZJL.js} +5 -5
  260. package/chunks/{tool-search-XKK7DNOK.js → tool-search-3ZO2XMEP.js} +21 -17
  261. package/chunks/total-session-admission-NDF7EVG7.js +83 -0
  262. package/chunks/trustedFolders-Q7RALK4T.js +92 -0
  263. package/chunks/{chunk-6EFTQYW7.js → undici-3FJYTMOF.js} +24 -399
  264. package/chunks/{chunk-L573Z2QZ.js → undici-PYHBDDPN.js} +1 -5
  265. package/chunks/{update-relaunch-FMVZK6XF.js → update-relaunch-BTW5XGVT.js} +17 -17
  266. package/chunks/updateCheck-MXIU6DWQ.js +91 -0
  267. package/chunks/useAutoAcceptIndicator-BJXHJW77.js +92 -0
  268. package/chunks/{validateNonInterActiveAuth-PRVEB6GG.js → validateNonInterActiveAuth-FLEPF3QQ.js} +90 -76
  269. package/chunks/{version-AZMG6KWL.js → version-75VRONIL.js} +1 -1
  270. package/chunks/{web-fetch-EPGJ5OQQ.js → web-fetch-5X27LYHB.js} +101 -41
  271. package/chunks/web-search-IDMTBJUP.js +718 -0
  272. package/chunks/{workflow-UTNVPW22.js → workflow-JOD2OPFQ.js} +54 -40
  273. package/chunks/workspace-providers-status-WDLBDLPG.js +85 -0
  274. package/chunks/{workspace-registration-store-F3ZX3YHT.js → workspace-registration-store-26Z6J6P5.js} +9 -3
  275. package/chunks/workspace-registry-IABDATX3.js +87 -0
  276. package/chunks/workspace-service-BI4KDYPD.js +97 -0
  277. package/chunks/workspace-skills-status-OVB4LPHA.js +84 -0
  278. package/chunks/write-file-276AJ7KE.js +72 -0
  279. package/chunks/{zh-6ANG2HTL.js → zh-Q54GA5SV.js} +6 -1
  280. package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-VOBNFOPU.js} +6 -1
  281. package/cli-entry.js +164 -12
  282. package/cli.js +19 -12
  283. package/locales/ca.js +773 -203
  284. package/locales/de.js +8 -2
  285. package/locales/en.js +9 -2
  286. package/locales/fr.js +8 -2
  287. package/locales/ja.js +8 -2
  288. package/locales/pt.js +8 -2
  289. package/locales/ru.js +8 -2
  290. package/locales/zh-TW.js +9 -2
  291. package/locales/zh.js +9 -2
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-Buk1besA.js → arc-CMb7lr2P.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1aUKYDC.js → architectureDiagram-3BPJPVTR-D6KQ5Kwm.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-CRTdg3Zx.js → blockDiagram-GPEHLZMM-Ce7YYSf8.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-DFdRMp5g.js → c4Diagram-AAUBKEIU-DaStHfor.js} +1 -1
  297. package/web-shell/assets/channel-Dg4f-Kry.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-4rYQdkEI.js → chunk-2J33WTMH-CPaqadg9.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-Coi-pQJy.js → chunk-4BX2VUAB-Veh9ZGKg.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-BtBjz02t.js → chunk-55IACEB6-BPTX5n4q.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-CGYOWorl.js → chunk-727SXJPM-CtXsE_ca.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-CH5AKhqx.js → chunk-AQP2D5EJ-D8DDCJ8h.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-Cd50-w85.js → chunk-FMBD7UC4-cjMDGzHz.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-C2wF3KCK.js → chunk-ND2GUHAM-BaZ1hNhV.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-pCeRTaWi.js → chunk-QZHKN3VN-C7w-9w5-.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-CT7Fo2aW.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CT7Fo2aW.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A-B-_fAB6D.js → cose-bilkent-S5V4N54A-DqvBEEIe.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-ChSPNHpL.js → dagre-BM42HDAG-RkPyoMAk.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-BX7cFOF3.js → diagram-2AECGRRQ-D9b6nNyg.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-BQUTW92n.js → diagram-5GNKFQAL-CiiNKUIy.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-BkYPh3e4.js → diagram-KO2AKTUF-CP1qizXd.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-Cl6jsNyx.js → diagram-LMA3HP47-BGe30TWx.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-DRWoHz8n.js → diagram-OG6HWLK6-CvoEPARH.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-CGvFcZco.js → erDiagram-TEJ5UH35-DWfLzVkV.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-vms6oVdv.js → flowDiagram-I6XJVG4X-D-dTQmo6.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-ukT_sfmi.js → ganttDiagram-6RSMTGT7-CYPHKaGY.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bn2ZE2Ut.js → gitGraphDiagram-PVQCEYII-DA7_aQYD.js} +1 -1
  319. package/web-shell/assets/index-B0i-TOYM.css +5 -0
  320. package/web-shell/assets/index-CgCHD46L.js +1225 -0
  321. package/web-shell/assets/{index-wFXp7W68.js → index-DqHNAB8C.js} +1 -1
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-DHJdSi7x.js → infoDiagram-5YYISTIA-B87ljDPa.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DOvd2Wph.js → ishikawaDiagram-YF4QCWOH-CYSpyjaN.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-CH_urMCT.js → journeyDiagram-JHISSGLW-DAL6Js6f.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-FKiBdgbH.js → kanban-definition-UN3LZRKU-_zufKGJv.js} +1 -1
  326. package/web-shell/assets/{linear-0ZVQFVKf.js → linear-DidhMgku.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-DJ05ZZIK.js → mermaid.core-DAkX3h3a.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BPuUhkUm.js → mindmap-definition-RKZ34NQL-DbZxUBEH.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-yLFKcXyG.js → pieDiagram-4H26LBE5-Du9uoqrf.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-irWqc1pE.js → quadrantDiagram-W4KKPZXB-DwjELuKm.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-B_4uMoIV.js → requirementDiagram-4Y6WPE33-BAqfVtBL.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-ciA4GPwk.js → sankeyDiagram-5OEKKPKP--hm2VpmK.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CRdZvy0U.js → sequenceDiagram-3UESZ5HK-R5MUQaIt.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-DaYIkCCn.js → stateDiagram-AJRCARHV-VsX032xQ.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-uPWLcSfy.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-oBUKv6iH.js → timeline-definition-PNZ67QCA-BqjVRXzg.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-CGW9Sdmb.js → vennDiagram-CIIHVFJN-i2tkvlkg.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-CvwKJOCm.js → wardley-L42UT6IY-Ch8G49EM.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Ipc260sN.js → wardleyDiagram-YWT4CUSO-bYpWeQNy.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-D6-CM7pK.js → xychartDiagram-2RQKCTM6-C9NhuBqB.js} +1 -1
  341. package/web-shell/index.html +17 -13
  342. package/chunks/MaxSizedBox-B5YGZSYE.js +0 -72
  343. package/chunks/agent-H4JIDL7S.js +0 -67
  344. package/chunks/agent-headless-TTBEREQV.js +0 -61
  345. package/chunks/bridge-VL7ITBU5.js +0 -75
  346. package/chunks/chunk-542SK7KV.js +0 -8293
  347. package/chunks/chunk-CPCVCKKF.js +0 -358
  348. package/chunks/chunk-SEKHYHMS.js +0 -45
  349. package/chunks/chunk-W7FJ3N32.js +0 -49
  350. package/chunks/chunk-ZFKNWQGQ.js +0 -74639
  351. package/chunks/contextCommand-L2COEUHS.js +0 -66
  352. package/chunks/daemon-status-provider-NL4IAG7B.js +0 -74
  353. package/chunks/earlyInputCapture-L6I2A22T.js +0 -68
  354. package/chunks/errors-LEOF5QG4.js +0 -74
  355. package/chunks/handleAutoUpdate-QQVIWXKT.js +0 -67
  356. package/chunks/i18n-N6OBDORT.js +0 -83
  357. package/chunks/initializer-6WCFNDLL.js +0 -72
  358. package/chunks/installationInfo-6J3WPXNS.js +0 -64
  359. package/chunks/list-HOWQSWP6.js +0 -75
  360. package/chunks/loadedSettingsAdapter-AO4YBRXZ.js +0 -69
  361. package/chunks/mcp-QH7QNXOH.js +0 -69
  362. package/chunks/nonInteractiveCli-TI7EMPXD.js +0 -126
  363. package/chunks/pidfile-UEHAT6DH.js +0 -72
  364. package/chunks/read-file-SQJONF6A.js +0 -29
  365. package/chunks/resumeHistoryUtils-PFQ2A23X.js +0 -78
  366. package/chunks/ripGrep-QCK22GDU.js +0 -59
  367. package/chunks/runtime-SNVAP6EH.js +0 -100
  368. package/chunks/serve-BT7KS6SC.js +0 -75
  369. package/chunks/shell-BITUVH2R.js +0 -69
  370. package/chunks/spawnChannel-2BU3AULL.js +0 -68
  371. package/chunks/standalone-update-YG5JUYCM.js +0 -78
  372. package/chunks/task-create-HX32YXO7.js +0 -23
  373. package/chunks/theme-manager-IAETOI25.js +0 -63
  374. package/chunks/total-session-admission-BJLDHKJN.js +0 -69
  375. package/chunks/trustedFolders-5XCVNEUU.js +0 -79
  376. package/chunks/updateCheck-YZZB7YBU.js +0 -70
  377. package/chunks/useAutoAcceptIndicator-ZSQX4I2H.js +0 -80
  378. package/chunks/workspace-providers-status-EADV364W.js +0 -72
  379. package/chunks/workspace-registry-W6VMFYZU.js +0 -73
  380. package/chunks/workspace-service-F3KIN2UN.js +0 -84
  381. package/chunks/workspace-skills-status-YVICUR5Y.js +0 -71
  382. package/chunks/write-file-CVGF2OKV.js +0 -596
  383. package/web-shell/assets/channel-04R0vLbG.js +0 -1
  384. package/web-shell/assets/classDiagram-4FO5ZUOK-Bw9SOwAV.js +0 -1
  385. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Bw9SOwAV.js +0 -1
  386. package/web-shell/assets/index-DgkKrjw3.js +0 -1187
  387. package/web-shell/assets/index-Rv6mOAN9.css +0 -5
  388. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DWBoO4UY.js +0 -1
@@ -2,9 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_DAEMON_WORKER_SENTINEL,
5
+ CHANNEL_DELIVERY_IPC_TIMEOUT_MS,
5
6
  CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
6
7
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
8
+ ChannelDeliveryError,
7
9
  ChannelWebhookEnqueueError,
10
+ MAX_CHANNEL_DELIVERIES_IN_FLIGHT,
8
11
  MAX_CHANNEL_STARTUP_FAILURES,
9
12
  MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
10
13
  MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
@@ -13,18 +16,20 @@ import {
13
16
  QWEN_DAEMON_URL_ENV,
14
17
  QWEN_DAEMON_WORKSPACE_ENV,
15
18
  QWEN_SERVER_TOKEN_ENV,
19
+ createChannelDeliveryMessage,
16
20
  createChannelWebhookTaskMessage,
17
21
  createWorkerDiagnosticRedactor,
22
+ isChannelDeliveryResultMessage,
18
23
  isChannelStartupReportMessage,
19
24
  isChannelStartupReportType,
20
25
  isChannelWebhookEnqueueErrorCode,
21
26
  isChannelWebhookTaskResultMessage,
22
27
  normalizeWorkerDiagnostic,
23
28
  sanitizeWorkerDiagnostic
24
- } from "./chunk-Y2ENGUD6.js";
29
+ } from "./chunk-UPF7PTBI.js";
25
30
  import {
26
31
  channelSelectionNames
27
- } from "./chunk-TJTKSVIV.js";
32
+ } from "./chunk-JLU636DO.js";
28
33
  import {
29
34
  CHANNEL_WORKER_KILL_GRACE_MS,
30
35
  CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
@@ -32,7 +37,7 @@ import {
32
37
  } from "./chunk-5HBA2Z7V.js";
33
38
  import {
34
39
  sanitizeLogText
35
- } from "./chunk-NIJEXGV6.js";
40
+ } from "./chunk-ZXYUQXY5.js";
36
41
  import {
37
42
  init_esbuild_shims
38
43
  } from "./chunk-5O2XNYP6.js";
@@ -263,6 +268,7 @@ function createChannelWorkerSupervisor(opts) {
263
268
  let staleHeartbeatTimer;
264
269
  let restartAttemptTimes = [];
265
270
  const pendingWebhookTasks = /* @__PURE__ */ new Map();
271
+ const pendingChannelDeliveries = /* @__PURE__ */ new Map();
266
272
  let restarting;
267
273
  let disposed = false;
268
274
  const snapshotCopy = /* @__PURE__ */ __name(() => ({
@@ -273,7 +279,8 @@ function createChannelWorkerSupervisor(opts) {
273
279
  startupFailures: snapshot.startupFailures.map((failure) => ({
274
280
  ...failure
275
281
  }))
276
- } : {}
282
+ } : {},
283
+ ...snapshot.adapters ? { adapters: snapshot.adapters.map((adapter) => ({ ...adapter })) } : {}
277
284
  }), "snapshotCopy");
278
285
  const clearRestartTimer = /* @__PURE__ */ __name(() => {
279
286
  if (restartTimer) {
@@ -325,6 +332,39 @@ function createChannelWorkerSupervisor(opts) {
325
332
  }
326
333
  return true;
327
334
  }, "settleWebhookTask");
335
+ const rejectPendingChannelDeliveries = /* @__PURE__ */ __name((code, message) => {
336
+ for (const pending of pendingChannelDeliveries.values()) {
337
+ clearTimeout(pending.timer);
338
+ pending.reject(new ChannelDeliveryError(code, message));
339
+ }
340
+ pendingChannelDeliveries.clear();
341
+ }, "rejectPendingChannelDeliveries");
342
+ const rejectPendingChannelDelivery = /* @__PURE__ */ __name((id, error) => {
343
+ const pending = pendingChannelDeliveries.get(id);
344
+ if (!pending) return;
345
+ pendingChannelDeliveries.delete(id);
346
+ clearTimeout(pending.timer);
347
+ pending.reject(error);
348
+ }, "rejectPendingChannelDelivery");
349
+ const settleChannelDelivery = /* @__PURE__ */ __name((message) => {
350
+ if (!isChannelDeliveryResultMessage(message)) return false;
351
+ const pending = pendingChannelDeliveries.get(message.id);
352
+ if (!pending) return true;
353
+ if (message.ok) {
354
+ pendingChannelDeliveries.delete(message.id);
355
+ clearTimeout(pending.timer);
356
+ pending.resolve({ delivered: true });
357
+ } else {
358
+ rejectPendingChannelDelivery(
359
+ message.id,
360
+ new ChannelDeliveryError(
361
+ message.code,
362
+ message.error || "Channel delivery failed."
363
+ )
364
+ );
365
+ }
366
+ return true;
367
+ }, "settleChannelDelivery");
328
368
  const pruneRestartAttempts = /* @__PURE__ */ __name((nowMs) => {
329
369
  restartAttemptTimes = restartAttemptTimes.filter(
330
370
  (attemptMs) => nowMs - attemptMs < restartPolicy.windowMs
@@ -432,6 +472,12 @@ function createChannelWorkerSupervisor(opts) {
432
472
  state: "starting",
433
473
  channels: channelSelectionNames(opts.selection),
434
474
  ...requestedChannels ? { requestedChannels } : {},
475
+ ...requestedChannels ? {
476
+ adapters: requestedChannels.map((name) => ({
477
+ name,
478
+ state: "starting"
479
+ }))
480
+ } : {},
435
481
  startedAt,
436
482
  restartCount: snapshot.restartCount ?? 0,
437
483
  ...snapshot.lastExitAt ? { lastExitAt: snapshot.lastExitAt } : {},
@@ -615,7 +661,14 @@ function createChannelWorkerSupervisor(opts) {
615
661
  };
616
662
  snapshot = {
617
663
  ...snapshot,
618
- startupFailures: [...snapshot.startupFailures ?? [], failure]
664
+ startupFailures: [...snapshot.startupFailures ?? [], failure],
665
+ adapters: snapshot.adapters?.map(
666
+ (adapter) => adapter.name === failure.channel ? {
667
+ name: adapter.name,
668
+ state: "error",
669
+ error: failure.message
670
+ } : adapter
671
+ )
619
672
  };
620
673
  acknowledgeStartupReport();
621
674
  }, "handleStartupReport");
@@ -637,6 +690,22 @@ function createChannelWorkerSupervisor(opts) {
637
690
  if (message.requestedChannels?.length) {
638
691
  next.requestedChannels = [...message.requestedChannels];
639
692
  }
693
+ const adapterNames = message.requestedChannels?.length ? message.requestedChannels : next.requestedChannels ?? next.channels;
694
+ const connected = new Set(next.channels);
695
+ const failures = new Map(
696
+ next.startupFailures?.map((failure) => [failure.channel, failure])
697
+ );
698
+ next.adapters = adapterNames.map((name) => {
699
+ if (connected.has(name)) {
700
+ return { name, state: "connected" };
701
+ }
702
+ const failure = failures.get(name);
703
+ return {
704
+ name,
705
+ state: "error",
706
+ ...failure ? { error: failure.message } : {}
707
+ };
708
+ });
640
709
  snapshot = next;
641
710
  armStaleHeartbeatTimer(startedChild);
642
711
  notifyReady(opts.onReady, snapshotCopy());
@@ -656,6 +725,9 @@ function createChannelWorkerSupervisor(opts) {
656
725
  }, "handleHeartbeat");
657
726
  function handleMessage(message) {
658
727
  if (child !== startedChild) return;
728
+ if (settleChannelDelivery(message)) {
729
+ return;
730
+ }
659
731
  if (settleWebhookTask(message)) {
660
732
  return;
661
733
  }
@@ -684,6 +756,10 @@ function createChannelWorkerSupervisor(opts) {
684
756
  "channel_worker_unavailable",
685
757
  "Channel worker exited."
686
758
  );
759
+ rejectPendingChannelDeliveries(
760
+ "channel_worker_unavailable",
761
+ "Channel worker exited."
762
+ );
687
763
  child = void 0;
688
764
  if ((ready || kind === "restart") && !stopping) {
689
765
  scheduleRestart();
@@ -759,6 +835,10 @@ function createChannelWorkerSupervisor(opts) {
759
835
  "channel_worker_unavailable",
760
836
  "Channel worker stopped."
761
837
  );
838
+ rejectPendingChannelDeliveries(
839
+ "channel_worker_unavailable",
840
+ "Channel worker stopped."
841
+ );
762
842
  if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
763
843
  child = void 0;
764
844
  snapshot = { ...snapshot, state: "stopped" };
@@ -803,6 +883,10 @@ function createChannelWorkerSupervisor(opts) {
803
883
  "channel_worker_unavailable",
804
884
  "Channel worker stopped."
805
885
  );
886
+ rejectPendingChannelDeliveries(
887
+ "channel_worker_unavailable",
888
+ "Channel worker stopped."
889
+ );
806
890
  if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
807
891
  clearRestartTimer();
808
892
  clearStaleHeartbeatTimer();
@@ -825,6 +909,62 @@ function createChannelWorkerSupervisor(opts) {
825
909
  snapshot() {
826
910
  return snapshotCopy();
827
911
  },
912
+ async deliverChannelMessage(request) {
913
+ const startedChild = child;
914
+ if (!startedChild || snapshot.state !== "running") {
915
+ throw new ChannelDeliveryError(
916
+ "channel_worker_unavailable",
917
+ "Channel worker is not running."
918
+ );
919
+ }
920
+ const send = startedChild.send;
921
+ if (!send) {
922
+ throw new ChannelDeliveryError(
923
+ "channel_worker_unavailable",
924
+ "Channel worker IPC send failed."
925
+ );
926
+ }
927
+ if (pendingChannelDeliveries.size >= MAX_CHANNEL_DELIVERIES_IN_FLIGHT) {
928
+ throw new ChannelDeliveryError(
929
+ "channel_delivery_queue_full",
930
+ "Channel delivery queue is full."
931
+ );
932
+ }
933
+ const message = createChannelDeliveryMessage(request);
934
+ return await new Promise((resolve, reject) => {
935
+ const timer = setTimeout(() => {
936
+ pendingChannelDeliveries.delete(message.id);
937
+ reject(
938
+ new ChannelDeliveryError(
939
+ "channel_delivery_timeout",
940
+ "Channel delivery IPC timed out."
941
+ )
942
+ );
943
+ }, CHANNEL_DELIVERY_IPC_TIMEOUT_MS);
944
+ timer.unref();
945
+ pendingChannelDeliveries.set(message.id, { resolve, reject, timer });
946
+ try {
947
+ send.call(startedChild, message, (error) => {
948
+ if (!error) return;
949
+ rejectPendingChannelDelivery(
950
+ message.id,
951
+ new ChannelDeliveryError(
952
+ "channel_worker_unavailable",
953
+ `Channel worker IPC send failed: ${error.message}`
954
+ )
955
+ );
956
+ });
957
+ } catch (error) {
958
+ rejectPendingChannelDelivery(
959
+ message.id,
960
+ new ChannelDeliveryError(
961
+ "channel_worker_unavailable",
962
+ `Channel worker IPC send failed: ${error instanceof Error ? error.message : String(error)}`
963
+ )
964
+ );
965
+ }
966
+ });
967
+ },
828
968
  async enqueueWebhookTask(task) {
829
969
  const startedChild = child;
830
970
  if (!startedChild || snapshot.state !== "running") {
@@ -0,0 +1,246 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ require_semver
5
+ } from "./chunk-DP3IHZGG.js";
6
+ import {
7
+ getNpmCliPath
8
+ } from "./chunk-BSNWBC33.js";
9
+ import {
10
+ t
11
+ } from "./chunk-ZT4POVWC.js";
12
+ import {
13
+ getPackageJson
14
+ } from "./chunk-VJNBRRZG.js";
15
+ import {
16
+ createDebugLogger
17
+ } from "./chunk-OQB4EXO4.js";
18
+ import {
19
+ init_esbuild_shims
20
+ } from "./chunk-5O2XNYP6.js";
21
+ import {
22
+ __name,
23
+ __toESM
24
+ } from "./chunk-J2S4EL5Y.js";
25
+
26
+ // packages/cli/src/ui/utils/updateCheck.ts
27
+ init_esbuild_shims();
28
+ var import_semver = __toESM(require_semver(), 1);
29
+ import { execFile } from "node:child_process";
30
+ import { promisify } from "node:util";
31
+ var debugLogger = createDebugLogger("UPDATE_CHECK");
32
+ var FETCH_TIMEOUT_MS = 5e3;
33
+ var UpdateCheckTimeoutError = class extends Error {
34
+ static {
35
+ __name(this, "UpdateCheckTimeoutError");
36
+ }
37
+ distTag;
38
+ constructor(timeoutMs, distTag) {
39
+ const suffix = distTag ? ` for ${distTag}` : "";
40
+ super(`update check timed out after ${timeoutMs}ms${suffix}`);
41
+ this.name = "UpdateCheckTimeoutError";
42
+ this.distTag = distTag;
43
+ }
44
+ };
45
+ var NETWORK_ERROR_CODES = [
46
+ "ENOTFOUND",
47
+ "ECONNREFUSED",
48
+ "EAI_AGAIN",
49
+ "ETIMEDOUT",
50
+ "ENETUNREACH"
51
+ ];
52
+ function classifyUpdateCheckError(error) {
53
+ if (error instanceof UpdateCheckTimeoutError) return "timeout";
54
+ if (error instanceof Error) {
55
+ if ("killed" in error && error.killed === true && "signal" in error && error.signal === "SIGTERM") {
56
+ return "timeout";
57
+ }
58
+ const errors = [error];
59
+ if (error.cause instanceof Error) errors.push(error.cause);
60
+ const matchesCode = /* @__PURE__ */ __name((code) => errors.some(
61
+ (error2) => error2.code === code || error2.message.includes(code)
62
+ ), "matchesCode");
63
+ if (NETWORK_ERROR_CODES.some(matchesCode)) return "offline";
64
+ }
65
+ return "registry";
66
+ }
67
+ __name(classifyUpdateCheckError, "classifyUpdateCheckError");
68
+ function describeUpdateCheckFailure(error, timeoutMs = FETCH_TIMEOUT_MS) {
69
+ switch (classifyUpdateCheckError(error)) {
70
+ case "timeout":
71
+ return t("registry did not respond within {{seconds}}s", {
72
+ seconds: String(Math.round(timeoutMs / 1e3))
73
+ });
74
+ case "offline":
75
+ return t("registry unreachable");
76
+ default:
77
+ return t("registry error");
78
+ }
79
+ }
80
+ __name(describeUpdateCheckFailure, "describeUpdateCheckFailure");
81
+ async function fetchInfoWithTimeout(notifier, timeoutMs, distTag) {
82
+ let timer;
83
+ try {
84
+ return await Promise.race([
85
+ Promise.resolve(notifier.fetchInfo()),
86
+ new Promise((_, reject) => {
87
+ timer = setTimeout(
88
+ () => reject(new UpdateCheckTimeoutError(timeoutMs, distTag)),
89
+ timeoutMs
90
+ );
91
+ })
92
+ ]);
93
+ } finally {
94
+ if (timer !== void 0) clearTimeout(timer);
95
+ }
96
+ }
97
+ __name(fetchInfoWithTimeout, "fetchInfoWithTimeout");
98
+ var execFileAsync = promisify(execFile);
99
+ async function runGlobalNpm(args, run = execFileAsync, platform = process.platform, nodePath = process.execPath, resolveNpmCliPath = getNpmCliPath) {
100
+ const { stdout } = await run(
101
+ nodePath,
102
+ [resolveNpmCliPath(nodePath, platform), ...args],
103
+ {
104
+ encoding: "utf8",
105
+ timeout: FETCH_TIMEOUT_MS
106
+ }
107
+ );
108
+ return String(stdout).trim();
109
+ }
110
+ __name(runGlobalNpm, "runGlobalNpm");
111
+ async function fetchGlobalNpmUpdateInfo(packageName, currentVersion, distTag, run = execFileAsync) {
112
+ const output = await runGlobalNpm(
113
+ ["view", packageName, `dist-tags.${distTag}`, "--json", "--global"],
114
+ run
115
+ );
116
+ if (output === "") {
117
+ return {
118
+ latest: currentVersion,
119
+ current: currentVersion,
120
+ type: "latest",
121
+ name: packageName
122
+ };
123
+ }
124
+ const parsed = JSON.parse(output);
125
+ const latest = typeof parsed === "string" ? parsed : Array.isArray(parsed) && parsed.length === 1 && typeof parsed[0] === "string" ? parsed[0] : void 0;
126
+ if (latest === void 0) {
127
+ throw new Error(`Invalid npm ${distTag} version response`);
128
+ }
129
+ return {
130
+ latest,
131
+ current: currentVersion,
132
+ type: "latest",
133
+ name: packageName
134
+ };
135
+ }
136
+ __name(fetchGlobalNpmUpdateInfo, "fetchGlobalNpmUpdateInfo");
137
+ function getBestAvailableUpdate(nightly, stable) {
138
+ if (!nightly) return stable || null;
139
+ if (!stable) return nightly || null;
140
+ const nightlyVer = nightly.latest;
141
+ const stableVer = stable.latest;
142
+ if (import_semver.default.coerce(stableVer)?.version === import_semver.default.coerce(nightlyVer)?.version) {
143
+ return nightly;
144
+ }
145
+ return import_semver.default.gt(stableVer, nightlyVer) ? stable : nightly;
146
+ }
147
+ __name(getBestAvailableUpdate, "getBestAvailableUpdate");
148
+ async function checkForUpdatesDetailed(fetchGlobalNpm = fetchGlobalNpmUpdateInfo) {
149
+ let currentVersion;
150
+ try {
151
+ if (process.env["DEV"] === "true") {
152
+ return { status: "skipped", reason: "development mode" };
153
+ }
154
+ const packageJson = await getPackageJson();
155
+ if (!packageJson || !packageJson.name || !packageJson.version) {
156
+ return { status: "skipped", reason: "package metadata unavailable" };
157
+ }
158
+ const { name, version } = packageJson;
159
+ currentVersion = version;
160
+ const isNightly = version.includes("nightly");
161
+ const createNotifier = /* @__PURE__ */ __name((distTag) => ({
162
+ fetchInfo: /* @__PURE__ */ __name(() => fetchGlobalNpm(name, version, distTag), "fetchInfo")
163
+ }), "createNotifier");
164
+ if (isNightly) {
165
+ const [nightlyUpdateInfo, latestUpdateInfo] = await Promise.all([
166
+ fetchInfoWithTimeout(
167
+ createNotifier("nightly"),
168
+ FETCH_TIMEOUT_MS,
169
+ "nightly"
170
+ ),
171
+ fetchInfoWithTimeout(
172
+ createNotifier("latest"),
173
+ FETCH_TIMEOUT_MS,
174
+ "latest"
175
+ )
176
+ ]);
177
+ debugLogger.debug(
178
+ `fetchInfo returned nightly=${JSON.stringify(nightlyUpdateInfo)} latest=${JSON.stringify(latestUpdateInfo)} for current=${version}`
179
+ );
180
+ const bestUpdate = getBestAvailableUpdate(
181
+ nightlyUpdateInfo,
182
+ latestUpdateInfo
183
+ );
184
+ if (bestUpdate && import_semver.default.gt(bestUpdate.latest, version)) {
185
+ return {
186
+ status: "update",
187
+ info: {
188
+ message: t(
189
+ "A new version of Qwen Code is available! {{current}} \u2192 {{latest}}",
190
+ { current: version, latest: bestUpdate.latest }
191
+ ),
192
+ update: { ...bestUpdate, current: version }
193
+ }
194
+ };
195
+ }
196
+ } else {
197
+ const updateInfo = await fetchInfoWithTimeout(
198
+ createNotifier("latest"),
199
+ FETCH_TIMEOUT_MS,
200
+ "latest"
201
+ );
202
+ debugLogger.debug(
203
+ `fetchInfo returned ${JSON.stringify(updateInfo)} for current=${version}`
204
+ );
205
+ if (updateInfo && import_semver.default.gt(updateInfo.latest, version)) {
206
+ return {
207
+ status: "update",
208
+ info: {
209
+ message: t("Qwen Code update available! {{current}} \u2192 {{latest}}", {
210
+ current: version,
211
+ latest: updateInfo.latest
212
+ }),
213
+ update: { ...updateInfo, current: version }
214
+ }
215
+ };
216
+ }
217
+ }
218
+ return { status: "up-to-date", currentVersion: version };
219
+ } catch (e) {
220
+ const error = e instanceof Error ? e : new Error(String(e));
221
+ debugLogger.warn("Failed to check for updates: " + error);
222
+ return { status: "error", error, currentVersion };
223
+ }
224
+ }
225
+ __name(checkForUpdatesDetailed, "checkForUpdatesDetailed");
226
+ async function checkForUpdates(fetchGlobalNpm = fetchGlobalNpmUpdateInfo) {
227
+ const result = await checkForUpdatesDetailed(fetchGlobalNpm);
228
+ return result.status === "update" ? result.info : null;
229
+ }
230
+ __name(checkForUpdates, "checkForUpdates");
231
+
232
+ export {
233
+ FETCH_TIMEOUT_MS,
234
+ UpdateCheckTimeoutError,
235
+ classifyUpdateCheckError,
236
+ describeUpdateCheckFailure,
237
+ runGlobalNpm,
238
+ fetchGlobalNpmUpdateInfo,
239
+ checkForUpdatesDetailed,
240
+ checkForUpdates
241
+ };
242
+ /**
243
+ * @license
244
+ * Copyright 2025 Google LLC
245
+ * SPDX-License-Identifier: Apache-2.0
246
+ */
@@ -620,6 +620,16 @@ var init_context_api = __esm({
620
620
  }
621
621
  });
622
622
 
623
+ // node_modules/@opentelemetry/api/build/esm/diag-api.js
624
+ var diag;
625
+ var init_diag_api = __esm({
626
+ "node_modules/@opentelemetry/api/build/esm/diag-api.js"() {
627
+ init_esbuild_shims();
628
+ init_diag();
629
+ diag = DiagAPI.instance();
630
+ }
631
+ });
632
+
623
633
  // node_modules/@opentelemetry/api/build/esm/trace/trace_flags.js
624
634
  var TraceFlags;
625
635
  var init_trace_flags = __esm({
@@ -1089,7 +1099,7 @@ function createBaggage(entries) {
1089
1099
  }
1090
1100
  function baggageEntryMetadataFromString(str) {
1091
1101
  if (typeof str !== "string") {
1092
- diag.error("Cannot create baggage metadata from unknown type: " + typeof str);
1102
+ diag2.error("Cannot create baggage metadata from unknown type: " + typeof str);
1093
1103
  str = "";
1094
1104
  }
1095
1105
  return {
@@ -1099,14 +1109,14 @@ function baggageEntryMetadataFromString(str) {
1099
1109
  }, "toString")
1100
1110
  };
1101
1111
  }
1102
- var diag;
1112
+ var diag2;
1103
1113
  var init_utils = __esm({
1104
1114
  "node_modules/@opentelemetry/api/build/esm/baggage/utils.js"() {
1105
1115
  init_esbuild_shims();
1106
1116
  init_diag();
1107
1117
  init_baggage_impl();
1108
1118
  init_symbol();
1109
- diag = DiagAPI.instance();
1119
+ diag2 = DiagAPI.instance();
1110
1120
  __name(createBaggage, "createBaggage");
1111
1121
  __name(baggageEntryMetadataFromString, "baggageEntryMetadataFromString");
1112
1122
  }
@@ -1482,16 +1492,6 @@ var init_utils2 = __esm({
1482
1492
  }
1483
1493
  });
1484
1494
 
1485
- // node_modules/@opentelemetry/api/build/esm/diag-api.js
1486
- var diag2;
1487
- var init_diag_api = __esm({
1488
- "node_modules/@opentelemetry/api/build/esm/diag-api.js"() {
1489
- init_esbuild_shims();
1490
- init_diag();
1491
- diag2 = DiagAPI.instance();
1492
- }
1493
- });
1494
-
1495
1495
  // node_modules/@opentelemetry/api/build/esm/metrics/NoopMeterProvider.js
1496
1496
  var NoopMeterProvider, NOOP_METER_PROVIDER;
1497
1497
  var init_NoopMeterProvider = __esm({
@@ -1701,7 +1701,7 @@ __export(esm_exports, {
1701
1701
  default: () => esm_default,
1702
1702
  defaultTextMapGetter: () => defaultTextMapGetter,
1703
1703
  defaultTextMapSetter: () => defaultTextMapSetter,
1704
- diag: () => diag2,
1704
+ diag: () => diag,
1705
1705
  isSpanContextValid: () => isSpanContextValid,
1706
1706
  isValidSpanId: () => isValidSpanId,
1707
1707
  isValidTraceId: () => isValidTraceId,
@@ -1736,7 +1736,7 @@ var init_esm = __esm({
1736
1736
  init_trace_api();
1737
1737
  esm_default = {
1738
1738
  context,
1739
- diag: diag2,
1739
+ diag,
1740
1740
  metrics,
1741
1741
  propagation,
1742
1742
  trace
@@ -1753,7 +1753,7 @@ export {
1753
1753
  SpanKind,
1754
1754
  SpanStatusCode,
1755
1755
  context,
1756
- diag2 as diag,
1756
+ diag,
1757
1757
  metrics,
1758
1758
  propagation,
1759
1759
  trace,
@@ -4,16 +4,14 @@ import {
4
4
  init_esbuild_shims
5
5
  } from "./chunk-5O2XNYP6.js";
6
6
  import {
7
- __esm,
8
- __export,
9
7
  __name
10
8
  } from "./chunk-J2S4EL5Y.js";
11
9
 
10
+ // node_modules/strip-ansi/index.js
11
+ init_esbuild_shims();
12
+
12
13
  // node_modules/ansi-regex/index.js
13
- var ansi_regex_exports = {};
14
- __export(ansi_regex_exports, {
15
- default: () => ansiRegex
16
- });
14
+ init_esbuild_shims();
17
15
  function ansiRegex({ onlyFirst = false } = {}) {
18
16
  const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
19
17
  const osc = `(?:\\u001B\\][\\s\\S]*?${ST})`;
@@ -21,16 +19,9 @@ function ansiRegex({ onlyFirst = false } = {}) {
21
19
  const pattern = `${osc}|${csi}`;
22
20
  return new RegExp(pattern, onlyFirst ? void 0 : "g");
23
21
  }
24
- var init_ansi_regex = __esm({
25
- "node_modules/ansi-regex/index.js"() {
26
- init_esbuild_shims();
27
- __name(ansiRegex, "ansiRegex");
28
- }
29
- });
22
+ __name(ansiRegex, "ansiRegex");
30
23
 
31
24
  // node_modules/strip-ansi/index.js
32
- init_esbuild_shims();
33
- init_ansi_regex();
34
25
  var regex = ansiRegex();
35
26
  function stripAnsi(string) {
36
27
  if (typeof string !== "string") {
@@ -42,7 +33,5 @@ __name(stripAnsi, "stripAnsi");
42
33
 
43
34
  export {
44
35
  ansiRegex,
45
- ansi_regex_exports,
46
- init_ansi_regex,
47
36
  stripAnsi
48
37
  };