@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
@@ -0,0 +1,82 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ createDebugLogger
5
+ } from "./chunk-OQB4EXO4.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/core/src/hooks/registerSkillHooks.ts
14
+ init_esbuild_shims();
15
+ var debugLogger = createDebugLogger("SKILL_HOOKS");
16
+ function registerSkillHooks(sessionHooksManager, sessionId, skill) {
17
+ if (!skill.hooks) {
18
+ debugLogger.debug(`Skill '${skill.name}' has no hooks to register`);
19
+ return 0;
20
+ }
21
+ const hooksSettings = skill.hooks;
22
+ let registeredCount = 0;
23
+ for (const eventName of Object.keys(hooksSettings)) {
24
+ const matchers = hooksSettings[eventName];
25
+ if (!matchers) continue;
26
+ for (const matcher of matchers) {
27
+ const matcherPattern = matcher.matcher || "";
28
+ for (const hook of matcher.hooks) {
29
+ if (hook.type === "function" /* Function */) {
30
+ debugLogger.debug(
31
+ "Skipping function hook from skill (not supported in frontmatter)"
32
+ );
33
+ continue;
34
+ }
35
+ const hookConfig = prepareHookConfig(
36
+ hook,
37
+ skill.skillRoot
38
+ );
39
+ sessionHooksManager.addSessionHook(
40
+ sessionId,
41
+ eventName,
42
+ matcherPattern,
43
+ hookConfig,
44
+ { skillRoot: skill.skillRoot }
45
+ );
46
+ registeredCount++;
47
+ debugLogger.debug(
48
+ `Registered hook for ${eventName} with matcher '${matcherPattern}' from skill '${skill.name}'`
49
+ );
50
+ }
51
+ }
52
+ }
53
+ if (registeredCount > 0) {
54
+ debugLogger.info(
55
+ `Registered ${registeredCount} hooks from skill '${skill.name}'`
56
+ );
57
+ }
58
+ return registeredCount;
59
+ }
60
+ __name(registerSkillHooks, "registerSkillHooks");
61
+ function prepareHookConfig(hook, skillRoot) {
62
+ if (hook.type === "command" && skillRoot) {
63
+ return {
64
+ ...hook,
65
+ env: {
66
+ ...hook.env,
67
+ QWEN_SKILL_ROOT: skillRoot
68
+ }
69
+ };
70
+ }
71
+ return hook;
72
+ }
73
+ __name(prepareHookConfig, "prepareHookConfig");
74
+
75
+ export {
76
+ registerSkillHooks
77
+ };
78
+ /**
79
+ * @license
80
+ * Copyright 2026 Qwen Team
81
+ * SPDX-License-Identifier: Apache-2.0
82
+ */
@@ -0,0 +1,411 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ createDebugLogger
5
+ } from "./chunk-OQB4EXO4.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/core/src/utils/runtimeFetchOptions.ts
14
+ init_esbuild_shims();
15
+ var debugLogger = createDebugLogger("RUNTIME_FETCH");
16
+ var undiciModule;
17
+ var undiciModulePromise;
18
+ async function loadUndici() {
19
+ undiciModulePromise ??= import("./undici-3FJYTMOF.js").then((mod) => {
20
+ const keys = Object.keys(mod);
21
+ if (keys.length === 1 && keys[0] === "default") {
22
+ return mod.default;
23
+ }
24
+ return mod;
25
+ });
26
+ return undiciModulePromise;
27
+ }
28
+ __name(loadUndici, "loadUndici");
29
+ async function preloadRuntimeFetchModule() {
30
+ if (undiciModule) return;
31
+ undiciModule = await loadUndici();
32
+ }
33
+ __name(preloadRuntimeFetchModule, "preloadRuntimeFetchModule");
34
+ function requireUndici() {
35
+ if (!undiciModule) {
36
+ throw new Error(
37
+ "undici is not loaded yet; await preloadRuntimeFetchModule() before building runtime fetch options or dispatchers"
38
+ );
39
+ }
40
+ return undiciModule;
41
+ }
42
+ __name(requireUndici, "requireUndici");
43
+ function isTlsVerificationDisabled() {
44
+ const flag = process.env["QWEN_TLS_INSECURE"];
45
+ if (flag !== void 0 && /^(1|true|yes|on)$/i.test(flag.trim())) {
46
+ return true;
47
+ }
48
+ return process.env["NODE_TLS_REJECT_UNAUTHORIZED"] === "0";
49
+ }
50
+ __name(isTlsVerificationDisabled, "isTlsVerificationDisabled");
51
+ function detectRuntime() {
52
+ if (typeof process !== "undefined" && process.versions?.["bun"]) {
53
+ return "bun";
54
+ }
55
+ if (typeof process !== "undefined" && process.versions?.node) {
56
+ return "node";
57
+ }
58
+ return "unknown";
59
+ }
60
+ __name(detectRuntime, "detectRuntime");
61
+ function buildRuntimeFetchOptions(sdkType, proxyUrl) {
62
+ const runtime = detectRuntime();
63
+ switch (runtime) {
64
+ case "bun": {
65
+ if (sdkType === "openai") {
66
+ return {
67
+ fetchOptions: {
68
+ timeout: false
69
+ }
70
+ };
71
+ } else {
72
+ const bunFetch = /* @__PURE__ */ __name(async (input, init) => {
73
+ const bunFetchOptions = {
74
+ ...init,
75
+ // @ts-expect-error - Bun-specific timeout option
76
+ timeout: false
77
+ };
78
+ return fetch(input, bunFetchOptions);
79
+ }, "bunFetch");
80
+ return {
81
+ fetch: bunFetch
82
+ };
83
+ }
84
+ }
85
+ case "node": {
86
+ return buildFetchOptionsWithDispatcher(sdkType, proxyUrl);
87
+ }
88
+ default: {
89
+ return buildFetchOptionsWithDispatcher(sdkType, proxyUrl);
90
+ }
91
+ }
92
+ }
93
+ __name(buildRuntimeFetchOptions, "buildRuntimeFetchOptions");
94
+ var dispatcherCache = /* @__PURE__ */ new Map();
95
+ var proxyFailureCounts = /* @__PURE__ */ new Map();
96
+ var NO_DISPATCHER_FALLBACK = {
97
+ openai: void 0,
98
+ anthropic: {}
99
+ };
100
+ function getOrCreateSharedDispatcher(proxyUrl, insecure = isTlsVerificationDisabled()) {
101
+ const cacheKey = insecure ? `${proxyUrl}#insecure` : proxyUrl;
102
+ const cached = dispatcherCache.get(cacheKey);
103
+ if (cached) {
104
+ return cached;
105
+ }
106
+ const { EnvHttpProxyAgent } = requireUndici();
107
+ const dispatcher = new EnvHttpProxyAgent({
108
+ httpProxy: proxyUrl,
109
+ httpsProxy: proxyUrl,
110
+ headersTimeout: 0,
111
+ bodyTimeout: 0,
112
+ keepAliveTimeout: 6e4,
113
+ // EnvHttpProxyAgent can dispatch either directly or through a proxy.
114
+ // `connect` covers a direct NO_PROXY connection, `requestTls` covers the
115
+ // origin through a proxy, and `proxyTls` covers an HTTPS proxy itself.
116
+ ...insecure ? {
117
+ connect: { rejectUnauthorized: false },
118
+ requestTls: { rejectUnauthorized: false },
119
+ proxyTls: { rejectUnauthorized: false }
120
+ } : {}
121
+ });
122
+ dispatcherCache.set(cacheKey, dispatcher);
123
+ return dispatcher;
124
+ }
125
+ __name(getOrCreateSharedDispatcher, "getOrCreateSharedDispatcher");
126
+ function extractHostnameFromProxyUrl(proxyUrl) {
127
+ try {
128
+ const url = new URL(proxyUrl);
129
+ if (url.hostname) {
130
+ return url.port ? `${url.hostname}:${url.port}` : url.hostname;
131
+ }
132
+ } catch {
133
+ }
134
+ const match = proxyUrl.match(/@([^:/\s]+)(:\d+)?/);
135
+ return match ? match[1] + (match[2] ?? "") : redactProxyCredentials(proxyUrl);
136
+ }
137
+ __name(extractHostnameFromProxyUrl, "extractHostnameFromProxyUrl");
138
+ function hasPlausibleProxyPort(host) {
139
+ const portMatch = host.match(/:(\d{1,5})$/);
140
+ if (!portMatch) {
141
+ return false;
142
+ }
143
+ const port = Number(portMatch[1]);
144
+ return port >= 80 && port <= 65535;
145
+ }
146
+ __name(hasPlausibleProxyPort, "hasPlausibleProxyPort");
147
+ function hasLocalOrProxyLikeHost(host) {
148
+ const hostWithoutPort = host.replace(/:\d{1,5}$/, "").toLowerCase();
149
+ if (hostWithoutPort === "localhost") {
150
+ return true;
151
+ }
152
+ if (/^\d{1,3}(\.\d{1,3}){3}$/.test(hostWithoutPort)) {
153
+ return true;
154
+ }
155
+ return hostWithoutPort.split(/[.-]/).some((label) => /^(proxy|gateway|gw|squid)\d*$/.test(label));
156
+ }
157
+ __name(hasLocalOrProxyLikeHost, "hasLocalOrProxyLikeHost");
158
+ function hasNetworkErrorContext(message, offset) {
159
+ const context = message.slice(Math.max(0, offset - 80), offset).toLowerCase();
160
+ return /\b(connect|dispatcher|econnrefused|econnreset|enotfound|etimedout|proxy|tunnel)\b/.test(
161
+ context
162
+ );
163
+ }
164
+ __name(hasNetworkErrorContext, "hasNetworkErrorContext");
165
+ function shouldRedactTokenOnlyCredential(host, message, offset) {
166
+ return hasPlausibleProxyPort(host) && (hasLocalOrProxyLikeHost(host) || hasNetworkErrorContext(message, offset));
167
+ }
168
+ __name(shouldRedactTokenOnlyCredential, "shouldRedactTokenOnlyCredential");
169
+ function redactProxyCredentials(message) {
170
+ let result = message.replace(/\/\/[^/\s]*@/g, "//<redacted>@");
171
+ result = result.replace(
172
+ /(^|[\s([=:])([^\s/@()[\]=]+@[^@\s/()[\]=]+)/g,
173
+ (match, prefix, candidate, offset, message2) => {
174
+ const atIndex = candidate.indexOf("@");
175
+ const userInfo = candidate.slice(0, atIndex);
176
+ const host = candidate.slice(atIndex + 1);
177
+ if (!userInfo.includes(":") && !shouldRedactTokenOnlyCredential(host, message2, offset)) {
178
+ return match;
179
+ }
180
+ return `${prefix}<redacted>@${host}`;
181
+ }
182
+ );
183
+ return result;
184
+ }
185
+ __name(redactProxyCredentials, "redactProxyCredentials");
186
+ function redactProxyError(error) {
187
+ return redactProxyErrorValue(error, /* @__PURE__ */ new WeakMap());
188
+ }
189
+ __name(redactProxyError, "redactProxyError");
190
+ function redactProxyErrorValue(error, seen) {
191
+ if (typeof error === "string") {
192
+ return redactProxyCredentials(error);
193
+ }
194
+ if (!error || typeof error !== "object") {
195
+ return error;
196
+ }
197
+ if (seen.has(error)) {
198
+ return seen.get(error);
199
+ }
200
+ const errorRecord = error;
201
+ const needsClone = shouldCloneForRedaction(error, errorRecord);
202
+ const redactedMessage = typeof errorRecord.message === "string" ? redactProxyCredentials(errorRecord.message) : void 0;
203
+ const redactedStack = typeof errorRecord.stack === "string" ? redactProxyCredentials(errorRecord.stack) : void 0;
204
+ let redactedCause = errorRecord.cause;
205
+ let redactedErrors = errorRecord.errors;
206
+ if (needsClone) {
207
+ const clone = Object.create(Object.getPrototypeOf(error));
208
+ seen.set(error, clone);
209
+ if (errorRecord.cause !== void 0) {
210
+ redactedCause = redactProxyErrorValue(errorRecord.cause, seen);
211
+ }
212
+ if (errorRecord.errors !== void 0) {
213
+ redactedErrors = redactProxyErrorCollection(errorRecord.errors, seen);
214
+ }
215
+ cloneErrorWithRedactedFields(
216
+ error,
217
+ clone,
218
+ redactedMessage,
219
+ redactedStack,
220
+ redactedCause,
221
+ redactedErrors
222
+ );
223
+ return clone;
224
+ }
225
+ seen.set(error, error);
226
+ try {
227
+ if (redactedMessage !== void 0) {
228
+ errorRecord.message = redactedMessage;
229
+ }
230
+ if (redactedStack !== void 0) {
231
+ errorRecord.stack = redactedStack;
232
+ }
233
+ if (errorRecord.cause !== void 0) {
234
+ redactedCause = redactProxyErrorValue(errorRecord.cause, seen);
235
+ errorRecord.cause = redactedCause;
236
+ }
237
+ if (errorRecord.errors !== void 0) {
238
+ redactedErrors = redactProxyErrorCollection(errorRecord.errors, seen);
239
+ errorRecord.errors = redactedErrors;
240
+ }
241
+ return error;
242
+ } catch {
243
+ const clone = Object.create(Object.getPrototypeOf(error));
244
+ seen.set(error, clone);
245
+ if (errorRecord.cause !== void 0) {
246
+ redactedCause = redactProxyErrorValue(errorRecord.cause, seen);
247
+ }
248
+ if (errorRecord.errors !== void 0) {
249
+ redactedErrors = redactProxyErrorCollection(errorRecord.errors, seen);
250
+ }
251
+ cloneErrorWithRedactedFields(
252
+ error,
253
+ clone,
254
+ redactedMessage,
255
+ redactedStack,
256
+ redactedCause,
257
+ redactedErrors
258
+ );
259
+ return clone;
260
+ }
261
+ }
262
+ __name(redactProxyErrorValue, "redactProxyErrorValue");
263
+ function redactProxyErrorCollection(errors, seen) {
264
+ if (!Array.isArray(errors)) {
265
+ return redactProxyErrorValue(errors, seen);
266
+ }
267
+ if (seen.has(errors)) {
268
+ return seen.get(errors);
269
+ }
270
+ const redactedErrors = [];
271
+ seen.set(errors, redactedErrors);
272
+ for (const error of errors) {
273
+ redactedErrors.push(redactProxyErrorValue(error, seen));
274
+ }
275
+ return redactedErrors;
276
+ }
277
+ __name(redactProxyErrorCollection, "redactProxyErrorCollection");
278
+ function shouldCloneForRedaction(error, errorRecord) {
279
+ return typeof errorRecord.message === "string" && !canAssignProperty(error, "message") || typeof errorRecord.stack === "string" && !canAssignProperty(error, "stack") || errorRecord.cause !== void 0 && !canAssignProperty(error, "cause") || errorRecord.errors !== void 0 && !canAssignProperty(error, "errors");
280
+ }
281
+ __name(shouldCloneForRedaction, "shouldCloneForRedaction");
282
+ function canAssignProperty(target, key) {
283
+ let current = target;
284
+ while (current) {
285
+ const descriptor = Object.getOwnPropertyDescriptor(current, key);
286
+ if (descriptor) {
287
+ if ("writable" in descriptor) {
288
+ return descriptor.writable === true;
289
+ }
290
+ return typeof descriptor.set === "function";
291
+ }
292
+ current = Object.getPrototypeOf(current);
293
+ }
294
+ return Object.isExtensible(target);
295
+ }
296
+ __name(canAssignProperty, "canAssignProperty");
297
+ function cloneErrorWithRedactedFields(error, clone, redactedMessage, redactedStack, redactedCause, redactedErrors) {
298
+ const copiedKeys = /* @__PURE__ */ new Set();
299
+ for (const key of Reflect.ownKeys(error)) {
300
+ const descriptor = Object.getOwnPropertyDescriptor(error, key);
301
+ if (!descriptor) {
302
+ continue;
303
+ }
304
+ copiedKeys.add(key);
305
+ const updatedDescriptor = getRedactedPropertyDescriptor(
306
+ key,
307
+ descriptor,
308
+ redactedMessage,
309
+ redactedStack,
310
+ redactedCause,
311
+ redactedErrors
312
+ );
313
+ try {
314
+ Object.defineProperty(clone, key, updatedDescriptor);
315
+ } catch {
316
+ }
317
+ }
318
+ defineMissingRedactedValue(clone, copiedKeys, "message", redactedMessage);
319
+ defineMissingRedactedValue(clone, copiedKeys, "stack", redactedStack);
320
+ defineMissingRedactedValue(clone, copiedKeys, "cause", redactedCause);
321
+ defineMissingRedactedValue(clone, copiedKeys, "errors", redactedErrors);
322
+ }
323
+ __name(cloneErrorWithRedactedFields, "cloneErrorWithRedactedFields");
324
+ function getRedactedPropertyDescriptor(key, descriptor, redactedMessage, redactedStack, redactedCause, redactedErrors) {
325
+ const redactedValue = key === "message" ? redactedMessage : key === "stack" ? redactedStack : key === "cause" ? redactedCause : key === "errors" ? redactedErrors : void 0;
326
+ if (redactedValue === void 0) {
327
+ return { ...descriptor };
328
+ }
329
+ if ("value" in descriptor) {
330
+ return { ...descriptor, value: redactedValue };
331
+ }
332
+ return {
333
+ configurable: descriptor.configurable,
334
+ enumerable: descriptor.enumerable,
335
+ value: redactedValue,
336
+ writable: true
337
+ };
338
+ }
339
+ __name(getRedactedPropertyDescriptor, "getRedactedPropertyDescriptor");
340
+ function defineMissingRedactedValue(target, copiedKeys, key, value) {
341
+ if (value === void 0 || copiedKeys.has(key)) {
342
+ return;
343
+ }
344
+ try {
345
+ Object.defineProperty(target, key, {
346
+ configurable: true,
347
+ enumerable: false,
348
+ value,
349
+ writable: true
350
+ });
351
+ } catch {
352
+ }
353
+ }
354
+ __name(defineMissingRedactedValue, "defineMissingRedactedValue");
355
+ function recordProxyFailure(hostname) {
356
+ const failureCount = (proxyFailureCounts.get(hostname) ?? 0) + 1;
357
+ proxyFailureCounts.set(hostname, failureCount);
358
+ return failureCount;
359
+ }
360
+ __name(recordProxyFailure, "recordProxyFailure");
361
+ function buildFetchOptionsWithDispatcher(sdkType, proxyUrl) {
362
+ const insecure = isTlsVerificationDisabled();
363
+ const { Agent, fetch: undiciFetch } = requireUndici();
364
+ if (!proxyUrl) {
365
+ const NO_PROXY_KEY = insecure ? "__no_proxy__#insecure" : "__no_proxy__";
366
+ let dispatcher = dispatcherCache.get(NO_PROXY_KEY);
367
+ if (!dispatcher) {
368
+ dispatcher = new Agent({
369
+ headersTimeout: 0,
370
+ bodyTimeout: 0,
371
+ keepAliveTimeout: 6e4,
372
+ // For a direct (non-proxy) Agent, `connect` options flow straight to
373
+ // the TLS connector, so this disables upstream cert verification.
374
+ ...insecure ? { connect: { rejectUnauthorized: false } } : {}
375
+ });
376
+ dispatcherCache.set(NO_PROXY_KEY, dispatcher);
377
+ }
378
+ return { fetchOptions: { dispatcher }, fetch: undiciFetch };
379
+ }
380
+ try {
381
+ const dispatcher = getOrCreateSharedDispatcher(proxyUrl, insecure);
382
+ return { fetchOptions: { dispatcher }, fetch: undiciFetch };
383
+ } catch (error) {
384
+ const hostname = extractHostnameFromProxyUrl(proxyUrl);
385
+ const failureCount = recordProxyFailure(hostname);
386
+ const failureLabel = failureCount === 1 ? "first failure" : `failure #${failureCount}`;
387
+ const errorMessage = error instanceof Error ? error.message : String(error);
388
+ const redactedMessage = redactProxyCredentials(errorMessage);
389
+ const logMessage = `Failed to create proxy dispatcher for ${hostname} (${failureLabel}), falling back to direct connection: ${redactedMessage}`;
390
+ debugLogger.warn(logMessage);
391
+ console.error(`[RUNTIME_FETCH] ${logMessage}`);
392
+ return NO_DISPATCHER_FALLBACK[sdkType];
393
+ }
394
+ }
395
+ __name(buildFetchOptionsWithDispatcher, "buildFetchOptionsWithDispatcher");
396
+
397
+ export {
398
+ loadUndici,
399
+ preloadRuntimeFetchModule,
400
+ isTlsVerificationDisabled,
401
+ detectRuntime,
402
+ buildRuntimeFetchOptions,
403
+ getOrCreateSharedDispatcher,
404
+ redactProxyCredentials,
405
+ redactProxyError
406
+ };
407
+ /**
408
+ * @license
409
+ * Copyright 2025 Qwen Team
410
+ * SPDX-License-Identifier: Apache-2.0
411
+ */
@@ -4,7 +4,7 @@ import {
4
4
  matches,
5
5
  nextFireTime,
6
6
  parseCron
7
- } from "./chunk-XU457J4V.js";
7
+ } from "./chunk-IRH27ZC2.js";
8
8
  import {
9
9
  humanReadableCron
10
10
  } from "./chunk-VDDGDZMA.js";
@@ -19,15 +19,15 @@ import {
19
19
  taskHasLegacyCondition,
20
20
  taskHasLegacyRunMode,
21
21
  updateCronTasks
22
- } from "./chunk-EIAK6Q2B.js";
22
+ } from "./chunk-C3VHAXP2.js";
23
23
  import {
24
24
  ToolNames
25
- } from "./chunk-OP4MOGXF.js";
25
+ } from "./chunk-P5RRUHL7.js";
26
26
  import {
27
27
  Storage,
28
28
  createDebugLogger,
29
29
  getProjectHash
30
- } from "./chunk-C27BYUX6.js";
30
+ } from "./chunk-OQB4EXO4.js";
31
31
  import {
32
32
  init_esbuild_shims
33
33
  } from "./chunk-5O2XNYP6.js";
@@ -191,6 +191,16 @@ function computeJitter(id, cronExpr, recurring) {
191
191
  return 0;
192
192
  }
193
193
  __name(computeJitter, "computeJitter");
194
+ function cronJitterWindowMinutes(jitterMs) {
195
+ return Math.ceil(Math.abs(jitterMs) / 6e4);
196
+ }
197
+ __name(cronJitterWindowMinutes, "cronJitterWindowMinutes");
198
+ function isCronSlotVisibleToTick(slotMinuteMs, currentMs, jitterMs) {
199
+ const currentMinute = new Date(currentMs);
200
+ currentMinute.setSeconds(0, 0);
201
+ return Math.abs(currentMinute.getTime() - slotMinuteMs) <= cronJitterWindowMinutes(jitterMs) * 6e4;
202
+ }
203
+ __name(isCronSlotVisibleToTick, "isCronSlotVisibleToTick");
194
204
  var generateId = generateCronTaskId;
195
205
  function clampWakeupSeconds(delaySeconds) {
196
206
  if (!Number.isFinite(delaySeconds)) return WAKEUP_DEFAULT_SECONDS;
@@ -285,6 +295,10 @@ var CronScheduler = class {
285
295
  // the live job away (or clear its pendingRemoval guard) as if it had
286
296
  // been deleted on disk.
287
297
  pendingAdd = /* @__PURE__ */ new Set();
298
+ // Durable one-shots this continuously-running scheduler loaded while it was
299
+ // eligible to fire them. Cleared on stop so a later enable still treats
300
+ // genuinely overdue work as missed.
301
+ armedDurableOneShots = /* @__PURE__ */ new Set();
288
302
  // Ids of legacy tasks (a pre-removal `isolated` task with a `condition`
289
303
  // precondition) already reported as skipped, so the fail-closed remediation
290
304
  // breadcrumb is logged once per task rather than on every file reload.
@@ -462,6 +476,9 @@ var CronScheduler = class {
462
476
  this.pendingAdd.add(job.id);
463
477
  try {
464
478
  await addCronTask(this.projectRoot, jobToDurableTask(job));
479
+ if (!job.recurring && this.durableEnabled && this.#shouldFireDurable(job)) {
480
+ this.armedDurableOneShots.add(job.id);
481
+ }
465
482
  } catch (error) {
466
483
  this.jobs.delete(job.id);
467
484
  throw error;
@@ -491,6 +508,7 @@ var CronScheduler = class {
491
508
  throw error;
492
509
  }
493
510
  }
511
+ this.armedDurableOneShots.delete(id);
494
512
  return true;
495
513
  }
496
514
  /**
@@ -656,6 +674,8 @@ var CronScheduler = class {
656
674
  const anchor = t.recurring ? t.lastFiredAt ?? t.createdAt : t.createdAt;
657
675
  const nextFire = computeNextFireMs(t.cron, anchor, jitter);
658
676
  if (nextFire === null || nextFire >= now) continue;
677
+ if (!t.recurring && this.timer !== null && this.armedDurableOneShots.has(t.id) && isCronSlotVisibleToTick(nextFire - jitter, now, jitter))
678
+ continue;
659
679
  if (!t.recurring) {
660
680
  missedOneShots.push(t);
661
681
  } else if (now - t.createdAt >= this.recurringMaxAgeMs) {
@@ -671,6 +691,7 @@ var CronScheduler = class {
671
691
  }
672
692
  for (const t of [...missedOneShots, ...finalTasks]) {
673
693
  this.pendingRemoval.add(t.id);
694
+ this.armedDurableOneShots.delete(t.id);
674
695
  this.jobs.delete(t.id);
675
696
  }
676
697
  }
@@ -679,6 +700,7 @@ var CronScheduler = class {
679
700
  for (const job of this.jobs.values()) {
680
701
  if (job.durable && !diskIds.has(job.id)) {
681
702
  this.jobs.delete(job.id);
703
+ this.armedDurableOneShots.delete(job.id);
682
704
  }
683
705
  }
684
706
  for (const id of this.pendingRemoval) {
@@ -700,6 +722,11 @@ var CronScheduler = class {
700
722
  job.lastFiredAt = Math.max(existing.lastFiredAt, job.lastFiredAt ?? 0);
701
723
  }
702
724
  this.jobs.set(task.id, job);
725
+ if (!task.recurring && this.#shouldFireDurable(job)) {
726
+ this.armedDurableOneShots.add(task.id);
727
+ } else {
728
+ this.armedDurableOneShots.delete(task.id);
729
+ }
703
730
  if (!existing) durableJobCount++;
704
731
  }
705
732
  if (catchUpIds.length > 0) {
@@ -762,7 +789,8 @@ var CronScheduler = class {
762
789
  onFire({
763
790
  ...carrier,
764
791
  prompt: buildMissedCronNotification(runnable),
765
- missed: true
792
+ missed: true,
793
+ delivery: void 0
766
794
  });
767
795
  this.removeMissedFromDisk(runnable.map((t) => t.id));
768
796
  }
@@ -966,6 +994,7 @@ var CronScheduler = class {
966
994
  }
967
995
  this.wakeupChainStartedAt = null;
968
996
  this.onFire = null;
997
+ this.armedDurableOneShots.clear();
969
998
  if (this.durableEnabled) {
970
999
  this.durableGeneration++;
971
1000
  if (this.isOwner && this.projectRoot && this.sessionId) {
@@ -1067,7 +1096,10 @@ var CronScheduler = class {
1067
1096
  }
1068
1097
  }
1069
1098
  if (this.projectRoot && (firedAt.size > 0 || removedIds.length > 0)) {
1070
- for (const id of removedIds) this.pendingRemoval.add(id);
1099
+ for (const id of removedIds) {
1100
+ this.pendingRemoval.add(id);
1101
+ this.armedDurableOneShots.delete(id);
1102
+ }
1071
1103
  const removed = new Set(removedIds);
1072
1104
  const guarded = [...firedAt.keys()];
1073
1105
  this.markFirePersistPending(guarded);
@@ -1108,8 +1140,7 @@ var CronScheduler = class {
1108
1140
  * and 'none' otherwise.
1109
1141
  */
1110
1142
  processJob(job, currentDate, currentMs) {
1111
- const absJitter = Math.abs(job.jitterMs);
1112
- const windowMinutes = Math.ceil(absJitter / 6e4);
1143
+ const windowMinutes = cronJitterWindowMinutes(job.jitterMs);
1113
1144
  const nowMinuteStart = new Date(currentDate);
1114
1145
  nowMinuteStart.setSeconds(0, 0);
1115
1146
  const nowMinuteMs = nowMinuteStart.getTime();
@@ -1220,7 +1251,8 @@ function durableTaskToJob(task, recurringMaxAgeMs, existing) {
1220
1251
  lastFiredAt: task.lastFiredAt ?? void 0,
1221
1252
  jitterMs,
1222
1253
  durable: true,
1223
- ...task.sessionId ? { boundSessionId: task.sessionId } : {}
1254
+ ...task.sessionId ? { boundSessionId: task.sessionId } : {},
1255
+ ...task.delivery && task.sessionId ? { delivery: task.delivery } : {}
1224
1256
  };
1225
1257
  }
1226
1258
  __name(durableTaskToJob, "durableTaskToJob");
@@ -1232,7 +1264,8 @@ function jobToDurableTask(job) {
1232
1264
  recurring: job.recurring,
1233
1265
  createdAt: job.createdAt,
1234
1266
  lastFiredAt: job.lastFiredAt ?? null,
1235
- ...job.boundSessionId ? { sessionId: job.boundSessionId } : {}
1267
+ ...job.boundSessionId ? { sessionId: job.boundSessionId } : {},
1268
+ ...job.delivery ? { delivery: job.delivery } : {}
1236
1269
  };
1237
1270
  }
1238
1271
  __name(jobToDurableTask, "jobToDurableTask");