@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260630.e00fe6a27

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 (286) hide show
  1. package/bundled/extension-creator/SKILL.md +357 -0
  2. package/bundled/loop/SKILL.md +21 -7
  3. package/bundled/loop/SKILL.test.ts +41 -0
  4. package/bundled/loop/loop-task-file.test.ts +1064 -0
  5. package/bundled/loop/loop-task-file.ts +404 -0
  6. package/bundled/loop/loop-tick-resolver.test.ts +665 -0
  7. package/bundled/loop/loop-tick-resolver.ts +347 -0
  8. package/bundled/qc-helper/SKILL.md +26 -19
  9. package/bundled/qc-helper/docs/configuration/auth.md +11 -11
  10. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
  11. package/bundled/qc-helper/docs/configuration/settings.md +76 -75
  12. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  13. package/bundled/qc-helper/docs/features/commands.md +108 -77
  14. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  15. package/bundled/qc-helper/docs/features/memory.md +52 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +24 -2
  17. package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
  18. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
  19. package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-T5X5MN5Q.js} +29 -27
  20. package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-P3E3WTOQ.js} +42 -37
  21. package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QEP6DXFW.js} +864 -175
  22. package/chunks/{agent-K3ENVYSB.js → agent-UDANDUF7.js} +24 -23
  23. package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-KYVSZHSO.js} +24 -23
  24. package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-KWSJAQ7B.js} +33 -12
  25. package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
  26. package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
  27. package/chunks/{bridge-4LV2HBH2.js → bridge-X42LXPTA.js} +31 -30
  28. package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
  29. package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
  30. package/chunks/{chunk-2TJ3YN6Q.js → chunk-2RJA6J57.js} +416 -401
  31. package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
  32. package/chunks/{chunk-BGUDAULQ.js → chunk-3CPCDXFR.js} +5 -5
  33. package/chunks/{chunk-5RVSM6NW.js → chunk-3HUHAQF3.js} +1 -1
  34. package/chunks/{chunk-D5E5TMYH.js → chunk-3M4W4U5G.js} +16 -2
  35. package/chunks/{chunk-DBZUXSSV.js → chunk-4X7NIEQJ.js} +3 -3
  36. package/chunks/chunk-5GOVVXEV.js +73 -0
  37. package/chunks/{chunk-2BAQ3ACS.js → chunk-5SM4VT6V.js} +405 -5
  38. package/chunks/{chunk-NYOHZYHM.js → chunk-5XQ4A26L.js} +45 -3
  39. package/chunks/{chunk-CI5O6SQL.js → chunk-6FKEVYCD.js} +4 -4
  40. package/chunks/{chunk-ZD3NW5KL.js → chunk-7LM4XHPE.js} +63 -9
  41. package/chunks/chunk-7UNP2XM7.js +840 -0
  42. package/chunks/{chunk-OQHQHJRK.js → chunk-ARYCHZ4B.js} +151 -4775
  43. package/chunks/chunk-BC3C4F3Q.js +40 -0
  44. package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
  45. package/chunks/chunk-BMFMJINR.js +45 -0
  46. package/chunks/chunk-BOJWHRMX.js +11273 -0
  47. package/chunks/{chunk-CGOMICBE.js → chunk-BSZEQNUA.js} +34 -1
  48. package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
  49. package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
  50. package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
  51. package/chunks/{chunk-4W4T77MO.js → chunk-BXVWV4GI.js} +109 -6
  52. package/chunks/{chunk-VQRYPFCV.js → chunk-CYHVPQYT.js} +10 -460
  53. package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
  54. package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
  55. package/chunks/{chunk-F6XNTYNE.js → chunk-E6XQPQXW.js} +30 -307
  56. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  57. package/chunks/{chunk-EL5IHQON.js → chunk-EWYQFWYF.js} +6 -27
  58. package/chunks/{chunk-HG6YKEBI.js → chunk-F2DOT6UZ.js} +161 -30
  59. package/chunks/{chunk-JTYRZODB.js → chunk-FOOIZCWL.js} +16 -7
  60. package/chunks/{chunk-EX4W6ZYG.js → chunk-G5G4TFZ7.js} +1 -1
  61. package/chunks/{chunk-EW6C27XX.js → chunk-GEHVIWAT.js} +9 -3
  62. package/chunks/chunk-HEVBZSXG.js +4923 -0
  63. package/chunks/chunk-HFQ2XSE7.js +690 -0
  64. package/chunks/{chunk-PF523XJX.js → chunk-HPGTGMP3.js} +1 -1
  65. package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
  66. package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
  67. package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
  68. package/chunks/{chunk-TZM5JIAX.js → chunk-JYPQTRA3.js} +10 -7
  69. package/chunks/chunk-K5XU6E4T.js +167 -0
  70. package/chunks/{chunk-BS64PXY3.js → chunk-KFVU7ODN.js} +1 -1
  71. package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
  72. package/chunks/{chunk-3QFE4OTE.js → chunk-LBW7NW7X.js} +4 -4
  73. package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
  74. package/chunks/{chunk-EXMX5YHG.js → chunk-LP5E4YIH.js} +1 -1
  75. package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
  76. package/chunks/{chunk-I5T6PIBQ.js → chunk-MBV2CTRL.js} +1010 -925
  77. package/chunks/{chunk-5JZLXFPD.js → chunk-MTHMXSNT.js} +11 -11
  78. package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
  79. package/chunks/chunk-NDOC6M5S.js +481 -0
  80. package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
  81. package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
  82. package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
  83. package/chunks/{chunk-RS4HRC75.js → chunk-QI2CFVRF.js} +85 -8
  84. package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
  85. package/chunks/chunk-QYUE6W3T.js +123 -0
  86. package/chunks/{chunk-USGMPVOY.js → chunk-R3LHDWF2.js} +21 -12
  87. package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
  88. package/chunks/{chunk-PXFFKNCO.js → chunk-RIP623NO.js} +4877 -2469
  89. package/chunks/{chunk-XKBP7M7A.js → chunk-RYBSUGOR.js} +142 -30
  90. package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
  91. package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
  92. package/chunks/{chunk-5R4SBCX6.js → chunk-SL5MOGQH.js} +3 -3
  93. package/chunks/chunk-SMXULRAN.js +37 -0
  94. package/chunks/{chunk-WA5OJGFL.js → chunk-SS6WJMQK.js} +363 -76
  95. package/chunks/{chunk-UAARVVBI.js → chunk-TNWFHGN6.js} +1 -1
  96. package/chunks/{chunk-I2RFAW6Q.js → chunk-TT6Q3EN4.js} +7 -5
  97. package/chunks/chunk-UAKXW3DN.js +30 -0
  98. package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
  99. package/chunks/{chunk-J6AW7O5D.js → chunk-WHDQZHRU.js} +2 -2
  100. package/chunks/{chunk-WGAEWQTF.js → chunk-WN6K47NR.js} +1 -2
  101. package/chunks/{chunk-UAARJR2G.js → chunk-WQT5SOI6.js} +2 -2
  102. package/chunks/{chunk-VYFMN7C6.js → chunk-WUMVIRTN.js} +225 -37
  103. package/chunks/{chunk-R36VMVEP.js → chunk-XJMKOTVV.js} +5 -5
  104. package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
  105. package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
  106. package/chunks/{chunk-LLFFKXZZ.js → chunk-YALKC62D.js} +56 -29
  107. package/chunks/{chunk-GYZQA2FO.js → chunk-YLZJCUH6.js} +1 -1
  108. package/chunks/chunk-YTFBURQD.js +313 -0
  109. package/chunks/{chunk-KBXLIVWQ.js → chunk-ZFPRYHWR.js} +2 -2
  110. package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
  111. package/chunks/{computer-use-6BBRNT6S.js → computer-use-LF2S6LUZ.js} +103 -49
  112. package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-VPX5UG55.js} +26 -25
  113. package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
  114. package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
  115. package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
  116. package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-5JAWZS4V.js} +34 -34
  117. package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
  118. package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
  119. package/chunks/{dist-OD2FY543.js → dist-O3H4PABL.js} +2 -2
  120. package/chunks/{dist-BOOH5JWN.js → dist-SCAAUWPS.js} +18 -4
  121. package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
  122. package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
  123. package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-7FRQMU4P.js} +25 -24
  124. package/chunks/{edit-7J6WXARF.js → edit-REKJDIRL.js} +68 -27
  125. package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
  126. package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-GBKUDCD3.js} +24 -23
  127. package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-WB3Y4FGT.js} +24 -23
  128. package/chunks/{errors-6G2JYR54.js → errors-2XJDYO3M.js} +26 -25
  129. package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-KKC7O2ZV.js} +24 -23
  130. package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-7HMS3TF7.js} +24 -23
  131. package/chunks/{fast-path-35JJFS3C.js → fast-path-XVNIYWGG.js} +4 -4
  132. package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
  133. package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
  134. package/chunks/{gemini-NDTG7WAX.js → gemini-U5TPU3IQ.js} +210 -104
  135. package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-ZVWRHXOO.js} +4 -4
  136. package/chunks/{glob-SJ2JBZK4.js → glob-FEJWIH2W.js} +24 -23
  137. package/chunks/{grep-BRMWFEWR.js → grep-KMP25IIA.js} +24 -23
  138. package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-5DEDET4M.js} +24 -23
  139. package/chunks/{initializer-P5AXF7PV.js → initializer-FJTACLOH.js} +31 -28
  140. package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
  141. package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
  142. package/chunks/{list-6COK34BP.js → list-SCQXYJUW.js} +32 -29
  143. package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-P6KPNAG7.js} +30 -27
  144. package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-FYEQEJUA.js} +7 -7
  145. package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
  146. package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
  147. package/chunks/{monitor-DH7KFSJV.js → monitor-JU3HHHVY.js} +24 -23
  148. package/chunks/nonInteractiveCli-IZEKUHU3.js +100 -0
  149. package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-YHY3Z2QQ.js} +52 -23
  150. package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-4WUVA3Q2.js} +13 -12
  151. package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
  152. package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-MVYYR44B.js} +26 -25
  153. package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-6HNGHALT.js} +5 -4
  154. package/chunks/{read-file-767G23OY.js → read-file-NABEO2X4.js} +8 -8
  155. package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
  156. package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-YXLK6UTX.js} +24 -23
  157. package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
  158. package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-4B5QBMLQ.js} +144 -41
  159. package/chunks/{scheduler-UNTFDQLG.js → scheduler-XAKIYBDL.js} +24 -23
  160. package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
  161. package/chunks/{serve-KZ56QB5S.js → serve-4RXVLUKD.js} +30 -28
  162. package/chunks/{server-BV5TZUMU.js → server-7PA5QGIA.js} +11037 -8747
  163. package/chunks/{session-OIBXFSGD.js → session-WNVWRYAH.js} +194 -57
  164. package/chunks/{settings-WJTCBIRA.js → settings-YJH32TFF.js} +30 -27
  165. package/chunks/{shell-WC52IBHW.js → shell-YFLABOS5.js} +24 -23
  166. package/chunks/{skill-U7F7JR4M.js → skill-N3J7FUAY.js} +38 -11
  167. package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-D6WVMFZJ.js} +26 -25
  168. package/chunks/{src-4F6FBZFI.js → src-IU5GDBEH.js} +88 -28
  169. package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-QIPQTRT4.js} +2784 -2474
  170. package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
  171. package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
  172. package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
  173. package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
  174. package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
  175. package/chunks/{team-create-3WC7CIIW.js → team-create-TP4CLLM3.js} +24 -23
  176. package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
  177. package/chunks/{theme-manager-DICFCT3P.js → theme-manager-N2TBIBZT.js} +25 -24
  178. package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
  179. package/chunks/{tool-search-L5K7HLER.js → tool-search-GBBSICYB.js} +101 -16
  180. package/chunks/trustedFolders-F7TBU5CD.js +76 -0
  181. package/chunks/types-QX5C3CHJ.js +12 -0
  182. package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-EQDQPSMI.js} +55 -50
  183. package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-PCVCML2X.js} +29 -15
  184. package/chunks/{workflow-OB3AND7I.js → workflow-ANJ4FYBK.js} +32 -30
  185. package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-462QQKQM.js} +32 -29
  186. package/chunks/workspace-service-VTG4G6CW.js +75 -0
  187. package/chunks/{write-file-SEXBNDZM.js → write-file-3P3WMQQW.js} +63 -27
  188. package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
  189. package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
  190. package/cli-entry.js +20 -9
  191. package/cli.js +6 -6
  192. package/locales/ca.js +2 -0
  193. package/locales/de.js +2 -0
  194. package/locales/en.js +14 -0
  195. package/locales/fr.js +2 -0
  196. package/locales/ja.js +1 -0
  197. package/locales/pt.js +2 -0
  198. package/locales/ru.js +2 -0
  199. package/locales/zh-TW.js +12 -0
  200. package/locales/zh.js +12 -0
  201. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
  202. package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
  203. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
  204. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
  205. package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
  206. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
  207. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
  208. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
  209. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
  210. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
  211. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
  212. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
  213. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
  214. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
  215. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
  216. package/node_modules/@qwen-code/audio-capture/package.json +30 -0
  217. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  218. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  219. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  220. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  221. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  222. package/package.json +18 -6
  223. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  224. package/postinstall.js +50 -0
  225. package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DIemsO_F.js} +1 -1
  226. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-CTlUvIQv.js} +1 -1
  227. package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-DG0jmIZK.js} +1 -1
  228. package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-WljDBi55.js} +1 -1
  229. package/web-shell/assets/channel-CbzRbdpA.js +1 -0
  230. package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-8nc6onr2.js} +1 -1
  231. package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-EopXix8Z.js} +1 -1
  232. package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-BE4Jz3N3.js} +1 -1
  233. package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-C_eErgDN.js} +1 -1
  234. package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-DFtVW-Is.js} +1 -1
  235. package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CJPyxIg9.js} +1 -1
  236. package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-Bk-xgj6M.js} +1 -1
  237. package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-p3Y4yaFB.js} +1 -1
  238. package/web-shell/assets/classDiagram-4FO5ZUOK-BFdyQ52h.js +1 -0
  239. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BFdyQ52h.js +1 -0
  240. package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BCMO6Js3.js} +1 -1
  241. package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-DUMrwASf.js} +1 -1
  242. package/web-shell/assets/default-aEtf0G7-.svg +1 -0
  243. package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-C5d7qJbL.js} +1 -1
  244. package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-CjLzMhbT.js} +1 -1
  245. package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-RCoNWeAm.js} +1 -1
  246. package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-KThXjaNV.js} +1 -1
  247. package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DKsC2BWz.js} +1 -1
  248. package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-DJ2ukmq0.js} +1 -1
  249. package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-zzqaARRX.js} +1 -1
  250. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-kFUg-gqT.js} +1 -1
  251. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-C6JnMVzD.js} +1 -1
  252. package/web-shell/assets/index-B3XUm7dw.js +713 -0
  253. package/web-shell/assets/index-CHmzAWys.css +5 -0
  254. package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-XqPVhp89.js} +1 -1
  255. package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
  256. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D2k8sGpf.js} +1 -1
  257. package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CQEST1GE.js} +1 -1
  258. package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DZ7kqVBC.js} +1 -1
  259. package/web-shell/assets/{linear-DGGM2kcP.js → linear-B6C_6q_E.js} +1 -1
  260. package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CsyNP1qt.js} +5 -5
  261. package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-B1VDIzJq.js} +1 -1
  262. package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-DN0E7Jwu.js} +1 -1
  263. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-UKTQdHKm.js} +1 -1
  264. package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
  265. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-BRGceQvN.js} +1 -1
  266. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-2DDyu41v.js} +1 -1
  267. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-CT5iE8ZU.js} +1 -1
  268. package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CqMQ_s4G.js} +1 -1
  269. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CamhV5pM.js +1 -0
  270. package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Di37QSZU.js} +1 -1
  271. package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DCXvpz5S.js} +1 -1
  272. package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-CpUCk6OX.js} +1 -1
  273. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-D01pVEBg.js} +1 -1
  274. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-DOu5JDoz.js} +1 -1
  275. package/web-shell/index.html +2 -2
  276. package/chunks/chunk-B6HQGTYR.js +0 -410
  277. package/chunks/chunk-R2BXK7SX.js +0 -13
  278. package/chunks/chunk-RKIZXJMB.js +0 -13
  279. package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
  280. package/chunks/workspace-service-OM5D4OI2.js +0 -60
  281. package/web-shell/assets/channel-DYPNiTww.js +0 -1
  282. package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
  283. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
  284. package/web-shell/assets/index-CpOXWDPh.js +0 -714
  285. package/web-shell/assets/index-oVK7qhre.css +0 -5
  286. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
@@ -3,30 +3,30 @@
3
3
  import {
4
4
  handleAtCommand,
5
5
  resolveAtCommandQuery
6
- } from "./chunk-B6HQGTYR.js";
6
+ } from "./chunk-7UNP2XM7.js";
7
7
  import {
8
8
  isAtCommand,
9
9
  isBtwCommand,
10
10
  isSlashCommand,
11
11
  normalizePartList,
12
12
  recordGoalStatusItem
13
- } from "./chunk-2TJ3YN6Q.js";
13
+ } from "./chunk-2RJA6J57.js";
14
14
  import {
15
15
  SHELL_COMMAND_NAME,
16
16
  useSessionStats
17
- } from "./chunk-4W4T77MO.js";
17
+ } from "./chunk-BXVWV4GI.js";
18
18
  import {
19
19
  require_react
20
20
  } from "./chunk-KYMBIKIW.js";
21
21
  import {
22
22
  themeManager
23
- } from "./chunk-TMBPDHXD.js";
23
+ } from "./chunk-I4H7PRWQ.js";
24
24
  import {
25
25
  formatMemoryUsage
26
26
  } from "./chunk-KHDZHZMH.js";
27
27
  import {
28
28
  t
29
- } from "./chunk-5JZLXFPD.js";
29
+ } from "./chunk-MTHMXSNT.js";
30
30
  import {
31
31
  CoreToolScheduler,
32
32
  ShellExecutionService,
@@ -34,17 +34,19 @@ import {
34
34
  clearActiveGoal,
35
35
  compactToolResultDisplayForHistory,
36
36
  createDuplicateProviderToolCallResponse,
37
+ findRepeatedDuplicateProviderToolCall,
37
38
  generateToolUseSummary,
38
39
  getActiveGoal,
39
40
  hasImageParts,
40
41
  isBinary,
42
+ markDuplicateProviderToolCallResponseSent,
41
43
  parseAndFormatApiError,
42
44
  promptIdContext,
43
45
  runVisionBridge,
44
46
  setActiveGoal,
45
47
  shouldRunVisionBridge,
46
48
  splitImageParts
47
- } from "./chunk-PXFFKNCO.js";
49
+ } from "./chunk-RIP623NO.js";
48
50
  import {
49
51
  ApiCancelEvent,
50
52
  ConversationFinishedEvent,
@@ -54,17 +56,17 @@ import {
54
56
  logConversationFinishedEvent,
55
57
  logUserPrompt,
56
58
  logUserRetry
57
- } from "./chunk-WA5OJGFL.js";
59
+ } from "./chunk-SS6WJMQK.js";
58
60
  import {
59
61
  isAnyAutoMemPath
60
- } from "./chunk-BNXANYLH.js";
62
+ } from "./chunk-RD6YJJJ6.js";
61
63
  import {
62
64
  ToolNames
63
- } from "./chunk-TOEGRAVX.js";
65
+ } from "./chunk-BX5YO7UW.js";
64
66
  import {
65
67
  getUnsupportedImageFormatWarning,
66
68
  isSupportedImageMimeType
67
- } from "./chunk-F6XNTYNE.js";
69
+ } from "./chunk-YTFBURQD.js";
68
70
  import {
69
71
  FinishReason
70
72
  } from "./chunk-55ZMG67I.js";
@@ -73,7 +75,7 @@ import {
73
75
  createDebugLogger,
74
76
  getErrorMessage,
75
77
  isNodeError
76
- } from "./chunk-C4K3FEQ2.js";
78
+ } from "./chunk-UX4SGCGN.js";
77
79
  import {
78
80
  init_esbuild_shims
79
81
  } from "./chunk-A4BMJM77.js";
@@ -744,32 +746,20 @@ import process from "node:process";
744
746
  var debugLogger3 = createDebugLogger("GEMINI_STREAM");
745
747
  var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MS = 1e4;
746
748
  var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MESSAGE = "Mid-turn @ command resolution timed out";
747
- var VISION_BRIDGE_TRANSCRIPT_NOTICE_LIMIT = 2048;
748
- var TERMINAL_CONTROL_CHARS = /[\u0000-\u0008\u000B-\u001F\u007F-\u009F]/g;
749
- function truncateVisionBridgeTranscript(transcript) {
750
- const safe = transcript.replace(TERMINAL_CONTROL_CHARS, "");
751
- if (safe.length <= VISION_BRIDGE_TRANSCRIPT_NOTICE_LIMIT) {
752
- return safe;
753
- }
754
- return `${safe.slice(0, VISION_BRIDGE_TRANSCRIPT_NOTICE_LIMIT).trimEnd()}
755
- [Transcript truncated]`;
756
- }
757
- __name(truncateVisionBridgeTranscript, "truncateVisionBridgeTranscript");
758
749
  function formatVisionBridgeNotice(result) {
759
750
  const modelName = result.modelId ?? "vision model";
760
751
  const target = result.modelEndpoint ? `${modelName} (${result.modelEndpoint})` : modelName;
761
752
  const egressNote = result.egressOccurred ? ` Your image and prompt/context were sent to ${target}.` : "";
762
753
  if (result.status === "failed") {
763
754
  const reason = result.egressOccurred ? "the vision model request failed" : "the vision bridge could not run";
764
- return `\u26A0 Vision bridge (${modelName}) failed: ${reason}.${egressNote} The image was not interpreted.`;
755
+ return `Vision bridge (${modelName}) failed: ${reason}.${egressNote} The image was not interpreted.`;
765
756
  }
766
757
  if (result.status === "skipped") {
767
- return `\u{1F50E} Vision bridge cancelled.${egressNote}`;
758
+ return `Vision bridge cancelled.${egressNote}`;
768
759
  }
769
760
  const omitted = result.omittedCount > 0 ? ` (${result.omittedCount} image(s) omitted)` : "";
770
- const header = `\u{1F50E} Converted ${result.convertedCount} image(s)${omitted} to text via ${target}. Your image and prompt/context were sent to that model.`;
771
- return result.transcript ? `${header}
772
- ${truncateVisionBridgeTranscript(result.transcript)}` : header;
761
+ const header = `Converted ${result.convertedCount} image(s)${omitted} to text via ${target}. Your image and prompt/context were sent to that model.`;
762
+ return header;
773
763
  }
774
764
  __name(formatVisionBridgeNotice, "formatVisionBridgeNotice");
775
765
  function extractLastAssistantText(history) {
@@ -956,6 +946,9 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
956
946
  const submitPromptOnCompleteRef = (0, import_react5.useRef)(null);
957
947
  const modelOverrideRef = (0, import_react5.useRef)(void 0);
958
948
  const handledProviderToolCallIdsRef = (0, import_react5.useRef)(/* @__PURE__ */ new Set());
949
+ const duplicateProviderToolCallResponseIdsRef = (0, import_react5.useRef)(
950
+ /* @__PURE__ */ new Set()
951
+ );
959
952
  const pendingDuplicateToolResponsesRef = (0, import_react5.useRef)([]);
960
953
  const immediateDuplicateToolResponsesRef = (0, import_react5.useRef)(null);
961
954
  const streamingResponseLengthRef = (0, import_react5.useRef)(0);
@@ -1129,6 +1122,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1129
1122
  turnCancelledRef.current = true;
1130
1123
  isSubmittingQueryRef.current = false;
1131
1124
  abortControllerRef.current?.abort();
1125
+ const loopWakeupsCancelled = config.getCronScheduler()?.cancelAllWakeups() ?? 0;
1132
1126
  for (const ac of auxiliaryAbortRefsRef.current) {
1133
1127
  ac.abort();
1134
1128
  }
@@ -1138,7 +1132,8 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1138
1132
  const cancellationEvent = new ApiCancelEvent(
1139
1133
  config.getModel(),
1140
1134
  prompt_id,
1141
- config.getContentGeneratorConfig()?.authType
1135
+ config.getContentGeneratorConfig()?.authType,
1136
+ loopWakeupsCancelled > 0 ? loopWakeupsCancelled : void 0
1142
1137
  );
1143
1138
  logApiCancel(config, cancellationEvent);
1144
1139
  if (pendingHistoryItemRef.current) {
@@ -1151,6 +1146,15 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1151
1146
  },
1152
1147
  Date.now()
1153
1148
  );
1149
+ if (loopWakeupsCancelled > 0) {
1150
+ addItem(
1151
+ {
1152
+ type: "info" /* INFO */,
1153
+ text: `Stopped the self-paced loop: cancelled ${loopWakeupsCancelled} pending wakeup${loopWakeupsCancelled === 1 ? "" : "s"}.`
1154
+ },
1155
+ Date.now()
1156
+ );
1157
+ }
1154
1158
  setPendingHistoryItem(null);
1155
1159
  clearRetryCountdown();
1156
1160
  try {
@@ -1188,7 +1192,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1188
1192
  if (bridgeResult.status !== "skipped" || bridgeResult.egressOccurred) {
1189
1193
  addItem(
1190
1194
  {
1191
- type: bridgeResult.status === "failed" ? "error" /* ERROR */ : "info" /* INFO */,
1195
+ type: bridgeResult.status === "failed" ? "error" /* ERROR */ : "vision_notice" /* VISION_NOTICE */,
1192
1196
  text: formatVisionBridgeNotice(bridgeResult)
1193
1197
  },
1194
1198
  timestamp
@@ -1427,6 +1431,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1427
1431
  if (newThoughtBuffer.trim().length === 0) {
1428
1432
  return newThoughtBuffer;
1429
1433
  }
1434
+ streamingResponseLengthRef.current += thoughtText.length;
1430
1435
  const startingNewThought = currentThoughtBuffer.trim().length === 0;
1431
1436
  const description = startingNewThought ? stripLeadingBlankLines(newThoughtBuffer) : thoughtText;
1432
1437
  if (startingNewThought) {
@@ -1991,6 +1996,23 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1991
1996
  const duplicateResponseParts = [];
1992
1997
  let duplicatePromptId;
1993
1998
  const historyCallIdsWithResponse = geminiClient ? geminiClient.getHistoryFunctionResponseIds() : /* @__PURE__ */ new Set();
1999
+ const handledProviderIds = /* @__PURE__ */ new Set([
2000
+ ...handledProviderToolCallIdsRef.current,
2001
+ ...historyCallIdsWithResponse
2002
+ ]);
2003
+ const repeatedDuplicateRequest = findRepeatedDuplicateProviderToolCall(
2004
+ toolCallRequests,
2005
+ (request) => request.providerCallId,
2006
+ handledProviderIds,
2007
+ duplicateProviderToolCallResponseIdsRef.current
2008
+ );
2009
+ if (repeatedDuplicateRequest?.providerCallId) {
2010
+ debugLogger3.debug(
2011
+ `[processGeminiStreamEvents] Dropping batch after repeated duplicate provider tool-call id: ${repeatedDuplicateRequest.providerCallId} (tool: ${repeatedDuplicateRequest.name})`
2012
+ );
2013
+ loopDetectedRef.current = true;
2014
+ return 0 /* Completed */;
2015
+ }
1994
2016
  for (const request of toolCallRequests) {
1995
2017
  const providerCallId = request.providerCallId;
1996
2018
  if (!providerCallId) {
@@ -1998,6 +2020,10 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
1998
2020
  continue;
1999
2021
  }
2000
2022
  if (handledProviderToolCallIdsRef.current.has(providerCallId) || historyCallIdsWithResponse.has(providerCallId)) {
2023
+ markDuplicateProviderToolCallResponseSent(
2024
+ providerCallId,
2025
+ duplicateProviderToolCallResponseIdsRef.current
2026
+ );
2001
2027
  const response = createDuplicateProviderToolCallResponse(request);
2002
2028
  debugLogger3.debug(
2003
2029
  `[processGeminiStreamEvents] Suppressing duplicate provider tool-call id: ${providerCallId} (tool: ${request.name})`
@@ -2073,6 +2099,7 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
2073
2099
  lastTurnUserItemRef.current = null;
2074
2100
  turnSawContentEventRef.current = false;
2075
2101
  handledProviderToolCallIdsRef.current.clear();
2102
+ duplicateProviderToolCallResponseIdsRef.current.clear();
2076
2103
  pendingDuplicateToolResponsesRef.current = [];
2077
2104
  immediateDuplicateToolResponsesRef.current = null;
2078
2105
  }
@@ -60,7 +60,7 @@ async function runExitCleanup(options = {}) {
60
60
  }
61
61
  __name(runExitCleanup, "runExitCleanup");
62
62
  async function cleanupCheckpoints() {
63
- const { Storage } = await import("./src-4F6FBZFI.js");
63
+ const { Storage } = await import("./src-IU5GDBEH.js");
64
64
  const storage = new Storage(process.cwd());
65
65
  const tempDir = storage.getProjectTempDir();
66
66
  const checkpointsDir = join(tempDir, "checkpoints");
@@ -0,0 +1,313 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-A4BMJM77.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/core/src/core/tokenLimits.ts
11
+ init_esbuild_shims();
12
+ var DEFAULT_TOKEN_LIMIT = 131072;
13
+ var DEFAULT_OUTPUT_TOKEN_LIMIT = 32e3;
14
+ var ESCALATED_MAX_TOKENS = 64e3;
15
+ function parsePositiveIntegerEnvValue(raw) {
16
+ if (raw === void 0) return void 0;
17
+ const trimmed = raw.trim();
18
+ if (!/^\d+$/.test(trimmed)) return void 0;
19
+ const parsed = Number(trimmed);
20
+ if (!Number.isSafeInteger(parsed) || parsed <= 0) return void 0;
21
+ return parsed;
22
+ }
23
+ __name(parsePositiveIntegerEnvValue, "parsePositiveIntegerEnvValue");
24
+ var LIMITS = {
25
+ "32k": 32768,
26
+ "64k": 65536,
27
+ "128k": 131072,
28
+ "192k": 196608,
29
+ // MiniMax-M2.5 context window
30
+ "200k": 2e5,
31
+ // vendor-declared decimal, used by OpenAI, Anthropic, etc.
32
+ "256k": 262144,
33
+ "272k": 272e3,
34
+ // vendor-declared decimal, GPT-5.x input (400K total - 128K output)
35
+ "384k": 384e3,
36
+ // vendor-declared decimal, DeepSeek V4 max output
37
+ "400k": 4e5,
38
+ // vendor-declared decimal, used by OpenAI GPT-5.x
39
+ "512k": 524288,
40
+ "1m": 1e6,
41
+ // Output token limits (typically much smaller than input limits)
42
+ "4k": 4096,
43
+ "8k": 8192,
44
+ "16k": 16384
45
+ };
46
+ function normalize(model) {
47
+ let s = (model ?? "").toLowerCase().trim();
48
+ s = s.replace(/^.*\//, "");
49
+ s = s.split("|").pop() ?? s;
50
+ s = s.split(":").pop() ?? s;
51
+ s = s.replace(/\s+/g, "-");
52
+ s = s.replace(/-preview/g, "");
53
+ if (!s.match(/^qwen-(?:plus|flash|vl-max)-latest$/) && !s.match(/^kimi-k2-\d{4}$/)) {
54
+ s = s.replace(
55
+ /-(?:\d{4,}|\d+x\d+b|v\d+(?:\.\d+)*|(?<=-[^-]+-)\d+(?:\.\d+)+|latest|exp)$/g,
56
+ ""
57
+ );
58
+ }
59
+ s = s.replace(/-(?:\d?bit|int[48]|bf16|fp16|q[45]|quantized)$/g, "");
60
+ return s;
61
+ }
62
+ __name(normalize, "normalize");
63
+ var PATTERNS = [
64
+ // -------------------
65
+ // Google Gemini
66
+ // -------------------
67
+ [/^gemini-3/, LIMITS["1m"]],
68
+ // Gemini 3.x (Pro, Flash, 3.1, etc.): 1M
69
+ [/^gemini-/, LIMITS["1m"]],
70
+ // Gemini fallback (1.5, 2.x): 1M
71
+ // -------------------
72
+ // OpenAI
73
+ // -------------------
74
+ [/^gpt-5/, LIMITS["272k"]],
75
+ // GPT-5.x: 272K input (400K total - 128K output)
76
+ [/^gpt-/, LIMITS["128k"]],
77
+ // GPT fallback (4o, 4.1, etc.): 128K
78
+ [/^o\d/, LIMITS["200k"]],
79
+ // o-series (o3, o4-mini, etc.): 200K
80
+ // -------------------
81
+ // Anthropic Claude
82
+ // -------------------
83
+ [/^claude-/, LIMITS["200k"]],
84
+ // All Claude models: 200K
85
+ // -------------------
86
+ // Alibaba / Qwen
87
+ // -------------------
88
+ // Commercial API models (1,000,000 context)
89
+ [/^qwen3-coder-plus/, LIMITS["1m"]],
90
+ [/^qwen3-coder-flash/, LIMITS["1m"]],
91
+ [/^qwen3\.\d/, LIMITS["1m"]],
92
+ [/^qwen-plus-latest$/, LIMITS["1m"]],
93
+ [/^qwen-flash-latest$/, LIMITS["1m"]],
94
+ [/^coder-model$/, LIMITS["1m"]],
95
+ // Commercial API models (256K context)
96
+ [/^qwen3-max/, LIMITS["256k"]],
97
+ // Open-source Qwen3 variants: 256K native
98
+ [/^qwen3-coder-/, LIMITS["256k"]],
99
+ // Qwen fallback (VL, turbo, plus, 2.5, etc.): 128K
100
+ [/^qwen/, LIMITS["256k"]],
101
+ // -------------------
102
+ // DeepSeek
103
+ // -------------------
104
+ [/^deepseek-v4/, LIMITS["1m"]],
105
+ // DeepSeek V4 (flash, pro): 1M
106
+ [/^deepseek/, LIMITS["128k"]],
107
+ // -------------------
108
+ // Zhipu GLM
109
+ // -------------------
110
+ // 1M context is the forward default for new GLM releases (GLM-5.2+, GLM-6.x,
111
+ // and beyond) so they need no future code change. Confirmed 200K families
112
+ // (GLM-5 / 5.0 / 5.1, GLM-4.x and older) are pinned explicitly first.
113
+ [/^glm-5(\.[01])?(-|$)/, 202752],
114
+ // GLM-5 / 5.0 / 5.1: 200K
115
+ [/^glm-(?:[5-9]|\d{2,})/, LIMITS["1m"]],
116
+ // GLM-5.2+, 6.x..9.x, 10.x+: 1M
117
+ [/^glm-/, 202752],
118
+ // GLM <=4.x / non-numeric fallback: 200K
119
+ // -------------------
120
+ // MiniMax
121
+ // -------------------
122
+ [/^minimax-m3/i, LIMITS["1m"]],
123
+ // MiniMax-M3: 1,000,000
124
+ [/^minimax-m2\.5/i, LIMITS["192k"]],
125
+ // MiniMax-M2.5: 196,608
126
+ [/^minimax-/i, LIMITS["200k"]],
127
+ // MiniMax fallback: 200K
128
+ // -------------------
129
+ // Moonshot / Kimi
130
+ // -------------------
131
+ [/^kimi-/, LIMITS["256k"]],
132
+ // Kimi fallback: 256K
133
+ // -------------------
134
+ // ByteDance Seed-OSS (512K)
135
+ // -------------------
136
+ [/^seed-oss/, LIMITS["512k"]]
137
+ ];
138
+ var OUTPUT_PATTERNS = [
139
+ // Google Gemini
140
+ [/^gemini-3/, LIMITS["64k"]],
141
+ // Gemini 3.x: 64K
142
+ [/^gemini-/, LIMITS["8k"]],
143
+ // Gemini fallback: 8K
144
+ // OpenAI
145
+ [/^gpt-5/, LIMITS["128k"]],
146
+ // GPT-5.x: 128K
147
+ [/^gpt-/, LIMITS["16k"]],
148
+ // GPT fallback: 16K
149
+ [/^o\d/, LIMITS["128k"]],
150
+ // o-series: 128K
151
+ // Anthropic Claude
152
+ [/^claude-opus-4-6/, LIMITS["128k"]],
153
+ // Opus 4.6: 128K
154
+ [/^claude-sonnet-4-6/, LIMITS["64k"]],
155
+ // Sonnet 4.6: 64K
156
+ [/^claude-/, LIMITS["64k"]],
157
+ // Claude fallback: 64K
158
+ // Alibaba / Qwen
159
+ [/^qwen3\.\d/, LIMITS["64k"]],
160
+ [/^coder-model$/, LIMITS["64k"]],
161
+ [/^qwen/, LIMITS["32k"]],
162
+ // Qwen fallback (VL, turbo, plus, etc.): 32K
163
+ // DeepSeek
164
+ [/^deepseek-v4/, LIMITS["384k"]],
165
+ // DeepSeek V4 (flash, pro): 384K
166
+ [/^deepseek-reasoner/, LIMITS["64k"]],
167
+ [/^deepseek-r1/, LIMITS["64k"]],
168
+ [/^deepseek-chat/, LIMITS["8k"]],
169
+ // Zhipu GLM
170
+ [/^glm-5(?:\.\d+)?(?:-|$)/, LIMITS["128k"]],
171
+ [/^glm-4\.7/, LIMITS["16k"]],
172
+ // MiniMax
173
+ [/^minimax-m2\.5/i, LIMITS["64k"]],
174
+ // Kimi
175
+ [/^kimi-k2\.5/, LIMITS["32k"]]
176
+ ];
177
+ function findTokenLimit(model, type = "input") {
178
+ const norm = normalize(model);
179
+ const patterns = type === "output" ? OUTPUT_PATTERNS : PATTERNS;
180
+ for (const [regex, limit] of patterns) {
181
+ if (regex.test(norm)) {
182
+ return limit;
183
+ }
184
+ }
185
+ return void 0;
186
+ }
187
+ __name(findTokenLimit, "findTokenLimit");
188
+ function hasExplicitOutputLimit(model) {
189
+ const norm = normalize(model);
190
+ return OUTPUT_PATTERNS.some(([regex]) => regex.test(norm));
191
+ }
192
+ __name(hasExplicitOutputLimit, "hasExplicitOutputLimit");
193
+ function knownTokenLimit(model, type = "input") {
194
+ return findTokenLimit(model, type);
195
+ }
196
+ __name(knownTokenLimit, "knownTokenLimit");
197
+ function tokenLimit(model, type = "input") {
198
+ return knownTokenLimit(model, type) ?? (type === "output" ? DEFAULT_OUTPUT_TOKEN_LIMIT : DEFAULT_TOKEN_LIMIT);
199
+ }
200
+ __name(tokenLimit, "tokenLimit");
201
+
202
+ // packages/core/src/core/openaiContentGenerator/constants.ts
203
+ init_esbuild_shims();
204
+ var DEFAULT_TIMEOUT = 12e4;
205
+ var DEFAULT_STREAM_IDLE_TIMEOUT_MS = 12e4;
206
+ var QWEN_STREAM_IDLE_TIMEOUT_MS_ENV = "QWEN_STREAM_IDLE_TIMEOUT_MS";
207
+ var MAX_STREAM_IDLE_TIMEOUT_MS = 2147483647;
208
+ var DEFAULT_MAX_RETRIES = 3;
209
+ var DEFAULT_OPENAI_BASE_URL = "https://api.openai.com/v1";
210
+ var DEFAULT_DASHSCOPE_BASE_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1";
211
+ var DASHSCOPE_PROXY_BASE_URL = process.env["DASHSCOPE_PROXY_BASE_URL"];
212
+
213
+ // packages/core/src/utils/request-tokenizer/textTokenizer.ts
214
+ init_esbuild_shims();
215
+ var TextTokenizer = class {
216
+ static {
217
+ __name(this, "TextTokenizer");
218
+ }
219
+ /**
220
+ * Calculate tokens for text content
221
+ *
222
+ * @param text - The text to estimate tokens for
223
+ * @returns The estimated token count
224
+ */
225
+ async calculateTokens(text) {
226
+ return this.calculateTokensSync(text);
227
+ }
228
+ /**
229
+ * Calculate tokens for multiple text strings
230
+ *
231
+ * @param texts - Array of text strings to estimate tokens for
232
+ * @returns Array of token counts corresponding to each input text
233
+ */
234
+ async calculateTokensBatch(texts) {
235
+ return texts.map((text) => this.calculateTokensSync(text));
236
+ }
237
+ calculateTokensSync(text) {
238
+ if (!text || text.length === 0) {
239
+ return 0;
240
+ }
241
+ let asciiChars = 0;
242
+ let nonAsciiChars = 0;
243
+ for (let i = 0; i < text.length; i++) {
244
+ const charCode = text.charCodeAt(i);
245
+ if (charCode < 128) {
246
+ asciiChars++;
247
+ } else {
248
+ nonAsciiChars++;
249
+ }
250
+ }
251
+ const tokens = asciiChars / 4 + nonAsciiChars * 1.1;
252
+ return Math.ceil(tokens);
253
+ }
254
+ };
255
+
256
+ // packages/core/src/utils/request-tokenizer/supportedImageFormats.ts
257
+ init_esbuild_shims();
258
+ var SUPPORTED_IMAGE_MIME_TYPES = [
259
+ "image/bmp",
260
+ "image/gif",
261
+ "image/jpeg",
262
+ "image/jpg",
263
+ // Alternative MIME type for JPEG
264
+ "image/png",
265
+ "image/tiff",
266
+ "image/webp",
267
+ "image/heic"
268
+ ];
269
+ function isSupportedImageMimeType(mimeType) {
270
+ return SUPPORTED_IMAGE_MIME_TYPES.includes(
271
+ mimeType
272
+ );
273
+ }
274
+ __name(isSupportedImageMimeType, "isSupportedImageMimeType");
275
+ function getSupportedImageFormatsString() {
276
+ return SUPPORTED_IMAGE_MIME_TYPES.map(
277
+ (type) => type.replace("image/", "").toUpperCase()
278
+ ).join(", ");
279
+ }
280
+ __name(getSupportedImageFormatsString, "getSupportedImageFormatsString");
281
+ function getUnsupportedImageFormatWarning() {
282
+ return `Only the following image formats are supported: ${getSupportedImageFormatsString()}. Other formats may not work as expected.`;
283
+ }
284
+ __name(getUnsupportedImageFormatWarning, "getUnsupportedImageFormatWarning");
285
+
286
+ export {
287
+ DEFAULT_TOKEN_LIMIT,
288
+ DEFAULT_OUTPUT_TOKEN_LIMIT,
289
+ ESCALATED_MAX_TOKENS,
290
+ parsePositiveIntegerEnvValue,
291
+ normalize,
292
+ hasExplicitOutputLimit,
293
+ knownTokenLimit,
294
+ tokenLimit,
295
+ DEFAULT_TIMEOUT,
296
+ DEFAULT_STREAM_IDLE_TIMEOUT_MS,
297
+ QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
298
+ MAX_STREAM_IDLE_TIMEOUT_MS,
299
+ DEFAULT_MAX_RETRIES,
300
+ DEFAULT_OPENAI_BASE_URL,
301
+ DEFAULT_DASHSCOPE_BASE_URL,
302
+ DASHSCOPE_PROXY_BASE_URL,
303
+ TextTokenizer,
304
+ SUPPORTED_IMAGE_MIME_TYPES,
305
+ isSupportedImageMimeType,
306
+ getSupportedImageFormatsString,
307
+ getUnsupportedImageFormatWarning
308
+ };
309
+ /**
310
+ * @license
311
+ * Copyright 2025 Qwen
312
+ * SPDX-License-Identifier: Apache-2.0
313
+ */
@@ -3,10 +3,10 @@
3
3
  import {
4
4
  TextTokenizer,
5
5
  isSupportedImageMimeType
6
- } from "./chunk-F6XNTYNE.js";
6
+ } from "./chunk-YTFBURQD.js";
7
7
  import {
8
8
  createDebugLogger
9
- } from "./chunk-C4K3FEQ2.js";
9
+ } from "./chunk-UX4SGCGN.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-A4BMJM77.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-C4K3FEQ2.js";
5
+ } from "./chunk-UX4SGCGN.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";