@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.
- package/bundled/extension-creator/SKILL.md +357 -0
- package/bundled/loop/SKILL.md +21 -7
- package/bundled/loop/SKILL.test.ts +41 -0
- package/bundled/loop/loop-task-file.test.ts +1064 -0
- package/bundled/loop/loop-task-file.ts +404 -0
- package/bundled/loop/loop-tick-resolver.test.ts +665 -0
- package/bundled/loop/loop-tick-resolver.ts +347 -0
- package/bundled/qc-helper/SKILL.md +26 -19
- package/bundled/qc-helper/docs/configuration/auth.md +11 -11
- package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
- package/bundled/qc-helper/docs/configuration/settings.md +76 -75
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
- package/bundled/qc-helper/docs/features/commands.md +108 -77
- package/bundled/qc-helper/docs/features/hooks.md +6 -1
- package/bundled/qc-helper/docs/features/memory.md +52 -0
- package/bundled/qc-helper/docs/qwen-serve.md +24 -2
- package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
- package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-T5X5MN5Q.js} +29 -27
- package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-P3E3WTOQ.js} +42 -37
- package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QEP6DXFW.js} +864 -175
- package/chunks/{agent-K3ENVYSB.js → agent-UDANDUF7.js} +24 -23
- package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-KYVSZHSO.js} +24 -23
- package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-KWSJAQ7B.js} +33 -12
- package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
- package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
- package/chunks/{bridge-4LV2HBH2.js → bridge-X42LXPTA.js} +31 -30
- package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
- package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
- package/chunks/{chunk-2TJ3YN6Q.js → chunk-2RJA6J57.js} +416 -401
- package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
- package/chunks/{chunk-BGUDAULQ.js → chunk-3CPCDXFR.js} +5 -5
- package/chunks/{chunk-5RVSM6NW.js → chunk-3HUHAQF3.js} +1 -1
- package/chunks/{chunk-D5E5TMYH.js → chunk-3M4W4U5G.js} +16 -2
- package/chunks/{chunk-DBZUXSSV.js → chunk-4X7NIEQJ.js} +3 -3
- package/chunks/chunk-5GOVVXEV.js +73 -0
- package/chunks/{chunk-2BAQ3ACS.js → chunk-5SM4VT6V.js} +405 -5
- package/chunks/{chunk-NYOHZYHM.js → chunk-5XQ4A26L.js} +45 -3
- package/chunks/{chunk-CI5O6SQL.js → chunk-6FKEVYCD.js} +4 -4
- package/chunks/{chunk-ZD3NW5KL.js → chunk-7LM4XHPE.js} +63 -9
- package/chunks/chunk-7UNP2XM7.js +840 -0
- package/chunks/{chunk-OQHQHJRK.js → chunk-ARYCHZ4B.js} +151 -4775
- package/chunks/chunk-BC3C4F3Q.js +40 -0
- package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
- package/chunks/chunk-BMFMJINR.js +45 -0
- package/chunks/chunk-BOJWHRMX.js +11273 -0
- package/chunks/{chunk-CGOMICBE.js → chunk-BSZEQNUA.js} +34 -1
- package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
- package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
- package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
- package/chunks/{chunk-4W4T77MO.js → chunk-BXVWV4GI.js} +109 -6
- package/chunks/{chunk-VQRYPFCV.js → chunk-CYHVPQYT.js} +10 -460
- package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
- package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
- package/chunks/{chunk-F6XNTYNE.js → chunk-E6XQPQXW.js} +30 -307
- package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
- package/chunks/{chunk-EL5IHQON.js → chunk-EWYQFWYF.js} +6 -27
- package/chunks/{chunk-HG6YKEBI.js → chunk-F2DOT6UZ.js} +161 -30
- package/chunks/{chunk-JTYRZODB.js → chunk-FOOIZCWL.js} +16 -7
- package/chunks/{chunk-EX4W6ZYG.js → chunk-G5G4TFZ7.js} +1 -1
- package/chunks/{chunk-EW6C27XX.js → chunk-GEHVIWAT.js} +9 -3
- package/chunks/chunk-HEVBZSXG.js +4923 -0
- package/chunks/chunk-HFQ2XSE7.js +690 -0
- package/chunks/{chunk-PF523XJX.js → chunk-HPGTGMP3.js} +1 -1
- package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
- package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
- package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
- package/chunks/{chunk-TZM5JIAX.js → chunk-JYPQTRA3.js} +10 -7
- package/chunks/chunk-K5XU6E4T.js +167 -0
- package/chunks/{chunk-BS64PXY3.js → chunk-KFVU7ODN.js} +1 -1
- package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
- package/chunks/{chunk-3QFE4OTE.js → chunk-LBW7NW7X.js} +4 -4
- package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
- package/chunks/{chunk-EXMX5YHG.js → chunk-LP5E4YIH.js} +1 -1
- package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
- package/chunks/{chunk-I5T6PIBQ.js → chunk-MBV2CTRL.js} +1010 -925
- package/chunks/{chunk-5JZLXFPD.js → chunk-MTHMXSNT.js} +11 -11
- package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
- package/chunks/chunk-NDOC6M5S.js +481 -0
- package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
- package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
- package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
- package/chunks/{chunk-RS4HRC75.js → chunk-QI2CFVRF.js} +85 -8
- package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
- package/chunks/chunk-QYUE6W3T.js +123 -0
- package/chunks/{chunk-USGMPVOY.js → chunk-R3LHDWF2.js} +21 -12
- package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
- package/chunks/{chunk-PXFFKNCO.js → chunk-RIP623NO.js} +4877 -2469
- package/chunks/{chunk-XKBP7M7A.js → chunk-RYBSUGOR.js} +142 -30
- package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
- package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
- package/chunks/{chunk-5R4SBCX6.js → chunk-SL5MOGQH.js} +3 -3
- package/chunks/chunk-SMXULRAN.js +37 -0
- package/chunks/{chunk-WA5OJGFL.js → chunk-SS6WJMQK.js} +363 -76
- package/chunks/{chunk-UAARVVBI.js → chunk-TNWFHGN6.js} +1 -1
- package/chunks/{chunk-I2RFAW6Q.js → chunk-TT6Q3EN4.js} +7 -5
- package/chunks/chunk-UAKXW3DN.js +30 -0
- package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
- package/chunks/{chunk-J6AW7O5D.js → chunk-WHDQZHRU.js} +2 -2
- package/chunks/{chunk-WGAEWQTF.js → chunk-WN6K47NR.js} +1 -2
- package/chunks/{chunk-UAARJR2G.js → chunk-WQT5SOI6.js} +2 -2
- package/chunks/{chunk-VYFMN7C6.js → chunk-WUMVIRTN.js} +225 -37
- package/chunks/{chunk-R36VMVEP.js → chunk-XJMKOTVV.js} +5 -5
- package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
- package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
- package/chunks/{chunk-LLFFKXZZ.js → chunk-YALKC62D.js} +56 -29
- package/chunks/{chunk-GYZQA2FO.js → chunk-YLZJCUH6.js} +1 -1
- package/chunks/chunk-YTFBURQD.js +313 -0
- package/chunks/{chunk-KBXLIVWQ.js → chunk-ZFPRYHWR.js} +2 -2
- package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
- package/chunks/{computer-use-6BBRNT6S.js → computer-use-LF2S6LUZ.js} +103 -49
- package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-VPX5UG55.js} +26 -25
- package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
- package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
- package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
- package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-5JAWZS4V.js} +34 -34
- package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
- package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
- package/chunks/{dist-OD2FY543.js → dist-O3H4PABL.js} +2 -2
- package/chunks/{dist-BOOH5JWN.js → dist-SCAAUWPS.js} +18 -4
- package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
- package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
- package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-7FRQMU4P.js} +25 -24
- package/chunks/{edit-7J6WXARF.js → edit-REKJDIRL.js} +68 -27
- package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
- package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-GBKUDCD3.js} +24 -23
- package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-WB3Y4FGT.js} +24 -23
- package/chunks/{errors-6G2JYR54.js → errors-2XJDYO3M.js} +26 -25
- package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-KKC7O2ZV.js} +24 -23
- package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-7HMS3TF7.js} +24 -23
- package/chunks/{fast-path-35JJFS3C.js → fast-path-XVNIYWGG.js} +4 -4
- package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
- package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
- package/chunks/{gemini-NDTG7WAX.js → gemini-U5TPU3IQ.js} +210 -104
- package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-ZVWRHXOO.js} +4 -4
- package/chunks/{glob-SJ2JBZK4.js → glob-FEJWIH2W.js} +24 -23
- package/chunks/{grep-BRMWFEWR.js → grep-KMP25IIA.js} +24 -23
- package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-5DEDET4M.js} +24 -23
- package/chunks/{initializer-P5AXF7PV.js → initializer-FJTACLOH.js} +31 -28
- package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
- package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
- package/chunks/{list-6COK34BP.js → list-SCQXYJUW.js} +32 -29
- package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-P6KPNAG7.js} +30 -27
- package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-FYEQEJUA.js} +7 -7
- package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
- package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
- package/chunks/{monitor-DH7KFSJV.js → monitor-JU3HHHVY.js} +24 -23
- package/chunks/nonInteractiveCli-IZEKUHU3.js +100 -0
- package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-YHY3Z2QQ.js} +52 -23
- package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-4WUVA3Q2.js} +13 -12
- package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
- package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-MVYYR44B.js} +26 -25
- package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-6HNGHALT.js} +5 -4
- package/chunks/{read-file-767G23OY.js → read-file-NABEO2X4.js} +8 -8
- package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
- package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-YXLK6UTX.js} +24 -23
- package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
- package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-4B5QBMLQ.js} +144 -41
- package/chunks/{scheduler-UNTFDQLG.js → scheduler-XAKIYBDL.js} +24 -23
- package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
- package/chunks/{serve-KZ56QB5S.js → serve-4RXVLUKD.js} +30 -28
- package/chunks/{server-BV5TZUMU.js → server-7PA5QGIA.js} +11037 -8747
- package/chunks/{session-OIBXFSGD.js → session-WNVWRYAH.js} +194 -57
- package/chunks/{settings-WJTCBIRA.js → settings-YJH32TFF.js} +30 -27
- package/chunks/{shell-WC52IBHW.js → shell-YFLABOS5.js} +24 -23
- package/chunks/{skill-U7F7JR4M.js → skill-N3J7FUAY.js} +38 -11
- package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-D6WVMFZJ.js} +26 -25
- package/chunks/{src-4F6FBZFI.js → src-IU5GDBEH.js} +88 -28
- package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-QIPQTRT4.js} +2784 -2474
- package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
- package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
- package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
- package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
- package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
- package/chunks/{team-create-3WC7CIIW.js → team-create-TP4CLLM3.js} +24 -23
- package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
- package/chunks/{theme-manager-DICFCT3P.js → theme-manager-N2TBIBZT.js} +25 -24
- package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
- package/chunks/{tool-search-L5K7HLER.js → tool-search-GBBSICYB.js} +101 -16
- package/chunks/trustedFolders-F7TBU5CD.js +76 -0
- package/chunks/types-QX5C3CHJ.js +12 -0
- package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-EQDQPSMI.js} +55 -50
- package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-PCVCML2X.js} +29 -15
- package/chunks/{workflow-OB3AND7I.js → workflow-ANJ4FYBK.js} +32 -30
- package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-462QQKQM.js} +32 -29
- package/chunks/workspace-service-VTG4G6CW.js +75 -0
- package/chunks/{write-file-SEXBNDZM.js → write-file-3P3WMQQW.js} +63 -27
- package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
- package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
- package/cli-entry.js +20 -9
- package/cli.js +6 -6
- package/locales/ca.js +2 -0
- package/locales/de.js +2 -0
- package/locales/en.js +14 -0
- package/locales/fr.js +2 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +2 -0
- package/locales/ru.js +2 -0
- package/locales/zh-TW.js +12 -0
- package/locales/zh.js +12 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
- package/node_modules/@qwen-code/audio-capture/package.json +30 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +18 -6
- package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
- package/postinstall.js +50 -0
- package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DIemsO_F.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-CTlUvIQv.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-DG0jmIZK.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-WljDBi55.js} +1 -1
- package/web-shell/assets/channel-CbzRbdpA.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-8nc6onr2.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-EopXix8Z.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-BE4Jz3N3.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-C_eErgDN.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-DFtVW-Is.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CJPyxIg9.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-Bk-xgj6M.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-p3Y4yaFB.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BFdyQ52h.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BFdyQ52h.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BCMO6Js3.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-DUMrwASf.js} +1 -1
- package/web-shell/assets/default-aEtf0G7-.svg +1 -0
- package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-C5d7qJbL.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-CjLzMhbT.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-RCoNWeAm.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-KThXjaNV.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DKsC2BWz.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-DJ2ukmq0.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-zzqaARRX.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-kFUg-gqT.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-C6JnMVzD.js} +1 -1
- package/web-shell/assets/index-B3XUm7dw.js +713 -0
- package/web-shell/assets/index-CHmzAWys.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-XqPVhp89.js} +1 -1
- package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D2k8sGpf.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CQEST1GE.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DZ7kqVBC.js} +1 -1
- package/web-shell/assets/{linear-DGGM2kcP.js → linear-B6C_6q_E.js} +1 -1
- package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CsyNP1qt.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-B1VDIzJq.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-DN0E7Jwu.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-UKTQdHKm.js} +1 -1
- package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-BRGceQvN.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-2DDyu41v.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-CT5iE8ZU.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CqMQ_s4G.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CamhV5pM.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Di37QSZU.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DCXvpz5S.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-CpUCk6OX.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-D01pVEBg.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-DOu5JDoz.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-B6HQGTYR.js +0 -410
- package/chunks/chunk-R2BXK7SX.js +0 -13
- package/chunks/chunk-RKIZXJMB.js +0 -13
- package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
- package/chunks/workspace-service-OM5D4OI2.js +0 -60
- package/web-shell/assets/channel-DYPNiTww.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
- package/web-shell/assets/index-CpOXWDPh.js +0 -714
- package/web-shell/assets/index-oVK7qhre.css +0 -5
- 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-
|
|
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-
|
|
13
|
+
} from "./chunk-2RJA6J57.js";
|
|
14
14
|
import {
|
|
15
15
|
SHELL_COMMAND_NAME,
|
|
16
16
|
useSessionStats
|
|
17
|
-
} from "./chunk-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
59
|
+
} from "./chunk-SS6WJMQK.js";
|
|
58
60
|
import {
|
|
59
61
|
isAnyAutoMemPath
|
|
60
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-RD6YJJJ6.js";
|
|
61
63
|
import {
|
|
62
64
|
ToolNames
|
|
63
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-BX5YO7UW.js";
|
|
64
66
|
import {
|
|
65
67
|
getUnsupportedImageFormatWarning,
|
|
66
68
|
isSupportedImageMimeType
|
|
67
|
-
} from "./chunk-
|
|
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-
|
|
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
|
|
755
|
+
return `Vision bridge (${modelName}) failed: ${reason}.${egressNote} The image was not interpreted.`;
|
|
765
756
|
}
|
|
766
757
|
if (result.status === "skipped") {
|
|
767
|
-
return
|
|
758
|
+
return `Vision bridge cancelled.${egressNote}`;
|
|
768
759
|
}
|
|
769
760
|
const omitted = result.omittedCount > 0 ? ` (${result.omittedCount} image(s) omitted)` : "";
|
|
770
|
-
const header =
|
|
771
|
-
return
|
|
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 */ : "
|
|
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-
|
|
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-
|
|
6
|
+
} from "./chunk-YTFBURQD.js";
|
|
7
7
|
import {
|
|
8
8
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UX4SGCGN.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-A4BMJM77.js";
|