@qwen-code/qwen-code 0.23.3-nightly.20260910.c46cb85cf2 → 0.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/goal-draft/SKILL.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +20 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +6 -5
- package/bundled/qc-helper/docs/features/goals.md +2 -2
- package/bundled/qc-helper/docs/features/hooks.md +13 -14
- package/bundled/qc-helper/docs/qwen-serve.md +3 -7
- package/chunks/{MaxSizedBox-UZW24XUX.js → MaxSizedBox-D4LW7RZZ.js} +15 -15
- package/chunks/{StandaloneSessionPicker-IDK7NAZL.js → StandaloneSessionPicker-ALTTRWUP.js} +33 -33
- package/chunks/{acp-startup-profiler-ARO4II44.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
- package/chunks/{acp-subagent-executor-7TLJGISS.js → acp-subagent-executor-LEUN3N7N.js} +15 -15
- package/chunks/{acpAgent-YRCNNIIU.js → acpAgent-BBSW7XZG.js} +68 -258
- package/chunks/{agent-SGU5EE7U.js → agent-SQ6OY3QD.js} +9 -9
- package/chunks/{agent-headless-JVYBLNLT.js → agent-headless-RI2THRQ7.js} +9 -9
- package/chunks/{anthropicContentGenerator-SGIR5IKF.js → anthropicContentGenerator-JSKMKS6V.js} +2 -2
- package/chunks/{bridge-YF6NYRPZ.js → bridge-DAFMI72L.js} +17 -17
- package/chunks/{ca-MX3WCEEG.js → ca-KC2AISNS.js} +1 -1
- package/chunks/{channel-management-service-E4HTMU7T.js → channel-management-service-OWDXVL7R.js} +5 -5
- package/chunks/{channel-settings-store-FZ5VKHQD.js → channel-settings-store-4I6JONT7.js} +25 -25
- package/chunks/{channel-worker-group-X6WH4XWF.js → channel-worker-group-F2ZZMLNS.js} +6 -6
- package/chunks/{channel-worker-manager-SICFJDPJ.js → channel-worker-manager-2SZLJJSJ.js} +6 -6
- package/chunks/{channel-worker-supervisor-HSFAKML6.js → channel-worker-supervisor-ZFNWMG6D.js} +4 -4
- package/chunks/{chunk-NVIBH7WS.js → chunk-2ALXPGB4.js} +1 -1
- package/chunks/{chunk-UBEYS536.js → chunk-2PJRI3EH.js} +3 -3
- package/chunks/{chunk-GP47UR3M.js → chunk-2ZN3O5FT.js} +6 -6
- package/chunks/{chunk-BI3WSRQE.js → chunk-3BTSSIJO.js} +3 -3
- package/chunks/{chunk-PIGUW2U2.js → chunk-3KQBQ6FM.js} +2 -14
- package/chunks/{chunk-RJZTX2OF.js → chunk-3UXUOFO6.js} +6 -6
- package/chunks/{chunk-HL2DQG3Y.js → chunk-3XLK2QMY.js} +10 -10
- package/chunks/{chunk-L3DTX6U4.js → chunk-4ALNJDHL.js} +1 -3
- package/chunks/{chunk-KHIBLKNK.js → chunk-53GWJOLP.js} +1 -1
- package/chunks/{chunk-LIR7YS2O.js → chunk-5KI7ZDTB.js} +4 -4
- package/chunks/{chunk-ZT6EPPBY.js → chunk-6JACAGYH.js} +1 -1
- package/chunks/{chunk-DMX7RF6E.js → chunk-6W4HBUA2.js} +1 -1
- package/chunks/{chunk-CSHX5ZC4.js → chunk-76RGWKLS.js} +1 -1
- package/chunks/{chunk-J5PYQVD2.js → chunk-7APZIRH3.js} +2 -2
- package/chunks/{chunk-OOLSYRZ7.js → chunk-7BXXIQG4.js} +4 -4
- package/chunks/{chunk-WY4N6KS7.js → chunk-7ICHPMBQ.js} +3 -3
- package/chunks/{chunk-KZ2CU2LH.js → chunk-7Q2AXRDJ.js} +1 -1
- package/chunks/{chunk-C4NLHK7X.js → chunk-7QYWGTHB.js} +128 -33
- package/chunks/{chunk-7XM6KEVW.js → chunk-AC6KDLH3.js} +1 -1
- package/chunks/{chunk-GDWE23OR.js → chunk-ALMR3E6Q.js} +3 -3
- package/chunks/{chunk-B6BDT4RX.js → chunk-AXTFYDXT.js} +1 -1
- package/chunks/{chunk-6EDWSKN4.js → chunk-BV6Q5HMY.js} +2 -2
- package/chunks/{chunk-3VPFA6L2.js → chunk-BWAMMKIS.js} +2 -2
- package/chunks/{chunk-IFHJIEMN.js → chunk-BWQLXU37.js} +10 -10
- package/chunks/{chunk-F2RKL5I2.js → chunk-BZM5U74J.js} +3 -3
- package/chunks/{chunk-JOMCZWX7.js → chunk-CUEXOHQH.js} +15 -9
- package/chunks/{chunk-CAAMI77K.js → chunk-CXTPVBFA.js} +1 -1
- package/chunks/{chunk-ATH66AEU.js → chunk-DAWWT2ID.js} +16 -16
- package/chunks/{chunk-MXOALJIL.js → chunk-DT75RKNH.js} +1 -1
- package/chunks/{chunk-BHR6IN2X.js → chunk-DYFOSJHU.js} +30 -30
- package/chunks/{chunk-KVBNJ4K2.js → chunk-E7LB57MB.js} +2 -2
- package/chunks/{chunk-XDQUDARC.js → chunk-EDMXGXAK.js} +7 -4
- package/chunks/{chunk-KFGPNCCY.js → chunk-EVTNACMT.js} +4 -4
- package/chunks/{chunk-TP2DUOB6.js → chunk-F42YYSCK.js} +2 -2
- package/chunks/{chunk-UGS62IR2.js → chunk-GCDXVPFK.js} +3 -3
- package/chunks/{chunk-SAWPURIU.js → chunk-GOXQL4YH.js} +2 -2
- package/chunks/{chunk-SXEE6PND.js → chunk-GSILBZLN.js} +2 -2
- package/chunks/{chunk-BTWGOKHU.js → chunk-HBQ2NXOU.js} +2 -2
- package/chunks/{chunk-34ZYDM3F.js → chunk-HBU7EKY4.js} +1 -1
- package/chunks/{chunk-T4JVQR7Z.js → chunk-HGAELO7B.js} +2 -2
- package/chunks/{chunk-ZHECLGA6.js → chunk-HNLMYDQE.js} +4 -2
- package/chunks/{chunk-PMS4FVLY.js → chunk-IL5M5NYD.js} +5 -5
- package/chunks/{chunk-HZTXKVSV.js → chunk-IV7GDNKC.js} +1 -1
- package/chunks/{chunk-5FFAUU4T.js → chunk-J3TJH52D.js} +1 -1
- package/chunks/{chunk-JDEW3V5B.js → chunk-JYKWOREU.js} +1 -1
- package/chunks/{chunk-E5GQNSJY.js → chunk-KFZYGSJN.js} +3 -3
- package/chunks/{chunk-ZUQVZTWG.js → chunk-KOKPXIAN.js} +3 -3
- package/chunks/{chunk-Q6HXLBZF.js → chunk-LDVNJZGH.js} +6 -6
- package/chunks/{chunk-VHKOULAI.js → chunk-MF6E7FSA.js} +2 -2
- package/chunks/{chunk-F45SKYIQ.js → chunk-MHAADZOZ.js} +3 -3
- package/chunks/{chunk-72BGC7RT.js → chunk-MLQNSPRZ.js} +4 -4
- package/chunks/{chunk-L2KF7HUE.js → chunk-MSNHNAQZ.js} +1 -1
- package/chunks/{chunk-JV5YASQA.js → chunk-N7VWZDWW.js} +55 -155
- package/chunks/{chunk-Q2XLNLAV.js → chunk-NE624IVP.js} +1 -1
- package/chunks/{chunk-CGKEUUYG.js → chunk-NFYEQRLG.js} +1 -1
- package/chunks/{chunk-FGRDUDCI.js → chunk-NHCZJQE4.js} +5 -5
- package/chunks/{chunk-TWC3FHUI.js → chunk-NHJKAR6E.js} +3 -3
- package/chunks/{chunk-VTBPMLRO.js → chunk-NJQTG2G3.js} +9 -9
- package/chunks/{chunk-LEGNDA46.js → chunk-NLNQNBZ2.js} +1 -1
- package/chunks/{chunk-QPWZX4ZV.js → chunk-NMCDMLHL.js} +12 -12
- package/chunks/{chunk-WS7MOFK6.js → chunk-NMRCXKQ5.js} +3 -3
- package/chunks/{chunk-YIU5PEAT.js → chunk-NOAG7N22.js} +1 -1
- package/chunks/{chunk-C75BXMPM.js → chunk-NOO4QFXM.js} +3 -1
- package/chunks/{chunk-B2TGBZXY.js → chunk-NRXWJXJ4.js} +2 -2
- package/chunks/{chunk-J2RNOJRV.js → chunk-OLTN767L.js} +2 -2
- package/chunks/{chunk-AWMJRE5N.js → chunk-OX7IZ2G5.js} +4 -4
- package/chunks/{chunk-O3MKRN2I.js → chunk-POC3YMHG.js} +1 -1
- package/chunks/{chunk-YKK2XXHF.js → chunk-PSPAM24S.js} +0 -4
- package/chunks/{chunk-YS2ZJSOA.js → chunk-Q2LVVIKF.js} +11 -28
- package/chunks/{chunk-AW2SIT3B.js → chunk-Q5BD56BW.js} +2 -2
- package/chunks/{chunk-LAP7X6EC.js → chunk-QMUYLYT5.js} +1 -1
- package/chunks/{chunk-ONGZNOIP.js → chunk-R4Q2PEFV.js} +1 -1
- package/chunks/{chunk-FRVV5SSD.js → chunk-RLLRJJDR.js} +2 -2
- package/chunks/{chunk-6EOMQPTS.js → chunk-RWVD5RRY.js} +3 -3
- package/chunks/{chunk-FYZ5NZ3V.js → chunk-RZHU3K6M.js} +20 -2
- package/chunks/{chunk-CUK6F5UF.js → chunk-S6Q6Q4P2.js} +1 -1
- package/chunks/{chunk-SNZWDV67.js → chunk-SBRX4BDI.js} +1 -1
- package/chunks/{chunk-5ZJ3KK5J.js → chunk-SODMFNAR.js} +4 -4
- package/chunks/{chunk-VID4BW52.js → chunk-SSGAAWLY.js} +28 -28
- package/chunks/{chunk-LY2GK2PR.js → chunk-SYLECP23.js} +4 -4
- package/chunks/{chunk-BQOP3K76.js → chunk-TWUKBNWM.js} +1 -1
- package/chunks/{chunk-5FKZ7KFQ.js → chunk-UKZ45TJL.js} +3 -3
- package/chunks/{chunk-7XVQNDFB.js → chunk-V2P3DOQR.js} +1 -1
- package/chunks/{chunk-WXFK4MH7.js → chunk-VG3Q2NC4.js} +5 -25
- package/chunks/{chunk-74JEYK2C.js → chunk-VZUCTJ2P.js} +9 -9
- package/chunks/{chunk-VLZOU6UH.js → chunk-W5FIP7FC.js} +3 -3
- package/chunks/{chunk-6NONRGYX.js → chunk-X6K77VHC.js} +1 -1
- package/chunks/{chunk-FGV2QEAO.js → chunk-X7UJKOHZ.js} +6 -4
- package/chunks/{chunk-7ZVIGDZF.js → chunk-XBZTAGB7.js} +1 -1
- package/chunks/{chunk-6UK77U7D.js → chunk-XGYHNWL3.js} +3 -3
- package/chunks/{chunk-ZGQIIGNQ.js → chunk-YBUMTY7B.js} +1 -1
- package/chunks/{chunk-JEMDIKGQ.js → chunk-YQHLFCPU.js} +1 -1
- package/chunks/{chunk-7ZKDPTYO.js → chunk-Z3GF56ME.js} +2 -2
- package/chunks/{chunk-IOUBOANU.js → chunk-ZU47FBOC.js} +1 -1
- package/chunks/{config-utils-S5LFS4RN.js → config-utils-L6KLDYIV.js} +19 -19
- package/chunks/{contextCommand-XXKZMMSQ.js → contextCommand-UYEH7NIU.js} +17 -17
- package/chunks/{core-runtime-YGUA42AZ.js → core-runtime-NVHT3Z3V.js} +15 -15
- package/chunks/{create-sub-session-SEK6KCYR.js → create-sub-session-YWASE5VH.js} +15 -15
- package/chunks/{daemon-git-worktree-guard-3AWINPPX.js → daemon-git-worktree-guard-FOW4RQSK.js} +15 -15
- package/chunks/{daemon-status-provider-RTKHKUFJ.js → daemon-status-provider-O5KQZYMP.js} +21 -21
- package/chunks/{daemon-trust-policy-6YQOC7B6.js → daemon-trust-policy-3ATXEON7.js} +21 -21
- package/chunks/{daemon-trust-policy-monitor-EN5L23GS.js → daemon-trust-policy-monitor-7MCNDNEC.js} +21 -21
- package/chunks/{de-OOLZAU2U.js → de-UU2YTO37.js} +1 -1
- package/chunks/{deferred-core-runtime-JPLQRVZO.js → deferred-core-runtime-JK5IXL5K.js} +15 -15
- package/chunks/{dist-JCXKXRH6.js → dist-AHJYPSJL.js} +5 -2
- package/chunks/{dist-3BJVSJ7D.js → dist-AIKC5E5P.js} +630 -9
- package/chunks/{dist-HX2LG76F.js → dist-F2DVGTL3.js} +29 -9
- package/chunks/{dist-J7PDFK53.js → dist-GWNQVPZT.js} +27 -8
- package/chunks/{dist-65Q3TRLH.js → dist-H6G3K26N.js} +34 -14
- package/chunks/{dist-SBK33YLC.js → dist-KJGRVIGJ.js} +33 -2
- package/chunks/{dist-WMFHZG3R.js → dist-KLZ7XGEQ.js} +4 -1
- package/chunks/{dist-LHGMHIDK.js → dist-ZA52JXAS.js} +5 -1
- package/chunks/{dist-QPTIRE3U.js → dist-ZXTZTE54.js} +11 -3
- package/chunks/{edit-QXJZIWRQ.js → edit-SY35KYIE.js} +9 -9
- package/chunks/{en-7BZ2OZKH.js → en-CAJHTIQT.js} +1 -1
- package/chunks/{enterPlanMode-2ITCVQ5N.js → enterPlanMode-HXX6KQJR.js} +9 -9
- package/chunks/{environment-URPO5ORZ.js → environment-DKXHG4HB.js} +17 -17
- package/chunks/{errors-TDUYLEKI.js → errors-ADY7LQJJ.js} +17 -17
- package/chunks/{exitPlanMode-RA7KMUEW.js → exitPlanMode-HSK2CQI6.js} +9 -9
- package/chunks/{fast-path-Q2JYP64P.js → fast-path-U636VWN2.js} +3 -3
- package/chunks/{fast-path-settings-GTHZLVSS.js → fast-path-settings-V7MI7EZJ.js} +1 -1
- package/chunks/{fr-JJWM2HUS.js → fr-HKNWVXRJ.js} +1 -1
- package/chunks/{glob-VHSV4BKE.js → glob-GUGGTH5L.js} +9 -9
- package/chunks/{goal-tools-5FIE56CK.js → goal-tools-PXYRSQGX.js} +11 -15
- package/chunks/{handleAutoUpdate-7FZFLKNZ.js → handleAutoUpdate-5KHS4HIN.js} +18 -18
- package/chunks/{i18n-NTFQDWKR.js → i18n-KSGKMUPT.js} +16 -16
- package/chunks/{image-gen-TF3IQWSH.js → image-gen-OCCR2WWU.js} +4 -4
- package/chunks/{initializer-LB3T635H.js → initializer-YYT5XEZF.js} +21 -21
- package/chunks/{installationInfo-KRO433ZG.js → installationInfo-UNSBPYW2.js} +15 -15
- package/chunks/{ja-L67TXFDJ.js → ja-GJS5RZGU.js} +1 -1
- package/chunks/{list-NEP3WPZ7.js → list-YL6LDQKQ.js} +24 -24
- package/chunks/{llm-AZEJEIAD.js → llm-XGGLBGPH.js} +57 -57
- package/chunks/{llm-content-generator-KWXFHBR3.js → llm-content-generator-ZHQQT5W7.js} +3 -3
- package/chunks/{loadedSettingsAdapter-NZORJLSD.js → loadedSettingsAdapter-3DXLASK7.js} +21 -21
- package/chunks/{loggingContentGenerator-NGHVU6AK.js → loggingContentGenerator-V72OCCJO.js} +10 -10
- package/chunks/{managed-npm-update-3LHNBEAG.js → managed-npm-update-HV5LPZH2.js} +15 -15
- package/chunks/{mcp-4SWJKDX7.js → mcp-IYVSIW6O.js} +21 -21
- package/chunks/{monitor-V5EFBZC7.js → monitor-TLBNM4MV.js} +9 -9
- package/chunks/{nonInteractiveCli-5UFUBUAT.js → nonInteractiveCli-LSJSQ2W4.js} +57 -57
- package/chunks/{notebook-edit-ATV46KWD.js → notebook-edit-OSPOLZP6.js} +9 -9
- package/chunks/{openaiContentGenerator-BKTO5QJK.js → openaiContentGenerator-BE4S5TRD.js} +6 -6
- package/chunks/{pidfile-JAIOWPI3.js → pidfile-H32FEPWA.js} +15 -15
- package/chunks/{processUtils-TCQH3LVD.js → processUtils-SSLIPDEA.js} +2 -2
- package/chunks/{prompt-terminal-ledger-BYXHEUHX.js → prompt-terminal-ledger-I5SLL6UF.js} +16 -16
- package/chunks/{pt-77SBDL4B.js → pt-FXMYXEUV.js} +1 -1
- package/chunks/{qwenContentGenerator-K5TJK75P.js → qwenContentGenerator-TMQC623Z.js} +11 -11
- package/chunks/{qwenOAuth2-NOXRK323.js → qwenOAuth2-3ZRQHHTC.js} +4 -4
- package/chunks/{read-file-DL7GNZD5.js → read-file-T2QAIZE2.js} +2 -2
- package/chunks/{resumeHistoryUtils-OYKXZ4YO.js → resumeHistoryUtils-QLKDH5GY.js} +19 -19
- package/chunks/{ripGrep-EOUMIU4K.js → ripGrep-YGWL7KCV.js} +3 -3
- package/chunks/{ru-UYWHKWF2.js → ru-RMHURE5U.js} +1 -1
- package/chunks/{run-qwen-serve-PPTGWC5B.js → run-qwen-serve-26KZDECC.js} +89 -231
- package/chunks/{runtime-5RO22P2N.js → runtime-BMEIVDDG.js} +26 -26
- package/chunks/{scheduled-tasks-YGERFWLZ.js → scheduled-tasks-NCFPP6VQ.js} +19 -19
- package/chunks/{scheduler-S6WU6M3C.js → scheduler-47TVMUVN.js} +17 -17
- package/chunks/{serve-HT4WOCWS.js → serve-KL3G6LQQ.js} +22 -22
- package/chunks/{server-SWXVPRCS.js → server-LBPYXZ5G.js} +55 -66
- package/chunks/{session-6DSFUOMO.js → session-YG6742LO.js} +58 -58
- package/chunks/{session-attachments-root-SOZCTQWW.js → session-attachments-root-OUBQDYC4.js} +15 -15
- package/chunks/{session-pr-refresh-F7XUBQBH.js → session-pr-refresh-EKGMYNAW.js} +18 -18
- package/chunks/{settings-SWQH36PO.js → settings-DDNHJX2L.js} +20 -20
- package/chunks/{shell-XUQL6EYV.js → shell-KUCXWITU.js} +9 -9
- package/chunks/{skill-HNRDD54C.js → skill-JQLKPNWZ.js} +2 -2
- package/chunks/{skill-settings-JU72PCII.js → skill-settings-XERQCUXZ.js} +20 -20
- package/chunks/{spawnChannel-7ZVM3GBU.js → spawnChannel-GQ45QFGB.js} +15 -15
- package/chunks/{standalone-update-64JQY2LX.js → standalone-update-PRF3ILGZ.js} +17 -17
- package/chunks/{start-opentui-ui-RSLBXESU.js → start-opentui-ui-JDSOZE3N.js} +62 -67
- package/chunks/{startInteractiveUI-ZDPHD7XE.js → startInteractiveUI-RRW3JVHN.js} +69 -85
- package/chunks/{team-create-U52VYSNO.js → team-create-5DRLOLOE.js} +9 -9
- package/chunks/{team-plan-approval-IQ4ADQIK.js → team-plan-approval-MWSGAL5T.js} +9 -9
- package/chunks/{terminal-image-renderer-ZEMF7LB2.js → terminal-image-renderer-H7PD4FQW.js} +15 -15
- package/chunks/{theme-manager-DK2S2SOX.js → theme-manager-7AV73D6R.js} +15 -15
- package/chunks/{tool-search-6U4OQG7K.js → tool-search-UGYTBLUV.js} +2 -6
- package/chunks/{total-session-admission-BOARHBZU.js → total-session-admission-JIHSTJ5S.js} +17 -17
- package/chunks/{trustedFolders-GKQZXZSV.js → trustedFolders-5VCBXFOP.js} +16 -16
- package/chunks/{update-relaunch-GLACF7PX.js → update-relaunch-4LF3APCV.js} +5 -5
- package/chunks/{updateCheck-NLBSZB4Q.js → updateCheck-4T3WUE5F.js} +17 -17
- package/chunks/{useAutoAcceptIndicator-3X3BYU7H.js → useAutoAcceptIndicator-UMGB64Z6.js} +23 -23
- package/chunks/{validateNonInterActiveAuth-NE3JLOIR.js → validateNonInterActiveAuth-GFJ72U2C.js} +54 -54
- package/chunks/{version-6H5YAT4N.js → version-EAAZN4T2.js} +1 -1
- package/chunks/{web-fetch-RWSO7TTN.js → web-fetch-VRU3A2NI.js} +5 -5
- package/chunks/{web-search-DADI3LV5.js → web-search-NEGYQNDJ.js} +319 -376
- package/chunks/{workflow-LPGCZCIT.js → workflow-UHPFALVZ.js} +10 -10
- package/chunks/{workspace-providers-status-QBRBEFTO.js → workspace-providers-status-AEYISSU2.js} +23 -23
- package/chunks/{workspace-registration-store-WUKTMJPW.js → workspace-registration-store-A7RGKW62.js} +1 -1
- package/chunks/{workspace-registry-CJV7KVGF.js → workspace-registry-C2NGE6SD.js} +17 -17
- package/chunks/{workspace-runtime-coordinator-7LYMFMFF.js → workspace-runtime-coordinator-QKMZ24YF.js} +18 -20
- package/chunks/{workspace-service-HWXZSA4J.js → workspace-service-RQTTAGGC.js} +24 -24
- package/chunks/{workspace-skills-status-D6QXUWCC.js → workspace-skills-status-5HWZU3HX.js} +21 -21
- package/chunks/{workspace-trust-reconciler-VZX7G7CZ.js → workspace-trust-reconciler-KFWATZUU.js} +23 -23
- package/chunks/{write-file-KKHV26YV.js → write-file-DPVB2SBQ.js} +10 -10
- package/chunks/{zh-J2GLI64H.js → zh-S5V3Z5CR.js} +1 -1
- package/chunks/{zh-TW-TBAICUJQ.js → zh-TW-2K2WRFPY.js} +1 -1
- package/chunks/{zoom-image-OG7X7KAA.js → zoom-image-S7AWLAPC.js} +2 -2
- package/cli.js +13 -13
- package/export-transcript-document.js +1 -1
- package/locales/ca.js +2 -2
- package/locales/de.js +2 -2
- package/locales/en.js +2 -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 +2 -2
- package/locales/zh.js +2 -2
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-NT0lTLRG.js → abnfDiagram-VCTEODGH-nU24rpIE.js} +1 -1
- package/web-shell/assets/{arc-DDqnIMMx.js → arc-D1hTu8QI.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-DfYghE3W.js → architectureDiagram-5GKGNRK7-B_fgkKe7.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DlqJIx5c.js → blockDiagram-NRAW4CY4-C3pddUNg.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-CinqLGU4.js → c4Diagram-UCG6FXSJ-kEFoC1ei.js} +1 -1
- package/web-shell/assets/channel-Blod4z1X.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CsjJX5M7.js → chunk-2Q5K7J3B-DbT9wS7j.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-CaVb2tdH.js → chunk-5VM5RSS4-CNbULt6O.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-CRyErlzW.js → chunk-F27PBJKO-CbQRy4Tb.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-7I79DZCf.js → chunk-G27WJ6UU-CVbXTxYk.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-Dz4cac5F.js → chunk-JWPE2WC7-D89c_BXy.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-Ls24Derb.js → chunk-LCL6LL3I-B7-I_9KB.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-JzYe4qx7.js → chunk-POPQ4Y6H-DcLQFzS4.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-BxDwesA-.js → chunk-SVP7TREG-DyBb2Axj.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CW4hjgWc.js → chunk-XXDRQBXY-BIA0eb5B.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DxikE9iF.js → cose-bilkent-JH36ORCC-Db2FYN85.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-CvVsIkVN.js → cynefin-OW5HDTMX-i4GwmBVy.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CDHkk3wq.js → cynefinDiagram-5FMLGOSQ-LENf_IUy.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-BgLdkVLT.js → dagre-3AP2YEHR-CF9XVrD9.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-DP43cGhe.js → diagram-S7CK7UJ4-DD5PJfSm.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-BWrZYhoT.js → diagram-UQ7AKVKN-CjD_sBMj.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-B80wjH_n.js → diagram-VSXAHHWV-U5WwMqyA.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DPpKmDsY.js → diagram-VX7I27RA-BujpHJJf.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-kaEBNbNU.js → diagram-Z3DM3KII-3ZLtKEXo.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-1-qbEZvk.js → ebnfDiagram-PWID7BFC-BGpiquRm.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CrK2gMkV.js → erDiagram-SSCWMZ5O-D0besu_U.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-Dic2xofW.js → flowDiagram-A5DVABFB-9DwDuIyr.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DJko8vT7.js → ganttDiagram-EL5Y4UJY-CNlsAeNr.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DxsQ-bHT.js → gitGraphDiagram-WWUBYQGX-C_pPFiTR.js} +1 -1
- package/web-shell/assets/{index-t7VBrUeD.js → index-BYWs4JWq.js} +1 -1
- package/web-shell/assets/{index-DY8CxdBr.js → index-D3YS6KuJ.js} +152 -152
- package/web-shell/assets/{infoDiagram-RXCK75RN-DcRUJbNi.js → infoDiagram-RXCK75RN-Bpai64Ll.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CUPw-2_e.js → ishikawaDiagram-5VMMS53U-ktpJFq4r.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-yOHhZxkW.js → journeyDiagram-EYS64GPL-iz_DKgFX.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CFUGBbqz.js → kanban-definition-3QL26DDD-m_gG00Yt.js} +1 -1
- package/web-shell/assets/{layout-BoilNfBU.js → layout-qEvKgnvU.js} +1 -1
- package/web-shell/assets/{linear-DOuHaPrl.js → linear-C6lklGdq.js} +1 -1
- package/web-shell/assets/{mermaid.core-1G1fXWda.js → mermaid.core-DSCYB_2P.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-B8BhkrOX.js → mindmap-definition-FBJOCRG2-DRQbT8w-.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-CipC5K1D.js → pegDiagram-XKGWAZYB-BhD0q0i6.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-CHBDFDUJ.js → pieDiagram-E7YTZNPT-BvIGQCSd.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-_iiBkoZO.js → quadrantDiagram-AXDQQJYC-BDQtfpU-.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-Cx1peHDi.js → railroadDiagram-O6MQD6OU-E1g2KIFK.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CBRiPbdQ.js → requirementDiagram-EFPCY7ZU-CuerYJOe.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-TT6GcHaZ.js → sankeyDiagram-P5KCCOFB-CqWyCZGA.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CWP42PNb.js → sequenceDiagram-WJ2MYXX4-B-YWb8x4.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Bp94roEG.js → sizeCapture-X5ZJPWSS-BB7YY4Tl.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-0ftrzTAy.js → stateDiagram-HBIQ2CUA-C8LDpNHS.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-D-FsenYJ.js → swimlanes-XN3QIQJK-D94vOoxZ.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-Ctvrj28y.js → timeline-definition-24CTP7MA-C9C8uEYm.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-5DZncjOt.js → vennDiagram-4TSXK5OY-CYzMHbVW.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-jZjYwPY7.js → wardleyDiagram-VM6X3IG4-G9nhtLES.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-Ci6Q2C2_.js → xychartDiagram-S5SC5T6Z-ruD2Wjhg.js} +1 -1
- package/web-shell/index.html +1 -1
- package/web-shell/assets/channel-BHGoSkEv.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-E47Xnn15.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-E47Xnn15.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-PgAST0dK.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BcWcB5bj.js +0 -8
|
@@ -4,8 +4,9 @@ import {
|
|
|
4
4
|
PollingChannelBase,
|
|
5
5
|
isTerminalTaskLifecycleType,
|
|
6
6
|
sanitizeLogText,
|
|
7
|
+
stripMessagePrefix,
|
|
7
8
|
truncateCodePoints
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7QYWGTHB.js";
|
|
9
10
|
import "./chunk-IJOS26LH.js";
|
|
10
11
|
import "./chunk-CQ35AJ4Z.js";
|
|
11
12
|
import {
|
|
@@ -1376,6 +1377,7 @@ var DwsChannel = class extends PollingChannelBase {
|
|
|
1376
1377
|
userInstructions;
|
|
1377
1378
|
client;
|
|
1378
1379
|
imStates;
|
|
1380
|
+
dwsMessagePrefix;
|
|
1379
1381
|
startReactionName;
|
|
1380
1382
|
endReactionName;
|
|
1381
1383
|
watchTodos;
|
|
@@ -1407,6 +1409,7 @@ var DwsChannel = class extends PollingChannelBase {
|
|
|
1407
1409
|
notificationWatermarkPulledBack = false;
|
|
1408
1410
|
constructor(name, config, bridge, options, client) {
|
|
1409
1411
|
const profile = configuredString(config.profile, "profile");
|
|
1412
|
+
const messagePrefix = configuredString(config.messagePrefix, "messagePrefix");
|
|
1410
1413
|
const startReactionName = configuredString(config.startReaction, "startReaction") ?? DEFAULT_START_REACTION;
|
|
1411
1414
|
const endReactionName = configuredString(config.endReaction, "endReaction");
|
|
1412
1415
|
const watchTodos = configuredBoolean(config.watchTodos, "watchTodos");
|
|
@@ -1437,6 +1440,7 @@ var DwsChannel = class extends PollingChannelBase {
|
|
|
1437
1440
|
}));
|
|
1438
1441
|
this.startReactionName = startReactionName;
|
|
1439
1442
|
this.endReactionName = endReactionName;
|
|
1443
|
+
this.dwsMessagePrefix = messagePrefix;
|
|
1440
1444
|
this.watchTodos = watchTodos;
|
|
1441
1445
|
}
|
|
1442
1446
|
createInitialCursor() {
|
|
@@ -2149,6 +2153,7 @@ Ask the bot operator to approve you with:
|
|
|
2149
2153
|
text: `Process this DingTalk todo:
|
|
2150
2154
|
${truncateCodePoints(title, MAX_COMMENT_CHARS)}`,
|
|
2151
2155
|
displayText: title,
|
|
2156
|
+
bypassMessagePrefix: true,
|
|
2152
2157
|
isGroup: true,
|
|
2153
2158
|
isMentioned: true,
|
|
2154
2159
|
isReplyToBot: false,
|
|
@@ -2321,9 +2326,12 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
|
|
|
2321
2326
|
}
|
|
2322
2327
|
if (this.shouldFilterImMessage(source, message)) {
|
|
2323
2328
|
if (source.kind === "group" || source.kind === "group-all") {
|
|
2324
|
-
const
|
|
2325
|
-
if (
|
|
2326
|
-
this.
|
|
2329
|
+
const text = stripMessagePrefix(message.content.trim(), this.dwsMessagePrefix);
|
|
2330
|
+
if (!this.dwsMessagePrefix || text) {
|
|
2331
|
+
const envelope = this.createImEnvelope(source, message, text);
|
|
2332
|
+
if (this.groupGate.check(envelope, { createPairingRequest: false }).reason === "mention_required" && !this.queuedMessages.has(key) && !this.cursor.processedMessages.includes(key) && !this.hasPendingMessage(key)) {
|
|
2333
|
+
this.recordPendingGroupHistory(envelope);
|
|
2334
|
+
}
|
|
2327
2335
|
}
|
|
2328
2336
|
}
|
|
2329
2337
|
this.removePersistedPendingMessageForSource(key, source);
|
|
@@ -2496,7 +2504,14 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
|
|
|
2496
2504
|
}
|
|
2497
2505
|
}
|
|
2498
2506
|
async processImMessage(source, message, key) {
|
|
2499
|
-
const
|
|
2507
|
+
const rawText = source.kind === "at" && this.requiresMention(message.conversationId) ? message.content.replace(/^\s*@[^\s\p{Cf}]+\s+(?=\/[a-zA-Z0-9_:-]+(?:\s|$))(?![\s\S]*(?<![A-Za-z0-9_])@)/u, "").trim() : message.content.trim();
|
|
2508
|
+
const providerDocumentNotification = source.kind === "direct" ? parseDocumentMentionNotification(rawText) : void 0;
|
|
2509
|
+
const text = providerDocumentNotification ? rawText : stripMessagePrefix(rawText, this.dwsMessagePrefix);
|
|
2510
|
+
if (this.dwsMessagePrefix && !text) {
|
|
2511
|
+
this.markProcessedMessage(key);
|
|
2512
|
+
this.saveCursor();
|
|
2513
|
+
return;
|
|
2514
|
+
}
|
|
2500
2515
|
const target = source.kind === "direct" ? { kind: "direct", openDingTalkId: message.senderId } : { kind: "group", conversationId: message.conversationId };
|
|
2501
2516
|
this.rememberImTarget(message.conversationId, target);
|
|
2502
2517
|
if (!text) {
|
|
@@ -2504,7 +2519,7 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
|
|
|
2504
2519
|
this.saveCursor();
|
|
2505
2520
|
return;
|
|
2506
2521
|
}
|
|
2507
|
-
const documentNotification = source.kind === "direct" ? parseDocumentMentionNotification(text) : void 0;
|
|
2522
|
+
const documentNotification = providerDocumentNotification ?? (source.kind === "direct" ? parseDocumentMentionNotification(text) : void 0);
|
|
2508
2523
|
if (documentNotification) {
|
|
2509
2524
|
await this.processDocumentNotification(message, key, documentNotification);
|
|
2510
2525
|
return;
|
|
@@ -2540,6 +2555,7 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
|
|
|
2540
2555
|
chatName: message.conversationId,
|
|
2541
2556
|
messageId: message.messageId,
|
|
2542
2557
|
text,
|
|
2558
|
+
bypassMessagePrefix: true,
|
|
2543
2559
|
...message.referencedText ? { referencedText: message.referencedText } : {},
|
|
2544
2560
|
isGroup: source.kind !== "direct",
|
|
2545
2561
|
isMentioned: source.kind === "at",
|
|
@@ -2716,6 +2732,7 @@ ${truncateCodePoints(JSON.stringify(detail.data), MAX_TODO_CONTEXT_CHARS)}`
|
|
|
2716
2732
|
threadId: notification.commentKey,
|
|
2717
2733
|
messageId: message.messageId,
|
|
2718
2734
|
text: truncateCodePoints(notification.request, MAX_COMMENT_CHARS),
|
|
2735
|
+
bypassMessagePrefix: true,
|
|
2719
2736
|
isGroup: true,
|
|
2720
2737
|
isMentioned: true,
|
|
2721
2738
|
isReplyToBot: false,
|
|
@@ -2778,9 +2795,12 @@ ${context}` : "Document Markdown was unavailable; answer from the comment only."
|
|
|
2778
2795
|
continue;
|
|
2779
2796
|
if (this.shouldFilterImMessage(pending.source, pending.message)) {
|
|
2780
2797
|
if (pending.source.kind === "group" || pending.source.kind === "group-all") {
|
|
2781
|
-
const
|
|
2782
|
-
if (this.
|
|
2783
|
-
this.
|
|
2798
|
+
const text = stripMessagePrefix(pending.message.content.trim(), this.dwsMessagePrefix);
|
|
2799
|
+
if (!this.dwsMessagePrefix || text) {
|
|
2800
|
+
const envelope = this.createImEnvelope(pending.source, pending.message, text);
|
|
2801
|
+
if (this.groupGate.check(envelope, { createPairingRequest: false }).reason === "mention_required") {
|
|
2802
|
+
this.recordPendingGroupHistory(envelope);
|
|
2803
|
+
}
|
|
2784
2804
|
}
|
|
2785
2805
|
}
|
|
2786
2806
|
this.removePersistedPendingMessageForSource(key, pending.source);
|
|
@@ -7,8 +7,9 @@ import {
|
|
|
7
7
|
sanitizeLogText,
|
|
8
8
|
sanitizePromptText,
|
|
9
9
|
sanitizeSenderName,
|
|
10
|
+
stripMessagePrefix,
|
|
10
11
|
truncateCodePoints
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7QYWGTHB.js";
|
|
12
13
|
import "./chunk-IJOS26LH.js";
|
|
13
14
|
import {
|
|
14
15
|
require_main
|
|
@@ -2059,8 +2060,11 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2059
2060
|
if (!cleanText)
|
|
2060
2061
|
return null;
|
|
2061
2062
|
const effectiveIsAtBot = forceAtMention ?? isAtBot;
|
|
2062
|
-
const
|
|
2063
|
-
const
|
|
2063
|
+
const configuredPrefix = this.configuredMessagePrefix();
|
|
2064
|
+
const prefixSourceText = this.qqConfig.allowMention !== false ? safeDisplayText : safeCleanText;
|
|
2065
|
+
const strippedCommandText = configuredPrefix ? stripMessagePrefix(prefixSourceText, configuredPrefix) : safeCleanText;
|
|
2066
|
+
const rawCommandText = (strippedCommandText ?? safeCleanText).replace(/<@[^>]{1,64}>/g, "").trim();
|
|
2067
|
+
const isSlash = effectiveIsAtBot && strippedCommandText !== void 0 && rawCommandText.startsWith("/");
|
|
2064
2068
|
const commandText = sanitizePromptText(rawCommandText);
|
|
2065
2069
|
const groupBotOpenId = this.botOpenIdByGroup.get(chatId);
|
|
2066
2070
|
const openIdSuffix = this.qqConfig.allowMention !== false && groupBotOpenId ? ` [botOpenId:${groupBotOpenId}]` : "";
|
|
@@ -2080,8 +2084,11 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2080
2084
|
}
|
|
2081
2085
|
const senderTag = showSenderOpenId ? `(${senderOpenId})` : senderIdentity ? `(${truncateCodePoints(sanitizeSenderName(senderIdentity), 8)}\u2026)` : "";
|
|
2082
2086
|
const head = `[atMention=${effectiveIsAtBot}]${openIdSuffix} [${safeName}${senderTag}]: `;
|
|
2083
|
-
const
|
|
2084
|
-
const
|
|
2087
|
+
const payloadText = isSlash ? commandText : sanitizePromptText(strippedCommandText ?? prefixSourceText);
|
|
2088
|
+
const messagePrefixText = configuredPrefix && strippedCommandText !== void 0 ? `${configuredPrefix} ${payloadText}` : configuredPrefix ? prefixSourceText : void 0;
|
|
2089
|
+
const displayText = sanitizePromptText(isSlash && messagePrefixText ? messagePrefixText : prefixSourceText);
|
|
2090
|
+
const text = isSlash ? sanitizePromptText(messagePrefixText ?? safeCleanText) : `${head}${displayText}${suffixFromBotOpenId}`;
|
|
2091
|
+
const displayTextOffset = isSlash ? void 0 : head.length;
|
|
2085
2092
|
return {
|
|
2086
2093
|
isAtBot: effectiveIsAtBot,
|
|
2087
2094
|
isSlash,
|
|
@@ -2090,6 +2097,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2090
2097
|
commandText,
|
|
2091
2098
|
text,
|
|
2092
2099
|
displayText,
|
|
2100
|
+
...displayTextOffset !== void 0 ? { displayTextOffset } : {},
|
|
2101
|
+
...messagePrefixText !== void 0 ? { messagePrefixText } : {},
|
|
2093
2102
|
senderName
|
|
2094
2103
|
};
|
|
2095
2104
|
}
|
|
@@ -2125,8 +2134,13 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2125
2134
|
const safeName = sanitizeSenderName(senderName);
|
|
2126
2135
|
const cleanText = event.content.trim();
|
|
2127
2136
|
const safeContent = cleanText.replace(/\[atMention=[^\]]*]/g, "").replace(/\[botOpenId:[^\]]*]/g, "").replace(/\[bot]/g, "");
|
|
2128
|
-
const
|
|
2137
|
+
const configuredPrefix = this.configuredMessagePrefix();
|
|
2138
|
+
const strippedCommandText = configuredPrefix ? stripMessagePrefix(safeContent, configuredPrefix) : safeContent;
|
|
2139
|
+
const rawCommandText = strippedCommandText ?? safeContent;
|
|
2140
|
+
const isSlash = rawCommandText.startsWith("/");
|
|
2141
|
+
const commandText = sanitizePromptText(rawCommandText);
|
|
2129
2142
|
const displayText = sanitizePromptText(safeContent);
|
|
2143
|
+
const messagePrefixText = configuredPrefix && strippedCommandText !== void 0 ? `${configuredPrefix} ${commandText}` : configuredPrefix ? safeContent : void 0;
|
|
2130
2144
|
const text = isSlash ? displayText : `[atMention=true] [${safeName}]: ${displayText}`;
|
|
2131
2145
|
this.handleInbound({
|
|
2132
2146
|
channelName: this.name,
|
|
@@ -2135,6 +2149,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2135
2149
|
chatId,
|
|
2136
2150
|
text,
|
|
2137
2151
|
displayText,
|
|
2152
|
+
...messagePrefixText !== void 0 ? { messagePrefixText } : {},
|
|
2138
2153
|
messageId: event.id,
|
|
2139
2154
|
isGroup: false,
|
|
2140
2155
|
isMentioned: true,
|
|
@@ -2174,7 +2189,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2174
2189
|
});
|
|
2175
2190
|
if (!result)
|
|
2176
2191
|
return;
|
|
2177
|
-
const { isSlash, text, displayText, commandText, senderName, safeName } = result;
|
|
2192
|
+
const { isSlash, text, displayText, displayTextOffset, commandText, senderName, safeName } = result;
|
|
2178
2193
|
if (this.isDuplicate(event.id))
|
|
2179
2194
|
return;
|
|
2180
2195
|
if (isSlash) {
|
|
@@ -2199,6 +2214,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2199
2214
|
chatId,
|
|
2200
2215
|
text,
|
|
2201
2216
|
displayText,
|
|
2217
|
+
...displayTextOffset !== void 0 ? { displayTextOffset } : {},
|
|
2218
|
+
...result.messagePrefixText !== void 0 ? { messagePrefixText: result.messagePrefixText } : {},
|
|
2202
2219
|
messageId: event.id,
|
|
2203
2220
|
isGroup: true,
|
|
2204
2221
|
isMentioned: true,
|
|
@@ -2236,7 +2253,7 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2236
2253
|
const result = this.prepareGroupMessage(event, chatId);
|
|
2237
2254
|
if (!result)
|
|
2238
2255
|
return;
|
|
2239
|
-
const { isSlash, text, displayText, commandText, senderName, isAtBot, safeName } = result;
|
|
2256
|
+
const { isSlash, text, displayText, displayTextOffset, commandText, senderName, isAtBot, safeName } = result;
|
|
2240
2257
|
if (!isAtBot) {
|
|
2241
2258
|
if (this.groupActiveMsgEnabled.get(chatId) === false) {
|
|
2242
2259
|
process.stderr.write(`[QQ:${this.name}] handleGroupAll blocked: active messages disabled for ${sanitizeLogText(chatId, 64)}
|
|
@@ -2302,6 +2319,8 @@ var QQChannel = class _QQChannel extends ChannelBase {
|
|
|
2302
2319
|
chatId,
|
|
2303
2320
|
text,
|
|
2304
2321
|
displayText,
|
|
2322
|
+
...displayTextOffset !== void 0 ? { displayTextOffset } : {},
|
|
2323
|
+
...result.messagePrefixText !== void 0 ? { messagePrefixText: result.messagePrefixText } : {},
|
|
2305
2324
|
senderId,
|
|
2306
2325
|
senderName,
|
|
2307
2326
|
messageId: event.id,
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
ChannelBase,
|
|
5
|
-
isTerminalTaskLifecycleType
|
|
6
|
-
|
|
5
|
+
isTerminalTaskLifecycleType,
|
|
6
|
+
startsWithMessagePrefix
|
|
7
|
+
} from "./chunk-7QYWGTHB.js";
|
|
7
8
|
import "./chunk-IJOS26LH.js";
|
|
8
9
|
import "./chunk-CQ35AJ4Z.js";
|
|
9
10
|
import {
|
|
@@ -9724,14 +9725,14 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9724
9725
|
this.bot.on("message:text", async (ctx) => {
|
|
9725
9726
|
const msg = ctx.message;
|
|
9726
9727
|
const text = msg.text;
|
|
9727
|
-
const envelope = this.buildEnvelope(msg, text, msg.entities);
|
|
9728
|
+
const envelope = this.buildEnvelope(msg, text, msg.entities, true);
|
|
9728
9729
|
this.handleInbound(envelope).catch((err) => {
|
|
9729
9730
|
this.reportInboundError(envelope, err, () => ctx.reply("Sorry, something went wrong processing your message."));
|
|
9730
9731
|
});
|
|
9731
9732
|
});
|
|
9732
9733
|
this.bot.on("message:photo", async (ctx) => {
|
|
9733
9734
|
const msg = ctx.message;
|
|
9734
|
-
const envelope = this.buildEnvelope(msg, msg.caption || "(image)", msg.caption_entities, !msg.caption);
|
|
9735
|
+
const envelope = this.buildEnvelope(msg, msg.caption || "(image)", msg.caption_entities, false, !msg.caption);
|
|
9735
9736
|
const photo = msg.photo[msg.photo.length - 1];
|
|
9736
9737
|
if (!photo)
|
|
9737
9738
|
return;
|
|
@@ -9761,7 +9762,7 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9761
9762
|
const msg = ctx.message;
|
|
9762
9763
|
const doc = msg.document;
|
|
9763
9764
|
const fileName = doc.file_name || `file_${Date.now()}`;
|
|
9764
|
-
const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities, !msg.caption);
|
|
9765
|
+
const envelope = this.buildEnvelope(msg, msg.caption || `(file: ${fileName})`, msg.caption_entities, false, !msg.caption);
|
|
9765
9766
|
this.prepareThenHandleInbound(envelope, async () => {
|
|
9766
9767
|
try {
|
|
9767
9768
|
const file = await ctx.api.getFile(doc.file_id);
|
|
@@ -9774,7 +9775,9 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9774
9775
|
mkdirSync(dir, { recursive: true });
|
|
9775
9776
|
const filePath = join(dir, basename(fileName) || `file_${Date.now()}`);
|
|
9776
9777
|
writeFileSync(filePath, buf);
|
|
9777
|
-
|
|
9778
|
+
if (!this.configuredMessagePrefix() || !msg.caption) {
|
|
9779
|
+
envelope.text = msg.caption || "";
|
|
9780
|
+
}
|
|
9778
9781
|
envelope.attachments = [
|
|
9779
9782
|
{
|
|
9780
9783
|
type: "file",
|
|
@@ -9786,7 +9789,7 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9786
9789
|
} catch (err) {
|
|
9787
9790
|
process.stderr.write(`[Telegram:${this.name}] Failed to download document: ${err instanceof Error ? err.message : err}
|
|
9788
9791
|
`);
|
|
9789
|
-
const promptText = msg.caption || "";
|
|
9792
|
+
const promptText = this.configuredMessagePrefix() && msg.caption ? envelope.text : msg.caption || "";
|
|
9790
9793
|
envelope.text = `${promptText}
|
|
9791
9794
|
|
|
9792
9795
|
(User sent a file "${fileName}" but download failed)`;
|
|
@@ -9803,6 +9806,7 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9803
9806
|
msg,
|
|
9804
9807
|
msg.caption || "(voice message)",
|
|
9805
9808
|
msg.caption_entities,
|
|
9809
|
+
false,
|
|
9806
9810
|
// Standard Telegram clients cannot caption a voice message, so
|
|
9807
9811
|
// this is effectively always synthetic.
|
|
9808
9812
|
!msg.caption
|
|
@@ -9819,7 +9823,9 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9819
9823
|
mkdirSync(dir, { recursive: true });
|
|
9820
9824
|
const filePath = join(dir, fileName);
|
|
9821
9825
|
writeFileSync(filePath, buf);
|
|
9822
|
-
|
|
9826
|
+
if (!this.configuredMessagePrefix() || !msg.caption) {
|
|
9827
|
+
envelope.text = msg.caption || "";
|
|
9828
|
+
}
|
|
9823
9829
|
envelope.attachments = [
|
|
9824
9830
|
{
|
|
9825
9831
|
type: "audio",
|
|
@@ -9831,7 +9837,7 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9831
9837
|
} catch (err) {
|
|
9832
9838
|
process.stderr.write(`[Telegram:${this.name}] Failed to download voice message: ${err instanceof Error ? err.message : err}
|
|
9833
9839
|
`);
|
|
9834
|
-
const promptText = msg.caption || "";
|
|
9840
|
+
const promptText = this.configuredMessagePrefix() && msg.caption ? envelope.text : msg.caption || "";
|
|
9835
9841
|
envelope.text = `${promptText}
|
|
9836
9842
|
|
|
9837
9843
|
(User sent a voice message but download failed)`;
|
|
@@ -9859,13 +9865,14 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9859
9865
|
}
|
|
9860
9866
|
}
|
|
9861
9867
|
startMessage() {
|
|
9868
|
+
const prefix = this.configuredMessagePrefix();
|
|
9862
9869
|
return [
|
|
9863
9870
|
"Qwen Code Telegram bot",
|
|
9864
9871
|
"",
|
|
9865
|
-
"Send any message to chat with Qwen Code.",
|
|
9866
|
-
|
|
9867
|
-
|
|
9868
|
-
|
|
9872
|
+
prefix ? `Start each message with ${prefix} to chat with Qwen Code.` : "Send any message to chat with Qwen Code.",
|
|
9873
|
+
`Use ${this.prefixedCommand("/new")} to start a fresh conversation.`,
|
|
9874
|
+
`Use ${this.prefixedCommand("/cancel")} to stop a running request.`,
|
|
9875
|
+
`Use ${this.prefixedCommand("/help")} to see available commands.`
|
|
9869
9876
|
].join("\n");
|
|
9870
9877
|
}
|
|
9871
9878
|
/** Per-chat typing interval — repeats every 4s since Telegram expires it after 5s. */
|
|
@@ -9977,7 +9984,7 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9977
9984
|
this.activeTypingSessions.clear();
|
|
9978
9985
|
this.bot.stop();
|
|
9979
9986
|
}
|
|
9980
|
-
buildEnvelope(msg, text, entities, syntheticText = false) {
|
|
9987
|
+
buildEnvelope(msg, text, entities, allowRegisteredCommandBypass = false, syntheticText = false) {
|
|
9981
9988
|
const isGroup = msg.chat.type === "group" || msg.chat.type === "supergroup";
|
|
9982
9989
|
const isMentioned = entities?.some((e) => {
|
|
9983
9990
|
if (!this.botUsername)
|
|
@@ -9999,6 +10006,18 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
9999
10006
|
cleanText = text.replace(new RegExp(`@${this.botUsername}`, "gi"), "").trim();
|
|
10000
10007
|
}
|
|
10001
10008
|
const referencedText = msg.reply_to_message?.text || void 0;
|
|
10009
|
+
const configuredPrefix = this.configuredMessagePrefix();
|
|
10010
|
+
const bypassMessagePrefix = allowRegisteredCommandBypass && !(configuredPrefix && startsWithMessagePrefix(text.trim(), configuredPrefix)) && (entities?.some((entity) => {
|
|
10011
|
+
if (entity.type !== "bot_command" || entity.offset !== 0)
|
|
10012
|
+
return false;
|
|
10013
|
+
const value = text.slice(0, entity.length).toLowerCase();
|
|
10014
|
+
const command = value.slice(1).split("@", 1)[0];
|
|
10015
|
+
const atIndex = value.indexOf("@", 1);
|
|
10016
|
+
if (atIndex !== -1 && value.slice(atIndex + 1) !== this.botUsername.toLowerCase()) {
|
|
10017
|
+
return false;
|
|
10018
|
+
}
|
|
10019
|
+
return TELEGRAM_BOT_COMMANDS.some((registered) => registered.command === command);
|
|
10020
|
+
}) ?? false);
|
|
10002
10021
|
return {
|
|
10003
10022
|
channelName: this.name,
|
|
10004
10023
|
senderId: String(msg.from.id),
|
|
@@ -10008,6 +10027,7 @@ var TelegramChannel = class extends ChannelBase {
|
|
|
10008
10027
|
threadId: typeof msg.message_thread_id === "number" ? String(msg.message_thread_id) : void 0,
|
|
10009
10028
|
text: cleanText,
|
|
10010
10029
|
...syntheticText ? { syntheticText: true } : {},
|
|
10030
|
+
...bypassMessagePrefix ? { bypassMessagePrefix: true } : {},
|
|
10011
10031
|
isGroup,
|
|
10012
10032
|
isMentioned,
|
|
10013
10033
|
isReplyToBot,
|
|
@@ -15,8 +15,9 @@ import {
|
|
|
15
15
|
ChannelProactiveDeliveryError,
|
|
16
16
|
isChannelProactiveDeliveryError,
|
|
17
17
|
isTerminalTaskLifecycleType,
|
|
18
|
-
sanitizeSenderName
|
|
19
|
-
|
|
18
|
+
sanitizeSenderName,
|
|
19
|
+
startsWithMessagePrefix
|
|
20
|
+
} from "./chunk-7QYWGTHB.js";
|
|
20
21
|
import "./chunk-IJOS26LH.js";
|
|
21
22
|
import "./chunk-CQ35AJ4Z.js";
|
|
22
23
|
import {
|
|
@@ -102064,6 +102065,25 @@ var FEISHU_STATUS_STRINGS = [
|
|
|
102064
102065
|
];
|
|
102065
102066
|
var escapeRegExp = /* @__PURE__ */ __name((value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "escapeRegExp");
|
|
102066
102067
|
var escapeFeishuMarkdown = /* @__PURE__ */ __name((value) => value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replace(/([\\`*_[\]{}()#+.!|>~-])/gu, "\\$1"), "escapeFeishuMarkdown");
|
|
102068
|
+
function stripLeadingMentionNames(text, names, prefix) {
|
|
102069
|
+
let rest = text.trimStart();
|
|
102070
|
+
const tokens = [
|
|
102071
|
+
...new Set(names.filter(Boolean).map((name) => `@${name}`))
|
|
102072
|
+
].sort((a, b) => b.length - a.length);
|
|
102073
|
+
let consumed = true;
|
|
102074
|
+
while (consumed && !(prefix && startsWithMessagePrefix(rest, prefix))) {
|
|
102075
|
+
consumed = false;
|
|
102076
|
+
for (const token of tokens) {
|
|
102077
|
+
if (!rest.startsWith(token))
|
|
102078
|
+
continue;
|
|
102079
|
+
rest = rest.slice(token.length).trimStart();
|
|
102080
|
+
consumed = true;
|
|
102081
|
+
break;
|
|
102082
|
+
}
|
|
102083
|
+
}
|
|
102084
|
+
return rest;
|
|
102085
|
+
}
|
|
102086
|
+
__name(stripLeadingMentionNames, "stripLeadingMentionNames");
|
|
102067
102087
|
var FEISHU_STATUS_LABELS = `(?:${FEISHU_STATUS_STRINGS.map(escapeRegExp).join("|")})`;
|
|
102068
102088
|
var FEISHU_STATUS_BLOCK_RE = new RegExp(`(?:^|\\n)---\\n\\*${FEISHU_STATUS_LABELS}\\*(?=\\n|$)`, "g");
|
|
102069
102089
|
var FEISHU_SOURCE_LABEL_LINE_RE = /^\\\[(?:[A-Za-z0-9](?:[A-Za-z0-9]|\\[_-]){0,31}|[^\r\n]+ · [A-Za-z0-9](?:[A-Za-z0-9]|\\[_-]){0,31})\\\](?:\n\n?)?/u;
|
|
@@ -103730,6 +103750,7 @@ ${contentPart}` : prefix : contentPart;
|
|
|
103730
103750
|
const content = this.extractContent(msg.message_type, msg.content);
|
|
103731
103751
|
let isMentioned = false;
|
|
103732
103752
|
let cleanText = content.text;
|
|
103753
|
+
const mentionNames = [...content.mentionNames ?? []];
|
|
103733
103754
|
if (msg.mentions && msg.mentions.length > 0) {
|
|
103734
103755
|
const mentionReplacements = /* @__PURE__ */ new Map();
|
|
103735
103756
|
for (const mention of msg.mentions) {
|
|
@@ -103739,6 +103760,8 @@ ${contentPart}` : prefix : contentPart;
|
|
|
103739
103760
|
isMentioned = true;
|
|
103740
103761
|
}
|
|
103741
103762
|
mentionReplacements.set(mention.key, isBotMention ? "" : `@${mention.name}`);
|
|
103763
|
+
if (!isBotMention && mention.name)
|
|
103764
|
+
mentionNames.push(mention.name);
|
|
103742
103765
|
}
|
|
103743
103766
|
const mentionKeys = [...mentionReplacements.keys()].sort((a, b) => b.length - a.length);
|
|
103744
103767
|
if (mentionKeys.length > 0) {
|
|
@@ -103751,6 +103774,7 @@ ${contentPart}` : prefix : contentPart;
|
|
|
103751
103774
|
this.msgToSenderId.delete(msgId);
|
|
103752
103775
|
return;
|
|
103753
103776
|
}
|
|
103777
|
+
const messagePrefixText = stripLeadingMentionNames(cleanText, mentionNames, this.configuredMessagePrefix());
|
|
103754
103778
|
const envelope = {
|
|
103755
103779
|
channelName: this.name,
|
|
103756
103780
|
senderId,
|
|
@@ -103758,7 +103782,11 @@ ${contentPart}` : prefix : contentPart;
|
|
|
103758
103782
|
chatId,
|
|
103759
103783
|
...chatName ? { chatName } : {},
|
|
103760
103784
|
text: cleanText,
|
|
103785
|
+
// A media message carries only an adapter-synthesized placeholder,
|
|
103786
|
+
// which no user action can prefix -- gating it would drop every
|
|
103787
|
+
// image, file, audio and video with the prefix configured.
|
|
103761
103788
|
...!content.userAuthoredText ? { syntheticText: true } : {},
|
|
103789
|
+
messagePrefixText: messagePrefixText.trim(),
|
|
103762
103790
|
messageId: msgId,
|
|
103763
103791
|
threadId: msg.root_id || void 0,
|
|
103764
103792
|
isGroup,
|
|
@@ -103898,6 +103926,7 @@ ${envelope.text}`;
|
|
|
103898
103926
|
};
|
|
103899
103927
|
case "post": {
|
|
103900
103928
|
const lines = [];
|
|
103929
|
+
const mentionNames = [];
|
|
103901
103930
|
const post = content;
|
|
103902
103931
|
const firstVal = Object.values(post)[0];
|
|
103903
103932
|
const langPost = typeof firstVal === "object" && firstVal !== null ? firstVal : post;
|
|
@@ -103916,6 +103945,7 @@ ${envelope.text}`;
|
|
|
103916
103945
|
const userName = node["user_name"];
|
|
103917
103946
|
if (typeof userName === "string" && userName) {
|
|
103918
103947
|
parts.push(`@${userName}`);
|
|
103948
|
+
mentionNames.push(userName);
|
|
103919
103949
|
}
|
|
103920
103950
|
}
|
|
103921
103951
|
}
|
|
@@ -103924,6 +103954,7 @@ ${envelope.text}`;
|
|
|
103924
103954
|
}
|
|
103925
103955
|
return {
|
|
103926
103956
|
text: lines.join("\n").trim() || "",
|
|
103957
|
+
mentionNames,
|
|
103927
103958
|
userAuthoredText: true
|
|
103928
103959
|
};
|
|
103929
103960
|
}
|
|
@@ -10,7 +10,7 @@ import "./chunk-OSHQMOBS.js";
|
|
|
10
10
|
import {
|
|
11
11
|
ChannelBase,
|
|
12
12
|
sanitizeLogText
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7QYWGTHB.js";
|
|
14
14
|
import "./chunk-IJOS26LH.js";
|
|
15
15
|
import "./chunk-CQ35AJ4Z.js";
|
|
16
16
|
import "./chunk-DMTGGOSA.js";
|
|
@@ -1876,6 +1876,9 @@ var WeComChannel = class extends ChannelBase {
|
|
|
1876
1876
|
let processStarted = false;
|
|
1877
1877
|
try {
|
|
1878
1878
|
if (!await this.preflightInbound(envelope)) {
|
|
1879
|
+
if (rawMessageId && this.wasMessagePrefixRejected(envelope)) {
|
|
1880
|
+
this.seenMessages.set(rawMessageId, Date.now());
|
|
1881
|
+
}
|
|
1879
1882
|
process.stderr.write(`[WeCom:${this.name}] dropping message ${logMessageId}: preflight rejected.
|
|
1880
1883
|
`);
|
|
1881
1884
|
return;
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import "./chunk-OSHQMOBS.js";
|
|
7
7
|
import {
|
|
8
8
|
PollingChannelBase
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7QYWGTHB.js";
|
|
10
10
|
import "./chunk-IJOS26LH.js";
|
|
11
11
|
import {
|
|
12
12
|
external_exports
|
|
@@ -13381,6 +13381,10 @@ var GitlabChannel = class extends PollingChannelBase {
|
|
|
13381
13381
|
if (!text)
|
|
13382
13382
|
return;
|
|
13383
13383
|
const envelope = this.buildEnvelope(text, todo.author.username, chatId, threadId, messageId, this.buildMetadata(template, todo, target, chatId, todo.author.username, String(todo.id), description), true);
|
|
13384
|
+
const isMentionTrigger = todo.action_name === "mentioned" || todo.action_name === "directly_addressed";
|
|
13385
|
+
if (!isNoteMention && !isMentionTrigger) {
|
|
13386
|
+
envelope.bypassMessagePrefix = true;
|
|
13387
|
+
}
|
|
13384
13388
|
if (isNoteMention) {
|
|
13385
13389
|
this.reactions.set(messageId, {
|
|
13386
13390
|
target,
|
|
@@ -7,8 +7,9 @@ import {
|
|
|
7
7
|
sanitizeDisplayText,
|
|
8
8
|
sanitizeLogText,
|
|
9
9
|
sanitizePromptText,
|
|
10
|
+
stripMessagePrefix,
|
|
10
11
|
truncateCodePoints
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7QYWGTHB.js";
|
|
12
13
|
import "./chunk-IJOS26LH.js";
|
|
13
14
|
import "./chunk-CQ35AJ4Z.js";
|
|
14
15
|
import {
|
|
@@ -3919,7 +3920,7 @@ function isInboundEnvelope(value) {
|
|
|
3919
3920
|
if (value === null || typeof value !== "object")
|
|
3920
3921
|
return false;
|
|
3921
3922
|
const envelope = value;
|
|
3922
|
-
return typeof envelope.channelName === "string" && typeof envelope.senderId === "string" && typeof envelope.senderName === "string" && typeof envelope.chatId === "string" && typeof envelope.text === "string" && typeof envelope.isGroup === "boolean" && typeof envelope.isMentioned === "boolean" && typeof envelope.isReplyToBot === "boolean" && (envelope.chatName === void 0 || typeof envelope.chatName === "string") && (envelope.threadId === void 0 || typeof envelope.threadId === "string") && (envelope.messageId === void 0 || typeof envelope.messageId === "string") && (envelope.referencedText === void 0 || typeof envelope.referencedText === "string") && isOptionalStringArray(envelope.mentionedMemberIds) && (envelope.imageBase64 === void 0 || typeof envelope.imageBase64 === "string") && (envelope.imageMimeType === void 0 || typeof envelope.imageMimeType === "string") && (envelope.attachments === void 0 || Array.isArray(envelope.attachments)) && (envelope.metadata === void 0 || typeof envelope.metadata === "string") && (envelope.alreadyPrefixed === void 0 || envelope.alreadyPrefixed === true);
|
|
3923
|
+
return typeof envelope.channelName === "string" && typeof envelope.senderId === "string" && typeof envelope.senderName === "string" && typeof envelope.chatId === "string" && typeof envelope.text === "string" && typeof envelope.isGroup === "boolean" && typeof envelope.isMentioned === "boolean" && typeof envelope.isReplyToBot === "boolean" && (envelope.chatName === void 0 || typeof envelope.chatName === "string") && (envelope.threadId === void 0 || typeof envelope.threadId === "string") && (envelope.messageId === void 0 || typeof envelope.messageId === "string") && (envelope.referencedText === void 0 || typeof envelope.referencedText === "string") && isOptionalStringArray(envelope.mentionedMemberIds) && (envelope.imageBase64 === void 0 || typeof envelope.imageBase64 === "string") && (envelope.imageMimeType === void 0 || typeof envelope.imageMimeType === "string") && (envelope.attachments === void 0 || Array.isArray(envelope.attachments)) && (envelope.metadata === void 0 || typeof envelope.metadata === "string") && (envelope.bypassMessagePrefix === void 0 || envelope.bypassMessagePrefix === true) && (envelope.alreadyPrefixed === void 0 || envelope.alreadyPrefixed === true);
|
|
3923
3924
|
}
|
|
3924
3925
|
__name(isInboundEnvelope, "isInboundEnvelope");
|
|
3925
3926
|
function isInboundTaskRecord(value) {
|
|
@@ -4623,6 +4624,7 @@ var GithubChannel = class extends PollingChannelBase {
|
|
|
4623
4624
|
messageId: `event-${trigger.id}`,
|
|
4624
4625
|
text: reason === "review_requested" ? "Return a formal review summary with verified actionable findings, or a concise no-blocker result." : "Triage this issue and respond with the next action.",
|
|
4625
4626
|
displayText: reason === "review_requested" ? `Review requested: ${displayTitle}` : `Issue assigned: ${displayTitle}`,
|
|
4627
|
+
bypassMessagePrefix: true,
|
|
4626
4628
|
isGroup: true,
|
|
4627
4629
|
isMentioned: true,
|
|
4628
4630
|
isReplyToBot: false,
|
|
@@ -4650,7 +4652,12 @@ ${details}`
|
|
|
4650
4652
|
for (const comment of newComments) {
|
|
4651
4653
|
this.recordDispatchedComment(comment.node_id || String(comment.id));
|
|
4652
4654
|
}
|
|
4653
|
-
const
|
|
4655
|
+
const messagePrefix = this.configuredMessagePrefix();
|
|
4656
|
+
const comments = newComments.flatMap((comment) => {
|
|
4657
|
+
const rawBody = comment.body || "";
|
|
4658
|
+
const body = messagePrefix ? stripMessagePrefix(this.botUsername ? stripBotMention(rawBody, this.botUsername) : rawBody, messagePrefix) : rawBody.trim();
|
|
4659
|
+
return body === void 0 ? [] : [{ comment, body }];
|
|
4660
|
+
}).slice(-MAX_AGGREGATE_COMMENTS);
|
|
4654
4661
|
if (comments.length === 0)
|
|
4655
4662
|
return;
|
|
4656
4663
|
const first = comments[0].comment;
|
|
@@ -4665,6 +4672,7 @@ ${details}`
|
|
|
4665
4672
|
text: `Review these new comments and output exactly ${NO_REPLY_SENTINEL} if no public reply is needed:
|
|
4666
4673
|
${summary}`,
|
|
4667
4674
|
displayText: summary,
|
|
4675
|
+
bypassMessagePrefix: true,
|
|
4668
4676
|
isGroup: true,
|
|
4669
4677
|
isMentioned: true,
|
|
4670
4678
|
isReplyToBot: false,
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
detectLineEnding,
|
|
12
12
|
getDiffStat,
|
|
13
13
|
needsUtf8Bom
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-N7VWZDWW.js";
|
|
15
15
|
import "./chunk-GOFAQQZA.js";
|
|
16
16
|
import "./chunk-TWPJO254.js";
|
|
17
17
|
import "./chunk-CQ35AJ4Z.js";
|
|
@@ -32,7 +32,7 @@ import "./chunk-2SZH22YO.js";
|
|
|
32
32
|
import "./chunk-DTNV6UZY.js";
|
|
33
33
|
import "./chunk-QJNDUTOL.js";
|
|
34
34
|
import "./chunk-JXNIF2O5.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-NFYEQRLG.js";
|
|
36
36
|
import "./chunk-ELRMZTPF.js";
|
|
37
37
|
import "./chunk-CHEIIBT3.js";
|
|
38
38
|
import "./chunk-PLLIWEM3.js";
|
|
@@ -44,7 +44,7 @@ import "./chunk-MLXTMF7H.js";
|
|
|
44
44
|
import "./chunk-LILGKQ4B.js";
|
|
45
45
|
import "./chunk-3CZ2BQV6.js";
|
|
46
46
|
import "./chunk-SAH4BD2J.js";
|
|
47
|
-
import "./chunk-
|
|
47
|
+
import "./chunk-CXTPVBFA.js";
|
|
48
48
|
import "./chunk-U7O65WKL.js";
|
|
49
49
|
import "./chunk-S6LOFUVP.js";
|
|
50
50
|
import "./chunk-FN3JNDRU.js";
|
|
@@ -54,14 +54,14 @@ import "./chunk-IZ2U57NY.js";
|
|
|
54
54
|
import "./chunk-NUQ4GK5I.js";
|
|
55
55
|
import "./chunk-K2OJUPOE.js";
|
|
56
56
|
import "./chunk-NAVJD2PQ.js";
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-YBUMTY7B.js";
|
|
58
|
+
import "./chunk-HNLMYDQE.js";
|
|
59
59
|
import "./chunk-QHMLYMMS.js";
|
|
60
60
|
import "./chunk-CFKIH3D3.js";
|
|
61
61
|
import "./chunk-JL6APGBX.js";
|
|
62
62
|
import "./chunk-DJ2GSRLV.js";
|
|
63
|
-
import "./chunk-
|
|
64
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-4ALNJDHL.js";
|
|
64
|
+
import "./chunk-NOO4QFXM.js";
|
|
65
65
|
import "./chunk-KFFCDLKV.js";
|
|
66
66
|
import "./chunk-ZW2EUO2A.js";
|
|
67
67
|
import {
|
|
@@ -69,7 +69,7 @@ import {
|
|
|
69
69
|
ReadFileTool,
|
|
70
70
|
getLanguageFromFilePath,
|
|
71
71
|
logFileOperation
|
|
72
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-HBU7EKY4.js";
|
|
73
73
|
import "./chunk-5ETULJLP.js";
|
|
74
74
|
import "./chunk-ZHKTKHMO.js";
|
|
75
75
|
import "./chunk-VGC4I5JJ.js";
|
|
@@ -86,7 +86,7 @@ import "./chunk-WZAD4ZNJ.js";
|
|
|
86
86
|
import "./chunk-3FPYT6QC.js";
|
|
87
87
|
import "./chunk-FPGTNKCP.js";
|
|
88
88
|
import "./chunk-TIGXX4PA.js";
|
|
89
|
-
import "./chunk-
|
|
89
|
+
import "./chunk-3UXUOFO6.js";
|
|
90
90
|
import "./chunk-XFFRI3WM.js";
|
|
91
91
|
import "./chunk-ERU3SDXT.js";
|
|
92
92
|
import "./chunk-EWJTAP3Y.js";
|
|
@@ -903,7 +903,7 @@ var en_default = {
|
|
|
903
903
|
'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).': 'Input to command is JSON with fields "inputs" (tool call arguments) and "response" (tool call response).',
|
|
904
904
|
"Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.": "Input to command is JSON with tool_name, tool_input, tool_use_id, error, error_type, is_interrupt, and is_timeout.",
|
|
905
905
|
"Input to command is JSON with notification message and type.": "Input to command is JSON with notification message and type.",
|
|
906
|
-
'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the
|
|
906
|
+
'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the supported interactive TUI text projection).': 'Input to command is JSON with "prompt" (the current model-bound prompt) and optional "submitted_prompt" (the supported interactive TUI text projection).',
|
|
907
907
|
"Input to command is JSON with command_name, command_args, and expanded prompt text.": "Input to command is JSON with command_name, command_args, and expanded prompt text.",
|
|
908
908
|
"Input to command is JSON with session start source.": "Input to command is JSON with session start source.",
|
|
909
909
|
"Input to command is JSON with session end reason.": "Input to command is JSON with session end reason.",
|