@qwen-code/qwen-code 0.20.1-jobbench-claude-prompt.0 → 0.20.1
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/qc-helper/docs/configuration/settings.md +1 -1
- package/bundled/qc-helper/docs/features/auto-mode.md +19 -16
- package/bundled/qc-helper/docs/features/commands.md +54 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +16 -7
- package/bundled/qc-helper/docs/integration-github-action.md +10 -10
- package/bundled/qc-helper/docs/qwen-serve.md +2 -1
- package/bundled/review/DESIGN.md +2 -2
- package/bundled/review/SKILL.md +4 -4
- package/chunks/{MaxSizedBox-BGLP6FQT.js → MaxSizedBox-4WZYPSRU.js} +40 -36
- package/chunks/{StandaloneSessionPicker-K6I4ZEHD.js → StandaloneSessionPicker-PE4JAIFA.js} +58 -54
- package/chunks/{acpAgent-PKKBOEP4.js → acpAgent-BVIKGJ2C.js} +1503 -520
- package/chunks/{agent-Y7XOSZY5.js → agent-DHLFAOUV.js} +36 -32
- package/chunks/{agent-headless-NXRPEYGF.js → agent-headless-ZP5WTNXZ.js} +36 -32
- package/chunks/{anthropicContentGenerator-BWBAZGTW.js → anthropicContentGenerator-NMSS7IMV.js} +11 -11
- package/chunks/{artifact-tool-IUJ7QWCX.js → artifact-tool-56T5IMBP.js} +3 -3
- package/chunks/{askUserQuestion-IUMUUTDQ.js → askUserQuestion-E25OBIC2.js} +3 -3
- package/chunks/{bridge-DCMYGFJ2.js → bridge-XAK7JKMD.js} +41 -37
- package/chunks/{build-SSCNEHZZ.js → build-GHIZ4MSZ.js} +1 -1
- package/chunks/{ca-2SL2BXTK.js → ca-N6VVUFVB.js} +611 -201
- package/chunks/{channel-worker-group-53CMOPFT.js → channel-worker-group-LFBT7K64.js} +5 -5
- package/chunks/{channel-worker-manager-UTXILKC2.js → channel-worker-manager-3RUPERG2.js} +5 -5
- package/chunks/{channel-worker-supervisor-ZGO2W2MD.js → channel-worker-supervisor-A3KVATD3.js} +4 -4
- package/chunks/{chunk-C5L66QPF.js → chunk-27CLX4FV.js} +1 -1
- package/chunks/{chunk-2HOVDT7W.js → chunk-2LI23QA6.js} +1 -1
- package/chunks/chunk-2RFKHEXL.js +74 -0
- package/chunks/{chunk-5244PA32.js → chunk-3KQSDUK3.js} +3 -3
- package/chunks/{chunk-MEDHWB34.js → chunk-3LH5Q2AR.js} +8 -8
- package/chunks/{chunk-E6XTP5ZF.js → chunk-3SXF4GMQ.js} +1 -1
- package/chunks/chunk-43T5WDQ7.js +127 -0
- package/chunks/{chunk-6UTNZOZG.js → chunk-4BRH6FP5.js} +31 -6
- package/chunks/{chunk-NYMHN4ZK.js → chunk-4DSBFQMI.js} +2 -2
- package/chunks/{chunk-JD3MKVKL.js → chunk-4K56OJFJ.js} +1 -1
- package/chunks/{chunk-KTUQMDEP.js → chunk-4K7VDKAD.js} +1 -1
- package/chunks/{chunk-QKYTTBYW.js → chunk-4LVZNIDO.js} +1 -1
- package/chunks/{chunk-EKVLDUP4.js → chunk-52T5UHAZ.js} +2 -2
- package/chunks/{chunk-ZEOZL37W.js → chunk-57FIIFJN.js} +1 -1
- package/chunks/{chunk-SWRMKMVY.js → chunk-5EA5NVXS.js} +1 -1
- package/chunks/chunk-5G2SK2OO.js +20600 -0
- package/chunks/{chunk-6EFTQYW7.js → chunk-5I5BM454.js} +1 -1
- package/chunks/{chunk-GMGDLUC7.js → chunk-6IL7KRLE.js} +1 -1
- package/chunks/{chunk-26LLB6FM.js → chunk-6NHK6HS7.js} +2 -2
- package/chunks/{chunk-6UTRTWUF.js → chunk-6PRNSLMB.js} +11 -6
- package/chunks/chunk-6PVPNMXU.js +29 -0
- package/chunks/{chunk-BDBMYST4.js → chunk-6X4GWOPW.js} +1 -1
- package/chunks/{chunk-4ODB7WIB.js → chunk-6ZBPS62S.js} +1 -1
- package/chunks/{chunk-SMR34EQM.js → chunk-766HLFAG.js} +54 -33
- package/chunks/{chunk-J5CK6QYL.js → chunk-76OFFG6L.js} +137 -5
- package/chunks/{chunk-AU2GX7QQ.js → chunk-7LH6CHKG.js} +1 -1
- package/chunks/{chunk-A2F633L4.js → chunk-7NDXG4MB.js} +60 -35
- package/chunks/{chunk-QCCOKIGW.js → chunk-7SWFAKVH.js} +22 -22
- package/chunks/{chunk-AYCDXHZB.js → chunk-7Z6JQEL6.js} +1 -1
- package/chunks/{chunk-CMFMPPKV.js → chunk-AZD6KAV7.js} +3 -3
- package/chunks/{chunk-7YBZGNEC.js → chunk-BKZEHVPV.js} +176 -168
- package/chunks/{chunk-M2DASLLB.js → chunk-BWQRDISK.js} +1 -1
- package/chunks/{chunk-EELSDL62.js → chunk-BZAEENUV.js} +3 -3
- package/chunks/{chunk-DFQGFXMQ.js → chunk-CHXKGIMK.js} +1 -1
- package/chunks/{chunk-W2LKWG6I.js → chunk-D53NR4GO.js} +562 -301
- package/chunks/{chunk-P5OX37TK.js → chunk-D6ZOVZLF.js} +5 -1
- package/chunks/{chunk-NBMIC7DR.js → chunk-D7WXIW7H.js} +4 -4
- package/chunks/{chunk-VT3KBCIU.js → chunk-DPRMI6NU.js} +1 -1
- package/chunks/{chunk-JXWFXSLN.js → chunk-DRIXALGM.js} +2 -2
- package/chunks/{chunk-5SCI6E3E.js → chunk-E4IMU4Y5.js} +1 -1
- package/chunks/{chunk-EMMNRTQX.js → chunk-EC2ET5ZZ.js} +1 -1
- package/chunks/{chunk-NNDKJNCC.js → chunk-EFIOE2EH.js} +3 -3
- package/chunks/{chunk-7H2JMOPS.js → chunk-EWXXMRMP.js} +3 -3
- package/chunks/{chunk-NEEB7UEN.js → chunk-FFFM6NJV.js} +1 -2
- package/chunks/{chunk-3PG4G7SK.js → chunk-G6LRTI62.js} +4 -4
- package/chunks/{chunk-RTEHQUAD.js → chunk-GEB2CGUV.js} +11024 -7988
- package/chunks/{chunk-OONJNQ42.js → chunk-GPSKDNEE.js} +3 -3
- package/chunks/{chunk-FNGK2Z5B.js → chunk-H4AR2JQF.js} +3 -3
- package/chunks/chunk-HTR4WV6U.js +327 -0
- package/chunks/chunk-IS2SBY6T.js +2256 -0
- package/chunks/{chunk-G45X5TRN.js → chunk-JCW2R7WC.js} +1 -72
- package/chunks/{chunk-4E33SVWA.js → chunk-JHFVJQRO.js} +1 -1
- package/chunks/{chunk-BL7EEZ4Y.js → chunk-JIBBZH37.js} +27 -23
- package/chunks/{chunk-UJEZQ562.js → chunk-JJEFX6U5.js} +3 -3
- package/chunks/{chunk-UTBTCPKF.js → chunk-JKFHJK5U.js} +4 -4
- package/chunks/{chunk-XSSAJZXG.js → chunk-JO7FGOSY.js} +5 -5
- package/chunks/{chunk-CAKC64KX.js → chunk-JTUAAVUT.js} +2 -2
- package/chunks/{chunk-MAQQGNQ5.js → chunk-JYS55H6Z.js} +66 -7
- package/chunks/{chunk-D742634K.js → chunk-KDPIV6WC.js} +29 -2
- package/chunks/{chunk-EIAK6Q2B.js → chunk-KHOVYUHX.js} +2 -2
- package/chunks/{chunk-OLMETXLX.js → chunk-KQQ757OQ.js} +2 -2
- package/chunks/{chunk-7AB5URLY.js → chunk-KSZZBDVD.js} +165 -48
- package/chunks/chunk-KWK7UE6L.js +6194 -0
- package/chunks/{chunk-OOCI5VVU.js → chunk-LIZRAKPB.js} +1 -1
- package/chunks/{chunk-2T2FG7OX.js → chunk-LPMBFOWH.js} +73 -68
- package/chunks/{chunk-UNIQ7KNW.js → chunk-LYEKAAEH.js} +5 -5
- package/chunks/chunk-M7WBGLYP.js +151 -0
- package/chunks/{chunk-LB7ZIQ6C.js → chunk-MTSYH4MB.js} +3 -3
- package/chunks/{chunk-7YK65ZFC.js → chunk-N5ARKAVE.js} +8 -8
- package/chunks/chunk-NABLFI57.js +82 -0
- package/chunks/{chunk-PXVAFBEI.js → chunk-NNFK277W.js} +1 -1
- package/chunks/{chunk-467G3SV5.js → chunk-NPQDJGKU.js} +1 -1
- package/chunks/chunk-OQ5SYCPE.js +10017 -0
- package/chunks/{chunk-C27BYUX6.js → chunk-OQB4EXO4.js} +14 -11
- package/chunks/{chunk-WCPQTUDI.js → chunk-OUDZVU7H.js} +242 -1607
- package/chunks/{chunk-C44MIZ2K.js → chunk-PBED7USE.js} +1 -1
- package/chunks/{chunk-C5Z652G4.js → chunk-PIHKWN7M.js} +1 -1
- package/chunks/{chunk-NL37SKPP.js → chunk-PPIHLGNE.js} +2 -2
- package/chunks/{chunk-ORDXX5SE.js → chunk-PSVSP2OS.js} +6 -6
- package/chunks/{chunk-SKQD5RCT.js → chunk-Q2V2ADXF.js} +7 -7
- package/chunks/{chunk-JDI67JFB.js → chunk-Q2YKNMLS.js} +3 -3
- package/chunks/{chunk-L4PEDXOX.js → chunk-Q3GGJDYN.js} +5 -5
- package/chunks/{chunk-PBATSWUQ.js → chunk-QBUDF33N.js} +1 -1
- package/chunks/{chunk-OMH3276Y.js → chunk-QD6BRERJ.js} +7 -7
- package/chunks/{chunk-Y2ENGUD6.js → chunk-QKTHJXCS.js} +1 -1
- package/chunks/{chunk-BVLROR2T.js → chunk-QLJUC7TG.js} +1 -1
- package/chunks/{chunk-UEY4AYUL.js → chunk-QNLNLENL.js} +2 -2
- package/chunks/{chunk-2F7HITKF.js → chunk-QSJ6JIF5.js} +4 -4
- package/chunks/{chunk-2R7OXGYM.js → chunk-QUHJRRUA.js} +126 -30
- package/chunks/{chunk-WJYCCJ3Q.js → chunk-R3BCL5XW.js} +10 -4
- package/chunks/{chunk-YXBZOR3D.js → chunk-R7MPKABX.js} +307 -86
- package/chunks/{chunk-RFIAR4YL.js → chunk-RV4C2ZFG.js} +1 -1
- package/chunks/{chunk-NIJEXGV6.js → chunk-RVLZCXEE.js} +79 -10
- package/chunks/{chunk-NRPP5TOB.js → chunk-RYSMKY43.js} +4 -4
- package/chunks/{chunk-XBAYQWDL.js → chunk-S3YQCNJE.js} +3 -3
- package/chunks/{chunk-3P4TUBON.js → chunk-SP32MK6J.js} +2 -2
- package/chunks/{chunk-JNWZQ27S.js → chunk-SP5WRGVG.js} +3 -3
- package/chunks/{chunk-FSL5W5TI.js → chunk-T2L47JJK.js} +3 -3
- package/chunks/{chunk-TB6UDU4T.js → chunk-THJNPLI4.js} +16 -16
- package/chunks/{chunk-3XZIXCJY.js → chunk-TPR35HHZ.js} +6 -6
- package/chunks/{chunk-L4BZXQR3.js → chunk-TXRKCFWS.js} +6 -6
- package/chunks/chunk-U7ZFW55U.js +2098 -0
- package/chunks/{chunk-W7H223ZZ.js → chunk-UGYMA4EI.js} +1 -1
- package/chunks/{chunk-X6YQWCIJ.js → chunk-UH3WSE5L.js} +13 -1
- package/chunks/{chunk-R3VWUU2E.js → chunk-VYPFXUCB.js} +1 -1
- package/chunks/{chunk-IMVIN5UC.js → chunk-WCFTQD7H.js} +11 -11
- package/chunks/chunk-WHGVTP7Q.js +1049 -0
- package/chunks/{chunk-PC2QR5QO.js → chunk-WML6JOGQ.js} +31 -19
- package/chunks/{chunk-D2VIDMVM.js → chunk-X6N25LXS.js} +2 -2
- package/chunks/{chunk-YHRBVZ53.js → chunk-X7XWGRDT.js} +4 -4
- package/chunks/chunk-XHATNRQA.js +1500 -0
- package/chunks/{chunk-2RDNKVZ2.js → chunk-Y2DAH52F.js} +7 -6
- package/chunks/{chunk-S35ZDXOS.js → chunk-YM3SZTH4.js} +2 -1
- package/chunks/{chunk-GKY2OJ7R.js → chunk-ZHERRXZJ.js} +1 -1
- package/chunks/{computer-use-KQVQD3IW.js → computer-use-MV4K6WJM.js} +41 -37
- package/chunks/{config-utils-6FXFJUYB.js → config-utils-WYUQ7II4.js} +3 -3
- package/chunks/{contextCommand-IOC5HY6R.js → contextCommand-TQD36VNX.js} +38 -34
- package/chunks/{create-sub-session-X5RVIHCK.js → create-sub-session-AZ77LBL3.js} +3 -3
- package/chunks/{create-sub-session-IOAGEN3O.js → create-sub-session-JOW4BKMC.js} +36 -32
- package/chunks/{cron-create-AC5FFLN7.js → cron-create-KTWJM7QT.js} +5 -5
- package/chunks/{cron-delete-JEB3FAHA.js → cron-delete-2P3I5ULL.js} +5 -5
- package/chunks/{cron-list-NBYPCNIB.js → cron-list-PXDPGEDQ.js} +5 -5
- package/chunks/{daemon-RG2MAI6T.js → daemon-KLPTQIE4.js} +138 -81
- package/chunks/daemon-status-provider-TII4SMCZ.js +81 -0
- package/chunks/{de-I7ZIYXZC.js → de-4IBXM7CN.js} +5 -1
- package/chunks/{dist-2BHAYBKP.js → dist-HMU6CYS4.js} +2 -2
- package/chunks/{dist-AU7NQQRP.js → dist-OAV7LJGJ.js} +1 -1
- package/chunks/{dist-FUTEXY6A.js → dist-OMW6WDEO.js} +1 -1
- package/chunks/{dist-2MIU4UUH.js → dist-PJLG2XYX.js} +1 -1
- package/chunks/{dist-53PZYC5B.js → dist-UIFWIFRO.js} +2 -2
- package/chunks/{dist-WGTQO7F2.js → dist-XRYV6TJP.js} +65 -25
- package/chunks/{earlyInputCapture-7AA4D4RF.js → earlyInputCapture-2V57RG6H.js} +37 -33
- package/chunks/{edit-RQXZUTEU.js → edit-TTUH7PWR.js} +43 -41
- package/chunks/{en-XE34GKAA.js → en-USMCCJAJ.js} +5 -1
- package/chunks/{enter-worktree-BPYKHGTX.js → enter-worktree-D4IVCXYB.js} +41 -37
- package/chunks/{enterPlanMode-VJ3KR5HM.js → enterPlanMode-WRUJTVYN.js} +47 -38
- package/chunks/{environment-PZYHWWG5.js → environment-SEPKXB2C.js} +38 -34
- package/chunks/{errors-NZ6JOKJB.js → errors-YSVGBLBU.js} +38 -34
- package/chunks/{exit-worktree-TZNABJPX.js → exit-worktree-MZ4JSSP6.js} +41 -37
- package/chunks/{exitPlanMode-RZMERKLI.js → exitPlanMode-HAZLSSOJ.js} +41 -37
- package/chunks/{fast-path-F5UWH7GI.js → fast-path-EVBVIE2U.js} +4 -3
- package/chunks/{fast-path-settings-DAOVFADC.js → fast-path-settings-XB3CPUJT.js} +2 -2
- package/chunks/{fr-X7KDVZIY.js → fr-WVHEBDDB.js} +5 -1
- package/chunks/{gemini-2QJRGIKD.js → gemini-APQ76464.js} +100 -95
- package/chunks/{geminiContentGenerator-Q7IAYVM4.js → geminiContentGenerator-LB4MA2LI.js} +5 -5
- package/chunks/{getMachineId-bsd-EXV7SWPA.js → getMachineId-bsd-QFVLPUPT.js} +1 -1
- package/chunks/{getMachineId-darwin-IUOMFXU3.js → getMachineId-darwin-DGMQQE2E.js} +1 -1
- package/chunks/{getMachineId-linux-K7XJYFHL.js → getMachineId-linux-R4Z6CSWC.js} +1 -1
- package/chunks/{getMachineId-unsupported-EA5FDRJ6.js → getMachineId-unsupported-Z3SBVBUV.js} +1 -1
- package/chunks/{getMachineId-win-KBA6RAI5.js → getMachineId-win-SCK5UFDT.js} +1 -1
- package/chunks/{glob-MP7IPPNS.js → glob-LABYMYKG.js} +43 -39
- package/chunks/{grep-OHN54Z7A.js → grep-HKIKJCAS.js} +43 -39
- package/chunks/{handleAutoUpdate-EGCO46FV.js → handleAutoUpdate-RWAAL2UM.js} +40 -36
- package/chunks/{i18n-4LK42EK5.js → i18n-ZUVDAJIJ.js} +37 -33
- package/chunks/{initializer-DAL5QAZU.js → initializer-7YUHIC36.js} +43 -39
- package/chunks/{installationInfo-HOKGVMMQ.js → installationInfo-DVEOMWDE.js} +39 -33
- package/chunks/{ja-2ICT3KXF.js → ja-KY4ROZTE.js} +5 -1
- package/chunks/{keychain-token-storage-DWRJMNH3.js → keychain-token-storage-6ACJDYIB.js} +3 -3
- package/chunks/list-WHCZSIR2.js +82 -0
- package/chunks/{loadedSettingsAdapter-I42UOUE7.js → loadedSettingsAdapter-YCWN6AK3.js} +42 -38
- package/chunks/{loop-wakeup-HMHCT5GU.js → loop-wakeup-RNMRVA66.js} +6 -6
- package/chunks/{ls-IW5HYDG4.js → ls-J2ZI5XYK.js} +5 -5
- package/chunks/{lsp-4RL52YIZ.js → lsp-UMS3NUB5.js} +3 -3
- package/chunks/managed-npm-update-PG3463CJ.js +333 -0
- package/chunks/{mcp-62XOYOXZ.js → mcp-VLHDCKAN.js} +42 -38
- package/chunks/{monitor-YIHFTVM7.js → monitor-GG4F4YM6.js} +41 -37
- package/chunks/nonInteractiveCli-UYXYV4YX.js +133 -0
- package/chunks/{notebook-edit-XK4J36D3.js → notebook-edit-US4VLN6Q.js} +44 -42
- package/chunks/{openaiContentGenerator-OEIKDARY.js → openaiContentGenerator-CVEDTMDB.js} +20 -18
- package/chunks/{pidfile-2XVZMMKS.js → pidfile-QQ45OIOY.js} +37 -33
- package/chunks/{processUtils-SYFMMDPV.js → processUtils-3WMHLQE5.js} +2 -2
- package/chunks/{pt-JJ4XPIBP.js → pt-OK455PLH.js} +5 -1
- package/chunks/{qwenContentGenerator-LTTPUWV3.js → qwenContentGenerator-Y2GRNYZQ.js} +42 -38
- package/chunks/{qwenOAuth2-U3X6UBDP.js → qwenOAuth2-J2X6E5VO.js} +18 -16
- package/chunks/{read-file-P6IEAOBS.js → read-file-C7Z266CU.js} +13 -11
- package/chunks/{read-mcp-resource-OIBCNIX7.js → read-mcp-resource-F6HYMDUY.js} +3 -3
- package/chunks/{record-artifact-HDMK4LHG.js → record-artifact-7GCFLDD7.js} +3 -3
- package/chunks/{resumeHistoryUtils-WMJ5TUPF.js → resumeHistoryUtils-KBQWX77U.js} +43 -39
- package/chunks/{ripGrep-US5HKBSM.js → ripGrep-RW26MTQ3.js} +36 -32
- package/chunks/{ru-STR4KTW7.js → ru-7SPDGMGD.js} +5 -1
- package/chunks/{run-qwen-serve-MIFJODT4.js → run-qwen-serve-MXFMOMEL.js} +104 -82
- package/chunks/{runtime-SK5QH53T.js → runtime-APNO3V6D.js} +48 -42
- package/chunks/{scheduler-4TIUONHH.js → scheduler-L6FYCGVO.js} +36 -32
- package/chunks/sdk-exporters-grpc-ETLH47EP.js +23214 -0
- package/chunks/sdk-exporters-http-IDGLRBGP.js +563 -0
- package/chunks/sdk-impl-5ESZBGJQ.js +9186 -0
- package/chunks/{send-message-WXVVK4DB.js → send-message-PYIJ2PZL.js} +6 -4
- package/chunks/{serve-F6VZULAL.js → serve-6QBXDVWT.js} +42 -38
- package/chunks/{server-UJEZDWGO.js → server-5TJJEMVQ.js} +1006 -305
- package/chunks/{session-PFCYZOZJ.js → session-BWEUHKQB.js} +92 -176
- package/chunks/{settings-7UHALRNO.js → settings-O7IUQNRR.js} +45 -41
- package/chunks/{shell-DY7EASPT.js → shell-R5L4NQYY.js} +36 -32
- package/chunks/{skill-DOZBVXRT.js → skill-ITEOSNW6.js} +24 -20
- package/chunks/{spawnChannel-HT7EQ4SL.js → spawnChannel-E7NTWSGW.js} +38 -34
- package/chunks/{src-VJO75DQQ.js → src-FFXGUTNL.js} +303 -237
- package/chunks/{standalone-update-5ERAJGLE.js → standalone-update-JCJOXW4P.js} +38 -34
- package/chunks/{startInteractiveUI-HYMIOBH7.js → startInteractiveUI-IJSBLZFO.js} +1057 -864
- package/chunks/{syntheticOutput-HCUFXSIA.js → syntheticOutput-H7RTI5KL.js} +4 -4
- package/chunks/{task-create-RIY5JTFC.js → task-create-7474AJJD.js} +10 -8
- package/chunks/{task-list-XBUCV3CO.js → task-list-633HGOIB.js} +6 -6
- package/chunks/{task-stop-QDFCCYR5.js → task-stop-MNUGHPIA.js} +3 -3
- package/chunks/{task-update-7PXKJQOI.js → task-update-66GQB5LI.js} +10 -8
- package/chunks/{team-create-NF3FCZE2.js → team-create-OVSZTJZO.js} +44 -40
- package/chunks/{team-delete-TNSSE2S5.js → team-delete-BB3CG3QF.js} +6 -6
- package/chunks/{team-plan-approval-P5U7U4NW.js → team-plan-approval-SLEVDLT5.js} +41 -37
- package/chunks/{theme-manager-WD73RXOX.js → theme-manager-V6ZQISHM.js} +37 -33
- package/chunks/{todoWrite-OMAIGB6V.js → todoWrite-KRAUN54W.js} +5 -5
- package/chunks/{tool-search-TDMA733L.js → tool-search-KYIF6C6E.js} +21 -17
- package/chunks/{total-session-admission-H3XZPCNC.js → total-session-admission-EU77XTL7.js} +42 -38
- package/chunks/{tree-sitter-VJEPTDMU.js → tree-sitter-4D7QS7F6.js} +1 -1
- package/chunks/{tree-sitter-bash-WFKBO43W.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
- package/chunks/{trustedFolders-NEFWXHU2.js → trustedFolders-DDEF3ADH.js} +37 -33
- package/chunks/{update-relaunch-T2XQQC4W.js → update-relaunch-XEZTDP6K.js} +17 -17
- package/chunks/updateCheck-KZ5LZ545.js +89 -0
- package/chunks/{useAutoAcceptIndicator-5FLFR3BY.js → useAutoAcceptIndicator-47EZERGQ.js} +47 -43
- package/chunks/{validateNonInterActiveAuth-Z23SJ4D4.js → validateNonInterActiveAuth-J2DM4LWZ.js} +79 -75
- package/chunks/{version-PLKW23RX.js → version-PN7WYXHP.js} +1 -1
- package/chunks/{web-fetch-QNI3EEXN.js → web-fetch-WRI5QRFR.js} +100 -42
- package/chunks/{web-search-DLYTQBNN.js → web-search-2HCXNAVX.js} +111 -60
- package/chunks/{workflow-A3WFSQKU.js → workflow-U5XBPGQZ.js} +48 -43
- package/chunks/{workspace-providers-status-6K34OJLQ.js → workspace-providers-status-2T54GIJZ.js} +45 -41
- package/chunks/{workspace-registration-store-6FPLTQG3.js → workspace-registration-store-F3V4KBIW.js} +8 -2
- package/chunks/{workspace-registry-JZRIJXJS.js → workspace-registry-U6QVZ5BU.js} +42 -38
- package/chunks/{workspace-service-PQDLBZV3.js → workspace-service-734D36QD.js} +49 -45
- package/chunks/{workspace-skills-status-RKCPZVT2.js → workspace-skills-status-5ABUKOAQ.js} +43 -39
- package/chunks/write-file-CIH4I4CS.js +66 -0
- package/chunks/{zh-TW-4RR3YHNN.js → zh-TW-BM47YBFH.js} +5 -1
- package/chunks/{zh-6ANG2HTL.js → zh-WY5DWYZD.js} +5 -1
- package/cli-entry.js +164 -12
- package/cli.js +18 -11
- package/locales/ca.js +772 -203
- package/locales/de.js +8 -2
- package/locales/en.js +8 -2
- package/locales/fr.js +8 -2
- package/locales/ja.js +8 -2
- package/locales/pt.js +8 -2
- package/locales/ru.js +8 -2
- package/locales/zh-TW.js +8 -2
- package/locales/zh.js +8 -2
- package/package.json +3 -3
- package/web-shell/assets/{arc-Buk1besA.js → arc-ByltRugA.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-B1aUKYDC.js → architectureDiagram-3BPJPVTR-CCRTto5d.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CRTdg3Zx.js → blockDiagram-GPEHLZMM-Jfy36u1L.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DFdRMp5g.js → c4Diagram-AAUBKEIU-4d5FfEZ0.js} +1 -1
- package/web-shell/assets/channel-4N2UIFcG.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-4rYQdkEI.js → chunk-2J33WTMH-BPwxCEro.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-Coi-pQJy.js → chunk-4BX2VUAB-jY7ZmJWY.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BtBjz02t.js → chunk-55IACEB6-C98HgCsS.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CGYOWorl.js → chunk-727SXJPM-cDu-ge-q.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CH5AKhqx.js → chunk-AQP2D5EJ-BKdJwxXK.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-Cd50-w85.js → chunk-FMBD7UC4-DnuxqwMu.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-C2wF3KCK.js → chunk-ND2GUHAM-C4fZNPv0.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-pCeRTaWi.js → chunk-QZHKN3VN-Cf4XWOmz.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Q4dYOtsh.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Q4dYOtsh.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-B-_fAB6D.js → cose-bilkent-S5V4N54A-C82mFiqj.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-ChSPNHpL.js → dagre-BM42HDAG-Df8KACER.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BX7cFOF3.js → diagram-2AECGRRQ-EzNs7s_2.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BQUTW92n.js → diagram-5GNKFQAL-BRLNvreg.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BkYPh3e4.js → diagram-KO2AKTUF-2HLYHRjC.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Cl6jsNyx.js → diagram-LMA3HP47-DeH0NzSp.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DRWoHz8n.js → diagram-OG6HWLK6-k5Gn47-G.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CGvFcZco.js → erDiagram-TEJ5UH35-gPHFo79f.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-vms6oVdv.js → flowDiagram-I6XJVG4X-DYBOiTRW.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-ukT_sfmi.js → ganttDiagram-6RSMTGT7-cxjAuic9.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bn2ZE2Ut.js → gitGraphDiagram-PVQCEYII-3nPqpmCP.js} +1 -1
- package/web-shell/assets/index-B7jzUZ_s.css +5 -0
- package/web-shell/assets/{index-wFXp7W68.js → index-Cl8d-1bK.js} +1 -1
- package/web-shell/assets/index-gE8OWwj_.js +1197 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DHJdSi7x.js → infoDiagram-5YYISTIA-Dph21pR5.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DOvd2Wph.js → ishikawaDiagram-YF4QCWOH-Cjg1hSaG.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CH_urMCT.js → journeyDiagram-JHISSGLW-CR-IzvnU.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-FKiBdgbH.js → kanban-definition-UN3LZRKU-BYmuybuC.js} +1 -1
- package/web-shell/assets/{linear-0ZVQFVKf.js → linear-CngEEoy8.js} +1 -1
- package/web-shell/assets/{mermaid.core-DJ05ZZIK.js → mermaid.core-G6fbZRPf.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BPuUhkUm.js → mindmap-definition-RKZ34NQL-BtnqnUwJ.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-yLFKcXyG.js → pieDiagram-4H26LBE5-XTq6UHIA.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-irWqc1pE.js → quadrantDiagram-W4KKPZXB-D1J5PrsS.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-B_4uMoIV.js → requirementDiagram-4Y6WPE33-CLcBUy3t.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-ciA4GPwk.js → sankeyDiagram-5OEKKPKP-iwKV02_6.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CRdZvy0U.js → sequenceDiagram-3UESZ5HK-7NFYQcEX.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DaYIkCCn.js → stateDiagram-AJRCARHV-Bvm4Wih6.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-xXU_zO2Z.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-oBUKv6iH.js → timeline-definition-PNZ67QCA-B4FZFE9O.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-CGW9Sdmb.js → vennDiagram-CIIHVFJN-CvMBpmtL.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CvwKJOCm.js → wardley-L42UT6IY-E3ag2327.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Ipc260sN.js → wardleyDiagram-YWT4CUSO-BEXWlgxC.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-D6-CM7pK.js → xychartDiagram-2RQKCTM6-CICK05gI.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-6YS6TQB3.js +0 -45
- package/chunks/chunk-ETD6K42I.js +0 -358
- package/chunks/chunk-HAL7YT4M.js +0 -74639
- package/chunks/chunk-W7FJ3N32.js +0 -49
- package/chunks/daemon-status-provider-DYDVT4S5.js +0 -77
- package/chunks/list-M5NNXMQQ.js +0 -78
- package/chunks/nonInteractiveCli-Z73R2B3B.js +0 -129
- package/chunks/updateCheck-G5JYMVJZ.js +0 -73
- package/chunks/write-file-LHZENZ2A.js +0 -599
- package/web-shell/assets/channel-04R0vLbG.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Bw9SOwAV.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Bw9SOwAV.js +0 -1
- package/web-shell/assets/index-DgkKrjw3.js +0 -1187
- package/web-shell/assets/index-Rv6mOAN9.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DWBoO4UY.js +0 -1
- package/chunks/{chunk-PEJWA3QQ.js → chunk-QZJY47IE.js} +5 -5
|
@@ -1,44 +1,50 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
parsePositiveIntegerEnv
|
|
5
|
+
} from "./chunk-6PVPNMXU.js";
|
|
3
6
|
import {
|
|
4
7
|
fetchWithPolicy,
|
|
5
8
|
isConnectionLevelError,
|
|
6
9
|
isPrivateHost
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-EWXXMRMP.js";
|
|
11
|
+
import "./chunk-PPIHLGNE.js";
|
|
12
|
+
import "./chunk-5I5BM454.js";
|
|
9
13
|
import {
|
|
10
14
|
MAX_SESSION_BYTES,
|
|
11
15
|
extractPDFText,
|
|
12
16
|
import_lru_cache,
|
|
13
17
|
runSideQuery
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-4WKAA4KS.js";
|
|
16
|
-
import "./chunk-CR3C7WXL.js";
|
|
18
|
+
} from "./chunk-5G2SK2OO.js";
|
|
17
19
|
import "./chunk-VGC4I5JJ.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-BDBMYST4.js";
|
|
21
|
-
import "./chunk-467G3SV5.js";
|
|
22
|
-
import {
|
|
23
|
-
BaseDeclarativeTool,
|
|
24
|
-
BaseToolInvocation,
|
|
25
|
-
ToolDisplayNames,
|
|
26
|
-
ToolNames
|
|
27
|
-
} from "./chunk-S35ZDXOS.js";
|
|
28
|
-
import "./chunk-6EFTQYW7.js";
|
|
29
|
-
import "./chunk-MAQQGNQ5.js";
|
|
20
|
+
import "./chunk-4K56OJFJ.js";
|
|
21
|
+
import "./chunk-JYS55H6Z.js";
|
|
30
22
|
import "./chunk-A4UCTEB5.js";
|
|
31
23
|
import "./chunk-XWRJCPHC.js";
|
|
24
|
+
import "./chunk-QNLNLENL.js";
|
|
25
|
+
import "./chunk-6X4GWOPW.js";
|
|
32
26
|
import "./chunk-TYQMGACW.js";
|
|
33
27
|
import "./chunk-TYAMGABM.js";
|
|
34
28
|
import "./chunk-FCMNKVXT.js";
|
|
29
|
+
import "./chunk-IS2SBY6T.js";
|
|
30
|
+
import "./chunk-HTR4WV6U.js";
|
|
31
|
+
import "./chunk-M7WBGLYP.js";
|
|
32
|
+
import "./chunk-U7ZFW55U.js";
|
|
33
|
+
import "./chunk-NPQDJGKU.js";
|
|
35
34
|
import {
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
BaseDeclarativeTool,
|
|
36
|
+
BaseToolInvocation,
|
|
37
|
+
ToolDisplayNames,
|
|
38
|
+
ToolNames
|
|
39
|
+
} from "./chunk-YM3SZTH4.js";
|
|
40
|
+
import {
|
|
41
|
+
createDebugLogger,
|
|
42
|
+
getErrorMessage
|
|
43
|
+
} from "./chunk-OQB4EXO4.js";
|
|
38
44
|
import "./chunk-75DOP5OR.js";
|
|
39
45
|
import "./chunk-DMTGGOSA.js";
|
|
40
46
|
import "./chunk-YQ3U5MUC.js";
|
|
41
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-THJNPLI4.js";
|
|
42
48
|
import {
|
|
43
49
|
init_esbuild_shims
|
|
44
50
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -428,6 +434,15 @@ __name(isPreapprovedUrl, "isPreapprovedUrl");
|
|
|
428
434
|
|
|
429
435
|
// packages/core/src/tools/web-fetch.ts
|
|
430
436
|
var FETCH_TIMEOUT_MS = 6e4;
|
|
437
|
+
var SIDE_QUERY_TIMEOUT_MS = 3e5;
|
|
438
|
+
function sideQueryTimeoutMs() {
|
|
439
|
+
const value = parsePositiveIntegerEnv(
|
|
440
|
+
process.env["QWEN_WEB_FETCH_PROCESSING_TIMEOUT_MS"],
|
|
441
|
+
SIDE_QUERY_TIMEOUT_MS
|
|
442
|
+
);
|
|
443
|
+
return value > 2147483647 ? SIDE_QUERY_TIMEOUT_MS : value;
|
|
444
|
+
}
|
|
445
|
+
__name(sideQueryTimeoutMs, "sideQueryTimeoutMs");
|
|
431
446
|
var MAX_CONTENT_CHARS = 1e5;
|
|
432
447
|
var MAX_RESPONSE_BYTES = 10 * 1024 * 1024;
|
|
433
448
|
var MAX_REDIRECTS = 10;
|
|
@@ -605,6 +620,7 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
605
620
|
"User-Agent": this.getUserAgent()
|
|
606
621
|
}
|
|
607
622
|
};
|
|
623
|
+
const networkStart = Date.now();
|
|
608
624
|
let result;
|
|
609
625
|
let usedHttpFallback = false;
|
|
610
626
|
try {
|
|
@@ -621,6 +637,7 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
621
637
|
throw error;
|
|
622
638
|
}
|
|
623
639
|
}
|
|
640
|
+
const networkMs = Date.now() - networkStart;
|
|
624
641
|
if (result.kind === "cross-host-redirect") {
|
|
625
642
|
return result;
|
|
626
643
|
}
|
|
@@ -630,6 +647,7 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
630
647
|
`Request failed with status code ${response.status} ${response.statusText}`
|
|
631
648
|
);
|
|
632
649
|
}
|
|
650
|
+
const extractStart = Date.now();
|
|
633
651
|
const contentType = response.contentType;
|
|
634
652
|
const sniff = sniffFileKind(
|
|
635
653
|
response.body,
|
|
@@ -699,6 +717,9 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
699
717
|
} else {
|
|
700
718
|
content = truncateText(response.body.toString("utf-8"));
|
|
701
719
|
}
|
|
720
|
+
this.debugLogger.debug(
|
|
721
|
+
`[WebFetchTool] network_ms=${networkMs} extract_ms=${Date.now() - extractStart}`
|
|
722
|
+
);
|
|
702
723
|
const entry = {
|
|
703
724
|
fetchedAt: Date.now(),
|
|
704
725
|
status: response.status,
|
|
@@ -717,10 +738,16 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
717
738
|
return entry;
|
|
718
739
|
}
|
|
719
740
|
async executeDirectFetch(signal) {
|
|
741
|
+
const startMs = Date.now();
|
|
742
|
+
const elapsedSuffix = /* @__PURE__ */ __name(() => ` in ${((Date.now() - startMs) / 1e3).toFixed(1)}s`, "elapsedSuffix");
|
|
720
743
|
try {
|
|
721
744
|
const entry = await this.fetchAndProcess(signal);
|
|
722
745
|
if ("kind" in entry) {
|
|
723
|
-
|
|
746
|
+
const redirect = this.buildRedirectResult(entry);
|
|
747
|
+
return {
|
|
748
|
+
...redirect,
|
|
749
|
+
returnDisplay: `${redirect.returnDisplay}${elapsedSuffix()}`
|
|
750
|
+
};
|
|
724
751
|
}
|
|
725
752
|
const header = this.buildMetadataHeader(entry);
|
|
726
753
|
const binaryNote = entry.persistedPath ? `
|
|
@@ -732,7 +759,7 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
732
759
|
llmContent: `${header}
|
|
733
760
|
|
|
734
761
|
[No text could be extracted from this binary content.]${binaryNote}`,
|
|
735
|
-
returnDisplay: displaySummary
|
|
762
|
+
returnDisplay: `${displaySummary}${elapsedSuffix()}`,
|
|
736
763
|
resultFilePaths: [entry.persistedPath]
|
|
737
764
|
};
|
|
738
765
|
}
|
|
@@ -742,7 +769,7 @@ Status: ${entry.status} ${entry.statusText || "OK"} | Content-Type: ${entry.cont
|
|
|
742
769
|
llmContent: `${header}
|
|
743
770
|
|
|
744
771
|
${entry.content}${binaryNote}`,
|
|
745
|
-
returnDisplay: displaySummary
|
|
772
|
+
returnDisplay: `${displaySummary}${elapsedSuffix()}`,
|
|
746
773
|
...entry.persistedPath ? { resultFilePaths: [entry.persistedPath] } : {}
|
|
747
774
|
};
|
|
748
775
|
}
|
|
@@ -756,19 +783,50 @@ Please use the following content to answer the user's request.
|
|
|
756
783
|
---
|
|
757
784
|
${entry.content}
|
|
758
785
|
---`;
|
|
759
|
-
const
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
786
|
+
const sideQueryStart = Date.now();
|
|
787
|
+
let resultText;
|
|
788
|
+
try {
|
|
789
|
+
const result = await runSideQuery(this.config, {
|
|
790
|
+
purpose: "web-fetch",
|
|
791
|
+
// Best-effort: a failure falls back to raw content below; retrying
|
|
792
|
+
// 7× just delays that fallback.
|
|
793
|
+
maxAttempts: 1,
|
|
794
|
+
contents: [{ role: "user", parts: [{ text: fallbackPrompt }] }],
|
|
795
|
+
systemInstruction: "Extract and summarize the requested information from the provided web content. Be concise and accurate. Respond only with the requested information.",
|
|
796
|
+
// Stream so the provider SDK's whole-request timeout only bounds
|
|
797
|
+
// connect + first chunk: an exhaustive extraction can legitimately
|
|
798
|
+
// generate for >120s, and a non-streaming call dies at that SDK
|
|
799
|
+
// deadline and is then re-fired by SDK-internal retries (which
|
|
800
|
+
// maxAttempts does not govern).
|
|
801
|
+
stream: true,
|
|
802
|
+
abortSignal: AbortSignal.any([
|
|
803
|
+
signal,
|
|
804
|
+
AbortSignal.timeout(sideQueryTimeoutMs())
|
|
805
|
+
])
|
|
806
|
+
});
|
|
807
|
+
signal.throwIfAborted();
|
|
808
|
+
resultText = (result.text || "").trim();
|
|
809
|
+
this.debugLogger.debug(
|
|
810
|
+
`[WebFetchTool] side_query_ms=${Date.now() - sideQueryStart}`
|
|
811
|
+
);
|
|
812
|
+
} catch (error) {
|
|
813
|
+
if (signal.aborted) {
|
|
814
|
+
throw error;
|
|
815
|
+
}
|
|
816
|
+
this.debugLogger.error(
|
|
817
|
+
`[WebFetchTool] side_query_ms=${Date.now() - sideQueryStart} (failed); returning raw content`,
|
|
818
|
+
error
|
|
819
|
+
);
|
|
820
|
+
return {
|
|
821
|
+
llmContent: `${header}
|
|
822
|
+
|
|
823
|
+
[Content processing failed (${getErrorMessage(error)}). The raw fetched content follows.]
|
|
824
|
+
|
|
825
|
+
${entry.content}${binaryNote}`,
|
|
826
|
+
returnDisplay: `${displaySummary}${elapsedSuffix()} \u2014 processing failed, raw content returned`,
|
|
827
|
+
...entry.persistedPath ? { resultFilePaths: [entry.persistedPath] } : {}
|
|
828
|
+
};
|
|
829
|
+
}
|
|
772
830
|
if (!resultText) {
|
|
773
831
|
resultText = "[The processing model returned no content. The fetch itself succeeded \u2014 see the metadata above.]";
|
|
774
832
|
}
|
|
@@ -776,16 +834,15 @@ ${entry.content}
|
|
|
776
834
|
llmContent: `${header}
|
|
777
835
|
|
|
778
836
|
${resultText}${binaryNote}`,
|
|
779
|
-
returnDisplay: displaySummary
|
|
837
|
+
returnDisplay: `${displaySummary}${elapsedSuffix()}`,
|
|
780
838
|
...entry.persistedPath ? { resultFilePaths: [entry.persistedPath] } : {}
|
|
781
839
|
};
|
|
782
840
|
} catch (e) {
|
|
783
|
-
const
|
|
784
|
-
|
|
785
|
-
this.debugLogger.error(`[WebFetchTool] ${errorMessage}`, error);
|
|
841
|
+
const errorMessage = `Error during fetch for ${this.params.url}: ${getErrorMessage(e)}`;
|
|
842
|
+
this.debugLogger.error(`[WebFetchTool] ${errorMessage}`, e);
|
|
786
843
|
return {
|
|
787
844
|
llmContent: `Error: ${errorMessage}`,
|
|
788
|
-
returnDisplay: `Error: ${errorMessage}`,
|
|
845
|
+
returnDisplay: `Error: ${errorMessage}${elapsedSuffix()}`,
|
|
789
846
|
error: {
|
|
790
847
|
message: errorMessage,
|
|
791
848
|
type: "web_fetch_fallback_failed" /* WEB_FETCH_FALLBACK_FAILED */
|
|
@@ -930,7 +987,8 @@ Usage notes:
|
|
|
930
987
|
export {
|
|
931
988
|
WebFetchTool,
|
|
932
989
|
clearWebFetchCache,
|
|
933
|
-
rewriteGitHubBlobUrl
|
|
990
|
+
rewriteGitHubBlobUrl,
|
|
991
|
+
sideQueryTimeoutMs
|
|
934
992
|
};
|
|
935
993
|
/**
|
|
936
994
|
* @license
|
|
@@ -3,47 +3,49 @@
|
|
|
3
3
|
import {
|
|
4
4
|
buildModelIdContext,
|
|
5
5
|
resolveModelId
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-PIHKWN7M.js";
|
|
7
7
|
import {
|
|
8
8
|
DASHSCOPE_REGIONAL_HOSTS,
|
|
9
9
|
OpenAI
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
delay
|
|
13
|
-
} from "./chunk-NL37SKPP.js";
|
|
14
|
-
import "./chunk-HAL7YT4M.js";
|
|
15
|
-
import "./chunk-4WKAA4KS.js";
|
|
16
|
-
import "./chunk-CR3C7WXL.js";
|
|
17
|
-
import "./chunk-VGC4I5JJ.js";
|
|
18
|
-
import "./chunk-JD3MKVKL.js";
|
|
19
|
-
import "./chunk-UEY4AYUL.js";
|
|
20
|
-
import "./chunk-BDBMYST4.js";
|
|
21
|
-
import "./chunk-467G3SV5.js";
|
|
22
|
-
import {
|
|
23
|
-
BaseDeclarativeTool,
|
|
24
|
-
BaseToolInvocation,
|
|
25
|
-
ToolDisplayNames,
|
|
26
|
-
ToolNames
|
|
27
|
-
} from "./chunk-S35ZDXOS.js";
|
|
10
|
+
} from "./chunk-JJEFX6U5.js";
|
|
28
11
|
import {
|
|
29
12
|
resolveRequestTimeout
|
|
30
13
|
} from "./chunk-GLNBDYUX.js";
|
|
14
|
+
import {
|
|
15
|
+
delay
|
|
16
|
+
} from "./chunk-PPIHLGNE.js";
|
|
31
17
|
import {
|
|
32
18
|
buildRuntimeFetchOptions
|
|
33
|
-
} from "./chunk-
|
|
34
|
-
import "./chunk-
|
|
19
|
+
} from "./chunk-5I5BM454.js";
|
|
20
|
+
import "./chunk-5G2SK2OO.js";
|
|
21
|
+
import "./chunk-VGC4I5JJ.js";
|
|
22
|
+
import "./chunk-4K56OJFJ.js";
|
|
23
|
+
import "./chunk-JYS55H6Z.js";
|
|
35
24
|
import "./chunk-A4UCTEB5.js";
|
|
36
25
|
import "./chunk-XWRJCPHC.js";
|
|
26
|
+
import "./chunk-QNLNLENL.js";
|
|
27
|
+
import "./chunk-6X4GWOPW.js";
|
|
37
28
|
import "./chunk-TYQMGACW.js";
|
|
38
29
|
import "./chunk-TYAMGABM.js";
|
|
39
30
|
import "./chunk-FCMNKVXT.js";
|
|
31
|
+
import "./chunk-IS2SBY6T.js";
|
|
32
|
+
import "./chunk-HTR4WV6U.js";
|
|
33
|
+
import "./chunk-M7WBGLYP.js";
|
|
34
|
+
import "./chunk-U7ZFW55U.js";
|
|
35
|
+
import "./chunk-NPQDJGKU.js";
|
|
36
|
+
import {
|
|
37
|
+
BaseDeclarativeTool,
|
|
38
|
+
BaseToolInvocation,
|
|
39
|
+
ToolDisplayNames,
|
|
40
|
+
ToolNames
|
|
41
|
+
} from "./chunk-YM3SZTH4.js";
|
|
40
42
|
import {
|
|
41
43
|
createDebugLogger
|
|
42
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-OQB4EXO4.js";
|
|
43
45
|
import "./chunk-75DOP5OR.js";
|
|
44
46
|
import "./chunk-DMTGGOSA.js";
|
|
45
47
|
import "./chunk-YQ3U5MUC.js";
|
|
46
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-THJNPLI4.js";
|
|
47
49
|
import {
|
|
48
50
|
init_esbuild_shims
|
|
49
51
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -55,17 +57,23 @@ import {
|
|
|
55
57
|
init_esbuild_shims();
|
|
56
58
|
var SEARCH_TIMEOUT_MS = 6e4;
|
|
57
59
|
var MAX_RESULT_SIZE_CHARS = 1e5;
|
|
60
|
+
var RESULT_ENVELOPE_HEADROOM_CHARS = 2e3;
|
|
58
61
|
var MAX_STREAM_CHARS = 2e6;
|
|
59
62
|
var MAX_CANDIDATE_URLS = 25;
|
|
63
|
+
var MAX_OPENED_URLS = 25;
|
|
60
64
|
var NO_SEARCH_RETRY_BASE_DELAY_MS = 750;
|
|
61
65
|
var NO_SEARCH_RETRY_JITTER_MS = 500;
|
|
62
|
-
function
|
|
63
|
-
let
|
|
66
|
+
function classifyDashScopeBaseUrl(baseUrl) {
|
|
67
|
+
let url;
|
|
64
68
|
try {
|
|
65
|
-
|
|
69
|
+
url = new URL(baseUrl);
|
|
66
70
|
} catch {
|
|
67
|
-
return
|
|
71
|
+
return "invalid";
|
|
68
72
|
}
|
|
73
|
+
if (url.protocol !== "https:") {
|
|
74
|
+
return "insecure";
|
|
75
|
+
}
|
|
76
|
+
const hostname = url.hostname.toLowerCase();
|
|
69
77
|
const suffixes = [
|
|
70
78
|
...DASHSCOPE_REGIONAL_HOSTS,
|
|
71
79
|
"maas.aliyuncs.com",
|
|
@@ -74,7 +82,11 @@ function isDashScopeCompatibleBaseUrl(baseUrl) {
|
|
|
74
82
|
];
|
|
75
83
|
return suffixes.some(
|
|
76
84
|
(suffix) => hostname === suffix || hostname.endsWith("." + suffix)
|
|
77
|
-
);
|
|
85
|
+
) ? null : "unknown-host";
|
|
86
|
+
}
|
|
87
|
+
__name(classifyDashScopeBaseUrl, "classifyDashScopeBaseUrl");
|
|
88
|
+
function isDashScopeCompatibleBaseUrl(baseUrl) {
|
|
89
|
+
return classifyDashScopeBaseUrl(baseUrl) === null;
|
|
78
90
|
}
|
|
79
91
|
__name(isDashScopeCompatibleBaseUrl, "isDashScopeCompatibleBaseUrl");
|
|
80
92
|
function evaluateWebSearchGate(config) {
|
|
@@ -86,39 +98,52 @@ function evaluateWebSearchGate(config) {
|
|
|
86
98
|
notice: "WebSearch is enabled but no search model is configured. Set tools.webSearch.model (or WEB_SEARCH_MODEL) to a model declared under modelProviders."
|
|
87
99
|
};
|
|
88
100
|
}
|
|
101
|
+
let resolved;
|
|
102
|
+
try {
|
|
103
|
+
resolved = resolveModelId(selector, buildModelIdContext(config));
|
|
104
|
+
} catch (e) {
|
|
105
|
+
return {
|
|
106
|
+
ok: false,
|
|
107
|
+
notice: `WebSearch is enabled but the search model selector "${selector}" is invalid: ${e instanceof Error ? e.message : String(e)}`
|
|
108
|
+
};
|
|
109
|
+
}
|
|
89
110
|
if (settings?.baseUrl) {
|
|
90
|
-
|
|
111
|
+
const baseUrlIssue = classifyDashScopeBaseUrl(settings.baseUrl);
|
|
112
|
+
if (baseUrlIssue === "insecure") {
|
|
113
|
+
return {
|
|
114
|
+
ok: false,
|
|
115
|
+
notice: `WebSearch is enabled but WEB_SEARCH_BASE_URL (${settings.baseUrl}) uses plaintext HTTP. The search request carries a bearer API key; use an https:// endpoint.`
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
if (baseUrlIssue !== null) {
|
|
91
119
|
return {
|
|
92
120
|
ok: false,
|
|
93
121
|
notice: `WebSearch is enabled but WEB_SEARCH_BASE_URL (${settings.baseUrl}) is not a DashScope-compatible endpoint.`
|
|
94
122
|
};
|
|
95
123
|
}
|
|
96
124
|
const keyEnv = settings.apiKeyEnv ?? "DASHSCOPE_API_KEY";
|
|
97
|
-
if (!process.env[keyEnv]) {
|
|
125
|
+
if (!process.env[keyEnv]?.trim()) {
|
|
98
126
|
return {
|
|
99
127
|
ok: false,
|
|
100
128
|
notice: `WebSearch is enabled with WEB_SEARCH_BASE_URL but the API key variable ${keyEnv} is not set. Set WEB_SEARCH_API_KEY (or DASHSCOPE_API_KEY).`
|
|
101
129
|
};
|
|
102
130
|
}
|
|
131
|
+
if (!resolved) {
|
|
132
|
+
return {
|
|
133
|
+
ok: false,
|
|
134
|
+
notice: `WebSearch is enabled but the search model selector "${selector}" could not be resolved.`
|
|
135
|
+
};
|
|
136
|
+
}
|
|
103
137
|
return {
|
|
104
138
|
ok: true,
|
|
105
139
|
backend: {
|
|
106
|
-
modelId:
|
|
140
|
+
modelId: resolved.modelId,
|
|
107
141
|
apiKeyEnvKey: keyEnv,
|
|
108
142
|
baseUrl: settings.baseUrl,
|
|
109
143
|
webExtractor: settings.webExtractor !== false
|
|
110
144
|
}
|
|
111
145
|
};
|
|
112
146
|
}
|
|
113
|
-
let resolved;
|
|
114
|
-
try {
|
|
115
|
-
resolved = resolveModelId(selector, buildModelIdContext(config));
|
|
116
|
-
} catch (e) {
|
|
117
|
-
return {
|
|
118
|
-
ok: false,
|
|
119
|
-
notice: `WebSearch is enabled but the search model selector "${selector}" is invalid: ${e instanceof Error ? e.message : String(e)}`
|
|
120
|
-
};
|
|
121
|
-
}
|
|
122
147
|
if (!resolved) {
|
|
123
148
|
return {
|
|
124
149
|
ok: false,
|
|
@@ -135,7 +160,7 @@ function evaluateWebSearchGate(config) {
|
|
|
135
160
|
notice: `WebSearch is enabled but the search model "${selector}" does not match any model declared under modelProviders.`
|
|
136
161
|
};
|
|
137
162
|
}
|
|
138
|
-
const isUsableEntry = /* @__PURE__ */ __name((m) => m.authType !== "qwen-oauth" /* QWEN_OAUTH */ && !!m.baseUrl && isDashScopeCompatibleBaseUrl(m.baseUrl) && !!m.envKey && !!process.env[m.envKey], "isUsableEntry");
|
|
163
|
+
const isUsableEntry = /* @__PURE__ */ __name((m) => m.authType !== "qwen-oauth" /* QWEN_OAUTH */ && !!m.baseUrl && isDashScopeCompatibleBaseUrl(m.baseUrl) && !!m.envKey && !!process.env[m.envKey]?.trim(), "isUsableEntry");
|
|
139
164
|
const entry = matches.find(isUsableEntry) ?? matches[0];
|
|
140
165
|
if (entry.authType === "qwen-oauth" /* QWEN_OAUTH */) {
|
|
141
166
|
return {
|
|
@@ -143,10 +168,23 @@ function evaluateWebSearchGate(config) {
|
|
|
143
168
|
notice: `WebSearch search model "${selector}" resolves to a Qwen OAuth entry. The search side channel needs a modelProviders entry with a direct API key (envKey); OAuth tokens cannot back it. Use an authType-qualified selector (e.g. "openai:<model-id>") to target a specific entry.`
|
|
144
169
|
};
|
|
145
170
|
}
|
|
146
|
-
if (!entry.baseUrl
|
|
171
|
+
if (!entry.baseUrl) {
|
|
172
|
+
return {
|
|
173
|
+
ok: false,
|
|
174
|
+
notice: `WebSearch search model "${selector}" resolves to a non-DashScope endpoint (no baseUrl). The web_search backend requires a DashScope-compatible baseUrl.`
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
const entryBaseUrlIssue = classifyDashScopeBaseUrl(entry.baseUrl);
|
|
178
|
+
if (entryBaseUrlIssue === "insecure") {
|
|
147
179
|
return {
|
|
148
180
|
ok: false,
|
|
149
|
-
notice: `WebSearch search model "${selector}" resolves to a
|
|
181
|
+
notice: `WebSearch search model "${selector}" resolves to a plaintext-HTTP endpoint (${entry.baseUrl}). The search request carries a bearer API key; use an https:// baseUrl.`
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
if (entryBaseUrlIssue !== null) {
|
|
185
|
+
return {
|
|
186
|
+
ok: false,
|
|
187
|
+
notice: `WebSearch search model "${selector}" resolves to a non-DashScope endpoint (${entry.baseUrl}). The web_search backend requires a DashScope-compatible baseUrl.`
|
|
150
188
|
};
|
|
151
189
|
}
|
|
152
190
|
if (!entry.envKey) {
|
|
@@ -155,7 +193,7 @@ function evaluateWebSearchGate(config) {
|
|
|
155
193
|
notice: `WebSearch search model "${selector}" has no envKey on its modelProviders entry. Declare the API key environment variable name there.`
|
|
156
194
|
};
|
|
157
195
|
}
|
|
158
|
-
if (!process.env[entry.envKey]) {
|
|
196
|
+
if (!process.env[entry.envKey]?.trim()) {
|
|
159
197
|
return {
|
|
160
198
|
ok: false,
|
|
161
199
|
notice: `WebSearch search model "${selector}" reads its API key from ${entry.envKey}, which is not set in the environment.`
|
|
@@ -245,8 +283,10 @@ function collectFromItems(items, usage, fallbackText) {
|
|
|
245
283
|
}
|
|
246
284
|
__name(collectFromItems, "collectFromItems");
|
|
247
285
|
function formatLlmContent(query, data, partialNote) {
|
|
248
|
-
const
|
|
249
|
-
const
|
|
286
|
+
const allOpened = data.openedUrls;
|
|
287
|
+
const opened = allOpened.slice(0, MAX_OPENED_URLS);
|
|
288
|
+
const omittedOpened = allOpened.length - opened.length;
|
|
289
|
+
const unopened = data.candidateUrls.filter((url) => !allOpened.includes(url));
|
|
250
290
|
const candidates = unopened.slice(0, MAX_CANDIDATE_URLS);
|
|
251
291
|
const omittedCandidates = unopened.length - candidates.length;
|
|
252
292
|
const buildBody = /* @__PURE__ */ __name((answerText) => {
|
|
@@ -259,7 +299,8 @@ function formatLlmContent(query, data, partialNote) {
|
|
|
259
299
|
}
|
|
260
300
|
if (opened.length > 0) {
|
|
261
301
|
sections.push(
|
|
262
|
-
"Opened evidence pages (read in full by the search agent):\n" + opened.map((url) => `- ${url}`).join("\n")
|
|
302
|
+
"Opened evidence pages (read in full by the search agent):\n" + opened.map((url) => `- ${url}`).join("\n") + (omittedOpened > 0 ? `
|
|
303
|
+
[Note: ${omittedOpened} more opened page(s) omitted.]` : "")
|
|
263
304
|
);
|
|
264
305
|
}
|
|
265
306
|
if (candidates.length > 0) {
|
|
@@ -421,7 +462,7 @@ var WebSearchToolInvocation = class extends BaseToolInvocation {
|
|
|
421
462
|
if (event.item) {
|
|
422
463
|
partialItems.push(event.item);
|
|
423
464
|
streamedChars += JSON.stringify(event.item).length;
|
|
424
|
-
if (event.item.type === "web_search_call") {
|
|
465
|
+
if (event.item.type === "web_search_call" && event.item.status !== "failed") {
|
|
425
466
|
const sources = event.item.action?.sources?.length ?? 0;
|
|
426
467
|
if (sources > 0) {
|
|
427
468
|
updateOutput?.(`Found ${sources} sources`);
|
|
@@ -437,7 +478,8 @@ var WebSearchToolInvocation = class extends BaseToolInvocation {
|
|
|
437
478
|
}
|
|
438
479
|
case "response.completed":
|
|
439
480
|
case "response.failed":
|
|
440
|
-
case "response.incomplete":
|
|
481
|
+
case "response.incomplete":
|
|
482
|
+
case "response.cancelled": {
|
|
441
483
|
finalResponse = event.response;
|
|
442
484
|
break;
|
|
443
485
|
}
|
|
@@ -470,10 +512,8 @@ var WebSearchToolInvocation = class extends BaseToolInvocation {
|
|
|
470
512
|
if (inStreamError) {
|
|
471
513
|
const message = `Web search backend error ${inStreamError.code}: ${inStreamError.message}`;
|
|
472
514
|
this.debugLogger.error(`[WebSearch] ${message}`);
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
inStreamError.code.startsWith("Throttling") ? "web_search_rate_limited" /* WEB_SEARCH_RATE_LIMITED */ : "web_search_backend_failed" /* WEB_SEARCH_BACKEND_FAILED */
|
|
476
|
-
);
|
|
515
|
+
const errorType = inStreamError.code.startsWith("Throttling") ? "web_search_rate_limited" /* WEB_SEARCH_RATE_LIMITED */ : "web_search_backend_failed" /* WEB_SEARCH_BACKEND_FAILED */;
|
|
516
|
+
return terminalFailure(() => this.errorResult(message, errorType));
|
|
477
517
|
}
|
|
478
518
|
if (streamError !== void 0) {
|
|
479
519
|
const error = streamError;
|
|
@@ -505,15 +545,19 @@ var WebSearchToolInvocation = class extends BaseToolInvocation {
|
|
|
505
545
|
}
|
|
506
546
|
const status = finalResponse.status;
|
|
507
547
|
if (status === "failed") {
|
|
508
|
-
return
|
|
509
|
-
|
|
510
|
-
|
|
548
|
+
return terminalFailure(
|
|
549
|
+
() => this.errorResult(
|
|
550
|
+
"Web search backend reported the request as failed.",
|
|
551
|
+
"web_search_backend_failed" /* WEB_SEARCH_BACKEND_FAILED */
|
|
552
|
+
)
|
|
511
553
|
);
|
|
512
554
|
}
|
|
513
555
|
if (status === "cancelled") {
|
|
514
|
-
return
|
|
515
|
-
|
|
516
|
-
|
|
556
|
+
return terminalFailure(
|
|
557
|
+
() => this.errorResult(
|
|
558
|
+
"Web search was cancelled by the backend.",
|
|
559
|
+
"web_search_backend_failed" /* WEB_SEARCH_BACKEND_FAILED */
|
|
560
|
+
)
|
|
517
561
|
);
|
|
518
562
|
}
|
|
519
563
|
const items = finalResponse.output?.length ? finalResponse.output : partialItems;
|
|
@@ -536,7 +580,7 @@ var WebSearchToolInvocation = class extends BaseToolInvocation {
|
|
|
536
580
|
"web_search_no_search_performed" /* WEB_SEARCH_NO_SEARCH_PERFORMED */
|
|
537
581
|
);
|
|
538
582
|
}
|
|
539
|
-
if (status === "incomplete") {
|
|
583
|
+
if (status === "incomplete" && (data.candidateUrls.length > 0 || data.openedUrls.length > 0 || data.answerText.trim())) {
|
|
540
584
|
return this.finishResult(
|
|
541
585
|
data,
|
|
542
586
|
startedAt,
|
|
@@ -643,6 +687,13 @@ var WebSearchTool = class _WebSearchTool extends BaseDeclarativeTool {
|
|
|
643
687
|
__name(this, "WebSearchTool");
|
|
644
688
|
}
|
|
645
689
|
static Name = ToolNames.WEB_SEARCH;
|
|
690
|
+
// Results are self-truncated section-aware in formatLlmContent (the
|
|
691
|
+
// narrated answer shrinks first so the URL evidence sections survive);
|
|
692
|
+
// without this override the scheduler's global 25k threshold would slice
|
|
693
|
+
// the output generically before that design ever applies.
|
|
694
|
+
get maxOutputChars() {
|
|
695
|
+
return MAX_RESULT_SIZE_CHARS + RESULT_ENVELOPE_HEADROOM_CHARS;
|
|
696
|
+
}
|
|
646
697
|
/**
|
|
647
698
|
* The description embeds the current month; recompute it on schema access
|
|
648
699
|
* so a long-lived process (qwen serve, the ACP bridge) crossing a month
|