@qwen-code/qwen-code 0.19.8 → 0.19.9-preview.0
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/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +68 -51
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +82 -7
- package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +109 -41
- package/bundled/qc-helper/docs/features/commands.md +45 -44
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/hooks.md +29 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/integration-vscode.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve.md +66 -23
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
- package/bundled/review/DESIGN.md +303 -46
- package/bundled/review/SKILL.md +670 -165
- package/chunks/MaxSizedBox-BEVSAWZ6.js +70 -0
- package/chunks/{StandaloneSessionPicker-EYRGH6PJ.js → StandaloneSessionPicker-2DA2MDDE.js} +81 -79
- package/chunks/{acpAgent-GRFTTRHW.js → acpAgent-G3WJU3PS.js} +1318 -465
- package/chunks/agent-DD3WSHXE.js +68 -0
- package/chunks/agent-headless-MHI7U2CU.js +62 -0
- package/chunks/{anthropicContentGenerator-CPF22MA7.js → anthropicContentGenerator-56U3YCP2.js} +187 -31
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-MIZLXBLF.js} +5 -5
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-XMJVPNWM.js} +6 -6
- package/chunks/bridge-HKEWPNB5.js +78 -0
- package/chunks/{ca-MKD32FQL.js → ca-C2JTT2N5.js} +68 -6
- package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
- package/chunks/channel-worker-manager-YSFB4HUU.js +418 -0
- package/chunks/channel-worker-supervisor-QCKIOYZD.js +20 -0
- package/chunks/chunk-2FMQQXMM.js +38 -0
- package/chunks/{chunk-CSOTA7KX.js → chunk-2FO5GFKZ.js} +2 -2
- package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
- package/chunks/{chunk-UXEW557D.js → chunk-2J4ZWME4.js} +3 -3
- package/chunks/{chunk-P3XEEI3X.js → chunk-2TQXXQMI.js} +36 -7
- package/chunks/{chunk-GSHQYYIV.js → chunk-2UW5RFRP.js} +6 -26
- package/chunks/{chunk-6IAWPIQ6.js → chunk-2W3OOD4W.js} +5 -3
- package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
- package/chunks/{chunk-NQKLOAVJ.js → chunk-2Z5UX4KI.js} +2 -2
- package/chunks/chunk-3MX7D6QN.js +516 -0
- package/chunks/{chunk-EEN2TKST.js → chunk-43RXPU5Q.js} +2 -2
- package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
- package/chunks/{chunk-WF4FAXDL.js → chunk-4QZ3XHWE.js} +62 -62
- package/chunks/chunk-4QZADKJS.js +34 -0
- package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
- package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
- package/chunks/{chunk-TI3BWD4D.js → chunk-54UZQ57N.js} +39 -19
- package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
- package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
- package/chunks/chunk-5HBA2Z7V.js +28 -0
- package/chunks/{chunk-SKAZWEV5.js → chunk-5M6IDOMF.js} +35 -98
- package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
- package/chunks/{chunk-FQNC62B2.js → chunk-5VHASII5.js} +11 -11
- package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
- package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
- package/chunks/{chunk-O7FIRWJV.js → chunk-6JPDCEDB.js} +3 -3
- package/chunks/{chunk-3UP777ZS.js → chunk-6RLROE6G.js} +1 -1
- package/chunks/{chunk-GN3F6PIU.js → chunk-6WPJRYLZ.js} +5 -5
- package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
- package/chunks/chunk-7DKX4A5Z.js +91 -0
- package/chunks/{chunk-M7S4GK5Z.js → chunk-7IDCQ35Q.js} +147 -30
- package/chunks/{chunk-22MNNNXE.js → chunk-7NFB7LBQ.js} +11 -3
- package/chunks/{chunk-ZL5HN75Q.js → chunk-7R4DPSRA.js} +37 -3
- package/chunks/{chunk-VZ7HY3YU.js → chunk-7STBROEV.js} +3 -3
- package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
- package/chunks/{chunk-RMLZAUWH.js → chunk-A3U2TQUL.js} +10 -12
- package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
- package/chunks/{chunk-BOBRZZKD.js → chunk-A7W4GQRW.js} +5 -5
- package/chunks/{chunk-O33TBKDC.js → chunk-AAUZBE5Y.js} +155 -19
- package/chunks/{chunk-SQ2UATK7.js → chunk-ADLYZJYZ.js} +11 -11
- package/chunks/{chunk-QYUE6W3T.js → chunk-ALGGS7UH.js} +2 -39
- package/chunks/{chunk-WMPVYQ4P.js → chunk-ARKANCNX.js} +3 -2
- package/chunks/{chunk-IBY3Q3HG.js → chunk-AU4R7ACM.js} +967 -181
- package/chunks/{channel-worker-supervisor-NZQUOEFJ.js → chunk-B7MFJBKE.js} +190 -34
- package/chunks/{chunk-HW4N45EE.js → chunk-B7NUUEXC.js} +38 -11
- package/chunks/{chunk-3B26UVCX.js → chunk-BLPMRN4B.js} +39 -10
- package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
- package/chunks/{chunk-BVYU3ZTI.js → chunk-BXT6PQ73.js} +1020 -942
- package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
- package/chunks/{chunk-HDOH3QYE.js → chunk-CEGKYZDB.js} +2 -2
- package/chunks/{chunk-GLE2YUPU.js → chunk-COH43MRJ.js} +1 -1
- package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
- package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
- package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
- package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
- package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
- package/chunks/{chunk-27BHARDE.js → chunk-DMVA55W5.js} +2124 -30
- package/chunks/{chunk-JPALE3PA.js → chunk-DQCCLVQK.js} +6 -6
- package/chunks/{chunk-X2XNQQJI.js → chunk-E2UVIFI2.js} +186 -399
- package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
- package/chunks/{chunk-E7EMCSUG.js → chunk-EAHMOXLL.js} +64 -42
- package/chunks/{chunk-VGGOPZUL.js → chunk-EJ3KGYWL.js} +36 -8
- package/chunks/{chunk-DIWVZ3VM.js → chunk-ERTHKDKN.js} +5 -5
- package/chunks/{chunk-UX6OTBVD.js → chunk-EX5OULP3.js} +2 -2
- package/chunks/{chunk-5MBO76SL.js → chunk-F333XEAU.js} +3 -3
- package/chunks/{chunk-OACJLMLD.js → chunk-FBU7WRZI.js} +18 -2
- package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
- package/chunks/chunk-FEOBU3FA.js +253 -0
- package/chunks/{chunk-LAXNEOBG.js → chunk-FI2WSOWX.js} +19 -3
- package/chunks/{chunk-E7KNELIZ.js → chunk-FSA7ERJ2.js} +2 -2
- package/chunks/{chunk-44NROQYV.js → chunk-GDQQRV43.js} +4 -4
- package/chunks/{chunk-ZE6E424U.js → chunk-GN5HJJBO.js} +2 -2
- package/chunks/{chunk-O2YT7VB4.js → chunk-GOXKNSDZ.js} +2 -65
- package/chunks/{chunk-V35MD7KN.js → chunk-GRC5HGPI.js} +1 -1
- package/chunks/{chunk-ON3JA3RU.js → chunk-GTENQOEJ.js} +7 -9
- package/chunks/{chunk-S6RLAIUR.js → chunk-GYTKQYDB.js} +1 -1
- package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
- package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
- package/chunks/{chunk-PMFULMLX.js → chunk-HCJTURZD.js} +2262 -384
- package/chunks/chunk-HGG2RRXD.js +445 -0
- package/chunks/{chunk-II73RK2S.js → chunk-HGT6JR3U.js} +20 -1
- package/chunks/{chunk-DICGXFAI.js → chunk-HJCVNZLQ.js} +11 -9
- package/chunks/{chunk-3GNOQZDC.js → chunk-HJUDVNCO.js} +17663 -14877
- package/chunks/{chunk-AYNCLGTW.js → chunk-HRUGYOJN.js} +8 -51
- package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
- package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
- package/chunks/{chunk-BUZ6HGL4.js → chunk-HWTL6MPR.js} +357 -59
- package/chunks/chunk-IDS7MSUP.js +74 -0
- package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
- package/chunks/chunk-JCD4FM7K.js +296 -0
- package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
- package/chunks/{chunk-JZHIQJOE.js → chunk-JGO6RFI2.js} +6 -6
- package/chunks/{chunk-X3YGAX7V.js → chunk-JGUT3LWZ.js} +9 -2
- package/chunks/{chunk-JRQ7EVGE.js → chunk-JW7OOJC6.js} +2 -2
- package/chunks/{chunk-OQXDAMKY.js → chunk-KF5MMGG4.js} +8 -8
- package/chunks/{chunk-42XGFRJS.js → chunk-KKRTYONM.js} +8 -6
- package/chunks/{chunk-GGQQA4JW.js → chunk-KSO42X3Z.js} +15 -2
- package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
- package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
- package/chunks/{chunk-TLWA7TPR.js → chunk-L5U3ELZX.js} +2 -2
- package/chunks/{chunk-YHKAK72D.js → chunk-LHEOLOXU.js} +251 -63
- package/chunks/{chunk-H6EMK6QK.js → chunk-LQIDP6K5.js} +11913 -5207
- package/chunks/{chunk-I6WGFJJ3.js → chunk-LSEJG6AM.js} +73 -19
- package/chunks/{chunk-MZ7BABX3.js → chunk-LXLTBIDP.js} +44 -7
- package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
- package/chunks/{chunk-JCH35JB3.js → chunk-MKK4XGLF.js} +2 -2
- package/chunks/{chunk-YKZIAK7C.js → chunk-MO7O5722.js} +424 -40
- package/chunks/chunk-MR3PXB6E.js +48 -0
- package/chunks/{chunk-A5JOJ77H.js → chunk-MRYWYBQ4.js} +38 -15
- package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
- package/chunks/{chunk-TSPB77TG.js → chunk-NRAFASYX.js} +1016 -2967
- package/chunks/{chunk-BMFMJINR.js → chunk-OA4JVLSA.js} +28 -2
- package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
- package/chunks/chunk-OJAMDVF5.js +66 -0
- package/chunks/{chunk-IJRL2S3D.js → chunk-OKAIGAYW.js} +6 -6
- package/chunks/{chunk-FBET5XZ2.js → chunk-PEJWA3QQ.js} +29 -10
- package/chunks/{chunk-L4AMBVQG.js → chunk-PMKW35AT.js} +54 -22
- package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
- package/chunks/{chunk-PC4ZXHU2.js → chunk-Q6TUALBE.js} +3 -3
- package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
- package/chunks/{chunk-XOHNA2S6.js → chunk-QAW7PIHT.js} +3 -3
- package/chunks/{chunk-XYR5RUA5.js → chunk-QE2WJ7FS.js} +10 -3
- package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
- package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
- package/chunks/{chunk-Z3I3QJK3.js → chunk-QRUIS3DN.js} +1 -1
- package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
- package/chunks/{chunk-PUVCVELY.js → chunk-QUJOI7SR.js} +70 -8
- package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
- package/chunks/{chunk-6VK6FIMQ.js → chunk-R5D5JOAM.js} +415 -379
- package/chunks/{chunk-CD6USWHZ.js → chunk-R5XLNDE2.js} +2 -2
- package/chunks/{chunk-W7EEOR7D.js → chunk-RCEEXIOO.js} +8 -6
- package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
- package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
- package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
- package/chunks/{chunk-2EM7ECZD.js → chunk-SMSFWUFY.js} +309 -80
- package/chunks/{chunk-FV7425LN.js → chunk-SPJQO2CE.js} +18 -5
- package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
- package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
- package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
- package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
- package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
- package/chunks/{chunk-CCGOFQV3.js → chunk-TQBODCFD.js} +8 -7
- package/chunks/chunk-TV6K2FB4.js +224 -0
- package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
- package/chunks/{chunk-QYNNN7BK.js → chunk-TYLOFD2U.js} +2 -2
- package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
- package/chunks/{chunk-DHOLNQLC.js → chunk-UFDX27PL.js} +60 -40
- package/chunks/{chunk-WHJQ3JUS.js → chunk-UGN6CTNZ.js} +10 -10
- package/chunks/{chunk-CHB5SLZZ.js → chunk-UNLRKDMW.js} +4 -4
- package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
- package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
- package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
- package/chunks/{chunk-BOBOCR5H.js → chunk-VEETSXYX.js} +4 -4
- package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
- package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
- package/chunks/{chunk-WQTHLB5T.js → chunk-VKS7EIOA.js} +7 -7
- package/chunks/{chunk-J7RCB6N5.js → chunk-VVDNGM6X.js} +2 -2
- package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
- package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
- package/chunks/{chunk-7LTB54MK.js → chunk-WIEO4CWB.js} +2 -2
- package/chunks/chunk-WMC6HH7Y.js +493 -0
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-WTNZ6DXB.js} +2 -2
- package/chunks/{chunk-L46XKEGM.js → chunk-X6ODDESK.js} +5 -8
- package/chunks/chunk-XDPYM5DE.js +71 -0
- package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
- package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
- package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
- package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
- package/chunks/{chunk-SUAKHHK7.js → chunk-Y66VOBRP.js} +3 -3
- package/chunks/chunk-YAF2MQZ6.js +19 -0
- package/chunks/chunk-YHN5SUIJ.js +219 -0
- package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
- package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
- package/chunks/{chunk-YDOXPLYL.js → chunk-ZA74ZTQU.js} +4564 -1326
- package/chunks/{chunk-DCZWC4PF.js → chunk-ZGE3222J.js} +5 -5
- package/chunks/chunk-ZP4ZZJJG.js +448 -0
- package/chunks/{chunk-AHNJGLFV.js → chunk-ZPAHLFZU.js} +3 -3
- package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
- package/chunks/{computer-use-WMY3UOBX.js → computer-use-SHA6C3ES.js} +50 -50
- package/chunks/config-utils-XSHOMMK4.js +24 -0
- package/chunks/contextCommand-HOAF5LUC.js +68 -0
- package/chunks/create-sub-session-EAB2U5XW.js +207 -0
- package/chunks/create-sub-session-WJOWBFEP.js +375 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-GMVKSXZT.js} +9 -9
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-VDZKUAVK.js} +7 -7
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-UG7C7RAR.js} +14 -10
- package/chunks/{daemon-WPAENEBW.js → daemon-MI5HF26N.js} +1074 -61
- package/chunks/daemon-status-provider-KFL3LRTP.js +76 -0
- package/chunks/{de-ZFPPQVSF.js → de-2VCDRDGU.js} +68 -6
- package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
- package/chunks/{dist-O2IRTRPP.js → dist-IEXZC5ZR.js} +10 -10
- package/chunks/{dist-SCFLLYMK.js → dist-PQK4GCKA.js} +12 -11
- package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
- package/chunks/{dist-E6UANPIM.js → dist-U75JK3PF.js} +1011 -197
- package/chunks/{dist-H2AEJCZ5.js → dist-VXO7QBON.js} +5 -5
- package/chunks/{dist-Z34QPAQW.js → dist-WH4TZSH3.js} +529 -79
- package/chunks/{dist-BEXOZXLQ.js → dist-X2ABIW5R.js} +36 -15
- package/chunks/earlyInputCapture-PKAQJMIP.js +69 -0
- package/chunks/{edit-OTYWAXGP.js → edit-6TXLYHJ2.js} +51 -51
- package/chunks/{en-N4EPZAQI.js → en-NJCA3TAA.js} +78 -6
- package/chunks/{enter-worktree-HNYBDVCX.js → enter-worktree-ZTILGPJX.js} +50 -50
- package/chunks/{enterPlanMode-CJCNGT63.js → enterPlanMode-62HRAMCH.js} +66 -51
- package/chunks/environment-OYA3ZVEL.js +89 -0
- package/chunks/errors-BFXOUUUR.js +75 -0
- package/chunks/{exit-worktree-DUUKOE3X.js → exit-worktree-HHJ5M6MV.js} +50 -50
- package/chunks/{exitPlanMode-AMMSXOAJ.js → exitPlanMode-M3SWHCL7.js} +51 -51
- package/chunks/{fast-path-OV6NIP3K.js → fast-path-3VMPLM74.js} +8 -8
- package/chunks/{fast-path-settings-7RIFI3PK.js → fast-path-settings-DAOVFADC.js} +8 -6
- package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
- package/chunks/{fr-5WWMY53B.js → fr-5F3E7WKD.js} +68 -6
- package/chunks/{gemini-NQ3WWBKB.js → gemini-ZCGVYOJL.js} +181 -110
- package/chunks/{geminiContentGenerator-CDUNEJQE.js → geminiContentGenerator-XBYBAIDQ.js} +9 -9
- package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
- package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
- package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
- package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
- package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
- package/chunks/{glob-ROV3YS4R.js → glob-UOEYQNHN.js} +97 -75
- package/chunks/{grep-NRITKDCD.js → grep-OQM3CH7W.js} +50 -50
- package/chunks/handleAutoUpdate-ORBYVJHZ.js +69 -0
- package/chunks/i18n-NBP574CO.js +84 -0
- package/chunks/initializer-CWD7TCCD.js +73 -0
- package/chunks/installationInfo-CHPDUPWC.js +65 -0
- package/chunks/{ja-CUHZOLEJ.js → ja-66J6B53L.js} +69 -7
- package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-AU22CQI6.js} +4 -4
- package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
- package/chunks/list-ZTTO362W.js +76 -0
- package/chunks/loadedSettingsAdapter-V4ZTRKUO.js +70 -0
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-C4EXLYVA.js} +10 -10
- package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
- package/chunks/{ls-7MFU2QYW.js → ls-2OUTG3IZ.js} +6 -6
- package/chunks/{lsp-XHDTPTGV.js → lsp-4VMNXZW6.js} +4 -4
- package/chunks/mcp-UH5PSGIK.js +70 -0
- package/chunks/{monitor-FL2ZO33W.js → monitor-F4NYEU5J.js} +50 -50
- package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
- package/chunks/nonInteractiveCli-7IHPXVNH.js +129 -0
- package/chunks/{notebook-edit-6PULTHL5.js → notebook-edit-HPDXNGQH.js} +51 -51
- package/chunks/openaiContentGenerator-OBDNNOE2.js +56 -0
- package/chunks/pidfile-AUMGYIOK.js +73 -0
- package/chunks/{pt-OLYN42DS.js → pt-TFZO5Y6T.js} +68 -6
- package/chunks/{qwenContentGenerator-NX2E7PB7.js → qwenContentGenerator-LH2U2YRG.js} +52 -52
- package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-LEYOU7RU.js} +9 -9
- package/chunks/read-file-HUUFBLEO.js +30 -0
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-JUFHCKSC.js} +5 -5
- package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
- package/chunks/{record-artifact-SQ2OKRJW.js → record-artifact-DWSMBXYY.js} +4 -4
- package/chunks/ripGrep-C7X33LU6.js +60 -0
- package/chunks/{ru-LDM3GWVQ.js → ru-4L4LFHIT.js} +68 -6
- package/chunks/{run-qwen-serve-JK2DL7PI.js → run-qwen-serve-DGW5AFDJ.js} +1465 -283
- package/chunks/runtime-NYUSLBEZ.js +99 -0
- package/chunks/{scheduler-O4IGVZKK.js → scheduler-5VKDXULT.js} +51 -51
- package/chunks/{send-message-76GT3JMC.js → send-message-JZ752NWD.js} +7 -7
- package/chunks/serve-UTAHSFXH.js +76 -0
- package/chunks/{server-SGNPKX2O.js → server-VUHSYSUV.js} +9088 -1817
- package/chunks/{session-5BNM25EZ.js → session-QSGSSNFB.js} +340 -135
- package/chunks/settings-X24RYEED.js +120 -0
- package/chunks/shell-4MSI2R4O.js +70 -0
- package/chunks/{skill-I22QK5XS.js → skill-JR3GTNVZ.js} +24 -24
- package/chunks/spawnChannel-RFAAO44J.js +70 -0
- package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
- package/chunks/{src-BBQSM46M.js → src-YDBNMIIM.js} +183 -53
- package/chunks/standalone-update-4CY4HKGC.js +79 -0
- package/chunks/{startInteractiveUI-JII36UGN.js → startInteractiveUI-FOD7MMVB.js} +2368 -1923
- package/chunks/stdioHelpers-UMY72QRP.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-LELY6HAI.js} +5 -5
- package/chunks/task-create-QY3BIMNM.js +23 -0
- package/chunks/{task-list-TGGJX7EA.js → task-list-D2U47WBJ.js} +11 -10
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-N6E5IYLH.js} +4 -4
- package/chunks/{task-update-XYWMHJGJ.js → task-update-HJCQILLB.js} +13 -12
- package/chunks/{team-create-A7NUU5AQ.js → team-create-ZLQSU2E3.js} +50 -50
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-RCWYDRF4.js} +11 -10
- package/chunks/{team-plan-approval-TOQRJ2KI.js → team-plan-approval-YUAYBYLS.js} +50 -50
- package/chunks/theme-manager-SKNEBMOG.js +64 -0
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-FKCGATPJ.js} +6 -6
- package/chunks/{tool-search-SZ4EFS2T.js → tool-search-V5J3TGWY.js} +24 -24
- package/chunks/total-session-admission-2WIH72I3.js +72 -0
- package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
- package/chunks/trustedFolders-JF265CRI.js +80 -0
- package/chunks/types-ML3TRJQ5.js +16 -0
- package/chunks/updateCheck-AMXNPBP6.js +69 -0
- package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
- package/chunks/validateNonInterActiveAuth-6YHQO7PD.js +194 -0
- package/chunks/{version-NO2XSNNP.js → version-UEJJK7PE.js} +3 -3
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-QGODBB6S.js} +8 -8
- package/chunks/{workflow-WO2H6NRI.js → workflow-5YFA5V4M.js} +51 -51
- package/chunks/workspace-providers-status-LMBLBNR7.js +73 -0
- package/chunks/workspace-registration-store-VV2S4MSV.js +27 -0
- package/chunks/workspace-registry-BVMPYRLN.js +76 -0
- package/chunks/workspace-service-PUYIZ3J4.js +86 -0
- package/chunks/workspace-skills-status-CJ7J2KPP.js +72 -0
- package/chunks/{write-file-PX2Z7IBE.js → write-file-OV77M6X7.js} +51 -51
- package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
- package/chunks/{zh-J4F6QWQV.js → zh-FSAH32JB.js} +79 -7
- package/chunks/{zh-TW-XVDWOLSW.js → zh-TW-D2YIE2LO.js} +79 -7
- package/cli.js +18 -17
- package/locales/ca.js +91 -7
- package/locales/de.js +90 -7
- package/locales/en.js +109 -7
- package/locales/fr.js +91 -7
- package/locales/ja.js +93 -7
- package/locales/pt.js +90 -7
- package/locales/ru.js +90 -7
- package/locales/zh-TW.js +106 -7
- package/locales/zh.js +106 -7
- package/package.json +3 -6
- package/web-shell/assets/{arc-BWyoJpY2.js → arc-CObt_TK9.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BT0mGrz2.js → architectureDiagram-3BPJPVTR-B7aiJ6CK.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BLgUWvyf.js → blockDiagram-GPEHLZMM-BSK2CrID.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DYx9M7oU.js → c4Diagram-AAUBKEIU-Bhx2p7T_.js} +1 -1
- package/web-shell/assets/channel-BBaLq8MV.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CfMHWbuZ.js → chunk-2J33WTMH-c3Hzv0Ni.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-B1URoqEV.js → chunk-4BX2VUAB-DNXaK7ZF.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DAIaM4QF.js → chunk-55IACEB6-BXjvDj_i.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-B2X34knw.js → chunk-727SXJPM-B6CaKFp-.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Cif-zLTQ.js → chunk-AQP2D5EJ-tij6Mz9B.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-H18WCXdY.js → chunk-FMBD7UC4-DdlsGk2h.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-YFtetHi0.js → chunk-ND2GUHAM-CdgGZSHE.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-By2hiH3r.js → chunk-QZHKN3VN-D8oJn1C0.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B2ZK6sWE.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B2ZK6sWE.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-VrcnnLZu.js → cose-bilkent-S5V4N54A-BUVmNp1Y.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CGo-IaVV.js → dagre-BM42HDAG-CO4q310O.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Dl4QjzIB.js → diagram-2AECGRRQ-C6gFvWkg.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-qMLmsO0u.js → diagram-5GNKFQAL-NG2I_c0h.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CHlmuxPI.js → diagram-KO2AKTUF-DFKMS6I9.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUwU3GwT.js → diagram-LMA3HP47-BiElfsfP.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-HEhwPDUM.js → diagram-OG6HWLK6-zLWDYUqu.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-1n0llBmM.js → erDiagram-TEJ5UH35-DoVaazhK.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BN74uMnt.js → flowDiagram-I6XJVG4X-0RLz-mXg.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BoOq78i3.js → ganttDiagram-6RSMTGT7-C-eX1A39.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CN8b00c8.js → gitGraphDiagram-PVQCEYII-BauQu1Bu.js} +1 -1
- package/web-shell/assets/index-3uAT3ehO.css +5 -0
- package/web-shell/assets/index-CVHa2QH7.js +3 -0
- package/web-shell/assets/index-D1KigWat.js +1128 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CCurnIna.js → infoDiagram-5YYISTIA-C800cFvZ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AwuRqdUP.js → ishikawaDiagram-YF4QCWOH-CFK1Jk6e.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-B7IICk-E.js → journeyDiagram-JHISSGLW-Cjx0WAC4.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BYF0OKhx.js → kanban-definition-UN3LZRKU-DWMDHbiv.js} +1 -1
- package/web-shell/assets/{linear-GWWguGfD.js → linear-vpW4FrZs.js} +1 -1
- package/web-shell/assets/{mermaid.core-JqtkxvCl.js → mermaid.core-DsHRUnDd.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-B0MmHsZ6.js → mindmap-definition-RKZ34NQL-D3Eb1cAK.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DhImUZLQ.js → pieDiagram-4H26LBE5-Cr2-6sWt.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DGeSC3DT.js → quadrantDiagram-W4KKPZXB-Yd7yUgVp.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DkspY6Re.js → requirementDiagram-4Y6WPE33-BE6SprL8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CaOofS2x.js → sankeyDiagram-5OEKKPKP-DzkuMK8d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DFQ_kFnN.js → sequenceDiagram-3UESZ5HK-wD9A3Dhi.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-D3snw0Tz.js → stateDiagram-AJRCARHV-BOp5q1Nm.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDsWUmPG.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-l4zH8nLM.js → timeline-definition-PNZ67QCA-Btc08sUA.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BnRlA98M.js → vennDiagram-CIIHVFJN-Bv6upsOA.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BS0xUdmd.js → wardley-L42UT6IY-D-XamnCK.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKGBUWyQ.js → wardleyDiagram-YWT4CUSO-BbP_5Wfp.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DVb2HuOB.js → xychartDiagram-2RQKCTM6-CO5Hh28b.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/MaxSizedBox-5DT2SD7B.js +0 -71
- package/chunks/agent-H2DGKS77.js +0 -68
- package/chunks/agent-headless-KFMFIT6J.js +0 -62
- package/chunks/bridge-NA3ZQQKJ.js +0 -78
- package/chunks/chunk-5P5XGNYH.js +0 -93
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/chunks/chunk-XNXVCNAT.js +0 -88
- package/chunks/contextCommand-LXFZRP4L.js +0 -68
- package/chunks/daemon-status-provider-GJRXY5EN.js +0 -76
- package/chunks/earlyInputCapture-KNOYZ4MJ.js +0 -69
- package/chunks/environment-ATFTYMLZ.js +0 -88
- package/chunks/errors-A54HAADA.js +0 -75
- package/chunks/handleAutoUpdate-CEZJAARW.js +0 -65
- package/chunks/initializer-BRFJKRRX.js +0 -71
- package/chunks/list-KVHF7O4X.js +0 -73
- package/chunks/loadedSettingsAdapter-LL5PSFKX.js +0 -68
- package/chunks/mcp-3GCXRTOQ.js +0 -68
- package/chunks/nonInteractiveCli-PTQI3DV6.js +0 -119
- package/chunks/openaiContentGenerator-YE42PKCY.js +0 -56
- package/chunks/pidfile-NZYSCFRK.js +0 -73
- package/chunks/read-file-33XGP5HF.js +0 -30
- package/chunks/ripGrep-QWZLGTAN.js +0 -60
- package/chunks/serve-JTMIGANH.js +0 -74
- package/chunks/settings-3MI4XXP6.js +0 -118
- package/chunks/shell-YJKBE67T.js +0 -68
- package/chunks/spawnChannel-UNV6W4DU.js +0 -70
- package/chunks/task-create-WCHTB435.js +0 -22
- package/chunks/theme-manager-WZ4RRMMB.js +0 -64
- package/chunks/total-session-admission-ULXJWXFV.js +0 -72
- package/chunks/trustedFolders-LAZZPZ3D.js +0 -79
- package/chunks/types-QX5C3CHJ.js +0 -12
- package/chunks/updateCheck-KONLM73X.js +0 -65
- package/chunks/validateNonInterActiveAuth-MPKSRCXD.js +0 -184
- package/chunks/workspace-providers-status-3W7E7DFW.js +0 -71
- package/chunks/workspace-registry-SXJZNN3O.js +0 -74
- package/chunks/workspace-service-CZRQZ4Q4.js +0 -80
- package/chunks/workspace-skills-status-K7WFREPD.js +0 -70
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- 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/web-shell/assets/channel-wmPUGHtg.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +0 -1
- package/web-shell/assets/index-CNwoO1Cn.js +0 -783
- package/web-shell/assets/index-CWQ0z6kZ.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +0 -1
|
@@ -10,49 +10,49 @@ import {
|
|
|
10
10
|
require_rpc,
|
|
11
11
|
require_umd,
|
|
12
12
|
require_writer
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-4WKAA4KS.js";
|
|
14
14
|
import {
|
|
15
15
|
require_hasown
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-CR3C7WXL.js";
|
|
17
17
|
import {
|
|
18
18
|
DEFAULT_QWEN_MODEL,
|
|
19
19
|
MAINLINE_CODER_MODEL
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-CARU2RR2.js";
|
|
21
21
|
import {
|
|
22
22
|
Mutex
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-VGC4I5JJ.js";
|
|
24
24
|
import {
|
|
25
25
|
isAnyAutoMemPath
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-FBU7WRZI.js";
|
|
27
27
|
import {
|
|
28
28
|
InstallationManager
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-Y66VOBRP.js";
|
|
30
30
|
import {
|
|
31
31
|
STRUCTURED_OUTPUT_REDACTED_ARGS
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-WTNZ6DXB.js";
|
|
33
33
|
import {
|
|
34
34
|
BaseDeclarativeTool,
|
|
35
35
|
BaseToolInvocation,
|
|
36
36
|
ToolDisplayNames,
|
|
37
37
|
ToolNames
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
39
39
|
import {
|
|
40
40
|
atomicWriteFile,
|
|
41
41
|
atomicWriteFileSync
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-WIEO4CWB.js";
|
|
43
43
|
import {
|
|
44
44
|
convertSchema,
|
|
45
45
|
estimateTextTokens,
|
|
46
46
|
runtimeDiagnostics,
|
|
47
47
|
safeJsonParse
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-TQBODCFD.js";
|
|
49
49
|
import {
|
|
50
50
|
require_lib
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-A4UCTEB5.js";
|
|
52
52
|
import {
|
|
53
53
|
FinishReason,
|
|
54
54
|
GenerateContentResponse
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-4LD5APFL.js";
|
|
56
56
|
import {
|
|
57
57
|
FatalConfigError,
|
|
58
58
|
Storage,
|
|
@@ -71,13 +71,13 @@ import {
|
|
|
71
71
|
setShellTracePropagation,
|
|
72
72
|
shortenPath,
|
|
73
73
|
unescapePath
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
75
75
|
import {
|
|
76
76
|
require_dist
|
|
77
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-75DOP5OR.js";
|
|
78
78
|
import {
|
|
79
79
|
require_src
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-DMTGGOSA.js";
|
|
81
81
|
import {
|
|
82
82
|
DiagLogLevel,
|
|
83
83
|
ROOT_CONTEXT,
|
|
@@ -93,11 +93,11 @@ import {
|
|
|
93
93
|
metrics,
|
|
94
94
|
propagation,
|
|
95
95
|
trace
|
|
96
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-TB6UDU4T.js";
|
|
97
97
|
import {
|
|
98
98
|
__qwen_dirname,
|
|
99
99
|
init_esbuild_shims
|
|
100
|
-
} from "./chunk-
|
|
100
|
+
} from "./chunk-5O2XNYP6.js";
|
|
101
101
|
import {
|
|
102
102
|
__commonJS,
|
|
103
103
|
__esm,
|
|
@@ -45840,19 +45840,19 @@ var require_getMachineId = __commonJS({
|
|
|
45840
45840
|
if (!getMachineIdImpl) {
|
|
45841
45841
|
switch (process2.platform) {
|
|
45842
45842
|
case "darwin":
|
|
45843
|
-
getMachineIdImpl = (await import("./getMachineId-darwin-
|
|
45843
|
+
getMachineIdImpl = (await import("./getMachineId-darwin-IUOMFXU3.js")).getMachineId;
|
|
45844
45844
|
break;
|
|
45845
45845
|
case "linux":
|
|
45846
|
-
getMachineIdImpl = (await import("./getMachineId-linux-
|
|
45846
|
+
getMachineIdImpl = (await import("./getMachineId-linux-K7XJYFHL.js")).getMachineId;
|
|
45847
45847
|
break;
|
|
45848
45848
|
case "freebsd":
|
|
45849
|
-
getMachineIdImpl = (await import("./getMachineId-bsd-
|
|
45849
|
+
getMachineIdImpl = (await import("./getMachineId-bsd-EXV7SWPA.js")).getMachineId;
|
|
45850
45850
|
break;
|
|
45851
45851
|
case "win32":
|
|
45852
|
-
getMachineIdImpl = (await import("./getMachineId-win-
|
|
45852
|
+
getMachineIdImpl = (await import("./getMachineId-win-KBA6RAI5.js")).getMachineId;
|
|
45853
45853
|
break;
|
|
45854
45854
|
default:
|
|
45855
|
-
getMachineIdImpl = (await import("./getMachineId-unsupported-
|
|
45855
|
+
getMachineIdImpl = (await import("./getMachineId-unsupported-EA5FDRJ6.js")).getMachineId;
|
|
45856
45856
|
break;
|
|
45857
45857
|
}
|
|
45858
45858
|
}
|
|
@@ -52768,8 +52768,8 @@ var require_async = __commonJS({
|
|
|
52768
52768
|
cb(null, x);
|
|
52769
52769
|
}
|
|
52770
52770
|
}, "maybeRealpath");
|
|
52771
|
-
var defaultReadPackage = /* @__PURE__ */ __name(function defaultReadPackage2(
|
|
52772
|
-
|
|
52771
|
+
var defaultReadPackage = /* @__PURE__ */ __name(function defaultReadPackage2(readFile2, pkgfile, cb) {
|
|
52772
|
+
readFile2(pkgfile, function(readFileErr, body) {
|
|
52773
52773
|
if (readFileErr) cb(readFileErr);
|
|
52774
52774
|
else {
|
|
52775
52775
|
try {
|
|
@@ -52804,7 +52804,7 @@ var require_async = __commonJS({
|
|
|
52804
52804
|
opts = normalizeOptions(x, opts);
|
|
52805
52805
|
var isFile = opts.isFile || defaultIsFile;
|
|
52806
52806
|
var isDirectory = opts.isDirectory || defaultIsDir;
|
|
52807
|
-
var
|
|
52807
|
+
var readFile2 = opts.readFile || fs9.readFile;
|
|
52808
52808
|
var realpath = opts.realpath || defaultRealpath;
|
|
52809
52809
|
var readPackage = opts.readPackage || defaultReadPackage;
|
|
52810
52810
|
if (opts.readFile && opts.readPackage) {
|
|
@@ -52930,7 +52930,7 @@ var require_async = __commonJS({
|
|
|
52930
52930
|
var pkgfile = path11.join(pkgdir, "package.json");
|
|
52931
52931
|
isFile(pkgfile, function(err2, ex) {
|
|
52932
52932
|
if (!ex) return loadpkg(path11.dirname(dir), cb2);
|
|
52933
|
-
readPackage(
|
|
52933
|
+
readPackage(readFile2, pkgfile, function(err3, pkgParam) {
|
|
52934
52934
|
if (err3) cb2(err3);
|
|
52935
52935
|
var pkg = pkgParam;
|
|
52936
52936
|
if (pkg && opts.packageFilter) {
|
|
@@ -52955,7 +52955,7 @@ var require_async = __commonJS({
|
|
|
52955
52955
|
isFile(pkgfile, function(err2, ex) {
|
|
52956
52956
|
if (err2) return cb2(err2);
|
|
52957
52957
|
if (!ex) return loadAsFile(path11.join(x2, "index"), fpkg, cb2);
|
|
52958
|
-
readPackage(
|
|
52958
|
+
readPackage(readFile2, pkgfile, function(err3, pkgParam) {
|
|
52959
52959
|
if (err3) return cb2(err3);
|
|
52960
52960
|
var pkg = pkgParam;
|
|
52961
52961
|
if (pkg && opts.packageFilter) {
|
|
@@ -59215,6 +59215,9 @@ __name(detectEncodingFromBuffer, "detectEncodingFromBuffer");
|
|
|
59215
59215
|
// packages/core/src/utils/pdf.ts
|
|
59216
59216
|
init_esbuild_shims();
|
|
59217
59217
|
import { execFile } from "node:child_process";
|
|
59218
|
+
import { mkdtemp, readdir, readFile, rm } from "node:fs/promises";
|
|
59219
|
+
import { tmpdir } from "node:os";
|
|
59220
|
+
import { join } from "node:path";
|
|
59218
59221
|
var MAX_PDF_TEXT_OUTPUT_CHARS = 1e5;
|
|
59219
59222
|
var PDF_FULL_TEXT_PAGE_LIMIT = 10;
|
|
59220
59223
|
var PDF_MAX_PAGES_PER_READ = 20;
|
|
@@ -59223,6 +59226,10 @@ var PDF_TEXT_RESULT_MAX_TOKENS = 12e3;
|
|
|
59223
59226
|
var PDF_TEXT_RESULT_WRAPPER_TOKEN_CHARS = 64;
|
|
59224
59227
|
var PDF_TEXT_RESULT_CHARS_PER_TOKEN = 4;
|
|
59225
59228
|
var PDF_TEXT_EXTRACTION_UNAVAILABLE_MESSAGE = "pdftotext is not installed. Install poppler-utils to enable PDF text extraction (e.g. `apt-get install poppler-utils` or `brew install poppler`).";
|
|
59229
|
+
var PDF_RENDER_UNAVAILABLE_MESSAGE = "pdftoppm is not installed. Install poppler-utils to enable PDF page rendering (e.g. `apt-get install poppler-utils` or `brew install poppler`).";
|
|
59230
|
+
var PDF_RENDER_SCALE_TO_PX = 1600;
|
|
59231
|
+
var PDF_RENDER_MAX_TOTAL_BASE64_BYTES = 25 * 1024 * 1024;
|
|
59232
|
+
var PDF_RENDER_TIMEOUT_MS = 12e4;
|
|
59226
59233
|
var MAX_PDF_PAGE_NUMBER = 1e6;
|
|
59227
59234
|
function shouldRequirePDFPageRange(pageCount, sizeBytes) {
|
|
59228
59235
|
const hadPdfInfo = pageCount !== null;
|
|
@@ -59447,6 +59454,125 @@ async function extractPDFText(filePath, options) {
|
|
|
59447
59454
|
}
|
|
59448
59455
|
}
|
|
59449
59456
|
__name(extractPDFText, "extractPDFText");
|
|
59457
|
+
var pdftoppmAvailable;
|
|
59458
|
+
var pdftoppmAvailablePromise;
|
|
59459
|
+
async function isPdftoppmAvailable() {
|
|
59460
|
+
if (pdftoppmAvailable !== void 0) return pdftoppmAvailable;
|
|
59461
|
+
if (pdftoppmAvailablePromise) return pdftoppmAvailablePromise;
|
|
59462
|
+
pdftoppmAvailablePromise = (async () => {
|
|
59463
|
+
try {
|
|
59464
|
+
const { code } = await execCommand("pdftoppm", ["-v"], {
|
|
59465
|
+
timeout: 5e3
|
|
59466
|
+
});
|
|
59467
|
+
return code === 0;
|
|
59468
|
+
} catch {
|
|
59469
|
+
return false;
|
|
59470
|
+
}
|
|
59471
|
+
})().then((result) => {
|
|
59472
|
+
pdftoppmAvailable = result;
|
|
59473
|
+
return result;
|
|
59474
|
+
}).finally(() => {
|
|
59475
|
+
pdftoppmAvailablePromise = void 0;
|
|
59476
|
+
});
|
|
59477
|
+
return pdftoppmAvailablePromise;
|
|
59478
|
+
}
|
|
59479
|
+
__name(isPdftoppmAvailable, "isPdftoppmAvailable");
|
|
59480
|
+
function comparePdfPageFilenames(a, b) {
|
|
59481
|
+
const pageNumber = /* @__PURE__ */ __name((name) => {
|
|
59482
|
+
const match = /(\d+)\.jpg$/i.exec(name);
|
|
59483
|
+
return match ? parseInt(match[1], 10) : 0;
|
|
59484
|
+
}, "pageNumber");
|
|
59485
|
+
return pageNumber(a) - pageNumber(b);
|
|
59486
|
+
}
|
|
59487
|
+
__name(comparePdfPageFilenames, "comparePdfPageFilenames");
|
|
59488
|
+
async function renderPDFPagesToImages(filePath, options) {
|
|
59489
|
+
const available = await isPdftoppmAvailable();
|
|
59490
|
+
if (!available) {
|
|
59491
|
+
return { success: false, error: PDF_RENDER_UNAVAILABLE_MESSAGE };
|
|
59492
|
+
}
|
|
59493
|
+
let tempDir;
|
|
59494
|
+
try {
|
|
59495
|
+
tempDir = await mkdtemp(join(tmpdir(), "pdf-render-"));
|
|
59496
|
+
const outputPrefix = join(tempDir, "page");
|
|
59497
|
+
const args = [
|
|
59498
|
+
"-jpeg",
|
|
59499
|
+
"-scale-to",
|
|
59500
|
+
String(PDF_RENDER_SCALE_TO_PX)
|
|
59501
|
+
];
|
|
59502
|
+
if (options?.firstPage) {
|
|
59503
|
+
args.push("-f", String(options.firstPage));
|
|
59504
|
+
}
|
|
59505
|
+
if (options?.lastPage && options.lastPage !== Infinity) {
|
|
59506
|
+
args.push("-l", String(options.lastPage));
|
|
59507
|
+
}
|
|
59508
|
+
args.push("--", filePath, outputPrefix);
|
|
59509
|
+
const { stderr, code, timedOut } = await execCommand("pdftoppm", args, {
|
|
59510
|
+
timeout: PDF_RENDER_TIMEOUT_MS
|
|
59511
|
+
});
|
|
59512
|
+
if (timedOut) {
|
|
59513
|
+
return {
|
|
59514
|
+
success: false,
|
|
59515
|
+
error: `pdftoppm timed out after ${Math.round(
|
|
59516
|
+
PDF_RENDER_TIMEOUT_MS / 1e3
|
|
59517
|
+
)}s. The PDF may be unusually large or complex; try the 'pages' parameter to narrow the range.`
|
|
59518
|
+
};
|
|
59519
|
+
}
|
|
59520
|
+
if (code !== 0) {
|
|
59521
|
+
if (/password/i.test(stderr)) {
|
|
59522
|
+
return {
|
|
59523
|
+
success: false,
|
|
59524
|
+
error: "PDF is password-protected. Please provide an unprotected version."
|
|
59525
|
+
};
|
|
59526
|
+
}
|
|
59527
|
+
if (/damaged|corrupt|invalid/i.test(stderr)) {
|
|
59528
|
+
return { success: false, error: "PDF file is corrupted or invalid." };
|
|
59529
|
+
}
|
|
59530
|
+
return {
|
|
59531
|
+
success: false,
|
|
59532
|
+
error: `pdftoppm failed: ${stderr || "(no stderr)"}`
|
|
59533
|
+
};
|
|
59534
|
+
}
|
|
59535
|
+
const entries = (await readdir(tempDir)).filter((name) => name.toLowerCase().endsWith(".jpg")).sort(comparePdfPageFilenames);
|
|
59536
|
+
if (entries.length === 0) {
|
|
59537
|
+
return {
|
|
59538
|
+
success: false,
|
|
59539
|
+
error: "pdftoppm produced no image output. The PDF may be empty or the page range may be out of bounds."
|
|
59540
|
+
};
|
|
59541
|
+
}
|
|
59542
|
+
const images = [];
|
|
59543
|
+
let totalBytes = 0;
|
|
59544
|
+
let bytesTruncated = false;
|
|
59545
|
+
for (const name of entries) {
|
|
59546
|
+
const buffer = await readFile(join(tempDir, name));
|
|
59547
|
+
const data = buffer.toString("base64");
|
|
59548
|
+
if (images.length > 0 && totalBytes + data.length > PDF_RENDER_MAX_TOTAL_BASE64_BYTES) {
|
|
59549
|
+
bytesTruncated = true;
|
|
59550
|
+
break;
|
|
59551
|
+
}
|
|
59552
|
+
totalBytes += data.length;
|
|
59553
|
+
images.push({ data, mimeType: "image/jpeg" });
|
|
59554
|
+
}
|
|
59555
|
+
return { success: true, images, bytesTruncated };
|
|
59556
|
+
} catch (e) {
|
|
59557
|
+
return {
|
|
59558
|
+
success: false,
|
|
59559
|
+
error: `pdftoppm execution failed: ${e instanceof Error ? e.message : String(e)}`
|
|
59560
|
+
};
|
|
59561
|
+
} finally {
|
|
59562
|
+
if (tempDir) {
|
|
59563
|
+
await rm(tempDir, { recursive: true, force: true }).catch(() => {
|
|
59564
|
+
});
|
|
59565
|
+
}
|
|
59566
|
+
}
|
|
59567
|
+
}
|
|
59568
|
+
__name(renderPDFPagesToImages, "renderPDFPagesToImages");
|
|
59569
|
+
|
|
59570
|
+
// packages/core/src/services/visionBridge/vision-bridge-constants.ts
|
|
59571
|
+
init_esbuild_shims();
|
|
59572
|
+
var VISION_BRIDGE_MAX_IMAGES = 4;
|
|
59573
|
+
var VISION_BRIDGE_MAX_IMAGE_BASE64_BYTES = Math.floor(
|
|
59574
|
+
9.9 * 1024 * 1024
|
|
59575
|
+
);
|
|
59450
59576
|
|
|
59451
59577
|
// packages/core/src/utils/notebook.ts
|
|
59452
59578
|
init_esbuild_shims();
|
|
@@ -60494,6 +60620,8 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
60494
60620
|
const relativePathForDisplay = path2.relative(rootDirectory, filePath).replace(/\\/g, "/");
|
|
60495
60621
|
const displayName = path2.basename(filePath);
|
|
60496
60622
|
const modalities = config.getContentGeneratorConfig?.()?.modalities ?? {};
|
|
60623
|
+
const willRenderPdfImages = fileType === "pdf" && !!modalities.image && largePdfBehavior !== "reference";
|
|
60624
|
+
const renderForBridge = fileType === "pdf" && !modalities.image && preserveUnsupportedImage;
|
|
60497
60625
|
const fileSizeInMB = stats.size / (1024 * 1024);
|
|
60498
60626
|
const normalizedPages = pages?.trim();
|
|
60499
60627
|
let pageRange;
|
|
@@ -60545,10 +60673,11 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
60545
60673
|
if (willExtractPdfText && !pageRange) {
|
|
60546
60674
|
const pageCount = await getPDFPageCount(filePath);
|
|
60547
60675
|
const requirement = shouldRequirePDFPageRange(pageCount, stats.size);
|
|
60676
|
+
const rangeRequired = willRenderPdfImages ? requirement.effectivePageCount > PDF_MAX_PAGES_PER_READ : requirement.required;
|
|
60548
60677
|
debugLogger2.debug(
|
|
60549
|
-
`PDF full-text fallback gate: file=${relativePathForDisplay}, sizeMB=${fileSizeInMB.toFixed(2)}, pageCount=${pageCount ?? "unknown"}, required=${requirement.required}, effectivePageCount=${requirement.effectivePageCount}, hadPdfInfo=${requirement.hadPdfInfo}, behavior=${largePdfBehavior}`
|
|
60678
|
+
`PDF full-text fallback gate: file=${relativePathForDisplay}, sizeMB=${fileSizeInMB.toFixed(2)}, pageCount=${pageCount ?? "unknown"}, required=${requirement.required}, rangeRequired=${rangeRequired}, effectivePageCount=${requirement.effectivePageCount}, hadPdfInfo=${requirement.hadPdfInfo}, behavior=${largePdfBehavior}`
|
|
60550
60679
|
);
|
|
60551
|
-
if (
|
|
60680
|
+
if (rangeRequired) {
|
|
60552
60681
|
if (largePdfBehavior === "error" && !await isPdftotextAvailable()) {
|
|
60553
60682
|
return {
|
|
60554
60683
|
llmContent: `[Cannot extract text from PDF: "${displayName}". ${PDF_TEXT_EXTRACTION_UNAVAILABLE_MESSAGE}]`,
|
|
@@ -60755,34 +60884,95 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
60755
60884
|
const pdfResult = await extractPDFText(filePath, pageRange);
|
|
60756
60885
|
if (pdfResult.success) {
|
|
60757
60886
|
const estimatedTokens = estimatePDFTextOutputTokens(pdfResult.text);
|
|
60758
|
-
if (estimatedTokens
|
|
60759
|
-
|
|
60760
|
-
|
|
60761
|
-
|
|
60762
|
-
|
|
60763
|
-
|
|
60764
|
-
|
|
60765
|
-
|
|
60766
|
-
|
|
60767
|
-
|
|
60768
|
-
|
|
60769
|
-
|
|
60770
|
-
|
|
60771
|
-
|
|
60772
|
-
|
|
60887
|
+
if (estimatedTokens <= PDF_TEXT_RESULT_MAX_TOKENS) {
|
|
60888
|
+
const pagesLabel = normalizedPages ? ` (pages ${normalizedPages})` : "";
|
|
60889
|
+
return {
|
|
60890
|
+
llmContent: pdfResult.text,
|
|
60891
|
+
returnDisplay: `Read pdf as text${pagesLabel}: ${relativePathForDisplay}`,
|
|
60892
|
+
stats
|
|
60893
|
+
};
|
|
60894
|
+
}
|
|
60895
|
+
}
|
|
60896
|
+
const toImageParts = /* @__PURE__ */ __name((images, startPage) => images.map((image, index) => ({
|
|
60897
|
+
inlineData: {
|
|
60898
|
+
data: image.data,
|
|
60899
|
+
mimeType: image.mimeType,
|
|
60900
|
+
displayName: `${displayName} (page ${startPage + index})`
|
|
60901
|
+
}
|
|
60902
|
+
})), "toImageParts");
|
|
60903
|
+
if (willRenderPdfImages) {
|
|
60904
|
+
const startPage = pageRange?.firstPage ?? 1;
|
|
60905
|
+
const render = await renderPDFPagesToImages(
|
|
60906
|
+
filePath,
|
|
60907
|
+
pageRange ?? { firstPage: 1, lastPage: PDF_MAX_PAGES_PER_READ }
|
|
60908
|
+
);
|
|
60909
|
+
if (render.success) {
|
|
60910
|
+
const parts = toImageParts(render.images, startPage);
|
|
60911
|
+
if (render.bytesTruncated) {
|
|
60912
|
+
parts.push({
|
|
60913
|
+
text: `[Rendered the first ${render.images.length} page(s) of "${displayName}"; later pages were omitted to stay within size limits. Use the 'pages' parameter to read a specific range.]`
|
|
60914
|
+
});
|
|
60915
|
+
} else if (!pageRange && render.images.length >= PDF_MAX_PAGES_PER_READ) {
|
|
60916
|
+
parts.push({
|
|
60917
|
+
text: `[Rendered the first ${render.images.length} page(s) (the per-read maximum) of "${displayName}". If the document has more pages, use the 'pages' parameter to read a later range.]`
|
|
60918
|
+
});
|
|
60919
|
+
}
|
|
60920
|
+
return {
|
|
60921
|
+
llmContent: parts,
|
|
60922
|
+
returnDisplay: `Read pdf as ${render.images.length} image(s): ${relativePathForDisplay}`,
|
|
60923
|
+
stats
|
|
60924
|
+
};
|
|
60925
|
+
}
|
|
60926
|
+
debugLogger2.debug(
|
|
60927
|
+
`PDF image render failed, falling back to text outcome: file=${relativePathForDisplay}, error=${render.error}`
|
|
60928
|
+
);
|
|
60929
|
+
}
|
|
60930
|
+
if (renderForBridge && pdfResult.success === false) {
|
|
60931
|
+
const render = await renderPDFPagesToImages(filePath, {
|
|
60932
|
+
firstPage: 1,
|
|
60933
|
+
lastPage: VISION_BRIDGE_MAX_IMAGES
|
|
60934
|
+
});
|
|
60935
|
+
if (render.success) {
|
|
60936
|
+
const parts = toImageParts(render.images, 1);
|
|
60937
|
+
const pageCount = await getPDFPageCount(filePath);
|
|
60938
|
+
const mayHaveMore = pageCount !== null ? pageCount > render.images.length : render.images.length >= VISION_BRIDGE_MAX_IMAGES;
|
|
60939
|
+
if (mayHaveMore || render.bytesTruncated) {
|
|
60940
|
+
const total = pageCount !== null ? ` of ${pageCount}` : "";
|
|
60941
|
+
parts.push({
|
|
60942
|
+
text: `[Rendered the first ${render.images.length}${total} page(s) of "${displayName}" for transcription; later pages were not included.]`
|
|
60943
|
+
});
|
|
60773
60944
|
}
|
|
60945
|
+
return {
|
|
60946
|
+
llmContent: parts,
|
|
60947
|
+
returnDisplay: `Rendered ${render.images.length} page(s) for transcription: ${relativePathForDisplay}`,
|
|
60948
|
+
stats
|
|
60949
|
+
};
|
|
60950
|
+
}
|
|
60951
|
+
debugLogger2.debug(
|
|
60952
|
+
`PDF bridge render failed, falling back to text outcome: file=${relativePathForDisplay}, error=${render.error}`
|
|
60953
|
+
);
|
|
60954
|
+
}
|
|
60955
|
+
if (pdfResult.success) {
|
|
60956
|
+
const guidance = buildPDFTextTooLargeGuidance(
|
|
60957
|
+
displayName,
|
|
60958
|
+
estimatePDFTextOutputTokens(pdfResult.text),
|
|
60959
|
+
normalizedPages
|
|
60960
|
+
);
|
|
60961
|
+
debugLogger2.debug(
|
|
60962
|
+
`PDF text extraction output exceeds token limit: file=${relativePathForDisplay}, pages=${normalizedPages ?? "all"}, limit=${PDF_TEXT_RESULT_MAX_TOKENS}`
|
|
60963
|
+
);
|
|
60964
|
+
if (!pageRange && largePdfBehavior === "reference") {
|
|
60774
60965
|
return {
|
|
60775
60966
|
llmContent: guidance,
|
|
60776
|
-
returnDisplay: `
|
|
60777
|
-
error: guidance,
|
|
60778
|
-
errorType: "file_too_large" /* FILE_TOO_LARGE */,
|
|
60967
|
+
returnDisplay: `Referenced large PDF: ${relativePathForDisplay}`,
|
|
60779
60968
|
stats
|
|
60780
60969
|
};
|
|
60781
60970
|
}
|
|
60782
|
-
const pagesLabel = normalizedPages ? ` (pages ${normalizedPages})` : "";
|
|
60783
60971
|
return {
|
|
60784
|
-
llmContent:
|
|
60785
|
-
returnDisplay: `
|
|
60972
|
+
llmContent: guidance,
|
|
60973
|
+
returnDisplay: `PDF text too large: ${relativePathForDisplay}`,
|
|
60974
|
+
error: guidance,
|
|
60975
|
+
errorType: "file_too_large" /* FILE_TOO_LARGE */,
|
|
60786
60976
|
stats
|
|
60787
60977
|
};
|
|
60788
60978
|
}
|
|
@@ -61746,7 +61936,7 @@ function getLanguageFromFilePath(filePath) {
|
|
|
61746
61936
|
return extensionToLanguageMap[extension];
|
|
61747
61937
|
}
|
|
61748
61938
|
const filename = path3.basename(filePath).toLowerCase();
|
|
61749
|
-
return extensionToLanguageMap[`.${filename}`];
|
|
61939
|
+
return extensionToLanguageMap[filename] ?? extensionToLanguageMap[`.${filename}`];
|
|
61750
61940
|
}
|
|
61751
61941
|
__name(getLanguageFromFilePath, "getLanguageFromFilePath");
|
|
61752
61942
|
|
|
@@ -63984,6 +64174,20 @@ function parseTaggedThinkingText(text) {
|
|
|
63984
64174
|
}
|
|
63985
64175
|
__name(parseTaggedThinkingText, "parseTaggedThinkingText");
|
|
63986
64176
|
|
|
64177
|
+
// packages/core/src/core/invalid-stream-error.ts
|
|
64178
|
+
init_esbuild_shims();
|
|
64179
|
+
var InvalidStreamError = class extends Error {
|
|
64180
|
+
static {
|
|
64181
|
+
__name(this, "InvalidStreamError");
|
|
64182
|
+
}
|
|
64183
|
+
type;
|
|
64184
|
+
constructor(message, type) {
|
|
64185
|
+
super(message);
|
|
64186
|
+
this.name = "InvalidStreamError";
|
|
64187
|
+
this.type = type;
|
|
64188
|
+
}
|
|
64189
|
+
};
|
|
64190
|
+
|
|
63987
64191
|
// packages/core/src/core/openaiContentGenerator/converter.ts
|
|
63988
64192
|
var debugLogger6 = createDebugLogger("CONVERTER");
|
|
63989
64193
|
var SPLIT_TOOL_MEDIA_TEXT = "(attached media from previous tool call)";
|
|
@@ -64640,6 +64844,10 @@ function hasThoughtPart(parts) {
|
|
|
64640
64844
|
return parts.some((part) => part.thought === true);
|
|
64641
64845
|
}
|
|
64642
64846
|
__name(hasThoughtPart, "hasThoughtPart");
|
|
64847
|
+
var THINKING_TAG_PATTERN = /<\/?think(?:ing)?\s*>/i;
|
|
64848
|
+
var CLOSING_THINKING_TAG_PATTERN = /\n[^\S\r\n]*<\/think(?:ing)?[^\S\r\n]*>/i;
|
|
64849
|
+
var LEADING_CLOSING_THINKING_TAG_PATTERN = /^[^\S\r\n]*<\/think(?:ing)?[^\S\r\n]*>/i;
|
|
64850
|
+
var LEADING_THINKING_TAG_PATTERN = /^\s*<\/?think(?:ing)?\s*>/i;
|
|
64643
64851
|
function convertOpenAIResponseToGemini(openaiResponse, requestContext) {
|
|
64644
64852
|
const choice = openaiResponse.choices?.[0];
|
|
64645
64853
|
const response = new GenerateContentResponse();
|
|
@@ -64723,7 +64931,7 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
|
|
|
64723
64931
|
);
|
|
64724
64932
|
}
|
|
64725
64933
|
if (choice) {
|
|
64726
|
-
|
|
64934
|
+
let parts = [];
|
|
64727
64935
|
let contentParts = [];
|
|
64728
64936
|
const reasoningText = choice.delta?.reasoning_content ?? choice.delta?.reasoning;
|
|
64729
64937
|
if (typeof choice.delta?.content === "string") {
|
|
@@ -64768,6 +64976,12 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
|
|
|
64768
64976
|
cumulativeMode: false
|
|
64769
64977
|
}
|
|
64770
64978
|
);
|
|
64979
|
+
if (normalizedReasoningText) {
|
|
64980
|
+
requestContext.hasStructuredReasoningContent = true;
|
|
64981
|
+
if (THINKING_TAG_PATTERN.test(normalizedReasoningText)) {
|
|
64982
|
+
requestContext.hasThinkingTagInReasoning = true;
|
|
64983
|
+
}
|
|
64984
|
+
}
|
|
64771
64985
|
if (normalizedReasoningText && !requestContext.responseParsingOptions?.taggedThinkingTags) {
|
|
64772
64986
|
parts.push(createOpenAIReasoningThoughtPart(normalizedReasoningText));
|
|
64773
64987
|
} else if (normalizedReasoningText && !requestContext.hasTaggedThinkingThought) {
|
|
@@ -64825,10 +65039,45 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
|
|
|
64825
65039
|
}
|
|
64826
65040
|
}
|
|
64827
65041
|
}
|
|
65042
|
+
const visibleText = parts.map(
|
|
65043
|
+
(part) => part.thought !== true && typeof part.text === "string" ? part.text : ""
|
|
65044
|
+
).join("");
|
|
65045
|
+
const leakedThinkingTag = requestContext.hasStructuredReasoningContent === true && (requestContext.hasVisibleContent !== true && LEADING_THINKING_TAG_PATTERN.test(visibleText) || requestContext.hasThinkingTagInReasoning === true && (CLOSING_THINKING_TAG_PATTERN.test(visibleText) || requestContext.atVisibleLineStart === true && LEADING_CLOSING_THINKING_TAG_PATTERN.test(visibleText)));
|
|
65046
|
+
if (/\S/.test(visibleText)) {
|
|
65047
|
+
requestContext.hasVisibleContent = true;
|
|
65048
|
+
}
|
|
65049
|
+
if (visibleText && requestContext.hasThinkingTagInReasoning === true) {
|
|
65050
|
+
const lastLineBreak = visibleText.lastIndexOf("\n");
|
|
65051
|
+
const lineSuffix = visibleText.slice(lastLineBreak + 1);
|
|
65052
|
+
requestContext.atVisibleLineStart = (lastLineBreak >= 0 || requestContext.atVisibleLineStart === true) && /^[^\S\r\n]*$/.test(lineSuffix);
|
|
65053
|
+
}
|
|
65054
|
+
if (leakedThinkingTag) {
|
|
65055
|
+
requestContext.pendingUntrustedResponseParts = void 0;
|
|
65056
|
+
throw new InvalidStreamError(
|
|
65057
|
+
"Model response leaked thinking tags.",
|
|
65058
|
+
"PROTOCOL_TAG_LEAK"
|
|
65059
|
+
);
|
|
65060
|
+
}
|
|
65061
|
+
const toolCallWithoutName = toolCallParser.hasNamelessToolCall();
|
|
65062
|
+
const completedToolCalls = choice.finish_reason ? toolCallParser.getCompletedToolCalls() : [];
|
|
65063
|
+
if (choice.finish_reason && (toolCallWithoutName || choice.finish_reason === "tool_calls" && completedToolCalls.length === 0)) {
|
|
65064
|
+
requestContext.pendingUntrustedResponseParts = void 0;
|
|
65065
|
+
throw new InvalidStreamError(
|
|
65066
|
+
"Model response contained a malformed tool call.",
|
|
65067
|
+
"MALFORMED_TOOL_CALL"
|
|
65068
|
+
);
|
|
65069
|
+
}
|
|
65070
|
+
const shouldHoldParts = !choice.finish_reason && (toolCallWithoutName || requestContext.hasThinkingTagInReasoning === true);
|
|
65071
|
+
if (shouldHoldParts) {
|
|
65072
|
+
(requestContext.pendingUntrustedResponseParts ??= []).push(...parts);
|
|
65073
|
+
parts.length = 0;
|
|
65074
|
+
} else if (requestContext.pendingUntrustedResponseParts) {
|
|
65075
|
+
parts = requestContext.pendingUntrustedResponseParts.concat(parts);
|
|
65076
|
+
requestContext.pendingUntrustedResponseParts = void 0;
|
|
65077
|
+
}
|
|
64828
65078
|
let toolCallsTruncated = false;
|
|
64829
65079
|
if (choice.finish_reason) {
|
|
64830
65080
|
toolCallsTruncated = toolCallParser.hasIncompleteToolCalls();
|
|
64831
|
-
const completedToolCalls = toolCallParser.getCompletedToolCalls();
|
|
64832
65081
|
for (const toolCall of completedToolCalls) {
|
|
64833
65082
|
if (toolCall.name) {
|
|
64834
65083
|
parts.push({
|
|
@@ -66538,7 +66787,11 @@ function endToolExecutionSpan(span, metadata) {
|
|
|
66538
66787
|
spanCtx.ended = true;
|
|
66539
66788
|
try {
|
|
66540
66789
|
const duration = Date.now() - spanCtx.startTime;
|
|
66541
|
-
const endAttributes = {
|
|
66790
|
+
const endAttributes = {};
|
|
66791
|
+
if (metadata?.attributes) {
|
|
66792
|
+
Object.assign(endAttributes, metadata.attributes);
|
|
66793
|
+
}
|
|
66794
|
+
endAttributes["duration_ms"] = duration;
|
|
66542
66795
|
if (metadata) {
|
|
66543
66796
|
if (metadata.success !== void 0)
|
|
66544
66797
|
endAttributes["success"] = metadata.success;
|
|
@@ -68172,6 +68425,44 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
68172
68425
|
};
|
|
68173
68426
|
var uiTelemetryService = new UiTelemetryService();
|
|
68174
68427
|
|
|
68428
|
+
// packages/core/src/telemetry/api-activity-tracker.ts
|
|
68429
|
+
init_esbuild_shims();
|
|
68430
|
+
var ApiActivityTracker = class {
|
|
68431
|
+
static {
|
|
68432
|
+
__name(this, "ApiActivityTracker");
|
|
68433
|
+
}
|
|
68434
|
+
#errors = 0;
|
|
68435
|
+
#retries = 0;
|
|
68436
|
+
/** Fold in one model API error (called from `logApiError`). */
|
|
68437
|
+
recordError() {
|
|
68438
|
+
this.#errors += 1;
|
|
68439
|
+
}
|
|
68440
|
+
/** Fold in one automatic retry (called from `logApiRetry`). */
|
|
68441
|
+
recordRetry() {
|
|
68442
|
+
this.#retries += 1;
|
|
68443
|
+
}
|
|
68444
|
+
/**
|
|
68445
|
+
* Return the counts accumulated since the last drain and reset them to zero.
|
|
68446
|
+
* The read+reset is synchronous (no `await` between), so a `recordError` /
|
|
68447
|
+
* `recordRetry` racing an in-progress drain can never be lost — it simply
|
|
68448
|
+
* lands in the next window.
|
|
68449
|
+
*/
|
|
68450
|
+
drain() {
|
|
68451
|
+
const counts = {
|
|
68452
|
+
errors: this.#errors,
|
|
68453
|
+
retries: this.#retries
|
|
68454
|
+
};
|
|
68455
|
+
this.#errors = 0;
|
|
68456
|
+
this.#retries = 0;
|
|
68457
|
+
return counts;
|
|
68458
|
+
}
|
|
68459
|
+
/** Peek at the pending counts without draining (tests / diagnostics). */
|
|
68460
|
+
peek() {
|
|
68461
|
+
return { errors: this.#errors, retries: this.#retries };
|
|
68462
|
+
}
|
|
68463
|
+
};
|
|
68464
|
+
var apiActivityTracker = new ApiActivityTracker();
|
|
68465
|
+
|
|
68175
68466
|
// packages/core/src/telemetry/daemon-tracing.ts
|
|
68176
68467
|
init_esbuild_shims();
|
|
68177
68468
|
init_esm();
|
|
@@ -69674,6 +69965,7 @@ var MODEL_GENERATION_CONFIG_FIELDS = [
|
|
|
69674
69965
|
"maxRetries",
|
|
69675
69966
|
"retryErrorCodes",
|
|
69676
69967
|
"enableCacheControl",
|
|
69968
|
+
"forceGlobalCacheScope",
|
|
69677
69969
|
"schemaCompliance",
|
|
69678
69970
|
"reasoning",
|
|
69679
69971
|
"contextWindowSize",
|
|
@@ -69870,11 +70162,11 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
69870
70162
|
let baseGenerator;
|
|
69871
70163
|
try {
|
|
69872
70164
|
if (authType === "openai" /* USE_OPENAI */) {
|
|
69873
|
-
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-
|
|
70165
|
+
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-OBDNNOE2.js");
|
|
69874
70166
|
baseGenerator = createOpenAIContentGenerator(generatorConfig, config);
|
|
69875
70167
|
} else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
|
|
69876
|
-
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-
|
|
69877
|
-
const { QwenContentGenerator } = await import("./qwenContentGenerator-
|
|
70168
|
+
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-LEYOU7RU.js");
|
|
70169
|
+
const { QwenContentGenerator } = await import("./qwenContentGenerator-LH2U2YRG.js");
|
|
69878
70170
|
try {
|
|
69879
70171
|
const qwenClient = await getQwenOauthClient(
|
|
69880
70172
|
config,
|
|
@@ -69892,10 +70184,10 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
69892
70184
|
throw new Error(error instanceof Error ? error.message : String(error));
|
|
69893
70185
|
}
|
|
69894
70186
|
} else if (authType === "anthropic" /* USE_ANTHROPIC */) {
|
|
69895
|
-
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-
|
|
70187
|
+
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-56U3YCP2.js");
|
|
69896
70188
|
baseGenerator = createAnthropicContentGenerator(generatorConfig, config);
|
|
69897
70189
|
} else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
|
|
69898
|
-
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-
|
|
70190
|
+
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-XBYBAIDQ.js");
|
|
69899
70191
|
baseGenerator = createGeminiContentGenerator(generatorConfig, config);
|
|
69900
70192
|
} else {
|
|
69901
70193
|
throw new Error(
|
|
@@ -71620,6 +71912,7 @@ function logApiError(config, event) {
|
|
|
71620
71912
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
71621
71913
|
};
|
|
71622
71914
|
uiTelemetryService.addEvent(uiEvent, config.getSessionId());
|
|
71915
|
+
apiActivityTracker.recordError();
|
|
71623
71916
|
if (!isInternalPromptId(event.prompt_id)) {
|
|
71624
71917
|
recordUiTelemetryEventToChat(config, uiEvent);
|
|
71625
71918
|
}
|
|
@@ -71886,6 +72179,7 @@ function logContentRetryFailure(config, event) {
|
|
|
71886
72179
|
}
|
|
71887
72180
|
__name(logContentRetryFailure, "logContentRetryFailure");
|
|
71888
72181
|
function logApiRetry(config, event) {
|
|
72182
|
+
apiActivityTracker.recordRetry();
|
|
71889
72183
|
QwenLogger.getInstance(config)?.logApiRetryEvent(event);
|
|
71890
72184
|
if (!isTelemetrySdkInitialized()) return;
|
|
71891
72185
|
const attributes = {
|
|
@@ -72663,6 +72957,8 @@ var ReadFileTool = class _ReadFileTool extends BaseDeclarativeTool {
|
|
|
72663
72957
|
};
|
|
72664
72958
|
|
|
72665
72959
|
export {
|
|
72960
|
+
VISION_BRIDGE_MAX_IMAGES,
|
|
72961
|
+
VISION_BRIDGE_MAX_IMAGE_BASE64_BYTES,
|
|
72666
72962
|
EVENT_TOOL_CALL,
|
|
72667
72963
|
EVENT_API_ERROR,
|
|
72668
72964
|
EVENT_API_RESPONSE,
|
|
@@ -72796,6 +73092,7 @@ export {
|
|
|
72796
73092
|
refreshSessionContext,
|
|
72797
73093
|
shutdownTelemetry,
|
|
72798
73094
|
forceFlushMetrics,
|
|
73095
|
+
apiActivityTracker,
|
|
72799
73096
|
_recoverObjectsFromLine,
|
|
72800
73097
|
parseLineTolerant,
|
|
72801
73098
|
readLines,
|
|
@@ -72931,6 +73228,7 @@ export {
|
|
|
72931
73228
|
parseThought,
|
|
72932
73229
|
getThoughtSummary,
|
|
72933
73230
|
TaggedThinkingParser,
|
|
73231
|
+
InvalidStreamError,
|
|
72934
73232
|
OpenAIContentConverter,
|
|
72935
73233
|
openaiRequestCaptureContext,
|
|
72936
73234
|
isApiError,
|