@qwen-code/qwen-code 0.23.2 → 0.23.3-nightly.20260911.aaa6a32aae
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/README.md +35 -15
- package/bundled/computer-use/SKILL.md +1 -1
- package/bundled/goal-draft/SKILL.md +10 -10
- package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
- package/bundled/qc-helper/docs/configuration/settings.md +8 -3
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +0 -20
- package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
- package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
- package/bundled/qc-helper/docs/features/commands.md +62 -9
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +338 -0
- package/bundled/qc-helper/docs/features/goals.md +22 -18
- package/bundled/qc-helper/docs/features/hooks.md +28 -22
- package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
- package/bundled/qc-helper/docs/qwen-serve.md +23 -6
- package/bundled/review/SKILL.md +93 -80
- package/bundled/review/references/persistence.md +2 -0
- package/bundled/review/references/posting.md +31 -14
- package/bundled/workflow-authoring/SKILL.md +410 -0
- package/bundled/workflow-creator/SKILL.md +1 -1
- package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-7C5XTBZI.js} +64 -53
- package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-IGTT3ZRX.js} +88 -76
- package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
- package/chunks/acp-subagent-executor-IUHVNVVO.js +140 -0
- package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-W43WM2K4.js} +957 -243
- package/chunks/{agent-T5LEFJIU.js → agent-2XMXC5JW.js} +48 -38
- package/chunks/{agent-headless-VZKSRH36.js → agent-headless-2HHBVCP6.js} +48 -38
- package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-7RI3MPIW.js} +69 -36
- package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-HHVHCPNG.js} +59 -109
- package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-RFMXTD3B.js} +2 -2
- package/chunks/{bridge-AOX5IY44.js → bridge-ID6N4IH5.js} +69 -58
- package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
- package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-ASCXI7FR.js} +6 -6
- package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-TPJFQAZY.js} +76 -65
- package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-JR6JOELM.js} +9 -9
- package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-AVKJEZFL.js} +19 -10
- package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-OOYY7BAQ.js} +7 -7
- package/chunks/{chunk-4WMGYG3F.js → chunk-22FWWGSM.js} +2 -2
- package/chunks/{chunk-LWX4WDFF.js → chunk-2S5RIGZJ.js} +43 -15
- package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
- package/chunks/{chunk-HJ5UJQQL.js → chunk-2UKKQGRA.js} +3639 -1804
- package/chunks/{chunk-MWIO7MF6.js → chunk-2WSLXP3W.js} +4 -0
- package/chunks/{chunk-HNLMYDQE.js → chunk-33LYAC4R.js} +10 -6
- package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
- package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
- package/chunks/{chunk-WXFCI3O5.js → chunk-3MAUPOZ4.js} +2 -2
- package/chunks/{chunk-CRZBDVP2.js → chunk-432JQKIO.js} +10 -10
- package/chunks/{chunk-IRGDIDGJ.js → chunk-43RQ552L.js} +364 -84
- package/chunks/{chunk-PFKGV6PO.js → chunk-465USTVK.js} +9 -15
- package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
- package/chunks/{chunk-J3VZF2AL.js → chunk-4O2AXZXU.js} +2 -2
- package/chunks/{chunk-N6S3NUYJ.js → chunk-55VOWZ4C.js} +1 -1
- package/chunks/{chunk-OWCFKIFQ.js → chunk-5CZMWDJI.js} +2 -2
- package/chunks/{chunk-7NDZKE2M.js → chunk-5MUIHID6.js} +5 -5
- package/chunks/{chunk-RM244SCQ.js → chunk-5Z74GE4N.js} +1 -1
- package/chunks/{chunk-G5VOXCRX.js → chunk-6375QMAO.js} +2 -2
- package/chunks/{chunk-3LPJ776W.js → chunk-63GQZKXL.js} +164 -31
- package/chunks/{chunk-O2FEO2CB.js → chunk-6GDELAVL.js} +18 -2
- package/chunks/{chunk-7PD7ZMX5.js → chunk-6HI2I3OM.js} +168 -6
- package/chunks/{chunk-CALNF3Z3.js → chunk-7C57HCOR.js} +1 -1
- package/chunks/{chunk-UYDQYDW2.js → chunk-7IBS746B.js} +1 -1
- package/chunks/{chunk-AUTUFD5X.js → chunk-ABNX6E6K.js} +1 -1
- package/chunks/chunk-ACHCT36C.js +28 -0
- package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
- package/chunks/{chunk-AO2VMS72.js → chunk-AQFRRH73.js} +3 -3
- package/chunks/{chunk-PDN7FJZV.js → chunk-ASWEMQIZ.js} +4 -4
- package/chunks/chunk-AYEJOTIU.js +43 -0
- package/chunks/{chunk-QFJZAY7W.js → chunk-BKFRA4F5.js} +5 -5
- package/chunks/{chunk-KCF2436G.js → chunk-BNLW5N6U.js} +4 -4
- package/chunks/{chunk-GOKAOSCN.js → chunk-BRFOZEPA.js} +2 -2
- package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
- package/chunks/chunk-C5CECJ46.js +340 -0
- package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
- package/chunks/chunk-CAAMI77K.js +937 -0
- package/chunks/{chunk-QTB4VP4K.js → chunk-CBGHRAWM.js} +304 -23
- package/chunks/chunk-CF5KXZZX.js +150 -0
- package/chunks/chunk-CFMZLE3L.js +75 -0
- package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
- package/chunks/{chunk-ERXNTINK.js → chunk-CQZJYGRX.js} +1 -1
- package/chunks/{chunk-WBU2PIZ5.js → chunk-CSDKDHWV.js} +23 -16
- package/chunks/{chunk-2EKVPSIJ.js → chunk-D754KKNZ.js} +9 -2
- package/chunks/{chunk-E6TI726I.js → chunk-DGC7BKEZ.js} +1 -1
- package/chunks/{chunk-7SVM3RP2.js → chunk-DMMOQWRF.js} +4 -6
- package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
- package/chunks/{chunk-2BMXHB6N.js → chunk-DWBNQR53.js} +7 -7
- package/chunks/{chunk-ZN5TKAVR.js → chunk-E5LTUWKZ.js} +3 -3
- package/chunks/chunk-EGW3ZP6Y.js +32 -0
- package/chunks/chunk-ELRMZTPF.js +374 -0
- package/chunks/{chunk-RNAJVXUG.js → chunk-ENAUXRPG.js} +6 -6
- package/chunks/{chunk-WXD7INFV.js → chunk-EO4U2X47.js} +10 -8
- package/chunks/{chunk-WDVV3LRM.js → chunk-EPVEPTI3.js} +45 -152
- package/chunks/chunk-ERU3SDXT.js +27 -0
- package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
- package/chunks/{chunk-GSFV5RQW.js → chunk-EYN3G5XD.js} +328 -4
- package/chunks/{chunk-QB3KS3N3.js → chunk-FGROOEKM.js} +5 -40
- package/chunks/{chunk-TOOOLHVS.js → chunk-FH5AVEWJ.js} +3 -3
- package/chunks/{chunk-DAI65CMX.js → chunk-FJZWRNEW.js} +1 -1
- package/chunks/{chunk-GNY7B3CA.js → chunk-FUQK5ZNL.js} +1 -1
- package/chunks/{chunk-GOEVQADN.js → chunk-GDIPPCW6.js} +330 -175
- package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
- package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
- package/chunks/{chunk-ELD3OBPU.js → chunk-GWOVD63C.js} +3 -3
- package/chunks/{chunk-IWABUX6T.js → chunk-GX5FF2IE.js} +6 -6
- package/chunks/{chunk-22GORRNY.js → chunk-GZMNHAYC.js} +1 -1
- package/chunks/{chunk-YZTGGCEE.js → chunk-H3TFIFX3.js} +1 -1
- package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
- package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
- package/chunks/{chunk-KEPC5BOL.js → chunk-IBRQG2MP.js} +12 -15
- package/chunks/{chunk-OXR34GCD.js → chunk-IILWL3KY.js} +2054 -146
- package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
- package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
- package/chunks/{chunk-CMWU6P4D.js → chunk-IRJRB3OD.js} +1 -1
- package/chunks/{chunk-QHLHE2OT.js → chunk-IUN5ZMFY.js} +1 -1
- package/chunks/{chunk-LYT2OU7D.js → chunk-IXXV6BVB.js} +172 -6
- package/chunks/{chunk-R3JIDRUL.js → chunk-J6H4JP25.js} +4 -4
- package/chunks/{chunk-NB3NDQQK.js → chunk-J6SBP5G2.js} +1 -1
- package/chunks/{chunk-TRQNRP2H.js → chunk-J7LBAKDH.js} +46 -3
- package/chunks/{chunk-67XTVRVB.js → chunk-JJFHISXU.js} +30 -25
- package/chunks/chunk-JL6APGBX.js +43 -0
- package/chunks/{chunk-NX7ZTXFF.js → chunk-JSKEW4E7.js} +2 -1
- package/chunks/{chunk-BK7D2JR6.js → chunk-JVTXAA35.js} +3 -3
- package/chunks/chunk-K2OJUPOE.js +78 -0
- package/chunks/{chunk-G3ZUMSFS.js → chunk-K3U6VB3O.js} +6 -6
- package/chunks/{chunk-4I3WFI3U.js → chunk-K4KWLF7Q.js} +12 -12
- package/chunks/{chunk-WXPPUPHM.js → chunk-KWFFJ6AK.js} +1 -1
- package/chunks/{chunk-46MMBZHI.js → chunk-KZYOFJ6V.js} +4 -4
- package/chunks/{chunk-ULZECEIP.js → chunk-LDQHA6L4.js} +2 -20
- package/chunks/{chunk-7LTCFO6T.js → chunk-LQBAFO5D.js} +6 -5
- package/chunks/{chunk-SOA4HKRJ.js → chunk-LT2XFADM.js} +2 -2
- package/chunks/{chunk-JYGIJA4W.js → chunk-LWWRJRCD.js} +1 -1
- package/chunks/{chunk-YQGW3M6Z.js → chunk-MFQWRBFB.js} +5 -5
- package/chunks/{chunk-TODNHE76.js → chunk-MUFGTWQH.js} +5 -5
- package/chunks/{chunk-5DQ4YTIZ.js → chunk-MV5XRRML.js} +3 -3
- package/chunks/{chunk-IR6JKBAP.js → chunk-NOUK63IR.js} +2 -2
- package/chunks/{chunk-XQ4RDO5B.js → chunk-NV77SEX3.js} +1 -1
- package/chunks/{chunk-OFVAS4AR.js → chunk-NWDPOFJI.js} +2 -2
- package/chunks/chunk-NY6OPAPS.js +820 -0
- package/chunks/{chunk-WDN64MVT.js → chunk-O5VX66FB.js} +127 -18
- package/chunks/{chunk-MV5DTLJV.js → chunk-OHCR4O3U.js} +1 -1
- package/chunks/{chunk-LEAOJ43M.js → chunk-OKOPKQ2X.js} +1310 -2107
- package/chunks/{chunk-B25JYXZE.js → chunk-ONLJBOI2.js} +971 -17
- package/chunks/{chunk-QQK4L3UU.js → chunk-OWUAZXXN.js} +132 -26
- package/chunks/{chunk-R457KFV7.js → chunk-P42IUOAO.js} +3 -3
- package/chunks/{chunk-LUNC5KCL.js → chunk-PRELUGCQ.js} +214 -39
- package/chunks/{chunk-5OZUKLL7.js → chunk-QSMQKTXV.js} +4 -4
- package/chunks/{chunk-FAJPLSYF.js → chunk-QTQYLQ5A.js} +85 -81
- package/chunks/{chunk-CALTQWTZ.js → chunk-QVZDV4ZS.js} +2 -2
- package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
- package/chunks/{chunk-KFECPHLV.js → chunk-RBWAGV73.js} +3 -3
- package/chunks/{chunk-4VY3ITHR.js → chunk-RF5RQRTD.js} +3 -3
- package/chunks/{chunk-HIXUUCGY.js → chunk-RPMXMR6U.js} +2 -2
- package/chunks/{chunk-3OAXF3UK.js → chunk-RRQEZBL2.js} +3756 -1343
- package/chunks/{chunk-4ALNJDHL.js → chunk-RSGEAWFJ.js} +19 -1
- package/chunks/{chunk-5BH2AIEY.js → chunk-RUE62UH6.js} +2 -2
- package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
- package/chunks/{chunk-A7EFXK7P.js → chunk-SAOJHRWY.js} +2 -2
- package/chunks/{chunk-JO77FGNZ.js → chunk-SDUIETBG.js} +19 -7
- package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
- package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
- package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
- package/chunks/{chunk-XDNFODER.js → chunk-TUIW5LLK.js} +1 -1
- package/chunks/{chunk-APXIW2TF.js → chunk-TVV5FA3G.js} +4 -4
- package/chunks/chunk-U6H3XTFA.js +95 -0
- package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
- package/chunks/{chunk-U6REWGVR.js → chunk-VG2BRSEK.js} +2 -2
- package/chunks/chunk-VGBOJH2D.js +127 -0
- package/chunks/chunk-VGY2RGXL.js +100 -0
- package/chunks/{chunk-ZP5XDLSA.js → chunk-VLWG3EHY.js} +12 -12
- package/chunks/{chunk-4JNHNVAZ.js → chunk-W547PYQ7.js} +9 -4
- package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
- package/chunks/{chunk-QAZ2MGYT.js → chunk-W7JJLUSB.js} +2 -2
- package/chunks/{chunk-CCBTNJB4.js → chunk-W7Q7XDQI.js} +39 -27
- package/chunks/{chunk-DARWOZY6.js → chunk-WD6YQI5M.js} +1 -1
- package/chunks/{chunk-F2NYVASI.js → chunk-WXAWG3JS.js} +30 -13
- package/chunks/{chunk-NPKCVSXX.js → chunk-XB5JRCAM.js} +11 -9
- package/chunks/{chunk-XSOXPG2L.js → chunk-XE46RQFI.js} +136 -8
- package/chunks/{chunk-QTNCGZHQ.js → chunk-XX5HQLCZ.js} +16 -0
- package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
- package/chunks/chunk-YC6XOB5N.js +691 -0
- package/chunks/{chunk-CWVZBIZJ.js → chunk-YDW4ERSS.js} +1 -1
- package/chunks/{chunk-TRWQQBVH.js → chunk-YGCTOXUT.js} +10 -24
- package/chunks/{chunk-WK7P62DV.js → chunk-YKC67ZEF.js} +6 -6
- package/chunks/{chunk-KA5HR3G2.js → chunk-YKM6MITI.js} +5 -5
- package/chunks/{chunk-X7LFJF5D.js → chunk-YM6KUQ2S.js} +36 -84
- package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
- package/chunks/{chunk-G37O7YO6.js → chunk-ZAWM6KRF.js} +3 -3
- package/chunks/{chunk-H3Q3RSKZ.js → chunk-ZFIWHBJ3.js} +1 -1
- package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
- package/chunks/{chunk-YLOHCA6I.js → chunk-ZKWO4CF4.js} +2 -2
- package/chunks/{chunk-VJJXG73H.js → chunk-ZMQL5BL5.js} +21 -6
- package/chunks/{chunk-FGHPZGOP.js → chunk-ZMUYBOYB.js} +39 -55
- package/chunks/{chunk-FV4DM2M4.js → chunk-ZNI3YJHS.js} +26 -6
- package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
- package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
- package/chunks/codex-subagent-executor-26XOHVKH.js +585 -0
- package/chunks/{config-utils-GPLIABL2.js → config-utils-JUG3MOYN.js} +68 -57
- package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-6K3POZFA.js} +65 -54
- package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-XQFZLA2V.js} +66 -55
- package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-4UJ6RM6W.js} +5 -2
- package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-T4IYIOC7.js} +178 -91
- package/chunks/{cron-create-GTPVMJCF.js → cron-create-6466RWSO.js} +2 -2
- package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-W4QUWHOA.js} +2 -2
- package/chunks/{cron-list-KTFKFDKC.js → cron-list-Q5LJ5PZE.js} +2 -2
- package/chunks/{daemon-2CKIAO3I.js → daemon-PHPJUXDZ.js} +4 -2
- package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-5WEMZ64U.js} +65 -54
- package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-GMD7QD4T.js} +74 -63
- package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-IPBZES2Z.js} +71 -60
- package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-MHYEN7X7.js} +71 -60
- package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
- package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-CY43FZNZ.js} +63 -52
- package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
- package/chunks/{display-image-CTNHJRZC.js → display-image-6AZIHP3J.js} +3 -3
- package/chunks/{dist-F34J4FZX.js → dist-2QYIVNS6.js} +2 -5
- package/chunks/{dist-6YDUH3BB.js → dist-GIMQXYLI.js} +10 -631
- package/chunks/{dist-NP7QKLVG.js → dist-GUB7QRYA.js} +3 -6
- package/chunks/{dist-Y5KC3IHW.js → dist-L45UB6DG.js} +233 -35
- package/chunks/{dist-XLV33CLY.js → dist-MPUZZOG5.js} +5 -18
- package/chunks/{dist-ZDNJK74R.js → dist-PA7WPFVE.js} +6 -37
- package/chunks/{dist-F6JLAJLE.js → dist-T6DDPDLQ.js} +16 -36
- package/chunks/{dist-BNQVF565.js → dist-TFGETXFN.js} +14 -37
- package/chunks/{dist-UFTFGI6I.js → dist-VDLSBCLM.js} +2 -6
- package/chunks/{edit-YJD6IETK.js → edit-6NUP5IPX.js} +48 -38
- package/chunks/{en-YJNRUQG4.js → en-ZSZW3PZX.js} +4 -1
- package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-EETDMJRF.js} +5 -5
- package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-AZHYHEII.js} +48 -38
- package/chunks/{environment-HP3AXFTB.js → environment-ON6GIQ4F.js} +66 -55
- package/chunks/{errors-22ON46G7.js → errors-DQE63SCC.js} +65 -54
- package/chunks/exec-66WQIVYU.js +505 -0
- package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-DIPJ6S55.js} +5 -5
- package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-NHBV6LAI.js} +48 -38
- package/chunks/{fast-path-2X7BPMXX.js → fast-path-EPJSUZZC.js} +7 -7
- package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-XDYX7X5Z.js} +2 -2
- package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
- package/chunks/{glob-Y7ACIB3P.js → glob-MNEXQ2NV.js} +51 -41
- package/chunks/{goal-tools-DABMICUC.js → goal-tools-D2A4QBCJ.js} +54 -40
- package/chunks/{grep-BLHF2S5D.js → grep-EFWPV3MM.js} +2 -2
- package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-2RY3OQA6.js} +67 -56
- package/chunks/{i18n-C3GDCALP.js → i18n-HTHDB3I7.js} +64 -53
- package/chunks/{image-gen-XP4NNIYG.js → image-gen-2PHED3P4.js} +8 -6
- package/chunks/{initializer-4URDQL2G.js → initializer-JEVLJCQA.js} +71 -60
- package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-ITRB6J4L.js} +63 -52
- package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
- package/chunks/list-KOUIMHT5.js +133 -0
- package/chunks/{list-agents-2CXPGJUE.js → list-agents-IY4NEWLP.js} +17 -7
- package/chunks/{llm-2KPNSAVY.js → llm-F7WHGESY.js} +132 -120
- package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-NYQ2NAVA.js} +6 -5
- package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-HZUAX5CX.js} +71 -60
- package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-WMNU7C5J.js} +70 -59
- package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-ANX25YW2.js} +3 -3
- package/chunks/{ls-YV7RKLKY.js → ls-4XCMJNZF.js} +4 -4
- package/chunks/{lsp-NO3AMRZT.js → lsp-K5E2Y64R.js} +1 -1
- package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-EJJB65QI.js} +63 -52
- package/chunks/mcp-I73R6HS3.js +127 -0
- package/chunks/{monitor-A255TNZR.js → monitor-T56GJNA4.js} +50 -40
- package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-CKHHJ423.js} +120 -109
- package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-W5TU3EZ3.js} +48 -38
- package/chunks/openai-WX26N5OJ.js +47 -0
- package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-TH6YAWAH.js} +33 -25
- package/chunks/openaiResponsesContentGenerator-EWLWQPKS.js +1738 -0
- package/chunks/{pidfile-B7DZC4TP.js → pidfile-RCC6TCEM.js} +63 -52
- package/chunks/process-registry-X6ZCASEN.js +10 -0
- package/chunks/{processUtils-BPZ2MCZS.js → processUtils-DQDQBRMC.js} +2 -2
- package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-2LXWAGWU.js} +64 -53
- package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
- package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-LG65Z2YV.js} +61 -49
- package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-PJ63CCFD.js} +7 -5
- package/chunks/{read-file-A4H4O3VQ.js → read-file-72HMRUT4.js} +12 -9
- package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-NPF44YSC.js} +1 -1
- package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-MDXCCW2J.js} +3 -3
- package/chunks/record-source-VJLKDGGR.js +22 -0
- package/chunks/{report-findings-TJ34R7QK.js → report-findings-CZTYMZTC.js} +4 -4
- package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-KOZHPVZU.js} +5 -5
- package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-S2Q3M3EH.js} +69 -58
- package/chunks/{ripGrep-W32NWFTA.js → ripGrep-B2I3L5CO.js} +17 -13
- package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
- package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-AOPYFCVP.js} +305 -132
- package/chunks/{runtime-VRVBX2E5.js → runtime-TZMHKZAP.js} +77 -66
- package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-7RL6ZOYT.js} +72 -60
- package/chunks/{scheduler-M2YPN7Z7.js → scheduler-D6RLOFNU.js} +65 -54
- package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
- package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
- package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
- package/chunks/{send-message-76BKWKFZ.js → send-message-MMZVSS7P.js} +12 -9
- package/chunks/{serve-BE3H2P6P.js → serve-HWWDYI37.js} +72 -61
- package/chunks/{server-FLY5JERG.js → server-MD2X5U5L.js} +3156 -564
- package/chunks/{session-JVN62R5K.js → session-AFUMFNN7.js} +124 -113
- package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-QPN3YWTY.js} +63 -52
- package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-4Y2ANMJX.js} +72 -60
- package/chunks/{settings-D44YMZFT.js → settings-QQRQ2LR7.js} +74 -63
- package/chunks/{shell-3VE6I4V5.js → shell-NUYUYMVI.js} +48 -38
- package/chunks/{skill-FHEGRRZU.js → skill-KHLDVOXW.js} +68 -30
- package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-INLEGDEZ.js} +70 -59
- package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-KBGZHW2G.js} +67 -56
- package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-3QP5NDVJ.js} +65 -54
- package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-VBT3XDWN.js} +2682 -2153
- package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-AZHKCHMR.js} +1562 -2317
- package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-KRASPDE3.js} +2 -2
- package/chunks/{task-create-MWXJFRRM.js → task-create-TNXNT7ZD.js} +8 -8
- package/chunks/{task-list-EYO3FE57.js → task-list-FHNIJDKT.js} +1 -1
- package/chunks/{task-stop-BFSKRTGV.js → task-stop-MG4ZMTEI.js} +1 -1
- package/chunks/{task-update-2JJJRHMT.js → task-update-4HU62CJT.js} +8 -8
- package/chunks/{team-create-GY3VFY47.js → team-create-K5DNSJXR.js} +50 -40
- package/chunks/{team-delete-IQZ6XGFI.js → team-delete-2T44GUNN.js} +1 -1
- package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-2ZNAQT2A.js} +48 -38
- package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-23CW4A6Q.js} +65 -54
- package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-G2333AMH.js} +63 -52
- package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-BO2GR5MN.js} +4 -4
- package/chunks/{tool-search-XI3QWD5I.js → tool-search-MKQCKXN5.js} +22 -15
- package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-ENKTM2KX.js} +69 -58
- package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-2ETDL7OD.js} +64 -53
- package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-FMVNN5KA.js} +5 -5
- package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-KWRV5KLJ.js} +66 -55
- package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-7AUXAIQF.js} +73 -62
- package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-NETKLLDV.js} +117 -106
- package/chunks/{version-EK7VAGSI.js → version-DACNN2ZM.js} +1 -1
- package/chunks/{web-fetch-24KZO763.js → web-fetch-CIVCRET4.js} +16 -12
- package/chunks/{web-search-CRNXKZ2X.js → web-search-GOHZRGMM.js} +389 -327
- package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-T7UGLVE4.js} +2 -7
- package/chunks/workflow-IL2FOALZ.js +1324 -0
- package/chunks/workspace-providers-status-YGXL6N5U.js +131 -0
- package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-E4IAOFFZ.js} +3 -1
- package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-KX6BIBYK.js} +69 -58
- package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-2KYYGDDR.js} +72 -59
- package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-5Q6LWBYR.js} +76 -65
- package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-PJZTFPVV.js} +72 -61
- package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-HS6PWNEA.js} +77 -66
- package/chunks/{write-file-ERG67ZFX.js → write-file-JB3DRM7O.js} +50 -40
- package/chunks/{zh-VBFCRQBL.js → zh-7UJA4ICT.js} +4 -1
- package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-RV24PWUI.js} +4 -1
- package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-AVHQFOOQ.js} +12 -9
- package/cli.js +16 -16
- package/codeModeHost.js +4425 -0
- package/export-transcript-document.css +1 -0
- package/export-transcript-document.js +164 -165
- package/locales/ca.js +2 -2
- package/locales/de.js +2 -2
- package/locales/en.js +5 -2
- package/locales/fr.js +2 -2
- package/locales/ja.js +2 -2
- package/locales/pt.js +2 -2
- package/locales/ru.js +2 -2
- package/locales/zh-TW.js +5 -2
- package/locales/zh.js +5 -2
- package/package.json +6 -4
- package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-BH2nK5Z_.js} +1 -1
- package/web-shell/assets/{arc-qAF9_XsR.js → arc-CUUQ6krv.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-CJjiRuGx.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-GCDyU9ZX.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-C68MiN6h.js} +1 -1
- package/web-shell/assets/channel-DauVlmdF.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-_8B6frXZ.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CroSinX7.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CGn4Z0Fx.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-BI5nLQcf.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-CYJH0FuH.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-DjWZUqA1.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcTkIHm8.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-E8sZT5uK.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-CurjPKw_.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-BuIh7bj1.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-BuIh7bj1.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-CJEnNhth.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-jwEkm0yw.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-B-OVQ6AO.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CKKK9WNR.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-D486veFQ.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-C3GujqHv.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-BrOTDwuU.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-C4D9kWE3.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-7rAManT0.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-CqVzKOdr.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D2s08fc_.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-CrKtBxB2.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CD1CKdlt.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-CHDXdVNn.js} +1 -1
- package/web-shell/assets/index-D8tzgUOC.css +36 -0
- package/web-shell/assets/{index-DWoFMu5x.js → index-DWz95m74.js} +1 -1
- package/web-shell/assets/index-cDFf68Wd.js +2204 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Cr1oLCwe.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U--RghV1mm.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-MN1ZkGW8.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-DL05VTn0.js} +1 -1
- package/web-shell/assets/{layout-Dvdh5jRH.js → layout-D_TvQzvn.js} +1 -1
- package/web-shell/assets/{linear-Dvc6KIW2.js → linear-B_0OH6XF.js} +1 -1
- package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-B9Nklh9I.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-CevIQ0LR.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-DQ8PIv0d.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BVTV1pPe.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-DHN6nhpe.js} +1 -1
- package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-8HOyX0u-.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-9W4_14i8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-DSUBB2XP.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-DD3jH6Jn.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-RAFTU3Cz.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-Drk-oZ2x.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-QzYteVIm.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-Cy2nlOGx.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-xTr-HG26.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-B7outYof.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-Di_u1Ic6.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-DYocuCAM.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-AADDse54.js} +1 -1
- package/web-shell/index.html +29 -5
- package/chunks/chunk-V7RNNPGC.js +0 -44
- package/chunks/list-JOGBAC2R.js +0 -122
- package/chunks/mcp-6YYNSYLK.js +0 -116
- package/chunks/workflow-HD5NYMW5.js +0 -2907
- package/chunks/workspace-providers-status-MAM42IZS.js +0 -120
- package/web-shell/assets/channel-COIuCrVH.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
- package/web-shell/assets/index-CI1ysIEv.js +0 -2154
- package/web-shell/assets/index-CpxXGH-8.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
- package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
- package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
|
@@ -14,8 +14,8 @@ import {
|
|
|
14
14
|
sanitizePromptText,
|
|
15
15
|
sanitizeSenderName,
|
|
16
16
|
truncateUtf16Units
|
|
17
|
-
} from "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
} from "./chunk-EPVEPTI3.js";
|
|
18
|
+
import "./chunk-IJOS26LH.js";
|
|
19
19
|
import "./chunk-CQ35AJ4Z.js";
|
|
20
20
|
import "./chunk-DMTGGOSA.js";
|
|
21
21
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -8844,9 +8844,6 @@ ${boundedLines.join("\n")}`);
|
|
|
8844
8844
|
}
|
|
8845
8845
|
__name(formatChatRecord, "formatChatRecord");
|
|
8846
8846
|
var DEDUP_TTL_MS = 5 * 60 * 1e3;
|
|
8847
|
-
var BACKGROUND_RESPONSE_AGGREGATION_TIMEOUT_MS = 10 * 60 * 1e3;
|
|
8848
|
-
var BACKGROUND_RESPONSE_AGGREGATION_RETRY_MS = 30 * 1e3;
|
|
8849
|
-
var BACKGROUND_RESPONSE_AGGREGATION_MAX_RETRIES = 3;
|
|
8850
8847
|
var ACK_REACTION_NAME = "\u{1F440}";
|
|
8851
8848
|
var ACK_EMOTION_ID = "2659900";
|
|
8852
8849
|
var ACK_EMOTION_BG_ID = "im_bg_1";
|
|
@@ -9043,30 +9040,6 @@ async function withConnectLoggingSuppressed(connect) {
|
|
|
9043
9040
|
}
|
|
9044
9041
|
}
|
|
9045
9042
|
__name(withConnectLoggingSuppressed, "withConnectLoggingSuppressed");
|
|
9046
|
-
var ProactiveTextDeliveryError = class extends Error {
|
|
9047
|
-
static {
|
|
9048
|
-
__name(this, "ProactiveTextDeliveryError");
|
|
9049
|
-
}
|
|
9050
|
-
plan;
|
|
9051
|
-
retryable;
|
|
9052
|
-
constructor(plan, cause) {
|
|
9053
|
-
super(cause instanceof Error ? cause.message : String(cause), { cause });
|
|
9054
|
-
this.plan = plan;
|
|
9055
|
-
if (cause instanceof DingtalkCardRequestError) {
|
|
9056
|
-
this.retryable = cause.retryable;
|
|
9057
|
-
}
|
|
9058
|
-
}
|
|
9059
|
-
};
|
|
9060
|
-
var ReplyTextDeliveryError = class extends Error {
|
|
9061
|
-
static {
|
|
9062
|
-
__name(this, "ReplyTextDeliveryError");
|
|
9063
|
-
}
|
|
9064
|
-
plan;
|
|
9065
|
-
constructor(plan, cause) {
|
|
9066
|
-
super(cause instanceof Error ? cause.message : String(cause), { cause });
|
|
9067
|
-
this.plan = plan;
|
|
9068
|
-
}
|
|
9069
|
-
};
|
|
9070
9043
|
var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
9071
9044
|
static {
|
|
9072
9045
|
__name(this, "DingtalkChannel");
|
|
@@ -9101,7 +9074,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9101
9074
|
*/
|
|
9102
9075
|
proactiveToken;
|
|
9103
9076
|
interactiveCardConfig;
|
|
9104
|
-
aggregateBackgroundAgentResponses;
|
|
9105
9077
|
interactiveCardClient;
|
|
9106
9078
|
statusCardController;
|
|
9107
9079
|
questionCardController;
|
|
@@ -9114,10 +9086,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9114
9086
|
// boundary, input requested) mints a fresh segment UUID but the projection
|
|
9115
9087
|
// state must survive it, or a marker split across the reset leaks.
|
|
9116
9088
|
fileProjectors = /* @__PURE__ */ new Map();
|
|
9117
|
-
backgroundResponseAggregations = /* @__PURE__ */ new Map();
|
|
9118
|
-
detachedBackgroundResponseAggregations = /* @__PURE__ */ new Set();
|
|
9119
|
-
pendingBackgroundResponseTerminals = /* @__PURE__ */ new Map();
|
|
9120
|
-
detachedPendingBackgroundResponseTerminals = /* @__PURE__ */ new Set();
|
|
9121
9089
|
constructor(name, config, bridge, options) {
|
|
9122
9090
|
super(name, config, bridge, options);
|
|
9123
9091
|
this.atSender = config["atSender"] === true;
|
|
@@ -9136,11 +9104,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9136
9104
|
this.config.instructions += FILE_INSTRUCTIONS;
|
|
9137
9105
|
}
|
|
9138
9106
|
this.interactiveCardConfig = parseDingtalkInteractiveCardConfig(config.interactiveCards);
|
|
9139
|
-
const rawAggregateBackgroundAgentResponses = config.aggregateBackgroundAgentResponses;
|
|
9140
|
-
if (rawAggregateBackgroundAgentResponses !== void 0 && typeof rawAggregateBackgroundAgentResponses !== "boolean") {
|
|
9141
|
-
throw new Error(`Channel "${name}" aggregateBackgroundAgentResponses must be a boolean.`);
|
|
9142
|
-
}
|
|
9143
|
-
this.aggregateBackgroundAgentResponses = rawAggregateBackgroundAgentResponses === true;
|
|
9144
9107
|
if (!config.clientId || !config.clientSecret) {
|
|
9145
9108
|
throw new Error(`Channel "${name}" requires clientId and clientSecret for DingTalk.`);
|
|
9146
9109
|
}
|
|
@@ -9552,25 +9515,18 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9552
9515
|
}
|
|
9553
9516
|
return replaceImageMarkers(text, markers, replacements);
|
|
9554
9517
|
}
|
|
9555
|
-
async sendReply(chatId, text, atUserId, sourceLabel, prepared = false
|
|
9518
|
+
async sendReply(chatId, text, atUserId, sourceLabel, prepared = false) {
|
|
9556
9519
|
const webhook = this.webhooks.get(chatId);
|
|
9557
9520
|
if (!webhook) {
|
|
9558
9521
|
process.stderr.write(`[DingTalk:${this.name}] No webhook for chatId ${chatId}, cannot send.
|
|
9559
9522
|
`);
|
|
9560
|
-
if (failOnHttpError) {
|
|
9561
|
-
throw new Error("DingTalk session webhook unavailable");
|
|
9562
|
-
}
|
|
9563
9523
|
return;
|
|
9564
9524
|
}
|
|
9565
9525
|
const outgoingText = prepared ? text : await this.prepareReplyOutput(chatId, text);
|
|
9566
9526
|
if (!outgoingText.trim())
|
|
9567
9527
|
return;
|
|
9568
9528
|
const plan = this.createReplyTextDelivery(outgoingText, atUserId, sourceLabel);
|
|
9569
|
-
|
|
9570
|
-
await this.deliverReplyText(chatId, plan, failOnHttpError);
|
|
9571
|
-
} catch (error) {
|
|
9572
|
-
throw new ReplyTextDeliveryError(plan, error);
|
|
9573
|
-
}
|
|
9529
|
+
await this.deliverReplyText(chatId, plan);
|
|
9574
9530
|
}
|
|
9575
9531
|
createReplyTextDelivery(outgoingText, atUserId, sourceLabel) {
|
|
9576
9532
|
const mentionPrefix = atUserId ? `@${atUserId}
|
|
@@ -9591,12 +9547,9 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9591
9547
|
...atUserId ? { atUserId } : {}
|
|
9592
9548
|
};
|
|
9593
9549
|
}
|
|
9594
|
-
async deliverReplyText(chatId, plan
|
|
9550
|
+
async deliverReplyText(chatId, plan) {
|
|
9595
9551
|
const webhook = this.webhooks.get(chatId);
|
|
9596
9552
|
if (!webhook) {
|
|
9597
|
-
if (failOnHttpError) {
|
|
9598
|
-
throw new Error("DingTalk session webhook unavailable");
|
|
9599
|
-
}
|
|
9600
9553
|
return;
|
|
9601
9554
|
}
|
|
9602
9555
|
while (plan.nextChunk < plan.chunks.length) {
|
|
@@ -9636,19 +9589,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9636
9589
|
const detail = await resp.text().catch(() => "");
|
|
9637
9590
|
process.stderr.write(`[DingTalk:${this.name}] sendMessage failed: HTTP ${resp.status} ${detail}
|
|
9638
9591
|
`);
|
|
9639
|
-
if (failOnHttpError) {
|
|
9640
|
-
throw new Error(`DingTalk reply send failed: HTTP ${resp.status} ${detail}`);
|
|
9641
|
-
}
|
|
9642
|
-
} else if (failOnHttpError) {
|
|
9643
|
-
const payload = await resp.clone().json().catch(() => void 0);
|
|
9644
|
-
const response = payload && typeof payload === "object" ? payload : void 0;
|
|
9645
|
-
const value = response?.["errcode"] ?? response?.["code"];
|
|
9646
|
-
if (value !== void 0 && String(value) !== "0") {
|
|
9647
|
-
const detail = sanitizeLogText(String(response?.["errmsg"] ?? response?.["message"] ?? value), 300);
|
|
9648
|
-
process.stderr.write(`[DingTalk:${this.name}] sendMessage failed: ${detail}
|
|
9649
|
-
`);
|
|
9650
|
-
throw new Error(`DingTalk reply send failed: ${detail}`);
|
|
9651
|
-
}
|
|
9652
9592
|
}
|
|
9653
9593
|
plan.nextChunk++;
|
|
9654
9594
|
}
|
|
@@ -9683,11 +9623,7 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9683
9623
|
const plan = await this.createProactiveTextDelivery(target, text, sourceLabel);
|
|
9684
9624
|
if (!plan)
|
|
9685
9625
|
return;
|
|
9686
|
-
|
|
9687
|
-
await this.deliverProactiveText(target, plan);
|
|
9688
|
-
} catch (error) {
|
|
9689
|
-
throw new ProactiveTextDeliveryError(plan, error);
|
|
9690
|
-
}
|
|
9626
|
+
await this.deliverProactiveText(target, plan);
|
|
9691
9627
|
}
|
|
9692
9628
|
async createProactiveTextDelivery(target, text, sourceLabel) {
|
|
9693
9629
|
const outgoingText = await this.prepareFileOutput(text, (file, mediaId) => this.sendProactiveFile(target, file, mediaId));
|
|
@@ -9922,7 +9858,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
9922
9858
|
this.finishReaction(state.chatId, state.messageId, state.sessionId);
|
|
9923
9859
|
}
|
|
9924
9860
|
this.statusCardController?.dispose();
|
|
9925
|
-
this.drainBackgroundResponseAggregations();
|
|
9926
9861
|
this.activeReactionKeys.clear();
|
|
9927
9862
|
this.sessionReactionKeys.clear();
|
|
9928
9863
|
this.reactionStates.clear();
|
|
@@ -10171,7 +10106,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
10171
10106
|
}
|
|
10172
10107
|
}
|
|
10173
10108
|
this.sessionMentionTargets.delete(sessionId);
|
|
10174
|
-
this.drainBackgroundResponseAggregations(sessionId);
|
|
10175
10109
|
const cardRunId = this.cardRunBySession.get(sessionId);
|
|
10176
10110
|
if (cardRunId) {
|
|
10177
10111
|
this.cardRunBySession.delete(sessionId);
|
|
@@ -10207,9 +10141,6 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
10207
10141
|
this.cardRuns.delete(runId);
|
|
10208
10142
|
}
|
|
10209
10143
|
}
|
|
10210
|
-
onSessionRetiring(sessionId) {
|
|
10211
|
-
this.drainBackgroundResponseAggregations(sessionId);
|
|
10212
|
-
}
|
|
10213
10144
|
onTaskLifecycle(event) {
|
|
10214
10145
|
if (event.type === "started") {
|
|
10215
10146
|
this.startReaction(event.chatId, event.messageId, event.sessionId);
|
|
@@ -10346,547 +10277,12 @@ var DingtalkChannel = class _DingtalkChannel extends ChannelBase {
|
|
|
10346
10277
|
this.sessionMentionTargets.delete(sessionId);
|
|
10347
10278
|
this.stopReaction(chatId, messageId, sessionId);
|
|
10348
10279
|
}
|
|
10349
|
-
/** Deliver every Agent segment immediately unless aggregation is enabled. */
|
|
10350
10280
|
async dispatchBackgroundResponse(sessionId, text, context) {
|
|
10351
10281
|
const target = this.router.getTarget(sessionId);
|
|
10352
|
-
if (!target || target.channelName !== this.name || context !== void 0 && context.kind !== "agent") {
|
|
10282
|
+
if (!target || target.channelName !== this.name || context !== void 0 && context.kind !== "agent" || !text.trim()) {
|
|
10353
10283
|
return super.dispatchBackgroundResponse(sessionId, text, context);
|
|
10354
10284
|
}
|
|
10355
|
-
|
|
10356
|
-
if (!canAggregate) {
|
|
10357
|
-
if (text.trim().length === 0) {
|
|
10358
|
-
return super.dispatchBackgroundResponse(sessionId, text, context);
|
|
10359
|
-
}
|
|
10360
|
-
return super.dispatchBackgroundResponse(sessionId, this.formatBackgroundAgentResponse(text, context?.label), context);
|
|
10361
|
-
}
|
|
10362
|
-
const key = JSON.stringify([sessionId, context.taskId, context.turnId]);
|
|
10363
|
-
let current = this.backgroundResponseAggregations.get(key);
|
|
10364
|
-
let parked = this.pendingBackgroundResponseTerminals.get(key);
|
|
10365
|
-
if (current?.turnComplete === true) {
|
|
10366
|
-
this.detachedBackgroundResponseAggregations.add(current);
|
|
10367
|
-
this.backgroundResponseAggregations.delete(key);
|
|
10368
|
-
current = void 0;
|
|
10369
|
-
}
|
|
10370
|
-
if (!current && (parked?.turnEnded === true || parked?.turnComplete === true && (parked.retryTimer || parked.retryInFlight || parked.resolvers > 0))) {
|
|
10371
|
-
if (!parked.turnEnded) {
|
|
10372
|
-
this.detachedPendingBackgroundResponseTerminals.add(parked);
|
|
10373
|
-
}
|
|
10374
|
-
parked = { sessionId, target, resolvers: 0, held: [] };
|
|
10375
|
-
this.pendingBackgroundResponseTerminals.set(key, parked);
|
|
10376
|
-
}
|
|
10377
|
-
if (!current && text.trim().length === 0) {
|
|
10378
|
-
if (!parked || parked.resolvers === 0 && !parked.retryTimer && !parked.retryInFlight && !parked.resolutionDropped && !parked.turnComplete) {
|
|
10379
|
-
if (parked)
|
|
10380
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10381
|
-
return super.dispatchBackgroundResponse(sessionId, text, context);
|
|
10382
|
-
}
|
|
10383
|
-
if (context.turnComplete) {
|
|
10384
|
-
parked.turnComplete = true;
|
|
10385
|
-
parked.status = context.status;
|
|
10386
|
-
parked.label = context.label ?? parked.label;
|
|
10387
|
-
parked.completionPartial = context.partial === true;
|
|
10388
|
-
if (parked.resolvers === 0 && !parked.retryTimer && !parked.retryInFlight && (parked.retryAttempts ?? 0) >= BACKGROUND_RESPONSE_AGGREGATION_MAX_RETRIES) {
|
|
10389
|
-
parked.turnEnded = true;
|
|
10390
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10391
|
-
}
|
|
10392
|
-
}
|
|
10393
|
-
return;
|
|
10394
|
-
}
|
|
10395
|
-
if (!current) {
|
|
10396
|
-
parked ??= { sessionId, target, resolvers: 0, held: [] };
|
|
10397
|
-
this.pendingBackgroundResponseTerminals.set(key, parked);
|
|
10398
|
-
this.holdPendingBackgroundResponse(parked, text, context);
|
|
10399
|
-
parked.resolvers++;
|
|
10400
|
-
try {
|
|
10401
|
-
let delivery;
|
|
10402
|
-
try {
|
|
10403
|
-
delivery = await this.resolveBackgroundResponseDelivery(sessionId);
|
|
10404
|
-
} catch (error) {
|
|
10405
|
-
if (parked.resolvers === 1 && !this.backgroundResponseAggregations.has(key)) {
|
|
10406
|
-
this.scheduleBackgroundResponseResolutionRetry(key, sessionId, parked);
|
|
10407
|
-
} else {
|
|
10408
|
-
const existing = this.backgroundResponseAggregations.get(key);
|
|
10409
|
-
if (existing) {
|
|
10410
|
-
if (parked.held.length > 0) {
|
|
10411
|
-
this.applyHeldBackgroundResponses(existing, parked);
|
|
10412
|
-
}
|
|
10413
|
-
this.applyPendingBackgroundResponseTerminal(existing, parked);
|
|
10414
|
-
if (parked.resolvers === 1) {
|
|
10415
|
-
if (existing.turnComplete) {
|
|
10416
|
-
await this.completeBackgroundResponseAggregation(key, existing);
|
|
10417
|
-
} else {
|
|
10418
|
-
this.scheduleBackgroundResponseAggregationFlush(key, existing);
|
|
10419
|
-
}
|
|
10420
|
-
}
|
|
10421
|
-
}
|
|
10422
|
-
}
|
|
10423
|
-
throw error;
|
|
10424
|
-
}
|
|
10425
|
-
if (!delivery || this.router.getTarget(sessionId) !== delivery.target) {
|
|
10426
|
-
if (parked.resolvers === 1 && !this.backgroundResponseAggregations.has(key)) {
|
|
10427
|
-
this.scheduleBackgroundResponseResolutionRetry(key, sessionId, parked);
|
|
10428
|
-
} else {
|
|
10429
|
-
const existing = this.backgroundResponseAggregations.get(key);
|
|
10430
|
-
if (existing) {
|
|
10431
|
-
if (parked.held.length > 0) {
|
|
10432
|
-
this.applyHeldBackgroundResponses(existing, parked);
|
|
10433
|
-
}
|
|
10434
|
-
this.applyPendingBackgroundResponseTerminal(existing, parked);
|
|
10435
|
-
if (parked.resolvers === 1) {
|
|
10436
|
-
if (existing.turnComplete) {
|
|
10437
|
-
await this.completeBackgroundResponseAggregation(key, existing);
|
|
10438
|
-
} else {
|
|
10439
|
-
this.scheduleBackgroundResponseAggregationFlush(key, existing);
|
|
10440
|
-
}
|
|
10441
|
-
}
|
|
10442
|
-
}
|
|
10443
|
-
}
|
|
10444
|
-
return;
|
|
10445
|
-
}
|
|
10446
|
-
if (parked.retiring || this.pendingBackgroundResponseTerminals.get(key) !== parked) {
|
|
10447
|
-
await this.flushDetachedBackgroundResponse(key, sessionId, parked, delivery);
|
|
10448
|
-
return;
|
|
10449
|
-
}
|
|
10450
|
-
if (parked.retryTimer) {
|
|
10451
|
-
clearTimeout(parked.retryTimer);
|
|
10452
|
-
parked.retryTimer = void 0;
|
|
10453
|
-
}
|
|
10454
|
-
current = this.backgroundResponseAggregations.get(key) ?? this.createBackgroundResponseAggregation(key, sessionId, parked.held[0]?.context ?? context, delivery.target, delivery.sourceLabel);
|
|
10455
|
-
this.applyHeldBackgroundResponses(current, parked);
|
|
10456
|
-
this.applyPendingBackgroundResponseTerminal(current, parked);
|
|
10457
|
-
if (parked.resolutionDropped) {
|
|
10458
|
-
current.resolutionDropped = true;
|
|
10459
|
-
parked.resolutionDropped = void 0;
|
|
10460
|
-
}
|
|
10461
|
-
} finally {
|
|
10462
|
-
parked.resolvers--;
|
|
10463
|
-
if (this.pendingBackgroundResponseTerminals.get(key) === parked && parked.resolvers === 0 && !parked.retryTimer && parked.held.length === 0 && (!parked.resolutionDropped || parked.turnEnded)) {
|
|
10464
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10465
|
-
}
|
|
10466
|
-
}
|
|
10467
|
-
if (!current)
|
|
10468
|
-
return;
|
|
10469
|
-
if (current.turnComplete && parked.resolvers > 0)
|
|
10470
|
-
return;
|
|
10471
|
-
if (!current.turnComplete) {
|
|
10472
|
-
this.scheduleBackgroundResponseAggregationFlush(key, current);
|
|
10473
|
-
} else {
|
|
10474
|
-
await this.completeBackgroundResponseAggregation(key, current);
|
|
10475
|
-
}
|
|
10476
|
-
return;
|
|
10477
|
-
}
|
|
10478
|
-
current.status = context.status;
|
|
10479
|
-
current.label = context.label ?? current.label;
|
|
10480
|
-
if (text.trim().length > 0)
|
|
10481
|
-
current.parts.push(text);
|
|
10482
|
-
if (context.turnComplete && parked && parked.resolvers > 0) {
|
|
10483
|
-
parked.turnComplete = true;
|
|
10484
|
-
parked.status = context.status;
|
|
10485
|
-
parked.label = context.label ?? parked.label;
|
|
10486
|
-
parked.completionPartial = context.partial === true;
|
|
10487
|
-
} else if (context.turnComplete) {
|
|
10488
|
-
current.turnComplete = true;
|
|
10489
|
-
current.completionPartial = context.partial === true;
|
|
10490
|
-
} else if (parked?.turnComplete && parked.resolvers === 0) {
|
|
10491
|
-
current.turnComplete = true;
|
|
10492
|
-
current.status = parked.status ?? current.status;
|
|
10493
|
-
current.label = parked.label ?? current.label;
|
|
10494
|
-
current.completionPartial = parked.completionPartial === true;
|
|
10495
|
-
}
|
|
10496
|
-
current.resolutionDropped ||= parked?.resolutionDropped;
|
|
10497
|
-
if (!current.turnComplete) {
|
|
10498
|
-
this.scheduleBackgroundResponseAggregationFlush(key, current);
|
|
10499
|
-
return;
|
|
10500
|
-
}
|
|
10501
|
-
await this.completeBackgroundResponseAggregation(key, current);
|
|
10502
|
-
}
|
|
10503
|
-
async flushBackgroundResponseAggregation(key, aggregation) {
|
|
10504
|
-
if (this.backgroundResponseAggregations.get(key) !== aggregation && !this.detachedBackgroundResponseAggregations.has(aggregation) || aggregation.flushing) {
|
|
10505
|
-
return;
|
|
10506
|
-
}
|
|
10507
|
-
this.refreshBackgroundResponseDelivery(aggregation);
|
|
10508
|
-
if (aggregation.retryTimer)
|
|
10509
|
-
clearTimeout(aggregation.retryTimer);
|
|
10510
|
-
aggregation.retryTimer = void 0;
|
|
10511
|
-
let delivery = aggregation.delivery;
|
|
10512
|
-
if (!delivery) {
|
|
10513
|
-
if (aggregation.parts.length === 0) {
|
|
10514
|
-
if (!this.owesTerminalBackgroundResponseCard(aggregation)) {
|
|
10515
|
-
if (aggregation.retiring || aggregation.turnComplete) {
|
|
10516
|
-
this.removeBackgroundResponseAggregation(key, aggregation);
|
|
10517
|
-
} else {
|
|
10518
|
-
this.scheduleBackgroundResponseAggregationFlush(key, aggregation);
|
|
10519
|
-
}
|
|
10520
|
-
return;
|
|
10521
|
-
}
|
|
10522
|
-
}
|
|
10523
|
-
if (aggregation.timeoutTimer)
|
|
10524
|
-
clearTimeout(aggregation.timeoutTimer);
|
|
10525
|
-
aggregation.timeoutTimer = void 0;
|
|
10526
|
-
const parts = aggregation.parts.splice(0);
|
|
10527
|
-
delivery = {
|
|
10528
|
-
status: aggregation.status,
|
|
10529
|
-
label: aggregation.label,
|
|
10530
|
-
parts,
|
|
10531
|
-
partial: this.isPartialBackgroundResponseDelivery(aggregation, parts.length),
|
|
10532
|
-
attempts: 0,
|
|
10533
|
-
composedTurnComplete: aggregation.turnComplete === true
|
|
10534
|
-
};
|
|
10535
|
-
aggregation.delivery = delivery;
|
|
10536
|
-
}
|
|
10537
|
-
const body = this.formatBackgroundResponseAggregation(delivery);
|
|
10538
|
-
aggregation.flushing = true;
|
|
10539
|
-
let error;
|
|
10540
|
-
try {
|
|
10541
|
-
if (delivery.proactivePlan) {
|
|
10542
|
-
await this.deliverProactiveText(aggregation.target, delivery.proactivePlan);
|
|
10543
|
-
} else if (delivery.replyPlan) {
|
|
10544
|
-
await this.deliverReplyText(aggregation.target.chatId, delivery.replyPlan, true);
|
|
10545
|
-
} else if (this.supportsProactiveSend() && this.supportsProactiveTarget(aggregation.target)) {
|
|
10546
|
-
await this.deliverBackgroundResponseToTarget(aggregation.sessionId, body, {
|
|
10547
|
-
target: aggregation.target,
|
|
10548
|
-
sourceLabel: aggregation.sourceLabel
|
|
10549
|
-
});
|
|
10550
|
-
} else {
|
|
10551
|
-
delivery.preparedReplyBody ??= await this.prepareReplyOutput(aggregation.target.chatId, body);
|
|
10552
|
-
await this.deliverBackgroundReply(aggregation.target.chatId, delivery.preparedReplyBody, aggregation.sessionId, aggregation.sourceLabel, true, true);
|
|
10553
|
-
}
|
|
10554
|
-
} catch (caught) {
|
|
10555
|
-
error = caught;
|
|
10556
|
-
if (caught instanceof ProactiveTextDeliveryError) {
|
|
10557
|
-
delivery.proactivePlan = caught.plan;
|
|
10558
|
-
} else if (caught instanceof ReplyTextDeliveryError) {
|
|
10559
|
-
delivery.replyPlan = caught.plan;
|
|
10560
|
-
}
|
|
10561
|
-
} finally {
|
|
10562
|
-
aggregation.flushing = false;
|
|
10563
|
-
}
|
|
10564
|
-
if (error === void 0) {
|
|
10565
|
-
aggregation.delivery = void 0;
|
|
10566
|
-
aggregation.delivered = true;
|
|
10567
|
-
if (delivery.composedTurnComplete === true && aggregation.turnComplete && delivery.partial !== true && !aggregation.retiring) {
|
|
10568
|
-
aggregation.completionDelivered = true;
|
|
10569
|
-
}
|
|
10570
|
-
if (aggregation.retiring || aggregation.turnComplete) {
|
|
10571
|
-
await this.flushBackgroundResponseAggregation(key, aggregation);
|
|
10572
|
-
} else {
|
|
10573
|
-
this.scheduleBackgroundResponseAggregationFlush(key, aggregation);
|
|
10574
|
-
}
|
|
10575
|
-
return;
|
|
10576
|
-
}
|
|
10577
|
-
delivery.attempts++;
|
|
10578
|
-
process.stderr.write(`[DingTalk:${this.name}] background response delivery failed (attempt ${delivery.attempts}): ${sanitizeLogText(error instanceof Error ? error.message : String(error), 300)}
|
|
10579
|
-
`);
|
|
10580
|
-
if (delivery.attempts >= BACKGROUND_RESPONSE_AGGREGATION_MAX_RETRIES || // A permanently rejected send (an invalid appkey, a missing app) cannot
|
|
10581
|
-
// succeed later; retrying it only spends the chat's send quota.
|
|
10582
|
-
error instanceof ProactiveTextDeliveryError && error.retryable === false) {
|
|
10583
|
-
aggregation.delivery = void 0;
|
|
10584
|
-
aggregation.dropped = true;
|
|
10585
|
-
if (aggregation.parts.length === 0) {
|
|
10586
|
-
if (aggregation.retiring || aggregation.turnComplete) {
|
|
10587
|
-
this.removeBackgroundResponseAggregation(key, aggregation);
|
|
10588
|
-
} else {
|
|
10589
|
-
this.scheduleBackgroundResponseAggregationFlush(key, aggregation);
|
|
10590
|
-
}
|
|
10591
|
-
} else if (aggregation.retiring || aggregation.turnComplete) {
|
|
10592
|
-
await this.flushBackgroundResponseAggregation(key, aggregation);
|
|
10593
|
-
} else {
|
|
10594
|
-
this.scheduleBackgroundResponseAggregationFlush(key, aggregation);
|
|
10595
|
-
}
|
|
10596
|
-
return;
|
|
10597
|
-
}
|
|
10598
|
-
aggregation.retryTimer = setTimeout(() => {
|
|
10599
|
-
aggregation.retryTimer = void 0;
|
|
10600
|
-
void this.flushBackgroundResponseAggregation(key, aggregation);
|
|
10601
|
-
}, BACKGROUND_RESPONSE_AGGREGATION_RETRY_MS);
|
|
10602
|
-
aggregation.retryTimer.unref?.();
|
|
10603
|
-
}
|
|
10604
|
-
/**
|
|
10605
|
-
* A card carries `(部分)` whenever it is not the turn's whole output: the
|
|
10606
|
-
* turn is still open, earlier text already went out (or was given up on),
|
|
10607
|
-
* or the turn itself ended early.
|
|
10608
|
-
*/
|
|
10609
|
-
isPartialBackgroundResponseDelivery(aggregation, partCount) {
|
|
10610
|
-
return partCount > 0 && (aggregation.delivered === true || aggregation.dropped === true || aggregation.resolutionDropped === true || aggregation.retiring === true || aggregation.completionPartial === true || aggregation.turnComplete !== true);
|
|
10611
|
-
}
|
|
10612
|
-
/**
|
|
10613
|
-
* A turn that outran the bounded wait had its text delivered under the
|
|
10614
|
-
* `(部分)` label. When it then completes normally with nothing buffered,
|
|
10615
|
-
* a header-only card is the only way the chat ever learns it finished.
|
|
10616
|
-
*/
|
|
10617
|
-
owesTerminalBackgroundResponseCard(aggregation) {
|
|
10618
|
-
return aggregation.turnComplete === true && aggregation.delivered === true && aggregation.completionDelivered !== true && aggregation.retiring !== true && aggregation.completionPartial !== true && aggregation.dropped !== true && aggregation.resolutionDropped !== true;
|
|
10619
|
-
}
|
|
10620
|
-
refreshBackgroundResponseDelivery(aggregation) {
|
|
10621
|
-
const delivery = aggregation.delivery;
|
|
10622
|
-
if (!delivery || aggregation.flushing)
|
|
10623
|
-
return;
|
|
10624
|
-
const plan = delivery.proactivePlan ?? delivery.replyPlan;
|
|
10625
|
-
if (plan && plan.nextChunk > 0)
|
|
10626
|
-
return;
|
|
10627
|
-
const body = this.formatBackgroundResponseAggregation(delivery);
|
|
10628
|
-
const header = body.split("\n", 1)[0];
|
|
10629
|
-
const replaceHeader = /* @__PURE__ */ __name((text) => text.replace(/## (?:✅|❌|⏹️) Agent · [^\n]+/, () => header), "replaceHeader");
|
|
10630
|
-
if (plan) {
|
|
10631
|
-
plan.title = extractTitle(body);
|
|
10632
|
-
plan.chunks[0] = replaceHeader(plan.chunks[0]);
|
|
10633
|
-
}
|
|
10634
|
-
if (delivery.preparedReplyBody) {
|
|
10635
|
-
delivery.preparedReplyBody = replaceHeader(delivery.preparedReplyBody);
|
|
10636
|
-
}
|
|
10637
|
-
delivery.composedTurnComplete = aggregation.turnComplete === true;
|
|
10638
|
-
}
|
|
10639
|
-
removeBackgroundResponseAggregation(key, aggregation) {
|
|
10640
|
-
if (this.backgroundResponseAggregations.get(key) === aggregation) {
|
|
10641
|
-
this.backgroundResponseAggregations.delete(key);
|
|
10642
|
-
}
|
|
10643
|
-
this.detachedBackgroundResponseAggregations.delete(aggregation);
|
|
10644
|
-
}
|
|
10645
|
-
drainBackgroundResponseAggregations(sessionId) {
|
|
10646
|
-
for (const [key, pending] of this.pendingBackgroundResponseTerminals) {
|
|
10647
|
-
if (sessionId !== void 0 && pending.sessionId !== sessionId)
|
|
10648
|
-
continue;
|
|
10649
|
-
if (pending.retryTimer)
|
|
10650
|
-
clearTimeout(pending.retryTimer);
|
|
10651
|
-
pending.retryTimer = void 0;
|
|
10652
|
-
pending.retiring = true;
|
|
10653
|
-
pending.turnComplete = true;
|
|
10654
|
-
pending.completionPartial = true;
|
|
10655
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10656
|
-
this.detachedPendingBackgroundResponseTerminals.add(pending);
|
|
10657
|
-
}
|
|
10658
|
-
for (const pending of this.detachedPendingBackgroundResponseTerminals) {
|
|
10659
|
-
if (sessionId !== void 0 && pending.sessionId !== sessionId)
|
|
10660
|
-
continue;
|
|
10661
|
-
if (pending.retryTimer)
|
|
10662
|
-
clearTimeout(pending.retryTimer);
|
|
10663
|
-
pending.retryTimer = void 0;
|
|
10664
|
-
pending.retiring = true;
|
|
10665
|
-
pending.turnComplete = true;
|
|
10666
|
-
pending.completionPartial = true;
|
|
10667
|
-
if (pending.held.length > 0 && this.router.getTarget(pending.sessionId) === pending.target) {
|
|
10668
|
-
void this.flushDetachedBackgroundResponse("", pending.sessionId, pending, { target: pending.target }).catch((error) => {
|
|
10669
|
-
process.stderr.write(`[DingTalk:${this.name}] background response delivery failed during drain: ${sanitizeLogText(error instanceof Error ? error.message : String(error), 300)}
|
|
10670
|
-
`);
|
|
10671
|
-
});
|
|
10672
|
-
} else if (pending.held.length > 0) {
|
|
10673
|
-
process.stderr.write(`[DingTalk:${this.name}] background response target unavailable during drain; ${pending.held.length} buffered segment(s) discarded
|
|
10674
|
-
`);
|
|
10675
|
-
pending.held.length = 0;
|
|
10676
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10677
|
-
} else if (pending.held.length === 0) {
|
|
10678
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10679
|
-
}
|
|
10680
|
-
}
|
|
10681
|
-
const aggregations = /* @__PURE__ */ new Set([
|
|
10682
|
-
...this.backgroundResponseAggregations.values(),
|
|
10683
|
-
...this.detachedBackgroundResponseAggregations
|
|
10684
|
-
]);
|
|
10685
|
-
for (const aggregation of aggregations) {
|
|
10686
|
-
if (sessionId !== void 0 && aggregation.sessionId !== sessionId) {
|
|
10687
|
-
continue;
|
|
10688
|
-
}
|
|
10689
|
-
if (aggregation.timeoutTimer)
|
|
10690
|
-
clearTimeout(aggregation.timeoutTimer);
|
|
10691
|
-
if (aggregation.retryTimer)
|
|
10692
|
-
clearTimeout(aggregation.retryTimer);
|
|
10693
|
-
aggregation.timeoutTimer = void 0;
|
|
10694
|
-
aggregation.retryTimer = void 0;
|
|
10695
|
-
aggregation.retiring = true;
|
|
10696
|
-
aggregation.turnComplete = true;
|
|
10697
|
-
aggregation.completionPartial = true;
|
|
10698
|
-
if (!aggregation.flushing) {
|
|
10699
|
-
void this.flushBackgroundResponseAggregation(aggregation.key, aggregation);
|
|
10700
|
-
}
|
|
10701
|
-
}
|
|
10702
|
-
}
|
|
10703
|
-
createBackgroundResponseAggregation(key, sessionId, context, target, sourceLabel) {
|
|
10704
|
-
const aggregation = {
|
|
10705
|
-
key,
|
|
10706
|
-
sessionId,
|
|
10707
|
-
target,
|
|
10708
|
-
sourceLabel,
|
|
10709
|
-
status: context.status,
|
|
10710
|
-
label: context.label,
|
|
10711
|
-
parts: []
|
|
10712
|
-
};
|
|
10713
|
-
this.backgroundResponseAggregations.set(key, aggregation);
|
|
10714
|
-
return aggregation;
|
|
10715
|
-
}
|
|
10716
|
-
scheduleBackgroundResponseResolutionRetry(key, sessionId, pending) {
|
|
10717
|
-
if (pending.retiring)
|
|
10718
|
-
return;
|
|
10719
|
-
if (pending.retryTimer)
|
|
10720
|
-
return;
|
|
10721
|
-
pending.retryAttempts = (pending.retryAttempts ?? 0) + 1;
|
|
10722
|
-
if (pending.retryAttempts >= BACKGROUND_RESPONSE_AGGREGATION_MAX_RETRIES) {
|
|
10723
|
-
pending.resolutionDropped = true;
|
|
10724
|
-
pending.turnEnded = pending.turnComplete === true;
|
|
10725
|
-
pending.held.length = 0;
|
|
10726
|
-
pending.turnComplete = void 0;
|
|
10727
|
-
pending.status = void 0;
|
|
10728
|
-
pending.label = void 0;
|
|
10729
|
-
pending.completionPartial = void 0;
|
|
10730
|
-
if (pending.turnEnded) {
|
|
10731
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10732
|
-
}
|
|
10733
|
-
return;
|
|
10734
|
-
}
|
|
10735
|
-
pending.retryTimer = setTimeout(() => {
|
|
10736
|
-
pending.retryTimer = void 0;
|
|
10737
|
-
pending.retryInFlight = true;
|
|
10738
|
-
void this.retryBackgroundResponseResolution(key, sessionId, pending).catch((error) => {
|
|
10739
|
-
process.stderr.write(`[DingTalk:${this.name}] background response target resolution failed: ${sanitizeLogText(error instanceof Error ? error.message : String(error), 300)}
|
|
10740
|
-
`);
|
|
10741
|
-
}).finally(() => {
|
|
10742
|
-
pending.retryInFlight = false;
|
|
10743
|
-
if (pending.retiring || !pending.retryTimer && !pending.resolutionDropped) {
|
|
10744
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10745
|
-
}
|
|
10746
|
-
if (this.pendingBackgroundResponseTerminals.get(key) === pending && pending.resolvers === 0 && !pending.retryTimer && pending.held.length === 0 && (!pending.resolutionDropped || pending.turnEnded)) {
|
|
10747
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10748
|
-
}
|
|
10749
|
-
});
|
|
10750
|
-
}, BACKGROUND_RESPONSE_AGGREGATION_RETRY_MS);
|
|
10751
|
-
pending.retryTimer.unref?.();
|
|
10752
|
-
const active = this.pendingBackgroundResponseTerminals.get(key);
|
|
10753
|
-
if (!active || active === pending) {
|
|
10754
|
-
this.pendingBackgroundResponseTerminals.set(key, pending);
|
|
10755
|
-
}
|
|
10756
|
-
}
|
|
10757
|
-
async retryBackgroundResponseResolution(key, sessionId, pending) {
|
|
10758
|
-
let delivery;
|
|
10759
|
-
try {
|
|
10760
|
-
delivery = await this.resolveBackgroundResponseDelivery(sessionId);
|
|
10761
|
-
} catch (error) {
|
|
10762
|
-
if (this.pendingBackgroundResponseTerminals.get(key) === pending && !this.backgroundResponseAggregations.has(key) || this.detachedPendingBackgroundResponseTerminals.has(pending)) {
|
|
10763
|
-
this.scheduleBackgroundResponseResolutionRetry(key, sessionId, pending);
|
|
10764
|
-
}
|
|
10765
|
-
throw error;
|
|
10766
|
-
}
|
|
10767
|
-
if (!delivery || this.router.getTarget(sessionId) !== delivery.target) {
|
|
10768
|
-
if (pending.retiring) {
|
|
10769
|
-
if (pending.held.length > 0) {
|
|
10770
|
-
process.stderr.write(`[DingTalk:${this.name}] background response target unavailable during drain; ${pending.held.length} buffered segment(s) discarded
|
|
10771
|
-
`);
|
|
10772
|
-
}
|
|
10773
|
-
pending.held.length = 0;
|
|
10774
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10775
|
-
return;
|
|
10776
|
-
}
|
|
10777
|
-
if (this.pendingBackgroundResponseTerminals.get(key) === pending && !this.backgroundResponseAggregations.has(key) || this.detachedPendingBackgroundResponseTerminals.has(pending)) {
|
|
10778
|
-
this.scheduleBackgroundResponseResolutionRetry(key, sessionId, pending);
|
|
10779
|
-
}
|
|
10780
|
-
return;
|
|
10781
|
-
}
|
|
10782
|
-
if (pending.retiring || this.pendingBackgroundResponseTerminals.get(key) !== pending || pending.turnComplete) {
|
|
10783
|
-
await this.flushDetachedBackgroundResponse(key, sessionId, pending, delivery);
|
|
10784
|
-
return;
|
|
10785
|
-
}
|
|
10786
|
-
const first = pending.held[0];
|
|
10787
|
-
if (!first)
|
|
10788
|
-
return;
|
|
10789
|
-
const aggregation = this.createBackgroundResponseAggregation(key, sessionId, first.context, delivery.target, delivery.sourceLabel);
|
|
10790
|
-
this.applyHeldBackgroundResponses(aggregation, pending);
|
|
10791
|
-
if (pending.resolutionDropped) {
|
|
10792
|
-
aggregation.resolutionDropped = true;
|
|
10793
|
-
pending.resolutionDropped = void 0;
|
|
10794
|
-
}
|
|
10795
|
-
if (this.pendingBackgroundResponseTerminals.get(key) === pending) {
|
|
10796
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10797
|
-
}
|
|
10798
|
-
this.scheduleBackgroundResponseAggregationFlush(key, aggregation);
|
|
10799
|
-
}
|
|
10800
|
-
holdPendingBackgroundResponse(pending, text, context) {
|
|
10801
|
-
if (text.trim().length > 0)
|
|
10802
|
-
pending.held.push({ text, context });
|
|
10803
|
-
if (context.turnComplete) {
|
|
10804
|
-
pending.turnComplete = true;
|
|
10805
|
-
pending.status = context.status;
|
|
10806
|
-
pending.label = context.label ?? pending.label;
|
|
10807
|
-
pending.completionPartial = context.partial === true;
|
|
10808
|
-
}
|
|
10809
|
-
}
|
|
10810
|
-
applyHeldBackgroundResponses(aggregation, pending) {
|
|
10811
|
-
for (const { text, context } of pending.held.splice(0)) {
|
|
10812
|
-
aggregation.status = context.status;
|
|
10813
|
-
aggregation.label = context.label ?? aggregation.label;
|
|
10814
|
-
aggregation.parts.push(text);
|
|
10815
|
-
if (context.turnComplete) {
|
|
10816
|
-
aggregation.turnComplete = true;
|
|
10817
|
-
aggregation.completionPartial = context.partial === true;
|
|
10818
|
-
}
|
|
10819
|
-
}
|
|
10820
|
-
}
|
|
10821
|
-
applyPendingBackgroundResponseTerminal(aggregation, pending) {
|
|
10822
|
-
if (!pending.turnComplete)
|
|
10823
|
-
return;
|
|
10824
|
-
aggregation.turnComplete = true;
|
|
10825
|
-
aggregation.status = pending.status ?? aggregation.status;
|
|
10826
|
-
aggregation.label = pending.label ?? aggregation.label;
|
|
10827
|
-
aggregation.completionPartial = pending.completionPartial === true;
|
|
10828
|
-
pending.turnComplete = void 0;
|
|
10829
|
-
pending.status = void 0;
|
|
10830
|
-
pending.label = void 0;
|
|
10831
|
-
pending.completionPartial = void 0;
|
|
10832
|
-
}
|
|
10833
|
-
async completeBackgroundResponseAggregation(key, aggregation) {
|
|
10834
|
-
if (aggregation.delivery) {
|
|
10835
|
-
aggregation.delivery.status = aggregation.status;
|
|
10836
|
-
aggregation.delivery.label = aggregation.label ?? aggregation.delivery.label;
|
|
10837
|
-
aggregation.delivery.partial = this.isPartialBackgroundResponseDelivery(aggregation, aggregation.delivery.parts.length) || aggregation.parts.length > 0;
|
|
10838
|
-
}
|
|
10839
|
-
if (aggregation.timeoutTimer)
|
|
10840
|
-
clearTimeout(aggregation.timeoutTimer);
|
|
10841
|
-
aggregation.timeoutTimer = void 0;
|
|
10842
|
-
await this.flushBackgroundResponseAggregation(key, aggregation);
|
|
10843
|
-
}
|
|
10844
|
-
async flushDetachedBackgroundResponse(key, sessionId, pending, delivery) {
|
|
10845
|
-
const first = pending.held[0];
|
|
10846
|
-
if (!first) {
|
|
10847
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10848
|
-
return;
|
|
10849
|
-
}
|
|
10850
|
-
const aggregation = {
|
|
10851
|
-
key,
|
|
10852
|
-
sessionId,
|
|
10853
|
-
target: delivery.target,
|
|
10854
|
-
sourceLabel: delivery.sourceLabel,
|
|
10855
|
-
status: first.context.status,
|
|
10856
|
-
label: first.context.label,
|
|
10857
|
-
parts: [],
|
|
10858
|
-
turnComplete: pending.turnComplete,
|
|
10859
|
-
completionPartial: pending.completionPartial,
|
|
10860
|
-
resolutionDropped: pending.resolutionDropped
|
|
10861
|
-
};
|
|
10862
|
-
this.applyHeldBackgroundResponses(aggregation, pending);
|
|
10863
|
-
aggregation.status = pending.status ?? aggregation.status;
|
|
10864
|
-
aggregation.label = pending.label ?? aggregation.label;
|
|
10865
|
-
if (this.pendingBackgroundResponseTerminals.get(key) === pending) {
|
|
10866
|
-
this.pendingBackgroundResponseTerminals.delete(key);
|
|
10867
|
-
}
|
|
10868
|
-
this.detachedPendingBackgroundResponseTerminals.delete(pending);
|
|
10869
|
-
this.detachedBackgroundResponseAggregations.add(aggregation);
|
|
10870
|
-
await this.flushBackgroundResponseAggregation(key, aggregation);
|
|
10871
|
-
}
|
|
10872
|
-
scheduleBackgroundResponseAggregationFlush(key, aggregation) {
|
|
10873
|
-
if (aggregation.timeoutTimer || aggregation.delivery)
|
|
10874
|
-
return;
|
|
10875
|
-
aggregation.timeoutTimer = setTimeout(() => {
|
|
10876
|
-
aggregation.timeoutTimer = void 0;
|
|
10877
|
-
void this.flushBackgroundResponseAggregation(key, aggregation);
|
|
10878
|
-
}, BACKGROUND_RESPONSE_AGGREGATION_TIMEOUT_MS);
|
|
10879
|
-
aggregation.timeoutTimer.unref?.();
|
|
10880
|
-
}
|
|
10881
|
-
formatBackgroundResponseAggregation(delivery) {
|
|
10882
|
-
const icon = delivery.status === "completed" ? "\u2705" : delivery.status === "failed" ? "\u274C" : "\u23F9\uFE0F";
|
|
10883
|
-
const label = this.formatBackgroundAgentLabel(delivery.label);
|
|
10884
|
-
const header = `## ${icon} Agent \xB7 ${label}${delivery.partial ? "\uFF08\u90E8\u5206\uFF09" : ""}`;
|
|
10885
|
-
if (delivery.parts.length === 0)
|
|
10886
|
-
return header;
|
|
10887
|
-
return `${header}
|
|
10888
|
-
|
|
10889
|
-
${delivery.parts.join("\n\n")}`;
|
|
10285
|
+
return super.dispatchBackgroundResponse(sessionId, this.formatBackgroundAgentResponse(text, context?.label), context);
|
|
10890
10286
|
}
|
|
10891
10287
|
formatBackgroundAgentResponse(text, label) {
|
|
10892
10288
|
return `## \u{1F916} Agent \xB7 ${this.formatBackgroundAgentLabel(label)}
|
|
@@ -10897,22 +10293,11 @@ ${text}`;
|
|
|
10897
10293
|
const normalized = label?.replace(new RegExp("\\p{Cc}+", "gu"), " ").replace(/\s+/g, " ").trim();
|
|
10898
10294
|
return escapeDingTalkMarkdown(normalized || "\u540E\u53F0\u4EFB\u52A1");
|
|
10899
10295
|
}
|
|
10900
|
-
|
|
10901
|
-
* Body-identical to the base implementation — this override exists only to
|
|
10902
|
-
* widen the signature, which the base seam does not declare. The background
|
|
10903
|
-
* aggregation flush passes `prepared` so the body it already projected isn't
|
|
10904
|
-
* projected a second time (that would re-upload its files), and
|
|
10905
|
-
* `failOnHttpError` so a failed send throws instead of being swallowed,
|
|
10906
|
-
* letting the flush capture the delivery plan for the next retry.
|
|
10907
|
-
*/
|
|
10908
|
-
async deliverBackgroundReply(chatId, text, sessionId, sourceLabel, prepared = false, failOnHttpError = false) {
|
|
10909
|
-
await this.sendResponseMessage(chatId, text, sessionId, sourceLabel, prepared, failOnHttpError);
|
|
10910
|
-
}
|
|
10911
|
-
async sendResponseMessage(chatId, text, sessionId, sourceLabel, prepared = false, failOnHttpError = false) {
|
|
10296
|
+
async sendResponseMessage(chatId, text, sessionId, sourceLabel, prepared = false) {
|
|
10912
10297
|
const atUserId = this.atSender ? this.sessionMentionTargets.get(sessionId) : void 0;
|
|
10913
10298
|
if (atUserId)
|
|
10914
10299
|
this.sessionMentionTargets.delete(sessionId);
|
|
10915
|
-
await this.sendReply(chatId, text, atUserId, sourceLabel ?? this.getResponseSourceLabel(sessionId), prepared
|
|
10300
|
+
await this.sendReply(chatId, text, atUserId, sourceLabel ?? this.getResponseSourceLabel(sessionId), prepared);
|
|
10916
10301
|
}
|
|
10917
10302
|
async sendFallbackReply(chatId, text, sessionId, sourceLabel) {
|
|
10918
10303
|
const atUserId = this.atSender ? this.sessionMentionTargets.get(sessionId) : void 0;
|
|
@@ -11363,12 +10748,6 @@ var plugin = {
|
|
|
11363
10748
|
required: true,
|
|
11364
10749
|
envResolvable: true
|
|
11365
10750
|
},
|
|
11366
|
-
{
|
|
11367
|
-
key: "aggregateBackgroundAgentResponses",
|
|
11368
|
-
label: "Aggregate Background Agent Responses",
|
|
11369
|
-
kind: "boolean",
|
|
11370
|
-
description: "Buffer each background Agent turn and send one labeled result instead of labeled segments"
|
|
11371
|
-
},
|
|
11372
10751
|
{
|
|
11373
10752
|
key: "interactiveCards",
|
|
11374
10753
|
label: "Interactive Cards",
|