@qwen-code/qwen-code 0.21.2 → 0.21.3
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 +41 -38
- package/bundled/qc-helper/docs/features/channels/github.md +7 -0
- package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +78 -23
- package/bundled/qc-helper/docs/features/commands.md +2 -0
- package/bundled/qc-helper/docs/features/hooks.md +115 -18
- package/bundled/qc-helper/docs/features/memory.md +27 -0
- package/bundled/qc-helper/docs/features/skills.md +46 -1
- package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
- package/bundled/qc-helper/docs/qwen-serve.md +21 -1
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +13 -13
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
- package/bundled/review/DESIGN.md +167 -32
- package/bundled/review/SKILL.md +156 -32
- package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-OJR636GP.js} +40 -38
- package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AMMBF5UY.js} +62 -59
- package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
- package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-M57LVIQA.js} +662 -560
- package/chunks/{agent-VDOUB35F.js → agent-PE37ARLM.js} +36 -34
- package/chunks/{agent-headless-EO53EFS2.js → agent-headless-45ASME4R.js} +36 -34
- package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-WCBYB6JG.js} +337 -27
- package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
- package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
- package/chunks/{bridge-W7AZSRZQ.js → bridge-K3ZRPO4D.js} +42 -40
- package/chunks/{ca-6W3SK7OQ.js → ca-4OJN75WT.js} +46 -5
- package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-IXJ2MZTS.js} +7 -7
- package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-PEAR3IME.js} +43 -41
- package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
- package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
- package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
- package/chunks/{chunk-W3UKBMSI.js → chunk-22YFMJBW.js} +84 -8
- package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
- package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
- package/chunks/{chunk-D6MDRSZ6.js → chunk-2LZCLQIS.js} +22 -11
- package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
- package/chunks/{chunk-KR32NIAN.js → chunk-2MI7ZTRT.js} +10 -10
- package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
- package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
- package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
- package/chunks/{chunk-CO2U743O.js → chunk-3MWNROHB.js} +4 -4
- package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
- package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
- package/chunks/{chunk-LYI2PZDK.js → chunk-3XF4WT3B.js} +2 -2
- package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
- package/chunks/{chunk-FNDXMN7I.js → chunk-4AGGSHCH.js} +774 -205
- package/chunks/{chunk-DUNI4EBW.js → chunk-4K3RV3OA.js} +80 -50
- package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
- package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
- package/chunks/{chunk-JLZ3RBQG.js → chunk-5JPVOYWA.js} +144 -11
- package/chunks/{chunk-6TAASXWL.js → chunk-5VYFXHY2.js} +3 -3
- package/chunks/{chunk-EU5TBFJI.js → chunk-6NE5NTHJ.js} +2 -2
- package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
- package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
- package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
- package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
- package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
- package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
- package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
- package/chunks/{chunk-P5VC5USY.js → chunk-BKGA75MU.js} +1 -1
- package/chunks/{chunk-2KKCCLPT.js → chunk-BKXTHMOZ.js} +1 -1
- package/chunks/{chunk-V4XNUDPE.js → chunk-BSKUTHLO.js} +15 -7
- package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
- package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
- package/chunks/{chunk-A7Y5H4TX.js → chunk-D2GPKXCQ.js} +7 -7
- package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
- package/chunks/{chunk-GL4JOZXU.js → chunk-DSGJLHM3.js} +4 -4
- package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
- package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
- package/chunks/{chunk-CU47KXB5.js → chunk-EGYJRIDF.js} +6 -6
- package/chunks/{chunk-6CQWRWUC.js → chunk-EIMKVOSF.js} +3 -3
- package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
- package/chunks/{chunk-NHFEMWAZ.js → chunk-FF75UUB2.js} +1 -1
- package/chunks/{chunk-L32VV3ZJ.js → chunk-FG63DZQA.js} +12 -12
- package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
- package/chunks/{chunk-GJ2GBPBD.js → chunk-FXVHVCNA.js} +5 -5
- package/chunks/{chunk-56Z7QEAQ.js → chunk-GMSBXEH4.js} +16 -16
- package/chunks/chunk-GOFAQQZA.js +132 -0
- package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
- package/chunks/{chunk-HIVKI6O6.js → chunk-H35Q5CEG.js} +9 -7
- package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
- package/chunks/{chunk-AUOULH6Q.js → chunk-H6FIBBXK.js} +1610 -2196
- package/chunks/{chunk-VEMNQMHA.js → chunk-H6ZYP74A.js} +5 -13
- package/chunks/{chunk-TTJZAIFP.js → chunk-HEBW74ZW.js} +3 -3
- package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
- package/chunks/{chunk-44F4LBWZ.js → chunk-HIXVWF7I.js} +56 -18
- package/chunks/{chunk-EQNUDTL6.js → chunk-HUIQ4FYC.js} +2 -2
- package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
- package/chunks/{chunk-PVNQRENX.js → chunk-IF6K42YJ.js} +1 -1
- package/chunks/{chunk-PJOHNFIY.js → chunk-IWGTGH4G.js} +5 -5
- package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
- package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
- package/chunks/{chunk-V25K5ID7.js → chunk-K2J5JZ6B.js} +1 -1
- package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
- package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
- package/chunks/{chunk-3F2WDAV6.js → chunk-KXWERR6P.js} +14 -14
- package/chunks/{chunk-JJPKFJBT.js → chunk-L7FTDKCD.js} +3 -3
- package/chunks/chunk-LBOVL47Y.js +29 -0
- package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
- package/chunks/{chunk-I5BT7ADR.js → chunk-LGT3YMLN.js} +4 -4
- package/chunks/{chunk-UV6KF7T3.js → chunk-LZV2BZPL.js} +3 -3
- package/chunks/{chunk-P755N4CS.js → chunk-M5LIY7Y6.js} +6 -6
- package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
- package/chunks/{chunk-NTDH4IML.js → chunk-MCXMWLFT.js} +7 -7
- package/chunks/chunk-MISUEWB4.js +8749 -0
- package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
- package/chunks/{chunk-KXDONCPU.js → chunk-MTR4JWQJ.js} +4 -4
- package/chunks/{chunk-RSVPYAGK.js → chunk-MUEJ4R3E.js} +5 -5
- package/chunks/{chunk-PCK4B6LR.js → chunk-N42C2FU3.js} +1 -1
- package/chunks/{chunk-WWCMSZII.js → chunk-NW57GHNL.js} +71 -7
- package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
- package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
- package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
- package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
- package/chunks/chunk-PWCQRLM5.js +1170 -0
- package/chunks/{chunk-VMX5RZQH.js → chunk-Q3G5L5KF.js} +18 -9
- package/chunks/{chunk-DQ2O5QOJ.js → chunk-QDWLUXKP.js} +1 -1
- package/chunks/chunk-QL4TN4HS.js +59 -0
- package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
- package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
- package/chunks/{chunk-DEEABGH2.js → chunk-QPSYIV2O.js} +3320 -536
- package/chunks/{chunk-Q5WZTTWE.js → chunk-QWDVZH24.js} +6 -8
- package/chunks/{chunk-2LEOZTBT.js → chunk-QWW6I2UO.js} +111 -26
- package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
- package/chunks/{chunk-6PQPKTXP.js → chunk-R7XNRHYD.js} +1 -1
- package/chunks/{chunk-7SJN2IWT.js → chunk-RCXCGZG6.js} +5 -5
- package/chunks/{chunk-HX6RLYUO.js → chunk-RL6J3BPE.js} +4 -4
- package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
- package/chunks/{chunk-MB32MS4U.js → chunk-RR224BUP.js} +215 -174
- package/chunks/{chunk-H6I4PGRV.js → chunk-SKSF3LGQ.js} +4 -4
- package/chunks/{chunk-77V3VIKL.js → chunk-SQ3YD5MI.js} +9 -9
- package/chunks/{chunk-CBBP4BMC.js → chunk-SRY26X4H.js} +72 -206
- package/chunks/{chunk-RDJOB6S3.js → chunk-TXABHVZD.js} +1 -1
- package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
- package/chunks/chunk-TZTBZ25J.js +222 -0
- package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
- package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
- package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
- package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
- package/chunks/{chunk-54YCNSK5.js → chunk-UQDFEU47.js} +4113 -10152
- package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
- package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
- package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
- package/chunks/{chunk-PZEXDV3H.js → chunk-VUNRNRN6.js} +71 -43
- package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
- package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
- package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
- package/chunks/{chunk-7KAXXBER.js → chunk-WY2ENRDN.js} +3 -3
- package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
- package/chunks/{chunk-KWHKHSIS.js → chunk-X6WUYMOV.js} +8 -8
- package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
- package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
- package/chunks/{chunk-RG64CDT2.js → chunk-XMJO6C44.js} +131 -48
- package/chunks/{chunk-ZMOJ7ISP.js → chunk-XUMAD5IT.js} +1 -1
- package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
- package/chunks/{chunk-YANIWTRZ.js → chunk-YPUHMQXV.js} +1 -1
- package/chunks/{chunk-QCXGC7QB.js → chunk-YU6TBRTA.js} +3 -3
- package/chunks/{chunk-OFZKFPYG.js → chunk-YWMDTMAU.js} +3 -3
- package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
- package/chunks/{chunk-JE2CEOBO.js → chunk-ZGSUFIL5.js} +4 -4
- package/chunks/{chunk-BBIQAX4V.js → chunk-ZJES4C3I.js} +30 -18
- package/chunks/{computer-use-5QWCFNKD.js → computer-use-UJMK6JQU.js} +36 -34
- package/chunks/{config-utils-WADIDWGG.js → config-utils-7COTJMWK.js} +4 -4
- package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-4YABGF4S.js} +40 -38
- package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-7M4VM3DA.js} +36 -34
- package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-HOFDW4N7.js} +39 -37
- package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
- package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
- package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
- package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
- package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
- package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-W2U5Q3J5.js} +47 -45
- package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-IFICWPXP.js} +42 -40
- package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-GX7EO6FW.js} +42 -40
- package/chunks/{de-SY6O76BF.js → de-A6TI4LBB.js} +46 -5
- package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-U36OOOKE.js} +36 -34
- package/chunks/display-image-VS3TXYQH.js +184 -0
- package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
- package/chunks/{dist-26BIMQT6.js → dist-4KAX7CCL.js} +289 -27
- package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
- package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
- package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
- package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
- package/chunks/{dist-ULIG4M5H.js → dist-NEBRI7WO.js} +67 -15
- package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
- package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-5ZWDH3SB.js} +37 -35
- package/chunks/{edit-FJEUV6KZ.js → edit-J7SW6UP6.js} +36 -34
- package/chunks/{en-NBK3JKCE.js → en-L4UQDLWW.js} +57 -6
- package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-NRLOHRB6.js} +36 -34
- package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-GDSTEFSM.js} +36 -34
- package/chunks/{environment-SWL3CMB3.js → environment-KHYEKG5W.js} +39 -37
- package/chunks/{errors-XQE7BGZV.js → errors-VNLAJV3O.js} +39 -37
- package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-ARVID7DF.js} +36 -34
- package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-4ZFY7KUH.js} +36 -34
- package/chunks/{fast-path-Z2K7W6DC.js → fast-path-KA65VREJ.js} +9 -5
- package/chunks/{fr-4KG5V7UT.js → fr-QF7RI5ZE.js} +46 -5
- package/chunks/{gemini-YU4XKEDG.js → gemini-5PMCNPF7.js} +149 -90
- package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-NFSYJ4HA.js} +6 -6
- package/chunks/{glob-VYF5CXSX.js → glob-F3EAUDAX.js} +36 -34
- package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
- package/chunks/{grep-5DP5ZUTW.js → grep-UJMPVZER.js} +36 -34
- package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MG4FRZPN.js} +42 -40
- package/chunks/{i18n-UQNYHEUD.js → i18n-EVHV4ZF3.js} +38 -36
- package/chunks/{image-gen-WHPIZNWF.js → image-gen-UC7XVHI7.js} +9 -9
- package/chunks/{initializer-GMIICF4W.js → initializer-O5B6HUBI.js} +43 -41
- package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-2LIKCNVX.js} +37 -35
- package/chunks/{ja-F3GSQXMF.js → ja-URQESVGW.js} +46 -5
- package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
- package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
- package/chunks/{list-CPN2W334.js → list-BPKIE3Z4.js} +45 -43
- package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
- package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-NGLFF4V4.js} +42 -40
- package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-7TFESRG5.js} +52 -37
- package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
- package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
- package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
- package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-CLZGGV7F.js} +39 -37
- package/chunks/{mcp-V5NTJF6X.js → mcp-X5OZOOXX.js} +42 -40
- package/chunks/{monitor-CO3ASY6E.js → monitor-TGSVSAZZ.js} +36 -34
- package/chunks/nonInteractiveCli-GUMJ5JLG.js +150 -0
- package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-EZISE7IC.js} +36 -34
- package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZAKS5A6P.js} +18 -18
- package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCMBX4LR.js} +37 -35
- package/chunks/{processUtils-PB5K2DYH.js → processUtils-2CSVE5BW.js} +2 -2
- package/chunks/{pt-EQ33KWEN.js → pt-EEEQXRUI.js} +46 -5
- package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-S3H6PIC4.js} +42 -40
- package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-MNU425VE.js} +8 -8
- package/chunks/{read-file-IEOR5H5W.js → read-file-HXJXHBI6.js} +10 -10
- package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
- package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
- package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-4QAMC2S6.js} +44 -42
- package/chunks/{ripGrep-UMQODKEB.js → ripGrep-MCETPF2E.js} +36 -34
- package/chunks/{ru-7OZAUKGG.js → ru-WGZDYQAB.js} +46 -5
- package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-3NMODTXV.js} +219 -55
- package/chunks/{runtime-QFJ2MJF5.js → runtime-AQOV7DVP.js} +49 -45
- package/chunks/{scheduler-AMYUFOZI.js → scheduler-DN7SZ6ZE.js} +36 -34
- package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
- package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
- package/chunks/{send-message-PMP4ATVM.js → send-message-HGCVVDTZ.js} +5 -4
- package/chunks/{serve-EIIYJVX3.js → serve-WZB45HVT.js} +42 -40
- package/chunks/{server-EP2LLAPD.js → server-GOTZFEEZ.js} +616 -387
- package/chunks/{session-GMPZBLOW.js → session-23LOFLWN.js} +149 -87
- package/chunks/{settings-LN7RNKBS.js → settings-LI2ORVXC.js} +41 -39
- package/chunks/{shell-EM2OWU5X.js → shell-GLC6OP3C.js} +36 -34
- package/chunks/{skill-T5VPSK73.js → skill-C7W6M4GO.js} +27 -14
- package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-W25NCK5I.js} +41 -39
- package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-OHJLEBLD.js} +38 -36
- package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-E4V5V7WT.js} +39 -37
- package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-FKILLW7Q.js} +1815 -1034
- package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
- package/chunks/{task-create-NFCYD43L.js → task-create-CSCEG4SM.js} +10 -9
- package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
- package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
- package/chunks/{task-update-6L7LHGEX.js → task-update-C52LNFU5.js} +10 -9
- package/chunks/{team-create-LFJ6HGNY.js → team-create-HBIJ7NHT.js} +36 -34
- package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
- package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-IBJOKS4J.js} +36 -34
- package/chunks/terminal-image-renderer-BOQJPVLB.js +89 -0
- package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-NSS7VLUD.js} +37 -35
- package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-YKAA57W2.js} +107 -36
- package/chunks/{tool-search-FAZBFRJZ.js → tool-search-DEAS54VG.js} +13 -12
- package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-4LWTX3WD.js} +43 -41
- package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-NF3J2TA7.js} +38 -36
- package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-WUHRH5V3.js} +5 -5
- package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-7EG4BLBH.js} +41 -39
- package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-ZRV56GVP.js} +46 -44
- package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-WC2FPE3I.js} +86 -84
- package/chunks/{version-VSATY2LD.js → version-6SS7KCUP.js} +1 -1
- package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-Y5QQMPKA.js} +13 -13
- package/chunks/{web-search-DSQTFUBX.js → web-search-QKKEU723.js} +8 -8
- package/chunks/{workflow-M6QAVKVJ.js → workflow-PWIU6Q2M.js} +418 -304
- package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-B2DM6FNK.js} +45 -43
- package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7Y33TTHJ.js} +2 -2
- package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-TSNJKLPC.js} +43 -41
- package/chunks/{workspace-service-25ML3T47.js → workspace-service-4I2QHDX4.js} +50 -48
- package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-HVXNWVGR.js} +44 -42
- package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-RDBBGMWP.js} +49 -47
- package/chunks/{write-file-AY7VLP5X.js → write-file-RQ4DG5RY.js} +36 -34
- package/chunks/{zh-H3YDK5QW.js → zh-72XPUG5P.js} +54 -6
- package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-LTB4SRH3.js} +54 -6
- package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O5YCB7WN.js} +10 -10
- package/cli.js +32 -48
- package/locales/ca.js +60 -4
- package/locales/de.js +62 -4
- package/locales/en.js +76 -6
- package/locales/fr.js +64 -4
- package/locales/ja.js +61 -4
- package/locales/pt.js +60 -4
- package/locales/ru.js +63 -4
- package/locales/zh-TW.js +67 -6
- package/locales/zh.js +67 -6
- package/package.json +3 -3
- package/web-shell/assets/{arc-xjArKHU2.js → arc-Bd7d781i.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-CpnOJqNE.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-NxVTiWnk.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-BWT75l82.js} +1 -1
- package/web-shell/assets/channel-A434sWK5.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-Dzz03hk6.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DRF-egfm.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-Co15vq5x.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-DHSUk1J7.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-Br8u_E2R.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DXbPTnqF.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BleQdi4d.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-CqgBf-95.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-WS7b13Yg.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-v_55ki8o.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-DaYAjbdK.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-D_Hy-L64.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-dB06cZyD.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-DzSluD4F.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-Cvb6CeXQ.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-7eB2Hmov.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-B08iGCw_.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-BgsrCHq-.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-DQLurQ2i.js} +1 -1
- package/web-shell/assets/{index-Ww86nT9f.js → index-B_1Z0Mgr.js} +1 -1
- package/web-shell/assets/index-Bi1dP2mU.css +5 -0
- package/web-shell/assets/index-DJ-z1Oba.js +1756 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-DXZGO8qB.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-g7gbuH2w.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-euefICGn.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Dws8-mjG.js} +1 -1
- package/web-shell/assets/{linear-DPhyNezd.js → linear-C63F0tyh.js} +1 -1
- package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-fLrhp_4-.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-qRkydfT-.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-BZ0wQaKN.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-CqWvjLHU.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-VcXX6PVZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-BJSRtxFr.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dt9zUwmZ.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DQwlNRws.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-DwxjUEtQ.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-D3QdMSpJ.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-BddN8oK8.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-BUNuBrRJ.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-4KP2F2TE.js +0 -82
- package/chunks/chunk-HGT6JR3U.js +0 -177
- package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
- package/web-shell/assets/channel-B1cyk94G.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
- package/web-shell/assets/index-C1k3PDuU.css +0 -5
- package/web-shell/assets/index-DZLIXILO.js +0 -1750
- package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
|
@@ -5,20 +5,20 @@ import {
|
|
|
5
5
|
} from "./chunk-VGC4I5JJ.js";
|
|
6
6
|
import {
|
|
7
7
|
isAnyAutoMemPath
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-E4WHKETF.js";
|
|
9
9
|
import {
|
|
10
10
|
STRUCTURED_OUTPUT_REDACTED_ARGS
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UEJESCS7.js";
|
|
12
12
|
import {
|
|
13
13
|
BaseDeclarativeTool,
|
|
14
14
|
BaseToolInvocation,
|
|
15
15
|
SchemaValidator,
|
|
16
16
|
ToolDisplayNames,
|
|
17
17
|
ToolNames
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-CFDR3GNL.js";
|
|
19
19
|
import {
|
|
20
20
|
DEFAULT_QWEN_MODEL
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-H35Q5CEG.js";
|
|
22
22
|
import {
|
|
23
23
|
estimateTextTokens,
|
|
24
24
|
generateLegacyMcpToolName,
|
|
@@ -29,10 +29,10 @@ import {
|
|
|
29
29
|
} from "./chunk-ZBVS26BY.js";
|
|
30
30
|
import {
|
|
31
31
|
InstallationManager
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-TYERNYH4.js";
|
|
33
33
|
import {
|
|
34
34
|
atomicWriteFile
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-UH7Z7Y45.js";
|
|
36
36
|
import {
|
|
37
37
|
isTelemetrySdkInitialized,
|
|
38
38
|
recordApiErrorMetrics,
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
recordSubagentExecutionMetrics,
|
|
54
54
|
recordTokenUsageMetrics,
|
|
55
55
|
recordToolCallMetrics
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-O2ZYHG33.js";
|
|
57
57
|
import {
|
|
58
58
|
require_src,
|
|
59
59
|
safeJsonStringify
|
|
@@ -113,7 +113,7 @@ import {
|
|
|
113
113
|
makeRelative,
|
|
114
114
|
shortenPath,
|
|
115
115
|
unescapePath
|
|
116
|
-
} from "./chunk-
|
|
116
|
+
} from "./chunk-3RXUYQJI.js";
|
|
117
117
|
import {
|
|
118
118
|
SemanticAttributes,
|
|
119
119
|
init_esm
|
|
@@ -9730,12 +9730,15 @@ async function readFileWithLineAndLimit(params) {
|
|
|
9730
9730
|
const endLine = Math.min(startLine + limit, originalLineCount);
|
|
9731
9731
|
const actualStartLine = Math.min(startLine, originalLineCount);
|
|
9732
9732
|
const selectedLines = lines.slice(actualStartLine, endLine);
|
|
9733
|
+
const joined = selectedLines.join("\n");
|
|
9733
9734
|
return {
|
|
9734
|
-
content:
|
|
9735
|
+
content: joined,
|
|
9735
9736
|
bom,
|
|
9736
9737
|
encoding,
|
|
9737
9738
|
originalLineCount,
|
|
9738
|
-
originalLineCountExact: true
|
|
9739
|
+
originalLineCountExact: true,
|
|
9740
|
+
truncatedByBytes: false,
|
|
9741
|
+
lineEnding: detectLineEndingFromContent(joined)
|
|
9739
9742
|
};
|
|
9740
9743
|
}
|
|
9741
9744
|
__name(readFileWithLineAndLimit, "readFileWithLineAndLimit");
|
|
@@ -10071,20 +10074,22 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10071
10074
|
preserveUnsupportedImage = false,
|
|
10072
10075
|
preparePdfForVisionBridge = false,
|
|
10073
10076
|
signal,
|
|
10074
|
-
largePdfBehavior = "error"
|
|
10077
|
+
largePdfBehavior = "error",
|
|
10078
|
+
displayPath = filePath
|
|
10075
10079
|
} = options;
|
|
10076
10080
|
const rootDirectory = config.getTargetDir();
|
|
10081
|
+
const relativePathForDisplay = (path2.isAbsolute(displayPath) ? path2.relative(rootDirectory, displayPath) : displayPath).replace(/\\/g, "/");
|
|
10077
10082
|
try {
|
|
10078
10083
|
signal?.throwIfAborted();
|
|
10079
10084
|
let stats;
|
|
10080
10085
|
try {
|
|
10081
|
-
stats = await fs3.promises.stat(filePath);
|
|
10086
|
+
stats = options.textFileStats ?? await fs3.promises.stat(filePath);
|
|
10082
10087
|
} catch (error) {
|
|
10083
10088
|
if (isNodeError(error) && error.code === "ENOENT") {
|
|
10084
10089
|
return {
|
|
10085
10090
|
llmContent: "Could not read file because no file was found at the specified path.",
|
|
10086
10091
|
returnDisplay: "File not found.",
|
|
10087
|
-
error: `File not found: ${
|
|
10092
|
+
error: `File not found: ${displayPath}`,
|
|
10088
10093
|
errorType: "file_not_found" /* FILE_NOT_FOUND */
|
|
10089
10094
|
};
|
|
10090
10095
|
}
|
|
@@ -10094,7 +10099,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10094
10099
|
return {
|
|
10095
10100
|
llmContent: "Could not read file because the provided path is a directory, not a file.",
|
|
10096
10101
|
returnDisplay: "Path is a directory.",
|
|
10097
|
-
error: `Path is a directory, not a file: ${
|
|
10102
|
+
error: `Path is a directory, not a file: ${displayPath}`,
|
|
10098
10103
|
errorType: "target_is_directory" /* TARGET_IS_DIRECTORY */
|
|
10099
10104
|
};
|
|
10100
10105
|
}
|
|
@@ -10102,15 +10107,14 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10102
10107
|
return {
|
|
10103
10108
|
llmContent: `Cannot read file: ${path2.basename(filePath)} is not a regular file (e.g. device, socket, or pipe).`,
|
|
10104
10109
|
returnDisplay: "Not a regular file.",
|
|
10105
|
-
error: `Not a regular file: ${
|
|
10110
|
+
error: `Not a regular file: ${displayPath}`,
|
|
10106
10111
|
errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
|
|
10107
10112
|
};
|
|
10108
10113
|
}
|
|
10109
|
-
const fileType = await detectFileType(filePath);
|
|
10114
|
+
const fileType = options.textFileHandle ? "text" : await detectFileType(filePath);
|
|
10110
10115
|
const mediaMimeType = index_lite_default.getType(filePath) ?? MIME_LITE_MISSING_VIDEO_TYPES.get(path2.extname(filePath).toLowerCase()) ?? "application/octet-stream";
|
|
10111
10116
|
const shouldRenderImageOverview = fileType === "image" && CANONICAL_IMAGE_MIME_TYPES.has(mediaMimeType);
|
|
10112
|
-
const
|
|
10113
|
-
const displayName = path2.basename(filePath);
|
|
10117
|
+
const displayName = path2.basename(displayPath);
|
|
10114
10118
|
const modalities = config.getContentGeneratorConfig?.()?.modalities ?? {};
|
|
10115
10119
|
const willRenderPdfImages = fileType === "pdf" && !!modalities.image && largePdfBehavior !== "reference";
|
|
10116
10120
|
const renderForBridge = fileType === "pdf" && !modalities.image && !modalities.pdf && (preserveUnsupportedImage || preparePdfForVisionBridge);
|
|
@@ -10149,7 +10153,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10149
10153
|
return {
|
|
10150
10154
|
llmContent: `PDF file is too large for full text extraction: ${fileSizeInMB.toFixed(2)}MB exceeds the ${PDF_FULL_TEXT_EXTRACTION_MAX_MB}MB limit. Use the 'pages' parameter to read a narrower range, or split the document into smaller files before retrying.`,
|
|
10151
10155
|
returnDisplay: `PDF file too large (${fileSizeInMB.toFixed(2)}MB > ${PDF_FULL_TEXT_EXTRACTION_MAX_MB}MB).`,
|
|
10152
|
-
error: `PDF exceeds extraction size limit: ${
|
|
10156
|
+
error: `PDF exceeds extraction size limit: ${displayPath} (${fileSizeInMB.toFixed(2)}MB)`,
|
|
10153
10157
|
errorType: "file_too_large" /* FILE_TOO_LARGE */,
|
|
10154
10158
|
stats
|
|
10155
10159
|
};
|
|
@@ -10158,7 +10162,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10158
10162
|
return {
|
|
10159
10163
|
llmContent: `PDF file is too large for page-range text extraction: ${fileSizeInMB.toFixed(2)}MB exceeds the ${PDF_PAGED_TEXT_EXTRACTION_MAX_MB}MB limit. Split the document into smaller files before retrying.`,
|
|
10160
10164
|
returnDisplay: `PDF file too large (${fileSizeInMB.toFixed(2)}MB > ${PDF_PAGED_TEXT_EXTRACTION_MAX_MB}MB).`,
|
|
10161
|
-
error: `PDF exceeds page-range extraction size limit: ${
|
|
10165
|
+
error: `PDF exceeds page-range extraction size limit: ${displayPath} (${fileSizeInMB.toFixed(2)}MB)`,
|
|
10162
10166
|
errorType: "file_too_large" /* FILE_TOO_LARGE */,
|
|
10163
10167
|
stats
|
|
10164
10168
|
};
|
|
@@ -10197,7 +10201,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10197
10201
|
return {
|
|
10198
10202
|
llmContent: "Image file exceeds the 100 MB source limit.",
|
|
10199
10203
|
returnDisplay: "Image file exceeds the 100 MB source limit.",
|
|
10200
|
-
error: `Image file exceeds the 100 MB source limit: ${
|
|
10204
|
+
error: `Image file exceeds the 100 MB source limit: ${displayPath}`,
|
|
10201
10205
|
errorType: "file_too_large" /* FILE_TOO_LARGE */
|
|
10202
10206
|
};
|
|
10203
10207
|
}
|
|
@@ -10205,7 +10209,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10205
10209
|
return {
|
|
10206
10210
|
llmContent: "File size exceeds the 10MB limit.",
|
|
10207
10211
|
returnDisplay: "File size exceeds the 10MB limit.",
|
|
10208
|
-
error: `File size exceeds the 10MB limit: ${
|
|
10212
|
+
error: `File size exceeds the 10MB limit: ${displayPath} (${fileSizeInMB.toFixed(2)}MB)`,
|
|
10209
10213
|
errorType: "file_too_large" /* FILE_TOO_LARGE */
|
|
10210
10214
|
};
|
|
10211
10215
|
}
|
|
@@ -10255,11 +10259,22 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10255
10259
|
};
|
|
10256
10260
|
}
|
|
10257
10261
|
case "text": {
|
|
10258
|
-
const
|
|
10262
|
+
const fileSystemService = config.getFileSystemService();
|
|
10263
|
+
const maxOutputBytes = getRangeReadByteLimit(config);
|
|
10264
|
+
const readTextFileFromHandle = fileSystemService.readTextFileFromHandle;
|
|
10265
|
+
const { content, _meta } = options.textFileHandle ? await readTextFileFromHandle.call(fileSystemService, {
|
|
10266
|
+
fileHandle: options.textFileHandle,
|
|
10267
|
+
fileSize: stats.size,
|
|
10268
|
+
limit: limit ?? config.getTruncateToolOutputLines(),
|
|
10269
|
+
line: offset,
|
|
10270
|
+
maxOutputBytes,
|
|
10271
|
+
maxScanBytes: options.textFileMaxScanBytes ?? maxOutputBytes,
|
|
10272
|
+
...signal !== void 0 ? { signal } : {}
|
|
10273
|
+
}) : await fileSystemService.readTextFile({
|
|
10259
10274
|
path: filePath,
|
|
10260
10275
|
limit: limit ?? config.getTruncateToolOutputLines(),
|
|
10261
10276
|
line: offset,
|
|
10262
|
-
maxOutputBytes
|
|
10277
|
+
maxOutputBytes,
|
|
10263
10278
|
stats,
|
|
10264
10279
|
...signal !== void 0 ? { signal } : {}
|
|
10265
10280
|
});
|
|
@@ -10379,7 +10394,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10379
10394
|
return {
|
|
10380
10395
|
llmContent: `File exceeds the 10MB data URI limit after base64 encoding (${base64SizeInMB.toFixed(2)}MB encoded).`,
|
|
10381
10396
|
returnDisplay: `File exceeds the 10MB data URI limit after base64 encoding.`,
|
|
10382
|
-
error: `File exceeds the 10MB data URI limit after base64 encoding: ${
|
|
10397
|
+
error: `File exceeds the 10MB data URI limit after base64 encoding: ${displayPath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
|
|
10383
10398
|
errorType: "file_too_large" /* FILE_TOO_LARGE */
|
|
10384
10399
|
};
|
|
10385
10400
|
}
|
|
@@ -10403,7 +10418,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10403
10418
|
return {
|
|
10404
10419
|
llmContent: `File exceeds the 10MB data URI limit after base64 encoding (${base64SizeInMB.toFixed(2)}MB encoded).`,
|
|
10405
10420
|
returnDisplay: `File exceeds the 10MB data URI limit after base64 encoding.`,
|
|
10406
|
-
error: `File exceeds the 10MB data URI limit after base64 encoding: ${
|
|
10421
|
+
error: `File exceeds the 10MB data URI limit after base64 encoding: ${displayPath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
|
|
10407
10422
|
errorType: "file_too_large" /* FILE_TOO_LARGE */
|
|
10408
10423
|
};
|
|
10409
10424
|
}
|
|
@@ -10427,7 +10442,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10427
10442
|
return {
|
|
10428
10443
|
llmContent: `File exceeds the 10MB data URI limit after base64 encoding (${base64SizeInMB.toFixed(2)}MB encoded).`,
|
|
10429
10444
|
returnDisplay: `File exceeds the 10MB data URI limit after base64 encoding.`,
|
|
10430
|
-
error: `File exceeds the 10MB data URI limit after base64 encoding: ${
|
|
10445
|
+
error: `File exceeds the 10MB data URI limit after base64 encoding: ${displayPath} (${base64SizeInMB.toFixed(2)}MB encoded)`,
|
|
10431
10446
|
errorType: "file_too_large" /* FILE_TOO_LARGE */
|
|
10432
10447
|
};
|
|
10433
10448
|
}
|
|
@@ -10638,7 +10653,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10638
10653
|
return {
|
|
10639
10654
|
llmContent: `Error parsing notebook ${relativePathForDisplay}: ${msg}`,
|
|
10640
10655
|
returnDisplay: `Error reading notebook: ${relativePathForDisplay}`,
|
|
10641
|
-
error: `Error parsing notebook ${
|
|
10656
|
+
error: `Error parsing notebook ${displayPath}: ${msg}`,
|
|
10642
10657
|
errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
|
|
10643
10658
|
};
|
|
10644
10659
|
}
|
|
@@ -10648,7 +10663,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10648
10663
|
return {
|
|
10649
10664
|
llmContent: `Unhandled file type: ${exhaustiveCheck}`,
|
|
10650
10665
|
returnDisplay: `Skipped unhandled file type: ${relativePathForDisplay}`,
|
|
10651
|
-
error: `Unhandled file type for ${
|
|
10666
|
+
error: `Unhandled file type for ${displayPath}`
|
|
10652
10667
|
};
|
|
10653
10668
|
}
|
|
10654
10669
|
}
|
|
@@ -10657,11 +10672,10 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
|
|
|
10657
10672
|
throw error;
|
|
10658
10673
|
}
|
|
10659
10674
|
const errorMessage = getErrorMessage(error);
|
|
10660
|
-
const displayPath = path2.relative(rootDirectory, filePath).replace(/\\/g, "/");
|
|
10661
10675
|
return {
|
|
10662
|
-
llmContent: `Error reading file ${
|
|
10663
|
-
returnDisplay: `Error reading file ${
|
|
10664
|
-
error: `Error reading file ${
|
|
10676
|
+
llmContent: `Error reading file ${relativePathForDisplay}: ${errorMessage}`,
|
|
10677
|
+
returnDisplay: `Error reading file ${relativePathForDisplay}: ${errorMessage}`,
|
|
10678
|
+
error: `Error reading file ${relativePathForDisplay}: ${errorMessage}`,
|
|
10665
10679
|
errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
|
|
10666
10680
|
};
|
|
10667
10681
|
}
|
|
@@ -10670,7 +10684,7 @@ __name(processSingleFileContent, "processSingleFileContent");
|
|
|
10670
10684
|
function getRangeReadByteLimit(config) {
|
|
10671
10685
|
const charLimit = config.getTruncateToolOutputThreshold();
|
|
10672
10686
|
if (charLimit === Number.POSITIVE_INFINITY) {
|
|
10673
|
-
return Number.
|
|
10687
|
+
return Number.MAX_SAFE_INTEGER;
|
|
10674
10688
|
}
|
|
10675
10689
|
if (!Number.isFinite(charLimit)) {
|
|
10676
10690
|
return DEFAULT_RANGE_READ_BYTES;
|
|
@@ -11214,6 +11228,8 @@ var QwenLogger = class _QwenLogger {
|
|
|
11214
11228
|
response_id: event.response_id,
|
|
11215
11229
|
tool_name: event.function_name,
|
|
11216
11230
|
permission: event.decision,
|
|
11231
|
+
status: event.status,
|
|
11232
|
+
tool_type: event.tool_type,
|
|
11217
11233
|
success: event.success ? 1 : 0,
|
|
11218
11234
|
duration_ms: event.duration_ms,
|
|
11219
11235
|
error_type: event.error_type,
|
|
@@ -12780,42 +12796,55 @@ function logUserRetry(config, event) {
|
|
|
12780
12796
|
logger.emit(logRecord);
|
|
12781
12797
|
}
|
|
12782
12798
|
__name(logUserRetry, "logUserRetry");
|
|
12799
|
+
function normalizeToolCallEvent(event) {
|
|
12800
|
+
const isError = event.status === "error";
|
|
12801
|
+
return {
|
|
12802
|
+
...event,
|
|
12803
|
+
function_name: event.function_name.trim().length > 0 ? event.function_name : "unknown_tool",
|
|
12804
|
+
success: event.status === "success",
|
|
12805
|
+
error: isError ? event.error : void 0,
|
|
12806
|
+
error_type: isError ? event.error_type?.trim() ? event.error_type : "unknown" /* UNKNOWN */ : void 0
|
|
12807
|
+
};
|
|
12808
|
+
}
|
|
12809
|
+
__name(normalizeToolCallEvent, "normalizeToolCallEvent");
|
|
12783
12810
|
function logToolCall(config, event) {
|
|
12811
|
+
const normalizedEvent = normalizeToolCallEvent(event);
|
|
12784
12812
|
const uiEvent = {
|
|
12785
|
-
...
|
|
12813
|
+
...normalizedEvent,
|
|
12786
12814
|
"event.name": EVENT_TOOL_CALL,
|
|
12787
12815
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
12788
12816
|
};
|
|
12789
12817
|
uiTelemetryService.addEvent(uiEvent, config.getSessionId());
|
|
12790
|
-
if (!isInternalPromptId(
|
|
12818
|
+
if (!isInternalPromptId(normalizedEvent.prompt_id)) {
|
|
12791
12819
|
recordUiTelemetryEventToChat(config, uiEvent);
|
|
12792
12820
|
}
|
|
12793
|
-
QwenLogger.getInstance(config)?.logToolCallEvent(
|
|
12821
|
+
QwenLogger.getInstance(config)?.logToolCallEvent(normalizedEvent);
|
|
12794
12822
|
if (!isTelemetrySdkInitialized()) return;
|
|
12795
12823
|
const attributes = {
|
|
12796
12824
|
...getCommonAttributes(config),
|
|
12797
|
-
...
|
|
12825
|
+
...normalizedEvent,
|
|
12798
12826
|
"event.name": EVENT_TOOL_CALL,
|
|
12799
12827
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString(),
|
|
12800
|
-
function_args: safeJsonStringify(
|
|
12828
|
+
function_args: safeJsonStringify(normalizedEvent.function_args, 2)
|
|
12801
12829
|
};
|
|
12802
|
-
if (
|
|
12803
|
-
attributes["error.message"] =
|
|
12804
|
-
|
|
12805
|
-
|
|
12806
|
-
|
|
12830
|
+
if (normalizedEvent.error) {
|
|
12831
|
+
attributes["error.message"] = normalizedEvent.error;
|
|
12832
|
+
}
|
|
12833
|
+
if (normalizedEvent.error_type) {
|
|
12834
|
+
attributes["error.type"] = normalizedEvent.error_type;
|
|
12807
12835
|
}
|
|
12808
12836
|
const logger = import_api_logs.logs.getLogger(SERVICE_NAME);
|
|
12809
12837
|
const logRecord = {
|
|
12810
|
-
body: `Tool call: ${
|
|
12838
|
+
body: `Tool call: ${normalizedEvent.function_name}${normalizedEvent.decision ? `. Decision: ${normalizedEvent.decision}` : ""}. Success: ${normalizedEvent.success}. Duration: ${normalizedEvent.duration_ms}ms.`,
|
|
12811
12839
|
attributes
|
|
12812
12840
|
};
|
|
12813
12841
|
logger.emit(logRecord);
|
|
12814
|
-
recordToolCallMetrics(config,
|
|
12815
|
-
function_name:
|
|
12816
|
-
|
|
12817
|
-
|
|
12818
|
-
|
|
12842
|
+
recordToolCallMetrics(config, normalizedEvent.duration_ms, {
|
|
12843
|
+
function_name: normalizedEvent.function_name,
|
|
12844
|
+
status: normalizedEvent.status,
|
|
12845
|
+
success: normalizedEvent.success,
|
|
12846
|
+
decision: normalizedEvent.decision,
|
|
12847
|
+
tool_type: normalizedEvent.tool_type
|
|
12819
12848
|
});
|
|
12820
12849
|
}
|
|
12821
12850
|
__name(logToolCall, "logToolCall");
|
|
@@ -16980,6 +17009,7 @@ export {
|
|
|
16980
17009
|
readFileWithLineAndLimit,
|
|
16981
17010
|
getSpecificMimeType,
|
|
16982
17011
|
isWithinRoot,
|
|
17012
|
+
detectFileType,
|
|
16983
17013
|
isCacheableReadResult,
|
|
16984
17014
|
processSingleFileContent,
|
|
16985
17015
|
fileExists,
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
relaxSchemaForFunctionCalling,
|
|
10
10
|
safeJsonParse,
|
|
11
11
|
setGenAiUsageProvenance
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-WK4TJUEA.js";
|
|
13
13
|
import {
|
|
14
14
|
setToolCallPreparations
|
|
15
15
|
} from "./chunk-GLCZKT5V.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "./chunk-46UV252V.js";
|
|
22
22
|
import {
|
|
23
23
|
createDebugLogger
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-3RXUYQJI.js";
|
|
25
25
|
import {
|
|
26
26
|
FinishReason,
|
|
27
27
|
GenerateContentResponse
|
|
@@ -109,38 +109,6 @@ function truncateToWidth(text, maxWidth) {
|
|
|
109
109
|
return `${result}${ellipsis}`;
|
|
110
110
|
}
|
|
111
111
|
__name(truncateToWidth, "truncateToWidth");
|
|
112
|
-
function wrapToVisualLines(text, width) {
|
|
113
|
-
if (width <= 0) {
|
|
114
|
-
return [""];
|
|
115
|
-
}
|
|
116
|
-
const visualLines = [];
|
|
117
|
-
for (const logicalLine of text.split("\n")) {
|
|
118
|
-
if (logicalLine === "") {
|
|
119
|
-
visualLines.push("");
|
|
120
|
-
continue;
|
|
121
|
-
}
|
|
122
|
-
let currentLine = "";
|
|
123
|
-
let currentWidth = 0;
|
|
124
|
-
for (const char of logicalLine) {
|
|
125
|
-
const charWidth = Math.max(getCachedStringWidth(char), 1);
|
|
126
|
-
if (currentWidth + charWidth > width && currentWidth > 0) {
|
|
127
|
-
visualLines.push(currentLine);
|
|
128
|
-
currentLine = "";
|
|
129
|
-
currentWidth = 0;
|
|
130
|
-
}
|
|
131
|
-
currentLine += char;
|
|
132
|
-
currentWidth += charWidth;
|
|
133
|
-
}
|
|
134
|
-
if (currentLine) {
|
|
135
|
-
visualLines.push(currentLine);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (visualLines.length === 0) {
|
|
139
|
-
visualLines.push("");
|
|
140
|
-
}
|
|
141
|
-
return visualLines;
|
|
142
|
-
}
|
|
143
|
-
__name(wrapToVisualLines, "wrapToVisualLines");
|
|
144
112
|
var regex = ansiRegex();
|
|
145
113
|
var BARE_C0_CONTROL_CHARS_REGEX = /[\x00-\x08\x0b-\x1f\x7f-\x9f]/g;
|
|
146
114
|
var BIDI_OVERRIDE_CHARS_REGEX = /[\u200e\u200f\u202a-\u202e\u2066-\u2069]/g;
|
|
@@ -289,7 +257,6 @@ export {
|
|
|
289
257
|
stripUnsafeCharacters,
|
|
290
258
|
getCachedStringWidth,
|
|
291
259
|
truncateToWidth,
|
|
292
|
-
wrapToVisualLines,
|
|
293
260
|
sanitizeTerminalText,
|
|
294
261
|
escapeAnsiCtrlCodes,
|
|
295
262
|
sanitizeSensitiveText,
|
|
@@ -2,24 +2,41 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
HistoryReplayer
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VUNRNRN6.js";
|
|
6
6
|
import {
|
|
7
7
|
ChannelDeliveryError,
|
|
8
8
|
MAX_CHANNEL_DELIVERY_TEXT_LENGTH
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QONSRAEV.js";
|
|
10
10
|
import {
|
|
11
11
|
redactLogCredentials
|
|
12
12
|
} from "./chunk-M5GB774H.js";
|
|
13
13
|
import {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
getUserSettingsPath,
|
|
15
|
+
loadSettings
|
|
16
|
+
} from "./chunk-22YFMJBW.js";
|
|
17
|
+
import {
|
|
18
|
+
getSystemDefaultsPath,
|
|
19
|
+
getSystemSettingsPath
|
|
20
|
+
} from "./chunk-IDS7MSUP.js";
|
|
21
|
+
import {
|
|
22
|
+
findEnvFiles,
|
|
23
|
+
preResolveHomeEnvOverrides
|
|
24
|
+
} from "./chunk-6NE5NTHJ.js";
|
|
25
|
+
import {
|
|
26
|
+
getResponseText,
|
|
27
|
+
ideContextStore
|
|
28
|
+
} from "./chunk-UQDFEU47.js";
|
|
16
29
|
import {
|
|
17
30
|
MAX_CHANNEL_DELIVERY_NAME_LENGTH,
|
|
18
31
|
MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH
|
|
19
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-MOHAWIAW.js";
|
|
20
33
|
import {
|
|
21
34
|
parseGoalSnapshotV2
|
|
22
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-HFVW54NL.js";
|
|
36
|
+
import {
|
|
37
|
+
Storage,
|
|
38
|
+
createDebugLogger
|
|
39
|
+
} from "./chunk-3RXUYQJI.js";
|
|
23
40
|
import {
|
|
24
41
|
init_esbuild_shims
|
|
25
42
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -27,7 +44,7 @@ import {
|
|
|
27
44
|
__name
|
|
28
45
|
} from "./chunk-J2S4EL5Y.js";
|
|
29
46
|
|
|
30
|
-
// packages/cli/src/
|
|
47
|
+
// packages/cli/src/runtime/workspace-remember-errors.ts
|
|
31
48
|
init_esbuild_shims();
|
|
32
49
|
var MAX_REMEMBER_ERROR_DETAILS_CHARS = 1e3;
|
|
33
50
|
var MAX_REMEMBER_ERROR_CAUSE_DEPTH = 50;
|
|
@@ -263,11 +280,11 @@ function workspaceMemoryFailureDiagnostics(err, onExtractionError) {
|
|
|
263
280
|
}
|
|
264
281
|
__name(workspaceMemoryFailureDiagnostics, "workspaceMemoryFailureDiagnostics");
|
|
265
282
|
|
|
266
|
-
// packages/cli/src/
|
|
283
|
+
// packages/cli/src/runtime/workspace-memory-remember-constants.ts
|
|
267
284
|
init_esbuild_shims();
|
|
268
285
|
var MAX_REMEMBER_CONTENT_BYTES = 64 * 1024;
|
|
269
286
|
|
|
270
|
-
// packages/cli/src/
|
|
287
|
+
// packages/cli/src/runtime/workspace-memory-summaries.ts
|
|
271
288
|
init_esbuild_shims();
|
|
272
289
|
function formatWorkspaceMemoryForgetSummary(removedEntryCount) {
|
|
273
290
|
return removedEntryCount > 0 ? `Forgot ${removedEntryCount} memory entr${removedEntryCount === 1 ? "y" : "ies"}.` : "No managed auto-memory entries matched.";
|
|
@@ -361,7 +378,7 @@ function restoreRedactedMcpServersSetting(value, existing) {
|
|
|
361
378
|
}
|
|
362
379
|
__name(restoreRedactedMcpServersSetting, "restoreRedactedMcpServersSetting");
|
|
363
380
|
|
|
364
|
-
// packages/cli/src/
|
|
381
|
+
// packages/cli/src/runtime/validate-server-name.ts
|
|
365
382
|
init_esbuild_shims();
|
|
366
383
|
var VALID_SERVER_NAME = /^[A-Za-z0-9_-]+$/;
|
|
367
384
|
var RESERVED_SERVER_NAMES = /* @__PURE__ */ new Set([
|
|
@@ -432,6 +449,121 @@ async function executeGeneration(config, requestId, prompt, signal, emit) {
|
|
|
432
449
|
}
|
|
433
450
|
__name(executeGeneration, "executeGeneration");
|
|
434
451
|
|
|
452
|
+
// packages/cli/src/config/settings-cache.ts
|
|
453
|
+
init_esbuild_shims();
|
|
454
|
+
import * as fs from "node:fs";
|
|
455
|
+
import * as os from "node:os";
|
|
456
|
+
import * as path from "node:path";
|
|
457
|
+
var MAX_CACHE_ENTRIES = 64;
|
|
458
|
+
var debugLogger = createDebugLogger("SETTINGS_CACHE");
|
|
459
|
+
var cache = /* @__PURE__ */ new Map();
|
|
460
|
+
function statSig(filePath) {
|
|
461
|
+
const st = fs.statSync(filePath, { throwIfNoEntry: false });
|
|
462
|
+
return st ? `${st.mtimeMs}:${st.size}:${st.ino}` : "missing";
|
|
463
|
+
}
|
|
464
|
+
__name(statSig, "statSig");
|
|
465
|
+
function realpathOr(p) {
|
|
466
|
+
try {
|
|
467
|
+
return fs.realpathSync(p);
|
|
468
|
+
} catch {
|
|
469
|
+
return path.resolve(p);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
__name(realpathOr, "realpathOr");
|
|
473
|
+
function settingsFileSigs(workspaceDir) {
|
|
474
|
+
const filePaths = [
|
|
475
|
+
getSystemSettingsPath(),
|
|
476
|
+
getSystemDefaultsPath(),
|
|
477
|
+
getUserSettingsPath(),
|
|
478
|
+
new Storage(workspaceDir).getWorkspaceSettingsPath()
|
|
479
|
+
];
|
|
480
|
+
return filePaths.map((filePath) => ({ filePath, sig: statSig(filePath) }));
|
|
481
|
+
}
|
|
482
|
+
__name(settingsFileSigs, "settingsFileSigs");
|
|
483
|
+
function envFileSigs(settings, workspaceDir) {
|
|
484
|
+
return findEnvFiles(settings.merged, workspaceDir).map((filePath) => ({
|
|
485
|
+
filePath,
|
|
486
|
+
sig: statSig(filePath)
|
|
487
|
+
}));
|
|
488
|
+
}
|
|
489
|
+
__name(envFileSigs, "envFileSigs");
|
|
490
|
+
function sameFileSigs(a, b) {
|
|
491
|
+
if (a.length !== b.length) {
|
|
492
|
+
return false;
|
|
493
|
+
}
|
|
494
|
+
return a.every(
|
|
495
|
+
(sig, i) => sig.filePath === b[i].filePath && sig.sig === b[i].sig
|
|
496
|
+
);
|
|
497
|
+
}
|
|
498
|
+
__name(sameFileSigs, "sameFileSigs");
|
|
499
|
+
function isEntryFresh(key, entry) {
|
|
500
|
+
const fp = entry.fingerprint;
|
|
501
|
+
return ideContextStore.get()?.workspaceState?.isTrusted === fp.ideTrust && realpathOr(key) === fp.realCwd && // homeDir guards the corner where nothing else moves: QWEN_HOME set (so
|
|
502
|
+
// settings paths don't follow HOME), no .env files anywhere, and the new
|
|
503
|
+
// home equals the workspace dir — which flips workspaceSettingsActive.
|
|
504
|
+
realpathOr(os.homedir()) === fp.homeDir && sameFileSigs(settingsFileSigs(key), fp.settingsFiles) && sameFileSigs(envFileSigs(entry.settings, key), fp.envFiles);
|
|
505
|
+
}
|
|
506
|
+
__name(isEntryFresh, "isEntryFresh");
|
|
507
|
+
function loadSettingsCached(workspaceDir) {
|
|
508
|
+
preResolveHomeEnvOverrides();
|
|
509
|
+
const key = path.resolve(workspaceDir);
|
|
510
|
+
const entry = cache.get(key);
|
|
511
|
+
if (entry) {
|
|
512
|
+
let isFresh = false;
|
|
513
|
+
try {
|
|
514
|
+
isFresh = isEntryFresh(key, entry);
|
|
515
|
+
} catch (error) {
|
|
516
|
+
debugLogger.warn(
|
|
517
|
+
`fingerprint check failed for ${key}; reloading:`,
|
|
518
|
+
error
|
|
519
|
+
);
|
|
520
|
+
}
|
|
521
|
+
if (isFresh) {
|
|
522
|
+
cache.delete(key);
|
|
523
|
+
cache.set(key, entry);
|
|
524
|
+
debugLogger.debug(`hit ${key}`);
|
|
525
|
+
return entry.settings;
|
|
526
|
+
}
|
|
527
|
+
cache.delete(key);
|
|
528
|
+
}
|
|
529
|
+
debugLogger.debug(`miss ${key}`);
|
|
530
|
+
let preLoadSigs;
|
|
531
|
+
try {
|
|
532
|
+
preLoadSigs = settingsFileSigs(key);
|
|
533
|
+
} catch (error) {
|
|
534
|
+
debugLogger.warn(`pre-load signing failed for ${key}; not caching:`, error);
|
|
535
|
+
}
|
|
536
|
+
const settings = loadSettings(key);
|
|
537
|
+
if (preLoadSigs) {
|
|
538
|
+
try {
|
|
539
|
+
cache.set(key, {
|
|
540
|
+
settings,
|
|
541
|
+
fingerprint: {
|
|
542
|
+
settingsFiles: preLoadSigs,
|
|
543
|
+
// .env discovery needs the merged settings (trust), so it can only
|
|
544
|
+
// be signed after the load — see difference (2) in the module doc.
|
|
545
|
+
envFiles: envFileSigs(settings, key),
|
|
546
|
+
ideTrust: ideContextStore.get()?.workspaceState?.isTrusted,
|
|
547
|
+
realCwd: realpathOr(key),
|
|
548
|
+
homeDir: realpathOr(os.homedir())
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
if (cache.size > MAX_CACHE_ENTRIES) {
|
|
552
|
+
const oldest = cache.keys().next().value;
|
|
553
|
+
if (oldest !== void 0) {
|
|
554
|
+
cache.delete(oldest);
|
|
555
|
+
debugLogger.debug(`evicted LRU entry ${oldest}`);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
} catch (error) {
|
|
559
|
+
cache.delete(key);
|
|
560
|
+
debugLogger.warn(`caching failed for ${key}; serving uncached:`, error);
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
return settings;
|
|
564
|
+
}
|
|
565
|
+
__name(loadSettingsCached, "loadSettingsCached");
|
|
566
|
+
|
|
435
567
|
// packages/cli/src/acp-integration/session/history-replay-page.ts
|
|
436
568
|
init_esbuild_shims();
|
|
437
569
|
function createReplayCumulativeUsage() {
|
|
@@ -621,7 +753,7 @@ async function replayTranscriptRecordPage({
|
|
|
621
753
|
}
|
|
622
754
|
__name(replayTranscriptRecordPage, "replayTranscriptRecordPage");
|
|
623
755
|
|
|
624
|
-
// packages/cli/src/
|
|
756
|
+
// packages/cli/src/runtime/channel-delivery.ts
|
|
625
757
|
init_esbuild_shims();
|
|
626
758
|
var TRUNCATED_TEXT_SUFFIX = "\n\n[Channel delivery truncated because the result exceeded the delivery size limit.]";
|
|
627
759
|
function isBoundedString(value, maxLength) {
|
|
@@ -707,6 +839,7 @@ export {
|
|
|
707
839
|
GENERATION_MAX_PROMPT_BYTES,
|
|
708
840
|
GENERATION_TIMEOUT_MS,
|
|
709
841
|
executeGeneration,
|
|
842
|
+
loadSettingsCached,
|
|
710
843
|
parseChannelDelivery,
|
|
711
844
|
normalizeChannelDeliveryText,
|
|
712
845
|
normalizeChannelDelivery,
|
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
import {
|
|
4
4
|
resolveModelConfig,
|
|
5
5
|
resolveProviderProtocol
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-UQDFEU47.js";
|
|
7
7
|
import {
|
|
8
8
|
external_exports
|
|
9
9
|
} from "./chunk-H6XPXXMH.js";
|
|
10
10
|
import {
|
|
11
11
|
stripRuntimeSnapshotPrefix
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-XUMAD5IT.js";
|
|
13
13
|
import {
|
|
14
14
|
REASONING_EFFORT_TIERS,
|
|
15
15
|
normalizeReasoningEffort
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
import {
|
|
18
18
|
AuthType,
|
|
19
19
|
MODEL_GENERATION_CONFIG_FIELDS
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-H35Q5CEG.js";
|
|
21
21
|
import {
|
|
22
22
|
init_esbuild_shims
|
|
23
23
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-6PEXNQTX.js";
|
|
9
9
|
import {
|
|
10
10
|
isWorkspaceTrusted
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-M5LIY7Y6.js";
|
|
12
12
|
import {
|
|
13
13
|
require_main
|
|
14
14
|
} from "./chunk-5M6IDOMF.js";
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
QWEN_DIR,
|
|
17
17
|
Storage,
|
|
18
18
|
getErrorMessage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-3RXUYQJI.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esbuild_shims
|
|
22
22
|
} from "./chunk-5O2XNYP6.js";
|