@qwen-code/qwen-code 0.21.2 → 0.21.3-nightly.20260803.e1e5b42ce
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 +53 -38
- package/bundled/qc-helper/docs/features/channels/github.md +16 -5
- package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +92 -24
- package/bundled/qc-helper/docs/features/commands.md +46 -38
- 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 +46 -25
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +62 -31
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
- package/bundled/review/DESIGN.md +167 -32
- package/bundled/review/SKILL.md +207 -38
- package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-FCEK5P5K.js} +41 -38
- package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AT77J3PM.js} +63 -59
- package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
- package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-PBMKZ5KH.js} +664 -560
- package/chunks/{agent-VDOUB35F.js → agent-55W5BPK3.js} +37 -34
- package/chunks/{agent-headless-EO53EFS2.js → agent-headless-I7VMHI22.js} +37 -34
- package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-3CAHEZBM.js} +341 -29
- 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-XNAWEDAN.js} +43 -40
- package/chunks/{ca-6W3SK7OQ.js → ca-NYKNH222.js} +50 -5
- package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-UHX56NBO.js} +7 -7
- package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-7P6RJSSF.js} +44 -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-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
- package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
- package/chunks/{chunk-AUOULH6Q.js → chunk-2GF3IDEK.js} +1610 -2196
- package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
- package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
- package/chunks/{chunk-BBIQAX4V.js → chunk-2ZCYE3F2.js} +30 -18
- package/chunks/{chunk-GJ2GBPBD.js → chunk-332FMXSD.js} +5 -5
- package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
- package/chunks/{chunk-P755N4CS.js → chunk-3GALLNII.js} +6 -6
- package/chunks/{chunk-YANIWTRZ.js → chunk-3ICGQSVO.js} +1 -1
- package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
- package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
- package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
- package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
- package/chunks/{chunk-JLZ3RBQG.js → chunk-44EJDGMS.js} +144 -11
- package/chunks/{chunk-KR32NIAN.js → chunk-4JP34TZ6.js} +10 -10
- package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
- package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
- package/chunks/{chunk-NHFEMWAZ.js → chunk-5WY5QEM6.js} +1 -1
- package/chunks/{chunk-56Z7QEAQ.js → chunk-6BUPGI3J.js} +16 -16
- package/chunks/{chunk-H6I4PGRV.js → chunk-6DNHLK7F.js} +4 -4
- package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
- package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
- package/chunks/{chunk-Q5WZTTWE.js → chunk-7UPJXZLD.js} +6 -8
- package/chunks/{chunk-CBBP4BMC.js → chunk-7UXI6P72.js} +82 -207
- package/chunks/{chunk-6CQWRWUC.js → chunk-7XLPYF6B.js} +3 -3
- package/chunks/{chunk-VEMNQMHA.js → chunk-7ZH55K26.js} +5 -13
- package/chunks/{chunk-JJPKFJBT.js → chunk-A2FOI762.js} +3 -3
- package/chunks/{chunk-LYI2PZDK.js → chunk-A5LNZGJB.js} +2 -2
- package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
- package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
- package/chunks/{chunk-QCXGC7QB.js → chunk-A7PONO5G.js} +3 -3
- package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
- package/chunks/{chunk-RSVPYAGK.js → chunk-B4HXOGF5.js} +5 -5
- package/chunks/{chunk-D6MDRSZ6.js → chunk-BBXSRVSN.js} +22 -11
- package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
- package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
- package/chunks/{chunk-2KKCCLPT.js → chunk-C4IUDGPI.js} +1 -1
- package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
- package/chunks/{chunk-3F2WDAV6.js → chunk-CFVFQWFB.js} +14 -14
- package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
- package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
- package/chunks/{chunk-KWHKHSIS.js → chunk-DTAPI453.js} +8 -8
- package/chunks/{chunk-WWCMSZII.js → chunk-DV2GAGR7.js} +71 -7
- package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
- package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
- package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
- package/chunks/{chunk-HX6RLYUO.js → chunk-ENOHFX2M.js} +4 -4
- package/chunks/{chunk-VMX5RZQH.js → chunk-EZZJHMFK.js} +18 -9
- package/chunks/{chunk-KXDONCPU.js → chunk-FBDRTW3I.js} +4 -4
- package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
- package/chunks/{chunk-DQ2O5QOJ.js → chunk-FJZS2MXB.js} +1 -1
- package/chunks/{chunk-EQNUDTL6.js → chunk-FVLPZSKH.js} +3 -3
- package/chunks/{chunk-2LEOZTBT.js → chunk-FYMMZV5F.js} +111 -26
- package/chunks/{chunk-UV6KF7T3.js → chunk-GNZ7MX73.js} +3 -3
- package/chunks/chunk-GOFAQQZA.js +132 -0
- package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
- package/chunks/{chunk-W3UKBMSI.js → chunk-GU5B6IF3.js} +118 -9
- package/chunks/{chunk-PCK4B6LR.js → chunk-GU5XWZU2.js} +1 -1
- package/chunks/{chunk-DEEABGH2.js → chunk-H2EDCJIM.js} +5954 -1766
- package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
- package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
- package/chunks/chunk-HGCQ5SE7.js +136 -0
- package/chunks/{chunk-OFZKFPYG.js → chunk-HR4CHEQS.js} +3 -3
- package/chunks/{chunk-CO2U743O.js → chunk-I3GX6LGS.js} +4 -4
- package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
- package/chunks/{chunk-RDJOB6S3.js → chunk-IEBT6DXF.js} +1 -1
- package/chunks/{chunk-EU5TBFJI.js → chunk-IV7QPMC2.js} +2 -2
- package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
- package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
- package/chunks/{chunk-FNDXMN7I.js → chunk-JQFMW7BD.js} +936 -223
- package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
- package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
- package/chunks/{chunk-DUNI4EBW.js → chunk-KZXSAQYV.js} +86 -52
- package/chunks/chunk-LBOVL47Y.js +29 -0
- package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
- package/chunks/{chunk-I5BT7ADR.js → chunk-LEZFUYPM.js} +4 -4
- package/chunks/chunk-LLMGP5IC.js +222 -0
- package/chunks/{chunk-44F4LBWZ.js → chunk-LVW7BHTW.js} +56 -18
- package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
- package/chunks/chunk-MISUEWB4.js +8749 -0
- package/chunks/{chunk-7SJN2IWT.js → chunk-MJ2SKNTY.js} +5 -5
- package/chunks/{chunk-JE2CEOBO.js → chunk-MNTXIO6T.js} +4 -4
- package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
- package/chunks/{chunk-54YCNSK5.js → chunk-MVMBE5EH.js} +4521 -10220
- package/chunks/{chunk-PZEXDV3H.js → chunk-NCY2CDDX.js} +71 -43
- package/chunks/{chunk-TTJZAIFP.js → chunk-NJELCSFL.js} +3 -3
- package/chunks/{chunk-A7Y5H4TX.js → chunk-NXDJEZCI.js} +7 -7
- package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
- package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
- package/chunks/{chunk-6PQPKTXP.js → chunk-OPMLL3B3.js} +1 -1
- package/chunks/{chunk-PVNQRENX.js → chunk-OUQGNGIU.js} +1 -1
- 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-GL4JOZXU.js → chunk-Q43MIWDH.js} +4 -4
- package/chunks/{chunk-V4XNUDPE.js → chunk-QFIYH5KR.js} +28 -7
- 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-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
- package/chunks/{chunk-RG64CDT2.js → chunk-RJAVNGJJ.js} +131 -48
- package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
- package/chunks/{chunk-V25K5ID7.js → chunk-SWCEYR6T.js} +1 -1
- package/chunks/{chunk-77V3VIKL.js → chunk-SXGNNAMC.js} +9 -9
- package/chunks/{chunk-7KAXXBER.js → chunk-TNQ5BEEB.js} +3 -3
- package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
- 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-P5VC5USY.js → chunk-UIKCPMID.js} +1 -1
- package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
- package/chunks/{chunk-HIVKI6O6.js → chunk-UO7AWUZJ.js} +9 -7
- 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-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
- package/chunks/{chunk-NTDH4IML.js → chunk-W2K4OEW4.js} +7 -7
- package/chunks/{chunk-L32VV3ZJ.js → chunk-WH7W24EN.js} +12 -12
- package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
- package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
- package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
- package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
- package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
- package/chunks/{chunk-ZMOJ7ISP.js → chunk-XXOVLDZQ.js} +1 -1
- package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
- package/chunks/{chunk-PJOHNFIY.js → chunk-YIAC2OXH.js} +5 -5
- package/chunks/{chunk-CU47KXB5.js → chunk-YTSN63PD.js} +6 -6
- package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
- package/chunks/{chunk-MB32MS4U.js → chunk-ZLJQIGCH.js} +260 -175
- package/chunks/{chunk-6TAASXWL.js → chunk-ZX6RZZFB.js} +3 -3
- package/chunks/{computer-use-5QWCFNKD.js → computer-use-BG2EHNJE.js} +37 -34
- package/chunks/{config-utils-WADIDWGG.js → config-utils-E3ZQTHGM.js} +4 -4
- package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-JAPYNKFC.js} +41 -38
- package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-2VCZN5QF.js} +37 -34
- package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-52OUA2VU.js} +52 -43
- 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-F2YGDKHR.js} +48 -45
- package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-XCY7JETR.js} +43 -40
- package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-FBHB5GMQ.js} +43 -40
- package/chunks/{de-SY6O76BF.js → de-VL76CPLV.js} +50 -5
- package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-BBLJ4JUM.js} +37 -34
- package/chunks/display-image-2WOG27DY.js +184 -0
- package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
- package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
- package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
- package/chunks/{dist-ULIG4M5H.js → dist-C5U4LJKW.js} +162 -15
- package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
- package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
- package/chunks/{dist-26BIMQT6.js → dist-IKGVITP3.js} +676 -37
- package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
- package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-ALVSMKP7.js} +38 -35
- package/chunks/{edit-FJEUV6KZ.js → edit-POB3CIHQ.js} +37 -34
- package/chunks/{en-NBK3JKCE.js → en-IRJ2WN5T.js} +61 -6
- package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-Q2N7UZWC.js} +37 -34
- package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-QGAH2GMP.js} +37 -34
- package/chunks/{environment-SWL3CMB3.js → environment-FE5AX2U5.js} +40 -37
- package/chunks/{errors-XQE7BGZV.js → errors-SLMCFLSC.js} +40 -37
- package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-7WO2LPLF.js} +37 -34
- package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-3PINWUTY.js} +37 -34
- package/chunks/{fast-path-Z2K7W6DC.js → fast-path-SVFFEL6U.js} +17 -4
- package/chunks/{fr-4KG5V7UT.js → fr-GK3HQYVB.js} +50 -5
- package/chunks/{gemini-YU4XKEDG.js → gemini-QECJNKNJ.js} +151 -90
- package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-ZFAZKT6R.js} +6 -6
- package/chunks/{glob-VYF5CXSX.js → glob-GXUNQYNR.js} +37 -34
- package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
- package/chunks/{grep-5DP5ZUTW.js → grep-LVU5KBCV.js} +37 -34
- package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MPDHQY72.js} +43 -40
- package/chunks/{i18n-UQNYHEUD.js → i18n-LEYRN6RV.js} +39 -36
- package/chunks/{image-gen-WHPIZNWF.js → image-gen-4T2D4PTP.js} +9 -9
- package/chunks/{initializer-GMIICF4W.js → initializer-PQV2THBS.js} +44 -41
- package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-XC3HXLTX.js} +38 -35
- package/chunks/{ja-F3GSQXMF.js → ja-3FA46IKD.js} +50 -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-AQBTPZRG.js} +46 -43
- package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
- package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-EZYPDX2J.js} +43 -40
- package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-WD6YWU7Q.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-BMM57CHD.js} +40 -37
- package/chunks/{mcp-V5NTJF6X.js → mcp-FMI6NCWA.js} +43 -40
- package/chunks/{monitor-CO3ASY6E.js → monitor-PZJOYAA2.js} +37 -34
- package/chunks/nonInteractiveCli-QPX6R4LL.js +152 -0
- package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-GZF2SKTQ.js} +37 -34
- package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZPLCFAAG.js} +18 -18
- package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCADVJQW.js} +38 -35
- package/chunks/{processUtils-PB5K2DYH.js → processUtils-FKUVQVEU.js} +2 -2
- package/chunks/{pt-EQ33KWEN.js → pt-3AOBKPIJ.js} +50 -5
- package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-2Y4R6YLB.js} +42 -40
- package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-UCEHY3I2.js} +8 -8
- package/chunks/{read-file-IEOR5H5W.js → read-file-DYHDFVAS.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-5JS6R3AJ.js} +45 -42
- package/chunks/{ripGrep-UMQODKEB.js → ripGrep-2QOR3ZQT.js} +37 -34
- package/chunks/{ru-7OZAUKGG.js → ru-VJRAMC4W.js} +50 -5
- package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-MTVRAUBR.js} +271 -60
- package/chunks/{runtime-QFJ2MJF5.js → runtime-DQGE2DYR.js} +50 -45
- package/chunks/{scheduler-AMYUFOZI.js → scheduler-BXIZQ4OO.js} +37 -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-LHJLVWFD.js} +5 -4
- package/chunks/{serve-EIIYJVX3.js → serve-D4GYHFLL.js} +44 -40
- package/chunks/{server-EP2LLAPD.js → server-S22MLWTJ.js} +618 -387
- package/chunks/{session-GMPZBLOW.js → session-AHNM6YXP.js} +151 -87
- package/chunks/{settings-LN7RNKBS.js → settings-77MDDUSX.js} +42 -39
- package/chunks/{shell-EM2OWU5X.js → shell-DLD2VQTQ.js} +37 -34
- package/chunks/{skill-T5VPSK73.js → skill-3B2PAQE4.js} +27 -14
- package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-STR5NF4B.js} +42 -39
- package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-TOWYOVDZ.js} +39 -36
- package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-F6ZWABD7.js} +40 -37
- package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-QR7MHDX7.js} +1829 -1036
- package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
- package/chunks/{task-create-NFCYD43L.js → task-create-4ALZMGP5.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-IKCEEWJ6.js} +10 -9
- package/chunks/{team-create-LFJ6HGNY.js → team-create-LQVIAVRF.js} +37 -34
- package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
- package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-G5PUNI52.js} +37 -34
- package/chunks/terminal-image-renderer-33GSM55L.js +90 -0
- package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-DBFM5QOG.js} +38 -35
- package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-FTZWQRZH.js} +108 -36
- package/chunks/{tool-search-FAZBFRJZ.js → tool-search-RGG7BBC4.js} +13 -12
- package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-LY3RMXXI.js} +44 -41
- package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-3M4IQ6K6.js} +39 -36
- package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-G3CMSX3M.js} +5 -5
- package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-ZKFGBDTG.js} +42 -39
- package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-7SAFZK5H.js} +47 -44
- package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-F2K6UGE4.js} +88 -84
- package/chunks/{version-VSATY2LD.js → version-KM6MYV2D.js} +1 -1
- package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-SM4LZHRS.js} +13 -13
- package/chunks/{web-search-DSQTFUBX.js → web-search-OGKZNDAC.js} +8 -8
- package/chunks/{workflow-M6QAVKVJ.js → workflow-HU365RFR.js} +419 -304
- package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-QKKXQHL7.js} +46 -43
- package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7J7KOXFD.js} +2 -2
- package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-KC66O6DH.js} +44 -41
- package/chunks/{workspace-service-25ML3T47.js → workspace-service-TEV5Q2AA.js} +51 -48
- package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-VRL55OMU.js} +45 -42
- package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-COC5M7CY.js} +50 -47
- package/chunks/{write-file-AY7VLP5X.js → write-file-3SO2BMNO.js} +37 -34
- package/chunks/{zh-H3YDK5QW.js → zh-ARWDLDLR.js} +58 -6
- package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-Y4RGI3P7.js} +58 -6
- package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O3RWTVKV.js} +10 -10
- package/cli.js +32 -48
- package/locales/ca.js +68 -4
- package/locales/de.js +70 -4
- package/locales/en.js +84 -6
- package/locales/fr.js +72 -4
- package/locales/ja.js +69 -4
- package/locales/pt.js +68 -4
- package/locales/ru.js +71 -4
- package/locales/zh-TW.js +74 -6
- package/locales/zh.js +74 -6
- package/package.json +3 -3
- package/web-shell/assets/{arc-xjArKHU2.js → arc-KuwiZ67W.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-Cppop6HB.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-DQ6HT72s.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-B8TX_Mh-.js} +1 -1
- package/web-shell/assets/channel-BZd6Ile0.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-B2WBUTp8.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DXUsWC6O.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-DtB-6cyk.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-B-PhPyC3.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-DNaTFMSC.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DZ345tFf.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BR_EpgzJ.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-BTU-0gDT.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B7c-TqtK.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B7c-TqtK.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-BmsKBCNt.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-Ba8YWdDC.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-CCt2SnI6.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-BVTLXEU7.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-DpDAVCYV.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-8ljXg-TB.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-JAXfQSmd.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-CUeakG6k.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-Cd4Wrdwv.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-C0nMFvH_.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-uKk88n_L.js} +1 -1
- package/web-shell/assets/index-BXGtjHs5.js +1756 -0
- package/web-shell/assets/{index-Ww86nT9f.js → index-C1UWBJSX.js} +1 -1
- package/web-shell/assets/index-WxSvj2tI.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-GfPN17hR.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-CDbWTcGa.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-J8TvvVFz.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Ds_ndLrs.js} +1 -1
- package/web-shell/assets/{linear-DPhyNezd.js → linear-DuL9O4i3.js} +1 -1
- package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-DtK4PsQB.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-DD0r7MS3.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-CxGPZ8Q-.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Ds7Buxed.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-DIx28ph5.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-AxdAYcVX.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-CojoXAZ5.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dy1WN3mi.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BaTNMz02.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DeWe_43M.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-BN8PVlFq.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-CbjV_1hf.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-D2mw84_p.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-er9CTQXi.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
|
@@ -2,70 +2,73 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getGitRepoName
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MVMBE5EH.js";
|
|
6
|
+
import "./chunk-GOFAQQZA.js";
|
|
6
7
|
import "./chunk-5M6IDOMF.js";
|
|
7
8
|
import "./chunk-TWPJO254.js";
|
|
8
9
|
import "./chunk-H6XPXXMH.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-KRXPRVGL.js";
|
|
10
|
+
import "./chunk-VA5NLVPT.js";
|
|
11
|
+
import "./chunk-I7JDGNG6.js";
|
|
12
|
+
import "./chunk-A6SX5TAH.js";
|
|
13
|
+
import "./chunk-33FNCQSY.js";
|
|
14
14
|
import "./chunk-6PVPNMXU.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-XXOVLDZQ.js";
|
|
16
16
|
import "./chunk-IRH27ZC2.js";
|
|
17
17
|
import "./chunk-QHWCP53L.js";
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-MOHAWIAW.js";
|
|
19
|
+
import "./chunk-X6QNZOTC.js";
|
|
20
20
|
import "./chunk-O6GEWCJA.js";
|
|
21
21
|
import "./chunk-T26EAKDL.js";
|
|
22
|
+
import "./chunk-ZPJWUGCS.js";
|
|
22
23
|
import "./chunk-CPBF7KYF.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-MISUEWB4.js";
|
|
25
|
+
import "./chunk-KRXPRVGL.js";
|
|
26
|
+
import "./chunk-A5YZ3FA2.js";
|
|
27
|
+
import "./chunk-YAVY33G4.js";
|
|
28
|
+
import "./chunk-2UISUFHQ.js";
|
|
29
|
+
import "./chunk-HFVW54NL.js";
|
|
30
|
+
import "./chunk-LLMGP5IC.js";
|
|
29
31
|
import "./chunk-S6LOFUVP.js";
|
|
32
|
+
import "./chunk-7UXI6P72.js";
|
|
30
33
|
import "./chunk-K623ENWT.js";
|
|
31
34
|
import "./chunk-AQ37AY7B.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-432XCUHF.js";
|
|
36
|
+
import "./chunk-YXEVDA66.js";
|
|
37
|
+
import "./chunk-XC656O42.js";
|
|
35
38
|
import "./chunk-NAVJD2PQ.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-QYPT3QUD.js";
|
|
40
|
+
import "./chunk-QMBEW7EW.js";
|
|
38
41
|
import "./chunk-DGEIYUC3.js";
|
|
39
42
|
import "./chunk-MPHPFVKK.js";
|
|
40
43
|
import "./chunk-GLNBDYUX.js";
|
|
41
44
|
import "./chunk-DJ2GSRLV.js";
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-7XLPYF6B.js";
|
|
46
|
+
import "./chunk-RPYYTL7E.js";
|
|
44
47
|
import "./chunk-2J3OJGTL.js";
|
|
45
48
|
import "./chunk-P3QQPMQA.js";
|
|
46
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-6O5DVH27.js";
|
|
47
50
|
import "./chunk-GLCZKT5V.js";
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-2DNKEBXY.js";
|
|
52
|
+
import "./chunk-KZXSAQYV.js";
|
|
50
53
|
import "./chunk-VGC4I5JJ.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-E4WHKETF.js";
|
|
55
|
+
import "./chunk-UEJESCS7.js";
|
|
56
|
+
import "./chunk-CFDR3GNL.js";
|
|
57
|
+
import "./chunk-UO7AWUZJ.js";
|
|
55
58
|
import "./chunk-46UV252V.js";
|
|
56
59
|
import "./chunk-ZBVS26BY.js";
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-BFHXDAR7.js";
|
|
61
|
+
import "./chunk-TYERNYH4.js";
|
|
59
62
|
import {
|
|
60
63
|
atomicWriteFile
|
|
61
|
-
} from "./chunk-
|
|
62
|
-
import "./chunk-
|
|
64
|
+
} from "./chunk-UH7Z7Y45.js";
|
|
65
|
+
import "./chunk-O2ZYHG33.js";
|
|
63
66
|
import "./chunk-W4RQUHY3.js";
|
|
64
67
|
import "./chunk-G7XXKQYS.js";
|
|
65
68
|
import {
|
|
66
69
|
FatalError,
|
|
67
70
|
Storage
|
|
68
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-3RXUYQJI.js";
|
|
69
72
|
import "./chunk-VOQXFAY5.js";
|
|
70
73
|
import "./chunk-75DOP5OR.js";
|
|
71
74
|
import "./chunk-DMTGGOSA.js";
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
isInForkExecution
|
|
5
|
+
} from "./chunk-7UXI6P72.js";
|
|
6
|
+
import "./chunk-K623ENWT.js";
|
|
7
|
+
import "./chunk-AQ37AY7B.js";
|
|
8
|
+
import "./chunk-432XCUHF.js";
|
|
9
|
+
import {
|
|
10
|
+
BaseDeclarativeTool,
|
|
11
|
+
BaseToolInvocation,
|
|
12
|
+
MAX_TERMINAL_IMAGE_BYTES,
|
|
13
|
+
ToolDisplayNames,
|
|
14
|
+
ToolNames
|
|
15
|
+
} from "./chunk-CFDR3GNL.js";
|
|
16
|
+
import {
|
|
17
|
+
makeRelative,
|
|
18
|
+
shortenPath,
|
|
19
|
+
unescapePath
|
|
20
|
+
} from "./chunk-3RXUYQJI.js";
|
|
21
|
+
import "./chunk-QUGAUQGJ.js";
|
|
22
|
+
import {
|
|
23
|
+
init_esbuild_shims
|
|
24
|
+
} from "./chunk-5O2XNYP6.js";
|
|
25
|
+
import {
|
|
26
|
+
__name
|
|
27
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
28
|
+
|
|
29
|
+
// packages/core/src/tools/display-image.ts
|
|
30
|
+
init_esbuild_shims();
|
|
31
|
+
import fs from "node:fs/promises";
|
|
32
|
+
import path from "node:path";
|
|
33
|
+
var PNG_SIGNATURE = "89504e470d0a1a0a";
|
|
34
|
+
function errorResult(message, type) {
|
|
35
|
+
return {
|
|
36
|
+
llmContent: message,
|
|
37
|
+
returnDisplay: `Error: ${message}`,
|
|
38
|
+
error: { message, type }
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
__name(errorResult, "errorResult");
|
|
42
|
+
var DisplayImageInvocation = class extends BaseToolInvocation {
|
|
43
|
+
constructor(config, params) {
|
|
44
|
+
super(params);
|
|
45
|
+
this.config = config;
|
|
46
|
+
}
|
|
47
|
+
static {
|
|
48
|
+
__name(this, "DisplayImageInvocation");
|
|
49
|
+
}
|
|
50
|
+
getDescription() {
|
|
51
|
+
return shortenPath(
|
|
52
|
+
makeRelative(this.params.file_path, this.config.getTargetDir())
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
toolLocations() {
|
|
56
|
+
return [{ path: this.params.file_path }];
|
|
57
|
+
}
|
|
58
|
+
async execute(signal) {
|
|
59
|
+
signal.throwIfAborted();
|
|
60
|
+
if (isInForkExecution()) {
|
|
61
|
+
return errorResult(
|
|
62
|
+
"display_image can only be executed by the main agent.",
|
|
63
|
+
"execution_denied" /* EXECUTION_DENIED */
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
const filePath = path.resolve(this.params.file_path);
|
|
67
|
+
let stat;
|
|
68
|
+
try {
|
|
69
|
+
stat = await fs.stat(filePath);
|
|
70
|
+
} catch (error) {
|
|
71
|
+
const message = error.code === "ENOENT" ? `Image file not found: ${filePath}` : `Unable to access image file "${filePath}": ${error instanceof Error ? error.message : String(error)}`;
|
|
72
|
+
return errorResult(
|
|
73
|
+
message,
|
|
74
|
+
error.code === "ENOENT" ? "file_not_found" /* FILE_NOT_FOUND */ : "read_content_failure" /* READ_CONTENT_FAILURE */
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
if (stat.isDirectory()) {
|
|
78
|
+
return errorResult(
|
|
79
|
+
`Image path is a directory: ${filePath}`,
|
|
80
|
+
"target_is_directory" /* TARGET_IS_DIRECTORY */
|
|
81
|
+
);
|
|
82
|
+
}
|
|
83
|
+
if (!stat.isFile()) {
|
|
84
|
+
return errorResult(
|
|
85
|
+
`Image path is not a regular file: ${filePath}`,
|
|
86
|
+
"target_not_regular_file" /* TARGET_NOT_REGULAR_FILE */
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
if (stat.size > MAX_TERMINAL_IMAGE_BYTES) {
|
|
90
|
+
return errorResult(
|
|
91
|
+
`Image exceeds the ${MAX_TERMINAL_IMAGE_BYTES} byte display limit: ${filePath}`,
|
|
92
|
+
"file_too_large" /* FILE_TOO_LARGE */
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
signal.throwIfAborted();
|
|
96
|
+
let fileHandle;
|
|
97
|
+
try {
|
|
98
|
+
fileHandle = await fs.open(filePath, "r");
|
|
99
|
+
const header = Buffer.alloc(24);
|
|
100
|
+
const { bytesRead } = await fileHandle.read(header, 0, header.length, 0);
|
|
101
|
+
if (bytesRead !== header.length || header.subarray(0, 8).toString("hex") !== PNG_SIGNATURE) {
|
|
102
|
+
return errorResult(
|
|
103
|
+
`Only PNG images are supported by display_image: ${filePath}`,
|
|
104
|
+
"invalid_tool_params" /* INVALID_TOOL_PARAMS */
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
} catch (error) {
|
|
108
|
+
return errorResult(
|
|
109
|
+
`Unable to read image file "${filePath}": ${error instanceof Error ? error.message : String(error)}`,
|
|
110
|
+
"read_content_failure" /* READ_CONTENT_FAILURE */
|
|
111
|
+
);
|
|
112
|
+
} finally {
|
|
113
|
+
await fileHandle?.close();
|
|
114
|
+
}
|
|
115
|
+
const renderSupport = await this.config.getTerminalImageRenderSupport();
|
|
116
|
+
if (!renderSupport.available) {
|
|
117
|
+
return errorResult(
|
|
118
|
+
`The image was not displayed: ${renderSupport.reason}`,
|
|
119
|
+
"execution_failed" /* EXECUTION_FAILED */
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
const display = {
|
|
123
|
+
type: "terminal_image",
|
|
124
|
+
filePath,
|
|
125
|
+
mimeType: "image/png"
|
|
126
|
+
};
|
|
127
|
+
return {
|
|
128
|
+
llmContent: `The terminal renderer accepted "${path.basename(filePath)}" for display. This display-only tool does not provide the image contents to you; use read_file if you need to inspect the image.`,
|
|
129
|
+
returnDisplay: display,
|
|
130
|
+
resultFilePaths: [filePath]
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
var DisplayImageTool = class _DisplayImageTool extends BaseDeclarativeTool {
|
|
135
|
+
constructor(config) {
|
|
136
|
+
super(
|
|
137
|
+
_DisplayImageTool.Name,
|
|
138
|
+
ToolDisplayNames.DISPLAY_IMAGE,
|
|
139
|
+
"Displays an existing workspace PNG in the user\u2019s interactive terminal. Only the main agent can execute this tool. This is only a user-visible preview: it does not return image contents to you. Use read_file when you need to inspect or understand the image. The file_path must be absolute.",
|
|
140
|
+
"read" /* Read */,
|
|
141
|
+
{
|
|
142
|
+
type: "object",
|
|
143
|
+
properties: {
|
|
144
|
+
file_path: {
|
|
145
|
+
type: "string",
|
|
146
|
+
description: "Absolute path to a PNG inside the current workspace."
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
required: ["file_path"],
|
|
150
|
+
additionalProperties: false
|
|
151
|
+
},
|
|
152
|
+
false
|
|
153
|
+
);
|
|
154
|
+
this.config = config;
|
|
155
|
+
}
|
|
156
|
+
static {
|
|
157
|
+
__name(this, "DisplayImageTool");
|
|
158
|
+
}
|
|
159
|
+
static Name = ToolNames.DISPLAY_IMAGE;
|
|
160
|
+
validateToolParamValues(params) {
|
|
161
|
+
params.file_path = unescapePath(params.file_path.trim());
|
|
162
|
+
if (!params.file_path) {
|
|
163
|
+
return 'Missing or empty "file_path".';
|
|
164
|
+
}
|
|
165
|
+
if (!path.isAbsolute(params.file_path)) {
|
|
166
|
+
return `File path must be absolute: ${params.file_path}`;
|
|
167
|
+
}
|
|
168
|
+
if (!this.config.getWorkspaceContext().isPathWithinWorkspace(params.file_path)) {
|
|
169
|
+
return `Image path is outside the current workspace: ${params.file_path}`;
|
|
170
|
+
}
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
createInvocation(params) {
|
|
174
|
+
return new DisplayImageInvocation(this.config, params);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
export {
|
|
178
|
+
DisplayImageTool
|
|
179
|
+
};
|
|
180
|
+
/**
|
|
181
|
+
* @license
|
|
182
|
+
* Copyright 2026 Qwen Team
|
|
183
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
184
|
+
*/
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
sendMessage,
|
|
12
12
|
sendTyping,
|
|
13
13
|
uploadToCdn
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-WUC6ZFXO.js";
|
|
15
15
|
import {
|
|
16
16
|
ChannelBase,
|
|
17
17
|
isTerminalTaskLifecycleType
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DIEFUBV6.js";
|
|
19
19
|
import "./chunk-UDXSXLER.js";
|
|
20
20
|
import "./chunk-H6XPXXMH.js";
|
|
21
21
|
import {
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import "./chunk-T3CHYWJZ.js";
|
|
7
7
|
import {
|
|
8
8
|
PollingChannelBase
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-DIEFUBV6.js";
|
|
10
10
|
import "./chunk-UDXSXLER.js";
|
|
11
11
|
import {
|
|
12
12
|
external_exports
|
|
@@ -13197,6 +13197,7 @@ var GitlabChannel = class extends PollingChannelBase {
|
|
|
13197
13197
|
apiHost = "https://gitlab.com";
|
|
13198
13198
|
botUsername = "";
|
|
13199
13199
|
descriptionCache = /* @__PURE__ */ new Map();
|
|
13200
|
+
reactions = /* @__PURE__ */ new Map();
|
|
13200
13201
|
constructor(name, config, bridge, options) {
|
|
13201
13202
|
super(name, config, bridge, options);
|
|
13202
13203
|
}
|
|
@@ -13246,6 +13247,35 @@ var GitlabChannel = class extends PollingChannelBase {
|
|
|
13246
13247
|
const targetType = threadId.startsWith("mr:") ? "mr" : "issue";
|
|
13247
13248
|
await this.createNote(chatId, targetType, Number(match[1]), text);
|
|
13248
13249
|
}
|
|
13250
|
+
onPromptStart(chatId, _sessionId, messageId) {
|
|
13251
|
+
if (!messageId)
|
|
13252
|
+
return;
|
|
13253
|
+
const entry = this.reactions.get(messageId);
|
|
13254
|
+
if (!entry || entry.award)
|
|
13255
|
+
return;
|
|
13256
|
+
const api = entry.target.isMr ? this.api.MergeRequestNoteAwardEmojis : this.api.IssueNoteAwardEmojis;
|
|
13257
|
+
entry.award = api.award(chatId, entry.target.iid, entry.noteId, "eyes").then((r) => ({ awardId: r.id }));
|
|
13258
|
+
void entry.award.catch((err) => {
|
|
13259
|
+
entry.award = void 0;
|
|
13260
|
+
process2.stderr.write(`[Channel:${this.name}] failed to acknowledge note ${entry.noteId}: ${err}
|
|
13261
|
+
`);
|
|
13262
|
+
});
|
|
13263
|
+
}
|
|
13264
|
+
onPromptEnd(chatId, _sessionId, messageId) {
|
|
13265
|
+
if (!messageId)
|
|
13266
|
+
return;
|
|
13267
|
+
const entry = this.reactions.get(messageId);
|
|
13268
|
+
if (!entry)
|
|
13269
|
+
return;
|
|
13270
|
+
this.reactions.delete(messageId);
|
|
13271
|
+
if (!entry.award)
|
|
13272
|
+
return;
|
|
13273
|
+
const api = entry.target.isMr ? this.api.MergeRequestNoteAwardEmojis : this.api.IssueNoteAwardEmojis;
|
|
13274
|
+
void entry.award.then(({ awardId }) => api.remove(chatId, entry.target.iid, entry.noteId, awardId)).catch((err) => {
|
|
13275
|
+
process2.stderr.write(`[Channel:${this.name}] failed to remove acknowledgement from note ${entry.noteId}: ${err}
|
|
13276
|
+
`);
|
|
13277
|
+
});
|
|
13278
|
+
}
|
|
13249
13279
|
async pollOnce() {
|
|
13250
13280
|
const templates = this.config.action_prompt_template;
|
|
13251
13281
|
if (!templates || Object.keys(templates).length === 0)
|
|
@@ -13275,25 +13305,33 @@ var GitlabChannel = class extends PollingChannelBase {
|
|
|
13275
13305
|
}
|
|
13276
13306
|
}
|
|
13277
13307
|
for (const todo of todos) {
|
|
13278
|
-
if (!todo.project ||
|
|
13308
|
+
if (!todo.project || todo.target_type !== "Issue" && todo.target_type !== "MergeRequest") {
|
|
13279
13309
|
await this.skipTodo(todo);
|
|
13280
13310
|
continue;
|
|
13281
13311
|
}
|
|
13312
|
+
const raw = todo.target || {};
|
|
13313
|
+
if (!raw.iid) {
|
|
13314
|
+
await this.skipTodo(todo);
|
|
13315
|
+
continue;
|
|
13316
|
+
}
|
|
13317
|
+
const target = {
|
|
13318
|
+
iid: raw.iid,
|
|
13319
|
+
title: raw.title ?? "",
|
|
13320
|
+
isMr: todo.target_type === "MergeRequest"
|
|
13321
|
+
};
|
|
13282
13322
|
const template = this.resolveTemplate(templates, todo.action_name);
|
|
13283
13323
|
if (!template) {
|
|
13284
13324
|
await this.skipTodo(todo);
|
|
13285
13325
|
continue;
|
|
13286
13326
|
}
|
|
13287
13327
|
const chatId = todo.project.path_with_namespace;
|
|
13288
|
-
const targetType = todo.target_type === "MergeRequest" ? "mr" : "issue";
|
|
13289
|
-
const threadId = `${targetType}:${todo.target.iid}`;
|
|
13290
13328
|
try {
|
|
13291
|
-
await this.processTodo(todo, template, chatId
|
|
13329
|
+
await this.processTodo(todo, target, template, chatId);
|
|
13292
13330
|
} catch (err) {
|
|
13293
13331
|
process2.stderr.write(`[Channel:${this.name}] error processing todo ${todo.id}: ${err}
|
|
13294
13332
|
`);
|
|
13295
13333
|
try {
|
|
13296
|
-
await this.createNote(chatId,
|
|
13334
|
+
await this.createNote(chatId, target.isMr ? "mr" : "issue", target.iid, "\u26A0\uFE0F Failed to process this request. Please re-mention the bot to retry.");
|
|
13297
13335
|
} catch {
|
|
13298
13336
|
}
|
|
13299
13337
|
}
|
|
@@ -13318,29 +13356,43 @@ var GitlabChannel = class extends PollingChannelBase {
|
|
|
13318
13356
|
return templates["mentioned"];
|
|
13319
13357
|
return void 0;
|
|
13320
13358
|
}
|
|
13321
|
-
async processTodo(todo, template, chatId
|
|
13359
|
+
async processTodo(todo, target, template, chatId) {
|
|
13322
13360
|
if (todo.author.username === this.botUsername)
|
|
13323
13361
|
return;
|
|
13324
|
-
const
|
|
13362
|
+
const targetType = target.isMr ? "mr" : "issue";
|
|
13363
|
+
const threadId = `${targetType}:${target.iid}`;
|
|
13364
|
+
const noteMatch = todo.target_url.match(/#note_(\d+)$/);
|
|
13365
|
+
const isNoteMention = noteMatch !== null;
|
|
13366
|
+
const messageId = String(todo.id);
|
|
13325
13367
|
const needsDescription = !isNoteMention || template.includes("%description%");
|
|
13326
13368
|
let description = "";
|
|
13327
13369
|
if (needsDescription) {
|
|
13328
13370
|
if (isNoteMention) {
|
|
13329
13371
|
try {
|
|
13330
|
-
description = await this.fetchDescription(chatId, targetType,
|
|
13372
|
+
description = await this.fetchDescription(chatId, targetType, target.iid);
|
|
13331
13373
|
} catch (err) {
|
|
13332
13374
|
process2.stderr.write(`[Channel:${this.name}] fetchDescription failed (metadata only): ${err}
|
|
13333
13375
|
`);
|
|
13334
13376
|
}
|
|
13335
13377
|
} else {
|
|
13336
|
-
description = await this.fetchDescription(chatId, targetType,
|
|
13378
|
+
description = await this.fetchDescription(chatId, targetType, target.iid);
|
|
13337
13379
|
}
|
|
13338
13380
|
}
|
|
13339
13381
|
const text = isNoteMention ? todo.body || "" : description || todo.body || "";
|
|
13340
13382
|
if (!text)
|
|
13341
13383
|
return;
|
|
13342
|
-
const envelope = this.buildEnvelope(text, todo.author.username, chatId, threadId,
|
|
13343
|
-
|
|
13384
|
+
const envelope = this.buildEnvelope(text, todo.author.username, chatId, threadId, messageId, this.buildMetadata(template, todo, target, chatId, todo.author.username, String(todo.id), description), true);
|
|
13385
|
+
if (isNoteMention) {
|
|
13386
|
+
this.reactions.set(messageId, {
|
|
13387
|
+
target,
|
|
13388
|
+
noteId: Number(noteMatch[1])
|
|
13389
|
+
});
|
|
13390
|
+
}
|
|
13391
|
+
try {
|
|
13392
|
+
await this.handleInbound(envelope);
|
|
13393
|
+
} finally {
|
|
13394
|
+
this.reactions.delete(messageId);
|
|
13395
|
+
}
|
|
13344
13396
|
}
|
|
13345
13397
|
async fetchDescription(chatId, targetType, iid) {
|
|
13346
13398
|
const cacheKey = `${chatId}/${targetType}/${iid}`;
|
|
@@ -13374,14 +13426,14 @@ var GitlabChannel = class extends PollingChannelBase {
|
|
|
13374
13426
|
metadata
|
|
13375
13427
|
};
|
|
13376
13428
|
}
|
|
13377
|
-
buildMetadata(template, todo, chatId, author, commentId, description) {
|
|
13429
|
+
buildMetadata(template, todo, target, chatId, author, commentId, description) {
|
|
13378
13430
|
const vars = {
|
|
13379
13431
|
project: chatId,
|
|
13380
13432
|
project_url: `${this.apiHost}/${chatId}`,
|
|
13381
13433
|
author,
|
|
13382
13434
|
target_type: todo.target_type,
|
|
13383
|
-
iid: String(
|
|
13384
|
-
title:
|
|
13435
|
+
iid: String(target.iid),
|
|
13436
|
+
title: target.title,
|
|
13385
13437
|
description,
|
|
13386
13438
|
todo_id: commentId
|
|
13387
13439
|
};
|
|
@@ -13407,6 +13459,101 @@ var plugin = {
|
|
|
13407
13459
|
requiredConfigFields: ["token"],
|
|
13408
13460
|
envResolvableConfigFields: ["baseUrl"],
|
|
13409
13461
|
defaultSessionScope: "chat_thread",
|
|
13462
|
+
management: {
|
|
13463
|
+
fields: [
|
|
13464
|
+
{
|
|
13465
|
+
key: "token",
|
|
13466
|
+
label: "Personal Access Token",
|
|
13467
|
+
kind: "secret",
|
|
13468
|
+
required: true,
|
|
13469
|
+
envResolvable: true,
|
|
13470
|
+
description: 'PAT with "read_api" + "api" scopes'
|
|
13471
|
+
},
|
|
13472
|
+
{
|
|
13473
|
+
key: "baseUrl",
|
|
13474
|
+
label: "Base URL",
|
|
13475
|
+
kind: "string",
|
|
13476
|
+
envResolvable: true,
|
|
13477
|
+
description: "Self-hosted instance URL (e.g. https://gitlab.example.com). Leave empty for gitlab.com"
|
|
13478
|
+
},
|
|
13479
|
+
{
|
|
13480
|
+
key: "groupPolicy",
|
|
13481
|
+
label: "Group Policy",
|
|
13482
|
+
kind: "enum",
|
|
13483
|
+
required: true,
|
|
13484
|
+
description: 'Must be "Open" or "Allowlist" for todos to be processed',
|
|
13485
|
+
default: "open",
|
|
13486
|
+
options: [
|
|
13487
|
+
{ value: "open", label: "Open" },
|
|
13488
|
+
{ value: "allowlist", label: "Allowlist" },
|
|
13489
|
+
{ value: "disabled", label: "Disabled" }
|
|
13490
|
+
]
|
|
13491
|
+
},
|
|
13492
|
+
{
|
|
13493
|
+
key: "senderPolicy",
|
|
13494
|
+
label: "Sender Policy",
|
|
13495
|
+
kind: "enum",
|
|
13496
|
+
required: true,
|
|
13497
|
+
description: 'Use "Allowlist" with allowed users on public projects',
|
|
13498
|
+
options: [
|
|
13499
|
+
{ value: "allowlist", label: "Allowlist" },
|
|
13500
|
+
{ value: "pairing", label: "Pairing" },
|
|
13501
|
+
{ value: "open", label: "Open" }
|
|
13502
|
+
]
|
|
13503
|
+
},
|
|
13504
|
+
{
|
|
13505
|
+
key: "allowedUsers",
|
|
13506
|
+
label: "Allowed Users",
|
|
13507
|
+
kind: "string-list",
|
|
13508
|
+
description: "GitLab usernames, used by Allowlist and Pairing policies"
|
|
13509
|
+
},
|
|
13510
|
+
{
|
|
13511
|
+
key: "action_prompt_template",
|
|
13512
|
+
label: "Action Templates",
|
|
13513
|
+
kind: "record",
|
|
13514
|
+
required: true,
|
|
13515
|
+
description: 'Only actions with a template are processed; others are skipped. Template variables: %project%, %project_url%, %author%, %target_type%, %iid%, %title%, %description%, %todo_id%. Use %% for a literal %. Example for "mentioned": Project: %project% | Author: %author% | Title: %title%',
|
|
13516
|
+
options: [
|
|
13517
|
+
{
|
|
13518
|
+
value: "mentioned",
|
|
13519
|
+
label: "Mentioned \u2014 @bot in a comment or description"
|
|
13520
|
+
},
|
|
13521
|
+
{
|
|
13522
|
+
value: "directly_addressed",
|
|
13523
|
+
label: "Directly Addressed \u2014 comment starts with @bot"
|
|
13524
|
+
},
|
|
13525
|
+
{
|
|
13526
|
+
value: "assigned",
|
|
13527
|
+
label: "Assigned \u2014 bot assigned to an issue or MR"
|
|
13528
|
+
},
|
|
13529
|
+
{
|
|
13530
|
+
value: "review_requested",
|
|
13531
|
+
label: "Review Requested \u2014 bot requested as MR reviewer"
|
|
13532
|
+
},
|
|
13533
|
+
{
|
|
13534
|
+
value: "approval_required",
|
|
13535
|
+
label: "Approval Required \u2014 MR needs bot approval"
|
|
13536
|
+
},
|
|
13537
|
+
{
|
|
13538
|
+
value: "marked",
|
|
13539
|
+
label: "Marked \u2014 someone stars bot's comment/issue/MR"
|
|
13540
|
+
},
|
|
13541
|
+
{
|
|
13542
|
+
value: "build_failed",
|
|
13543
|
+
label: "Build Failed \u2014 CI/CD pipeline fails on bot branch/MR"
|
|
13544
|
+
},
|
|
13545
|
+
{
|
|
13546
|
+
value: "unmergeable",
|
|
13547
|
+
label: "Unmergeable \u2014 MR becomes unmergeable (conflicts)"
|
|
13548
|
+
},
|
|
13549
|
+
{
|
|
13550
|
+
value: "merge_train_removed",
|
|
13551
|
+
label: "Merge Train Removed \u2014 MR removed from merge train"
|
|
13552
|
+
}
|
|
13553
|
+
]
|
|
13554
|
+
}
|
|
13555
|
+
]
|
|
13556
|
+
},
|
|
13410
13557
|
createChannel: /* @__PURE__ */ __name((name, config, bridge, options) => new GitlabChannel(name, config, bridge, options), "createChannel")
|
|
13411
13558
|
};
|
|
13412
13559
|
export {
|
|
@@ -4,18 +4,18 @@ import {
|
|
|
4
4
|
require_axios,
|
|
5
5
|
require_ws
|
|
6
6
|
} from "./chunk-I3G5JWBV.js";
|
|
7
|
+
import "./chunk-JE7KQ2UP.js";
|
|
8
|
+
import "./chunk-K6KS3LTN.js";
|
|
7
9
|
import {
|
|
8
10
|
require_lib
|
|
9
11
|
} from "./chunk-FC4KQFCS.js";
|
|
10
|
-
import "./chunk-JE7KQ2UP.js";
|
|
11
|
-
import "./chunk-K6KS3LTN.js";
|
|
12
12
|
import "./chunk-T3CHYWJZ.js";
|
|
13
13
|
import {
|
|
14
14
|
ChannelBase,
|
|
15
15
|
ChannelProactiveDeliveryError,
|
|
16
16
|
isChannelProactiveDeliveryError,
|
|
17
17
|
isTerminalTaskLifecycleType
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-DIEFUBV6.js";
|
|
19
19
|
import "./chunk-UDXSXLER.js";
|
|
20
20
|
import "./chunk-H6XPXXMH.js";
|
|
21
21
|
import {
|