@qwen-code/qwen-code 0.21.7 → 0.21.8

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 (314) hide show
  1. package/README.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +43 -30
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +40 -2
  4. package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
  5. package/bundled/qc-helper/docs/features/channels/github.md +13 -11
  6. package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
  7. package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
  8. package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
  9. package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
  10. package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
  11. package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
  12. package/bundled/qc-helper/docs/features/code-review.md +4 -0
  13. package/bundled/qc-helper/docs/features/commands.md +1 -1
  14. package/bundled/qc-helper/docs/features/hooks.md +52 -0
  15. package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +4 -1
  17. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
  18. package/bundled/review/SKILL.md +28 -5
  19. package/chunks/{MaxSizedBox-ANWZBPTS.js → MaxSizedBox-7PM6BGJ5.js} +26 -22
  20. package/chunks/{StandaloneSessionPicker-XKS3VU3A.js → StandaloneSessionPicker-3UQHM7GV.js} +44 -40
  21. package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
  22. package/chunks/{acpAgent-KUAZ3GCZ.js → acpAgent-5UWLFV6V.js} +534 -262
  23. package/chunks/{agent-T6PTGX5R.js → agent-624T2BLO.js} +26 -22
  24. package/chunks/{agent-headless-PR7YCB7S.js → agent-headless-2EE5J2KX.js} +26 -22
  25. package/chunks/{artifact-tool-U4VOZIK5.js → artifact-tool-N652YE4L.js} +1 -1
  26. package/chunks/{askUserQuestion-XOBQLPFA.js → askUserQuestion-ONW74PKJ.js} +1 -1
  27. package/chunks/{bridge-NU6YEEHK.js → bridge-JENKGFFP.js} +29 -25
  28. package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
  29. package/chunks/{channel-management-service-FSQ7SHYI.js → channel-management-service-DDWUPHMU.js} +19 -10
  30. package/chunks/{channel-settings-store-35VQVUVV.js → channel-settings-store-SA6JZSPH.js} +34 -30
  31. package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-E67EN3RV.js} +5 -5
  32. package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-SW4C45CF.js} +5 -5
  33. package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-5SRD24FG.js} +3 -3
  34. package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
  35. package/chunks/{chunk-ZJ3VGYHK.js → chunk-2ILAOM2I.js} +34 -17
  36. package/chunks/{chunk-6XJMFJ4D.js → chunk-2M4K4KYS.js} +177 -120
  37. package/chunks/{chunk-CNIID3TV.js → chunk-2UUMVNYT.js} +1 -1
  38. package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
  39. package/chunks/{chunk-2U3WZGZG.js → chunk-3PY4LPJF.js} +19 -131
  40. package/chunks/{chunk-SPMY6CX6.js → chunk-3SE7J4DR.js} +3 -3
  41. package/chunks/{chunk-6UWFTUQL.js → chunk-3WNQOYHQ.js} +66 -22
  42. package/chunks/{chunk-KXSDEOFU.js → chunk-4ALIARFY.js} +1 -1
  43. package/chunks/{chunk-D3UEZIQH.js → chunk-4DU3NCHG.js} +48 -55
  44. package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
  45. package/chunks/{chunk-H2UQ2M5Z.js → chunk-4WU6NY7F.js} +96 -22
  46. package/chunks/{chunk-TLV2IMHR.js → chunk-5ZGR6RKJ.js} +3 -3
  47. package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
  48. package/chunks/{chunk-EORNAQDT.js → chunk-6TR7CFXH.js} +1 -1
  49. package/chunks/{chunk-NG2R4N5O.js → chunk-6ZRFAKXK.js} +1 -1
  50. package/chunks/{chunk-P2AJ7FTI.js → chunk-757GB46F.js} +1 -1
  51. package/chunks/{chunk-72LNFGUY.js → chunk-77QVBFCU.js} +3 -3
  52. package/chunks/{chunk-OH2VKQXH.js → chunk-7DVT4LVV.js} +37 -30
  53. package/chunks/{chunk-KKJJB5X6.js → chunk-7VUERJHS.js} +1503 -815
  54. package/chunks/{chunk-VOARQPTA.js → chunk-B52AWKBB.js} +65 -21
  55. package/chunks/{chunk-Y4EWSQF7.js → chunk-BF224XHL.js} +2 -2
  56. package/chunks/{chunk-PJOBIWUG.js → chunk-BF52U4XJ.js} +1 -1
  57. package/chunks/{chunk-55LYDVPU.js → chunk-C5VWPTGT.js} +1 -1
  58. package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
  59. package/chunks/chunk-COBO5EBO.js +135 -0
  60. package/chunks/chunk-CPG6P4GG.js +82 -0
  61. package/chunks/{chunk-DIEFUBV6.js → chunk-DIWZNWZT.js} +205 -35
  62. package/chunks/{chunk-AE77C5ZU.js → chunk-DQSDACD2.js} +1 -1
  63. package/chunks/{chunk-P3LEG54R.js → chunk-DX5W5AON.js} +2 -2
  64. package/chunks/{chunk-EUQTXRKZ.js → chunk-E4ZBKMSF.js} +5 -5
  65. package/chunks/{chunk-FPM27XN4.js → chunk-EIVICVHM.js} +4 -4
  66. package/chunks/{chunk-YHEEE624.js → chunk-EN2TKTFH.js} +1 -1
  67. package/chunks/chunk-F6WFNA7U.js +22 -0
  68. package/chunks/{chunk-FZBZSYKU.js → chunk-FN6YXJOP.js} +1 -1
  69. package/chunks/{chunk-KR4ZSC7K.js → chunk-FWBXMANW.js} +3 -3
  70. package/chunks/{chunk-LA7YLSR6.js → chunk-FYAXKJK7.js} +327 -67
  71. package/chunks/{chunk-CSZEXZBE.js → chunk-GBDINRIL.js} +3 -3
  72. package/chunks/{chunk-SCI7K3GM.js → chunk-GOEVOFQI.js} +19 -10
  73. package/chunks/{chunk-LEMXGVEP.js → chunk-GQCEQPYQ.js} +3 -3
  74. package/chunks/{chunk-Y7E5LNLO.js → chunk-GXSNGY5M.js} +1027 -876
  75. package/chunks/{chunk-6XU3PH66.js → chunk-HA3SAB64.js} +22 -69
  76. package/chunks/{chunk-Y4NGLFGJ.js → chunk-HUWENAHO.js} +1 -1
  77. package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
  78. package/chunks/{chunk-CB2464BK.js → chunk-HWX5HPUG.js} +14 -4
  79. package/chunks/{chunk-LZC3B5N2.js → chunk-IA7TGCN2.js} +2 -2
  80. package/chunks/{chunk-RERATVSK.js → chunk-IBYULW65.js} +6 -6
  81. package/chunks/{chunk-HYRDKNUY.js → chunk-IUQ52YJK.js} +1 -1
  82. package/chunks/{chunk-TDXGKHDN.js → chunk-IYES5WOT.js} +2 -2
  83. package/chunks/{chunk-RGSBTHSU.js → chunk-KAQCJO6Y.js} +131 -4
  84. package/chunks/{chunk-VWOVHOTT.js → chunk-KJZ26VBX.js} +1 -1
  85. package/chunks/{chunk-6GONZVLS.js → chunk-KKDVZLGL.js} +1 -1
  86. package/chunks/{chunk-MKVZE4ZJ.js → chunk-KTJFU7RT.js} +3 -2
  87. package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
  88. package/chunks/{chunk-6EOI4HOK.js → chunk-M3STHEMM.js} +12 -17
  89. package/chunks/chunk-NGYI5EF5.js +244 -0
  90. package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
  91. package/chunks/{chunk-HQB2KUAN.js → chunk-NPUXXRJI.js} +1 -1
  92. package/chunks/{chunk-QETYKPMG.js → chunk-NVRDQFCX.js} +1 -1
  93. package/chunks/{chunk-PQBHU2IA.js → chunk-OHKJVAKG.js} +10 -10
  94. package/chunks/{chunk-CYR3HI5X.js → chunk-OQTXYMKW.js} +2 -2
  95. package/chunks/{chunk-DBOFL3LQ.js → chunk-PG62DFWD.js} +10 -10
  96. package/chunks/{chunk-2VSTGY6M.js → chunk-PJRW65JO.js} +1 -1
  97. package/chunks/{chunk-33ACCIIY.js → chunk-PLFATELK.js} +1 -1
  98. package/chunks/{chunk-IC4Z6LX6.js → chunk-PYQADEFD.js} +5 -0
  99. package/chunks/{chunk-MAJS7AT4.js → chunk-QGHSP65Z.js} +2 -2
  100. package/chunks/{chunk-OHJLEW5J.js → chunk-QQWD7LZV.js} +4 -4
  101. package/chunks/{chunk-ZXU5UHMI.js → chunk-QXVSWG66.js} +2 -2
  102. package/chunks/{chunk-E33LOKRA.js → chunk-RPWVIXDB.js} +18 -1
  103. package/chunks/{chunk-TYKC75AX.js → chunk-S3Y3GBFD.js} +1 -1
  104. package/chunks/{chunk-7UFKAV7Y.js → chunk-S6HYI3MF.js} +2 -2
  105. package/chunks/chunk-SAH4BD2J.js +92 -0
  106. package/chunks/{chunk-OMKQH5C5.js → chunk-SNRT2TJJ.js} +6 -23
  107. package/chunks/chunk-SR7RZ4MS.js +202 -0
  108. package/chunks/{chunk-CXE7E23H.js → chunk-TE3ZAJE7.js} +45 -17
  109. package/chunks/{chunk-S7CV4KO6.js → chunk-TKSZJ5BV.js} +3 -3
  110. package/chunks/{chunk-3NB7TSE2.js → chunk-U5SLIG7E.js} +1 -1
  111. package/chunks/chunk-UA5H3DS2.js +203 -0
  112. package/chunks/{chunk-24ER7UV4.js → chunk-UFALT4LK.js} +1 -1
  113. package/chunks/{chunk-YJQCUTT2.js → chunk-VWMUDKLC.js} +3 -3
  114. package/chunks/{chunk-RMH5OWLD.js → chunk-VXZ5HAOV.js} +1 -1
  115. package/chunks/{chunk-BVWVWGLE.js → chunk-WAUGQKUU.js} +4 -64
  116. package/chunks/{chunk-SHZYHGQH.js → chunk-WG6542MA.js} +1 -1
  117. package/chunks/{chunk-5KH532V7.js → chunk-WV5J6Q6N.js} +1 -1
  118. package/chunks/{chunk-RNVQB725.js → chunk-XHD7CRP2.js} +2 -2
  119. package/chunks/{chunk-W4B7UBUS.js → chunk-XZKQT2B2.js} +5 -5
  120. package/chunks/{chunk-6HVUFDS2.js → chunk-Y4TETC74.js} +22 -13
  121. package/chunks/{chunk-RZHU3ILK.js → chunk-YEF7XEO2.js} +4 -4
  122. package/chunks/{chunk-RUL4S3K3.js → chunk-YHJFF7KH.js} +146 -45
  123. package/chunks/{chunk-23RZCH76.js → chunk-YOM7DEGB.js} +3 -3
  124. package/chunks/{chunk-OFI7IGST.js → chunk-ZCLLJARV.js} +9 -9
  125. package/chunks/{chunk-GSS34377.js → chunk-ZHA242R4.js} +2 -2
  126. package/chunks/{chunk-TRLYP7OF.js → chunk-ZPLALRXZ.js} +17 -9
  127. package/chunks/{chunk-WUC6ZFXO.js → chunk-ZWBUH5UP.js} +1 -1
  128. package/chunks/{computer-use-KEAPATUY.js → computer-use-ESQYJ3JY.js} +26 -22
  129. package/chunks/{config-utils-K7SCOWHD.js → config-utils-XQHBJP7G.js} +4 -4
  130. package/chunks/{contextCommand-ZJA6A5K5.js → contextCommand-CX3YF4ZE.js} +28 -24
  131. package/chunks/{core-runtime-QMJPWHCI.js → core-runtime-DIAU7JMG.js} +30 -26
  132. package/chunks/{create-sub-session-DJE6XICH.js → create-sub-session-HDPD6HOA.js} +26 -22
  133. package/chunks/{create-sub-session-E4PBYXV5.js → create-sub-session-QIDZUOPU.js} +1 -1
  134. package/chunks/{cron-create-GRBWYMIJ.js → cron-create-VONA5JYY.js} +1 -1
  135. package/chunks/{cron-delete-4CMKBR2M.js → cron-delete-5JXSP2MI.js} +1 -1
  136. package/chunks/{cron-list-W7K4ASOA.js → cron-list-KE4F2CIR.js} +1 -1
  137. package/chunks/{daemon-SCTQMM7Z.js → daemon-VZBGJUNL.js} +30 -0
  138. package/chunks/{daemon-status-provider-FSWDPE2G.js → daemon-status-provider-H6O4UQ4F.js} +33 -29
  139. package/chunks/{daemon-trust-policy-P5L5VFAY.js → daemon-trust-policy-BNUXG6MT.js} +33 -29
  140. package/chunks/{daemon-trust-policy-monitor-73JYN6ET.js → daemon-trust-policy-monitor-E4EQ7GF4.js} +33 -29
  141. package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
  142. package/chunks/{deferred-core-runtime-BWRCCFTE.js → deferred-core-runtime-CBMSHPAU.js} +26 -22
  143. package/chunks/{display-image-O2XFPQTC.js → display-image-NQRSIBXM.js} +2 -2
  144. package/chunks/{dist-DPPHJAVL.js → dist-EEEQGCZA.js} +918 -142
  145. package/chunks/{dist-K4WWQBHS.js → dist-HIACTZEK.js} +55 -15
  146. package/chunks/{dist-3BMEUGTG.js → dist-IRL7WA5Z.js} +1 -1
  147. package/chunks/{dist-HVBMEYWK.js → dist-KVISB2O2.js} +1 -1
  148. package/chunks/{dist-KS4O2NKE.js → dist-MBF3I5MX.js} +14 -8
  149. package/chunks/{dist-SFQ34F4M.js → dist-MKX5OSFF.js} +5 -4
  150. package/chunks/{dist-7JGAAQSC.js → dist-RCH3I7SS.js} +2 -2
  151. package/chunks/{dist-C5U4LJKW.js → dist-TUSWNE2I.js} +5 -4
  152. package/chunks/{earlyInputCapture-L5ST23A6.js → earlyInputCapture-UIOP7OIN.js} +26 -22
  153. package/chunks/{edit-LHHRFNFK.js → edit-ITMZYFKA.js} +26 -22
  154. package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
  155. package/chunks/{enter-worktree-6NXCRZPF.js → enter-worktree-S4PL5UV6.js} +26 -22
  156. package/chunks/{enterPlanMode-ZVQT4U7D.js → enterPlanMode-YV52NNJT.js} +26 -22
  157. package/chunks/{environment-GJ2HWJOS.js → environment-NGOWPRZV.js} +30 -26
  158. package/chunks/{errors-6RLH3XXC.js → errors-BU26DTDX.js} +28 -24
  159. package/chunks/{exit-worktree-I2YLUHHY.js → exit-worktree-XRM6LH5F.js} +26 -22
  160. package/chunks/{exitPlanMode-7CCWKO7I.js → exitPlanMode-ZLI5F7KR.js} +26 -22
  161. package/chunks/{fast-path-DVFD4HQD.js → fast-path-UJWORIED.js} +23 -3
  162. package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-37WQD5B2.js} +6 -3
  163. package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
  164. package/chunks/{gemini-7FWGOYD4.js → gemini-ZSKNDUMU.js} +77 -65
  165. package/chunks/{geminiContentGenerator-V2WVLIXU.js → geminiContentGenerator-YGEXOEKD.js} +1 -1
  166. package/chunks/{glob-3N6GGI75.js → glob-7KZG44BR.js} +26 -22
  167. package/chunks/{goal-tools-APOW6UXL.js → goal-tools-PXWN5VK3.js} +4 -2
  168. package/chunks/{grep-V43ILZVX.js → grep-6ZFC7RJ5.js} +26 -22
  169. package/chunks/{handleAutoUpdate-A5WFVWIA.js → handleAutoUpdate-KSEL3TQS.js} +30 -26
  170. package/chunks/{i18n-PLVQ4FBZ.js → i18n-ZIUXBW5V.js} +27 -23
  171. package/chunks/{image-gen-7C6IK6DC.js → image-gen-AUIZJJNK.js} +7 -5
  172. package/chunks/{initializer-CVAIKZYL.js → initializer-7AHY3N6Q.js} +33 -29
  173. package/chunks/{installationInfo-J6QDHNTK.js → installationInfo-VGBXMYLY.js} +27 -23
  174. package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
  175. package/chunks/{list-ZZ4OUUWV.js → list-PSFKQHLB.js} +36 -32
  176. package/chunks/{list-agents-KFFIIS2G.js → list-agents-Z4WABFDZ.js} +1 -1
  177. package/chunks/{loadedSettingsAdapter-QRYRJSWL.js → loadedSettingsAdapter-FTMRCTOF.js} +33 -29
  178. package/chunks/{loggingContentGenerator-OJCO75HM.js → loggingContentGenerator-MZAN52UV.js} +7 -5
  179. package/chunks/{loop-wakeup-TLMJPMMP.js → loop-wakeup-UZ5RL5Y2.js} +2 -2
  180. package/chunks/{ls-UVVE2XGE.js → ls-TVHDGIES.js} +1 -1
  181. package/chunks/{lsp-QMEA2VLB.js → lsp-CVN6OQPI.js} +1 -1
  182. package/chunks/{managed-npm-update-PCOSCP2N.js → managed-npm-update-O4NHK45X.js} +27 -23
  183. package/chunks/{mcp-M3WKKWKY.js → mcp-6CFP2AYQ.js} +33 -29
  184. package/chunks/{monitor-GN24FH6C.js → monitor-DAKD6OU4.js} +26 -22
  185. package/chunks/{nonInteractiveCli-KPTU3VSQ.js → nonInteractiveCli-RC7VIUZL.js} +66 -60
  186. package/chunks/{notebook-edit-4YM65BBO.js → notebook-edit-474DPMRL.js} +34 -22
  187. package/chunks/{openaiContentGenerator-EDQT6GTV.js → openaiContentGenerator-2NFY2MWO.js} +19 -9
  188. package/chunks/{pidfile-JOIIRN2C.js → pidfile-KBFVDNQP.js} +26 -22
  189. package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
  190. package/chunks/{processUtils-5SV4MX3Q.js → processUtils-6GRYH4Y3.js} +2 -2
  191. package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
  192. package/chunks/{qwenContentGenerator-ODRJSUGR.js → qwenContentGenerator-KAHU6IZY.js} +33 -28
  193. package/chunks/{qwenOAuth2-NESCMZ47.js → qwenOAuth2-RRQTCP4W.js} +7 -5
  194. package/chunks/{read-file-HPSODLPK.js → read-file-3M6WXDXP.js} +6 -4
  195. package/chunks/{read-mcp-resource-2TNSJTC3.js → read-mcp-resource-PZ4ZF6YL.js} +1 -1
  196. package/chunks/{record-artifact-RAON52FC.js → record-artifact-P4HFMS7X.js} +2 -2
  197. package/chunks/{resumeHistoryUtils-TXCOFFMQ.js → resumeHistoryUtils-D6TAY3HX.js} +30 -26
  198. package/chunks/{ripGrep-ZKQGTQAO.js → ripGrep-PLPENT3E.js} +26 -22
  199. package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
  200. package/chunks/{run-qwen-serve-ZPKPKECF.js → run-qwen-serve-ZAFIJKJC.js} +168 -54
  201. package/chunks/{runtime-2FLNNM36.js → runtime-ZED7CYOZ.js} +38 -34
  202. package/chunks/{scheduler-365PJHNR.js → scheduler-MD3AL2W5.js} +26 -22
  203. package/chunks/{send-message-ZM7MRUGP.js → send-message-CAMSLG2L.js} +4 -3
  204. package/chunks/{serve-QD2RNLKJ.js → serve-E3VUDRZN.js} +33 -29
  205. package/chunks/{server-XLJVLTYM.js → server-OWMEMAKR.js} +450 -231
  206. package/chunks/{session-3VTUHH4Q.js → session-HZ57QK7K.js} +158 -97
  207. package/chunks/{settings-KULVPCQC.js → settings-V7BR3RKP.js} +32 -28
  208. package/chunks/{shell-3SWW22MH.js → shell-23OMNMW6.js} +26 -22
  209. package/chunks/{skill-KDHWYS7W.js → skill-6HBDYZRS.js} +7 -5
  210. package/chunks/{skill-settings-NMY4JEJC.js → skill-settings-HWJLTU7M.js} +32 -28
  211. package/chunks/{spawnChannel-ZKS4Q5OU.js → spawnChannel-N6KKUW5B.js} +27 -23
  212. package/chunks/{standalone-update-7CXPGAQ4.js → standalone-update-QGIKHATD.js} +28 -24
  213. package/chunks/{startInteractiveUI-2QQLEKM6.js → startInteractiveUI-GX2CRL42.js} +365 -155
  214. package/chunks/{syntheticOutput-ZLCUTKO2.js → syntheticOutput-PEBJQYJV.js} +2 -2
  215. package/chunks/{task-create-CQP5UEA3.js → task-create-5NWCQSJF.js} +5 -4
  216. package/chunks/{task-list-XLEZOJXP.js → task-list-53265TRZ.js} +1 -1
  217. package/chunks/{task-stop-7ZQM5CFF.js → task-stop-FPCOIRYX.js} +1 -1
  218. package/chunks/{task-update-JA75U2SN.js → task-update-5HN577LS.js} +5 -4
  219. package/chunks/{team-create-2WTNGAOX.js → team-create-CFFKU7KL.js} +26 -22
  220. package/chunks/{team-delete-MHY3UZGY.js → team-delete-MMQB4OSC.js} +1 -1
  221. package/chunks/{team-plan-approval-LZTYLEG4.js → team-plan-approval-6EFOKR6A.js} +26 -22
  222. package/chunks/{terminal-image-renderer-R5HHAFJN.js → terminal-image-renderer-TLDNACQY.js} +28 -24
  223. package/chunks/{theme-manager-PAUCSJFF.js → theme-manager-5LJ3H7VO.js} +26 -22
  224. package/chunks/{todoWrite-UPVOHYGD.js → todoWrite-JGV6VLOX.js} +1 -1
  225. package/chunks/{tool-search-2BFCGLI6.js → tool-search-UJV3A24H.js} +9 -6
  226. package/chunks/{total-session-admission-MK4SINFK.js → total-session-admission-D63QYXGO.js} +29 -25
  227. package/chunks/{trustedFolders-TJ5S26N7.js → trustedFolders-KZCOB53W.js} +30 -24
  228. package/chunks/{update-relaunch-N7AYLARF.js → update-relaunch-IFILM3SA.js} +5 -5
  229. package/chunks/{updateCheck-QRZ3DVT5.js → updateCheck-YZ2CRCFC.js} +29 -25
  230. package/chunks/{useAutoAcceptIndicator-DBJ7Y5AF.js → useAutoAcceptIndicator-AXEVNA3Q.js} +35 -31
  231. package/chunks/{validateNonInterActiveAuth-6ZQWUDS3.js → validateNonInterActiveAuth-3WTOJFWA.js} +61 -57
  232. package/chunks/{version-AJQGQWXC.js → version-GXK7OHZY.js} +1 -1
  233. package/chunks/{web-fetch-QWJYRXFL.js → web-fetch-ILB4GAVR.js} +12 -8
  234. package/chunks/{web-search-2AOXJGHU.js → web-search-HKRPGPZZ.js} +8 -6
  235. package/chunks/{workflow-ERH3SJG2.js → workflow-FXIPRQQA.js} +750 -147
  236. package/chunks/{workspace-providers-status-HZ474RA4.js → workspace-providers-status-NYHC7HSR.js} +35 -31
  237. package/chunks/{workspace-registration-store-6EUP4JXG.js → workspace-registration-store-AKEB7OMW.js} +1 -1
  238. package/chunks/{workspace-registry-R4APRRNC.js → workspace-registry-CDAS5TVZ.js} +29 -25
  239. package/chunks/{workspace-service-HFIFDMU7.js → workspace-service-PAMUKMAV.js} +36 -32
  240. package/chunks/{workspace-skills-status-HAHEIHGK.js → workspace-skills-status-YQSHCCMS.js} +33 -29
  241. package/chunks/{workspace-trust-reconciler-65GTAGDK.js → workspace-trust-reconciler-RPTXOIY2.js} +36 -32
  242. package/chunks/{write-file-B34CDELV.js → write-file-CGS57TS4.js} +26 -22
  243. package/chunks/{zh-ARWDLDLR.js → zh-AGL2FVBI.js} +6 -0
  244. package/chunks/{zh-TW-Y4RGI3P7.js → zh-TW-KI66MHQY.js} +6 -0
  245. package/chunks/{zoom-image-HPRBZHSS.js → zoom-image-E7D72GYV.js} +6 -4
  246. package/cli.js +13 -13
  247. package/locales/ca.js +10 -0
  248. package/locales/de.js +9 -0
  249. package/locales/en.js +10 -0
  250. package/locales/fr.js +9 -0
  251. package/locales/ja.js +9 -0
  252. package/locales/pt.js +9 -0
  253. package/locales/ru.js +9 -0
  254. package/locales/zh-TW.js +10 -0
  255. package/locales/zh.js +10 -0
  256. package/package.json +3 -3
  257. package/web-shell/assets/{arc-Ip-FFDJ0.js → arc-DybZaz32.js} +1 -1
  258. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CChqgwIb.js → architectureDiagram-3BPJPVTR-jN3qBd19.js} +1 -1
  259. package/web-shell/assets/{blockDiagram-GPEHLZMM-BHN-Tfss.js → blockDiagram-GPEHLZMM-Ct5DZPrj.js} +1 -1
  260. package/web-shell/assets/{c4Diagram-AAUBKEIU-BhyjzDjN.js → c4Diagram-AAUBKEIU-CUAFMlUG.js} +1 -1
  261. package/web-shell/assets/channel-BMwLrwLW.js +1 -0
  262. package/web-shell/assets/{chunk-2J33WTMH-BB9eyHrx.js → chunk-2J33WTMH-CuV8n90B.js} +1 -1
  263. package/web-shell/assets/{chunk-4BX2VUAB-BeV7ce_J.js → chunk-4BX2VUAB-BUzl_kls.js} +1 -1
  264. package/web-shell/assets/{chunk-55IACEB6-DO7kXDiV.js → chunk-55IACEB6-BnDBLX6A.js} +1 -1
  265. package/web-shell/assets/{chunk-727SXJPM-B27MPznD.js → chunk-727SXJPM-B83uTOjm.js} +1 -1
  266. package/web-shell/assets/{chunk-AQP2D5EJ-DHIjqjD_.js → chunk-AQP2D5EJ-DM3HLgpT.js} +1 -1
  267. package/web-shell/assets/{chunk-FMBD7UC4-DabMqyN2.js → chunk-FMBD7UC4-CSQ5hgyb.js} +1 -1
  268. package/web-shell/assets/{chunk-ND2GUHAM-Dw7Nnnxc.js → chunk-ND2GUHAM-BWOF4SxX.js} +1 -1
  269. package/web-shell/assets/{chunk-QZHKN3VN-DdaZew1Q.js → chunk-QZHKN3VN-BsOH9LMi.js} +1 -1
  270. package/web-shell/assets/classDiagram-4FO5ZUOK-BGDv98jY.js +1 -0
  271. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGDv98jY.js +1 -0
  272. package/web-shell/assets/{cose-bilkent-S5V4N54A-CgBpCYH5.js → cose-bilkent-S5V4N54A-IENqH2iJ.js} +1 -1
  273. package/web-shell/assets/{dagre-BM42HDAG-BB4IU8G0.js → dagre-BM42HDAG--dyzDTGo.js} +1 -1
  274. package/web-shell/assets/{diagram-2AECGRRQ-BcUTHU37.js → diagram-2AECGRRQ-BE7Dcqof.js} +1 -1
  275. package/web-shell/assets/{diagram-5GNKFQAL-B6Lyihyv.js → diagram-5GNKFQAL-Cr8-5OTj.js} +1 -1
  276. package/web-shell/assets/{diagram-KO2AKTUF-CRIJOjpG.js → diagram-KO2AKTUF-Bzey3uAY.js} +1 -1
  277. package/web-shell/assets/{diagram-LMA3HP47-DdNiwWWT.js → diagram-LMA3HP47-sErl28Xb.js} +1 -1
  278. package/web-shell/assets/{diagram-OG6HWLK6-Dz4b32Do.js → diagram-OG6HWLK6-Dq30ATIo.js} +1 -1
  279. package/web-shell/assets/{erDiagram-TEJ5UH35-D-8NGw77.js → erDiagram-TEJ5UH35-BkCoEfVW.js} +1 -1
  280. package/web-shell/assets/{flowDiagram-I6XJVG4X-Dun26LyM.js → flowDiagram-I6XJVG4X-DHwO0rrI.js} +1 -1
  281. package/web-shell/assets/{ganttDiagram-6RSMTGT7-F10Hu1Gc.js → ganttDiagram-6RSMTGT7-s7vAPxWq.js} +1 -1
  282. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js → gitGraphDiagram-PVQCEYII-CQxhwPOU.js} +1 -1
  283. package/web-shell/assets/index-Bckpjr-I.css +5 -0
  284. package/web-shell/assets/{index-BXqw-nGq.js → index-CF4wApWp.js} +1 -1
  285. package/web-shell/assets/index-DwEr9HEW.js +1768 -0
  286. package/web-shell/assets/{infoDiagram-5YYISTIA-DVgTMLvj.js → infoDiagram-5YYISTIA-BnFrD0bq.js} +1 -1
  287. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-uT-KepvK.js → ishikawaDiagram-YF4QCWOH-Bf9zK5NK.js} +1 -1
  288. package/web-shell/assets/{journeyDiagram-JHISSGLW-Vg_XadQf.js → journeyDiagram-JHISSGLW-CyGAhsxi.js} +1 -1
  289. package/web-shell/assets/{kanban-definition-UN3LZRKU-Dyv1ESBE.js → kanban-definition-UN3LZRKU-CbsK5akB.js} +1 -1
  290. package/web-shell/assets/{linear-BMIepYX3.js → linear-cQsF4P8D.js} +1 -1
  291. package/web-shell/assets/{mermaid.core-zA8pJ9ag.js → mermaid.core-Z4HVqrKY.js} +5 -5
  292. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BCW_BZ_5.js → mindmap-definition-RKZ34NQL-CYnrBo_f.js} +1 -1
  293. package/web-shell/assets/{pieDiagram-4H26LBE5-DseNEGp2.js → pieDiagram-4H26LBE5-CBzOfhrs.js} +1 -1
  294. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js → quadrantDiagram-W4KKPZXB-D4LK1Ebn.js} +1 -1
  295. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CVOlCRPf.js → requirementDiagram-4Y6WPE33-Bzti2Lcj.js} +1 -1
  296. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CGhgrUJZ.js → sankeyDiagram-5OEKKPKP-yTBw5Z2s.js} +1 -1
  297. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-dlqmpLuQ.js → sequenceDiagram-3UESZ5HK-D07UVRiZ.js} +1 -1
  298. package/web-shell/assets/{stateDiagram-AJRCARHV-B9EW10Xb.js → stateDiagram-AJRCARHV-UE_lHsTn.js} +1 -1
  299. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DC6xgXjX.js +1 -0
  300. package/web-shell/assets/{timeline-definition-PNZ67QCA-BBRh0mgZ.js → timeline-definition-PNZ67QCA-DRvYdiTs.js} +1 -1
  301. package/web-shell/assets/{vennDiagram-CIIHVFJN-B8Gs-REP.js → vennDiagram-CIIHVFJN-CQLIXs0u.js} +1 -1
  302. package/web-shell/assets/{wardley-L42UT6IY-D_y80Ur7.js → wardley-L42UT6IY-JZz_Xqse.js} +1 -1
  303. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D-CNfHJ-.js → wardleyDiagram-YWT4CUSO--i7BiJwB.js} +1 -1
  304. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DQ5CvELo.js → xychartDiagram-2RQKCTM6-Bkc-bW0S.js} +1 -1
  305. package/web-shell/index.html +2 -2
  306. package/chunks/chunk-6PEXNQTX.js +0 -68
  307. package/chunks/chunk-IUFV6FYU.js +0 -81
  308. package/web-shell/assets/channel-Cu8qd6OB.js +0 -1
  309. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +0 -1
  310. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +0 -1
  311. package/web-shell/assets/index-QQlUCJGg.css +0 -5
  312. package/web-shell/assets/index-hcgjV7vS.js +0 -1768
  313. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +0 -1
  314. package/chunks/{anthropicContentGenerator-DTMVEL5M.js → anthropicContentGenerator-SSFE2753.js} +9 -9
@@ -0,0 +1,92 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/core/src/core/openaiContentGenerator/prefix-caching.ts
11
+ init_esbuild_shims();
12
+ var CACHE_KEY_PREFIX = "qwen-code:";
13
+ var EXPLICIT_BREAKPOINT_COUNT = 2;
14
+ function supportsOpenAIPrefixCaching(contentGeneratorConfig) {
15
+ return contentGeneratorConfig.authType === "openai" /* USE_OPENAI */ || contentGeneratorConfig.authType === "qwen-oauth" /* QWEN_OAUTH */;
16
+ }
17
+ __name(supportsOpenAIPrefixCaching, "supportsOpenAIPrefixCaching");
18
+ function isOfficialOpenAIEndpoint(contentGeneratorConfig) {
19
+ if (contentGeneratorConfig.authType !== "openai" /* USE_OPENAI */) return false;
20
+ const { baseUrl } = contentGeneratorConfig;
21
+ if (!baseUrl) return false;
22
+ try {
23
+ return new URL(baseUrl).hostname.toLowerCase() === "api.openai.com";
24
+ } catch {
25
+ return false;
26
+ }
27
+ }
28
+ __name(isOfficialOpenAIEndpoint, "isOfficialOpenAIEndpoint");
29
+ function supportsExplicitOpenAIPromptCaching(model) {
30
+ const match = /^gpt-(\d+)(?:\.(\d+))?(?:[-.]|$)/i.exec(model);
31
+ if (!match) return false;
32
+ const major = Number(match[1]);
33
+ const minor = Number(match[2] ?? 0);
34
+ return major > 5 || major === 5 && minor >= 6;
35
+ }
36
+ __name(supportsExplicitOpenAIPromptCaching, "supportsExplicitOpenAIPromptCaching");
37
+ function withCacheBreakpoint(message) {
38
+ if (message.role !== "user" && message.role !== "tool") return void 0;
39
+ const marker = { prompt_cache_breakpoint: { mode: "explicit" } };
40
+ if (typeof message.content === "string") {
41
+ return {
42
+ ...message,
43
+ content: [{ type: "text", text: message.content, ...marker }]
44
+ };
45
+ }
46
+ if (!Array.isArray(message.content) || message.content.length === 0) {
47
+ return void 0;
48
+ }
49
+ const content = [...message.content];
50
+ const lastIndex = content.length - 1;
51
+ content[lastIndex] = { ...content[lastIndex], ...marker };
52
+ return { ...message, content };
53
+ }
54
+ __name(withCacheBreakpoint, "withCacheBreakpoint");
55
+ function applyOfficialOpenAIPromptCaching(request, sessionId, cacheSharing, cacheKeyPartition) {
56
+ const result = { ...request };
57
+ if (sessionId && !result.prompt_cache_key) {
58
+ const partition = cacheKeyPartition ? `:${cacheKeyPartition}` : "";
59
+ result.prompt_cache_key = `${CACHE_KEY_PREFIX}${sessionId}${partition}`;
60
+ }
61
+ if (!cacheSharing || !supportsExplicitOpenAIPromptCaching(request.model)) {
62
+ return result;
63
+ }
64
+ const messages = [...request.messages];
65
+ let marked = 0;
66
+ for (let index = messages.length - 2; index >= 0 && marked < EXPLICIT_BREAKPOINT_COUNT; index -= 1) {
67
+ const message = messages[index];
68
+ const updated = message ? withCacheBreakpoint(message) : void 0;
69
+ if (!updated) continue;
70
+ messages[index] = updated;
71
+ marked += 1;
72
+ }
73
+ if (marked === 0) return result;
74
+ result.messages = messages;
75
+ result.prompt_cache_options = {
76
+ ...result.prompt_cache_options,
77
+ mode: "explicit"
78
+ };
79
+ return result;
80
+ }
81
+ __name(applyOfficialOpenAIPromptCaching, "applyOfficialOpenAIPromptCaching");
82
+
83
+ export {
84
+ supportsOpenAIPrefixCaching,
85
+ isOfficialOpenAIEndpoint,
86
+ applyOfficialOpenAIPromptCaching
87
+ };
88
+ /**
89
+ * @license
90
+ * Copyright 2025 Qwen
91
+ * SPDX-License-Identifier: Apache-2.0
92
+ */
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  getUserSettingsPath,
5
5
  v1ToV2Migration
6
- } from "./chunk-PQBHU2IA.js";
6
+ } from "./chunk-OHKJVAKG.js";
7
7
  import {
8
8
  getSystemDefaultsPath,
9
9
  getSystemSettingsPath
@@ -11,17 +11,18 @@ import {
11
11
  import {
12
12
  LoadedTrustedFolders,
13
13
  TrustLevel,
14
+ getExplicitTrustLevel,
14
15
  getTrustedFoldersPath
15
- } from "./chunk-6XU3PH66.js";
16
+ } from "./chunk-HA3SAB64.js";
16
17
  import {
17
18
  require_strip_json_comments
18
- } from "./chunk-ALGGS7UH.js";
19
+ } from "./chunk-NPQ5ZKRP.js";
19
20
  import {
20
21
  arePathsEquivalent
21
22
  } from "./chunk-MR3PXB6E.js";
22
23
  import {
23
24
  ideContextStore
24
- } from "./chunk-Y7E5LNLO.js";
25
+ } from "./chunk-GXSNGY5M.js";
25
26
  import {
26
27
  init_esbuild_shims
27
28
  } from "./chunk-5O2XNYP6.js";
@@ -235,25 +236,7 @@ async function readDaemonTrustPolicySnapshot() {
235
236
  }
236
237
  __name(readDaemonTrustPolicySnapshot, "readDaemonTrustPolicySnapshot");
237
238
  function explicitTrustLevel(snapshot, workspaceCwd) {
238
- const folders = new LoadedTrustedFolders(
239
- {
240
- path: getTrustedFoldersPath(),
241
- config: { ...snapshot.trustedFolders }
242
- },
243
- []
244
- );
245
- const effective = folders.isPathTrusted(workspaceCwd);
246
- if (effective === void 0) return null;
247
- for (const [rulePath, trustLevel] of Object.entries(
248
- snapshot.trustedFolders
249
- )) {
250
- const preview = new LoadedTrustedFolders(
251
- { path: getTrustedFoldersPath(), config: { [rulePath]: trustLevel } },
252
- []
253
- ).isPathTrusted(workspaceCwd);
254
- if (preview === effective) return trustLevel;
255
- }
256
- return null;
239
+ return getExplicitTrustLevel(snapshot.trustedFolders, workspaceCwd);
257
240
  }
258
241
  __name(explicitTrustLevel, "explicitTrustLevel");
259
242
  function evaluateDaemonWorkspaceTrust(snapshot, workspaceCwd, processCwd = process.cwd()) {
@@ -0,0 +1,202 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ getRateLimitErrorDetails,
5
+ isQwenQuotaExceededError,
6
+ isRateLimitError
7
+ } from "./chunk-M6HMMKVG.js";
8
+ import {
9
+ isAbortError
10
+ } from "./chunk-OIVKILPI.js";
11
+ import {
12
+ init_esbuild_shims
13
+ } from "./chunk-5O2XNYP6.js";
14
+ import {
15
+ __name
16
+ } from "./chunk-J2S4EL5Y.js";
17
+
18
+ // packages/core/src/utils/retryErrorClassification.ts
19
+ init_esbuild_shims();
20
+ function classifyRetryError(error, context = {}) {
21
+ if (isRetryAbortError(error)) {
22
+ return {
23
+ kind: "abort",
24
+ diagnosis: "fail-fast",
25
+ reason: "aborted"
26
+ };
27
+ }
28
+ const details = getRateLimitErrorDetails(error);
29
+ const statusCode = details.statusCode;
30
+ const providerFields = getProviderFields(error);
31
+ const providerCode = details.providerCode ?? providerFields.providerCode;
32
+ const providerMessage = details.providerMessage ?? providerFields.providerMessage;
33
+ const requestId = details.requestId ?? providerFields.requestId;
34
+ const common = {
35
+ ...statusCode !== void 0 ? { statusCode } : {},
36
+ ...providerCode !== void 0 ? { providerCode } : {},
37
+ ...providerMessage !== void 0 ? { providerMessage } : {},
38
+ ...requestId !== void 0 ? { requestId } : {}
39
+ };
40
+ if (context.authType === "qwen-oauth" /* QWEN_OAUTH */ && isQwenQuotaExceededError(error)) {
41
+ return {
42
+ kind: "provider-business",
43
+ diagnosis: "fail-fast",
44
+ reason: "qwen-oauth-free-tier-quota",
45
+ ...common
46
+ };
47
+ }
48
+ if (isAllocatedQuotaExceeded(providerCode)) {
49
+ return {
50
+ kind: "provider-business",
51
+ diagnosis: "fail-fast",
52
+ reason: "allocated-quota-exceeded",
53
+ ...common
54
+ };
55
+ }
56
+ if (isRateLimitError(error, context.extraRetryErrorCodes)) {
57
+ const kind = details.transport === "sse" ? "sse-provider" : statusCode !== void 0 ? "http" : "provider";
58
+ return {
59
+ kind,
60
+ diagnosis: "retryable",
61
+ reason: "rate-limit",
62
+ ...common
63
+ };
64
+ }
65
+ const transportCode = getTransportCode(error);
66
+ if (transportCode !== void 0 && (statusCode === void 0 || statusCode >= 500)) {
67
+ return {
68
+ kind: "transport",
69
+ diagnosis: "retryable",
70
+ reason: "transport-error",
71
+ transportCode,
72
+ ...statusCode !== void 0 ? { statusCode } : {}
73
+ };
74
+ }
75
+ if (statusCode !== void 0) {
76
+ const kind = details.transport === "sse" ? "sse-provider" : "http";
77
+ if (statusCode === 529) {
78
+ return {
79
+ kind,
80
+ diagnosis: "retryable",
81
+ reason: "capacity-overload",
82
+ ...common
83
+ };
84
+ }
85
+ if (statusCode === 401 || statusCode === 403) {
86
+ return {
87
+ kind,
88
+ diagnosis: "fail-fast",
89
+ reason: "auth-error",
90
+ ...common
91
+ };
92
+ }
93
+ if (statusCode >= 400 && statusCode < 500) {
94
+ return {
95
+ kind,
96
+ diagnosis: "fail-fast",
97
+ reason: "client-error",
98
+ ...common
99
+ };
100
+ }
101
+ if (statusCode >= 500 && statusCode < 600) {
102
+ return {
103
+ kind,
104
+ diagnosis: "retryable",
105
+ reason: "server-error",
106
+ ...common
107
+ };
108
+ }
109
+ return {
110
+ kind,
111
+ diagnosis: "unknown",
112
+ reason: "http-status",
113
+ ...common
114
+ };
115
+ }
116
+ return {
117
+ kind: "unknown",
118
+ diagnosis: "unknown",
119
+ reason: "unclassified",
120
+ ...common
121
+ };
122
+ }
123
+ __name(classifyRetryError, "classifyRetryError");
124
+ function isRetryAbortError(error) {
125
+ if (isAbortError(error)) {
126
+ return true;
127
+ }
128
+ return error instanceof Error && error.name === "CanceledError";
129
+ }
130
+ __name(isRetryAbortError, "isRetryAbortError");
131
+ var MAX_TRANSPORT_CAUSE_DEPTH = 4;
132
+ function getTransportCode(error) {
133
+ let current = error;
134
+ for (let depth = 0; depth <= MAX_TRANSPORT_CAUSE_DEPTH; depth++) {
135
+ if (typeof current !== "object" || current === null) {
136
+ return void 0;
137
+ }
138
+ const code = current.code;
139
+ if (typeof code === "string" && isTransportCode(code)) {
140
+ return code;
141
+ }
142
+ current = current instanceof Error ? current.cause : void 0;
143
+ }
144
+ return void 0;
145
+ }
146
+ __name(getTransportCode, "getTransportCode");
147
+ function isTransportCode(code) {
148
+ return TRANSPORT_ERROR_CODES.has(code);
149
+ }
150
+ __name(isTransportCode, "isTransportCode");
151
+ var TRANSPORT_ERROR_CODES = /* @__PURE__ */ new Set([
152
+ "EAI_AGAIN",
153
+ "ECONNABORTED",
154
+ "ECONNREFUSED",
155
+ "ECONNRESET",
156
+ "EHOSTUNREACH",
157
+ "ENETUNREACH",
158
+ "ENOTFOUND",
159
+ "EPIPE",
160
+ "ETIMEDOUT",
161
+ "UND_ERR_BODY_TIMEOUT",
162
+ "UND_ERR_CONNECT_TIMEOUT",
163
+ "UND_ERR_HEADERS_TIMEOUT",
164
+ "UND_ERR_SOCKET"
165
+ ]);
166
+ function isAllocatedQuotaExceeded(providerCode) {
167
+ return providerCode === "Throttling.AllocationQuota";
168
+ }
169
+ __name(isAllocatedQuotaExceeded, "isAllocatedQuotaExceeded");
170
+ function getProviderFields(error) {
171
+ if (typeof error !== "object" || error === null) {
172
+ return {};
173
+ }
174
+ const source = error;
175
+ const rawCode = typeof source.code === "string" || typeof source.code === "number" ? String(source.code) : void 0;
176
+ const isHttpStatusEcho = typeof source.code === "number" && source.code >= 100 && source.code < 600;
177
+ const providerCode = error instanceof Error && rawCode?.startsWith("ERR_") || isHttpStatusEcho ? void 0 : rawCode;
178
+ const requestId = typeof source.request_id === "string" ? source.request_id : typeof source.requestId === "string" ? source.requestId : void 0;
179
+ const providerMessage = typeof source.message === "string" && (!(error instanceof Error) || providerCode !== void 0 || requestId !== void 0) ? source.message : void 0;
180
+ return {
181
+ ...providerCode !== void 0 ? { providerCode } : {},
182
+ ...providerMessage !== void 0 ? { providerMessage } : {},
183
+ ...requestId !== void 0 ? { requestId } : {}
184
+ };
185
+ }
186
+ __name(getProviderFields, "getProviderFields");
187
+ var FALLBACK_ELIGIBLE_STATUS_CODES = /* @__PURE__ */ new Set([429, 503, 529]);
188
+ function isFallbackEligible(classification) {
189
+ return classification.kind !== "transport" && classification.statusCode !== void 0 && FALLBACK_ELIGIBLE_STATUS_CODES.has(classification.statusCode) && classification.diagnosis !== "fail-fast" && classification.diagnosis !== "unknown";
190
+ }
191
+ __name(isFallbackEligible, "isFallbackEligible");
192
+
193
+ export {
194
+ classifyRetryError,
195
+ getTransportCode,
196
+ isFallbackEligible
197
+ };
198
+ /**
199
+ * @license
200
+ * Copyright 2026 Google LLC
201
+ * SPDX-License-Identifier: Apache-2.0
202
+ */
@@ -4,37 +4,50 @@ import {
4
4
  DashScopeOpenAICompatibleProvider,
5
5
  DefaultOpenAICompatibleProvider
6
6
  } from "./chunk-IIJEYBNH.js";
7
- import {
8
- RequestTokenizer
9
- } from "./chunk-B2GJNDTV.js";
10
- import {
11
- DEFAULT_STREAM_IDLE_TIMEOUT_MS,
12
- DEFAULT_STREAM_MAX_LIFETIME_MS,
13
- MAX_STREAM_GUARD_TIMEOUT_MS,
14
- QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
15
- QWEN_STREAM_MAX_LIFETIME_MS_ENV
16
- } from "./chunk-AXMWHKXA.js";
17
- import {
18
- createChildAbortController
19
- } from "./chunk-DJ2GSRLV.js";
20
7
  import {
21
8
  OpenAIContentConverter,
22
9
  TaggedThinkingParser,
23
10
  openaiRequestCaptureContext
24
11
  } from "./chunk-DREZZAZM.js";
12
+ import {
13
+ applyOfficialOpenAIPromptCaching,
14
+ isOfficialOpenAIEndpoint
15
+ } from "./chunk-SAH4BD2J.js";
16
+ import {
17
+ getCurrentAgentId
18
+ } from "./chunk-CPG6P4GG.js";
25
19
  import {
26
20
  InvalidStreamError
27
21
  } from "./chunk-2J3OJGTL.js";
22
+ import {
23
+ isInForkExecution
24
+ } from "./chunk-IA7TGCN2.js";
25
+ import {
26
+ getTransportCode
27
+ } from "./chunk-SR7RZ4MS.js";
28
28
  import {
29
29
  getRateLimitErrorDetails
30
30
  } from "./chunk-M6HMMKVG.js";
31
+ import {
32
+ RequestTokenizer
33
+ } from "./chunk-B2GJNDTV.js";
31
34
  import {
32
35
  safeJsonParse
33
36
  } from "./chunk-CKASRHZI.js";
37
+ import {
38
+ DEFAULT_STREAM_IDLE_TIMEOUT_MS,
39
+ DEFAULT_STREAM_MAX_LIFETIME_MS,
40
+ MAX_STREAM_GUARD_TIMEOUT_MS,
41
+ QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
42
+ QWEN_STREAM_MAX_LIFETIME_MS_ENV
43
+ } from "./chunk-AXMWHKXA.js";
34
44
  import {
35
45
  getToolCallPreparations,
36
46
  runtimeDiagnostics
37
47
  } from "./chunk-GLCZKT5V.js";
48
+ import {
49
+ createChildAbortController
50
+ } from "./chunk-DJ2GSRLV.js";
38
51
  import {
39
52
  reportOpenAiChunk,
40
53
  reportOpenAiRequest,
@@ -43,7 +56,7 @@ import {
43
56
  import {
44
57
  ProtocolTagSanitizedEvent,
45
58
  logProtocolTagSanitized
46
- } from "./chunk-2U3WZGZG.js";
59
+ } from "./chunk-3PY4LPJF.js";
47
60
  import {
48
61
  isQwenFamilyWireModel,
49
62
  isTieredEffortWireModel
@@ -1479,10 +1492,18 @@ var ContentGenerationPipeline = class {
1479
1492
  baseRequest["tool_choice"] = "none";
1480
1493
  }
1481
1494
  }
1482
- const providerRequest = this.config.provider.buildRequest(
1495
+ let providerRequest = this.config.provider.buildRequest(
1483
1496
  baseRequest,
1484
1497
  userPromptId
1485
1498
  );
1499
+ if (this.contentGeneratorConfig.enableCacheControl !== false && isOfficialOpenAIEndpoint(this.contentGeneratorConfig)) {
1500
+ providerRequest = applyOfficialOpenAIPromptCaching(
1501
+ providerRequest,
1502
+ this.config.cliConfig.getSessionId?.(),
1503
+ request.promptCacheSharing === true,
1504
+ isInForkExecution() ? void 0 : getCurrentAgentId() ?? void 0
1505
+ );
1506
+ }
1486
1507
  const model = (context.model ?? "").toLowerCase();
1487
1508
  const isDashScope = DashScopeOpenAICompatibleProvider.isDashScopeProvider(
1488
1509
  this.contentGeneratorConfig
@@ -1710,11 +1731,18 @@ var EnhancedErrorHandler = class {
1710
1731
  );
1711
1732
  }
1712
1733
  if (isTimeoutError) {
1713
- throw new Error(
1734
+ const timeoutError = new Error(
1714
1735
  `${errorMessage}
1715
1736
 
1716
- ${this.getTimeoutTroubleshootingTips()}`
1737
+ ${this.getTimeoutTroubleshootingTips()}`,
1738
+ { cause: redactedError }
1717
1739
  );
1740
+ const status = getErrorStatus(redactedError);
1741
+ const transportCode = getTransportCode(redactedError);
1742
+ throw Object.assign(timeoutError, {
1743
+ ...status !== void 0 ? { status } : {},
1744
+ ...status === void 0 && transportCode === void 0 ? { code: "ETIMEDOUT" } : {}
1745
+ });
1718
1746
  }
1719
1747
  throw redactedError;
1720
1748
  }
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  CLIENT_MCP_OVER_WS_CONFIG_FLAG
5
- } from "./chunk-R574ATRM.js";
5
+ } from "./chunk-M2PNLYGY.js";
6
6
  import {
7
7
  SessionNotFoundError
8
8
  } from "./chunk-J26HHFI5.js";
9
9
  import {
10
10
  ChannelWorkerStartupError
11
- } from "./chunk-MKVZE4ZJ.js";
11
+ } from "./chunk-KTJFU7RT.js";
12
12
  import {
13
13
  ChannelDeliveryError,
14
14
  ChannelWebhookEnqueueError
15
15
  } from "./chunk-YP5KH5Y7.js";
16
16
  import {
17
17
  CHANNEL_LOOP_MCP_SERVER_NAME
18
- } from "./chunk-DIEFUBV6.js";
18
+ } from "./chunk-DIWZNWZT.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-DBOFL3LQ.js";
5
+ } from "./chunk-PG62DFWD.js";
6
6
  import {
7
7
  createDebugLogger
8
8
  } from "./chunk-OIVKILPI.js";