@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260701.a974594d7
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 +34 -10
- package/bundled/loop/SKILL.test.ts +52 -0
- package/bundled/loop/autonomous-loop.test.ts +59 -0
- package/bundled/loop/autonomous-loop.ts +102 -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 +864 -0
- package/bundled/loop/loop-tick-resolver.ts +416 -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 +77 -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 +53 -1
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/bundled/qc-helper/docs/ide-integration/ide-integration.md +4 -4
- 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-UZHJ73JB.js} +29 -27
- package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-GGUIZWCE.js} +42 -37
- package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QYZFICEZ.js} +1292 -332
- package/chunks/{agent-K3ENVYSB.js → agent-2EN7YNSW.js} +24 -23
- package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-SLTEZ5LV.js} +24 -23
- package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-CA3JTAMO.js} +33 -12
- package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-RM7WINJO.js} +3 -3
- package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-J3P6QAJ7.js} +2 -2
- package/chunks/{bridge-4LV2HBH2.js → bridge-HZVAUTMX.js} +29 -28
- package/chunks/{ca-7WC7ELX6.js → ca-RYOETBUW.js} +10 -9
- package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
- package/chunks/chunk-32MCHZQC.js +73 -0
- package/chunks/{chunk-PXFFKNCO.js → chunk-35FH347N.js} +5308 -2500
- package/chunks/{chunk-5JZLXFPD.js → chunk-3O2BJMFW.js} +11 -11
- package/chunks/{chunk-2JD55C6G.js → chunk-3TK7FSCP.js} +2 -2
- package/chunks/{chunk-USGMPVOY.js → chunk-4722VFFU.js} +19 -10
- package/chunks/chunk-6FIWYVN4.js +4932 -0
- package/chunks/{chunk-I2RFAW6Q.js → chunk-7SP275SH.js} +7 -5
- package/chunks/{chunk-5R4SBCX6.js → chunk-AIBPG5MB.js} +3 -3
- package/chunks/{chunk-C4K3FEQ2.js → chunk-AVQDCKNF.js} +124 -21
- package/chunks/{chunk-OTBK43JR.js → chunk-B236XPGF.js} +1 -1
- package/chunks/{chunk-WA5OJGFL.js → chunk-B5MPZI4K.js} +458 -125
- package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
- package/chunks/{chunk-4W4T77MO.js → chunk-BLAE2TCO.js} +109 -6
- package/chunks/chunk-BMFMJINR.js +45 -0
- package/chunks/{chunk-T2VDEFUU.js → chunk-BZHLWC6T.js} +2 -2
- package/chunks/{chunk-XU5P23GN.js → chunk-CA4ML3VH.js} +3 -3
- package/chunks/{chunk-WGAEWQTF.js → chunk-DBR7PF4B.js} +1 -2
- package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
- package/chunks/{chunk-LLFFKXZZ.js → chunk-DJ25MIU2.js} +167 -43
- package/chunks/{chunk-KBXLIVWQ.js → chunk-DX3TKXNT.js} +2 -2
- package/chunks/{chunk-OIC6S73E.js → chunk-E5I6YSNO.js} +1 -1
- package/chunks/{chunk-TXVGVZYR.js → chunk-ESVSWG6Z.js} +3 -3
- package/chunks/{chunk-EX4W6ZYG.js → chunk-EUURTJY7.js} +1 -1
- package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
- package/chunks/{chunk-F6XNTYNE.js → chunk-FQDMX5IL.js} +30 -307
- package/chunks/{chunk-3QFE4OTE.js → chunk-FR3II765.js} +4 -4
- package/chunks/{chunk-VYFMN7C6.js → chunk-FV4SQ54H.js} +382 -55
- package/chunks/{chunk-ZD3NW5KL.js → chunk-FZY7NH37.js} +63 -9
- package/chunks/{chunk-CI5O6SQL.js → chunk-G525INVW.js} +4 -4
- package/chunks/{chunk-CGOMICBE.js → chunk-GDIG7TMG.js} +34 -1
- package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
- package/chunks/{chunk-TZM5JIAX.js → chunk-GZKQ36JS.js} +10 -7
- package/chunks/{chunk-BS64PXY3.js → chunk-HIYUAXBG.js} +1 -1
- package/chunks/{chunk-TMBPDHXD.js → chunk-HTWHAN44.js} +1 -1
- package/chunks/{chunk-EL5IHQON.js → chunk-HUGAEYZR.js} +6 -27
- package/chunks/{chunk-2BIF2NVV.js → chunk-HWG4XLD7.js} +2 -2
- package/chunks/{chunk-I5T6PIBQ.js → chunk-I4MXURND.js} +1076 -954
- package/chunks/{chunk-JTYRZODB.js → chunk-IBEM64M4.js} +39 -11
- package/chunks/{chunk-XKBP7M7A.js → chunk-IKO44NAT.js} +149 -31
- package/chunks/{chunk-2BAQ3ACS.js → chunk-JERW36RG.js} +404 -4
- package/chunks/{chunk-TOEGRAVX.js → chunk-JV7A66DR.js} +28 -16
- package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
- package/chunks/{chunk-EXMX5YHG.js → chunk-KXVVXAAC.js} +1 -1
- package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
- package/chunks/{chunk-X6EDWN44.js → chunk-LWGLBVWA.js} +1 -1
- package/chunks/{chunk-NYOHZYHM.js → chunk-LXEW6BHF.js} +45 -3
- package/chunks/{chunk-BGUDAULQ.js → chunk-LXGWLOCM.js} +5 -5
- package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
- package/chunks/{chunk-BNXANYLH.js → chunk-MOUXUCXQ.js} +81 -1
- package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
- package/chunks/{chunk-UAARJR2G.js → chunk-N4V4VBP6.js} +2 -2
- package/chunks/chunk-NIOPRZNN.js +27 -0
- package/chunks/{chunk-2TJ3YN6Q.js → chunk-NOYV2NXI.js} +517 -490
- package/chunks/{chunk-PRYMDRBV.js → chunk-NPQWQYU6.js} +1 -1
- package/chunks/{chunk-J6AW7O5D.js → chunk-NVTRORSK.js} +2 -2
- package/chunks/{chunk-PF523XJX.js → chunk-OE5J6UA7.js} +1 -1
- package/chunks/{chunk-RS4HRC75.js → chunk-OEY3YAL2.js} +99 -8
- package/chunks/{chunk-R36VMVEP.js → chunk-PLQTLKMR.js} +5 -5
- package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
- package/chunks/chunk-Q3JOGB4U.js +481 -0
- package/chunks/{chunk-HG6YKEBI.js → chunk-Q7TDHJ2G.js} +192 -30
- package/chunks/{chunk-EW6C27XX.js → chunk-QHHNFG22.js} +9 -3
- package/chunks/chunk-QYUE6W3T.js +123 -0
- package/chunks/{chunk-GZCJS5WH.js → chunk-SJBIFVD2.js} +2 -2
- package/chunks/{chunk-3UALQ56H.js → chunk-T42ACHFI.js} +1 -1
- package/chunks/chunk-T44AF4I6.js +690 -0
- package/chunks/{chunk-DBZUXSSV.js → chunk-TMILTLP3.js} +6 -6
- package/chunks/{chunk-EEEZIVFJ.js → chunk-TOAUDIS7.js} +1 -1
- package/chunks/chunk-UAKXW3DN.js +30 -0
- package/chunks/{chunk-VQRYPFCV.js → chunk-V5YJAUHW.js} +10 -460
- package/chunks/{chunk-D5E5TMYH.js → chunk-VHRREANT.js} +16 -2
- package/chunks/{chunk-5RVSM6NW.js → chunk-VN4CKYUW.js} +1 -1
- package/chunks/chunk-VXGPYF7U.js +37 -0
- package/chunks/{chunk-UAARVVBI.js → chunk-WGY3GIPP.js} +1 -1
- package/chunks/{chunk-GYZQA2FO.js → chunk-WJAY4WXR.js} +1 -1
- package/chunks/chunk-XKSCTXPK.js +167 -0
- package/chunks/chunk-YCEHOJZJ.js +840 -0
- package/chunks/{chunk-BG4BIP7F.js → chunk-YCRTJYSQ.js} +4 -2
- package/chunks/{chunk-CGEGHF2C.js → chunk-YPCPZSZB.js} +1 -1
- package/chunks/chunk-YTFBURQD.js +313 -0
- package/chunks/{chunk-HGNSRCRB.js → chunk-YXK4GPYO.js} +1 -1
- package/chunks/{chunk-OQHQHJRK.js → chunk-Z34RYLRO.js} +151 -4775
- package/chunks/chunk-ZGSV5ORL.js +11273 -0
- package/chunks/{computer-use-6BBRNT6S.js → computer-use-FCNWHVPW.js} +103 -49
- package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-FVFMZZEU.js} +26 -25
- package/chunks/{cron-create-4KQE6YLH.js → cron-create-IY5NMIHQ.js} +4 -4
- package/chunks/{cron-delete-THME66UP.js → cron-delete-OLNEQWKO.js} +6 -6
- package/chunks/{cron-list-7A54SJ5N.js → cron-list-YAUAUV24.js} +5 -5
- package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-42JEXENZ.js} +32 -32
- package/chunks/{de-ACHALDED.js → de-HB5NJXGB.js} +10 -9
- package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
- package/chunks/{dist-OD2FY543.js → dist-K4XZILIO.js} +1 -1
- package/chunks/{dist-BOOH5JWN.js → dist-SU6L7ZNJ.js} +114 -9
- 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-FFFEC6P4.js} +25 -24
- package/chunks/{edit-7J6WXARF.js → edit-32ILSGZY.js} +72 -30
- package/chunks/{en-NCUBOJOY.js → en-U3LWGSFX.js} +19 -9
- package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-XWZKIN6A.js} +24 -23
- package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-LPFFY7BJ.js} +24 -23
- package/chunks/{errors-6G2JYR54.js → errors-UXBPYPI2.js} +26 -25
- package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-IBS4UIU7.js} +24 -23
- package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-JA72YHII.js} +24 -23
- package/chunks/{fast-path-35JJFS3C.js → fast-path-7UU67Y2W.js} +30 -13
- package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
- package/chunks/{fr-GVKZ27MF.js → fr-XY3NQFCM.js} +10 -9
- package/chunks/{gemini-NDTG7WAX.js → gemini-GMVKJNMX.js} +211 -105
- package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-7NIFF2L4.js} +4 -4
- package/chunks/{glob-SJ2JBZK4.js → glob-4NJCW5HI.js} +24 -23
- package/chunks/{grep-BRMWFEWR.js → grep-PAIMLQEL.js} +24 -23
- package/chunks/{initializer-P5AXF7PV.js → initializer-R6KU4VYM.js} +31 -28
- package/chunks/{ja-FKZ2WZ4D.js → ja-J7YAG7SA.js} +10 -9
- package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
- package/chunks/{list-6COK34BP.js → list-H7LXAO64.js} +32 -29
- package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-H27JMTLU.js} +30 -27
- package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-Y3OIRQFM.js} +7 -7
- package/chunks/{ls-BYQY7RVV.js → ls-TVJEYS7O.js} +4 -4
- package/chunks/{lsp-X54RO4IV.js → lsp-JZSDVR3F.js} +2 -2
- package/chunks/{monitor-DH7KFSJV.js → monitor-JSIHDPXP.js} +24 -23
- package/chunks/nonInteractiveCli-Y4CHOETG.js +100 -0
- package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-SHRNL2UM.js} +52 -23
- package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-ORZZ7VFO.js} +13 -12
- package/chunks/{pt-SY5NCFGR.js → pt-6RTAA6SS.js} +10 -9
- package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-H643PL2G.js} +26 -25
- package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-OI2B7PES.js} +5 -4
- package/chunks/{read-file-767G23OY.js → read-file-5PRNPTTY.js} +8 -8
- package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-QTXGKTEV.js} +2 -2
- package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-JIKZMABJ.js} +24 -23
- package/chunks/{ru-FWNXJG4F.js → ru-AUBGJ2C4.js} +10 -9
- package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-PQV7QOHZ.js} +284 -52
- package/chunks/{scheduler-UNTFDQLG.js → scheduler-OS3R5MGU.js} +24 -23
- package/chunks/{send-message-2DAFXEYP.js → send-message-DKGHWSTF.js} +2 -2
- package/chunks/{serve-KZ56QB5S.js → serve-LVYZDKCZ.js} +31 -29
- package/chunks/{server-BV5TZUMU.js → server-P4YIH35I.js} +11458 -8447
- package/chunks/{session-OIBXFSGD.js → session-DE4TZBKH.js} +195 -58
- package/chunks/{settings-WJTCBIRA.js → settings-DFTYMJYF.js} +30 -27
- package/chunks/{shell-WC52IBHW.js → shell-3GNQLNV7.js} +24 -23
- package/chunks/{skill-U7F7JR4M.js → skill-NCNG4KKZ.js} +38 -11
- package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-DHRIMDVL.js} +26 -25
- package/chunks/{src-4F6FBZFI.js → src-PNZYGM3R.js} +104 -28
- package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-P6GZBFQW.js} +2817 -2500
- package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-X7L5HWLN.js} +3 -3
- package/chunks/{task-create-OUYCA553.js → task-create-AWEUI4GI.js} +6 -6
- package/chunks/{task-list-WAX7I2IA.js → task-list-KZ3VJLDU.js} +5 -5
- package/chunks/{task-stop-CAIL6FNH.js → task-stop-GUNOZKJ5.js} +2 -2
- package/chunks/{task-update-AHEO5OUT.js → task-update-Y56GP6DU.js} +6 -6
- package/chunks/{team-create-3WC7CIIW.js → team-create-6JMW3KQK.js} +24 -23
- package/chunks/{team-delete-HGHFG23B.js → team-delete-6AFRGDJY.js} +5 -5
- package/chunks/{theme-manager-DICFCT3P.js → theme-manager-FEHQO22G.js} +25 -24
- package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-JRS6NOEU.js} +4 -4
- package/chunks/{tool-search-L5K7HLER.js → tool-search-IXAEKS7J.js} +101 -16
- package/chunks/trustedFolders-SJRXNHZE.js +76 -0
- package/chunks/types-QX5C3CHJ.js +12 -0
- package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-HCH7OBDH.js} +56 -51
- package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-RELNL37A.js} +29 -15
- package/chunks/{workflow-OB3AND7I.js → workflow-M2COBI7R.js} +38 -32
- package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-GOCWYDMK.js} +32 -29
- package/chunks/workspace-service-34C7SUBU.js +75 -0
- package/chunks/{write-file-SEXBNDZM.js → write-file-E52WRXZL.js} +67 -31
- package/chunks/{zh-RBEGQVQT.js → zh-F5T4WWZO.js} +19 -9
- package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-LKLBTZHE.js} +19 -9
- package/cli-entry.js +20 -9
- package/cli.js +6 -6
- package/locales/ca.js +15 -13
- package/locales/de.js +15 -13
- package/locales/en.js +31 -13
- package/locales/fr.js +16 -14
- package/locales/ja.js +15 -14
- package/locales/pt.js +15 -13
- package/locales/ru.js +15 -13
- package/locales/zh-TW.js +28 -12
- package/locales/zh.js +28 -12
- 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-C2DILvUl.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-b8gZ2cNw.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-BuRpghMj.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-2ItdhFmE.js} +1 -1
- package/web-shell/assets/channel-eRvn2UA3.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-B1QXa0q3.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-DXfhKlNq.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-ClSNjxLo.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-Dsh2wisB.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-C1TkY5AR.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CGtN9XR6.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-BHiPi1SS.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-CzG3I5o1.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-YZNwy1rx.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-YZNwy1rx.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-EgrIoH_K.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-BUnpdX8S.js} +1 -1
- package/web-shell/assets/default-aEtf0G7-.svg +1 -0
- package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-BlLUCVYu.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-FG-enmjQ.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-BlzmTONk.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-CoBQ8mIx.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DvxV6sX8.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-Jq1tpAoj.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-CbtYOry5.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-ZEn2VEKR.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-BZh-LkhJ.js} +1 -1
- package/web-shell/assets/index-5FhE0ORO.css +5 -0
- package/web-shell/assets/index-CDTGmqVm.js +720 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-B9HuZygK.js} +1 -1
- package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D76cNpYG.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-6bGo7P1t.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DuYyRBvB.js} +1 -1
- package/web-shell/assets/{linear-DGGM2kcP.js → linear-CpdSW1BC.js} +1 -1
- package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-s5xbZMMj.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-go01fZ2y.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-BfuZiEHO.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-DsoINqV6.js} +1 -1
- package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-B7FU4LiU.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-BEDjFnGB.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-gzmmL5tK.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-BtHD4IN_.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DFy6gLDd.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-T_8gmMCf.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DdjuqnjO.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-Cgtrvb37.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-BW3f3-yW.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-BUS9IKkc.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-B6HQGTYR.js +0 -410
- package/chunks/chunk-RKIZXJMB.js +0 -13
- package/chunks/headlessSafetyWarnings-LJ6FJX77.js +0 -57
- 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
|
@@ -7,28 +7,28 @@ import {
|
|
|
7
7
|
require_jsx_runtime,
|
|
8
8
|
use_stdin_default,
|
|
9
9
|
use_stdout_default
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-N4V4VBP6.js";
|
|
11
11
|
import {
|
|
12
12
|
require_react
|
|
13
13
|
} from "./chunk-KYMBIKIW.js";
|
|
14
14
|
import {
|
|
15
15
|
sanitizeFilenameForDisplay
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-GDIG7TMG.js";
|
|
17
17
|
import {
|
|
18
18
|
t
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3O2BJMFW.js";
|
|
20
20
|
import {
|
|
21
21
|
fetchGitDiff,
|
|
22
22
|
findProviderByCredentials,
|
|
23
23
|
resolveMetadataKey
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-35FH347N.js";
|
|
25
25
|
import {
|
|
26
26
|
KittySequenceOverflowEvent,
|
|
27
27
|
logKittySequenceOverflow
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-B5MPZI4K.js";
|
|
29
29
|
import {
|
|
30
30
|
createDebugLogger
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-AVQDCKNF.js";
|
|
32
32
|
import {
|
|
33
33
|
init_esbuild_shims
|
|
34
34
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -759,6 +759,7 @@ var useFocus = /* @__PURE__ */ __name(() => {
|
|
|
759
759
|
// packages/cli/src/ui/contexts/KeypressContext.tsx
|
|
760
760
|
var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
|
|
761
761
|
var ESC3 = "\x1B";
|
|
762
|
+
var OPTION_T_COMPOSED_GLYPH = "\u2020";
|
|
762
763
|
var PASTE_MODE_PREFIX = `${ESC3}[200~`;
|
|
763
764
|
var PASTE_MODE_SUFFIX = `${ESC3}[201~`;
|
|
764
765
|
var KITTY_SEQUENCE_TIMEOUT_MS = 200;
|
|
@@ -1529,6 +1530,10 @@ function KeypressProvider({
|
|
|
1529
1530
|
if (key.name === "return" && key.sequence === `${ESC3}\r`) {
|
|
1530
1531
|
key.meta = true;
|
|
1531
1532
|
}
|
|
1533
|
+
if (process.platform === "darwin" && !isPaste && key.sequence === OPTION_T_COMPOSED_GLYPH) {
|
|
1534
|
+
key.name = "t";
|
|
1535
|
+
key.meta = true;
|
|
1536
|
+
}
|
|
1532
1537
|
broadcast({ ...key, paste: isPaste });
|
|
1533
1538
|
}, "handleKeypress");
|
|
1534
1539
|
const clearRawFlushTimeout = /* @__PURE__ */ __name(() => {
|
|
@@ -2036,7 +2041,11 @@ function convertToHistoryItems(conversation, config) {
|
|
|
2036
2041
|
});
|
|
2037
2042
|
currentToolGroup = [];
|
|
2038
2043
|
}
|
|
2039
|
-
items.push({
|
|
2044
|
+
items.push({
|
|
2045
|
+
type: "gemini",
|
|
2046
|
+
text,
|
|
2047
|
+
timestamp: new Date(record.timestamp).getTime()
|
|
2048
|
+
});
|
|
2040
2049
|
}
|
|
2041
2050
|
for (const fc of functionCalls) {
|
|
2042
2051
|
const tool = getTool(config, fc.name);
|
|
@@ -2148,14 +2157,33 @@ function expandCollapsedHistory(items) {
|
|
|
2148
2157
|
return items.filter((item) => item.display?.kind !== "collapse-summary").map(stripSuppressOnRestore);
|
|
2149
2158
|
}
|
|
2150
2159
|
__name(expandCollapsedHistory, "expandCollapsedHistory");
|
|
2151
|
-
function applyCollapsePolicyAndSummary(rawItems, collapseOnResume) {
|
|
2160
|
+
function applyCollapsePolicyAndSummary(rawItems, collapseOnResume, collapsePreviewCount = 0) {
|
|
2152
2161
|
if (!collapseOnResume) return rawItems;
|
|
2153
|
-
|
|
2154
|
-
|
|
2162
|
+
if (collapsePreviewCount === -1) return rawItems;
|
|
2163
|
+
let boundary = rawItems.length;
|
|
2164
|
+
if (collapsePreviewCount > 0) {
|
|
2165
|
+
let userTurnCount = 0;
|
|
2166
|
+
for (let i = rawItems.length - 1; i >= 0; i--) {
|
|
2167
|
+
if (rawItems[i].type === "user" /* USER */) {
|
|
2168
|
+
userTurnCount++;
|
|
2169
|
+
if (userTurnCount === collapsePreviewCount) {
|
|
2170
|
+
boundary = i;
|
|
2171
|
+
break;
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
2174
|
+
}
|
|
2175
|
+
if (userTurnCount < collapsePreviewCount) {
|
|
2176
|
+
boundary = 0;
|
|
2177
|
+
}
|
|
2178
|
+
}
|
|
2179
|
+
const hiddenItems = applyResumeDisplayPolicy(rawItems.slice(0, boundary));
|
|
2180
|
+
const visibleItems = rawItems.slice(boundary);
|
|
2181
|
+
const uiHistoryItems = [...hiddenItems, ...visibleItems];
|
|
2182
|
+
if (boundary > 0) {
|
|
2155
2183
|
const nextId = rawItems[rawItems.length - 1].id + 1;
|
|
2156
2184
|
return [
|
|
2157
2185
|
...uiHistoryItems,
|
|
2158
|
-
{ id: nextId, ...createHistoryCollapseSummaryItem(
|
|
2186
|
+
{ id: nextId, ...createHistoryCollapseSummaryItem(boundary) }
|
|
2159
2187
|
];
|
|
2160
2188
|
}
|
|
2161
2189
|
return uiHistoryItems;
|
|
@@ -4,36 +4,40 @@ import {
|
|
|
4
4
|
OpenAIContentConverter,
|
|
5
5
|
TaggedThinkingParser,
|
|
6
6
|
openaiRequestCaptureContext
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import {
|
|
9
|
-
createChildAbortController
|
|
10
|
-
} from "./chunk-64WXLC72.js";
|
|
7
|
+
} from "./chunk-B5MPZI4K.js";
|
|
11
8
|
import {
|
|
12
9
|
RequestTokenizer
|
|
13
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-DX3TKXNT.js";
|
|
14
11
|
import {
|
|
15
|
-
CAPPED_DEFAULT_MAX_TOKENS,
|
|
16
12
|
DASHSCOPE_PROXY_BASE_URL,
|
|
17
13
|
DEFAULT_DASHSCOPE_BASE_URL,
|
|
18
14
|
DEFAULT_MAX_RETRIES,
|
|
15
|
+
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
19
16
|
DEFAULT_TIMEOUT,
|
|
20
|
-
|
|
17
|
+
MAX_STREAM_IDLE_TIMEOUT_MS,
|
|
18
|
+
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
|
|
21
19
|
hasExplicitOutputLimit,
|
|
22
20
|
parsePositiveIntegerEnvValue,
|
|
23
|
-
redactProxyError,
|
|
24
21
|
tokenLimit
|
|
25
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-YTFBURQD.js";
|
|
26
23
|
import {
|
|
27
24
|
runtimeDiagnostics,
|
|
28
25
|
safeJsonParse
|
|
29
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-YPCPZSZB.js";
|
|
30
27
|
import {
|
|
31
28
|
GenerateContentResponse
|
|
32
29
|
} from "./chunk-55ZMG67I.js";
|
|
30
|
+
import {
|
|
31
|
+
createChildAbortController
|
|
32
|
+
} from "./chunk-64WXLC72.js";
|
|
33
|
+
import {
|
|
34
|
+
buildRuntimeFetchOptions,
|
|
35
|
+
redactProxyError
|
|
36
|
+
} from "./chunk-FQDMX5IL.js";
|
|
33
37
|
import {
|
|
34
38
|
createDebugLogger,
|
|
35
39
|
isAbortError
|
|
36
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-AVQDCKNF.js";
|
|
37
41
|
import {
|
|
38
42
|
init_esbuild_shims
|
|
39
43
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -6995,16 +6999,15 @@ var DefaultOpenAICompatibleProvider = class {
|
|
|
6995
6999
|
* configured value entirely (backend may support larger limits)
|
|
6996
7000
|
* 2. If user didn't configure max_tokens:
|
|
6997
7001
|
* - Check QWEN_CODE_MAX_OUTPUT_TOKENS env var first
|
|
6998
|
-
* - Otherwise use
|
|
6999
|
-
* - Requests hitting the 8K cap get one clean retry at 64K (geminiChat.ts)
|
|
7002
|
+
* - Otherwise use the model's output limit
|
|
7000
7003
|
* 3. If model has no specific limit (tokenLimit returns default):
|
|
7001
|
-
* -
|
|
7004
|
+
* - Use DEFAULT_OUTPUT_TOKEN_LIMIT
|
|
7002
7005
|
*
|
|
7003
7006
|
* Examples:
|
|
7004
7007
|
* - User sets 4K, known model limit 64K → uses 4K (respects user preference)
|
|
7005
7008
|
* - User sets 100K, known model limit 64K → uses 64K (capped to avoid API error)
|
|
7006
7009
|
* - User sets 100K, unknown model → uses 100K (respects user, backend may support it)
|
|
7007
|
-
* - User not set, model limit 64K → uses
|
|
7010
|
+
* - User not set, model limit 64K → uses 64K
|
|
7008
7011
|
* - User not set, model limit 4K → uses 4K (model limit is lower)
|
|
7009
7012
|
* - User not set, env QWEN_CODE_MAX_OUTPUT_TOKENS=16000 -> uses 16K
|
|
7010
7013
|
*
|
|
@@ -7032,7 +7035,7 @@ var DefaultOpenAICompatibleProvider = class {
|
|
|
7032
7035
|
if (envMaxTokens !== void 0) {
|
|
7033
7036
|
effectiveMaxTokens = isKnownModel ? Math.min(envMaxTokens, modelLimit) : envMaxTokens;
|
|
7034
7037
|
} else {
|
|
7035
|
-
effectiveMaxTokens =
|
|
7038
|
+
effectiveMaxTokens = modelLimit;
|
|
7036
7039
|
}
|
|
7037
7040
|
}
|
|
7038
7041
|
return {
|
|
@@ -7229,6 +7232,12 @@ var DashScopeOpenAICompatibleProvider = class _DashScopeOpenAICompatibleProvider
|
|
|
7229
7232
|
getDefaultGenerationConfig() {
|
|
7230
7233
|
return {};
|
|
7231
7234
|
}
|
|
7235
|
+
getResponseParsingOptions(model) {
|
|
7236
|
+
if (this.isGlmModel(model ?? this.contentGeneratorConfig.model)) {
|
|
7237
|
+
return { taggedThinkingTags: true };
|
|
7238
|
+
}
|
|
7239
|
+
return {};
|
|
7240
|
+
}
|
|
7232
7241
|
/**
|
|
7233
7242
|
* Add cache control flag to specified message(s) for DashScope providers
|
|
7234
7243
|
*/
|
|
@@ -7995,6 +8004,7 @@ var StreamingToolCallParser = class {
|
|
|
7995
8004
|
};
|
|
7996
8005
|
|
|
7997
8006
|
// packages/core/src/core/openaiContentGenerator/pipeline.ts
|
|
8007
|
+
var debugLogger3 = createDebugLogger("OPENAI_PIPELINE");
|
|
7998
8008
|
var StreamContentError = class extends Error {
|
|
7999
8009
|
static {
|
|
8000
8010
|
__name(this, "StreamContentError");
|
|
@@ -8004,17 +8014,114 @@ var StreamContentError = class extends Error {
|
|
|
8004
8014
|
this.name = "StreamContentError";
|
|
8005
8015
|
}
|
|
8006
8016
|
};
|
|
8017
|
+
var StreamInactivityTimeoutError = class extends Error {
|
|
8018
|
+
constructor(idleMs, chunksReceived, streamLifetimeMs) {
|
|
8019
|
+
super(
|
|
8020
|
+
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms)`
|
|
8021
|
+
);
|
|
8022
|
+
this.idleMs = idleMs;
|
|
8023
|
+
this.chunksReceived = chunksReceived;
|
|
8024
|
+
this.streamLifetimeMs = streamLifetimeMs;
|
|
8025
|
+
this.name = "StreamInactivityTimeoutError";
|
|
8026
|
+
}
|
|
8027
|
+
static {
|
|
8028
|
+
__name(this, "StreamInactivityTimeoutError");
|
|
8029
|
+
}
|
|
8030
|
+
code = "ETIMEDOUT";
|
|
8031
|
+
};
|
|
8032
|
+
function resolveStreamIdleTimeoutMs(config) {
|
|
8033
|
+
const fromConfig = config.streamIdleTimeoutMs;
|
|
8034
|
+
if (typeof fromConfig === "number") {
|
|
8035
|
+
if (Number.isInteger(fromConfig) && fromConfig <= MAX_STREAM_IDLE_TIMEOUT_MS) {
|
|
8036
|
+
return fromConfig;
|
|
8037
|
+
}
|
|
8038
|
+
console.warn(
|
|
8039
|
+
`[qwen-code] Ignoring out-of-range streamIdleTimeoutMs=${fromConfig} (expected an integer in (-\u221E, ${MAX_STREAM_IDLE_TIMEOUT_MS}]); falling back to ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV}/default.`
|
|
8040
|
+
);
|
|
8041
|
+
}
|
|
8042
|
+
const raw = process.env[QWEN_STREAM_IDLE_TIMEOUT_MS_ENV];
|
|
8043
|
+
const trimmed = raw?.trim();
|
|
8044
|
+
if (trimmed) {
|
|
8045
|
+
if (/^\d+$/.test(trimmed)) {
|
|
8046
|
+
const parsed = Number(trimmed);
|
|
8047
|
+
if (parsed <= MAX_STREAM_IDLE_TIMEOUT_MS) {
|
|
8048
|
+
return parsed;
|
|
8049
|
+
}
|
|
8050
|
+
}
|
|
8051
|
+
console.warn(
|
|
8052
|
+
`[qwen-code] Ignoring invalid ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV}="${raw}" (expected an integer of milliseconds in [0, ${MAX_STREAM_IDLE_TIMEOUT_MS}]); using default ${DEFAULT_STREAM_IDLE_TIMEOUT_MS}ms.`
|
|
8053
|
+
);
|
|
8054
|
+
}
|
|
8055
|
+
return DEFAULT_STREAM_IDLE_TIMEOUT_MS;
|
|
8056
|
+
}
|
|
8057
|
+
__name(resolveStreamIdleTimeoutMs, "resolveStreamIdleTimeoutMs");
|
|
8058
|
+
async function* withStreamInactivityTimeout(source, idleMs, abortRequest, parentSignal) {
|
|
8059
|
+
const it = source[Symbol.asyncIterator]();
|
|
8060
|
+
const streamStartedAt = Date.now();
|
|
8061
|
+
let chunksReceived = 0;
|
|
8062
|
+
try {
|
|
8063
|
+
while (true) {
|
|
8064
|
+
const nextPromise = it.next();
|
|
8065
|
+
let timer;
|
|
8066
|
+
const timeout = new Promise((_resolve, reject) => {
|
|
8067
|
+
timer = setTimeout(() => {
|
|
8068
|
+
if (parentSignal?.aborted) {
|
|
8069
|
+
const abortErr = new Error("Aborted");
|
|
8070
|
+
abortErr.name = "AbortError";
|
|
8071
|
+
reject(abortErr);
|
|
8072
|
+
} else {
|
|
8073
|
+
abortRequest();
|
|
8074
|
+
reject(
|
|
8075
|
+
new StreamInactivityTimeoutError(
|
|
8076
|
+
idleMs,
|
|
8077
|
+
chunksReceived,
|
|
8078
|
+
Date.now() - streamStartedAt
|
|
8079
|
+
)
|
|
8080
|
+
);
|
|
8081
|
+
}
|
|
8082
|
+
}, idleMs);
|
|
8083
|
+
timer.unref?.();
|
|
8084
|
+
});
|
|
8085
|
+
let result;
|
|
8086
|
+
try {
|
|
8087
|
+
result = await Promise.race([nextPromise, timeout]);
|
|
8088
|
+
} catch (err) {
|
|
8089
|
+
void Promise.resolve(nextPromise).catch(() => {
|
|
8090
|
+
});
|
|
8091
|
+
throw err;
|
|
8092
|
+
} finally {
|
|
8093
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
8094
|
+
}
|
|
8095
|
+
if (result.done) return;
|
|
8096
|
+
chunksReceived += 1;
|
|
8097
|
+
yield result.value;
|
|
8098
|
+
}
|
|
8099
|
+
} finally {
|
|
8100
|
+
abortRequest();
|
|
8101
|
+
try {
|
|
8102
|
+
await it.return?.();
|
|
8103
|
+
} catch {
|
|
8104
|
+
}
|
|
8105
|
+
}
|
|
8106
|
+
}
|
|
8107
|
+
__name(withStreamInactivityTimeout, "withStreamInactivityTimeout");
|
|
8007
8108
|
var ContentGenerationPipeline = class {
|
|
8008
8109
|
constructor(config) {
|
|
8009
8110
|
this.config = config;
|
|
8010
8111
|
this.contentGeneratorConfig = config.contentGeneratorConfig;
|
|
8011
8112
|
this.client = this.config.provider.buildClient();
|
|
8113
|
+
this.streamIdleTimeoutMs = resolveStreamIdleTimeoutMs(
|
|
8114
|
+
this.contentGeneratorConfig
|
|
8115
|
+
);
|
|
8012
8116
|
}
|
|
8013
8117
|
static {
|
|
8014
8118
|
__name(this, "ContentGenerationPipeline");
|
|
8015
8119
|
}
|
|
8016
8120
|
client;
|
|
8017
8121
|
contentGeneratorConfig;
|
|
8122
|
+
// Resolved once (config field > env > default) so the env read + any
|
|
8123
|
+
// invalid-value warning happen per pipeline, not per streaming request.
|
|
8124
|
+
streamIdleTimeoutMs;
|
|
8018
8125
|
async execute(request, userPromptId) {
|
|
8019
8126
|
return this.executeWithErrorHandling(
|
|
8020
8127
|
request,
|
|
@@ -8048,22 +8155,25 @@ var ContentGenerationPipeline = class {
|
|
|
8048
8155
|
true,
|
|
8049
8156
|
async (openaiRequest, context) => {
|
|
8050
8157
|
const parentSignal = request.config?.abortSignal;
|
|
8051
|
-
const perRequestAc =
|
|
8158
|
+
const perRequestAc = createChildAbortController(parentSignal);
|
|
8052
8159
|
let stream;
|
|
8053
8160
|
try {
|
|
8054
8161
|
stream = await this.client.chat.completions.create(openaiRequest, {
|
|
8055
|
-
signal: perRequestAc
|
|
8162
|
+
signal: perRequestAc.signal
|
|
8056
8163
|
});
|
|
8057
8164
|
} catch (e) {
|
|
8058
|
-
perRequestAc
|
|
8165
|
+
perRequestAc.abort();
|
|
8059
8166
|
throw e;
|
|
8060
8167
|
}
|
|
8061
|
-
|
|
8062
|
-
|
|
8063
|
-
}
|
|
8064
|
-
const ac = perRequestAc;
|
|
8065
|
-
const innerStream = this.processStreamWithLogging(
|
|
8168
|
+
const idleMs = this.streamIdleTimeoutMs;
|
|
8169
|
+
const guarded = idleMs > 0 ? withStreamInactivityTimeout(
|
|
8066
8170
|
stream,
|
|
8171
|
+
idleMs,
|
|
8172
|
+
() => perRequestAc.abort(),
|
|
8173
|
+
parentSignal
|
|
8174
|
+
) : stream;
|
|
8175
|
+
const innerStream = this.processStreamWithLogging(
|
|
8176
|
+
guarded,
|
|
8067
8177
|
context,
|
|
8068
8178
|
request
|
|
8069
8179
|
);
|
|
@@ -8071,7 +8181,7 @@ var ContentGenerationPipeline = class {
|
|
|
8071
8181
|
try {
|
|
8072
8182
|
yield* innerStream;
|
|
8073
8183
|
} finally {
|
|
8074
|
-
|
|
8184
|
+
perRequestAc.abort();
|
|
8075
8185
|
}
|
|
8076
8186
|
}
|
|
8077
8187
|
__name(drainThenCleanup, "drainThenCleanup");
|
|
@@ -8138,6 +8248,14 @@ var ContentGenerationPipeline = class {
|
|
|
8138
8248
|
if (error instanceof StreamContentError) {
|
|
8139
8249
|
throw redactProxyError(error);
|
|
8140
8250
|
}
|
|
8251
|
+
if (error instanceof StreamInactivityTimeoutError) {
|
|
8252
|
+
debugLogger3.warn("OpenAI stream inactivity timeout", {
|
|
8253
|
+
idleMs: error.idleMs,
|
|
8254
|
+
chunksReceived: error.chunksReceived,
|
|
8255
|
+
streamLifetimeMs: error.streamLifetimeMs
|
|
8256
|
+
});
|
|
8257
|
+
throw redactProxyError(error);
|
|
8258
|
+
}
|
|
8141
8259
|
await this.handleError(error, context, request);
|
|
8142
8260
|
}
|
|
8143
8261
|
}
|
|
@@ -8320,7 +8438,7 @@ var ContentGenerationPipeline = class {
|
|
|
8320
8438
|
const effectiveModel = request.model || this.contentGeneratorConfig.model;
|
|
8321
8439
|
const providerOverrides = this.config.provider.getRequestContextOverrides?.() ?? {};
|
|
8322
8440
|
const toolCallParser = isStreaming ? new StreamingToolCallParser() : void 0;
|
|
8323
|
-
const responseParsingOptions = this.config.provider.getResponseParsingOptions?.();
|
|
8441
|
+
const responseParsingOptions = this.config.provider.getResponseParsingOptions?.(effectiveModel);
|
|
8324
8442
|
const taggedThinkingParser = isStreaming && responseParsingOptions?.taggedThinkingTags ? new TaggedThinkingParser() : void 0;
|
|
8325
8443
|
return {
|
|
8326
8444
|
model: effectiveModel,
|
|
@@ -8344,7 +8462,7 @@ var ContentGenerationPipeline = class {
|
|
|
8344
8462
|
|
|
8345
8463
|
// packages/core/src/core/openaiContentGenerator/errorHandler.ts
|
|
8346
8464
|
init_esbuild_shims();
|
|
8347
|
-
var
|
|
8465
|
+
var debugLogger4 = createDebugLogger("OPENAI_ERROR");
|
|
8348
8466
|
var EnhancedErrorHandler = class {
|
|
8349
8467
|
constructor(shouldSuppressLogging = () => false) {
|
|
8350
8468
|
this.shouldSuppressLogging = shouldSuppressLogging;
|
|
@@ -8361,7 +8479,7 @@ var EnhancedErrorHandler = class {
|
|
|
8361
8479
|
isTimeoutError
|
|
8362
8480
|
);
|
|
8363
8481
|
if (!this.shouldSuppressErrorLogging(redactedError, request)) {
|
|
8364
|
-
|
|
8482
|
+
debugLogger4.error("OpenAI API Error:", errorMessage);
|
|
8365
8483
|
}
|
|
8366
8484
|
if (isTimeoutError) {
|
|
8367
8485
|
throw new Error(
|
|
@@ -8401,7 +8519,7 @@ ${tips.join("\n")}`;
|
|
|
8401
8519
|
};
|
|
8402
8520
|
|
|
8403
8521
|
// packages/core/src/core/openaiContentGenerator/openaiContentGenerator.ts
|
|
8404
|
-
var
|
|
8522
|
+
var debugLogger5 = createDebugLogger("OPENAI");
|
|
8405
8523
|
var OpenAIContentGenerator = class {
|
|
8406
8524
|
static {
|
|
8407
8525
|
__name(this, "OpenAIContentGenerator");
|
|
@@ -8444,7 +8562,7 @@ var OpenAIContentGenerator = class {
|
|
|
8444
8562
|
totalTokens: result.totalTokens
|
|
8445
8563
|
};
|
|
8446
8564
|
} catch (error) {
|
|
8447
|
-
|
|
8565
|
+
debugLogger5.warn(
|
|
8448
8566
|
"Failed to calculate tokens with new tokenizer, falling back to simple method:",
|
|
8449
8567
|
error
|
|
8450
8568
|
);
|
|
@@ -8491,7 +8609,7 @@ var OpenAIContentGenerator = class {
|
|
|
8491
8609
|
};
|
|
8492
8610
|
} catch (error) {
|
|
8493
8611
|
const redactedError = redactProxyError(error);
|
|
8494
|
-
|
|
8612
|
+
debugLogger5.error("OpenAI API Embedding Error:", redactedError);
|
|
8495
8613
|
throw new Error(
|
|
8496
8614
|
`OpenAI API error: ${redactedError instanceof Error ? redactedError.message : String(redactedError)}`
|
|
8497
8615
|
);
|