@qwen-code/qwen-code 0.19.8 → 0.19.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +60 -51
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +9 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +71 -4
- package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +29 -5
- package/bundled/qc-helper/docs/features/commands.md +39 -38
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/integration-vscode.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve.md +29 -12
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +93 -22
- package/bundled/review/SKILL.md +295 -86
- package/chunks/MaxSizedBox-6HYJ3ZPJ.js +70 -0
- package/chunks/{StandaloneSessionPicker-EYRGH6PJ.js → StandaloneSessionPicker-WS4GXYOG.js} +79 -79
- package/chunks/{acpAgent-GRFTTRHW.js → acpAgent-5FWSOZL5.js} +968 -200
- package/chunks/agent-HOLHB3RT.js +68 -0
- package/chunks/agent-headless-SXL6H56A.js +62 -0
- package/chunks/{anthropicContentGenerator-CPF22MA7.js → anthropicContentGenerator-L73TO3DB.js} +187 -31
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
- package/chunks/bridge-BCJQ7BBB.js +78 -0
- package/chunks/{ca-MKD32FQL.js → ca-UJ6HC4H2.js} +64 -5
- package/chunks/{channel-worker-supervisor-NZQUOEFJ.js → channel-worker-supervisor-WSOAAYUO.js} +137 -13
- package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
- package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
- package/chunks/{chunk-DIWVZ3VM.js → chunk-34MW4KTI.js} +5 -5
- package/chunks/{chunk-IBY3Q3HG.js → chunk-34Z3U5RQ.js} +508 -126
- package/chunks/{chunk-UXEW557D.js → chunk-3AHXV67U.js} +3 -3
- package/chunks/{chunk-O2YT7VB4.js → chunk-3BTRNWWD.js} +1 -1
- package/chunks/chunk-3G7CIHVV.js +71 -0
- package/chunks/{chunk-FBET5XZ2.js → chunk-3SJSQXNS.js} +20 -5
- package/chunks/{chunk-BUZ6HGL4.js → chunk-3VAGG5T5.js} +248 -55
- package/chunks/{chunk-M7S4GK5Z.js → chunk-4C5BQ2D2.js} +74 -27
- package/chunks/{chunk-5MBO76SL.js → chunk-4GORAUCN.js} +3 -3
- package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
- package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
- package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
- package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
- package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
- package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
- package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
- package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
- package/chunks/{chunk-YDOXPLYL.js → chunk-5HOMWMCL.js} +1147 -738
- package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
- package/chunks/{chunk-ZL5HN75Q.js → chunk-5SFOMFG4.js} +2 -2
- package/chunks/{chunk-2EM7ECZD.js → chunk-5U27BZ72.js} +179 -63
- package/chunks/{chunk-JRQ7EVGE.js → chunk-5VXNZWGF.js} +2 -2
- package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
- package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
- package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
- package/chunks/{chunk-PUVCVELY.js → chunk-6PESIEKJ.js} +4 -4
- package/chunks/{chunk-3UP777ZS.js → chunk-6RLROE6G.js} +1 -1
- package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
- package/chunks/{chunk-RMLZAUWH.js → chunk-77XJ3SWN.js} +10 -12
- package/chunks/{chunk-L46XKEGM.js → chunk-7PU4FYLG.js} +5 -8
- package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
- package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
- package/chunks/{chunk-OQXDAMKY.js → chunk-A3XKDTSH.js} +8 -8
- package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
- package/chunks/{chunk-TSPB77TG.js → chunk-AKIVHSJR.js} +923 -2892
- package/chunks/{chunk-FQNC62B2.js → chunk-ATAKVRIF.js} +11 -11
- package/chunks/{chunk-GSHQYYIV.js → chunk-AURZZYMD.js} +6 -26
- package/chunks/{chunk-CHB5SLZZ.js → chunk-B4G2WOFA.js} +3 -3
- package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
- package/chunks/chunk-BAPGSC7U.js +239 -0
- package/chunks/{chunk-UX6OTBVD.js → chunk-BMGVRZN4.js} +2 -2
- package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
- package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
- package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
- package/chunks/chunk-CC2ITGCF.js +176 -0
- package/chunks/{chunk-HDOH3QYE.js → chunk-CCDMCZPP.js} +2 -2
- package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
- package/chunks/{chunk-BOBOCR5H.js → chunk-CLFKOZEK.js} +4 -4
- package/chunks/{chunk-P3XEEI3X.js → chunk-CNEIYWSA.js} +38 -9
- package/chunks/{chunk-GLE2YUPU.js → chunk-COH43MRJ.js} +1 -1
- package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
- package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
- package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
- package/chunks/{chunk-CD6USWHZ.js → chunk-CUMMSHH6.js} +2 -2
- package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
- package/chunks/{chunk-WQTHLB5T.js → chunk-D2GFWEXB.js} +7 -7
- package/chunks/{chunk-I6WGFJJ3.js → chunk-D5SKC4YG.js} +38 -12
- package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
- package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
- package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
- package/chunks/{chunk-A5JOJ77H.js → chunk-E2IY465S.js} +38 -15
- package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
- package/chunks/{chunk-SQ2UATK7.js → chunk-EAXLGSFP.js} +11 -11
- package/chunks/{chunk-JCH35JB3.js → chunk-ECNYL4AA.js} +2 -2
- package/chunks/{chunk-E7EMCSUG.js → chunk-EGYZ275M.js} +64 -42
- package/chunks/{chunk-6VK6FIMQ.js → chunk-EMDMPBJ4.js} +415 -379
- package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
- package/chunks/{chunk-V35MD7KN.js → chunk-GRC5HGPI.js} +1 -1
- package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
- package/chunks/{chunk-27BHARDE.js → chunk-GWLSNBG4.js} +2103 -13
- package/chunks/chunk-GZRTYZ2R.js +292 -0
- package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
- package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
- package/chunks/{chunk-DICGXFAI.js → chunk-HKMAENAO.js} +8 -8
- package/chunks/{chunk-ZE6E424U.js → chunk-HPDUL5MF.js} +2 -2
- package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
- package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
- package/chunks/{chunk-ON3JA3RU.js → chunk-HVY356M2.js} +7 -9
- package/chunks/{chunk-GGQQA4JW.js → chunk-IAVB3HM3.js} +2 -2
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
- package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
- package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
- package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
- package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
- package/chunks/{chunk-WF4FAXDL.js → chunk-JZETEN3Z.js} +62 -62
- package/chunks/{chunk-GN3F6PIU.js → chunk-K434OPES.js} +5 -5
- package/chunks/{chunk-YKZIAK7C.js → chunk-KHUQZZJ6.js} +66 -16
- package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
- package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
- package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
- package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
- package/chunks/{chunk-DHOLNQLC.js → chunk-L6P4KPHR.js} +12 -12
- package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
- package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
- package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
- package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
- package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
- package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
- package/chunks/{chunk-BVYU3ZTI.js → chunk-N3EMS75V.js} +73 -30
- package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
- package/chunks/{chunk-3GNOQZDC.js → chunk-NVYTCB5Z.js} +4797 -2620
- package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
- package/chunks/chunk-OQ4DRIOA.js +296 -0
- package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
- package/chunks/{chunk-AYNCLGTW.js → chunk-P67PFTUT.js} +8 -51
- package/chunks/{chunk-VGGOPZUL.js → chunk-PDZ7MBDG.js} +12 -5
- package/chunks/{chunk-WHJQ3JUS.js → chunk-PODM4SZ4.js} +12 -12
- package/chunks/{chunk-JPALE3PA.js → chunk-PVZM22CK.js} +6 -6
- package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
- package/chunks/{chunk-L4AMBVQG.js → chunk-Q4YQW46J.js} +31 -17
- package/chunks/{chunk-XYR5RUA5.js → chunk-Q6I5QHMH.js} +10 -3
- package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
- package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
- package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
- package/chunks/{chunk-Z3I3QJK3.js → chunk-QRUIS3DN.js} +1 -1
- package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
- package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
- package/chunks/{chunk-XOHNA2S6.js → chunk-QYMQSECS.js} +3 -3
- package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
- package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
- package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
- package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
- package/chunks/{chunk-BOBRZZKD.js → chunk-SCGXUJBT.js} +5 -5
- package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
- package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
- package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
- package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
- package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
- package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
- package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
- package/chunks/chunk-TO6QE22P.js +444 -0
- package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
- package/chunks/chunk-U2NNEY4R.js +38 -0
- package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
- package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
- package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
- package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
- package/chunks/{chunk-DCZWC4PF.js → chunk-VA4KQY6V.js} +5 -5
- package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
- package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
- package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
- package/chunks/{chunk-J7RCB6N5.js → chunk-VTU57BWZ.js} +2 -2
- package/chunks/{chunk-LAXNEOBG.js → chunk-VWPVHAMO.js} +15 -3
- package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
- package/chunks/{chunk-JZHIQJOE.js → chunk-W3JHSWRP.js} +6 -6
- package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
- package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
- package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
- package/chunks/{chunk-PMFULMLX.js → chunk-WQUQVGTF.js} +2057 -266
- package/chunks/chunk-X4NKFGFJ.js +81 -0
- package/chunks/{chunk-YHKAK72D.js → chunk-X6TJ3YZV.js} +102 -16
- package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
- package/chunks/{chunk-O7FIRWJV.js → chunk-XLA62MYB.js} +3 -3
- package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
- package/chunks/{chunk-EEN2TKST.js → chunk-XUOOWUZS.js} +2 -2
- package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
- package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
- package/chunks/{chunk-TI3BWD4D.js → chunk-XYQSMABS.js} +39 -19
- package/chunks/chunk-YAF2MQZ6.js +19 -0
- package/chunks/{chunk-O33TBKDC.js → chunk-YAUFFXDS.js} +154 -19
- package/chunks/{chunk-OACJLMLD.js → chunk-YLV3XXFB.js} +2 -2
- package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
- package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
- package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
- package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
- package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
- package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
- package/chunks/{computer-use-WMY3UOBX.js → computer-use-HM37RX6A.js} +50 -50
- package/chunks/config-utils-NV2SVGPB.js +23 -0
- package/chunks/contextCommand-OF5SFGH2.js +68 -0
- package/chunks/create-sub-session-INX7TXJI.js +207 -0
- package/chunks/create-sub-session-KPRT7ECJ.js +375 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
- package/chunks/{daemon-WPAENEBW.js → daemon-ARHTSTXP.js} +478 -6
- package/chunks/daemon-status-provider-B2UTZUJ2.js +76 -0
- package/chunks/{de-ZFPPQVSF.js → de-EBJN3OVN.js} +64 -5
- package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
- package/chunks/{dist-Z34QPAQW.js → dist-PNVLTKTL.js} +374 -78
- package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
- package/chunks/{dist-BEXOZXLQ.js → dist-QYCAEZIT.js} +32 -15
- package/chunks/{dist-H2AEJCZ5.js → dist-R7LN5AZE.js} +5 -5
- package/chunks/{dist-E6UANPIM.js → dist-VHV4EVHG.js} +1011 -197
- package/chunks/{dist-O2IRTRPP.js → dist-WKPOYU7O.js} +10 -10
- package/chunks/{dist-SCFLLYMK.js → dist-XKU3ABM5.js} +12 -11
- package/chunks/earlyInputCapture-3VTHRC4C.js +69 -0
- package/chunks/{edit-OTYWAXGP.js → edit-VNI4NJ73.js} +51 -51
- package/chunks/{en-N4EPZAQI.js → en-5A6LA7RK.js} +74 -6
- package/chunks/{enter-worktree-HNYBDVCX.js → enter-worktree-IYYBKPZT.js} +50 -50
- package/chunks/{enterPlanMode-CJCNGT63.js → enterPlanMode-GMC5FD5A.js} +50 -50
- package/chunks/environment-5HSSRMJ7.js +88 -0
- package/chunks/errors-HMFCJJ7P.js +75 -0
- package/chunks/{exit-worktree-DUUKOE3X.js → exit-worktree-6BHCMP5G.js} +50 -50
- package/chunks/{exitPlanMode-AMMSXOAJ.js → exitPlanMode-CJW7G74W.js} +51 -51
- package/chunks/{fast-path-OV6NIP3K.js → fast-path-FRDMDVHG.js} +8 -8
- package/chunks/{fast-path-settings-7RIFI3PK.js → fast-path-settings-5QZE64HR.js} +6 -6
- package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
- package/chunks/{fr-5WWMY53B.js → fr-YXRABLYZ.js} +64 -5
- package/chunks/{gemini-NQ3WWBKB.js → gemini-QYSEGHAX.js} +119 -111
- package/chunks/{geminiContentGenerator-CDUNEJQE.js → geminiContentGenerator-J7YNZDYP.js} +9 -9
- package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
- package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
- package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
- package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
- package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
- package/chunks/{glob-ROV3YS4R.js → glob-BRCSGFOT.js} +95 -74
- package/chunks/{grep-NRITKDCD.js → grep-EE2DUOSY.js} +50 -50
- package/chunks/handleAutoUpdate-5NWTLR67.js +69 -0
- package/chunks/i18n-BASPENNQ.js +84 -0
- package/chunks/initializer-UTQ7FB7G.js +71 -0
- package/chunks/installationInfo-W6V4DT7W.js +65 -0
- package/chunks/{ja-CUHZOLEJ.js → ja-7VQOANVG.js} +64 -5
- package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
- package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
- package/chunks/list-DEICDL65.js +74 -0
- package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +68 -0
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
- package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
- package/chunks/{ls-7MFU2QYW.js → ls-ZB2BDP6T.js} +6 -6
- package/chunks/{lsp-XHDTPTGV.js → lsp-V5DN4YUJ.js} +4 -4
- package/chunks/mcp-L5JXEEIA.js +68 -0
- package/chunks/{monitor-FL2ZO33W.js → monitor-X5Z3H4FY.js} +50 -50
- package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
- package/chunks/nonInteractiveCli-LS2K4X6A.js +124 -0
- package/chunks/{notebook-edit-6PULTHL5.js → notebook-edit-TRM2QIJK.js} +51 -51
- package/chunks/openaiContentGenerator-AAYONPMF.js +56 -0
- package/chunks/pidfile-D4I4FTVA.js +73 -0
- package/chunks/{pt-OLYN42DS.js → pt-2C6YCSHL.js} +64 -5
- package/chunks/{qwenContentGenerator-NX2E7PB7.js → qwenContentGenerator-K3HZ2H76.js} +52 -52
- package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
- package/chunks/read-file-7SZSIZOL.js +30 -0
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
- package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
- package/chunks/{record-artifact-SQ2OKRJW.js → record-artifact-4XKZX3UW.js} +4 -4
- package/chunks/ripGrep-YNPFVCZP.js +60 -0
- package/chunks/{ru-LDM3GWVQ.js → ru-6BBHVZZV.js} +64 -5
- package/chunks/{run-qwen-serve-JK2DL7PI.js → run-qwen-serve-DMWV5N6L.js} +395 -74
- package/chunks/runtime-57WWRVHN.js +94 -0
- package/chunks/{scheduler-O4IGVZKK.js → scheduler-YBLGWSIL.js} +51 -51
- package/chunks/{send-message-76GT3JMC.js → send-message-F36YD6KQ.js} +7 -7
- package/chunks/serve-R63NK3CV.js +74 -0
- package/chunks/{server-SGNPKX2O.js → server-Z22GCAXP.js} +3956 -869
- package/chunks/{session-5BNM25EZ.js → session-HKAAI7BN.js} +117 -112
- package/chunks/settings-3EYN66GK.js +118 -0
- package/chunks/shell-6YXINTWJ.js +68 -0
- package/chunks/{skill-I22QK5XS.js → skill-OO57P4X6.js} +24 -24
- package/chunks/spawnChannel-JD7G4VU6.js +70 -0
- package/chunks/{src-BBQSM46M.js → src-G5UPLZSZ.js} +122 -52
- package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
- package/chunks/standalone-update-OB7F4JPZ.js +79 -0
- package/chunks/{startInteractiveUI-JII36UGN.js → startInteractiveUI-73EGLIIH.js} +1775 -1663
- package/chunks/stdioHelpers-UMY72QRP.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
- package/chunks/task-create-FRGOEIKY.js +22 -0
- package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
- package/chunks/{task-update-XYWMHJGJ.js → task-update-YRA532MT.js} +12 -12
- package/chunks/{team-create-A7NUU5AQ.js → team-create-PECAAPXK.js} +50 -50
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
- package/chunks/{team-plan-approval-TOQRJ2KI.js → team-plan-approval-L6F434RY.js} +50 -50
- package/chunks/theme-manager-ZG4RY6GU.js +64 -0
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
- package/chunks/{tool-search-SZ4EFS2T.js → tool-search-THVIWAPB.js} +24 -24
- package/chunks/total-session-admission-JOKNRIIA.js +72 -0
- package/chunks/trustedFolders-EOGT3UVS.js +79 -0
- package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
- package/chunks/updateCheck-2KYEYVSB.js +69 -0
- package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
- package/chunks/validateNonInterActiveAuth-EN6ZQSR2.js +190 -0
- package/chunks/{version-NO2XSNNP.js → version-3UEA6ZIR.js} +3 -3
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
- package/chunks/{workflow-WO2H6NRI.js → workflow-QCCCMYP3.js} +51 -51
- package/chunks/workspace-providers-status-4KMGETOJ.js +71 -0
- package/chunks/workspace-registry-24QFLQYH.js +76 -0
- package/chunks/workspace-service-RVLBMSMZ.js +80 -0
- package/chunks/workspace-skills-status-DS4ZVFTO.js +70 -0
- package/chunks/{write-file-PX2Z7IBE.js → write-file-I3MUDRIE.js} +51 -51
- package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
- package/chunks/{zh-J4F6QWQV.js → zh-RQE7I22T.js} +74 -6
- package/chunks/{zh-TW-XVDWOLSW.js → zh-TW-TBPQGHKH.js} +74 -6
- package/cli.js +18 -17
- package/locales/ca.js +85 -7
- package/locales/de.js +84 -7
- package/locales/en.js +101 -7
- package/locales/fr.js +85 -7
- package/locales/ja.js +86 -6
- package/locales/pt.js +84 -7
- package/locales/ru.js +84 -7
- package/locales/zh-TW.js +97 -6
- package/locales/zh.js +97 -6
- package/package.json +3 -6
- package/web-shell/assets/{arc-BWyoJpY2.js → arc-C15hqnJe.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BT0mGrz2.js → architectureDiagram-3BPJPVTR-B-At37J_.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BLgUWvyf.js → blockDiagram-GPEHLZMM-B51wjcU7.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DYx9M7oU.js → c4Diagram-AAUBKEIU-xBK7BAwN.js} +1 -1
- package/web-shell/assets/channel-CLiQD50f.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CfMHWbuZ.js → chunk-2J33WTMH-xKmLg7Yr.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-B1URoqEV.js → chunk-4BX2VUAB-BfkdKZCM.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DAIaM4QF.js → chunk-55IACEB6-DT713sZf.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-B2X34knw.js → chunk-727SXJPM-CYEeAamv.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Cif-zLTQ.js → chunk-AQP2D5EJ-DBN-5CFd.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-H18WCXdY.js → chunk-FMBD7UC4-CGZKk4PH.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-YFtetHi0.js → chunk-ND2GUHAM-qQbC2O-y.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-By2hiH3r.js → chunk-QZHKN3VN-B3zeXwsX.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-VrcnnLZu.js → cose-bilkent-S5V4N54A-BKsl1Wvy.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CGo-IaVV.js → dagre-BM42HDAG-CuuuLiBK.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Dl4QjzIB.js → diagram-2AECGRRQ-CG4_eKiV.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-qMLmsO0u.js → diagram-5GNKFQAL-DSFTmZB1.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CHlmuxPI.js → diagram-KO2AKTUF-BxwlEHn8.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUwU3GwT.js → diagram-LMA3HP47-BUAg-jMG.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-HEhwPDUM.js → diagram-OG6HWLK6-BFM2jlO5.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-1n0llBmM.js → erDiagram-TEJ5UH35-CerbFPa2.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BN74uMnt.js → flowDiagram-I6XJVG4X-BNeZz5Zz.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BoOq78i3.js → ganttDiagram-6RSMTGT7-CTOogLaM.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CN8b00c8.js → gitGraphDiagram-PVQCEYII-yxSFkXPj.js} +1 -1
- package/web-shell/assets/index-D5IWFVk1.css +5 -0
- package/web-shell/assets/index-KFJRDhX7.js +783 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CCurnIna.js → infoDiagram-5YYISTIA-DYdAUevm.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AwuRqdUP.js → ishikawaDiagram-YF4QCWOH-CNuijZ90.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-B7IICk-E.js → journeyDiagram-JHISSGLW-BTyiuonf.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BYF0OKhx.js → kanban-definition-UN3LZRKU-DPJo0Uow.js} +1 -1
- package/web-shell/assets/{linear-GWWguGfD.js → linear-C8wKCbIC.js} +1 -1
- package/web-shell/assets/{mermaid.core-JqtkxvCl.js → mermaid.core-BV5o7nW5.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-B0MmHsZ6.js → mindmap-definition-RKZ34NQL-BtLcBmSt.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DhImUZLQ.js → pieDiagram-4H26LBE5-C22J7A9Q.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DGeSC3DT.js → quadrantDiagram-W4KKPZXB-DSL10wiL.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DkspY6Re.js → requirementDiagram-4Y6WPE33-feqh0UpX.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CaOofS2x.js → sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DFQ_kFnN.js → sequenceDiagram-3UESZ5HK-DIluIcb1.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-D3snw0Tz.js → stateDiagram-AJRCARHV-hlhnuoYH.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-l4zH8nLM.js → timeline-definition-PNZ67QCA-Dqf_CqgL.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BnRlA98M.js → vennDiagram-CIIHVFJN-DD2QhaTX.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BS0xUdmd.js → wardley-L42UT6IY-B2uI85U_.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKGBUWyQ.js → wardleyDiagram-YWT4CUSO-U1aJX71g.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DVb2HuOB.js → xychartDiagram-2RQKCTM6-C0ODHUee.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/MaxSizedBox-5DT2SD7B.js +0 -71
- package/chunks/agent-H2DGKS77.js +0 -68
- package/chunks/agent-headless-KFMFIT6J.js +0 -62
- package/chunks/bridge-NA3ZQQKJ.js +0 -78
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/chunks/chunk-S6RLAIUR.js +0 -23
- package/chunks/chunk-XNXVCNAT.js +0 -88
- package/chunks/contextCommand-LXFZRP4L.js +0 -68
- package/chunks/daemon-status-provider-GJRXY5EN.js +0 -76
- package/chunks/earlyInputCapture-KNOYZ4MJ.js +0 -69
- package/chunks/environment-ATFTYMLZ.js +0 -88
- package/chunks/errors-A54HAADA.js +0 -75
- package/chunks/handleAutoUpdate-CEZJAARW.js +0 -65
- package/chunks/initializer-BRFJKRRX.js +0 -71
- package/chunks/list-KVHF7O4X.js +0 -73
- package/chunks/loadedSettingsAdapter-LL5PSFKX.js +0 -68
- package/chunks/mcp-3GCXRTOQ.js +0 -68
- package/chunks/nonInteractiveCli-PTQI3DV6.js +0 -119
- package/chunks/openaiContentGenerator-YE42PKCY.js +0 -56
- package/chunks/pidfile-NZYSCFRK.js +0 -73
- package/chunks/read-file-33XGP5HF.js +0 -30
- package/chunks/ripGrep-QWZLGTAN.js +0 -60
- package/chunks/serve-JTMIGANH.js +0 -74
- package/chunks/settings-3MI4XXP6.js +0 -118
- package/chunks/shell-YJKBE67T.js +0 -68
- package/chunks/spawnChannel-UNV6W4DU.js +0 -70
- package/chunks/task-create-WCHTB435.js +0 -22
- package/chunks/theme-manager-WZ4RRMMB.js +0 -64
- package/chunks/total-session-admission-ULXJWXFV.js +0 -72
- package/chunks/trustedFolders-LAZZPZ3D.js +0 -79
- package/chunks/updateCheck-KONLM73X.js +0 -65
- package/chunks/validateNonInterActiveAuth-MPKSRCXD.js +0 -184
- package/chunks/workspace-providers-status-3W7E7DFW.js +0 -71
- package/chunks/workspace-registry-SXJZNN3O.js +0 -74
- package/chunks/workspace-service-CZRQZ4Q4.js +0 -80
- package/chunks/workspace-skills-status-K7WFREPD.js +0 -70
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/web-shell/assets/channel-wmPUGHtg.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +0 -1
- package/web-shell/assets/index-CNwoO1Cn.js +0 -783
- package/web-shell/assets/index-CWQ0z6kZ.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +0 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
init_esbuild_shims
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
6
|
import "./chunk-J2S4EL5Y.js";
|
|
7
7
|
|
|
8
8
|
// packages/cli/src/i18n/locales/de.js
|
|
@@ -168,6 +168,42 @@ var de_default = {
|
|
|
168
168
|
"Delete {{name}}": "{{name}} l\xF6schen",
|
|
169
169
|
"Unknown Step": "Unbekannter Schritt",
|
|
170
170
|
"Esc to close": "Esc zum Schlie\xDFen",
|
|
171
|
+
Transcript: "Transkript",
|
|
172
|
+
"to close": "zum Schlie\xDFen",
|
|
173
|
+
"to scroll": "zum Scrollen",
|
|
174
|
+
"Failed to render transcript.": "Transkript konnte nicht gerendert werden.",
|
|
175
|
+
"Read {{count}} file": "{{count}} Datei gelesen",
|
|
176
|
+
"Read {{count}} files": "{{count}} Dateien gelesen",
|
|
177
|
+
"Reading {{count}} file": "Lese {{count}} Datei",
|
|
178
|
+
"Reading {{count}} files": "Lese {{count}} Dateien",
|
|
179
|
+
"Edited {{count}} file": "{{count}} Datei bearbeitet",
|
|
180
|
+
"Edited {{count}} files": "{{count}} Dateien bearbeitet",
|
|
181
|
+
"Editing {{count}} file": "Bearbeite {{count}} Datei",
|
|
182
|
+
"Editing {{count}} files": "Bearbeite {{count}} Dateien",
|
|
183
|
+
"Wrote {{count}} file": "{{count}} Datei geschrieben",
|
|
184
|
+
"Wrote {{count}} files": "{{count}} Dateien geschrieben",
|
|
185
|
+
"Writing {{count}} file": "Schreibe {{count}} Datei",
|
|
186
|
+
"Writing {{count}} files": "Schreibe {{count}} Dateien",
|
|
187
|
+
"Searched {{count}} pattern": "{{count}} Muster durchsucht",
|
|
188
|
+
"Searched {{count}} patterns": "{{count}} Muster durchsucht",
|
|
189
|
+
"Searching {{count}} pattern": "Durchsuche {{count}} Muster",
|
|
190
|
+
"Searching {{count}} patterns": "Durchsuche {{count}} Muster",
|
|
191
|
+
"Listed {{count}} directory": "{{count}} Verzeichnis aufgelistet",
|
|
192
|
+
"Listed {{count}} directories": "{{count}} Verzeichnisse aufgelistet",
|
|
193
|
+
"Listing {{count}} directory": "Liste {{count}} Verzeichnis auf",
|
|
194
|
+
"Listing {{count}} directories": "Liste {{count}} Verzeichnisse auf",
|
|
195
|
+
"Ran {{count}} command": "{{count}} Befehl ausgef\xFChrt",
|
|
196
|
+
"Ran {{count}} commands": "{{count}} Befehle ausgef\xFChrt",
|
|
197
|
+
"Running {{count}} command": "F\xFChre {{count}} Befehl aus",
|
|
198
|
+
"Running {{count}} commands": "F\xFChre {{count}} Befehle aus",
|
|
199
|
+
"Ran {{count}} agent": "{{count}} Agent ausgef\xFChrt",
|
|
200
|
+
"Ran {{count}} agents": "{{count}} Agenten ausgef\xFChrt",
|
|
201
|
+
"Running {{count}} agent": "F\xFChre {{count}} Agent aus",
|
|
202
|
+
"Running {{count}} agents": "F\xFChre {{count}} Agenten aus",
|
|
203
|
+
"Used {{count}} tool": "{{count}} Werkzeug verwendet",
|
|
204
|
+
"Used {{count}} tools": "{{count}} Werkzeuge verwendet",
|
|
205
|
+
"Using {{count}} tool": "Verwende {{count}} Werkzeug",
|
|
206
|
+
"Using {{count}} tools": "Verwende {{count}} Werkzeuge",
|
|
171
207
|
"Enter to select, \u2191\u2193 to navigate, Esc to close": "Enter zum Ausw\xE4hlen, \u2191\u2193 zum Navigieren, Esc zum Schlie\xDFen",
|
|
172
208
|
"Esc to go back": "Esc zum Zur\xFCckgehen",
|
|
173
209
|
"Enter to confirm, Esc to cancel": "Enter zum Best\xE4tigen, Esc zum Abbrechen",
|
|
@@ -1277,7 +1313,6 @@ var de_default = {
|
|
|
1277
1313
|
"You can switch permission mode quickly with Shift+Tab or /approval-mode.": "Sie k\xF6nnen den Berechtigungsmodus schnell mit Shift+Tab oder /approval-mode wechseln.",
|
|
1278
1314
|
"You can switch permission mode quickly with Tab or /approval-mode.": "Sie k\xF6nnen den Berechtigungsmodus schnell mit Tab oder /approval-mode wechseln.",
|
|
1279
1315
|
"Try /insight to generate personalized insights from your chat history.": "Probieren Sie /insight, um personalisierte Erkenntnisse aus Ihrem Chatverlauf zu erstellen.",
|
|
1280
|
-
"Press Ctrl+O to toggle compact mode \u2014 hide tool output and thinking for a cleaner view.": "Ctrl+O dr\xFCcken, um den Kompaktmodus umzuschalten \u2014 Tool-Ausgabe und Denkprozess ausblenden.",
|
|
1281
1316
|
"Add a QWEN.md file to give Qwen Code persistent project context.": "F\xFCgen Sie eine QWEN.md-Datei hinzu, um Qwen Code dauerhaften Projektkontext zu geben.",
|
|
1282
1317
|
"Use /btw to ask a quick side question without disrupting the conversation.": "Verwenden Sie /btw, um eine kurze Nebenfrage zu stellen, ohne die Unterhaltung zu unterbrechen.",
|
|
1283
1318
|
"Context is almost full! Run /compress now or start /new to continue.": "Der Kontext ist fast voll! F\xFChren Sie jetzt /compress aus oder starten Sie /new, um fortzufahren.",
|
|
@@ -1387,9 +1422,7 @@ var de_default = {
|
|
|
1387
1422
|
"Select an option:": "Option ausw\xE4hlen:",
|
|
1388
1423
|
"Raw mode not available. Please run in an interactive terminal.": "Raw-Modus nicht verf\xFCgbar. Bitte in einem interaktiven Terminal ausf\xFChren.",
|
|
1389
1424
|
"(Use \u2191 \u2193 arrows to navigate, Enter to select, Ctrl+C to exit)\n": "(\u2191 \u2193 Pfeiltasten zum Navigieren, Enter zum Ausw\xE4hlen, Ctrl+C zum Beenden)\n",
|
|
1390
|
-
"to
|
|
1391
|
-
"Hide tool output and thinking for a cleaner view (toggle with Ctrl+O).": "Tool-Ausgabe und Denkprozess ausblenden f\xFCr eine \xFCbersichtlichere Ansicht (mit Ctrl+O umschalten).",
|
|
1392
|
-
"Press Ctrl+O to show full tool output": "Ctrl+O f\xFCr vollst\xE4ndige Tool-Ausgabe dr\xFCcken",
|
|
1425
|
+
"to view transcript": "zum Anzeigen des Transkripts",
|
|
1393
1426
|
"Switch to plan mode or exit plan mode": "In den Plan-Modus wechseln oder den Plan-Modus verlassen",
|
|
1394
1427
|
"Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.": "Legt fest, wie intensiv schlussfolgerungsf\xE4hige Modelle denken ({{tiers}}); je nach Anbieter zugeordnet und begrenzt.",
|
|
1395
1428
|
"Exited plan mode. Previous approval mode restored.": "Plan-Modus verlassen. Vorheriger Genehmigungsmodus wiederhergestellt.",
|
|
@@ -1557,6 +1590,32 @@ var de_default = {
|
|
|
1557
1590
|
in: "ein",
|
|
1558
1591
|
out: "aus",
|
|
1559
1592
|
"In/Out": "Ein/Aus",
|
|
1593
|
+
// Update command
|
|
1594
|
+
"Check for Qwen Code updates and install if available": "Auf Qwen Code-Updates pr\xFCfen und installieren, falls verf\xFCgbar",
|
|
1595
|
+
"Qwen Code update available! {{current}} \u2192 {{latest}}": "Qwen Code-Update verf\xFCgbar! {{current}} \u2192 {{latest}}",
|
|
1596
|
+
"A new version of Qwen Code is available! {{current}} \u2192 {{latest}}": "Eine neue Version von Qwen Code ist verf\xFCgbar! {{current}} \u2192 {{latest}}",
|
|
1597
|
+
"Qwen Code {{version}} is up to date!": "Qwen Code {{version}} ist aktuell!",
|
|
1598
|
+
"Failed to check for updates. Please check your network or registry configuration.": "Suche nach Updates fehlgeschlagen. Bitte Netzwerk- oder Registry-Konfiguration pr\xFCfen.",
|
|
1599
|
+
"Unable to check for updates: {{reason}}": "Updates k\xF6nnen nicht gepr\xFCft werden: {{reason}}",
|
|
1600
|
+
"Update successful! The new version will be used on your next run.": "Update erfolgreich! Die neue Version wird beim n\xE4chsten Start verwendet.",
|
|
1601
|
+
"Update downloaded. It will be applied after you exit this session.": "Update heruntergeladen. Es wird nach dem Beenden dieser Sitzung angewendet.",
|
|
1602
|
+
"Update failed: {{error}}": "Update fehlgeschlagen: {{error}}",
|
|
1603
|
+
"Downloading update...": "Update wird heruntergeladen...",
|
|
1604
|
+
"Update successful! Please restart Qwen Code to use the new version. Switching model providers before restarting may not work correctly.": "Update erfolgreich! Bitte starten Sie Qwen Code neu, um die neue Version zu verwenden. Das Wechseln von Modellanbietern vor dem Neustart funktioniert m\xF6glicherweise nicht korrekt.",
|
|
1605
|
+
"Automatic update failed. Please try updating manually.": "Automatisches Update fehlgeschlagen. Bitte versuchen Sie, manuell zu aktualisieren.",
|
|
1606
|
+
"Automatic update failed: {{error}}. Re-run the installer to update manually.": "Automatisches Update fehlgeschlagen: {{error}}. F\xFChren Sie das Installationsprogramm erneut aus, um manuell zu aktualisieren.",
|
|
1607
|
+
'Running from a local git clone. Please update with "git pull".': 'Wird aus einem lokalen Git-Klon ausgef\xFChrt. Bitte mit "git pull" aktualisieren.',
|
|
1608
|
+
"Running via npx, update not applicable.": "Wird \xFCber npx ausgef\xFChrt, Update nicht anwendbar.",
|
|
1609
|
+
"Running via pnpx, update not applicable.": "Wird \xFCber pnpx ausgef\xFChrt, Update nicht anwendbar.",
|
|
1610
|
+
"Running via bunx, update not applicable.": "Wird \xFCber bunx ausgef\xFChrt, Update nicht anwendbar.",
|
|
1611
|
+
'Installed via Homebrew. Please update with "brew upgrade".': '\xDCber Homebrew installiert. Bitte mit "brew upgrade" aktualisieren.',
|
|
1612
|
+
"Locally installed. Please update via your project's package.json.": "Lokal installiert. Bitte \xFCber die package.json Ihres Projekts aktualisieren.",
|
|
1613
|
+
"Update requires sudo. Please run:": "Das Update erfordert sudo. Bitte ausf\xFChren:",
|
|
1614
|
+
"Standalone install detected. Attempting to automatically update now...": "Standalone-Installation erkannt. Automatisches Update wird jetzt versucht...",
|
|
1615
|
+
"Standalone install detected. Please rerun the standalone installer to update:": "Standalone-Installation erkannt. Bitte f\xFChren Sie den Standalone-Installer zum Aktualisieren erneut aus:",
|
|
1616
|
+
"Run the following to update:": "F\xFChren Sie Folgendes zum Aktualisieren aus:",
|
|
1617
|
+
"Unable to auto-update this standalone installation. Please reinstall from:": "Diese Standalone-Installation kann nicht automatisch aktualisiert werden. Bitte neu installieren von:",
|
|
1618
|
+
"Manual update required. Please reinstall Qwen Code.": "Manuelles Update erforderlich. Bitte installieren Sie Qwen Code neu.",
|
|
1560
1619
|
// ============================================================================
|
|
1561
1620
|
// reload-plugins command
|
|
1562
1621
|
// ============================================================================
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
wrapper_default
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-TYAMGABM.js";
|
|
6
|
+
import "./chunk-FCMNKVXT.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esbuild_shims
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5O2XNYP6.js";
|
|
10
10
|
import {
|
|
11
11
|
__commonJS,
|
|
12
12
|
__name,
|
|
@@ -4,26 +4,26 @@ import {
|
|
|
4
4
|
require_follow_redirects,
|
|
5
5
|
require_form_data,
|
|
6
6
|
require_proxy_from_env
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-S3TWXGKA.js";
|
|
8
|
+
import "./chunk-T2NCM2ET.js";
|
|
9
9
|
import {
|
|
10
10
|
ChannelBase,
|
|
11
11
|
isTerminalTaskLifecycleType,
|
|
12
12
|
sanitizeLogText,
|
|
13
13
|
sanitizeSenderName
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
14
|
+
} from "./chunk-34Z3U5RQ.js";
|
|
15
|
+
import "./chunk-UDXSXLER.js";
|
|
16
|
+
import "./chunk-H6XPXXMH.js";
|
|
17
|
+
import "./chunk-CR3C7WXL.js";
|
|
18
18
|
import {
|
|
19
19
|
wrapper_default
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-TYAMGABM.js";
|
|
21
|
+
import "./chunk-FCMNKVXT.js";
|
|
22
|
+
import "./chunk-DMTGGOSA.js";
|
|
23
|
+
import "./chunk-YQ3U5MUC.js";
|
|
24
24
|
import {
|
|
25
25
|
init_esbuild_shims
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-5O2XNYP6.js";
|
|
27
27
|
import {
|
|
28
28
|
__export,
|
|
29
29
|
__name,
|
|
@@ -4305,57 +4305,6 @@ var DWClient = class extends EventEmitter2 {
|
|
|
4305
4305
|
// packages/channels/dingtalk/dist/markdown.js
|
|
4306
4306
|
init_esbuild_shims();
|
|
4307
4307
|
var CHUNK_LIMIT = 3800;
|
|
4308
|
-
function isTableSeparator(line) {
|
|
4309
|
-
const trimmed = line.trim();
|
|
4310
|
-
if (!trimmed.includes("-"))
|
|
4311
|
-
return false;
|
|
4312
|
-
const cells = trimmed.replace(/^\|/, "").replace(/\|$/, "").split("|").map((cell) => cell.trim());
|
|
4313
|
-
return cells.length > 0 && cells.every((cell) => /^:?-{3,}:?$/.test(cell));
|
|
4314
|
-
}
|
|
4315
|
-
__name(isTableSeparator, "isTableSeparator");
|
|
4316
|
-
function isTableRow(line) {
|
|
4317
|
-
const trimmed = line.trim();
|
|
4318
|
-
return trimmed.includes("|") && !trimmed.startsWith("```");
|
|
4319
|
-
}
|
|
4320
|
-
__name(isTableRow, "isTableRow");
|
|
4321
|
-
function parseTableRow(line) {
|
|
4322
|
-
return line.trim().replace(/^\|/, "").replace(/\|$/, "").split("|").map((cell) => cell.trim());
|
|
4323
|
-
}
|
|
4324
|
-
__name(parseTableRow, "parseTableRow");
|
|
4325
|
-
function renderTable(lines) {
|
|
4326
|
-
const rows = lines.map(parseTableRow).filter((cells) => cells.length > 0);
|
|
4327
|
-
return rows.map((cells) => cells.join(" | ")).join(" \n");
|
|
4328
|
-
}
|
|
4329
|
-
__name(renderTable, "renderTable");
|
|
4330
|
-
function convertTables(text) {
|
|
4331
|
-
const lines = text.split("\n");
|
|
4332
|
-
const output = [];
|
|
4333
|
-
let i = 0;
|
|
4334
|
-
let inCode = false;
|
|
4335
|
-
while (i < lines.length) {
|
|
4336
|
-
const line = lines[i] || "";
|
|
4337
|
-
if (line.trim().startsWith("```")) {
|
|
4338
|
-
inCode = !inCode;
|
|
4339
|
-
output.push(line);
|
|
4340
|
-
i++;
|
|
4341
|
-
continue;
|
|
4342
|
-
}
|
|
4343
|
-
if (!inCode && i + 1 < lines.length && isTableRow(line) && isTableSeparator(lines[i + 1] || "")) {
|
|
4344
|
-
const tableLines = [line];
|
|
4345
|
-
i += 2;
|
|
4346
|
-
while (i < lines.length && isTableRow(lines[i] || "")) {
|
|
4347
|
-
tableLines.push(lines[i] || "");
|
|
4348
|
-
i++;
|
|
4349
|
-
}
|
|
4350
|
-
output.push(renderTable(tableLines));
|
|
4351
|
-
continue;
|
|
4352
|
-
}
|
|
4353
|
-
output.push(line);
|
|
4354
|
-
i++;
|
|
4355
|
-
}
|
|
4356
|
-
return output.join("\n");
|
|
4357
|
-
}
|
|
4358
|
-
__name(convertTables, "convertTables");
|
|
4359
4308
|
function splitChunks(text) {
|
|
4360
4309
|
if (!text || text.length <= CHUNK_LIMIT) {
|
|
4361
4310
|
return [text];
|
|
@@ -4432,7 +4381,7 @@ function extractTitle(text) {
|
|
|
4432
4381
|
}
|
|
4433
4382
|
__name(extractTitle, "extractTitle");
|
|
4434
4383
|
function normalizeDingTalkMarkdown(text) {
|
|
4435
|
-
return splitChunks(
|
|
4384
|
+
return splitChunks(text);
|
|
4436
4385
|
}
|
|
4437
4386
|
__name(normalizeDingTalkMarkdown, "normalizeDingTalkMarkdown");
|
|
4438
4387
|
|
|
@@ -4482,6 +4431,311 @@ async function downloadMedia(downloadCode, robotCode, accessToken) {
|
|
|
4482
4431
|
}
|
|
4483
4432
|
__name(downloadMedia, "downloadMedia");
|
|
4484
4433
|
|
|
4434
|
+
// packages/channels/dingtalk/dist/DingtalkConnectionManager.js
|
|
4435
|
+
init_esbuild_shims();
|
|
4436
|
+
var SOCKET_OPEN = 1;
|
|
4437
|
+
var CONNECT_TIMEOUT_MS = 1e4;
|
|
4438
|
+
var READY_POLL_MS = 100;
|
|
4439
|
+
var HEARTBEAT_INTERVAL_MS = 2e4;
|
|
4440
|
+
var MAX_HEARTBEAT_MISSES = 2;
|
|
4441
|
+
var HEALTH_INTERVAL_MS = 6e4;
|
|
4442
|
+
var MAX_HEALTH_FAILURES = 2;
|
|
4443
|
+
var INITIAL_RECONNECT_DELAY_MS = 1e3;
|
|
4444
|
+
var MAX_RECONNECT_DELAY_MS = 3e4;
|
|
4445
|
+
var DingtalkConnectionManager = class {
|
|
4446
|
+
static {
|
|
4447
|
+
__name(this, "DingtalkConnectionManager");
|
|
4448
|
+
}
|
|
4449
|
+
options;
|
|
4450
|
+
running = false;
|
|
4451
|
+
generation = 0;
|
|
4452
|
+
hasStarted = false;
|
|
4453
|
+
startingGeneration;
|
|
4454
|
+
activeClient;
|
|
4455
|
+
readyTimer;
|
|
4456
|
+
resolveReadyDelay;
|
|
4457
|
+
heartbeatTimer;
|
|
4458
|
+
heartbeatMisses = 0;
|
|
4459
|
+
activitySinceHeartbeat = false;
|
|
4460
|
+
healthTimer;
|
|
4461
|
+
healthFailures = 0;
|
|
4462
|
+
reconnectTask;
|
|
4463
|
+
reconnectGeneration;
|
|
4464
|
+
socketCleanup;
|
|
4465
|
+
retryTimer;
|
|
4466
|
+
resolveRetryDelay;
|
|
4467
|
+
cancelConnectionAttempts = /* @__PURE__ */ new Set();
|
|
4468
|
+
constructor(options) {
|
|
4469
|
+
this.options = options;
|
|
4470
|
+
this.activeClient = options.initialClient;
|
|
4471
|
+
}
|
|
4472
|
+
async start() {
|
|
4473
|
+
if (this.running) {
|
|
4474
|
+
return;
|
|
4475
|
+
}
|
|
4476
|
+
const client = this.hasStarted ? this.options.createClient() : this.activeClient;
|
|
4477
|
+
this.hasStarted = true;
|
|
4478
|
+
this.activeClient = client;
|
|
4479
|
+
this.running = true;
|
|
4480
|
+
const generation = ++this.generation;
|
|
4481
|
+
this.startingGeneration = generation;
|
|
4482
|
+
try {
|
|
4483
|
+
await this.connectClient(client, generation);
|
|
4484
|
+
this.options.onClientChanged(client);
|
|
4485
|
+
this.startMonitoring(client);
|
|
4486
|
+
} catch (error) {
|
|
4487
|
+
if (this.running && generation === this.generation) {
|
|
4488
|
+
this.safeDisconnect(client, "startup client");
|
|
4489
|
+
this.running = false;
|
|
4490
|
+
this.generation++;
|
|
4491
|
+
this.stopMonitoring();
|
|
4492
|
+
this.cancelReadyDelay();
|
|
4493
|
+
this.cancelRetryDelay();
|
|
4494
|
+
}
|
|
4495
|
+
throw error;
|
|
4496
|
+
} finally {
|
|
4497
|
+
if (this.startingGeneration === generation) {
|
|
4498
|
+
this.startingGeneration = void 0;
|
|
4499
|
+
}
|
|
4500
|
+
}
|
|
4501
|
+
}
|
|
4502
|
+
noteActivity(client) {
|
|
4503
|
+
if (!this.running || client !== this.activeClient) {
|
|
4504
|
+
return;
|
|
4505
|
+
}
|
|
4506
|
+
this.activitySinceHeartbeat = true;
|
|
4507
|
+
this.heartbeatMisses = 0;
|
|
4508
|
+
}
|
|
4509
|
+
requestReconnect(client, reason) {
|
|
4510
|
+
const generation = this.generation;
|
|
4511
|
+
if (!this.running || client !== this.activeClient || this.startingGeneration === generation || this.reconnectTask && this.reconnectGeneration === generation) {
|
|
4512
|
+
return;
|
|
4513
|
+
}
|
|
4514
|
+
const task = this.reconnect(reason, generation);
|
|
4515
|
+
this.reconnectTask = task;
|
|
4516
|
+
this.reconnectGeneration = generation;
|
|
4517
|
+
void task.catch((error) => {
|
|
4518
|
+
this.options.log(`reconnect failed: ${String(error)}`);
|
|
4519
|
+
}).finally(() => {
|
|
4520
|
+
if (this.reconnectTask === task) {
|
|
4521
|
+
this.reconnectTask = void 0;
|
|
4522
|
+
this.reconnectGeneration = void 0;
|
|
4523
|
+
}
|
|
4524
|
+
});
|
|
4525
|
+
}
|
|
4526
|
+
stop() {
|
|
4527
|
+
if (!this.running) {
|
|
4528
|
+
return;
|
|
4529
|
+
}
|
|
4530
|
+
this.running = false;
|
|
4531
|
+
this.generation++;
|
|
4532
|
+
this.startingGeneration = void 0;
|
|
4533
|
+
this.reconnectTask = void 0;
|
|
4534
|
+
this.reconnectGeneration = void 0;
|
|
4535
|
+
this.stopMonitoring();
|
|
4536
|
+
this.cancelReadyDelay();
|
|
4537
|
+
this.cancelRetryDelay();
|
|
4538
|
+
for (const cancel of this.cancelConnectionAttempts) {
|
|
4539
|
+
cancel();
|
|
4540
|
+
}
|
|
4541
|
+
this.cancelConnectionAttempts.clear();
|
|
4542
|
+
this.safeDisconnect(this.activeClient, "active client");
|
|
4543
|
+
}
|
|
4544
|
+
startMonitoring(client) {
|
|
4545
|
+
this.stopMonitoring();
|
|
4546
|
+
this.activitySinceHeartbeat = true;
|
|
4547
|
+
this.heartbeatMisses = 0;
|
|
4548
|
+
this.healthFailures = 0;
|
|
4549
|
+
const socket = this.options.getSocket(client);
|
|
4550
|
+
if (socket) {
|
|
4551
|
+
const onPong = /* @__PURE__ */ __name(() => this.noteActivity(client), "onPong");
|
|
4552
|
+
const onClose = /* @__PURE__ */ __name(() => this.requestReconnect(client, "socket closed"), "onClose");
|
|
4553
|
+
const onError = /* @__PURE__ */ __name(() => this.requestReconnect(client, "socket error"), "onError");
|
|
4554
|
+
socket.on("pong", onPong);
|
|
4555
|
+
socket.on("close", onClose);
|
|
4556
|
+
socket.on("error", onError);
|
|
4557
|
+
this.socketCleanup = () => {
|
|
4558
|
+
socket.off("pong", onPong);
|
|
4559
|
+
socket.off("close", onClose);
|
|
4560
|
+
socket.off("error", onError);
|
|
4561
|
+
};
|
|
4562
|
+
}
|
|
4563
|
+
this.heartbeatTimer = setInterval(() => {
|
|
4564
|
+
if (!this.running || client !== this.activeClient) {
|
|
4565
|
+
return;
|
|
4566
|
+
}
|
|
4567
|
+
if (this.activitySinceHeartbeat) {
|
|
4568
|
+
this.activitySinceHeartbeat = false;
|
|
4569
|
+
this.heartbeatMisses = 0;
|
|
4570
|
+
} else {
|
|
4571
|
+
this.heartbeatMisses++;
|
|
4572
|
+
}
|
|
4573
|
+
if (this.heartbeatMisses >= MAX_HEARTBEAT_MISSES) {
|
|
4574
|
+
this.requestReconnect(client, "heartbeat timeout");
|
|
4575
|
+
return;
|
|
4576
|
+
}
|
|
4577
|
+
const socket2 = this.options.getSocket(client);
|
|
4578
|
+
if (!socket2 || socket2.readyState !== SOCKET_OPEN) {
|
|
4579
|
+
this.requestReconnect(client, "socket is not open");
|
|
4580
|
+
return;
|
|
4581
|
+
}
|
|
4582
|
+
try {
|
|
4583
|
+
socket2.ping();
|
|
4584
|
+
} catch (error) {
|
|
4585
|
+
this.requestReconnect(client, `socket ping failed: ${String(error)}`);
|
|
4586
|
+
}
|
|
4587
|
+
}, HEARTBEAT_INTERVAL_MS);
|
|
4588
|
+
this.healthTimer = setInterval(() => {
|
|
4589
|
+
if (!this.running || client !== this.activeClient) {
|
|
4590
|
+
return;
|
|
4591
|
+
}
|
|
4592
|
+
if (client.connected && client.registered && this.options.getSocket(client)?.readyState === SOCKET_OPEN) {
|
|
4593
|
+
this.healthFailures = 0;
|
|
4594
|
+
return;
|
|
4595
|
+
}
|
|
4596
|
+
this.healthFailures++;
|
|
4597
|
+
if (this.healthFailures >= MAX_HEALTH_FAILURES) {
|
|
4598
|
+
this.requestReconnect(client, "unhealthy connection state");
|
|
4599
|
+
}
|
|
4600
|
+
}, HEALTH_INTERVAL_MS);
|
|
4601
|
+
}
|
|
4602
|
+
stopMonitoring() {
|
|
4603
|
+
if (this.heartbeatTimer) {
|
|
4604
|
+
clearInterval(this.heartbeatTimer);
|
|
4605
|
+
this.heartbeatTimer = void 0;
|
|
4606
|
+
}
|
|
4607
|
+
if (this.healthTimer) {
|
|
4608
|
+
clearInterval(this.healthTimer);
|
|
4609
|
+
this.healthTimer = void 0;
|
|
4610
|
+
}
|
|
4611
|
+
this.socketCleanup?.();
|
|
4612
|
+
this.socketCleanup = void 0;
|
|
4613
|
+
}
|
|
4614
|
+
async reconnect(reason, generation) {
|
|
4615
|
+
const previousClient = this.activeClient;
|
|
4616
|
+
let retryDelay = INITIAL_RECONNECT_DELAY_MS;
|
|
4617
|
+
while (this.running && generation === this.generation) {
|
|
4618
|
+
let replacement;
|
|
4619
|
+
try {
|
|
4620
|
+
replacement = this.options.createClient();
|
|
4621
|
+
await this.connectClient(replacement, generation);
|
|
4622
|
+
if (!this.running || generation !== this.generation) {
|
|
4623
|
+
this.safeDisconnect(replacement, "stale replacement client");
|
|
4624
|
+
return;
|
|
4625
|
+
}
|
|
4626
|
+
this.activeClient = replacement;
|
|
4627
|
+
this.stopMonitoring();
|
|
4628
|
+
this.options.onClientChanged(replacement);
|
|
4629
|
+
this.startMonitoring(replacement);
|
|
4630
|
+
this.safeDisconnect(previousClient, "replaced client");
|
|
4631
|
+
return;
|
|
4632
|
+
} catch (error) {
|
|
4633
|
+
if (replacement) {
|
|
4634
|
+
this.safeDisconnect(replacement, "failed replacement client");
|
|
4635
|
+
}
|
|
4636
|
+
if (!this.running || generation !== this.generation) {
|
|
4637
|
+
return;
|
|
4638
|
+
}
|
|
4639
|
+
this.options.log(`${reason}: ${String(error)}`);
|
|
4640
|
+
await this.waitForRetry(retryDelay);
|
|
4641
|
+
retryDelay = Math.min(retryDelay * 2, MAX_RECONNECT_DELAY_MS);
|
|
4642
|
+
}
|
|
4643
|
+
}
|
|
4644
|
+
}
|
|
4645
|
+
async connectClient(client, generation) {
|
|
4646
|
+
const deadline = Date.now() + CONNECT_TIMEOUT_MS;
|
|
4647
|
+
let abortAttempt = false;
|
|
4648
|
+
let timeout;
|
|
4649
|
+
let rejectAttempt;
|
|
4650
|
+
const attemptEnded = new Promise((_resolve, reject) => {
|
|
4651
|
+
rejectAttempt = reject;
|
|
4652
|
+
timeout = setTimeout(() => {
|
|
4653
|
+
abortAttempt = true;
|
|
4654
|
+
reject(new Error("Timed out connecting to DingTalk Stream."));
|
|
4655
|
+
}, CONNECT_TIMEOUT_MS);
|
|
4656
|
+
});
|
|
4657
|
+
const cancel = /* @__PURE__ */ __name(() => {
|
|
4658
|
+
abortAttempt = true;
|
|
4659
|
+
if (timeout) {
|
|
4660
|
+
clearTimeout(timeout);
|
|
4661
|
+
timeout = void 0;
|
|
4662
|
+
}
|
|
4663
|
+
rejectAttempt(new Error("DingTalk connection manager stopped."));
|
|
4664
|
+
}, "cancel");
|
|
4665
|
+
this.cancelConnectionAttempts.add(cancel);
|
|
4666
|
+
const connect = client.connect();
|
|
4667
|
+
try {
|
|
4668
|
+
await Promise.race([connect, attemptEnded]);
|
|
4669
|
+
} catch (error) {
|
|
4670
|
+
if (abortAttempt) {
|
|
4671
|
+
void connect.then(() => this.safeDisconnect(client, "late connection client"), () => void 0);
|
|
4672
|
+
}
|
|
4673
|
+
throw error;
|
|
4674
|
+
} finally {
|
|
4675
|
+
if (timeout) {
|
|
4676
|
+
clearTimeout(timeout);
|
|
4677
|
+
}
|
|
4678
|
+
this.cancelConnectionAttempts.delete(cancel);
|
|
4679
|
+
}
|
|
4680
|
+
await this.waitUntilReady(client, generation, deadline);
|
|
4681
|
+
}
|
|
4682
|
+
safeDisconnect(client, context) {
|
|
4683
|
+
try {
|
|
4684
|
+
client.disconnect();
|
|
4685
|
+
} catch (error) {
|
|
4686
|
+
this.options.log(`failed to disconnect ${context}: ${String(error)}`);
|
|
4687
|
+
}
|
|
4688
|
+
}
|
|
4689
|
+
waitForRetry(delay) {
|
|
4690
|
+
return new Promise((resolve) => {
|
|
4691
|
+
this.resolveRetryDelay = resolve;
|
|
4692
|
+
this.retryTimer = setTimeout(() => {
|
|
4693
|
+
this.retryTimer = void 0;
|
|
4694
|
+
this.resolveRetryDelay = void 0;
|
|
4695
|
+
resolve();
|
|
4696
|
+
}, delay);
|
|
4697
|
+
});
|
|
4698
|
+
}
|
|
4699
|
+
async waitUntilReady(client, generation, deadline) {
|
|
4700
|
+
while (this.running && generation === this.generation) {
|
|
4701
|
+
if (client.connected && client.registered && this.options.getSocket(client)?.readyState === SOCKET_OPEN) {
|
|
4702
|
+
return;
|
|
4703
|
+
}
|
|
4704
|
+
if (Date.now() >= deadline) {
|
|
4705
|
+
throw new Error("Timed out connecting to DingTalk Stream.");
|
|
4706
|
+
}
|
|
4707
|
+
await this.waitForReadyPoll();
|
|
4708
|
+
}
|
|
4709
|
+
throw new Error("DingTalk connection manager stopped.");
|
|
4710
|
+
}
|
|
4711
|
+
waitForReadyPoll() {
|
|
4712
|
+
return new Promise((resolve) => {
|
|
4713
|
+
this.resolveReadyDelay = resolve;
|
|
4714
|
+
this.readyTimer = setTimeout(() => {
|
|
4715
|
+
this.readyTimer = void 0;
|
|
4716
|
+
this.resolveReadyDelay = void 0;
|
|
4717
|
+
resolve();
|
|
4718
|
+
}, READY_POLL_MS);
|
|
4719
|
+
});
|
|
4720
|
+
}
|
|
4721
|
+
cancelReadyDelay() {
|
|
4722
|
+
if (this.readyTimer) {
|
|
4723
|
+
clearTimeout(this.readyTimer);
|
|
4724
|
+
this.readyTimer = void 0;
|
|
4725
|
+
}
|
|
4726
|
+
this.resolveReadyDelay?.();
|
|
4727
|
+
this.resolveReadyDelay = void 0;
|
|
4728
|
+
}
|
|
4729
|
+
cancelRetryDelay() {
|
|
4730
|
+
if (this.retryTimer) {
|
|
4731
|
+
clearTimeout(this.retryTimer);
|
|
4732
|
+
this.retryTimer = void 0;
|
|
4733
|
+
}
|
|
4734
|
+
this.resolveRetryDelay?.();
|
|
4735
|
+
this.resolveRetryDelay = void 0;
|
|
4736
|
+
}
|
|
4737
|
+
};
|
|
4738
|
+
|
|
4485
4739
|
// packages/channels/dingtalk/dist/DingtalkAdapter.js
|
|
4486
4740
|
var DEDUP_TTL_MS = 5 * 60 * 1e3;
|
|
4487
4741
|
var ACK_REACTION_NAME = "\u{1F440}";
|
|
@@ -4497,6 +4751,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4497
4751
|
__name(this, "DingtalkChannel");
|
|
4498
4752
|
}
|
|
4499
4753
|
client;
|
|
4754
|
+
connectionManager;
|
|
4500
4755
|
seenMessages = /* @__PURE__ */ new Map();
|
|
4501
4756
|
dedupTimer;
|
|
4502
4757
|
/** Map conversationId → latest sessionWebhook URL for sending replies. */
|
|
@@ -4520,20 +4775,56 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4520
4775
|
if (!config.clientId || !config.clientSecret) {
|
|
4521
4776
|
throw new Error(`Channel "${name}" requires clientId and clientSecret for DingTalk.`);
|
|
4522
4777
|
}
|
|
4523
|
-
|
|
4524
|
-
|
|
4525
|
-
|
|
4778
|
+
const rawUseConnectionManager = config.useConnectionManager;
|
|
4779
|
+
if (rawUseConnectionManager !== void 0 && typeof rawUseConnectionManager !== "boolean") {
|
|
4780
|
+
throw new Error(`Channel "${name}" useConnectionManager must be a boolean.`);
|
|
4781
|
+
}
|
|
4782
|
+
const useConnectionManager = rawUseConnectionManager ?? true;
|
|
4783
|
+
this.client = this.createClient(useConnectionManager);
|
|
4784
|
+
if (useConnectionManager) {
|
|
4785
|
+
this.connectionManager = new DingtalkConnectionManager({
|
|
4786
|
+
initialClient: this.client,
|
|
4787
|
+
createClient: /* @__PURE__ */ __name(() => this.createClient(true), "createClient"),
|
|
4788
|
+
getSocket: /* @__PURE__ */ __name((client) => client.socket, "getSocket"),
|
|
4789
|
+
onClientChanged: /* @__PURE__ */ __name((client) => {
|
|
4790
|
+
this.client = client;
|
|
4791
|
+
}, "onClientChanged"),
|
|
4792
|
+
log: /* @__PURE__ */ __name((message) => {
|
|
4793
|
+
process.stderr.write(`[DingTalk:${this.name}] ${sanitizeLogText(message, 200)}
|
|
4794
|
+
`);
|
|
4795
|
+
}, "log")
|
|
4796
|
+
});
|
|
4797
|
+
}
|
|
4798
|
+
}
|
|
4799
|
+
createClient(useConnectionManager) {
|
|
4800
|
+
const client = new DWClient({
|
|
4801
|
+
clientId: this.config.clientId,
|
|
4802
|
+
clientSecret: this.config.clientSecret,
|
|
4803
|
+
keepAlive: !useConnectionManager
|
|
4526
4804
|
});
|
|
4527
|
-
|
|
4805
|
+
client.config.autoReconnect = !useConnectionManager;
|
|
4806
|
+
this.installStructuredDownstreamHandler(client);
|
|
4807
|
+
this.registerMessageHandler(client);
|
|
4808
|
+
return client;
|
|
4528
4809
|
}
|
|
4529
|
-
installStructuredDownstreamHandler() {
|
|
4530
|
-
const client =
|
|
4810
|
+
installStructuredDownstreamHandler(streamClient) {
|
|
4811
|
+
const client = streamClient;
|
|
4531
4812
|
client.debug = false;
|
|
4532
4813
|
client.onDownStream = (raw) => {
|
|
4533
4814
|
this.onDownStream(raw, client);
|
|
4534
4815
|
};
|
|
4535
4816
|
}
|
|
4817
|
+
registerMessageHandler(client) {
|
|
4818
|
+
client.registerCallbackListener(TOPIC_ROBOT, (msg) => {
|
|
4819
|
+
client.send(msg.headers.messageId, {
|
|
4820
|
+
status: EventAck.SUCCESS,
|
|
4821
|
+
message: "ok"
|
|
4822
|
+
});
|
|
4823
|
+
this.onMessage(msg);
|
|
4824
|
+
});
|
|
4825
|
+
}
|
|
4536
4826
|
onDownStream(raw, client) {
|
|
4827
|
+
this.connectionManager?.noteActivity(client);
|
|
4537
4828
|
const decoded = this.decodeDownStream(raw);
|
|
4538
4829
|
let msg;
|
|
4539
4830
|
try {
|
|
@@ -4567,6 +4858,9 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4567
4858
|
switch (type) {
|
|
4568
4859
|
case "SYSTEM":
|
|
4569
4860
|
this.callDownStreamHandler(client, "onSystem", normalizedMsg);
|
|
4861
|
+
if (topic === "disconnect") {
|
|
4862
|
+
this.connectionManager?.requestReconnect(client, "SYSTEM disconnect");
|
|
4863
|
+
}
|
|
4570
4864
|
break;
|
|
4571
4865
|
case "EVENT":
|
|
4572
4866
|
this.callDownStreamHandler(client, "onEvent", normalizedMsg);
|
|
@@ -4606,14 +4900,11 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4606
4900
|
return { text: String(raw), bytes: Buffer2.byteLength(String(raw)) };
|
|
4607
4901
|
}
|
|
4608
4902
|
async connect() {
|
|
4609
|
-
this.
|
|
4610
|
-
this.
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
this.onMessage(msg);
|
|
4615
|
-
});
|
|
4616
|
-
await this.client.connect();
|
|
4903
|
+
if (this.connectionManager) {
|
|
4904
|
+
await this.connectionManager.start();
|
|
4905
|
+
} else {
|
|
4906
|
+
await this.client.connect();
|
|
4907
|
+
}
|
|
4617
4908
|
this.dedupTimer = setInterval(() => {
|
|
4618
4909
|
const now = Date.now();
|
|
4619
4910
|
for (const [id, ts] of this.seenMessages) {
|
|
@@ -4806,7 +5097,11 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
4806
5097
|
}
|
|
4807
5098
|
this.activeReactionKeys.clear();
|
|
4808
5099
|
this.sessionReactionKeys.clear();
|
|
4809
|
-
this.
|
|
5100
|
+
if (this.connectionManager) {
|
|
5101
|
+
this.connectionManager.stop();
|
|
5102
|
+
} else {
|
|
5103
|
+
this.client.disconnect();
|
|
5104
|
+
}
|
|
4810
5105
|
process.stderr.write(`[DingTalk:${this.name}] Disconnected.
|
|
4811
5106
|
`);
|
|
4812
5107
|
}
|
|
@@ -5081,6 +5376,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
5081
5376
|
onMessage(downstream) {
|
|
5082
5377
|
try {
|
|
5083
5378
|
const data = typeof downstream.data === "string" ? JSON.parse(downstream.data) : downstream.data;
|
|
5379
|
+
this.logDebugPayload("DingTalk", data);
|
|
5084
5380
|
const dataMsgId = typeof data.msgId === "string" ? data.msgId : void 0;
|
|
5085
5381
|
const headerMsgId = typeof downstream.headers.messageId === "string" ? downstream.headers.messageId : void 0;
|
|
5086
5382
|
const msgId = dataMsgId || headerMsgId;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
require_dist
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-75DOP5OR.js";
|
|
6
|
+
import "./chunk-DMTGGOSA.js";
|
|
7
|
+
import "./chunk-YQ3U5MUC.js";
|
|
8
|
+
import "./chunk-5O2XNYP6.js";
|
|
9
9
|
import "./chunk-J2S4EL5Y.js";
|
|
10
10
|
export default require_dist();
|