@qwen-code/qwen-code 0.21.12-preview.3 → 0.21.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +10 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
- package/bundled/qc-helper/docs/features/channels/plugins.md +11 -11
- package/bundled/qc-helper/docs/features/code-review.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +99 -34
- package/bundled/review/SKILL.md +55 -36
- package/chunks/{MaxSizedBox-EIK4BHBQ.js → MaxSizedBox-ZSJJ2D5S.js} +46 -46
- package/chunks/{StandaloneSessionPicker-NHVJDRYD.js → StandaloneSessionPicker-WHUHQXSA.js} +65 -66
- package/chunks/{acp-startup-profiler-JMJBZDVO.js → acp-startup-profiler-SVPUHLXV.js} +2 -2
- package/chunks/{acpAgent-37UDZP64.js → acpAgent-7JOAESF5.js} +960 -539
- package/chunks/{agent-FAWBG7PP.js → agent-E6V3VXQR.js} +42 -42
- package/chunks/{agent-headless-SHK4PCCH.js → agent-headless-OEQNFOMH.js} +42 -42
- package/chunks/{anthropicContentGenerator-4JSC3ZFL.js → anthropicContentGenerator-YDT4EOKO.js} +25 -25
- package/chunks/{artifact-tool-FRMBPDPB.js → artifact-tool-4GCQQDZI.js} +5 -5
- package/chunks/{askUserQuestion-7G3LI3IZ.js → askUserQuestion-HZJJLR3Z.js} +2 -2
- package/chunks/{bridge-DEAYNDCI.js → bridge-NPBV53UA.js} +49 -49
- package/chunks/{build-RZS65IIX.js → build-GDBLPA24.js} +1 -1
- package/chunks/{channel-management-service-SKAN6NOB.js → channel-management-service-OADNGQM3.js} +4 -4
- package/chunks/{channel-settings-store-UIGYER6R.js → channel-settings-store-4ODLJ4X2.js} +49 -49
- package/chunks/{channel-worker-group-YPTB5ASD.js → channel-worker-group-IHBIHQ45.js} +7 -7
- package/chunks/{channel-worker-manager-4EHJSPRH.js → channel-worker-manager-GEHYJ5AE.js} +7 -7
- package/chunks/{channel-worker-supervisor-DZKHYFHV.js → channel-worker-supervisor-ZJIIWM4I.js} +5 -5
- package/chunks/{chunk-LHOG4E6Y.js → chunk-22C7BQ6D.js} +3 -3
- package/chunks/{chunk-DP3IHZGG.js → chunk-2AUM35J5.js} +59 -7
- package/chunks/{chunk-2SB4SLKC.js → chunk-2IIJTXYF.js} +1 -3
- package/chunks/{chunk-DYVCDQW2.js → chunk-2IVYL3IF.js} +1 -1
- package/chunks/{chunk-EYW54TBD.js → chunk-2ZWH53I4.js} +3 -3
- package/chunks/{chunk-5I5NMQCU.js → chunk-36XKGB7E.js} +3 -3
- package/chunks/{chunk-AQHNAA7E.js → chunk-3AEKDXKT.js} +1 -1
- package/chunks/{chunk-M6SXIXBV.js → chunk-3GDBZJD6.js} +6 -6
- package/chunks/{chunk-6XZERB6P.js → chunk-3GM5DLBI.js} +5 -5
- package/chunks/{chunk-4M2F7OG7.js → chunk-3LDGOQXZ.js} +6 -6
- package/chunks/{chunk-BKHCW2BI.js → chunk-3VUENPWF.js} +10 -0
- package/chunks/{chunk-ENEEQMGM.js → chunk-45NQKMYB.js} +1 -1
- package/chunks/{chunk-MDFUBQAQ.js → chunk-47BGDLJG.js} +119 -27
- package/chunks/{chunk-EFIMD5VA.js → chunk-4AOVQPJU.js} +1 -1
- package/chunks/{chunk-HB6QW4LM.js → chunk-4KM2SYK5.js} +19 -16
- package/chunks/{chunk-UNCIELQJ.js → chunk-4XA4QIUA.js} +1 -1
- package/chunks/{chunk-2J53A6MV.js → chunk-56HVDG3M.js} +4 -4
- package/chunks/{chunk-N3FJOQX7.js → chunk-5AFGJNY6.js} +4 -4
- package/chunks/{chunk-2AZMF6G5.js → chunk-5RUCD4ED.js} +2 -2
- package/chunks/{chunk-32VOOMEF.js → chunk-62X3CM7Q.js} +7 -7
- package/chunks/{chunk-6LYDH7VT.js → chunk-63FNZTWG.js} +2 -2
- package/chunks/{chunk-P64FPV3G.js → chunk-6JEIRPLN.js} +47 -4
- package/chunks/{chunk-O5G7IQGM.js → chunk-6P5EXEBL.js} +499 -112
- package/chunks/{chunk-3ZYX7AUR.js → chunk-6SPD4Z7F.js} +1 -1
- package/chunks/{chunk-YZJVVQD3.js → chunk-6ZKSO6K7.js} +7 -7
- package/chunks/{chunk-N5ULBHP3.js → chunk-7KJPO7YH.js} +2 -2
- package/chunks/{chunk-MZSJ43WV.js → chunk-7U5G6JXI.js} +24 -2
- package/chunks/{chunk-K7JW6V5O.js → chunk-A6NRNRKE.js} +1 -1
- package/chunks/{chunk-XLQS3VI6.js → chunk-AKBFSOC5.js} +2 -2
- package/chunks/{chunk-LT532KF4.js → chunk-AW27A43Y.js} +10 -12
- package/chunks/{chunk-M4NWDIFU.js → chunk-AZQ3DT76.js} +1 -1
- package/chunks/{chunk-4GLFFNP3.js → chunk-B4VN3VDH.js} +5 -5
- package/chunks/{chunk-YTYPRVIZ.js → chunk-BSR5AXZR.js} +4 -3
- package/chunks/{chunk-AJX4ITUG.js → chunk-BSSLSQEW.js} +3 -3
- package/chunks/{chunk-EYY4IBPV.js → chunk-CGM3E75C.js} +3 -3
- package/chunks/{chunk-V4MJ56RS.js → chunk-CIDQISGM.js} +5 -5
- package/chunks/{chunk-T6W4KACQ.js → chunk-CPFFU46D.js} +1 -1
- package/chunks/{chunk-TYCXSMZU.js → chunk-CQ6IPDQW.js} +3 -3
- package/chunks/{chunk-KIFRFCCB.js → chunk-CZ4OWGQQ.js} +67 -22
- package/chunks/{chunk-N7NBMAMW.js → chunk-D2RNVVH6.js} +2 -2
- package/chunks/{chunk-KPVVWKF3.js → chunk-D7QGE3RT.js} +1 -1
- package/chunks/{chunk-TYGKUOEG.js → chunk-DAV4QFD5.js} +3 -11
- package/chunks/{chunk-QUESTNOP.js → chunk-DD6O3ZRD.js} +1 -1
- package/chunks/{chunk-NWPO6I7V.js → chunk-DEDESZDL.js} +1 -1
- package/chunks/{chunk-7LZ7DK4D.js → chunk-DFVXU5YM.js} +1 -1
- package/chunks/{chunk-TBVNYG5B.js → chunk-DG4IQ6JG.js} +5 -5
- package/chunks/{chunk-SAQHDAUJ.js → chunk-DPTMKFIH.js} +452 -57
- package/chunks/{chunk-M6HXP2SG.js → chunk-EBPLKY6U.js} +2192 -849
- package/chunks/{chunk-3XZYK76R.js → chunk-EJOGLSNJ.js} +2 -2
- package/chunks/{chunk-L7T742G2.js → chunk-FA5K6YI2.js} +47 -3
- package/chunks/{chunk-M2NMFAFR.js → chunk-FMIH5KMQ.js} +1 -1
- package/chunks/{chunk-HHGQGTJQ.js → chunk-FQDCO3CJ.js} +10 -1
- package/chunks/{chunk-V3LXMASR.js → chunk-FRHQQC2Z.js} +1 -1
- package/chunks/{chunk-732MOPEM.js → chunk-G6MUFRNI.js} +1 -1
- package/chunks/{chunk-KNXA5XXK.js → chunk-GXTMEATA.js} +15 -34
- package/chunks/{chunk-7SUQZ7QH.js → chunk-GZDWTBT3.js} +2 -2
- package/chunks/{chunk-IQFYO5BF.js → chunk-H7TMVHKE.js} +1 -1
- package/chunks/{chunk-KNQZXSLW.js → chunk-HG3UBTJ4.js} +23 -9
- package/chunks/{chunk-MPBRV3UU.js → chunk-HOSVOUDK.js} +71 -0
- package/chunks/{chunk-OPBATTFQ.js → chunk-HTYND72J.js} +1 -1
- package/chunks/{chunk-I4XSOFH2.js → chunk-I7BT2MME.js} +1 -1
- package/chunks/{chunk-LHY6HBRA.js → chunk-IH4Z54RJ.js} +7 -5
- package/chunks/{chunk-GYBDYWMV.js → chunk-IRSLAS4M.js} +2 -2
- package/chunks/{chunk-UZPWH6SP.js → chunk-IX4PWUDU.js} +401 -173
- package/chunks/{chunk-KT4OWAAZ.js → chunk-JRIVMPD2.js} +3 -3
- package/chunks/{chunk-Q7YDKOGY.js → chunk-JVEGA3MM.js} +1 -1
- package/chunks/{chunk-O5AZPHYZ.js → chunk-K34GJQOZ.js} +138 -16
- package/chunks/{chunk-L2GTEEEU.js → chunk-K5IDV3PC.js} +44 -1
- package/chunks/{chunk-5HBFERG5.js → chunk-KEC5FHLM.js} +3 -3
- package/chunks/{chunk-5PWLQ7SK.js → chunk-KLOMACIR.js} +15 -8
- package/chunks/{chunk-XWUQ4IH5.js → chunk-KWX56CHZ.js} +7 -7
- package/chunks/{chunk-VQZXRLEX.js → chunk-LCX5B364.js} +3 -3
- package/chunks/{chunk-CTQE2NB2.js → chunk-LSRI3ND3.js} +1 -1
- package/chunks/{chunk-5TXOGH4I.js → chunk-LUISTZXI.js} +3 -3
- package/chunks/{chunk-6AECVSVX.js → chunk-MAKIANMX.js} +3 -3
- package/chunks/{chunk-M4OYAR6J.js → chunk-MDNUCDKZ.js} +2 -2
- package/chunks/{chunk-CZXQ4UZA.js → chunk-MELQSJOU.js} +1 -1
- package/chunks/{chunk-6ZIIHBNV.js → chunk-MUNA4QDC.js} +4 -4
- package/chunks/{chunk-E5BWLU5J.js → chunk-N4SVADAV.js} +305 -143
- package/chunks/{chunk-URK542T4.js → chunk-NF5J2WFA.js} +15 -2
- package/chunks/{chunk-GJJQV4PY.js → chunk-NLFLYSS4.js} +1 -1
- package/chunks/{chunk-FRH4SSGX.js → chunk-NW2GIPG3.js} +2 -4
- package/chunks/{chunk-JS4Q5NG5.js → chunk-NX4A23LY.js} +3 -3
- package/chunks/{chunk-DEG7R6Z6.js → chunk-OK47XBYH.js} +79 -36
- package/chunks/{chunk-7D4KEFOT.js → chunk-OPVF453Q.js} +3 -3
- package/chunks/{chunk-J7DNMZFO.js → chunk-OR64CU46.js} +1 -1
- package/chunks/{chunk-DAX3G67A.js → chunk-OWGRUU7F.js} +1 -1
- package/chunks/{chunk-M2PY7CNK.js → chunk-OWXFBIB6.js} +2 -2
- package/chunks/{chunk-NELCY6JT.js → chunk-OYWVIXHT.js} +1 -3
- package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
- package/chunks/{chunk-QZ5G26ZE.js → chunk-PTSEETCO.js} +27 -27
- package/chunks/{chunk-IEP44U2R.js → chunk-PVXEJB66.js} +1 -1
- package/chunks/{chunk-NC4O6UE6.js → chunk-PZW46OTB.js} +2 -2
- package/chunks/{chunk-RQVVXDHS.js → chunk-Q4ZPYNIZ.js} +4 -4
- package/chunks/{chunk-QSWDGAIC.js → chunk-QILD6R27.js} +1 -1
- package/chunks/{chunk-GLWWPFTW.js → chunk-QLTATTPS.js} +1 -1
- package/chunks/{chunk-QTI7SRXI.js → chunk-QPBFRWCP.js} +3 -3
- package/chunks/{chunk-3TT6MZHJ.js → chunk-QSD4UH74.js} +842 -62
- package/chunks/{chunk-TEKFBSMY.js → chunk-RDVNSJQU.js} +3 -3
- package/chunks/{chunk-NPE3STIW.js → chunk-ROIJYS5K.js} +6 -6
- package/chunks/{chunk-JEMR2FTD.js → chunk-RQJA2YYO.js} +4 -4
- package/chunks/{chunk-YI6UGZF5.js → chunk-S6TCTH4Z.js} +13 -13
- package/chunks/{chunk-ZGWY4YUB.js → chunk-SYHXR6WM.js} +5 -5
- package/chunks/{chunk-O4BBDP2G.js → chunk-TB4YFWXG.js} +2 -2
- package/chunks/{chunk-ILVATFYJ.js → chunk-TDESMS7M.js} +22 -18
- package/chunks/{chunk-47FQVRCO.js → chunk-TMFWI4RC.js} +1 -1
- package/chunks/{chunk-T4FTABSW.js → chunk-TQDFSQQF.js} +1 -1
- package/chunks/{chunk-ZV4XVYL3.js → chunk-TTRH3RTQ.js} +4 -4
- package/chunks/{chunk-ZWPWQEF5.js → chunk-TXP5NGG3.js} +1 -1
- package/chunks/{chunk-E3GLDLYB.js → chunk-TYAMGABM.js} +0 -6
- package/chunks/{chunk-VWD7SNNN.js → chunk-UI5UGEF4.js} +1082 -926
- package/chunks/{chunk-MWZYNOCG.js → chunk-ULNWG62W.js} +3 -3
- package/chunks/{chunk-HGCQ5SE7.js → chunk-UXEO7E3V.js} +21 -0
- package/chunks/{chunk-U6PTKAOW.js → chunk-V6OBVAST.js} +1 -1
- package/chunks/{chunk-5UPJ774B.js → chunk-VIFA5VJD.js} +1 -1
- package/chunks/{chunk-Y66OOMKS.js → chunk-VLHR7F4E.js} +595 -58
- package/chunks/{chunk-EYS3GGM3.js → chunk-VPV7WBVT.js} +1 -1
- package/chunks/{chunk-XCGIMOLN.js → chunk-WCCLLK7X.js} +14 -1
- package/chunks/{chunk-JL3LC3CQ.js → chunk-WCEI6J56.js} +1 -1
- package/chunks/{chunk-JXK3WAP7.js → chunk-WDVDVWJ3.js} +6 -6
- package/chunks/{chunk-ZQSNP4TG.js → chunk-WI6GIM2M.js} +2 -2
- package/chunks/{chunk-TRYJ3BVE.js → chunk-WM3LUQLO.js} +7 -7
- package/chunks/{chunk-VJNBRRZG.js → chunk-WZMH7II3.js} +1 -1
- package/chunks/{chunk-HBZUU4AE.js → chunk-X5SLJOMF.js} +9 -7
- package/chunks/{chunk-FDWH6CBK.js → chunk-XAFIL4BD.js} +7 -7
- package/chunks/{chunk-P2UCMHDT.js → chunk-XDRXOSAD.js} +3 -3
- package/chunks/{chunk-RRQJPCRQ.js → chunk-XH3KAV2G.js} +2 -2
- package/chunks/{chunk-F6AOBFUN.js → chunk-YBHUXEC6.js} +1 -1
- package/chunks/{chunk-GZGDJ4E6.js → chunk-YBVVOSOH.js} +1 -1
- package/chunks/{chunk-EXG2R5UR.js → chunk-YCHNAKC5.js} +16 -14
- package/chunks/{chunk-XTH2OMDS.js → chunk-YIGGWOJE.js} +1 -1
- package/chunks/{chunk-IX7CFQGA.js → chunk-YILJKX2T.js} +3 -3
- package/chunks/{chunk-SSAOTDK7.js → chunk-YX2RDGAL.js} +1 -1
- package/chunks/{chunk-6S52N6PG.js → chunk-ZBB5EZZV.js} +2 -2
- package/chunks/{chunk-3GCU5O2E.js → chunk-ZLCT4C5A.js} +1 -1
- package/chunks/{chunk-4ETA3KRC.js → chunk-ZMY2P4L3.js} +3 -3
- package/chunks/{chunk-575MI5K3.js → chunk-ZQUY3ZJU.js} +4 -4
- package/chunks/{computer-use-S4JEU5P7.js → computer-use-F4URV4TU.js} +45 -45
- package/chunks/{config-utils-TXVKR27S.js → config-utils-Z3OW3IQG.js} +4 -4
- package/chunks/{contextCommand-2H5OH2HW.js → contextCommand-IGSS2U5J.js} +44 -44
- package/chunks/{core-runtime-IAQ4DD4Y.js → core-runtime-H5CZDN3A.js} +42 -42
- package/chunks/{create-sub-session-EKHKXJAA.js → create-sub-session-PA7MFTHK.js} +42 -42
- package/chunks/{create-sub-session-Y4WYDZGC.js → create-sub-session-XT6DLYOE.js} +2 -2
- package/chunks/{cron-create-ZOVA3CC2.js → cron-create-2JZ2TWTF.js} +4 -4
- package/chunks/{cron-delete-7Z3H4LJY.js → cron-delete-CTPD2P26.js} +4 -4
- package/chunks/{cron-list-UHGX3IQG.js → cron-list-V44KHAF6.js} +4 -4
- package/chunks/{daemon-PXIC4ZDK.js → daemon-GED37WOX.js} +30 -2
- package/chunks/daemon-git-worktree-guard-LZDCNJGV.js +2062 -0
- package/chunks/daemon-status-provider-QYM57Z44.js +102 -0
- package/chunks/{daemon-trust-policy-7JOBVFH3.js → daemon-trust-policy-TSRVEYZR.js} +48 -48
- package/chunks/{daemon-trust-policy-monitor-OU3NRHAR.js → daemon-trust-policy-monitor-2K2YETMT.js} +48 -48
- package/chunks/{deferred-core-runtime-SFT3KI2C.js → deferred-core-runtime-FKJ3OYE7.js} +44 -44
- package/chunks/{devtools-X6ROTKHE.js → devtools-4QFYJT6U.js} +1 -1
- package/chunks/{display-image-ZE3GZNIK.js → display-image-M2ELAVN4.js} +4 -4
- package/chunks/{dist-KTYDJNYM.js → dist-4ZPG4BY6.js} +2 -2
- package/chunks/{dist-NPS52B2V.js → dist-BROOP2EG.js} +1 -1
- package/chunks/{dist-BW2LDPV3.js → dist-IYYN3RUT.js} +2 -2
- package/chunks/{dist-EFJILGIS.js → dist-JWMKPWT5.js} +3 -1
- package/chunks/{dist-AVUYBK7L.js → dist-K7IQB53U.js} +1 -1
- package/chunks/{dist-PKSRQAR2.js → dist-MAQXAQ2Y.js} +1 -1
- package/chunks/{dist-BNWP6IZL.js → dist-WJ4BHIEW.js} +2 -2
- package/chunks/{dist-ZWDH5HLS.js → dist-YEPL4RAW.js} +1 -1
- package/chunks/{earlyInputCapture-27RPWE2D.js → earlyInputCapture-WJBSJQUF.js} +43 -43
- package/chunks/{edit-WXVZ7FHS.js → edit-X73LA4YO.js} +50 -49
- package/chunks/{enter-worktree-TYMVXFLA.js → enter-worktree-CLRQTIVN.js} +47 -47
- package/chunks/{enterPlanMode-FT4MRU5N.js → enterPlanMode-6BDYUQ5T.js} +48 -48
- package/chunks/{environment-Z6OMA34I.js → environment-WOAJXJDJ.js} +44 -44
- package/chunks/{errors-YMXK2GG3.js → errors-7OY5MXYY.js} +44 -44
- package/chunks/{exit-worktree-ODZUQLGJ.js → exit-worktree-TFFJXCRT.js} +47 -47
- package/chunks/{exitPlanMode-MBPAPBBV.js → exitPlanMode-WDURQMIU.js} +42 -42
- package/chunks/{external-tool-guard-provider-5HTGOPGU.js → external-tool-guard-provider-TE4DRY36.js} +1 -1
- package/chunks/{fast-path-ZU5T6XSN.js → fast-path-QQLGC37M.js} +5 -5
- package/chunks/{gemini-OZK6AIMC.js → gemini-VHE62IJL.js} +110 -105
- package/chunks/{geminiContentGenerator-MC6ZKWZG.js → geminiContentGenerator-VSHIEGAQ.js} +11 -11
- package/chunks/{glob-KJ4A4ZOM.js → glob-VMEEDDLO.js} +49 -49
- package/chunks/{goal-tools-JDK2SNMV.js → goal-tools-M4UDAZXP.js} +4 -4
- package/chunks/{grep-QWBLG564.js → grep-F4UAR7KX.js} +47 -47
- package/chunks/{handleAutoUpdate-M3ACKDKF.js → handleAutoUpdate-GN7Z6QAC.js} +46 -46
- package/chunks/{i18n-FPW7XZL5.js → i18n-ETW24DHW.js} +43 -43
- package/chunks/{image-gen-OTFC2S7L.js → image-gen-YPK2AZT4.js} +11 -11
- package/chunks/{initializer-5HKUXXBT.js → initializer-UA6KQ7MS.js} +49 -49
- package/chunks/{installationInfo-4OA6UW7V.js → installationInfo-P7OTIR4P.js} +43 -43
- package/chunks/{keychain-token-storage-JTWUYFU7.js → keychain-token-storage-NKKCUHI2.js} +2 -2
- package/chunks/{list-3TKZ264A.js → list-GRAMIQOT.js} +51 -51
- package/chunks/{list-agents-4GQ2XNEU.js → list-agents-O6WSY4CT.js} +2 -2
- package/chunks/{loadedSettingsAdapter-IRUANLS2.js → loadedSettingsAdapter-5O2TDS3I.js} +48 -48
- package/chunks/{loggingContentGenerator-D4URLH2A.js → loggingContentGenerator-J2J2AANS.js} +151 -120
- package/chunks/{loop-wakeup-HOQI3K5D.js → loop-wakeup-GVQRMUKS.js} +5 -5
- package/chunks/{ls-FSHISLLA.js → ls-6W2D7TKU.js} +6 -6
- package/chunks/{lsp-APQJ5ZEZ.js → lsp-NJ4KFBI2.js} +2 -2
- package/chunks/{managed-npm-update-2O7XSAWJ.js → managed-npm-update-WMV5ITKU.js} +45 -45
- package/chunks/{mcp-AFVHCHKT.js → mcp-XLP33CAI.js} +48 -48
- package/chunks/{monitor-PY4WDSX3.js → monitor-2MM23VDV.js} +47 -47
- package/chunks/{node-YSOU44FX.js → node-UUDY34IG.js} +3 -3
- package/chunks/nonInteractiveCli-KTA5K6FS.js +163 -0
- package/chunks/{notebook-edit-GEPL33NO.js → notebook-edit-QD4TRKLY.js} +47 -47
- package/chunks/{openaiContentGenerator-ACYSXQ6R.js → openaiContentGenerator-KLHSPVN2.js} +31 -31
- package/chunks/{pidfile-SUNYCAA4.js → pidfile-RQGZBNXT.js} +43 -43
- package/chunks/{processUtils-F7LP7YUV.js → processUtils-HZZDA2VV.js} +2 -2
- package/chunks/{qwenContentGenerator-BB6IPELF.js → qwenContentGenerator-T75M2Z3B.js} +50 -50
- package/chunks/{qwenOAuth2-OU3WGDOI.js → qwenOAuth2-5QZU444W.js} +10 -10
- package/chunks/{read-file-GORBXJTS.js → read-file-LOVUSBJC.js} +12 -12
- package/chunks/{read-mcp-resource-TJSJRH4F.js → read-mcp-resource-GWCP23WG.js} +2 -2
- package/chunks/{read-package-up-TCM6I7S2.js → read-package-up-K6RKTL5D.js} +1 -1
- package/chunks/{record-artifact-FXF5LHPE.js → record-artifact-IYQDEYMV.js} +3 -3
- package/chunks/{resumeHistoryUtils-FOAJJJWK.js → resumeHistoryUtils-LVKSSQII.js} +50 -50
- package/chunks/{ripGrep-RNLIZGCY.js → ripGrep-ZJSHKB6H.js} +42 -42
- package/chunks/{run-qwen-serve-GVMMX3IU.js → run-qwen-serve-GZW7B4WK.js} +186 -90
- package/chunks/{runtime-RNBZ5FDD.js → runtime-MYRXEO2E.js} +53 -53
- package/chunks/{scheduler-NTRFSPIP.js → scheduler-DPTPI6FW.js} +44 -44
- package/chunks/{sdk-exporters-grpc-4QKV6MCX.js → sdk-exporters-grpc-54L4LS5L.js} +2 -2
- package/chunks/{sdk-exporters-http-2VPMAPFI.js → sdk-exporters-http-NHBYB5FZ.js} +21 -17
- package/chunks/{sdk-impl-5W3JUCWF.js → sdk-impl-SK4P5WON.js} +17 -14
- package/chunks/{send-message-RBYLV5NY.js → send-message-O7FO63UK.js} +6 -6
- package/chunks/{serve-H3PGA26U.js → serve-XCG4XCDA.js} +52 -52
- package/chunks/{server-SUXD2F3C.js → server-AWQHKXLG.js} +310 -200
- package/chunks/{session-MTFVUWWM.js → session-P5FKNCNR.js} +94 -97
- package/chunks/{settings-GUJ3TN2J.js → settings-CSYVIP2R.js} +47 -47
- package/chunks/{shell-C2UP5FF2.js → shell-EGTSUO2P.js} +42 -42
- package/chunks/{skill-4XCNK55E.js → skill-IFUD72GF.js} +22 -22
- package/chunks/{skill-settings-Y2BU27XM.js → skill-settings-YOE7LBHE.js} +47 -47
- package/chunks/{spawnChannel-UUUUK734.js → spawnChannel-PQSZIOLY.js} +45 -47
- package/chunks/{standalone-update-MJ722XZ4.js → standalone-update-RB2EGUSF.js} +44 -44
- package/chunks/{startInteractiveUI-TCPIPNGN.js → startInteractiveUI-KMYUJ2MU.js} +3040 -2399
- package/chunks/{syntheticOutput-D3Z64LJC.js → syntheticOutput-DVHJMUGV.js} +3 -3
- package/chunks/{task-create-URFZ5EUX.js → task-create-4NC7PDI4.js} +11 -11
- package/chunks/{task-list-6JDFMPUW.js → task-list-LBSRMOC7.js} +5 -5
- package/chunks/{task-stop-HHUGCD25.js → task-stop-YFNATTIM.js} +2 -2
- package/chunks/{task-update-DVV6CUGI.js → task-update-BPLM52GD.js} +12 -12
- package/chunks/{team-create-WZWH2NJI.js → team-create-B6A6MJBT.js} +47 -47
- package/chunks/{team-delete-PZGGBQLM.js → team-delete-MKYMYBFM.js} +5 -5
- package/chunks/{team-plan-approval-SUZQJCWJ.js → team-plan-approval-5WO3CXXU.js} +48 -48
- package/chunks/{terminal-image-renderer-BCUN3Z3W.js → terminal-image-renderer-BTRE2GEU.js} +44 -44
- package/chunks/{theme-manager-UGMFDREN.js → theme-manager-XL2N5SBY.js} +43 -43
- package/chunks/{todoWrite-WINAZSZI.js → todoWrite-K5K7NRE5.js} +4 -4
- package/chunks/{tool-search-B6F3MPUZ.js → tool-search-QNBLXUGR.js} +18 -18
- package/chunks/{total-session-admission-MQLBJ5WL.js → total-session-admission-N4E5SFBO.js} +49 -49
- package/chunks/{trustedFolders-2XST7U5C.js → trustedFolders-MQS46LIU.js} +43 -43
- package/chunks/{update-relaunch-OVC7YNGD.js → update-relaunch-536KRL33.js} +5 -5
- package/chunks/{updateCheck-YAKM36WQ.js → updateCheck-QJI2SYWF.js} +48 -48
- package/chunks/{useAutoAcceptIndicator-RF6FVX3S.js → useAutoAcceptIndicator-7QASHD46.js} +51 -51
- package/chunks/{validateNonInterActiveAuth-IPPXFNQH.js → validateNonInterActiveAuth-ZNRGWBLV.js} +86 -88
- package/chunks/{version-4IDFEXOU.js → version-DBEQAFRW.js} +2 -2
- package/chunks/{web-fetch-NUOLHXPN.js → web-fetch-MBIVXKPE.js} +21 -21
- package/chunks/{web-search-LVOOV4XZ.js → web-search-4LBIN6VF.js} +16 -16
- package/chunks/{workflow-JSTYTG3K.js → workflow-LNMA55HY.js} +127 -61
- package/chunks/{workspace-providers-status-U4EYXA4K.js → workspace-providers-status-PDDMI6ST.js} +51 -51
- package/chunks/{workspace-registration-store-OG66U3CB.js → workspace-registration-store-BGRKKIYR.js} +1 -1
- package/chunks/{workspace-registry-WSHWQRQQ.js → workspace-registry-L4NCJ34K.js} +49 -49
- package/chunks/{workspace-service-QZXQHX2F.js → workspace-service-LOXYKYTR.js} +54 -54
- package/chunks/{workspace-skills-status-VRBHEX5O.js → workspace-skills-status-IJ5FOQI6.js} +49 -49
- package/chunks/{workspace-trust-reconciler-FCRIUIOF.js → workspace-trust-reconciler-H36TCR2S.js} +57 -57
- package/chunks/{write-file-PYL3JCCD.js → write-file-JJAY7JSP.js} +42 -42
- package/chunks/{zoom-image-RS6MU26F.js → zoom-image-4MVVVM7E.js} +12 -12
- package/cli.js +18 -17
- package/package.json +4 -4
- package/web-shell/assets/{arc-CgGUyHWd.js → arc-B-89zHN4.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BR0Qv-1Y.js → architectureDiagram-3BPJPVTR-BkcOncHk.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-DIoaceaI.js → blockDiagram-GPEHLZMM-DQ4yboaF.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Bc5k6BbI.js → c4Diagram-AAUBKEIU-C_8ZjPDI.js} +1 -1
- package/web-shell/assets/channel-Du2WFns8.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DtPEz2WX.js → chunk-2J33WTMH-naKVe1Bm.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-Dydo6ydE.js → chunk-4BX2VUAB-DdoViKT2.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DD9_VWXm.js → chunk-55IACEB6-DUDQZEwU.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DVI2m59k.js → chunk-727SXJPM-BqpDTR5s.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-luatmaTN.js → chunk-AQP2D5EJ-CdmEknkT.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-Duy8NTIi.js → chunk-FMBD7UC4-CH7fFTLB.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-CrL1yhms.js → chunk-ND2GUHAM-ObgSuFKF.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-C7BX6bu1.js → chunk-QZHKN3VN-D9fKdv_s.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Zw0HafH6.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Zw0HafH6.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BTzs7mIi.js → cose-bilkent-S5V4N54A-CvzATMx9.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-3VTUmWts.js → dagre-BM42HDAG-M_xU21QW.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Ehdp75GN.js → diagram-2AECGRRQ-CNrl9sW1.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-B3wu3teE.js → diagram-5GNKFQAL-CUweVT6T.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DjgTSf2S.js → diagram-KO2AKTUF-D3n6Lxjo.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Br9mwjY3.js → diagram-LMA3HP47-0SeFPK4t.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-D4xz5M-z.js → diagram-OG6HWLK6-DAgyEwge.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CXayWlG_.js → erDiagram-TEJ5UH35-CzxBBDIK.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CLonjQTi.js → flowDiagram-I6XJVG4X-B0uj0jyo.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BTySFT-1.js → ganttDiagram-6RSMTGT7-DFzcj5km.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII--2WcUjOe.js → gitGraphDiagram-PVQCEYII-DylJ_Fc9.js} +1 -1
- package/web-shell/assets/index-BIGQygTL.css +5 -0
- package/web-shell/assets/{index-DPJHkFOG.js → index-BKSAnXU9.js} +1 -1
- package/web-shell/assets/index-J7OMTqAN.js +1789 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-9vpgAf1m.js → infoDiagram-5YYISTIA-BYMcJVMI.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DcRpHnAW.js → ishikawaDiagram-YF4QCWOH-t1quI1S3.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-C2TKorRm.js → journeyDiagram-JHISSGLW-YM_QVUJm.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DdsFwB8b.js → kanban-definition-UN3LZRKU-jw8OddK1.js} +1 -1
- package/web-shell/assets/{linear-7PjRvJrf.js → linear-Dlr3RVuP.js} +1 -1
- package/web-shell/assets/{mermaid.core-raDXa11C.js → mermaid.core-CqGKzNzd.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DLHc-PRN.js → mindmap-definition-RKZ34NQL-BqureoOS.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BftYpeTW.js → pieDiagram-4H26LBE5-Da20HkK1.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-O-6ygOYn.js → quadrantDiagram-W4KKPZXB-BsNlMvJy.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BmZWVufJ.js → requirementDiagram-4Y6WPE33-DzVCQCse.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-2x5beiWt.js → sankeyDiagram-5OEKKPKP-BMo16voT.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BH8uKokQ.js → sequenceDiagram-3UESZ5HK-Bgi-pdHk.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-Dq1MFgX_.js → stateDiagram-AJRCARHV-xaPQXwGk.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D5RqimXD.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Cl2WKbv9.js → timeline-definition-PNZ67QCA-C_9RuvKG.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BqoRo_Q-.js → vennDiagram-CIIHVFJN-Bgu6vdla.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BTxp-Yot.js → wardley-L42UT6IY-CFTZ8IrX.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DFXVCSH2.js → wardleyDiagram-YWT4CUSO-BASW9Vmt.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-qQhWx0aE.js → xychartDiagram-2RQKCTM6--Nh-CD3F.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-CG3OQDNY.js +0 -649
- package/chunks/chunk-L34XSHIZ.js +0 -28
- package/chunks/chunk-N2TNM3QB.js +0 -9
- package/chunks/chunk-UOMZKPI5.js +0 -830
- package/chunks/chunk-WFRHWDBT.js +0 -622
- package/chunks/chunk-WLML6VIA.js +0 -18
- package/chunks/chunk-ZBBVBZBR.js +0 -137
- package/chunks/chunk-bdqvmfwv-OHYAFAAO.js +0 -17446
- package/chunks/daemon-status-provider-LPYR2GXY.js +0 -103
- package/chunks/dispatch-B53LNEO4.js +0 -37
- package/chunks/nonInteractiveCli-ZHW6F76F.js +0 -166
- package/chunks/opentui-entry-SBAOWW7M.js +0 -52325
- package/chunks/runtime-gate-T4ICWGQJ.js +0 -89
- package/chunks/wrapper-46Z24CTM.js +0 -35
- package/web-shell/assets/channel-D2b9IYpS.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-DHatTCmD.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DHatTCmD.js +0 -1
- package/web-shell/assets/index-CIFO52Wx.css +0 -5
- package/web-shell/assets/index-bhq3CUUF.js +0 -1789
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-spuAYji6.js +0 -1
- /package/chunks/{chunk-44CTCCLY.js → chunk-NWNEANAT.js} +0 -0
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
import {
|
|
4
4
|
settleChatRecording,
|
|
5
5
|
subscribeToHeadlessChatRecordingFailures
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-WI6GIM2M.js";
|
|
7
7
|
import {
|
|
8
8
|
handleAtCommand
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-X5SLJOMF.js";
|
|
10
10
|
import {
|
|
11
11
|
JsonOutputAdapter
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-6SPD4Z7F.js";
|
|
13
13
|
import {
|
|
14
14
|
StreamJsonOutputAdapter
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-MUNA4QDC.js";
|
|
16
16
|
import {
|
|
17
17
|
buildInitialSystemReminders,
|
|
18
18
|
buildSystemMessage,
|
|
@@ -22,15 +22,13 @@ import {
|
|
|
22
22
|
extractPartsFromUserMessage,
|
|
23
23
|
handleSlashCommand,
|
|
24
24
|
insertAfterFunctionResponses,
|
|
25
|
+
isSlashCommand,
|
|
25
26
|
normalizePartList
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import {
|
|
28
|
-
isSlashCommand
|
|
29
|
-
} from "./chunk-3TT6MZHJ.js";
|
|
27
|
+
} from "./chunk-QSD4UH74.js";
|
|
30
28
|
import {
|
|
31
29
|
RunBudgetEnforcer,
|
|
32
30
|
cleanupReviewWorktreeLeases
|
|
33
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-IX4PWUDU.js";
|
|
34
32
|
import {
|
|
35
33
|
AlreadyReportedError,
|
|
36
34
|
handleBudgetExceededError,
|
|
@@ -38,10 +36,10 @@ import {
|
|
|
38
36
|
handleError,
|
|
39
37
|
handleMaxTurnsExceededError,
|
|
40
38
|
handleToolError
|
|
41
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-RDVNSJQU.js";
|
|
42
40
|
import {
|
|
43
41
|
isInlineModelOverrideAllowed
|
|
44
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-ROIJYS5K.js";
|
|
45
43
|
import {
|
|
46
44
|
PLAN_MODE_ENTRY_SIBLING_SKIP_MESSAGE,
|
|
47
45
|
buildSessionRecoveryPlanFromApiHistory,
|
|
@@ -58,7 +56,7 @@ import {
|
|
|
58
56
|
parseAndFormatApiError,
|
|
59
57
|
partitionByConcurrencySafety,
|
|
60
58
|
restoreWorktreeContext
|
|
61
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-EBPLKY6U.js";
|
|
62
60
|
import {
|
|
63
61
|
parsePositiveIntegerEnv
|
|
64
62
|
} from "./chunk-6PVPNMXU.js";
|
|
@@ -67,7 +65,13 @@ import {
|
|
|
67
65
|
} from "./chunk-O6GEWCJA.js";
|
|
68
66
|
import {
|
|
69
67
|
GoalPersistenceUnavailableError
|
|
70
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-DPTMKFIH.js";
|
|
69
|
+
import {
|
|
70
|
+
addAgentOutputMessageAttributes
|
|
71
|
+
} from "./chunk-K34GJQOZ.js";
|
|
72
|
+
import {
|
|
73
|
+
isSystemReminderContent
|
|
74
|
+
} from "./chunk-TTRH3RTQ.js";
|
|
71
75
|
import {
|
|
72
76
|
formatFullTurnVisionNotice,
|
|
73
77
|
formatVisionBridgeNotice,
|
|
@@ -77,25 +81,25 @@ import {
|
|
|
77
81
|
shouldRunVisionBridge,
|
|
78
82
|
splitImageParts,
|
|
79
83
|
uiTelemetryService
|
|
80
|
-
} from "./chunk-
|
|
81
|
-
import {
|
|
82
|
-
isSystemReminderContent
|
|
83
|
-
} from "./chunk-ZV4XVYL3.js";
|
|
84
|
+
} from "./chunk-4KM2SYK5.js";
|
|
84
85
|
import {
|
|
85
86
|
ToolNames,
|
|
86
87
|
canonicalToolName
|
|
87
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-YIGGWOJE.js";
|
|
88
89
|
import {
|
|
90
|
+
endInteractionSpan,
|
|
91
|
+
getActiveInteractionSpan,
|
|
89
92
|
isTelemetrySdkInitialized,
|
|
90
93
|
shutdownTelemetry
|
|
91
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-N4SVADAV.js";
|
|
92
95
|
import {
|
|
93
96
|
FatalInputError,
|
|
94
|
-
createDebugLogger
|
|
95
|
-
|
|
97
|
+
createDebugLogger,
|
|
98
|
+
getErrorType
|
|
99
|
+
} from "./chunk-HOSVOUDK.js";
|
|
96
100
|
import {
|
|
97
101
|
registerCleanup
|
|
98
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-OR64CU46.js";
|
|
99
103
|
import {
|
|
100
104
|
init_esbuild_shims
|
|
101
105
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -331,6 +335,30 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
|
|
|
331
335
|
let limitedTurnCount = 0;
|
|
332
336
|
let totalApiDurationMs = 0;
|
|
333
337
|
const startTime = Date.now();
|
|
338
|
+
let activeInteractionPromptId = prompt_id;
|
|
339
|
+
let activeInteractionOwner;
|
|
340
|
+
const selectActiveInteraction = /* @__PURE__ */ __name((promptId, startsInteraction = false) => {
|
|
341
|
+
if (startsInteraction || activeInteractionPromptId !== promptId) {
|
|
342
|
+
activeInteractionOwner = void 0;
|
|
343
|
+
}
|
|
344
|
+
activeInteractionPromptId = promptId;
|
|
345
|
+
}, "selectActiveInteraction");
|
|
346
|
+
const captureActiveInteractionOwner = /* @__PURE__ */ __name(() => {
|
|
347
|
+
activeInteractionOwner ??= getActiveInteractionSpan(
|
|
348
|
+
activeInteractionPromptId
|
|
349
|
+
);
|
|
350
|
+
return activeInteractionOwner;
|
|
351
|
+
}, "captureActiveInteractionOwner");
|
|
352
|
+
const endActiveInteraction = /* @__PURE__ */ __name((status, metadata = {}) => {
|
|
353
|
+
const owner = captureActiveInteractionOwner();
|
|
354
|
+
if (!owner || getActiveInteractionSpan(activeInteractionPromptId) !== owner) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
endInteractionSpan(status, {
|
|
358
|
+
promptId: activeInteractionPromptId,
|
|
359
|
+
...metadata
|
|
360
|
+
});
|
|
361
|
+
}, "endActiveInteraction");
|
|
334
362
|
const geminiClient = config.getGeminiClient();
|
|
335
363
|
const abortController = options.abortController ?? new AbortController();
|
|
336
364
|
const queuedGoalTurns = [];
|
|
@@ -477,6 +505,12 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
|
|
|
477
505
|
budgetEnforcer.start();
|
|
478
506
|
const routeAbort = /* @__PURE__ */ __name(async () => {
|
|
479
507
|
const exceeded = budgetEnforcer.getExceeded();
|
|
508
|
+
endActiveInteraction(exceeded ? "error" : "cancelled", {
|
|
509
|
+
...exceeded ? {
|
|
510
|
+
errorMessage: exceeded.message,
|
|
511
|
+
errorType: "run_budget_exceeded"
|
|
512
|
+
} : {}
|
|
513
|
+
});
|
|
480
514
|
await failClosedActiveGoalTurn(
|
|
481
515
|
exceeded?.message ?? "Headless Goal execution was cancelled"
|
|
482
516
|
);
|
|
@@ -630,6 +664,8 @@ ${reason}
|
|
|
630
664
|
let initialPartList = extractPartsFromUserMessage(
|
|
631
665
|
options.userMessage
|
|
632
666
|
);
|
|
667
|
+
const userMessageContent = options.userMessage?.message.content;
|
|
668
|
+
const submittedPrompt = typeof userMessageContent === "string" ? userMessageContent : Array.isArray(userMessageContent) ? userMessageContent.filter((block) => block.type === "text").map((block) => block.type === "text" ? block.text : "").join(" ") : input;
|
|
633
669
|
let inlineModelOverride;
|
|
634
670
|
if (options.continueInterrupted) {
|
|
635
671
|
const recoveryPlan = buildSessionRecoveryPlanFromApiHistory({
|
|
@@ -1012,6 +1048,24 @@ ${text}
|
|
|
1012
1048
|
let loopDetected = false;
|
|
1013
1049
|
let loopDetectedMessage = formatLoopDetectedMessage(void 0);
|
|
1014
1050
|
const emitStructuredSuccess = /* @__PURE__ */ __name(async () => {
|
|
1051
|
+
const owner = captureActiveInteractionOwner();
|
|
1052
|
+
if (owner && getActiveInteractionSpan(activeInteractionPromptId) === owner) {
|
|
1053
|
+
let responseText;
|
|
1054
|
+
try {
|
|
1055
|
+
responseText = JSON.stringify(structuredSubmission);
|
|
1056
|
+
} catch {
|
|
1057
|
+
responseText = void 0;
|
|
1058
|
+
}
|
|
1059
|
+
if (responseText !== void 0) {
|
|
1060
|
+
addAgentOutputMessageAttributes(
|
|
1061
|
+
config,
|
|
1062
|
+
owner,
|
|
1063
|
+
responseText,
|
|
1064
|
+
"tool_call"
|
|
1065
|
+
);
|
|
1066
|
+
}
|
|
1067
|
+
endActiveInteraction("ok");
|
|
1068
|
+
}
|
|
1015
1069
|
await failClosedActiveGoalTurn(
|
|
1016
1070
|
"Headless Goal ended with structured output"
|
|
1017
1071
|
);
|
|
@@ -1037,6 +1091,10 @@ ${text}
|
|
|
1037
1091
|
return 0;
|
|
1038
1092
|
}, "emitStructuredSuccess");
|
|
1039
1093
|
const emitLoopDetectedResult = /* @__PURE__ */ __name(async () => {
|
|
1094
|
+
endActiveInteraction("error", {
|
|
1095
|
+
errorMessage: "loop detected",
|
|
1096
|
+
errorType: "loop_detected"
|
|
1097
|
+
});
|
|
1040
1098
|
await failClosedActiveGoalTurn(
|
|
1041
1099
|
"Headless Goal stopped after loop detection"
|
|
1042
1100
|
);
|
|
@@ -1409,18 +1467,26 @@ ${text}
|
|
|
1409
1467
|
const goalTurn = activeGoalTurn;
|
|
1410
1468
|
await enforceSessionTurnLimit(goalTurn?.origin === "runtime");
|
|
1411
1469
|
let sendType;
|
|
1412
|
-
if (goalTurn) {
|
|
1413
|
-
sendType =
|
|
1414
|
-
} else if (isFirstTurn) {
|
|
1415
|
-
sendType = continueSendType ?? options.sendMessageType ?? "userQuery" /* UserQuery */;
|
|
1470
|
+
if (goalTurn && isFirstGoalSegment) {
|
|
1471
|
+
sendType = goalTurn.origin === "runtime" ? "goal" /* Goal */ : "userQuery" /* UserQuery */;
|
|
1416
1472
|
} else if (isTeammateTurn) {
|
|
1417
1473
|
sendType = "teammate" /* Teammate */;
|
|
1474
|
+
} else if (goalTurn) {
|
|
1475
|
+
sendType = "toolResult" /* ToolResult */;
|
|
1476
|
+
} else if (isFirstTurn) {
|
|
1477
|
+
sendType = continueSendType ?? options.sendMessageType ?? "userQuery" /* UserQuery */;
|
|
1418
1478
|
} else {
|
|
1419
1479
|
sendType = "toolResult" /* ToolResult */;
|
|
1420
1480
|
}
|
|
1421
1481
|
if (isTeammateTurn) {
|
|
1482
|
+
selectActiveInteraction(currentPromptId);
|
|
1483
|
+
endActiveInteraction("ok");
|
|
1422
1484
|
currentPromptId = `${prompt_id}/teammate/${turnCount}`;
|
|
1423
1485
|
}
|
|
1486
|
+
selectActiveInteraction(
|
|
1487
|
+
currentPromptId,
|
|
1488
|
+
sendType !== "toolResult" /* ToolResult */
|
|
1489
|
+
);
|
|
1424
1490
|
const toolCallRequests = [];
|
|
1425
1491
|
const apiStartTime = Date.now();
|
|
1426
1492
|
const responseStream = geminiClient.sendMessageStream(
|
|
@@ -1430,6 +1496,7 @@ ${text}
|
|
|
1430
1496
|
{
|
|
1431
1497
|
type: sendType,
|
|
1432
1498
|
modelOverride,
|
|
1499
|
+
...isFirstTurn && sendType === "userQuery" /* UserQuery */ && !options.continueInterrupted && submittedPrompt.trim().length > 0 && { submittedPrompt },
|
|
1433
1500
|
...isFirstTurn && options.notificationDisplayText && {
|
|
1434
1501
|
notificationDisplayText: options.notificationDisplayText
|
|
1435
1502
|
},
|
|
@@ -1445,6 +1512,7 @@ ${text}
|
|
|
1445
1512
|
isFirstGoalSegment = false;
|
|
1446
1513
|
adapter.startAssistantMessage();
|
|
1447
1514
|
for await (const event of responseStream) {
|
|
1515
|
+
captureActiveInteractionOwner();
|
|
1448
1516
|
if (abortController.signal.aborted) {
|
|
1449
1517
|
adapter.finalizeAssistantMessage();
|
|
1450
1518
|
await routeAbort();
|
|
@@ -1479,6 +1547,7 @@ ${text}
|
|
|
1479
1547
|
throw new AlreadyReportedError(errorText);
|
|
1480
1548
|
}
|
|
1481
1549
|
}
|
|
1550
|
+
captureActiveInteractionOwner();
|
|
1482
1551
|
adapter.finalizeAssistantMessage();
|
|
1483
1552
|
totalApiDurationMs += Date.now() - apiStartTime;
|
|
1484
1553
|
if (loopDetected) {
|
|
@@ -1523,6 +1592,8 @@ ${text}
|
|
|
1523
1592
|
await config.getChatRecordingService?.()?.flush();
|
|
1524
1593
|
await finishGoalTurn(activeGoalTurn);
|
|
1525
1594
|
activeGoalTurn = void 0;
|
|
1595
|
+
selectActiveInteraction(currentPromptId);
|
|
1596
|
+
endActiveInteraction("ok");
|
|
1526
1597
|
const nextGoalTurn = queuedGoalTurns.shift();
|
|
1527
1598
|
if (nextGoalTurn) {
|
|
1528
1599
|
activeGoalTurn = nextGoalTurn;
|
|
@@ -1551,6 +1622,8 @@ ${text}
|
|
|
1551
1622
|
if (activeGoalTurn === completedGoalTurn) {
|
|
1552
1623
|
activeGoalTurn = void 0;
|
|
1553
1624
|
}
|
|
1625
|
+
selectActiveInteraction(currentPromptId);
|
|
1626
|
+
endActiveInteraction("ok");
|
|
1554
1627
|
const nextGoalTurn = queuedGoalTurns.shift();
|
|
1555
1628
|
if (nextGoalTurn) {
|
|
1556
1629
|
activeGoalTurn = nextGoalTurn;
|
|
@@ -1637,6 +1710,7 @@ ${text}
|
|
|
1637
1710
|
while (true) {
|
|
1638
1711
|
const itemToolCallRequests = [];
|
|
1639
1712
|
const itemApiStartTime = Date.now();
|
|
1713
|
+
selectActiveInteraction(itemPromptId, itemIsFirstTurn);
|
|
1640
1714
|
const itemStream = geminiClient.sendMessageStream(
|
|
1641
1715
|
itemMessages[0]?.parts || [],
|
|
1642
1716
|
abortController.signal,
|
|
@@ -1653,6 +1727,7 @@ ${text}
|
|
|
1653
1727
|
itemIsFirstTurn = false;
|
|
1654
1728
|
adapter.startAssistantMessage();
|
|
1655
1729
|
for await (const event of itemStream) {
|
|
1730
|
+
captureActiveInteractionOwner();
|
|
1656
1731
|
if (abortController.signal.aborted) {
|
|
1657
1732
|
adapter.finalizeAssistantMessage();
|
|
1658
1733
|
flushQueuedNotificationsToSdk(localQueue);
|
|
@@ -1682,6 +1757,7 @@ ${text}
|
|
|
1682
1757
|
throw new AlreadyReportedError(errorText);
|
|
1683
1758
|
}
|
|
1684
1759
|
}
|
|
1760
|
+
captureActiveInteractionOwner();
|
|
1685
1761
|
adapter.finalizeAssistantMessage();
|
|
1686
1762
|
totalApiDurationMs += Date.now() - itemApiStartTime;
|
|
1687
1763
|
if (loopDetected) {
|
|
@@ -1827,6 +1903,10 @@ ${text}
|
|
|
1827
1903
|
const previewSnippet = plainTextPreview.trim();
|
|
1828
1904
|
const previewSuffix = previewSnippet ? ` Output preview (${plainTextPreview.length}${plainTextPreview.length >= PLAIN_TEXT_PREVIEW_LIMIT ? "+" : ""} chars): ${JSON.stringify(previewSnippet)}.` : "";
|
|
1829
1905
|
const errorMessage = `Model produced plain text instead of calling the structured_output tool as required by --json-schema after ${turnCount} turn(s).` + previewSuffix;
|
|
1906
|
+
endActiveInteraction("error", {
|
|
1907
|
+
errorMessage: "model did not produce structured output",
|
|
1908
|
+
errorType: "structured_output_missing"
|
|
1909
|
+
});
|
|
1830
1910
|
await emitResult({
|
|
1831
1911
|
isError: true,
|
|
1832
1912
|
durationMs: Date.now() - startTime,
|
|
@@ -1850,6 +1930,19 @@ ${text}
|
|
|
1850
1930
|
}
|
|
1851
1931
|
}
|
|
1852
1932
|
} catch (error) {
|
|
1933
|
+
const budgetExceeded = budgetEnforcer.getExceeded();
|
|
1934
|
+
endActiveInteraction(
|
|
1935
|
+
budgetExceeded || !abortController.signal.aborted ? "error" : "cancelled",
|
|
1936
|
+
{
|
|
1937
|
+
...budgetExceeded ? {
|
|
1938
|
+
errorMessage: budgetExceeded.message,
|
|
1939
|
+
errorType: "run_budget_exceeded"
|
|
1940
|
+
} : abortController.signal.aborted ? {} : {
|
|
1941
|
+
errorMessage: "headless invocation failed",
|
|
1942
|
+
errorType: getErrorType(error)
|
|
1943
|
+
}
|
|
1944
|
+
}
|
|
1945
|
+
);
|
|
1853
1946
|
await failClosedActiveGoalTurn(
|
|
1854
1947
|
error instanceof Error ? error.message : "Headless Goal execution failed"
|
|
1855
1948
|
);
|
|
@@ -1859,7 +1952,6 @@ ${text}
|
|
|
1859
1952
|
}
|
|
1860
1953
|
flushQueuedNotificationsToSdk(localQueue);
|
|
1861
1954
|
finalizeOneShotMonitors();
|
|
1862
|
-
const budgetExceeded = budgetEnforcer.getExceeded();
|
|
1863
1955
|
const recoverableCancellation = !budgetExceeded && options.recoverableCancellation === true && abortController.signal.reason instanceof TurnInterruptedError;
|
|
1864
1956
|
const message = budgetExceeded ? budgetExceeded.message : recoverableCancellation ? abortController.signal.reason.message : error instanceof Error ? error.message : String(error);
|
|
1865
1957
|
const metrics = uiTelemetryService.getMetrics();
|
|
@@ -8,31 +8,31 @@ import {
|
|
|
8
8
|
} from "./chunk-VGC4I5JJ.js";
|
|
9
9
|
import {
|
|
10
10
|
isAnyAutoMemPath
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-G6MUFRNI.js";
|
|
12
12
|
import {
|
|
13
13
|
runSideQuery
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import {
|
|
16
|
-
InstallationManager
|
|
17
|
-
} from "./chunk-NC4O6UE6.js";
|
|
14
|
+
} from "./chunk-LSRI3ND3.js";
|
|
18
15
|
import {
|
|
19
16
|
STRUCTURED_OUTPUT_REDACTED_ARGS
|
|
20
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-PVXEJB66.js";
|
|
21
18
|
import {
|
|
22
19
|
BaseDeclarativeTool,
|
|
23
20
|
BaseToolInvocation,
|
|
24
21
|
StructuredToolError,
|
|
25
22
|
ToolDisplayNames,
|
|
26
23
|
ToolNames
|
|
27
|
-
} from "./chunk-
|
|
28
|
-
import {
|
|
29
|
-
atomicWriteFile
|
|
30
|
-
} from "./chunk-F6AOBFUN.js";
|
|
24
|
+
} from "./chunk-YIGGWOJE.js";
|
|
31
25
|
import {
|
|
32
26
|
estimateTextTokens,
|
|
33
27
|
generateLegacyMcpToolName,
|
|
34
28
|
normalizeToolNameForProvider
|
|
35
29
|
} from "./chunk-46UV252V.js";
|
|
30
|
+
import {
|
|
31
|
+
InstallationManager
|
|
32
|
+
} from "./chunk-PZW46OTB.js";
|
|
33
|
+
import {
|
|
34
|
+
atomicWriteFile
|
|
35
|
+
} from "./chunk-YBHUXEC6.js";
|
|
36
36
|
import {
|
|
37
37
|
emitSessionEnd,
|
|
38
38
|
emitSessionStart,
|
|
@@ -57,7 +57,7 @@ import {
|
|
|
57
57
|
recordTokenUsageMetrics,
|
|
58
58
|
recordToolCallMetrics,
|
|
59
59
|
recordToolExecutionMetrics
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-N4SVADAV.js";
|
|
61
61
|
import {
|
|
62
62
|
safeJsonStringify
|
|
63
63
|
} from "./chunk-HHJLM3WQ.js";
|
|
@@ -107,7 +107,7 @@ import {
|
|
|
107
107
|
EVENT_WORKFLOW_RUN,
|
|
108
108
|
SERVICE_NAME,
|
|
109
109
|
require_src
|
|
110
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-K5IDV3PC.js";
|
|
111
111
|
import {
|
|
112
112
|
Storage,
|
|
113
113
|
createDebugLogger,
|
|
@@ -119,7 +119,7 @@ import {
|
|
|
119
119
|
realpathNearestExisting,
|
|
120
120
|
shortenPath,
|
|
121
121
|
unescapePath
|
|
122
|
-
} from "./chunk-
|
|
122
|
+
} from "./chunk-HOSVOUDK.js";
|
|
123
123
|
import {
|
|
124
124
|
SemanticAttributes,
|
|
125
125
|
init_esm
|
|
@@ -12964,11 +12964,12 @@ function logFileOperation(config, event) {
|
|
|
12964
12964
|
});
|
|
12965
12965
|
}
|
|
12966
12966
|
__name(logFileOperation, "logFileOperation");
|
|
12967
|
-
function logApiRequest(config, event) {
|
|
12967
|
+
function logApiRequest(config, event, sessionId) {
|
|
12968
12968
|
if (!isTelemetrySdkInitialized()) return;
|
|
12969
12969
|
const attributes = {
|
|
12970
12970
|
...getCommonAttributes(config),
|
|
12971
12971
|
...event,
|
|
12972
|
+
...sessionId ? { "session.id": sessionId } : {},
|
|
12972
12973
|
"event.name": EVENT_API_REQUEST,
|
|
12973
12974
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
12974
12975
|
};
|
|
@@ -13014,7 +13015,7 @@ function logRipgrepRuntimeRecovery(config, event) {
|
|
|
13014
13015
|
logger.emit(logRecord);
|
|
13015
13016
|
}
|
|
13016
13017
|
__name(logRipgrepRuntimeRecovery, "logRipgrepRuntimeRecovery");
|
|
13017
|
-
function logApiError(config, event) {
|
|
13018
|
+
function logApiError(config, event, sessionId) {
|
|
13018
13019
|
const uiEvent = {
|
|
13019
13020
|
...event,
|
|
13020
13021
|
"event.name": EVENT_API_ERROR,
|
|
@@ -13030,6 +13031,7 @@ function logApiError(config, event) {
|
|
|
13030
13031
|
const attributes = {
|
|
13031
13032
|
...getCommonAttributes(config),
|
|
13032
13033
|
...event,
|
|
13034
|
+
...sessionId ? { "session.id": sessionId } : {},
|
|
13033
13035
|
"event.name": EVENT_API_ERROR,
|
|
13034
13036
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString(),
|
|
13035
13037
|
["error.message"]: event.error_message,
|
|
@@ -13079,7 +13081,7 @@ function logApiCancel(config, event) {
|
|
|
13079
13081
|
logger.emit(logRecord);
|
|
13080
13082
|
}
|
|
13081
13083
|
__name(logApiCancel, "logApiCancel");
|
|
13082
|
-
function logApiResponse(config, event) {
|
|
13084
|
+
function logApiResponse(config, event, sessionId) {
|
|
13083
13085
|
const uiEvent = {
|
|
13084
13086
|
...event,
|
|
13085
13087
|
"event.name": EVENT_API_RESPONSE,
|
|
@@ -13097,6 +13099,7 @@ function logApiResponse(config, event) {
|
|
|
13097
13099
|
const attributes = {
|
|
13098
13100
|
...getCommonAttributes(config),
|
|
13099
13101
|
...event,
|
|
13102
|
+
...sessionId ? { "session.id": sessionId } : {},
|
|
13100
13103
|
"event.name": EVENT_API_RESPONSE,
|
|
13101
13104
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
13102
13105
|
};
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
MODIFIER_SHIFT_BIT,
|
|
17
17
|
MODIFIER_SUPER_BIT,
|
|
18
18
|
clipboardHasImage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-NW2GIPG3.js";
|
|
20
20
|
import {
|
|
21
21
|
require_jsx_runtime
|
|
22
22
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -26,17 +26,17 @@ import {
|
|
|
26
26
|
import {
|
|
27
27
|
use_stdin_default,
|
|
28
28
|
use_stdout_default
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-2IIJTXYF.js";
|
|
30
30
|
import {
|
|
31
31
|
require_react
|
|
32
32
|
} from "./chunk-5QWWOFGG.js";
|
|
33
33
|
import {
|
|
34
34
|
KittySequenceOverflowEvent,
|
|
35
35
|
logKittySequenceOverflow
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-4KM2SYK5.js";
|
|
37
37
|
import {
|
|
38
38
|
createDebugLogger
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-HOSVOUDK.js";
|
|
40
40
|
import {
|
|
41
41
|
init_esbuild_shims
|
|
42
42
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -5,18 +5,18 @@ import {
|
|
|
5
5
|
} from "./chunk-KW7NOTN6.js";
|
|
6
6
|
import {
|
|
7
7
|
DEFAULT_OPENAI_LOG_RETENTION_DAYS
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-FA5K6YI2.js";
|
|
9
9
|
import {
|
|
10
10
|
FILE_HISTORY_DIR,
|
|
11
11
|
getSubagentsRootDir
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EBPLKY6U.js";
|
|
13
13
|
import {
|
|
14
14
|
resolveOpenAILogDir
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-3GM5DLBI.js";
|
|
16
16
|
import {
|
|
17
17
|
Storage,
|
|
18
18
|
createDebugLogger
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-HOSVOUDK.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esbuild_shims
|
|
22
22
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
} from "./chunk-KRXPRVGL.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWriteJSON
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-YBHUXEC6.js";
|
|
9
9
|
import {
|
|
10
10
|
QWEN_DIR,
|
|
11
11
|
createDebugLogger
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-HOSVOUDK.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IRSLAS4M.js";
|
|
6
6
|
import {
|
|
7
7
|
computeThresholds,
|
|
8
8
|
getCoreSystemPrompt,
|
|
9
9
|
resolveInteractionMode
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
DiscoveredMCPTool,
|
|
13
|
-
uiTelemetryService
|
|
14
|
-
} from "./chunk-HB6QW4LM.js";
|
|
10
|
+
} from "./chunk-EBPLKY6U.js";
|
|
15
11
|
import {
|
|
16
12
|
buildSkillLlmContent
|
|
17
13
|
} from "./chunk-K623ENWT.js";
|
|
14
|
+
import {
|
|
15
|
+
DiscoveredMCPTool,
|
|
16
|
+
uiTelemetryService
|
|
17
|
+
} from "./chunk-4KM2SYK5.js";
|
|
18
18
|
import {
|
|
19
19
|
ToolNames
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-YIGGWOJE.js";
|
|
21
21
|
import {
|
|
22
22
|
DEFAULT_TOKEN_LIMIT
|
|
23
23
|
} from "./chunk-FPGTNKCP.js";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getCurrentAgentId
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VPV7WBVT.js";
|
|
6
6
|
import {
|
|
7
7
|
getTeammateContext,
|
|
8
8
|
isTeammate
|
|
9
9
|
} from "./chunk-S6LOFUVP.js";
|
|
10
10
|
import {
|
|
11
11
|
ToolNames
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YIGGWOJE.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
import {
|
|
4
4
|
UNSAFE_OBJECT_KEYS,
|
|
5
5
|
getPlugin
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-OK47XBYH.js";
|
|
7
7
|
import {
|
|
8
8
|
loadSettings,
|
|
9
9
|
saveSettings
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-3GDBZJD6.js";
|
|
11
11
|
import {
|
|
12
12
|
init_esbuild_shims
|
|
13
13
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -104,7 +104,7 @@ function assertNumberRecord(key, value, allowedKeys) {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
__name(assertNumberRecord, "assertNumberRecord");
|
|
107
|
-
function assertSharedField(key, value) {
|
|
107
|
+
function assertSharedField(key, value, previous) {
|
|
108
108
|
const enumValues = {
|
|
109
109
|
senderPolicy: /* @__PURE__ */ new Set(["allowlist", "pairing", "open"]),
|
|
110
110
|
dmPolicy: /* @__PURE__ */ new Set(["open", "disabled"]),
|
|
@@ -131,6 +131,43 @@ function assertSharedField(key, value) {
|
|
|
131
131
|
}
|
|
132
132
|
return true;
|
|
133
133
|
}
|
|
134
|
+
if (key === "groups") {
|
|
135
|
+
if (!isRecord(value)) {
|
|
136
|
+
if (containsUnsafeObjectKey(value) || !isDeepStrictEqual(previous, value)) {
|
|
137
|
+
throw invalidConfig(`Channel field "${key}" must be an object.`);
|
|
138
|
+
}
|
|
139
|
+
return true;
|
|
140
|
+
}
|
|
141
|
+
const previousGroups = isRecord(previous) ? previous : {};
|
|
142
|
+
for (const [groupId, groupConfig] of Object.entries(value)) {
|
|
143
|
+
if (UNSAFE_OBJECT_KEYS.has(groupId) || !isRecord(groupConfig)) {
|
|
144
|
+
throw invalidConfig(`Channel field "${key}.${groupId}" is invalid.`);
|
|
145
|
+
}
|
|
146
|
+
const previousGroup = isRecord(previousGroups[groupId]) ? previousGroups[groupId] : {};
|
|
147
|
+
for (const [nestedKey, nestedValue] of Object.entries(groupConfig)) {
|
|
148
|
+
const known = [
|
|
149
|
+
"requireMention",
|
|
150
|
+
"dispatchMode",
|
|
151
|
+
"groupHistoryLimit"
|
|
152
|
+
].includes(nestedKey);
|
|
153
|
+
const valid = nestedKey === "requireMention" && typeof nestedValue === "boolean" || nestedKey === "dispatchMode" && typeof nestedValue === "string" && ["collect", "steer", "followup"].includes(nestedValue) || nestedKey === "groupHistoryLimit" && typeof nestedValue === "number" && Number.isFinite(nestedValue);
|
|
154
|
+
if (known && !valid && !(Object.hasOwn(previousGroup, nestedKey) && isDeepStrictEqual(previousGroup[nestedKey], nestedValue) && !containsUnsafeObjectKey(nestedValue))) {
|
|
155
|
+
throw invalidConfig(
|
|
156
|
+
`Channel field "${key}.${groupId}.${nestedKey}" is invalid.`
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
if (!known) {
|
|
160
|
+
assertPreservedUnknownField(
|
|
161
|
+
`${key}.${groupId}`,
|
|
162
|
+
nestedKey,
|
|
163
|
+
nestedValue,
|
|
164
|
+
previousGroup
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
134
171
|
if (key === "groupHistoryLimit") {
|
|
135
172
|
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
136
173
|
throw invalidConfig(`Channel field "${key}" must be a number.`);
|
|
@@ -259,7 +296,13 @@ function assertManagedConfig(config, previous, fields) {
|
|
|
259
296
|
);
|
|
260
297
|
continue;
|
|
261
298
|
}
|
|
262
|
-
if (assertSharedField(
|
|
299
|
+
if (assertSharedField(
|
|
300
|
+
key,
|
|
301
|
+
value,
|
|
302
|
+
Object.hasOwn(previous, key) ? previous[key] : void 0
|
|
303
|
+
)) {
|
|
304
|
+
continue;
|
|
305
|
+
}
|
|
263
306
|
assertPreservedUnknownField(void 0, key, value, previous);
|
|
264
307
|
}
|
|
265
308
|
assertRequiredFields(fields, config);
|